{"version":3,"sources":["webpack://G2Plot/webpack/universalModuleDefinition","webpack://G2Plot/webpack/bootstrap","webpack://G2Plot/../src/is-array-like.ts","webpack://G2Plot/../src/contains.ts","webpack://G2Plot/../src/filter.ts","webpack://G2Plot/../src/difference.ts","webpack://G2Plot/../src/is-type.ts","webpack://G2Plot/../src/is-function.ts","webpack://G2Plot/../src/is-nil.ts","webpack://G2Plot/../src/is-array.ts","webpack://G2Plot/../src/is-object.ts","webpack://G2Plot/../src/each.ts","webpack://G2Plot/../src/keys.ts","webpack://G2Plot/../src/is-match.ts","webpack://G2Plot/../src/is-object-like.ts","webpack://G2Plot/../src/is-plain-object.ts","webpack://G2Plot/../src/find.ts","webpack://G2Plot/../src/find-index.ts","webpack://G2Plot/../src/first-value.ts","webpack://G2Plot/../src/flatten.ts","webpack://G2Plot/../src/flatten-deep.ts","webpack://G2Plot/../src/max.ts","webpack://G2Plot/../src/min.ts","webpack://G2Plot/../src/get-range.ts","webpack://G2Plot/../src/pull.ts","webpack://G2Plot/../src/pull-at.ts","webpack://G2Plot/../src/reduce.ts","webpack://G2Plot/../src/remove.ts","webpack://G2Plot/../src/is-string.ts","webpack://G2Plot/../src/sort-by.ts","webpack://G2Plot/../src/uniq.ts","webpack://G2Plot/../src/union.ts","webpack://G2Plot/../src/values-of-key.ts","webpack://G2Plot/../src/head.ts","webpack://G2Plot/../src/last.ts","webpack://G2Plot/../src/starts-with.ts","webpack://G2Plot/../src/ends-with.ts","webpack://G2Plot/../src/every.ts","webpack://G2Plot/../src/some.ts","webpack://G2Plot/../src/group-by.ts","webpack://G2Plot/../src/group-to-map.ts","webpack://G2Plot/../src/group.ts","webpack://G2Plot/../src/get-wrap-behavior.ts","webpack://G2Plot/../src/wrap-behavior.ts","webpack://G2Plot/../src/number2color.ts","webpack://G2Plot/../src/parse-radius.ts","webpack://G2Plot/../src/clamp.ts","webpack://G2Plot/../src/fixed-base.ts","webpack://G2Plot/../src/is-number.ts","webpack://G2Plot/../src/is-decimal.ts","webpack://G2Plot/../src/is-even.ts","webpack://G2Plot/../src/is-integer.ts","webpack://G2Plot/../src/is-negative.ts","webpack://G2Plot/../src/is-number-equal.ts","webpack://G2Plot/../src/is-odd.ts","webpack://G2Plot/../src/is-positive.ts","webpack://G2Plot/../src/max-by.ts","webpack://G2Plot/../src/min-by.ts","webpack://G2Plot/../src/mod.ts","webpack://G2Plot/../src/to-degree.ts","webpack://G2Plot/../src/to-integer.ts","webpack://G2Plot/../src/to-radian.ts","webpack://G2Plot/../src/for-in.ts","webpack://G2Plot/../src/has.ts","webpack://G2Plot/../src/has-key.ts","webpack://G2Plot/../src/values.ts","webpack://G2Plot/../src/has-value.ts","webpack://G2Plot/../src/to-string.ts","webpack://G2Plot/../src/lower-case.ts","webpack://G2Plot/../src/lower-first.ts","webpack://G2Plot/../src/substitute.ts","webpack://G2Plot/../src/upper-case.ts","webpack://G2Plot/../src/upper-first.ts","webpack://G2Plot/../src/get-type.ts","webpack://G2Plot/../src/is-arguments.ts","webpack://G2Plot/../src/is-boolean.ts","webpack://G2Plot/../src/is-date.ts","webpack://G2Plot/../src/is-error.ts","webpack://G2Plot/../src/is-finite.ts","webpack://G2Plot/../src/is-null.ts","webpack://G2Plot/../src/is-prototype.ts","webpack://G2Plot/../src/is-reg-exp.ts","webpack://G2Plot/../src/is-undefined.ts","webpack://G2Plot/../src/is-element.ts","webpack://G2Plot/../src/request-animation-frame.ts","webpack://G2Plot/../src/clear-animation-frame.ts","webpack://G2Plot/../src/mix.ts","webpack://G2Plot/../src/augment.ts","webpack://G2Plot/../src/clone.ts","webpack://G2Plot/../src/debounce.ts","webpack://G2Plot/../src/memoize.ts","webpack://G2Plot/../src/deep-mix.ts","webpack://G2Plot/../src/extend.ts","webpack://G2Plot/../src/index-of.ts","webpack://G2Plot/../src/is-empty.ts","webpack://G2Plot/../src/is-equal.ts","webpack://G2Plot/../src/is-equal-with.ts","webpack://G2Plot/../src/map.ts","webpack://G2Plot/../src/map-values.ts","webpack://G2Plot/../src/get.ts","webpack://G2Plot/../src/set.ts","webpack://G2Plot/../src/pick.ts","webpack://G2Plot/../src/omit.ts","webpack://G2Plot/../src/throttle.ts","webpack://G2Plot/../src/to-array.ts","webpack://G2Plot/../src/unique-id.ts","webpack://G2Plot/../src/noop.ts","webpack://G2Plot/../src/identity.ts","webpack://G2Plot/../src/size.ts","webpack://G2Plot/../src/measure-text-width.ts","webpack://G2Plot/../src/get-ellipsis-text.ts","webpack://G2Plot/../src/cache.ts","webpack://G2Plot/./node_modules/tslib/tslib.es6.js","webpack://G2Plot/./src/utils/index.ts","webpack://G2Plot/../src/ext.ts","webpack://G2Plot/../../src/util/util.ts","webpack://G2Plot/../../src/util/theme.ts","webpack://G2Plot/./src/core/plot.ts","webpack://G2Plot/../src/constant.ts","webpack://G2Plot/../../src/engine/index.ts","webpack://G2Plot/../../src/util/dom.ts","webpack://G2Plot/../src/base.ts","webpack://G2Plot/../../src/attributes/base.ts","webpack://G2Plot/./node_modules/@antv/attr/node_modules/tslib/tslib.es6.js","webpack://G2Plot/../../src/attributes/color.ts","webpack://G2Plot/../../src/attributes/opacity.ts","webpack://G2Plot/../../src/attributes/position.ts","webpack://G2Plot/../../src/attributes/shape.ts","webpack://G2Plot/../../src/attributes/size.ts","webpack://G2Plot/../src/factory.ts","webpack://G2Plot/../src/index.ts","webpack://G2Plot/../../src/coord/base.ts","webpack://G2Plot/../../src/coord/cartesian.ts","webpack://G2Plot/../../src/coord/helix.ts","webpack://G2Plot/../../src/coord/polar.ts","webpack://G2Plot/../src/dependents.ts","webpack://G2Plot/../../src/util/graphics.ts","webpack://G2Plot/../../src/util/helper.ts","webpack://G2Plot/../../src/util/bbox.ts","webpack://G2Plot/../../src/util/coordinate.ts","webpack://G2Plot/../../src/util/scale.ts","webpack://G2Plot/../../src/util/axis.ts","webpack://G2Plot/../../src/facet/facet.ts","webpack://G2Plot/../../src/facet/index.ts","webpack://G2Plot/../../../src/interaction/action/base.ts","webpack://G2Plot/../../../src/interaction/action/callback.ts","webpack://G2Plot/../../../src/interaction/action/register.ts","webpack://G2Plot/../../../../src/geometry/shape/util/path.ts","webpack://G2Plot/../../../src/interaction/action/util.ts","webpack://G2Plot/../../src/interaction/context.ts","webpack://G2Plot/../../src/interaction/interaction.ts","webpack://G2Plot/../../src/interaction/grammar-interaction.ts","webpack://G2Plot/../../src/interaction/index.ts","webpack://G2Plot/../../../src/theme/util/create-by-style-sheet.ts","webpack://G2Plot/../../../src/theme/style-sheet/light.ts","webpack://G2Plot/../../../src/theme/util/create-theme.ts","webpack://G2Plot/../../src/theme/index.ts","webpack://G2Plot/../../src/util/tooltip.ts","webpack://G2Plot/../../src/util/padding.ts","webpack://G2Plot/../../../src/chart/controller/index.ts","webpack://G2Plot/../../../src/chart/controller/coordinate.ts","webpack://G2Plot/../../src/chart/event.ts","webpack://G2Plot/../../../src/chart/layout/index.ts","webpack://G2Plot/../../../src/chart/util/scale-pool.ts","webpack://G2Plot/../../../src/chart/layout/padding-cal.ts","webpack://G2Plot/../../../src/chart/layout/auto.ts","webpack://G2Plot/../../../src/chart/util/sync-view-padding.ts","webpack://G2Plot/../../src/chart/view.ts","webpack://G2Plot/../../src/chart/chart.ts","webpack://G2Plot/../../../src/chart/controller/base.ts","webpack://G2Plot/../../../src/chart/controller/tooltip.ts","webpack://G2Plot/../../../src/animate/animation/index.ts","webpack://G2Plot/../../src/animate/index.ts","webpack://G2Plot/../../../src/geometry/shape/constant.ts","webpack://G2Plot/../../../src/geometry/element/index.ts","webpack://G2Plot/../../../src/geometry/label/index.ts","webpack://G2Plot/../../../src/geometry/shape/base.ts","webpack://G2Plot/../../../src/geometry/util/is-model-change.ts","webpack://G2Plot/../../../src/geometry/util/parse-fields.ts","webpack://G2Plot/../../../src/geometry/util/diff.ts","webpack://G2Plot/../../src/geometry/base.ts","webpack://G2Plot/../../../src/geometry/util/group-data.ts","webpack://G2Plot/../../src/util/transform.ts","webpack://G2Plot/../../../../src/geometry/label/util/index.ts","webpack://G2Plot/../../src/component/labels.ts","webpack://G2Plot/../../src/component/update-label.ts","webpack://G2Plot/../../../src/geometry/label/base.ts","webpack://G2Plot/../../src/util/attr.ts","webpack://G2Plot/../../src/util/marker.ts","webpack://G2Plot/../../src/util/legend.ts","webpack://G2Plot/../../../../src/geometry/shape/util/get-path-points.ts","webpack://G2Plot/../../../../src/geometry/shape/util/get-style.ts","webpack://G2Plot/../../../../src/geometry/shape/util/split-points.ts","webpack://G2Plot/../../../../src/geometry/shape/line/util.ts","webpack://G2Plot/../../../../src/geometry/shape/line/index.ts","webpack://G2Plot/../src/core.ts","webpack://G2Plot/../../../src/theme/style-sheet/dark.ts","webpack://G2Plot/../../src/geometry/path.ts","webpack://G2Plot/../../../../src/geometry/shape/area/util.ts","webpack://G2Plot/../../../../src/geometry/shape/area/index.ts","webpack://G2Plot/../../src/geometry/area.ts","webpack://G2Plot/../../../../src/geometry/shape/edge/index.ts","webpack://G2Plot/../../src/geometry/edge.ts","webpack://G2Plot/../../src/geometry/heatmap.ts","webpack://G2Plot/../../../../src/geometry/shape/interval/util.ts","webpack://G2Plot/../../../../src/geometry/shape/interval/index.ts","webpack://G2Plot/../../../src/geometry/util/shape-size.ts","webpack://G2Plot/../../src/geometry/interval.ts","webpack://G2Plot/../../src/geometry/line.ts","webpack://G2Plot/../../../../src/geometry/shape/point/util.ts","webpack://G2Plot/../../../../src/geometry/shape/point/index.ts","webpack://G2Plot/../../src/geometry/point.ts","webpack://G2Plot/../../../../src/geometry/shape/polygon/index.ts","webpack://G2Plot/../../src/geometry/polygon.ts","webpack://G2Plot/../../../../src/geometry/shape/schema/index.ts","webpack://G2Plot/../../src/geometry/schema.ts","webpack://G2Plot/../../../../src/geometry/shape/violin/index.ts","webpack://G2Plot/../../src/geometry/violin.ts","webpack://G2Plot/../../../../src/geometry/shape/edge/util.ts","webpack://G2Plot/../../../../src/geometry/shape/area/line.ts","webpack://G2Plot/../../../../src/geometry/shape/area/smooth.ts","webpack://G2Plot/../../../../src/geometry/shape/area/smooth-line.ts","webpack://G2Plot/../../../../src/geometry/shape/edge/arc.ts","webpack://G2Plot/../../../../src/geometry/shape/edge/smooth.ts","webpack://G2Plot/../../../../src/geometry/shape/edge/vhv.ts","webpack://G2Plot/../../../../src/geometry/shape/interval/funnel.ts","webpack://G2Plot/../../../../src/geometry/shape/interval/hollow-rect.ts","webpack://G2Plot/../../../../src/geometry/shape/interval/line.ts","webpack://G2Plot/../../../../src/geometry/shape/interval/pyramid.ts","webpack://G2Plot/../../../../src/geometry/shape/interval/tick.ts","webpack://G2Plot/../../../../src/geometry/shape/line/step.ts","webpack://G2Plot/../../../../src/geometry/shape/schema/box.ts","webpack://G2Plot/../../../../src/geometry/shape/schema/candle.ts","webpack://G2Plot/../../../../src/geometry/shape/polygon/square.ts","webpack://G2Plot/../../../../src/geometry/shape/point/hollow.ts","webpack://G2Plot/../../../../src/geometry/shape/point/image.ts","webpack://G2Plot/../../../../src/geometry/shape/point/solid.ts","webpack://G2Plot/../../../../src/geometry/shape/violin/smooth.ts","webpack://G2Plot/../../../../src/geometry/shape/violin/hollow.ts","webpack://G2Plot/../../../src/geometry/label/interval.ts","webpack://G2Plot/../../../src/geometry/label/polar.ts","webpack://G2Plot/../../../src/geometry/label/pie.ts","webpack://G2Plot/../../../../../src/geometry/label/layout/pie/util.ts","webpack://G2Plot/../../../../src/geometry/label/layout/overlap.ts","webpack://G2Plot/../../src/util/collision-detect.ts","webpack://G2Plot/../../src/util/color.ts","webpack://G2Plot/../../src/util/context.ts","webpack://G2Plot/../../../../../src/geometry/label/layout/interval/adjust-position.ts","webpack://G2Plot/../../../../../src/geometry/label/layout/point/adjust-position.ts","webpack://G2Plot/../../../../../src/geometry/label/layout/path/adjust-position.ts","webpack://G2Plot/../../src/util/text.ts","webpack://G2Plot/../../../src/animate/animation/util.ts","webpack://G2Plot/../../../src/animate/animation/sector-path-update.ts","webpack://G2Plot/../../../src/animate/animation/zoom.ts","webpack://G2Plot/../../src/util/facet.ts","webpack://G2Plot/../../src/facet/circle.ts","webpack://G2Plot/../../src/facet/list.ts","webpack://G2Plot/../../src/facet/matrix.ts","webpack://G2Plot/../../src/facet/mirror.ts","webpack://G2Plot/../../src/facet/rect.ts","webpack://G2Plot/../../src/facet/tree.ts","webpack://G2Plot/../../src/util/stat.ts","webpack://G2Plot/../../src/util/annotation.ts","webpack://G2Plot/../../../src/chart/controller/annotation.ts","webpack://G2Plot/../../src/util/grid.ts","webpack://G2Plot/../../../src/chart/controller/axis.ts","webpack://G2Plot/../../src/util/direction.ts","webpack://G2Plot/../../../src/chart/controller/legend.ts","webpack://G2Plot/../../../src/chart/controller/slider.ts","webpack://G2Plot/../../../src/chart/controller/scrollbar.ts","webpack://G2Plot/../../../src/interaction/action/active-region.ts","webpack://G2Plot/../../../../../src/interaction/action/component/tooltip/geometry.ts","webpack://G2Plot/../../../../../src/interaction/action/component/tooltip/sibling.ts","webpack://G2Plot/../../../../../src/interaction/action/component/tooltip/ellipsis-text.ts","webpack://G2Plot/../../../../src/interaction/action/element/state-base.ts","webpack://G2Plot/../../../../src/interaction/action/element/state.ts","webpack://G2Plot/../../../../src/interaction/action/element/active.ts","webpack://G2Plot/../../../../src/interaction/action/element/link-by-color.ts","webpack://G2Plot/../../../../src/interaction/action/element/range-state.ts","webpack://G2Plot/../../../../src/interaction/action/element/range-active.ts","webpack://G2Plot/../../../../src/interaction/action/element/single-state.ts","webpack://G2Plot/../../../../src/interaction/action/element/single-active.ts","webpack://G2Plot/../../../../src/interaction/action/element/highlight-util.ts","webpack://G2Plot/../../../../src/interaction/action/element/highlight.ts","webpack://G2Plot/../../../../src/interaction/action/element/range-highlight.ts","webpack://G2Plot/../../../../src/interaction/action/element/highlight-by-color.ts","webpack://G2Plot/../../../../src/interaction/action/element/highlight-by-x.ts","webpack://G2Plot/../../../../src/interaction/action/element/single-highlight.ts","webpack://G2Plot/../../../../src/interaction/action/element/range-selected.ts","webpack://G2Plot/../../../../src/interaction/action/element/selected.ts","webpack://G2Plot/../../../../src/interaction/action/element/single-selected.ts","webpack://G2Plot/../../../../src/interaction/action/component/list-state.ts","webpack://G2Plot/../../../../src/interaction/action/component/list-active.ts","webpack://G2Plot/../../../../src/interaction/action/component/list-highlight.ts","webpack://G2Plot/../../../../src/interaction/action/component/list-highlight-util.ts","webpack://G2Plot/../../../../src/interaction/action/component/list-selected.ts","webpack://G2Plot/../../../../src/interaction/action/component/list-unchecked.ts","webpack://G2Plot/../../../../src/interaction/action/component/list-checked.ts","webpack://G2Plot/../../../../src/interaction/action/component/list-focus.ts","webpack://G2Plot/../../../../src/interaction/action/component/list-radio.ts","webpack://G2Plot/../../../../src/interaction/action/mask/base.ts","webpack://G2Plot/../../../../src/interaction/action/mask/circle.ts","webpack://G2Plot/../../../../src/interaction/action/mask/rect.ts","webpack://G2Plot/../../../../src/interaction/action/mask/dim-rect.ts","webpack://G2Plot/../../../../src/interaction/action/data/range-filter.ts","webpack://G2Plot/../../../../src/interaction/action/mask/path.ts","webpack://G2Plot/../../../../src/interaction/action/mask/smooth-path.ts","webpack://G2Plot/../../../src/interaction/action/cursor.ts","webpack://G2Plot/../../../../src/interaction/action/data/filter.ts","webpack://G2Plot/../../../../src/interaction/action/data/sibling-filter.ts","webpack://G2Plot/../../../../src/interaction/action/element/filter.ts","webpack://G2Plot/../../../../src/interaction/action/element/sibling-filter.ts","webpack://G2Plot/../../../../src/interaction/action/view/button.ts","webpack://G2Plot/../../../../src/interaction/action/view/drag.ts","webpack://G2Plot/../../../../src/interaction/action/view/move.ts","webpack://G2Plot/../../../../src/interaction/action/view/scale-transform.ts","webpack://G2Plot/../../../../src/interaction/action/view/scale-translate.ts","webpack://G2Plot/../../../../src/interaction/action/view/scale-zoom.ts","webpack://G2Plot/../../../../src/interaction/action/view/mousewheel-scroll.ts","webpack://G2Plot/../../../../../src/geometry/label/layout/pie/distribute.ts","webpack://G2Plot/../../../../src/geometry/label/layout/hide-overlap.ts","webpack://G2Plot/../../../../src/geometry/label/layout/limit-in-shape.ts","webpack://G2Plot/../../../../src/geometry/label/layout/limit-in-canvas.ts","webpack://G2Plot/../../../../src/geometry/label/layout/limit-in-plot.ts","webpack://G2Plot/../../../../../src/geometry/label/layout/pie/outer.ts","webpack://G2Plot/../../../../src/geometry/label/layout/adjust-color.ts","webpack://G2Plot/../../../../../src/geometry/label/layout/interval/hide-overlap.ts","webpack://G2Plot/../../../../../src/geometry/label/layout/pie/spider.ts","webpack://G2Plot/../../../src/animate/animation/fade.ts","webpack://G2Plot/../../../src/animate/animation/grow-in.ts","webpack://G2Plot/../../../src/animate/animation/scale-in.ts","webpack://G2Plot/../../../src/animate/animation/wave-in.ts","webpack://G2Plot/../../../src/animate/animation/position-update.ts","webpack://G2Plot/../../../src/animate/animation/path-in.ts","webpack://G2Plot/../src/add-event-listener.ts","webpack://G2Plot/../src/create-dom.ts","webpack://G2Plot/../src/get-style.ts","webpack://G2Plot/../src/get-outer-height.ts","webpack://G2Plot/../src/get-height.ts","webpack://G2Plot/../src/get-outer-width.ts","webpack://G2Plot/../src/get-width.ts","webpack://G2Plot/../src/modify-css.ts","webpack://G2Plot/./src/adaptor/common.ts","webpack://G2Plot/../../src/abstract/group-component.ts","webpack://G2Plot/../src/util.ts","webpack://G2Plot/../src/line.ts","webpack://G2Plot/../src/bezier.ts","webpack://G2Plot/../src/quadratic.ts","webpack://G2Plot/../src/cubic.ts","webpack://G2Plot/../src/ellipse.ts","webpack://G2Plot/../src/arc.ts","webpack://G2Plot/../src/segments.ts","webpack://G2Plot/../src/polyline.ts","webpack://G2Plot/./node_modules/gl-matrix/esm/common.js","webpack://G2Plot/./src/adaptor/geometries/index.ts","webpack://G2Plot/./node_modules/gl-matrix/esm/mat3.js","webpack://G2Plot/../../src/util/matrix.ts","webpack://G2Plot/../../src/tooltip/css-const.ts","webpack://G2Plot/../../src/util/draw.ts","webpack://G2Plot/../../src/util/arrow.ts","webpack://G2Plot/../../src/util/svg.ts","webpack://G2Plot/./node_modules/@antv/adjust/node_modules/tslib/tslib.es6.js","webpack://G2Plot/./src/adaptor/geometries/base.ts","webpack://G2Plot/../src/parse-path.ts","webpack://G2Plot/../src/catmull-rom-2-bezier.ts","webpack://G2Plot/../src/fill-path.ts","webpack://G2Plot/../src/fill-path-by-diff.ts","webpack://G2Plot/../src/format-path.ts","webpack://G2Plot/../src/rect-path.ts","webpack://G2Plot/../src/parse-path-string.ts","webpack://G2Plot/../src/path-2-absolute.ts","webpack://G2Plot/../../src/process/arc-2-cubic.ts","webpack://G2Plot/../../src/process/quad-2-cubic.ts","webpack://G2Plot/../../src/process/line-2-cubic.ts","webpack://G2Plot/../../src/process/segment-2-cubic.ts","webpack://G2Plot/../src/path-2-curve.ts","webpack://G2Plot/../src/path-intersection.ts","webpack://G2Plot/../src/parse-path-array.ts","webpack://G2Plot/../src/get-arc-params.ts","webpack://G2Plot/../src/path-2-segments.ts","webpack://G2Plot/../src/get-line-intersect.ts","webpack://G2Plot/../src/point-in-polygon.ts","webpack://G2Plot/../src/is-polygons-intersect.ts","webpack://G2Plot/../../src/util/label.ts","webpack://G2Plot/./src/utils/tooltip.ts","webpack://G2Plot/../../src/adjusts/adjust.ts","webpack://G2Plot/../../src/tick-method/register.ts","webpack://G2Plot/../../src/category/base.ts","webpack://G2Plot/../src/fecha.ts","webpack://G2Plot/../../src/util/time.ts","webpack://G2Plot/../../src/util/bisector.ts","webpack://G2Plot/../../src/category/time.ts","webpack://G2Plot/../../src/continuous/base.ts","webpack://G2Plot/../../src/continuous/linear.ts","webpack://G2Plot/../../src/util/math.ts","webpack://G2Plot/../../src/continuous/log.ts","webpack://G2Plot/../../src/continuous/pow.ts","webpack://G2Plot/../../src/continuous/time.ts","webpack://G2Plot/../../src/continuous/quantize.ts","webpack://G2Plot/../../src/continuous/quantile.ts","webpack://G2Plot/../../src/identity/index.ts","webpack://G2Plot/../../src/util/pretty-number.ts","webpack://G2Plot/../../src/util/extended.ts","webpack://G2Plot/../../src/tick-method/cat.ts","webpack://G2Plot/../../src/util/d3-linear.ts","webpack://G2Plot/../../src/util/interval.ts","webpack://G2Plot/../../src/util/strict-limit.ts","webpack://G2Plot/../../src/util/pretty.ts","webpack://G2Plot/../../src/tick-method/quantile.ts","webpack://G2Plot/../../src/tick-method/time-pretty.ts","webpack://G2Plot/../../src/tick-method/index.ts","webpack://G2Plot/../../src/tick-method/time-cat.ts","webpack://G2Plot/../../src/tick-method/linear.ts","webpack://G2Plot/../../src/tick-method/r-prettry.ts","webpack://G2Plot/../../src/tick-method/time.ts","webpack://G2Plot/../../src/tick-method/log.ts","webpack://G2Plot/../../src/tick-method/pow.ts","webpack://G2Plot/../../src/tick-method/d3-linear.ts","webpack://G2Plot/../../src/util/path.ts","webpack://G2Plot/../../src/shape/base.ts","webpack://G2Plot/../../src/shape/circle.ts","webpack://G2Plot/../../src/shape/ellipse.ts","webpack://G2Plot/../../src/shape/image.ts","webpack://G2Plot/../../../src/util/in-stroke/line.ts","webpack://G2Plot/../../src/shape/line.ts","webpack://G2Plot/../../src/shape/marker.ts","webpack://G2Plot/../../../src/util/in-path/point-in-path.ts","webpack://G2Plot/../../../src/util/in-path/polygon.ts","webpack://G2Plot/../../../src/util/in-stroke/arc.ts","webpack://G2Plot/../../src/shape/path.ts","webpack://G2Plot/../../../src/util/in-stroke/polyline.ts","webpack://G2Plot/../../src/shape/polygon.ts","webpack://G2Plot/../../src/shape/polyline.ts","webpack://G2Plot/../../src/shape/rect.ts","webpack://G2Plot/../../../src/util/in-stroke/rect-radius.ts","webpack://G2Plot/../../../src/util/in-stroke/rect.ts","webpack://G2Plot/../../src/shape/text.ts","webpack://G2Plot/./src/constant.ts","webpack://G2Plot/../../src/abstract/html-component.ts","webpack://G2Plot/../../src/util/state.ts","webpack://G2Plot/./src/utils/padding.ts","webpack://G2Plot/./src/adaptor/pattern.ts","webpack://G2Plot/./src/utils/transform/percent.ts","webpack://G2Plot/./src/plots/tiny-line/utils.ts","webpack://G2Plot/./src/plots/funnel/constant.ts","webpack://G2Plot/../../src/abstract/component.ts","webpack://G2Plot/../../src/shape/dom.ts","webpack://G2Plot/../../../src/shape/marker/symbols.ts","webpack://G2Plot/../../../src/shape/marker/index.ts","webpack://G2Plot/../../src/util/format.ts","webpack://G2Plot/./node_modules/gl-matrix/esm/vec2.js","webpack://G2Plot/./src/plots/column/adaptor.ts","webpack://G2Plot/./src/plots/tiny-line/constants.ts","webpack://G2Plot/./src/plots/venn/constant.ts","webpack://G2Plot/./src/utils/hierarchy/util.ts","webpack://G2Plot/../../src/util/arc-params.ts","webpack://G2Plot/./src/core/locale.ts","webpack://G2Plot/./src/utils/data.ts","webpack://G2Plot/./src/plots/tiny-area/adaptor.ts","webpack://G2Plot/./src/interactions/actions/drill-down.ts","webpack://G2Plot/./src/plots/gauge/constants.ts","webpack://G2Plot/../../src/event/graph-event.ts","webpack://G2Plot/../../src/abstract/base.ts","webpack://G2Plot/./node_modules/gl-matrix/esm/vec3.js","webpack://G2Plot/../../src/util/offscreen.ts","webpack://G2Plot/../../src/util/event.ts","webpack://G2Plot/../../src/abstract/container.ts","webpack://G2Plot/../../src/abstract/element.ts","webpack://G2Plot/./node_modules/detect-browser/es/index.js","webpack://G2Plot/../../src/util/parse.ts","webpack://G2Plot/./src/utils/number.ts","webpack://G2Plot/./src/plots/line/adaptor.ts","webpack://G2Plot/./src/utils/pattern/util.ts","webpack://G2Plot/./src/plots/dual-axes/types.ts","webpack://G2Plot/./src/plots/dual-axes/util/option.ts","webpack://G2Plot/./src/plots/progress/adaptor.ts","webpack://G2Plot/./src/plots/progress/utils.ts","webpack://G2Plot/./src/plots/box/constant.ts","webpack://G2Plot/./src/plots/venn/interactions/util.ts","webpack://G2Plot/./src/plots/stock/constant.ts","webpack://G2Plot/./src/plots/funnel/geometries/common.ts","webpack://G2Plot/./src/plots/sunburst/constant.ts","webpack://G2Plot/./src/interactions/drill-down.ts","webpack://G2Plot/./src/plots/waterfall/constant.ts","webpack://G2Plot/./src/plots/sankey/constant.ts","webpack://G2Plot/./src/plots/mix/index.ts","webpack://G2Plot/./node_modules/d3-hierarchy/src/cluster.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/hierarchy/count.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/hierarchy/iterator.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/hierarchy/index.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/hierarchy/each.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/hierarchy/find.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/hierarchy/path.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/hierarchy/links.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/pack/enclose.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/array.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/pack/siblings.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/accessors.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/constant.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/pack/index.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/treemap/round.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/treemap/dice.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/partition.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/stratify.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/tree.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/treemap/slice.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/treemap/squarify.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/treemap/index.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/treemap/binary.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/treemap/sliceDice.js","webpack://G2Plot/./node_modules/d3-hierarchy/src/treemap/resquarify.js","webpack://G2Plot/./node_modules/@babel/runtime/regenerator/index.js","webpack://G2Plot/../../src/abstract/group.ts","webpack://G2Plot/../../src/abstract/shape.ts","webpack://G2Plot/./src/utils/pick.ts","webpack://G2Plot/./src/utils/invariant.ts","webpack://G2Plot/./src/utils/view.ts","webpack://G2Plot/./src/utils/deep-assign.ts","webpack://G2Plot/./src/utils/statistic.ts","webpack://G2Plot/./src/core/global.ts","webpack://G2Plot/./node_modules/size-sensor/lib/debounce.js","webpack://G2Plot/./node_modules/size-sensor/lib/constant.js","webpack://G2Plot/./src/plots/line/index.ts","webpack://G2Plot/./src/utils/pattern/index.ts","webpack://G2Plot/./src/adaptor/geometries/point.ts","webpack://G2Plot/./src/adaptor/geometries/polygon.ts","webpack://G2Plot/./src/plots/area/index.ts","webpack://G2Plot/./src/plots/area/adaptor.ts","webpack://G2Plot/./src/plots/column/index.ts","webpack://G2Plot/./src/utils/conversion.ts","webpack://G2Plot/./src/adaptor/brush.ts","webpack://G2Plot/./src/interactions/brush.ts","webpack://G2Plot/./src/plots/bar/index.ts","webpack://G2Plot/./src/plots/bar/adaptor.ts","webpack://G2Plot/./src/plots/pie/index.ts","webpack://G2Plot/./src/plots/pie/adaptor.ts","webpack://G2Plot/./src/plots/pie/contants.ts","webpack://G2Plot/./src/plots/pie/utils.ts","webpack://G2Plot/./src/plots/pie/interactions/index.ts","webpack://G2Plot/./src/utils/matrix.ts","webpack://G2Plot/./src/plots/word-cloud/utils.ts","webpack://G2Plot/./src/plots/word-cloud/constant.ts","webpack://G2Plot/./src/plots/scatter/index.ts","webpack://G2Plot/./src/plots/scatter/adaptor.ts","webpack://G2Plot/./src/interactions/drag-move.ts","webpack://G2Plot/./src/plots/dual-axes/constant.ts","webpack://G2Plot/./src/plots/tiny-line/index.ts","webpack://G2Plot/./src/plots/tiny-line/adaptor.ts","webpack://G2Plot/./src/plots/tiny-column/index.ts","webpack://G2Plot/./src/plots/tiny-column/adaptor.ts","webpack://G2Plot/./src/plots/tiny-area/index.ts","webpack://G2Plot/./src/plots/histogram/index.ts","webpack://G2Plot/./src/utils/transform/histogram.ts","webpack://G2Plot/./src/plots/histogram/adaptor.ts","webpack://G2Plot/./src/plots/histogram/constant.ts","webpack://G2Plot/./src/plots/progress/index.ts","webpack://G2Plot/./src/plots/progress/constants.ts","webpack://G2Plot/./src/plots/ring-progress/index.ts","webpack://G2Plot/./src/plots/ring-progress/adaptor.ts","webpack://G2Plot/./src/plots/box/utils.ts","webpack://G2Plot/./src/plots/violin/utils.ts","webpack://G2Plot/./src/plots/violin/constant.ts","webpack://G2Plot/./node_modules/fmin/build/fmin.js","webpack://G2Plot/./src/plots/venn/layout/circleintersection.ts","webpack://G2Plot/./src/plots/stock/utils.ts","webpack://G2Plot/./src/plots/funnel/index.ts","webpack://G2Plot/./src/plots/funnel/adaptor.ts","webpack://G2Plot/./src/plots/funnel/geometries/basic.ts","webpack://G2Plot/./src/plots/liquid/utils.ts","webpack://G2Plot/./src/plots/bullet/utils.ts","webpack://G2Plot/./src/utils/hierarchy/treemap.ts","webpack://G2Plot/./src/plots/gauge/index.ts","webpack://G2Plot/./src/plots/gauge/adaptor.ts","webpack://G2Plot/./src/plots/gauge/utils.ts","webpack://G2Plot/./src/plots/waterfall/utils.ts","webpack://G2Plot/./src/plots/bidirectional-bar/constant.ts","webpack://G2Plot/./src/plots/bidirectional-bar/utils.ts","webpack://G2Plot/./src/plots/treemap/utils.ts","webpack://G2Plot/./src/plots/sankey/helper.ts","webpack://G2Plot/./src/plots/sankey/sankey/align.ts","webpack://G2Plot/./src/plots/chord/constant.ts","webpack://G2Plot/./src/plots/circle-packing/constant.ts","webpack://G2Plot/./src/plots/mix/utils.ts","webpack://G2Plot/./node_modules/d3-timer/src/timer.js","webpack://G2Plot/./node_modules/d3-ease/src/linear.js","webpack://G2Plot/./node_modules/d3-ease/src/quad.js","webpack://G2Plot/./node_modules/d3-ease/src/cubic.js","webpack://G2Plot/./node_modules/d3-ease/src/poly.js","webpack://G2Plot/./node_modules/d3-ease/src/sin.js","webpack://G2Plot/./node_modules/d3-ease/src/math.js","webpack://G2Plot/./node_modules/d3-ease/src/exp.js","webpack://G2Plot/./node_modules/d3-ease/src/circle.js","webpack://G2Plot/./node_modules/d3-ease/src/bounce.js","webpack://G2Plot/./node_modules/d3-ease/src/back.js","webpack://G2Plot/./node_modules/d3-ease/src/elastic.js","webpack://G2Plot/./node_modules/d3-color/src/define.js","webpack://G2Plot/./node_modules/d3-color/src/color.js","webpack://G2Plot/./node_modules/d3-interpolate/src/basis.js","webpack://G2Plot/./node_modules/d3-interpolate/src/constant.js","webpack://G2Plot/./node_modules/d3-interpolate/src/color.js","webpack://G2Plot/./node_modules/d3-interpolate/src/rgb.js","webpack://G2Plot/./node_modules/d3-interpolate/src/basisClosed.js","webpack://G2Plot/./node_modules/d3-interpolate/src/numberArray.js","webpack://G2Plot/./node_modules/d3-interpolate/src/array.js","webpack://G2Plot/./node_modules/d3-interpolate/src/date.js","webpack://G2Plot/./node_modules/d3-interpolate/src/number.js","webpack://G2Plot/./node_modules/d3-interpolate/src/object.js","webpack://G2Plot/./node_modules/d3-interpolate/src/string.js","webpack://G2Plot/./node_modules/d3-interpolate/src/value.js","webpack://G2Plot/../../src/animate/timeline.ts","webpack://G2Plot/../../src/event/event-contoller.ts","webpack://G2Plot/../../src/abstract/canvas.ts","webpack://G2Plot/../../src/util/graphic.ts","webpack://G2Plot/../../src/annotation/line.ts","webpack://G2Plot/../../src/annotation/text.ts","webpack://G2Plot/../../src/annotation/arc.ts","webpack://G2Plot/../../src/annotation/region.ts","webpack://G2Plot/../../src/annotation/image.ts","webpack://G2Plot/../../src/annotation/data-marker.ts","webpack://G2Plot/../../src/annotation/data-region.ts","webpack://G2Plot/../../src/annotation/region-filter.ts","webpack://G2Plot/../../src/annotation/shape.ts","webpack://G2Plot/../../src/annotation/html.ts","webpack://G2Plot/../../src/bbox/register.ts","webpack://G2Plot/../../src/bbox/rect.ts","webpack://G2Plot/../../src/bbox/circle.ts","webpack://G2Plot/../../src/bbox/util.ts","webpack://G2Plot/../../src/bbox/polyline.ts","webpack://G2Plot/../../src/bbox/path.ts","webpack://G2Plot/../../src/bbox/index.ts","webpack://G2Plot/../../src/bbox/polygon.ts","webpack://G2Plot/../../src/bbox/text.ts","webpack://G2Plot/../../src/bbox/line.ts","webpack://G2Plot/../../src/bbox/ellipse.ts","webpack://G2Plot/../../src/axis/base.ts","webpack://G2Plot/../../../src/axis/overlap/auto-ellipsis.ts","webpack://G2Plot/../../../src/axis/overlap/auto-hide.ts","webpack://G2Plot/../../../src/axis/overlap/auto-rotate.ts","webpack://G2Plot/../../src/axis/line.ts","webpack://G2Plot/../../src/axis/circle.ts","webpack://G2Plot/../../src/defs/gradient.ts","webpack://G2Plot/../../src/defs/shadow.ts","webpack://G2Plot/../../src/defs/arrow.ts","webpack://G2Plot/../../src/defs/clip.ts","webpack://G2Plot/../../src/defs/pattern.ts","webpack://G2Plot/../../src/defs/index.ts","webpack://G2Plot/../src/canvas.ts","webpack://G2Plot/../../src/crosshair/base.ts","webpack://G2Plot/../../src/crosshair/line.ts","webpack://G2Plot/../../src/crosshair/circle.ts","webpack://G2Plot/../../src/crosshair/html-theme.ts","webpack://G2Plot/../../src/crosshair/css-const.ts","webpack://G2Plot/../../src/crosshair/html.ts","webpack://G2Plot/../../src/trend/constant.ts","webpack://G2Plot/../../src/trend/path.ts","webpack://G2Plot/../../src/trend/trend.ts","webpack://G2Plot/../../src/slider/handler.ts","webpack://G2Plot/../../src/slider/constant.ts","webpack://G2Plot/../../src/slider/slider.ts","webpack://G2Plot/../../src/grid/base.ts","webpack://G2Plot/../../src/grid/circle.ts","webpack://G2Plot/../../src/grid/line.ts","webpack://G2Plot/../../src/legend/base.ts","webpack://G2Plot/../../src/legend/category.ts","webpack://G2Plot/../../src/legend/continuous.ts","webpack://G2Plot/../../src/tooltip/html-theme.ts","webpack://G2Plot/../../src/tooltip/html.ts","webpack://G2Plot/../../src/util/align.ts","webpack://G2Plot/../../src/util/hit.ts","webpack://G2Plot/../../src/scrollbar/scrollbar.ts","webpack://G2Plot/../../src/adjusts/dodge.ts","webpack://G2Plot/../../src/adjusts/jitter.ts","webpack://G2Plot/../../src/adjusts/stack.ts","webpack://G2Plot/../../src/adjusts/symmetric.ts","webpack://G2Plot/./src/index.ts","webpack://G2Plot/./node_modules/process/browser.js","webpack://G2Plot/./src/utils/flow.ts","webpack://G2Plot/./src/utils/template.ts","webpack://G2Plot/./src/utils/dom.ts","webpack://G2Plot/./src/utils/geometry.ts","webpack://G2Plot/./src/utils/label.ts","webpack://G2Plot/./src/utils/path.ts","webpack://G2Plot/./src/utils/kebab-case.ts","webpack://G2Plot/./src/utils/measure-text.ts","webpack://G2Plot/./src/utils/context.ts","webpack://G2Plot/./src/locales/en_US.ts","webpack://G2Plot/./src/locales/zh_CN.ts","webpack://G2Plot/./node_modules/size-sensor/lib/index.js","webpack://G2Plot/./node_modules/size-sensor/lib/sensorPool.js","webpack://G2Plot/./node_modules/size-sensor/lib/id.js","webpack://G2Plot/./node_modules/size-sensor/lib/sensors/index.js","webpack://G2Plot/./node_modules/size-sensor/lib/sensors/object.js","webpack://G2Plot/./node_modules/size-sensor/lib/sensors/resizeObserver.js","webpack://G2Plot/./src/types/index.ts","webpack://G2Plot/./src/utils/pattern/dot.ts","webpack://G2Plot/./src/utils/pattern/line.ts","webpack://G2Plot/./src/utils/pattern/square.ts","webpack://G2Plot/./src/adaptor/geometries/area.ts","webpack://G2Plot/./src/adaptor/geometries/line.ts","webpack://G2Plot/./src/adaptor/geometries/interval.ts","webpack://G2Plot/./src/adaptor/geometries/edge.ts","webpack://G2Plot/./src/adaptor/geometries/schema.ts","webpack://G2Plot/./src/adaptor/geometries/violin.ts","webpack://G2Plot/./src/plots/line/constants.ts","webpack://G2Plot/./src/plots/line/interactions/index.ts","webpack://G2Plot/./src/plots/line/interactions/marker-active.ts","webpack://G2Plot/./src/plots/area/constants.ts","webpack://G2Plot/./src/adaptor/conversion-tag.ts","webpack://G2Plot/./src/adaptor/connected-area.ts","webpack://G2Plot/./src/interactions/actions/reset-button.ts","webpack://G2Plot/./src/plots/column/constants.ts","webpack://G2Plot/./src/plots/bar/constants.ts","webpack://G2Plot/./src/plots/pie/interactions/actions/legend-active.ts","webpack://G2Plot/./src/plots/pie/interactions/actions/statistic-active.ts","webpack://G2Plot/./src/plots/pie/interactions/util.ts","webpack://G2Plot/./src/plots/rose/index.ts","webpack://G2Plot/./src/plots/rose/adaptor.ts","webpack://G2Plot/./src/plots/rose/constant.ts","webpack://G2Plot/./src/plots/word-cloud/index.ts","webpack://G2Plot/./src/plots/word-cloud/adaptor.ts","webpack://G2Plot/./src/utils/transform/word-cloud.ts","webpack://G2Plot/./src/plots/word-cloud/shapes/word-cloud.ts","webpack://G2Plot/./src/plots/scatter/util.ts","webpack://G2Plot/./node_modules/d3-regression/dist/d3-regression.esm.js","webpack://G2Plot/./src/plots/scatter/constant.ts","webpack://G2Plot/./src/plots/scatter/interactions/index.ts","webpack://G2Plot/./src/plots/radar/index.ts","webpack://G2Plot/./src/plots/radar/adaptor.ts","webpack://G2Plot/./src/plots/radar/interactions/index.ts","webpack://G2Plot/./src/plots/radar/interactions/radar-tooltip-action.ts","webpack://G2Plot/./src/plots/dual-axes/index.ts","webpack://G2Plot/./src/plots/dual-axes/adaptor.ts","webpack://G2Plot/./src/plots/dual-axes/util/legend.ts","webpack://G2Plot/./src/plots/dual-axes/util/geometry.ts","webpack://G2Plot/./src/plots/dual-axes/util/render-sider.ts","webpack://G2Plot/./src/plots/tiny-column/constants.ts","webpack://G2Plot/./src/plots/tiny-area/constants.ts","webpack://G2Plot/./src/plots/ring-progress/constants.ts","webpack://G2Plot/./src/plots/heatmap/index.ts","webpack://G2Plot/./src/plots/heatmap/adaptor.ts","webpack://G2Plot/./src/plots/heatmap/constant.ts","webpack://G2Plot/./src/plots/heatmap/shapes/circle.ts","webpack://G2Plot/./src/plots/heatmap/shapes/square.ts","webpack://G2Plot/./src/plots/box/index.ts","webpack://G2Plot/./src/plots/box/adaptor.ts","webpack://G2Plot/./src/plots/violin/index.ts","webpack://G2Plot/./src/plots/violin/adaptor.ts","webpack://G2Plot/./node_modules/pdfast/src/index.js","webpack://G2Plot/./node_modules/pdfast/src/helper.js","webpack://G2Plot/./src/utils/transform/quantile.ts","webpack://G2Plot/./src/plots/venn/index.ts","webpack://G2Plot/./src/plots/venn/types.ts","webpack://G2Plot/./src/plots/venn/adaptor.ts","webpack://G2Plot/./src/plots/venn/utils.ts","webpack://G2Plot/./src/utils/color/blend.ts","webpack://G2Plot/./src/plots/venn/layout/layout.ts","webpack://G2Plot/./src/plots/venn/layout/diagram.ts","webpack://G2Plot/./src/plots/venn/shape.ts","webpack://G2Plot/./src/plots/venn/label.ts","webpack://G2Plot/./src/plots/venn/interactions/index.ts","webpack://G2Plot/./src/plots/venn/interactions/actions/active.ts","webpack://G2Plot/./src/plots/venn/interactions/actions/highlight.ts","webpack://G2Plot/./src/plots/venn/interactions/actions/selected.ts","webpack://G2Plot/./src/plots/stock/index.ts","webpack://G2Plot/./src/plots/stock/adaptor.ts","webpack://G2Plot/./src/plots/funnel/geometries/compare.ts","webpack://G2Plot/./src/plots/funnel/geometries/facet.ts","webpack://G2Plot/./src/plots/funnel/geometries/dynamic-height.ts","webpack://G2Plot/./src/plots/liquid/index.ts","webpack://G2Plot/./src/plots/liquid/adaptor.ts","webpack://G2Plot/./src/plots/liquid/constants.ts","webpack://G2Plot/./src/plots/liquid/shapes/liquid.ts","webpack://G2Plot/./src/plots/bullet/index.ts","webpack://G2Plot/./src/plots/bullet/adaptor.ts","webpack://G2Plot/./src/plots/bullet/constant.ts","webpack://G2Plot/./src/plots/sunburst/index.ts","webpack://G2Plot/./src/plots/sunburst/adaptor.ts","webpack://G2Plot/./src/plots/sunburst/utils.ts","webpack://G2Plot/./src/utils/hierarchy/partition.ts","webpack://G2Plot/./node_modules/regenerator-runtime/runtime.js","webpack://G2Plot/(webpack)/buildin/module.js","webpack://G2Plot/./src/plots/sunburst/interactions/index.ts","webpack://G2Plot/./src/plots/gauge/types.ts","webpack://G2Plot/./src/plots/gauge/shapes/indicator.ts","webpack://G2Plot/./src/plots/gauge/shapes/meter-gauge.ts","webpack://G2Plot/./src/plots/waterfall/index.ts","webpack://G2Plot/./src/plots/waterfall/adaptor.ts","webpack://G2Plot/./src/plots/waterfall/shape.ts","webpack://G2Plot/./src/plots/radial-bar/index.ts","webpack://G2Plot/./src/plots/radial-bar/adaptor.ts","webpack://G2Plot/./src/plots/radial-bar/utils.ts","webpack://G2Plot/./src/plots/radial-bar/constant.ts","webpack://G2Plot/./src/plots/bidirectional-bar/index.ts","webpack://G2Plot/./src/plots/bidirectional-bar/adaptor.ts","webpack://G2Plot/./src/plots/treemap/index.ts","webpack://G2Plot/./src/plots/treemap/adaptor.ts","webpack://G2Plot/./src/plots/treemap/constant.ts","webpack://G2Plot/./src/plots/treemap/interactions/index.ts","webpack://G2Plot/./src/plots/sankey/index.ts","webpack://G2Plot/./src/plots/sankey/adaptor.ts","webpack://G2Plot/./src/plots/sankey/layout.ts","webpack://G2Plot/./src/plots/sankey/sankey/index.ts","webpack://G2Plot/./src/plots/sankey/sankey/sankey.ts","webpack://G2Plot/./src/plots/sankey/sankey/helper.ts","webpack://G2Plot/./src/plots/sankey/circle.ts","webpack://G2Plot/./src/plots/sankey/interactions/index.ts","webpack://G2Plot/./src/plots/sankey/interactions/node-draggable.ts","webpack://G2Plot/./src/plots/sankey/interactions/actions/node-drag.ts","webpack://G2Plot/./src/plots/chord/index.ts","webpack://G2Plot/./src/plots/chord/adaptor.ts","webpack://G2Plot/./src/utils/transform/chord.ts","webpack://G2Plot/./src/plots/circle-packing/index.ts","webpack://G2Plot/./src/plots/circle-packing/adaptor.ts","webpack://G2Plot/./src/plots/circle-packing/utils.ts","webpack://G2Plot/./src/utils/hierarchy/pack.ts","webpack://G2Plot/./src/plots/circle-packing/interactions/index.ts","webpack://G2Plot/./src/plugin/index.ts","webpack://G2Plot/./src/plots/mix/adaptor.ts","webpack://G2Plot/./src/plots/mix/interactions/index.ts","webpack://G2Plot/./src/plots/mix/interactions/association.ts","webpack://G2Plot/./src/plots/mix/interactions/utils.ts","webpack://G2Plot/./src/plots/facet/index.ts","webpack://G2Plot/./src/plots/facet/adaptor.ts","webpack://G2Plot/./src/plots/facet/utils.ts","webpack://G2Plot/./src/plots/facet/constant.ts","webpack://G2Plot/./src/lab.ts"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","isArrayLike","isFinite","length","contains","arr","indexOf","filter","func","result","index","push","difference","values","toString","isType","type","isNil","Array","isArray","each","elements","len","isObject","k","keys","obj","isFunction","isMatch","attrs","_keys","isObjectLike","isPlainObject","getPrototypeOf","proto","find","predicate","_predicate","a","findIndex","fromIndex","firstValue","data","rst","flatten","concat","flattenDeep","reduce","prev","curr","Math","max","min","getRange","filterValues","v","isNaN","tmp","getMax","getMin","arrPrototype","splice","pull","pullAt","indexes","last","previous","fn","init","remove","str","sortBy","comparer","b","keys_1","isString","prop","sort","uniq","cache","Map","item","has","set","union","sources","apply","tmpMap","j","val","head","startsWith","e","endsWith","every","some","groupBy","condition","groupToMap","paramscondition_1","replace","split","row","unique","groups","array","getWrapBehavior","action","wrapBehavior","method","numColorCache","numberToColor","num","color","parseRadius","radius","r1","r2","r3","r4","clamp","fixedBase","base","round","substr","parseFloat","toFixed","isNumber","isDecimal","isEven","isInteger","Number","isNegative","isNumberEqual","precision","abs","isOdd","isPositive","maxItem","Infinity","minItem","mod","DEGREE","PI","toDegree","radian","parseInt","RADIAN","toRadian","degree","lowerCase","toLowerCase","lowerFirst","charAt","substring","substitute","match","slice","undefined","upperCase","toUpperCase","upperFirst","getType","isArguments","isBoolean","isDate","isError","isNull","objectProto","isPrototype","Ctor","constructor","isRegExp","isUndefined","isElement","Element","HTMLDocument","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","f","setTimeout","cancelAnimationFrame","handler","webkitCancelAnimationFrame","mozCancelAnimationFrame","msCancelAnimationFrame","clearTimeout","_mix","dist","mix","src1","src2","src3","augment","args","clone","debounce","wait","immediate","timeout","context","arguments","later","callNow","resolver","TypeError","memoized","_deepMix","src","level","maxLevel","deepMix","extend","subclass","superclass","overrides","staticOverrides","Tmp","superObj","isEmpty","size","isEqual","other","valueKeys","otherKeys","map","identity","forEach","defaultValue","keyArr","path","idx","includes","options","leading","Date","now","throttled","remaining","trailing","cancel","prefix","isArraylike","ctx","memoize","text","font","fontFamily","fontWeight","fontStyle","fontVariant","document","createElement","getContext","fontSize","join","measureText","width","maxWidth","currentText","currentWidth","PLACEHOLDER_WIDTH","measureTextWidth","leftText","leftWidth","default_1","def","extendStatics","setPrototypeOf","__proto__","__extends","String","__","this","__assign","assign","__rest","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","target","desc","getOwnPropertyDescriptor","Reflect","decorate","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","done","then","__generator","body","y","g","_","label","sent","trys","ops","verb","iterator","op","pop","__createBinding","k2","__exportStar","__values","__read","ar","error","__spread","__spreadArrays","il","jl","__spreadArray","to","from","pack","__await","__asyncGenerator","asyncIterator","q","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__setModuleDefault","__importStar","__importDefault","default","__classPrivateFieldGet","receiver","state","kind","__classPrivateFieldSet","flow","pick","template","log","invariant","LEVEL","getContainerSize","tslib_1","findViewById","getViews","getSiblingViews","transformLabel","getSplinePath","deepAssign","kebabCase","renderStatistic","renderGaugeStatistic","isBetween","isRealNumber","leftTranslate","out","transMat","mat3","fromTranslation","multiply","leftRotate","rad","rotateMat","fromRotation","leftScale","scaleMat","fromScaling","transform","actions","a1","matrix","direction","v1","v2","angleTo","direct","ang","vec2","angle","angleLargeThanPI","vertical","flag","formatPadding","padding","top","left","right","bottom","clearDom","container","children","childNodes","removeChild","hasClass","cName","className","RegExp","regionToBBox","region","end","minX","start","x","minY","maxX","maxY","height","pointsToBBox","points","xs","point","ys","createBBox","getValueByPercent","percent","getCirclePoint","center","cos","sin","near","EPSILON","getBBoxWithClip","element","bbox","box1","box2","clipShape","getClip","clipBBox","getBBox","isGroup","minX_1","maxX_1","minY_1","maxY_1","getChildren","child","box","leftTop","applyToMatrix","leftBottom","rightTop","rightBottom","boxMinX","boxMaxX","boxMinY","boxMaxY","updateClip","newElement","newClipShape","clipCfg","attr","setClip","toPx","number","getTextPoint","position","offset","p1","p2","dx","dy","offsetPercent","sqrt","textColor","activeTextColor","uncheckedColor","lineColor","regionColor","verticalAxisRotate","horizontalAxisRotate","getPixelRatio","devicePixelRatio","distance","x1","y1","x2","y2","inBox","intersectRect","mergeRegion","region1","region2","isSamePoint","point1","point2","_super","_this","getElementById","utils_1","getDefaultOptions","createG2","bindEvents","Plot","renderer","xAxis","nice","autoRotate","autoHide","cfg","minGap","yAxis","animation","defaultInteractions","chart","g2_1","autoFit","getChartSize","localRefresh","setAttribute","chartSize","on","emit","clear","animate","views","execAdaptor","render","bindSizeSensor","updateOption","status","util_1","ele","getData","setState","stateObjects","states","getStates","geometry","update","changeSize","annotations","incoming","controller","getController","current","getComponents","co","extra","annotation","id","unbindSizeSensor","destroy","off","removeAttribute","adaptor","getSchemaAdaptor","appendPadding","forceFit","unbind","_a","size_sensor_1","triggerResize","event_emitter_1","SHAPE_TO_TAGS","rect","circle","line","marker","polyline","polygon","image","ellipse","dom","SVG_ATTR_MAP","opacity","fillStyle","fill","fillOpacity","strokeStyle","strokeOpacity","stroke","rx","ry","lineCap","lineJoin","lineWidth","lineDash","lineDashOffset","miterLimit","startArrow","endArrow","class","style","preserveAspectRatio","LAYER","DIRECTION","COMPONENT_TYPE","VIEW_LIFE_CIRCLE","GEOMETRY_LIFE_CIRCLE","PLOT_EVENTS","ELEMENT_STATE","GROUP_Z_INDEX","GROUP_ATTRS","ENGINES","getEngine","G","Error","registerEngine","engine","w","h","getComputedStyle","clientWidth","paddingLeft","paddingRight","clientHeight","paddingTop","paddingBottom","getElementSize","visible","Base","changeVisible","destroyed","EE","toScaleString","scale","invert","_parseCfg","Attribute","params","param","_toOriginParam","scales","callback","steps","floor","leftPercent","names","field","_getAttributeValue","_b","_c","_d","ret","defaultCallback","isCategory","linear","translate","getLinearValue","isLinear","gradient","colorUtil","Color","Position","scaleX","scaleY","xi","yi","Shape","ATTRIBUTE_MAP","getAttribute","registerAttribute","ctor","Opacity","Size","isTransposed","originalMatrix","Coordinate","initial","dim","isReflect","tag","vector","vec3","transformMat3","inverted","convertPoint","applyMatrix","invertMatrix","invertPoint","ext","isReflectX","isReflectY","s1","s2","Cartesian","convertDim","invertDim","endAngle","innerRadius","startAngle","Helix","maxRadius","thi","newY","subtract","rMin","Polar","oneBox","getOneBox","oneWidth","oneHeight","circleCenter","polarRadius","getCenter","vPoint","vStart3","vStart2","xPercent","yPercent","COORDINATE_MAP","registerCoordinate","LineAxis","Axis","CircleAxis","LineGrid","Grid","CircleGrid","CategoryLegend","Legend","ContinuousLegend","HtmlTooltip","Tooltip","uniqueValues","Set","mid","polarToCartesian","centerX","centerY","angleInRadian","getSectorPath","startAngleInRadian","endAngleInRadian","innerStart","innerEnd","middlePoint","innerMiddlePoint","circlePathCommands","arcSweep","sectorPathCommands","getArcPath","getAngle","shapeModel","coordinate","getPointsBox","coordStartAngle","diffAngle","getReplaceAttrs","sourceShape","targetShape","originAttrs","newAttrs","omit","sourceArray","targetArray","_i","source","BBox","subBBox","TOP","TOP_LEFT","TOP_RIGHT","fromRange","RIGHT","RIGHT_TOP","RIGHT_BOTTOM","BOTTOM","BOTTOM_LEFT","BOTTOM_RIGHT","LEFT","LEFT_TOP","LEFT_BOTTOM","gap","getXDimensionLength","isPolar","getRadius","convert","pow","getDistanceToCenter","isPointInCoordinate","getAngleByPoint","atan2","getCoordinateClipCfg","margin","endState","getWidth","getHeight","endAngle_1","center_1","radius_1","startState","startAngle_1","ratio","diff","dateRegex","inferScaleType","scaleDef","attrType","geometryType","createScaleByField","validData","getScale","valuesOfKey","test","getDefaultType","getName","alias","getDefaultCategoryScaleRange","theme","range","count","isFullCircle","getAxisRegion","isRect","getLineAxisRelativeRegion","getCircleAxisRelativeRegion","isVertical","getAxisFactorByRegion","getAxisThemeCfg","axisTheme","getAxisTitleOptions","axisOptions","getCircleAxisCenterRadius","startVector","normalVector","getAxisOption","axes","getAxisDirection","axisOption","getAxisTitleText","view","facets","getDefaultCfg","Facet","createContainer","generateFacets","renderViews","clearFacetViews","facet","createView","beforeEachView","eachView","afterEachView","getLayer","FORE","addGroup","createFacetViews","facetToView","removeView","viewBBox","spacing","rows","cols","xIndex","yIndex","parseSpacing","xSpacing","ySpacing","xRatio","yRatio","showTitle","fields","getTheme","getOptions","coordinateOption","geometries","getXYFields","xOption","yOption","getXAxisOption","getYAxisOption","conditions","datum","Facets","getFacet","registerFacet","Action","addAction","applyCfg","removeAction","CallbackAction","ActionCache","getActionClass","actionName","actionOption","registerAction","ActionClass","createCallbackAction","_convertArr","coord","_convertArcPath","catmullRom2bezier","crp","z","constraint","isLoop","pointList","cp1","cp2","controlPointList","smooth","prevPoint","nextPoint","nextCp0","cp0","cps","hasConstraint","sub","d0","d1","sum","add","smoothBezier","getLinePath","isInCircle","length_1","_points2path","constaint","first","prePoint","splinePath","unshift","convertPolarPath","pre","cur","transposed","subPath","curPoint","xDim","angleRange","middleConvertPoint","_convertPolarPath","_filterFullCirleLine","getMaskBBox","tolerance","maskBBox","event","getCanvasBBox","getCurrentElement","getDelegationObject","delegateObject","isElementChange","gEvent","fromShape","toShape","isList","component","isSlider","isMask","getMaskedElements","maskPath","maskShape","getMaskPath","getElements","pathToPoints","el","shapePoints","shape","shapeBBox","isPolygonsIntersect","getIntersectElements","getSiblingMaskElements","sibling","getSiblingPoint","geom","subView","getElementsByState","stateName","getElementsBy","hasState","getElementValue","record","getModel","seg","isInBox","getSilbings","parent","siblings","normalPoint","getCoordinate","point2Normalize","isInRecords","records","xFiled","yField","isIn","getScaleByField","cacheMap","Context","HTMLElement","getCanvas","getPointByClient","clientX","clientY","getCurrentPoint","isPointInPlot","getCurrentShape","components","Interaction","initEvents","clearEvents","parseAction","actionStr","arg","getAction","createAction","methodName","executeAction","actionObject","STEP_NAMES","GrammarInteraction","initContext","callbackCaches","stepArr","stepName","getActionCallback","bindEvent","trigger","offEvent","InteractionContext","subSteps","actionArr","argArr_1","currentStepName","isAllowStep","getKey","once","emitCaches","isEnable","enterStep","actionCallback","isAllowExecute","afterExecute","throttle","eventName","nameArr","addEventListener","removeEventListener","Interactions","getInteraction","registerInteraction","interaction","createThemeByStyleSheet","styleSheet","shapeStyles","pointFillColor","pointSize","pointBorderColor","pointBorder","pointFillOpacity","active","pointActiveBorderColor","pointActiveBorder","selected","pointSelectedBorderColor","pointSelectedBorder","inactive","pointInactiveFillOpacity","pointInactiveBorderOpacity","hollowPoint","hollowPointFillColor","hollowPointBorder","hollowPointBorderColor","hollowPointBorderOpacity","hollowPointSize","hollowPointActiveBorderColor","hollowPointActiveBorderOpacity","hollowPointSelectedBorder","hollowPointSelectedBorderColor","hollowPointSelectedBorderOpacity","hollowPointInactiveBorderOpacity","area","areaFillColor","areaFillOpacity","areaActiveFillOpacity","areaSelectedFillOpacity","areaInactiveFillOpacity","hollowArea","hollowAreaBorderColor","hollowAreaBorder","hollowAreaBorderOpacity","hollowAreaActiveBorder","hollowAreaSelectedBorder","hollowAreaInactiveBorderOpacity","interval","intervalFillColor","intervalFillOpacity","intervalActiveBorderColor","intervalActiveBorder","intervalSelectedBorderColor","intervalSelectedBorder","intervalInactiveFillOpacity","intervalInactiveBorderOpacity","hollowInterval","hollowIntervalFillColor","hollowIntervalBorderColor","hollowIntervalBorder","hollowIntervalBorderOpacity","hollowIntervalActiveBorderColor","hollowIntervalActiveBorder","hollowIntervalActiveBorderOpacity","hollowIntervalSelectedBorderColor","hollowIntervalSelectedBorder","hollowIntervalSelectedBorderOpacity","hollowIntervalInactiveBorderColor","hollowIntervalInactiveBorder","hollowIntervalInactiveBorderOpacity","lineBorderColor","lineBorder","lineBorderOpacity","lineAppendWidth","lineActiveBorder","lineSelectedBorder","lineInactiveBorderOpacity","axisStyles","title","axisTitleSpacing","axisTitleTextFillColor","axisTitleTextFontSize","lineHeight","axisTitleTextLineHeight","textBaseline","autoEllipsis","axisLabelOffset","axisLabelFillColor","axisLabelFontSize","axisLabelLineHeight","axisLineBorder","axisLineBorderColor","grid","axisGridBorderColor","axisGridBorder","axisGridLineDash","alignTick","tickLine","axisTickLineBorder","axisTickLineBorderColor","axisTickLineLength","subTickLine","createAxisStyles","legendStyles","symbol","legendMarkerSpacing","legendCircleMarkerSize","legendMarkerColor","itemName","legendItemNameFillColor","legendItemNameFontSize","legendItemNameLineHeight","legendItemNameFontWeight","textAlign","itemStates","nameStyle","unchecked","markerStyle","flipPage","pageNavigator","legendPageNavigatorMarkerSize","inactiveFill","legendPageNavigatorMarkerInactiveFillColor","inactiveOpacity","legendPageNavigatorMarkerInactiveFillOpacity","legendPageNavigatorMarkerFillColor","legendPageNavigatorMarkerFillOpacity","legendPageNavigatorTextFillColor","legendPageNavigatorTextFontSize","maxItemWidth","itemSpacing","legendItemSpacing","itemMarginBottom","legendItemMarginBottom","legendPadding","createLegendStyles","background","backgroundColor","defaultColor","brandColor","subColor","semanticRed","paletteSemanticRed","semanticGreen","paletteSemanticGreen","columnWidthRatio","maxColumnWidth","minColumnWidth","roseWidthRatio","multiplePieWidthRatio","colors10","paletteQualitative10","colors20","paletteQualitative20","sequenceColors","paletteSequence","shapes","sizes","middleAngle","tick","funnel","pyramid","dot","dash","hv","vh","hvh","vhv","square","bowtie","diamond","hexagon","triangle","cross","plus","hyphen","schema","candle","edge","arc","violin","hollow","axis","common","verticalLimitLength","legend","layout","legendVerticalPadding","legendHorizontalPadding","continuous","track","rail","sliderRailHeight","defaultLength","sliderRailWidth","sliderRailFillColor","sliderRailBorderColor","sliderRailBorder","align","formatter","sliderLabelTextFillColor","sliderLabelTextFontSize","sliderLabelTextLineHeight","sliderHandlerWidth","sliderHandlerFillColor","sliderHandlerBorderColor","slidable","tooltip","showContent","follow","showCrosshairs","showMarkers","shared","enterable","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","crosshairs","tooltipCrosshairsBorderColor","tooltipCrosshairsBorder","textBackground","domStyles","TOOLTIP_CSS_CONST","CONTAINER_CLASS","visibility","zIndex","transition","tooltipContainerFillColor","tooltipContainerFillOpacity","boxShadow","tooltipContainerShadow","borderRadius","tooltipContainerBorderRadius","tooltipTextFillColor","tooltipTextFontSize","tooltipTextLineHeight","TITLE_CLASS","marginBottom","marginTop","LIST_CLASS","listStyleType","LIST_ITEM_CLASS","marginLeft","marginRight","MARKER_CLASS","display","VALUE_CLASS","float","annotationArcBorderColor","annotationArcBorder","annotationLineBorderColor","annotationLineDash","annotationLineBorder","annotationTextFillColor","annotationTextBorderColor","annotationTextBorder","annotationTextFontSize","annotationRegionBorder","annotationRegionBorderColor","annotationRegionFillColor","annotationRegionFillOpacity","dataMarker","annotationDataMarkerLineLength","autoAdjust","dataRegion","slider","backgroundStyle","cSliderBackgroundFillColor","cSliderBackgroundFillOpacity","foregroundStyle","cSliderForegroundFillColor","cSliderForegroundFillOpacity","handlerStyle","cSliderHandlerWidth","cSliderHandlerHeight","cSliderHandlerFillColor","cSliderHandlerFillOpacity","cSliderHandlerBorderColor","cSliderHandlerBorder","cSliderHandlerBorderRadius","highLightFill","cSliderHandlerHighlightFillColor","textStyle","cSliderTextFillColor","cSliderTextFillOpacity","cSliderTextFontSize","cSliderTextLineHeight","cSliderTextFontWeight","cSliderTextBorderColor","cSliderTextBorder","scrollbar","trackColor","scrollbarTrackFillColor","thumbColor","scrollbarThumbFillColor","hover","scrollbarThumbHighlightFillColor","labels","labelFillColor","labelFontSize","labelBorderColor","labelBorder","fillColorDark","labelFillColorDark","fillColorLight","labelFillColorLight","innerLabels","innerLabelFillColor","innerLabelFontSize","innerLabelBorderColor","innerLabelBorder","overflowLabels","overflowLabelFillColor","overflowLabelFontSize","overflowLabelBorderColor","overflowLabelBorder","pieLabels","labelHeight","labelLine","labelLineBorder","BLACK_COLORS","WHITE_COLORS","QUALITATIVE_10","QUALITATIVE_20","SINGLE_SEQUENCE","createLightStyleSheet","_e","_f","_g","paletteSemanticYellow","_h","_j","_k","axisLineDash","axisTitleTextFontWeight","axisSubTickLineBorderColor","axisSubTickLineLength","axisSubTickLineBorder","axisLabelFontWeight","legendTitleTextFillColor","legendTitleTextFontSize","legendTitleTextLineHeight","legendTitleTextFontWeight","legendMarkerSize","legendSquareMarkerSize","legendLineMarkerSize","sliderLabelTextFontWeight","sliderHandlerHeight","sliderHandlerBorder","annotationTextLineHeight","annotationTextFontWeight","tooltipCrosshairsLineDash","tooltipTextFontWeight","labelLineHeight","labelFontWeight","innerLabelLineHeight","innerLabelFontWeight","overflowLabelLineHeight","overflowLabelFontWeight","labelLineBorderColor","cSliderRailHieght","pointBorderOpacity","hollowPointActiveBorder","areaActiveFillColor","areaSelectedFillColor","hollowAreaActiveBorderColor","hollowAreaSelectedBorderColor","intervalActiveBorderOpacity","intervalSelectedBorderOpacity","createTheme","themeCfg","styleSheetCfg","themeObject","Themes","registerTheme","snapEqual","value1","value2","filterYValue","yScale","getYScale","yValue","originData","getXDistance","scaleValues","numericValue","getTooltipValueScale","attributes","attribute","getAttributesForLegend","tmpScale","scaleDefs","xScale","getXScale","findDataByPoint","xField","xValue","rangeMax","rangeMin","getXValueByPoint","firstXValue","firstYValue","lastXValue","isYArray","firstIdx","lastIdx","middleIdx","getTooltipItems","showNil","tooltipTitle","getFields","titleField","titleScale","getText","getTooltipTitle","tooltipOption","items","addItem","itemValue","mappingData","callbackParams","itemCfg","valueScale","eachValue","getTooltipValue","nameScale","groupScales","getGroupScales","getTooltipName","getTooltipItemsByFindData","tooltipCfg","dataArray","elementId","getElementId","elementsMap","getTooltipItemsByHitShape","getShape","findItemsFromView","reversed","tooltipItems","reverse","parsePadding","paddingArray","LOAD_COMPONENT_CONTROLLERS","registerComponentController","plugin","option","wrapperOption","CoordinateController","isTheta","props","C","hasAction","transpose","execActions","resetMatrix","sx","sy","includeActions","Event","GEvent","originalEvent","defaultLayout","syncScales","ScalePool","finalScaleDef","cacheScaleMeta","getScaleMeta","cacheScale","cacheScaleDef","scaleKeys","syncKey","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","isContinuous","change","sm","newScale","syncScale","getSyncKey","removeFromSyncScales","scaleMeta","delete","sync","PaddingCal","getPadding","calculatePadding","isAutoPadding","paddingCal","axisComponents","paddingComponents","otherComponents","AXIS","LEGEND","SLIDER","SCROLLBAR","GRID","TOOLTIP","bboxObject","getLayoutBBox","exceed","componentPadding","componentBBox","expand","inc","defaultSyncViewPadding","PC","syncPadding","instance","autoPadding","evt","createViewEvent","doPlotEvent","uniqueId","canvas","backgroundGroup","middleGroup","foregroundGroup","limitInPlot","syncViewPadding","View","layoutFunc","calculateViewBBox","initComponentController","initOptions","isUpdate","payload","BEFORE_RENDER","fromData","paint","AFTER_RENDER","BEFORE_CLEAR","filteredData","coordinateInstance","isDataChanged","isCoordinateChanged","labelsContainer","controllers","createdScaleKeys","getRootView","scalePool","deleteScale","AFTER_CLEAR","BEFORE_DESTROY","interactions","draw","console","warn","filters","legendOption","scaleOption","coordinateCfg","coordinateController","facetInstance","coordinateBBox","opt","existInteraction","interaciton","createInteraction","BEFORE_CHANGE_DATA","changeData","AFTER_CHANGE_DATA","sharedOptions","getOption","legends","removedView","yScales","dimType","defaultKey","getScaleKey","layer","BG","MID","getGroupAttributes","xScales","getScalesByDim","showTooltip","hideTooltip","lockTooltip","unlockTooltip","isTooltipLocked","dataLen","snapRecords","getSnapRecords","curStart","curEnd","bl","tr","adjust","renderDataRecursive","BEFORE_PAINT","renderPaddingRecursive","renderLayoutRecursive","renderBackgroundStyleShape","renderPaintRecursive","AFTER_PAINT","backgroundStyleRectShape","addShape","capture","toBack","adjustCoordinate","initComponents","shrink","syncViewPaddingFn","doLayout","paintGeometries","renderComponents","currentScaleDef","mergedScaleDef","createScale","doFilterData","createCoordinate","initGeometries","renderFacet","onDelegateEvents","onCanvasEvent","usedControllers","controllerName","currentInPlot","newEvent","TYPE","isPreMouseInPlot","MOUSE_LEAVE","LEAVE","MOUSE_ENTER","ENTER","filterData","createOrUpdateScales","getGeometryScales","adjustScales","getScaleFields","groupedFields","getGroupedFields","getGroupFields","adjustCategoryScaleRange","xyScales","getYScales","scaleOptions","isIdentity","doAnimation","canvasRegion","events","geometryOption","createGeometry","interactionOption","viewOption","annotationComponent","annotationOption","eventCallback","rest","geometry_1","registerGeometry","pixelRatio","supportCSSTransform","wrapperElement","createDom","appendChild","Canvas","updateCanvasStyle","bindAutoFit","initDefaultInteractions","Chart","ariaOption","BEFORE_CHANGE_SIZE","AFTER_CHANGE_SIZE","aria","unbindAutoFit","parentNode","modifyCSS","verticalAlign","onResize","Controller","includeOption","show","hide","isVisible","getTitle","dataPoint","getTooltipCfg","lastItems","lastTitle","tooltipMarkersGroup","renderTooltip","getItemsAfterProcess","renderTooltipMarkers","isCrosshairsFollowCursor","renderCrosshairs","xCrosshair","yCrosshair","isLocked","setCapture","guideGroup","reset","tooltipCrosshairsGroup","snapItem","aItem","yDistance","uniqItems","subItem","getContainer","getBoundingClientRect","isPointIn","processOption","processCustomContent","defaultCfg","currentCustomContent","customContent","content","getTooltipMarkersGroup","rootView","attrs_1","crosshairsType","renderXCrosshairs","renderYCrosshairs","getViewWithGeometry","getTooltipCrosshairsGroup","getCrosshairsText","Crosshair","Line","textCfg","firstItem","getGuideGroup","toFront","childView","originalItems","customItems","ANIMATIONS_MAP","getAnimation","registerAnimation","DEFAULT_ANIMATE_CFG","appear","duration","easing","enter","leave","GEOMETRY_ANIMATE_CFG","delay","GEOMETRY_GROUP_APPEAR_ANIMATION","getDefaultAnimateCfg","elementName","animateType","animateCfg","doAnimate","parsedAnimateCfg","repeat","parseAnimateConfig","animateFunction","toAttrs","shapeFactory","offscreenGroup","elementIndex","model","shapeType","getShapeType","drawShape","setShapeInfo","getOffscreenGroup","newShape","origin","syncShapeStyle","getAnimateCfg","labelShape","statesStyle","stateStatus","sortZIndex","setZIndex","offscreenShape","eventObject","propagationDelegate","labelBBox","stateOption","defaultShapeType","stateTheme","shapeKey","getStatesStyle","stateCfg","shapeStyle","cfg_1","AFTER_DRAW_ANIMATE","name_1","BEFORE_DRAW_ANIMATE","GroupCtor","getGroupBase","clip","newClip","newChildren","name_2","getStateStyle","stopAnimate","GEOMETRY_LABELS_MAP","GEOMETRY_LABELS_LAYOUT_MAP","getGeometryLabel","registerGeometryLabel","getGeometryLabelLayout","registerGeometryLabelLayout","layoutFn","ShapeFactoryBase","getShapePoints","shapePoint","getPoints","getDefaultPoints","getDefaultStyle","geometryTheme","getMarker","markerCfg","ShapeBase","parsePath","parsedPath","parsePathString","convertNormalPath","parsePoint","parsePoints","ShapeFactoryMap","registerShapeFactory","factoryName","geomObj","registerShape","shapeObj","getShapeFactory","isModelChange","currentModel","preModel","parseFields","keyItem","added","updated","removed","keyIncluded","sortable","intervalPadding","dodgePadding","zIndexReversed","userTheme","Geometry","positionCfg","attributeOption","createAttrOption","adjustCfg","adjusts","adjustOption","styleFunc","styleOption","animateOption","secondParam","thirdParam","labelOption","customOption","setCfg","initAttributes","processData","adjustScale","lastAttributeOption","defaultSize","beforeMappingData","beforeMapping","mapping","updateElements","lastElementsMap","canDoGroupAnimation","yMinPoint","getYMinValue","minYPoint","doGroupAppearAnimate","renderLabels","geometryLabel","idFields","hasSorted","attrName","adjustType","shapeName","xVal","yVal","length_2","dodgeAdjust","getAdjust","dodgeBy","attributeType","eachOpt","length_3","uniqMap","groupFields","length_4","attributeName","mappingArray","xScale_1","xField_1","obj1","obj2","updateStackRange","normalizeValues","y0","mappingDatum","shapeCfg","getDrawCfg","customInfo","defaultStyle","getStyleCfg","generatePoints","nextPoints","mappingDataArray","keyDatum","keyIndex","finalKey","currentShapeCfg","preShapeCfg","coordinateType","labelType","attrCfg","AttributeCtor","getAttributeClass","categoryScales","groupedArray","groupData","beforeAdjust","subData","subLen","adjustData","xScale_2","xDimensionLength","groupNum","sizeAttr","adjustNames","dodgeRatio","getDefaultValue","reverseOrder","adjustCtor","getAdjustClass","dimValuesMap","adjustInstance","process","appendConditions","eachGroup","group","mergeArray","tmpMin","tmpMax","length_5","currentData","generateShapePoints","nextData","shapeAttr","createShapePointsCfg","getAttributeValues","newRecord","_origin","mappingRecord","rstX","rstY","xLen","yLen","getLabelType","labelsMap","labelsRenderer","shapesMap","labelId","filterLabelsById","labelChildren","getMatrix","setMatrix","rotate","rotateRadian","getRotateMatrix","findLabelTextShape","getlLabelBackgroundInfo","labelGroup","labelItem","boxPadding","rotation","checkShapeOverlap","dones","lastShapesMap","Labels","createOffscreenGroup","renderLabel","renderLabelLine","renderLabelBackground","adjustLabel","origin_1","currentAnimateCfg","currentShape","updateLabel","updateAnimateCfg","fromChild","toChild","getChildByIndex","getCount","deleteShape","shapeAppendCfg","isShape","layouts","labelShapes_1","geometryShapes_1","labelItems","labelLineCfg","labelContentShape","backgroundShape","labelShapes","findAll","offsetX","offsetY","avg","GeometryLabel","mapppingArray","labelCfgs","getLabelCfgs","labelCfg","labelContent","total","subIndex","getLabelPoint","getLabelAlign","getLabelItems","getLabelsRenderer","getGeometryShapes","defaultLabelCfg","getDefaultLabelCfg","labelPointCfg","getOffsetVector","factor","offsetPoint","getDimValue","isAvg","isFunnel","centroid","former","getPolygonCentroid","setLabelPosition","getLabelOffsetPoint","labelScales","callbackCfg","originText","getLabelText","originValues","getLabelId","getLabelOffset","labelTexts","subVal","actualOffset","getMappingValue","restArgs","MarkerSymbols","diffX","diffY","STROKES_SYMBOLS","setMarkerSymbol","getLegendLayout","getLegendItems","themeMarker","userMarker","field_1","colorAttr_1","shapeAttr_1","defaultColor_1","isInPolar_1","getTicks","scaleValue","filterFieldData","getShapeMarker","isInPolar","adpatorMarkerStyle","getLegendThemeCfg","legendTheme","isValueEmpty","isYNil","getPathPoints","connectNulls","showSinglePoint","filtered","getViolinPath","getSmoothViolinPath","half","leftPoints","rightPoints","leftPath","rightPath","getStyle","isStroke","isFill","sizeName","getBackgroundRectStyle","splitPoints","eachY","LineSymbols","getLineMarker","getSinglePath","getPath","isStack","topPoints","bottomPoints","topPath","bottomPath","getRangePath","shapeAttrs","eachLinePoints","getShapeAttrs","LineShapeFactory","VERSION","Util","zoom","antvDark","legendSpacing","overflowLabelFillColorDark","overflowLabelFillColorLight","createDarkStyleSheet","Path","keyData","getShapeInfo","getPointsAndData","registeredShape","topLinePoints_1","bottomLinePoints_1","pointsData","parsedPoints","pathPoints","eachPoints","getConstraint","pointInfo","yItem","AreaShapeFactory","startOnZero","Area","EdgeShapeFactory","Heatmap","prepareRange","prepareSize","blur_1","prepareGreyScaleBlurredCircle","drawWithRange","clearShadowCanvasCtx","paletteCache","colorField","getDefaultSize","blur","grayScaleBlurredCanvas","getGrayScaleBlurredCanvas","clearRect","beginPath","closePath","valueField","getShadowCanvasCtx","alpha","drawGrayScaleBlurredCircle","colored","getImageData","colorize","putImageData","imageShape","getImageShape","ticks","shadowCanvas","globalAlpha","drawImage","img","colorAttr","pixels","palette","ColorUtil","rgb2arr","getRectPoints","yMin","yMax","xMin","xMax","getRectPath","isClosed","firstPoint","minLength","getBackgroundRectPath","p0","getFunnelPath","isPyramid","swap","backgroundCfg","backgroundPath","p3","getRectWithCornerRadius","coor","getIntervalRectPath","xValues","sourceArr","findMinDistance","normalizedSize","wr","dodgeCount","mergeData","getDodgeCount","normalizedMaxColumnWidth","normalizedMinColumnWidth","Interval","SHAPES","drawPoints","pointPosition","PointShapeFactory","Point","subX","subY","PolygonShapeFactory","Polygon","temp","xOffset","yOffset","Schema","sizeArr","maxValue","normalizeSize","_size","isMin","isMax","ViolinShapeFactory","Violin","_sizeField","sizeField","getCPath","getQPath","getArcShapePath","arc1","arc2","getArcShapeWeightPath","c1","c2","getSmoothPath","getVHVPath","newStyle","getTickPoints","getInterpolateShapeAttrs","interpolatePoints","interpolatePoint","nextX","nextY","middleX","middleY","interpolateCallback","getInterpolatePoints","getInterpolatePath","parseValue","min1","max1","median","getBoxPoints","pointsArray","halfSize","getCandleYValues","sorted","targetLength","padValue","padEnd","sourceLength","getCandlePoints","yValues","getRectAttrs","IntervalLabel","dir","getLabelValueDir","point0","nextP0","nextP1","HALF_PI","PolarLabel","labelEmit","arcPoint","isToMiddle","getMiddlePoint","getArcPoint","getPointAngle","isLabelEmit","labelPositionCfg","getLabelRotate","labelAngle","asin","PieLabel","isLabelLimit","startPoint","endPoint","antiCollision","plotRange","invisible","overlapping","startY","endY","totalHeight","MIN_VALUE","boxes","targets","pos","previousBox","posInCompositeBox","bitmap","xGap","yGap","Greedy","hasGap","adjustLabelPosition","getAxes","rotateAtPoint","deg","getProjection","scalars","isProjectionOverlap","projection1","projection2","isValidNumber","isValidBox","isIntersect","isIntersectRect","rect1Points","rect2Points","preset","shouldInShape","textShape","textBBox","fromObject","shouldInShapeSingle","hasSome","compare","rightText","doScaleAnimate","endMatrix","scaledMatrix","transformShape","arcPath","getArcParams","getArcStartPoint","getArcInfo","arcPaths","command","firstArcPathCommand","lastArcPathCommand","firstIndex","lastIndex","firstStartPoint","lastStartPoint","firstStartAngle","firstEndAngle","lastStartAngle","lastEndAngle","doShapeZoom","getFactTitleConfig","getAnglePoint","Circle","getDefaultTitleCfg","renderTitle","avgAngle","facetR","middle","processAxis","getFieldValues","facetData","getFacetDataFilter","getRegion","columnValue","columnField","columnIndex","columnValuesLength","rowValue","rowField","rowIndex","rowValuesLength","config","List","colValues","getPageCount","getRowCol","col","pageSize","Matrix","columnTitle","rowTitle","facetIndex","Mirror","reflect","columnValues","rowValues","Rect","drawLines","Tree","afterChartRender","rootFacet","getRows","getChildFacets","setRegion","forceColIndex","xWidth","yWidth","leafs","isLeaf","getFacetsByLevel","originColIndex","getRegionIndex","addFacetLines","subFacet","subRegion","middle1","middle2","drawLine","getMedian","getNormalizedValue","scaled","ANNOTATIONS_AFTER_RENDER","foregroundContainer","backgroundContainer","Annotation","onAfterRender","updateOrCreate","getCacheKey","syncCache","updateCache","clearComponents","doWhat","AnnotationComponent","getAnnotationTheme","getAnnotationCfg","isTop","NONE","ANNOTATION","xPos","yPos","parsePercentPosition","startIndex","viewData","startXValue","endXValue","parsePosition","topLeft","sp","ep","textPoint","textContent","getCoordinateBBox","start_5","end_5","lineLength","getRegionPoints","apply_1","shapes_1","addShapes_1","elem","render_1","restOptions","html_1","html","getComponentContainer","createAnnotation","newCache","getGridThemeCfg","getLineGridItems","tickValue","preTick","currentTick","currentIndex","currentValue","middleValue","getCircleGridItems","preValue","showGrid","userGrid","themeGrid","OMIT_CFG","AXIS_DEFAULT_ANIMATE_CFG","gridContainer","gridForeContainer","axisContainer","axisForeContainer","updatedCache","updateXAxes","updateYAxes","xAxisOption","axisId","getId","gridId","getLineAxisCfg","createLineAxis","getLineGridCfg","createLineGrid","RADIUS","getCircleAxisCfg","createCircleAxis","getCircleGridCfg","CIRCLE","createCircleGrid","yAxisOption","titleText","axisThemeCfg","optionWithTitle","verticalFactor","isAxisVertical","canvasWidth","canvasHeight","gridThemeCfg","gridCfg","verticalScale","directionToPosition","parentBBox","tl","br","getLegendOption","getDirection","layoutBBox","maxWidthRatio","maxHeightRatio","maxSize","getCategoryLegendSizeCfg","maxHeight","setLocation","cut","existCo","getComponentById","customCfg","getCategoryCfg","createCustomLegend","loopLegends","getContinuousCfg","createFieldLegend","getGeometries","doEach","looped","createContinuousLegend","createCategoryLegend","containMin","containMax","attrValue","attrLegendCfg","colors","mergeLegendCfg","custom","themePageNavigator","userPageNavigator","itemMarker","getCustomLegendItems","baseCfg","categoryCfg","vw","noop","changeViewData","onChangeFn","onValueChange","resetMeasure","Slider","getSliderCfg","updateSlider","createSlider","measureSlider","getMinMaxText","minText","maxText","SliderComponent","trendCfg","getThemeOptions","ticks_1","dataSize","xTickCount","minIndex","maxIndex","xScaleValues","getValidScrollbarCfg","originalAnimate","getScrollRange","trackLen","thumbLen","Scrollbar","updateScrollbar","createScrollbar","measureScrollbar","getScrollbarComponentCfg","isHorizontal","thumbOffset","cnt","xScaleCfg","yScalesCfg","thumbHighlightColor","restStyles","getScrollbarData","getStep","getCnt","startIdx","endIdx","tickMethod","ScrollbarComponent","realConfig","categorySize","getScrollbarTheme","DEFAULT_REGION_PATH_STYLE","getItemsOfView","findItemsFromViewRecurisive","ActiveRegion","ev","xValue_1","elements_1","coordinate_1","firstBBox_1","lastBBox_1","groupBBox_1","appendRatio","appendWidth","firstElement","lastElement","innterRadius","regionPath","TooltipAction","lastTimeStamp","timeStamp","preLoc","location","curLoc","isCursorEntered","SiblingTooltip","siblingPoint","EllipsisText","tipContent","tooltipStyles","StateBase","enable","setStateEnable","clearViewState","setElementState","getItem","ElementState","list","ignoreListItemStates","setElementsStateByItem","isMathItem","setStateByElement","isItemIgnore","event_1","setStateByComponent","ElementActive","StateAction","LinkByColor","nextElement","nextBBox","activeStyle","getLinkPath","getColorScale","getElementsByField","group_1","linkGroup","count_1","nextEl","addLinkShape","linkByElement","removeLink","ElementRangeState","isStarted","effectSiblings","effectByRecord","setSiblingsState","allElements","setSiblingsStateByRecord","setElementsState","effectElements","ElementRangeActive","ElementSingleState","ElementSingleActive","clearHighlight","setHighlightBy","EVENTS","STATUS_UNACTIVE","INACTIVE","STATUS_ACTIVE","ACTIVE","ElementHighlight","setElementHighlight","activeElements","allCancel_1","HighlightColor","highlightElements","Highlight","HighlightX","ElementRangeHighlight","BEFORE_HIGHLIGHT","AFTER_HIGHLIGHT","ElementSingleHighlight","ElementRangeSelected","ElementMultipleSelected","ElementSingleSelected","ListState","info","allowSetStateByElement","getAllowComponents","clearItemsState","componentNames","ignoreStates","ignoreItemStates","setItemsState","allowSetStateByItem","setItemState","getItems","triggerInfo","getTriggerListInfo","clearAllComponentsState","ListActive","ListHighlight","activeItems","getItemsByState","ListSelected","ListUnchecked","ListChecked","setCheckedBy","list_1","ListFocus","clickedItem","checkedItems","uncheckedItems","checkedItem","TIP_ID","ListRadio","containerId","MaskBase","maskAttrs","getMaskAttrs","draggable","emitEvent","starting","moving","createMask","updateMask","maskStyle","preMovePoint","currentPoint","CircleMask","RectMask","clampPoint","DimRect","normalStart","normalEnd","inPlot","PathMask","resize","SmoothPathMask","getSpline","CursorAction","cursor","setCursor","DataFilter","filterView","unCheckedItems","scale_1","names_1","getValue","max_1","min_1","getFilter","minValue","arr_1","RangeFilter","dims","BEFORE_FILTER","normalCurrent","hasDim","reRender","FILTER","AFTER_FILTER","BEFORE_RESET","RESET","AFTER_RESET","SiblingFilter","ElementFilter","maskElements_1","byRecord","filterByRecord","filterByBBox","maskElements","ButtonAction","buttonCfg","getButtonCfg","buttonShape","buttonGroup","drawButton","resetPosition","Drag","dragStart","Move","startMatrix","isMoving","ScaleTranslate","cacheScaleDefs","resetDim","startCache","noramlCurrent","translateDim","translateLinear","TransformAction","zoomRatio","zoomDim","dRatio","zoomLinear","toMin","toMax","MousewheelScroll","wheelDelta","scrollbarController","currentRatio","nextStart","deltaY","isWheelDown","correction","nextRatio","setValue","isPointInView","isInPlot","preventDefault","CanvasEngine","SVGEngine","Edge","greedy","canFill","fillGap","totalHeight_1","lineHeight_1","plotRange_1","halves_1","maxLabelsCountForOneSide","isRight","rPow2","dyPow2","innerPoint","itemX","itemY","maxTimes","dxdy","maxDelta","nt","times","accessedCache","spiralFill","label1","label2","regionMinX","regionMinY","regionMaxX","regionMaxY","finalX","finalY","translateX_1","textBox","DOT_WIDTH","getEllipsisText","labelOffset","separateLabels","totalR","labelsContainerRange","dxPow2","dx_offset","smoothConnector","atan","sweepFlag","breakPoint","breakPoint3","xSign","slope1","slope2","E","drawLabelline","overflow","fillWhite","rgb","toRGB","isContrastColorWhite","moveInShape","filteredLabels","pages","filterLabel","todo","groupedLabels","addCurrentGroup","curItems","sortedCollections","sortedLabels","sortLabels","downFail","inRight","inflectionPoint","totalOffset","seperateLabels","halfHeight","originalPos","pathCommands","curStartAngle","curEndAngle","preStartAngle","preEndAngle","diffStartAngle","diffEndAngle","onFrameStartAngle","onFrameEndAngle","getTotalLength","EllipsisTextAction","ElementHighlightByX","ElementHighlightByColor","ElementSelected","ElementLinkByColor","DimMask","DataRangeFilter","ElementSiblingFilter","ViewDrag","ViewMove","ScaleZoom","showEnable","isInShape","processing","rollback","version","eventType","attachEvent","detachEvent","TABLE","TABLE_TR","FRAGMENT_REG","CONTAINERS","tbody","thead","tfoot","td","th","$1","innerHTML","getOuterHeight","offsetHeight","bTop","pTop","pBottom","getOuterWidth","offsetWidth","bLeft","pLeft","pRight","bRight","mRight","css","seriesField","removeInteraction","meta","constant_1","annotationOptions","annotationController","pattern","COPY_PROPERTIES","COPY_PROPERTIES_EXCLUDES","GroupComponent","isRegister","isUpdating","isInit","clearOffScreenCache","localId","offScreenRender","offScreenGroup","deleteElements","applyOffset","initEvent","removeEvent","getInnerLayoutBBox","getTotalMatrix","applyMatrix2BBox","initGroup","getDelegateObject","moveElementTo","isComponent","createOffScreenGroup","renderInner","appendDelegateObject","registerElement","restCfg","inst","updateAutoRender","getMatrixByTranslate","elmentName","originOpacity","originElement","newGroup","originGroup","preElement","childComponent","origChildComponent","newCfg","replaceAttrs","updateAnimation","registerNewGroup","addAnimation","parentObject","deleteArray","callbackAnimCfg","removeElement","removeAnimation","Component","removeFromArray","isBrowser","isParent","isCanvas","getParent","isAllowCapture","minNum","maxNum","getBBoxByArray","xArr","yArr","getBBoxRange","piMod","pointAt","pointDistance","pointToLine","u","tangentAngle","nearestPoint","tCallback","v0","segNum","increaseRate","_t","d2","quadraticAt","onet","extrema","derivativeAt","divideQuadratic","x3","y3","xt","yt","controlPoint1","controlPoint2","xExtrema","yExtrema","quadraticLength","iterationCount","quadratics","x0","interpolationAt","divide","cubicAt","t1","t2","discSqrt","extremas","disc","divideCubic","x4","y4","c3","c12","c23","cubicLength","totalLength","snapLength","cubics","copysign","absv","nearestX","nearestY","relativeX","relativeY","px","py","squareA","squareB","ex","ey","rx1","ry1","qx","qy","hypot","xAt","cx","cy","xRotation","yAt","getPoint","tan","xAngle","yDim","yAngle","relativeVector","relativePoint","derivativeXAt","derivativeYAt","analyzePoints","segments","lengthOfSegment","pointAtSegments","startRatio","localRatio","angleAtSegments","distanceAtSegment","minDistance","distance_1","ARRAY_TYPE","Float32Array","RANDOM","random","createSVGElement","createElementNS","sortDom","sorter","childList","toArray","fragment","createDocumentFragment","moveTo","targetIndex","node","nodeType","nodeName","insertBefore","targetNext","glMatrix","fromMat4","copy","fromValues","m00","m01","m02","m10","m11","m12","m20","m21","m22","a01","a02","a12","a00","a10","a11","a20","a21","a22","b01","b11","b21","det","adjoint","determinant","b00","b02","b10","b12","b20","b22","fromMat2d","fromQuat","z2","xx","yx","yy","zx","zy","zz","wx","wy","wz","normalFromMat4","a03","a13","a23","a30","a31","a32","a33","b03","b04","b05","b06","b07","b08","b09","projection","frob","multiplyScalar","multiplyScalarAndAdd","exactEquals","equals","a0","a2","a3","a4","a5","a6","a7","a8","b0","b1","b2","b3","b4","b5","b6","b7","b8","mul","identityMatrix","getMatrixByAngle","currentMatrix","getAngleByMatrix","multiplyVec2","topRight","bottomLeft","bottomRight","applyRotate","applyTranslate","translateMatrix","NAME_CLASS","CROSSHAIR_X","CROSSHAIR_Y","SHAPE_ATTRS_MAP","applyAttrsToContext","setLineDash","parseStyle","drawChildren","skipDraw","checkRefresh","refreshElements","parent_1","refresh","setChildrenRefresh","checkChildrenRefresh","hasChanged","checkElementRefresh","clearChanged","cacheCanvasBBox","isInView","drawPath","arcParamsCache","startMovePoint","tangent","getStartTangent","ArrowUtil","getEndTangent","lineTo","quadraticCurveTo","bezierCurveTo","arcParams","refreshElement","changeType","_cacheCanvasBBox","getMergedRegion","minXArr","minYArr","maxXArr","maxYArr","cacheBox","validCache","validBBox","getRefreshRegion","mergeView","viewRegion","_addDefaultArrow","isStart","arrowShape","isArrowShape","_addCustomizedArrow","arrowAttrs","arrowFill","arrowStroke","arrowLineWidth","restAttrs","getShortenOffset","addStartArrow","addEndArrow","setShadow","addShadow","setTransform","hasAttribute","createPath","addClip","getMappingField","shapeField","styleField","rawFields","mappingFields","tileMappingField","getMappingFunction","tooltipFields","regexTags","regexDot","catmullRom2Bezier","decasteljau","recurse","middlePoints","splitSegment","leftSegments","segment","cmd","splitCurve","fillPath","sourceLen","targetLen","segmentsToFill","filled","getMinDiff","del","modify","fillPathByDiff","diffMatrix","sourceSegment","targetSegment","levenshteinDistance","changes","minPos","_getSegmentPoints","_splitPoints","formerEnd","formatPath","fromPath","toPath","rectPath","SPACES","PATH_COMMAND","PATH_VALUES","pathString","paramCounts","REGEX_MD","toSymmetry","pathToAbsolute","pathArray","needProcess","res","mx","my","ii","pa","preParams","upCmd","jj","symetricT","symetricS","TAU","mapToEllipse","cosphi","sinphi","centerx","centery","approxUnitArc","ang1","ang2","vectorAngle","ux","uy","vx","vy","acos","arcToBezier","xAxisRotation","largeArcFlag","curves","pxp","pyp","lambda","rxsq","rysq","pxpsq","pypsq","radicant","centerxp","centeryp","vx1","vy1","vx2","vy2","getArcCenter","ceil","curve","arcToCubic","LAF","SF","quadToCubic","lineToCubic","segmentToCubic","pathToCurve","needZCommandIndexes","seglen","path2Absolute","allPathCommands","pathCommand","zCommandIndexes","fixArc","pi","ni","base3","p4","bezlen","Tvalues","Cvalues","ct","xbase","ybase","comb","curveDim","tvalues","bounds","b2ac","sqrtb2ac","mt","jlen","intersect","denominator","px2","py2","isPointInsideBBox","r0","vb","bezierBBox","p1x","p1y","c1x","c1y","c2x","c2y","p2x","p2y","findDotsAtSegment","t13","t12","t3","nx","ny","interHelper","bez1","bez2","justCount","bbox1","bbox2","isBBoxIntersect","n1","n2","dots1","dots2","xy","di","di1","dj","dj1","ci","cj","is","pathIntersection","path1","path2","x1m","y1m","x2m","y2m","path2Curve","pj","intr","kk","segment1","segment2","interPathHelper","p2s","parsePathArray","vMag","vRatio","vAngle","arcFlag","xp","yp","cxp","cyp","theta","dTheta","getSegments","nextParams","lastStartMovePointIndex","startTangent","endTangent","cp","preSegment","dx1","dy1","dx2","dy2","getLineIntersect","D0","D1","kross","dcmp","onSegment","isInPolygon","isHit","parseToLines","lines","points1","points2","isPointInPolygon","lines1","lines2","lineIntersectPolygon","multiplyMatrix","charAtLength","charCodeAt","getMaxLabelWidth","texts","maxLen","maxIdx","code","getMaxLabelWidthOptimized","ellipsisLabel","limitLength","ellipsisText","labelLength","getLabelLength","codeLength","strLen","ellipsisFlag","reserveLength","newText","reseveLength","startStr","endStr","endIndex","startCodeLen","hasAdd","endCodeLen","ellipsisString","defaultFields","Adjust","dimValue","isAdjust","groupedDataArray","mergedData","getDimValues","adjustDim","DEFAULT_Y","methodCache","registerTickMethod","__cfg__","initCfg","Scale","setDomain","getConfig","calculateTicks","NaN","Category","translateIndexMap","buildIndexMap","order","calcPercent","calcValue","scaledValue","domainRange","token","word","literal","shorten","sLen","newArr","monthUpdate","arrName","i18n","origObj","dayNames","monthNames","monthNamesShort","defaultI18n","dayNamesShort","amPm","DoFn","dayOfMonth","globalI18n","setGlobalDateI18n","regexEscape","pad","formatFlags","D","dateObj","getDate","DD","Do","getDay","dd","ddd","dddd","M","getMonth","MM","MMM","MMMM","YY","getFullYear","YYYY","getHours","hh","H","HH","getMinutes","mm","getSeconds","ss","S","getMilliseconds","SS","SSS","A","ZZ","getTimezoneOffset","Z","monthParse","emptyDigits","emptyWord","timezoneOffset","parts","minutes","parseFlags","cent","globalMasks","shortDate","mediumDate","longDate","fullDate","isoDate","isoDateTime","shortTime","mediumTime","longTime","setGlobalDateMasks","masks","format","mask","getTime","literals","$0","combinedI18nSettings","parse","dateStr","dateInfo","year","month","day","hour","minute","second","millisecond","isPm","parseInfo","newFormat","specifiedFields","requiredFields","regex","requiredField","matches","parser","dateWithoutTZ","validateFields","UTC","timeFormat","time","fecha1","fecha","toTimeStamp","HOUR","DAY","MONTH","intervals","SECOND","MINUTE","getTickInterval","tickCount","_lo","_hi","lo","hi","TimeCat","tickIndex","Continuous","getScalePercent","firstTick","lastTick","minLimit","maxLimit","Linear","getInvertPercent","calBase","getLogPositiveMin","positiveMin","Log","appendPercent","Pow","exponent","Time","numberValue","minConfig","maxConfig","timeStamps_1","secondMin_1","minTickInterval","Quantize","minTick","minIndexPercent","Quantile","getClass","registerClass","cls","Identity","prettyNumber","DEFAULT_Q","eps","simplicity","Q","lmin","lmax","lstep","simplicityMax","density","dMin","dMax","lMin","lMax","rt","densityMax","coverage","coverageMax","span","extended","onlyLoose","best","score","dm","delta","log10","cm","minStart","maxStart","i_1","lStep","calculateCatTicks","tickInterval","e10","e5","e2","D3Linear","domain","_domain","i0","i1","stop","tickIncrement","d3ArrayTicks","power","LN10","snapMultiple","snapType","intervalTicks","maxTick","strictLimit","defaultMin","defaultMax","tickMin","tickMax","pretty","unit","nu","quantileSorted","getYear","date","createYear","creatMonth","cat","catTicks","lastValue","minYear","maxYear","yearInterval","monthInterval","mmMoth","dMonths","minMonth","diffMonth","mday","ddays","diffDay","hours","dHours","diffHour","dMinus","diffMinus","minSecond","dSeconds","seconds","d3Linear","registerScale","RGB_REG","regexLG","regexRG","regexColorStop","arr2rgb","toHex","iEl","x16Value","defaultView","getPropertyValue","exec","colorArray","fixedPercent","calColor","toCSSGradient","gradientColor","cssColor_1","colorStops_1","itemArr","catmullRomToBezier","iLen","ellipsePath","pa0","dots","crz","l2c","q2c","ax","ay","a2c","large_arc_flag","sweep_flag","recursive","f1","f2","_120","rx2","ry2","df","f2old","x2old","y2old","hx","hy","m1","m2","m3","m4","newres","bx","by","X","Y","attrs2","pcoms1","pcoms2","pfirst","pcom","processPath","T","pp","fixM","seg2","seg2len","intersection","getDefaultAttrs","Group","getHitLineWidth","getBBoxMethod","bboxMethod","halfLineWidth","isClipShape","save","restore","_afterDraw","_applyClip","getViewRange","canvasBBox","getCanvasViewBox","strokeAndFill","afterDrawPath","refX","refY","isInStrokeOrPath","AbstractShape","absDistance","ellipseDistance","squareX","squareY","Ellipse","halfLineWith","ImageShape","_setImage","image_1","Image","onload","_afterLoading","crossOrigin","originValue","onAttrChange","swidth","sheight","inLine","halfWidth","LineUtil","setArrow","startArrowDistance","endArrowDistance","startArrowShape","endArrowShape","Symbols","Marker","_resetParamsCache","_getR","_getPath","paramsCache","isPointInPath","getOffScreenContext","hasArc","extractPolygons","polygons","polylines","isPointInStroke","QuadUtil","CubicUtil","inArc","PathUtil","isInPolygons","_setPathArr","path2Segments","extractResutl","_calculateCurve","_setTcache","subt","tCache","nextSeg","segmentT","segmentL","segmentN","tempLength","inPolyline","isClose","PolyLine","_resetCache","PolylineUtil","inRectWithRadius","inRect","Text","_assembleFont","_setText","assembleFont","textArr","spaceingY","_getSpaceingY","getTextHeight","subText","fillText","strokeText","_drawTextArr","_drawText","HtmlComponent","containerTpl","containerClassName","pointerEvents","removeDom","initContainer","initDom","resetStyles","applyStyles","initCapture","initVisible","defaultStyles","applyChildrenStyles","containerCss","styles","getElementsByClassName","cssName","hasKey","MARGIN_RATIO","DODGE_RATIO","GAP","lineCount","getLineSpaceing","getTextWidth","measureWidth","trim","ADJUST_MAP","registerAdjust","parentChildren","clipPathEl","defsEl","children_1","stateStyles","styleName","normalPadding","append","currentAppendPadding","PADDING","paddings","normalPaddings","finalPadding","patternOption","colorAttribute","seriesValue","CanvasPattern","pattern_1","measure","groupField","as","sumMap","groupValue","number_1","percentage","asField","isPercent","minSize","conversionTag","Dodge","Jitter","Stack","Symmetric","LOCATION_FIELD_MAP","none","locationType","updateInner","afterUpdate","viewRange","allowDraw","AbstractGroup","targetAttrs","afterAttrsChange","canStroke","shadow","_setColor","addGradient","addPattern","elementFromPoint","isEqualNode","Dom","toDataURL","ImageData","addArrow","getDefaultArrow","triangleDown","register","getAll","_assembleMarker","symbolsFactory","_formatPath","newValue","getPointAtLength","Polyline","completed","pathRelatedAttrs","_assembleRect","BASELINE_MAP","alphabetic","hanging","BASELINE_MAP_FOR_FIREFOX","ANCHOR_MAP","_setFont","browser","detect","baseline","textLen_1","scaleAndAdd","squaredDistance","squaredLength","negate","inverse","normalize","lerp","transformMat2","transformMat2d","transformMat4","sinC","cosC","mag","cosine","zero","vec","div","sqrDist","sqrLen","stride","defaultOptions","columnStyle","percentData","percent_1","chartData","stackedItem","tooltipOptions","widthRatio","geometries_1","percentYMeta","common_1","isRange","columnTooltip","tooltipFormatter_1","isBar","brush_1","conversion_tag_1","connected_area_1","itemTpl","blendMode","defaultField","INVALID_FIELD_ERR_MSG","index_1","nodes","ancestors","depth","eachNode","EventEmitter","_events","wildcardEvents","doEmit","es","LocaleMap","locale","localeObj","global_1","numberData","gtZero","ltZero","sourceField","targetField","weightField","links","nodesMap","nodesIndex","weight","rawData","pick_1","invariant_1","WARN","areaStyle","pointOptions","lineOptions","pointState","seriesData","utils_2","primary","constants_1","pointParams","data_1","dividerText","activeTextStyle","DrillDownAction","drill","drawBreadCrumb","breadCrumbGroup","historyCache","backTo","hideCrumbGroup","nodeInfo","transformData","drillData","nodeData","drillDownConfig","deep_assign_1","breadCrumbCfg","breadCrumb","drawBreadCrumbGroup","rootText","textShapeBox","targetId","newHistoryCache","dividerBox","indicator","pointer","pin","statistic","GraphEvent","defaultPrevented","propagationStopped","az","bz","hermite","factorTimes2","factor1","factor2","factor3","factor4","bezier","inverseFactor","inverseFactorTimesTwo","zScale","transformQuat","qz","qw","uvx","uvy","uvz","uuvx","uuvy","uuvz","w2","rotateX","rotateY","rotateZ","offScreenCtx","propagationPath","emitDelegation","SHAPE_MAP","Container","totalMatrix","_applyChildrenMarix","preTotalMatrix","getShapeBase","groupClass","tmpCfg","TmpGroupClass","_findShape","invertFromMatrix","isClipped","timeline","preParent","setCanvas","setTimeline","onCanvasChange","_applyElementMatrix","contain","CLONE_CFGS","RESERVED_PORPS","getFormatFromAttrs","fromAttrs","getFormatToAttrs","checkExistedAttrs","animations","onFrame","startTime","initAttrs","initAnimate","getDefaultMatrix","setAttr","applyTo","parentMatrix","Cons","_cloneArrayAttr","cons","cfgName","isPaused","timer","initTimer","pauseCallback","resumeCallback","formatToAttrs","pathFormatted","addAnimator","toEnd","pauseTime","_paused","_pauseTime","eventObj","relativeShape","paths","getEvents","subName","emitDelegateEvent","this_1","currentTarget","delegateTarget","translateX","translateY","newMatrix","targetX","targetY","move","ratioX","ratioY","BrowserInfo","os","NodeInfo","platform","SearchBotDeviceInfo","bot","BotInfo","ReactNativeInfo","SEARCHBOT_OS_REGEX","userAgentRules","operatingSystemRules","userAgent","parseUserAgent","navigator","product","matchUserAgent","ua","matched","uaMatch","matchedRule","versionParts","output","createVersionParts","detectOS","searchBotMatch","regexPR","addStop","addColorStop","gradientStr","tanTheta","tanTheta2","createLinearGradient","parseLineGradient","fx","fy","fr","createRadialGradient","parseRadialGradient","patternStr","createPattern","complete","parsePattern","lineStyle","lineShape","pointMapping","areaMapping","areaState","areaParams","lineGeometry","fillRect","isStagger","unitSize","dpr","AxisType","DualAxesGeometry","isColumn","types_1","Column","transformAttribute","axisType","Left","Right","progressStyle","barWidthRatio","clampPercent","plot_1","boxStyle","defaultContent","risingFill","fallingFill","maxYFieldValue","getLineCoordinate","lineOption","formatter_1","hierarchyConfig","sunburstStyle","drilldown","enabled","isParentNode","inCenter","drill_down_1","leaderLine","waterfallStyle","require","Mix","adaptor_1","defaultSeparation","meanXReduce","maxYReduce","separation","nodeSize","cluster","previousNode","eachAfter","meanX","leafLeft","leafRight","hierarchy","mapChildren","objectChildren","childs","Node","eachBefore","computeHeight","copyData","that","ancestor","aNodes","bNodes","leastCommonAncestor","descendants","leaves","node_iterator","circles","shuffle","B","enclosesWeak","encloseBasis","extendBasis","enclosesWeakAll","enclosesNot","encloseBasis2","encloseBasis3","dr","x21","y21","r21","d3","ab","xa","xb","ya","yb","place","intersects","packEnclose","aa","ca","sj","sk","enclose","optional","required","constantZero","defaultRadius","radiusLeaf","packChildren","translateChild","constant","partition","treemapDice","positionNode","roundNode","preroot","ambiguous","defaultId","defaultParentId","parentId","stratify","nodeId","nodeKey","nodeByKey","nextLeft","nextRight","moveSubtree","wm","wp","nextAncestor","vim","TreeNode","tree","treeRoot","firstWalk","secondWalk","sizeNode","tx","kx","ky","executeShifts","midpoint","vip","vop","vom","sip","sop","sim","som","apportion","phi","squarifyRatio","nodeValue","sumValue","newRatio","minRatio","beta","dice","treemapSlice","squarify","tile","paddingStack","paddingInner","treemap","paddingOuter","sums","valueOffset","valueTarget","valueLeft","valueRight","xk","yk","resquarify","_squarify","clearCacheBBox","calculateBBox","calculateCanvasBBox","shadowLeft","shadowRight","shadowTop","shadowBottom","inBBox","_isInBBox","isOnlyHitBox","BRAND","getMessage","argIndex","deep","adapteStyle","styleObject","justifyContent","alignItems","shapeStyleKeys","_1","setStatisticContainerStyle","plotType","titleOpt","contentOpt","containerW","liquidShape","customHtml","polarCoord","polarCenter","polarMaxY","containerWidth","_len","_key","SensorTabIndex","SensorClassName","SizeSensorId","dot_1","line_1","square_1","tooltip_1","base_1","lineMapping","lineParams","areaGeometry","BRUSH_TYPES","brush","buttonConfig","button","getInteractionCfg","interactionType","brushType","maskType","reset_button_1","Bar","switchedFieldOptions","verticalAxis","horizontalAxis","barStyle","minBarWidth","maxBarWidth","barBackground","columnBackground","Pie","contants_1","prevOptions","angleField","prevData","curData","pieStyle","dataum","angleScale","content_1","labelLayoutType","inner","outer","spider","labelLayoutCfg","transformStatisticOptions","locale_1","titleOpt_1","contentOpt_1","dataValue","metaFormatter","pieAnnotation","startStages_1","interactions_1","stage","radio","defaultOffset","statistic_active_1","legend_active_1","ORIGIN_MATRIX","ulMatrix","getSize","containerSize","padding_1","resolvePadding","getFontSizeMapping","fMax_1","fMin_1","getSingleKeyValues","getRotate","rotationSteps","wordStyle","resolveRotate","perSize","numbers","rawOptions","chartPadding","imageMask","wordField","timeInterval","spiral","placementStrategy","words","hasText","word_cloud_1","rej","HTMLImageElement","onerror","ERROR","rotateRatio","Scatter","transformOptions","isOneX","isOneY","meta_1","util_2","pointStyle","newOptions","shapeLegend","sizeLegend","showLegend","scatterGeometry","scatterAnnotation","quadrant","xBaseline","yBaseline","labels_1","regionStyle_1","defaultConfig_1","regionStyle","labelStyle","regressionLine","defaultStyle_1","style_1","TinyLine","TinyColumn","TinyArea","Histogram","binField","binNumber","binWidth","stackField","histogram_1","getBinKey","originData_copy","rangeWidth","_binWidth","_defaultBinNumber","LN2","sturges","bins","bin","binKey","groupKey","groupKeyBinKey","plotData","Progress","RingProgress","newData","q1_1","median_1","q3_1","high_1","low_1","low","high","q1","quantile_1","q3","minMax","quantile","pdfOptions","pdfResults","pdfast_1","violinSize","violinY","kde","sampleSize","resultList","seriesGroup","series","violinStyle","zeros","norm2","weightedSum","w1","wolfeLineSearch","pk","phi0","phiPrime0","fxprime","phi_old","phiPrime","a_lo","a_high","phi_lo","iteration","bisect","parameters","maxIterations","fA","fB","fMid","nelderMead","maxDiff","nonZeroDelta","zeroDelta","minErrorDelta","minTolerance","rho","chi","psi","sigma","N","simplex","updateSimplex","sortOrder","reflected","contracted","expanded","history","sortedSimplex","worst","shouldReduce","conjugateGradient","delta_k","gradientDescent","learnRate","gradientDescentLineSearch","functionCalls","zerosM","containedInCircles","circleArea","circleCircleIntersection","stats","intersectionPoints","parentIndex","getIntersectionPoints","innerPoints","arcArea","polygonArea","arcs","midPoint","angleDiff","smallest","disjoint","open","close","Funnel","compareField","funnelStyle","defaultOption","conversion_1","dynamicHeight","facet_1","compare_1","dynamic_height_1","basic_1","formatData","datumIndex","initLineOption","measureField","rangeField","ds","rKey","mKey","tKey","flat","DEFAULT_OPTIONS","ignoreParentValue","getTileMethod","d3Hierarchy","tileMethod","Gauge","indicatorView","rangeView","gaugeStyle","meter","indicatorData","rangeData","rangeColor","contentOption","transformContent","processRangeData","newYField","dIdx","hopeData","data1","data2","__axisPosition","findInteraction","enableInteraction","drillDownInteraction","enableDrillDown","treemap_1","curPath","ancestorNode","getNodeWidthRatio","nodeWidth","nodeWidthRatio","getNodePaddingRatio","nodePadding","nodePaddingRatio","sankeyLayoutInputData","dataType","nodeAlign","nodeSort","nodeDepth","isNodeLink","circle_1","layout_1","isNode","edges","link","targetDepth","sourceLinks","targetLinks","nodeStyle","edgeStyle","PLOT_ADAPTORS","pie","adaptor_2","column","adaptor_3","bar","adaptor_4","adaptor_5","gauge","adaptor_6","adaptor_7","adaptor_8","adaptor_9","adaptor_10","progress","adaptor_11","scatter","adaptor_12","histogram","adaptor_13","adaptor_14","PLOT_CONSTRUCTOR","pie_1","column_1","bar_1","area_1","gauge_1","tiny_line_1","tiny_column_1","tiny_area_1","ring_progress_1","progress_1","scatter_1","funnel_1","DEFAULT_OPTIONS_MAP","plot","taskHead","taskTail","frame","clockLast","clockNow","clockSkew","clock","performance","setFrame","clearNow","Timer","_call","_time","_next","restart","wake","timerFlush","t0","sleep","nap","poke","clearInterval","setInterval","quadIn","quadOut","quadInOut","cubicIn","cubicOut","cubicInOut","polyIn","polyOut","polyInOut","halfPi","sinIn","sinOut","sinInOut","tpmt","expIn","expOut","expInOut","circleIn","circleOut","circleInOut","bounceIn","bounceOut","bounceInOut","backIn","overshoot","backOut","backInOut","tau","elasticIn","amplitude","period","elasticOut","elasticInOut","definition","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","rgba","hsla","rgbConvert","rgb_formatHex","hex","rgb_formatRgb","Hsl","hslConvert","hsl2rgb","basis","v3","channels","displayable","formatHsl","brighter","darker","gamma","nogamma","exponential","rgbGamma","colorRgb","rgbSpline","spline","isNumberArray","ArrayBuffer","isView","DataView","genericArray","nb","na","setTime","reA","reB","am","bm","bs","bi","one","string","numberArray","valueOf","IDENTITY_MATRIX","elapsed","d3Ease","cProps","interf","toPathPoint","fromPathPoint","cPathPoint","interpolate","_update","Timeline","d3Timer","animators","removeAnimator","isAnimatePaused","animator","emitTargetEvent","bubbleEvent","bubbles","isOverEvent","EventController","_triggerEvent","dragging","_getPointInfo","_emitEvent","draggingShape","_afterDrag","_bindEvents","_eventCallback","_onDocumentMove","_onDocumentMouseUp","clientPoint","getClientByEvent","getPointByEvent","_getShape","leaveCanvas","preShape","mousedownShape","mousedownPoint","mousedownTimeStamp","isCanvasEmit","_emitMouseoverEvents","_emitDragoverEvents","timeWindow","_getEventObj","_clearEvents","isFirefox","initTimeline","setDOMSize","eventController","layerX","layerY","clientInfo","touches","changedTouches","renderTag","tagCfg","maxLength","ellipsisPosition","tagGroup","maxTextLength","LineAnnotation","Theme","renderLine","TextAnnotation","resetLocation","getLocation","textGroup","getElementByLocalId","ArcAnnotation","renderArc","largeFlag","RegionAnnotation","renderRegion","ImageAnnotation","renderImage","getImageAttrs","DataMarkerAnnotation","renderText","renderPoint","textAttrs","isVertival","findById","lineDisplay","DataRegionAnnotation","RegionFilterAnnotation","shapeIdx","adjustShapeAttrs","ShapeAnnotation","HtmlAnnotation","alignX","alignY","domWidth","domHeight","getMethod","mergeBBox","mergeArrowBBox","getExtraFromSegmentWithAngle","currentAndPre","currentAndNext","preAndNext","currentAngle","xExtra","yExtra","segmentsWithAngle","EllipseArcUtil","getPathBox","AxisBase","overlapOrder","tickStates","optimize","displayWithLabel","tickLineStyle","threshold","drawTicks","drawTitle","itemGroup","updateTickStates","getSideVector","tickLineItems","tickLineLength","tickSegment","getTickPoint","getSidePoint","tickId","subTickLineItems","subCount","tickLineCount","tickItem","tickItems","defaultTickLineStyle","tickLineGroup","getTickLineAttrs","getTickLineItems","tickCfg","drawTick","subTickLineItems_1","getSubTickLineItems","optimizeTicks","processTicks","drawLabels","drawTickLines","applyTickStates","page_1","optimizedTicks","getTextAnchor","getTextBaseline","getLabelAttrs","processOverlap","defaultLabelStyle","afterProcessTicks_1","titleCfg","titleHeight","titlePoint","getAxisVector","getTitleAttrs","getItemStates","labelStateStyle","tickLineId","tickLineShape","tickLineStateStyle","tickLineCfg","ellipseLabels","getDefault","ellipsisTail","ellipsisHead","ellipsisMiddle","getRotateAngle","isRotate","isOverlap","overlap","prevBBox","reserveOne","labelsGroup","autoHideCfg","hasHide","parityHide","firstBBox","equidistance","reserveFirst","reserveLast","reserveBoth","preLabel","equidistanceWithReverseBoth","labelRotate","setLabelsAngle","fixedAngle","customRotate","unfixedAngle","regionX","regionY","axisVector","normal","verticalVector","titleSpacing","canProcessOverlap","autoProcessOverlap","hasAdjusted","util","OverlapUtil","overlapCfg","verticalFactor_1","newAlign","unregisterElement","large","sweep","vecLen","stops","Gradient","self","ATTR_MAP","shadowOpacity","SHADOW_DIMENSION","Shadow","_parseShadow","Arrow","_setDefaultPath","_setMarker","Clip","shapeEl","Pattern","Defs","defaultArrow","arrow","autoDraw","srcElement","tagName","AbstractCanvas","CrosshairBase","renderBackground","textId","LineCrosshair","HtmlCrosshair","crosshairTpl","textTpl","HtmlTheme","resetText","crosshairEl","applyStyle","textEl","initCrossHair","alignText","BACKGROUND_STYLE","LINE_STYLE","AREA_STYLE","pointsToPath","dataToPath","getSmoothLinePath","linePathToAreaPath","areaPath","lineYPx","lineY","getAreaLineY","Trend","isArea","DEFAULT_HANDLER_STYLE","Handler","FOREGROUND_STYLE","HANDLER_STYLE","TEXT_STYLE","stopPropagation","prevX","pageX","prevY","pageY","containerDOM","getContainerDOM","onMouseMove","onMouseUp","offsetXRange","adjustOffsetRange","updateStartEnd","updateUI","delegateEmit","oldStart","oldEnd","newStart","newEnd","validCfg","minHandler","getChildComponentById","maxHandler","trend","addComponent","silent","handlerWidth","handlerHeight","foregroundShape","minTextShape","maxTextShape","_dodgeText","minAttrs","maxAttrs","onMouseDown","foreground","offsetRange","minBBox","maxBBox","GridBase","alternateColor","closed","drawGrid","prePoints","getGridPath","reversePoints","nextPath","preItem","getPathStyle","lineId","gridPath","regionId","drawAlternateRegion","getAlternatePath","lineType","getLineType","sweepFlag_1","LegendBase","resetDraw","drawLegendContent","drawBackground","DEFAULT_PAGE_NAVIGATOR","ROTATE_MAP","up","down","currentPageIndex","updateNavigation","getCurrentNavigationMatrix","totalPagesCnt","itemWidth","itemHeight","itemBackground","alignRight","itemElement","offsetGroup","drawItem","getItemHeight","clearUpdateStatus","processItems","drawItems","itemContainerGroup","startX","wrapped","pageWidth","subGroup","pageHeight","adjustNavigation","items_1","markerAttrs","textName","xPosition","radioCfg","showRadio","radioShape","tip","groupId","subContainer","getLimitItemWidth","curX","markerShape","drawMarker","itemMarkerSpacing","nameShape","drawItemText","valueShape","drawRadio","applyItemStates","subGroups","navigation","drawNavigation","navigationBBox","widthLimit","maxRow","maxRowHeight_1","cntPerPage_1","styleCfg","arrowStyle","leftArrow","drawArrow","onNavigationBack","leftArrowBBox","onNavigationAfter","rightArrow","cursorX","updateArrowPath","itemStates_1","elName","ContinueLegend","getCurrentValue","resetTrackClip","resetHandlers","bindSliderEvent","bindRailEvent","bindTrackEvent","drawRail","fixedElements","resetTrack","bindHandlersEvent","getValueByCanvasPoint","curValue","curDiff","dValue","drawLabel","labelAlign","labelFormatter","alignAttrs","getLabelAlignAttrs","railCfg","getRailPath","getRailShape","railBBox","getRailBBox","getPointByValue","trackCfg","getTrackPath","getTrackColor","trackId","trackShape","getClipTrackAttrs","trackAttrs","getTrackAttrs","getRailCanvasBBox","isVertcal","resetHandler","handlerCfg","oneSixthWidth","triangleX","triangleY","getHandlerPath","handlerShape","railShape","minLabel","maxLabel","getDrawPoint","fixedVertail","fixedHorizontal","minLabelBBox","maxLabelBBox","lengthField","changeRailLength","railHeight","fitRailLength","changeRailPosition","maxLabelWidth","CssConst","xCrosshairTpl","yCrosshairTpl","crosshairsRegion","TooltipTheme","renderCustomContent","resetTitle","renderItems","clearCrosshairs","setTitle","clearItemDoms","setCrossHairsVisible","xCrosshairDom","yCrosshairDom","getHtmlContentNode","cacheDoms","limitBox","getOffset","getPointByPosition","outSides","getOutSides","getAlignPoint","resetCrosshairs","curContainer","replaceChild","titleDom","listDom","innerText","crosshairBox","resetCrosshair","croshairDom","checkCrosshair","domName","tplName","constName","substituteObj","domStr","itemDom","getRefXY","preTest","_clearFrame","curShape","drawFrame","clearAnimationFrame","_startDraw","_getRefreshRegion","_drawRegion","_drawAll","DEFAULT_THEME","isMobile","startPos","bindLaterEvent","endPos","updateThumbOffset","newOffset","validateRange","originalValue","minThumbLen","renderTrackShape","renderThumbShape","themeSize","onStartEvent","onTrackClick","thumbShape","onThumbMouseOver","onThumbMouseOut","emitOffsetChange","customOffset","marginRatio","xDimensionLegenth","groupDataArray","adjustDataArray","frameIndex","getDistribution","getAdjustRange","valueArr","valIndex","getDodgeOffset","tickLength","getIntervalOnlyOffset","getDodgeOnlyOffset","getIntervalAndDodgeOffset","normalizedIntervalPadding","normalizedDodgePadding","geomWidth","normalizedMaxWidht","normalizedMinWidht","adjustGroup","getAdjustOffset","Cache","processStack","processOneDimStack","positive","negative","xKey","newXValue","stackHeight","stackValue","getXValuesMaxMap","off_1","getDimMaxValue","dimValues","flattenValues","en_US_1","zh_CN_1","setGlobal","Rose","WordCloud","Radar","DualAxes","Box","Venn","Stock","FUNNEL_CONVERSATION_FIELD","Liquid","Bullet","Sunburst","Waterfall","RadialBar","BidirectionalBar","Treemap","Sankey","Chord","CirclePacking","getCanvasPattern","Lab","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","runClearTimeout","Item","nextTick","env","argv","versions","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","flows","getAllElements","getAllElementsRecursively","labelOptions","points2Path","matrix_util_1","context_1","general","increase","decrease","waterfall","ver","_sensorPool","cb","sensor","getSensor","removeSensor","_id","_sensors","_constant","Sensors","sensorId","newId","createSensor","_object","_resizeObserver","ResizeObserver","_debounce","resizeListener","listener","contentDocument","newSensor","disconnect","observe","drawDot","dotCfg","Path2D","lineCfg","drawSquare","strokeRect","squareCfg","squares","stepType","otherAdaptor","marker_active_1","MarkerActiveAction","getView","getConversionTagOptionsWithDefaults","horizontal","headSize","elemPrev","elemNext","pointPrev","pointNext","totalWidth","renderArrowTag","textWidth","cWidth","cEnd","textAdjusted","renderTextTag","disabled","INTERACTION_MAP","click","getStartStages","disable","connectedArea","buttonStyle","drawText","PieLegendAction","item_1","getActiveElements","elementLabels","getActiveElementLabels","matrix_1","transfrom","StatisticAction","_view","initialAnnotation","getAnnotations","colorField_1","statistic_1","initialStatistic","getInitialAnnotation","sectorStyle","catch","cloudFont","cloudFontSize","cloudFontNormal","cloudRotate","cloudPadding","archimedeanSpiral","cloudText","cloudCanvas","cloud","board","dt","cloudCollide","sprite","sw","lx","msx","contextAndRatio","zeroArray","tags","cloudSprite","hasImage","cloudBounds","_tags","_bounds","can","w32","cxt","imageData","functor","spirals","tagCloud","cloudRadians","maxh","sr","cr","wcr","wsr","hcr","hsr","cw","xoff","yoff","seen","seenRow","archimedean","rectangular","sign","getTextAttrs","REGRESSION_MAP","exp","d3_regression_1","loess","poly","quad","pathData","algorithm","reg","xScaleView","yScaleView","xFieldValue","yFieldValue","xIsPositiveNumber","yIsPositiveNumber","getMetaMinMax","fieldMeta","getCustomValue","_slicedToArray","_arrayWithHoles","_arr","_n","_s","err","_iterableToArrayLimit","_nonIterableRest","xv","yv","Float64Array","visitPoints","iterations","determination","uY","predict","SSE","SST","sse","sst","interpose","xmin","xmax","LOG10E","iter","found","mp","ols","uX","uXY","uX2","slope","YL","XY","XYL","X2Y","ly","_ols2","rSquared","X2","intercept","bandwidth","_points2","bw","yhat","residuals","robustWeights","W","denom","tricube","xkw","updateInterval","medianResidual","_w","logarithmic","lb","quadratic","X3","X4","n0","X2X2","polynomial","coefficients","_o","lhs","rhs","coef","gaussianElimination","uncenter","YS","areaOptions","radar_tooltip_action_1","RadarTooltipController","cfgTitle","hintItems","title_1","result_1","displayTitle","RadarTooltipAction","getTooltipController","geometryOptions","allLine","option_1","createViews","SORT_MAP","view_1","themeColor","groupScale","leftView","rightView","leftLegend_1","rightLegend_1","leftItems","legend_1","rightItems","isGeometry","viewId","yF","legendItem_1","render_sider_1","legendItemName","attrItems","FIELD_KEY","adjust_1","sliderValue","sizeRatio","heatmapStyle","checkedSizeRatio","dautm","maxSideLength","sideLength","outliersView","yFieldName","constant_2","outliersPoint","outliersField","outliersStyle","outliersViewData","baseMeta","syncName","TOOLTIP_FIELDS","violinView","boxView","minMaxView","quantileView","medianView","legendField_1","legendOptions","LN_2","helper","kernel","getUnifiedMinMax","getUnifiedMinMaxMulti","arrMulti","relaxMin","relaxMax","findMinMulti","findMaxMulti","normalizedMinMax","buckets","partialArea","partialAreas","accumulator","generatePartialAreas","fullArea","initalValue","bucket","xToBucket","leftBlockCount","rightBlockCount","spilledAreaLeft","spilledAreaRight","startGradPos","inside","gradAccumulator","getExpectedValueFromPdf","pdf","expected","getXWithLeftTailArea","getPerplexity","entropy","ln","findMin","findMax","quickselect","sd","quantileSelect","quantileIndex","indices","stack","multiQuantileSelect","results","colorMap","colorPalette","setsField","utils_3","tempPadding","currSets","sets","filterSets","vennData","colorOptions","map_1","transformColor","customLabelInfo","vennInteraction","MAP_1","colorPaletteLen","colorArr","blend","JSON","stringify","solution","textCenters","diagram_1","setCircles","legalArr","testArr","blendObject","screen","overlay","darken","lighten","dodge","burn","colorToArr","rgbaArr","color_util_1","c0","blendRgbArr","g0","g1","areas","setid","initialLayout","bestInitialLayout","loss","lossFunction","ids","pairs","addMissingAreas","setids","positions","fmin_1","setid_1","distanceFromIntersectArea","circleintersection_1","getDistanceMatrices","distances","constraints","greedyLayout","constrained","constrainedMDSLayout","restarts","matrices","norm","xj","yj","dij","constrainedMDSGradient","setOverlaps","rowid","mostOverlapped","positioned","isPositioned","positionSet","setIndex","extraPoints","bestLoss","bestPoint","localLoss","overlaps","orientateCircles","orientation","orientationOrder","largestX","largestY","disjointCluster","maxDistance","xRoot","yRoot","disjointClusters","getBoundingBox","xRange","yRange","clusters","returnBounds","addCluster","centreing","xScaling","yScaling","scaling","circleMargin","interior","exterior","computeTextCentre","valid","areaStats","circlePath","overlapped","circleids","circleid","getOverlappingCircles","areaids","exclude","centre","tokens","wide","path_util_1","fillAttrs","getFillAttrs","VennLabel","active_1","highlight_1","selected_1","VennElementActive","syncElementsPos","toggle","VennElementHighlight","highlight","ElementSelectedAction","ElementSingleSelectedAction","VennElementSelected","VennElementSingleSelected","stockStyle","formatterData","defaultFacetLabel","viewIndex","preItemX","preItemY","liquidStyle","outline","wave","border","getWaterWavePositions","waveLength","getWaterWavePath","waterLevel","phase","_phase","waveRight","cpX","cpY","waveCount","minXPoint","waveAttrs","outlineAttrs","getLineAttrs","builtInShapeByName","shapePath","waves","clipPath","addWaterWave","bulletStyle","extData","rangeGeometry","measureGeometry","targetGeometry","pathFormatter","valueFormatter","adaptorInteraction","activeDepth","partition_1","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","configurable","writable","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","unwrapped","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","mark","awrap","async","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","Function","webpackPolyfill","deprecate","STEP","STEP_RATIO","COORD_START_ANGLE","COORD_END_ANGLE","INTERVAL","START_ANGLE","END_ANGLE","localeTotalLabel","colorMapping","Y_FIELD_META","labelMode","leaderLineCfg","linkPath","maxAngle","actualData","intervalGeometry","yData","formatRadian","stackedData","valueItem","firstViewData","secondViewData","firstView","secondView","aliasMap","metaKey","leftGeometry","rightGeometry","leftLabelCfg","positionMap_1","transData","rectStyle","polygon_1","viewZoomInteraction","edgeState","isLast","helper_1","nodesView","edgesView","nodeState","edgeView","nodeView","nodeDraggable","nodeInteractions","edgeInteractions","ALIGN_METHOD","justify","getNodeAlignFunction","sankey_1","sankeyLayoutOptions","layoutData","extent","sankeyProcessor","ascendingSourceBreadth","ascendingBreadth","ascendingTargetBreadth","defaultNodes","graph","defaultLinks","nodeById","computeLinkBreadths","linkSort","align_1","sankey","computeNodeLinks","fixedValue","computeNodeValues","maxDepth","computeNodeDepths","computeNodeHeights","columns","computeNodeLayers","nodes_6","reorderLinks","initializeNodeBreadths","relaxRightToLeft","relaxLeftToRight","computeNodeBreadths","targetTop","dy_1","reorderNodeLinks","resolveCollisions","sourceTop","dy_2","subject","resolveCollisionsBottomToTop","resolveCollisionsTopToBottom","dy_3","dy_4","getNodes","graphMatrix","removedData","visited","DFS","dfsNode","node_drag_1","isDragging","SankeyNodeDragAction","getNodeView","isNodeElement","getCurrentDatumIdx","currentElementIdx","prevNodeAnimateCfg","prevEdgeAnimateCfg","getEdgeView","prevDatum","datumGap_1","nextDatum","edgeData","chordLayoutInputData","chord_1","nodesData","edgesData","chordData","nodeGeometry","edgeGeometry","edgeOptions","sourceWeight","targetWeight","chordLayoutOptions","inEdges","outEdges","frequency","processGraph","localeCompare","sortNodes","nodePaddingRatio_1","margin_1","nodeWidthRatio_1","totalValue_1","deltaX","deltaX_1","layoutNodes","valueById_1","sId","tId","sNode","tNode","sValue","currentSValue","sStart","sEnd","tValue","currentTValue","tStart","tEnd","locatingEdges","diameter","tempAppendPadding","appendPaddingByDrilldown","finalSize","circleSize","point_1","nameFormatter","pack_1","wSize","hSize","restWidthPadding","restHeightPadding","packLayout","multiView","viewOfG2","multiPlot","plots","Association","linkField","getAssociationItems","facetAdaptor","facetType","restFacetCfg","viewOptions","plotOptions","Stage","notice","DEV","BETA","STABLE","mix_1"],"mappings":"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","file":"g2plot.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"G2Plot\"] = factory();\n\telse\n\t\troot[\"G2Plot\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 187);\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export { flow } from './flow';\nexport { pick } from './pick';\nexport { template } from './template';\nexport { log, invariant, LEVEL } from './invariant';\nexport { getContainerSize } from './dom';\nexport * from './geometry';\nexport { findViewById, getViews, getSiblingViews } from './view';\nexport { transformLabel } from './label';\nexport { getSplinePath } from './path';\nexport { deepAssign } from './deep-assign';\nexport { kebabCase } from './kebab-case';\nexport { renderStatistic, renderGaugeStatistic } from './statistic';\nexport { measureTextWidth } from './measure-text';\nexport { isBetween, isRealNumber } from './number';\nexport * from './data';\nexport * from './padding';\n",null,null,null,"import { Chart, Event, Element } from '@antv/g2';\nimport { each } from '@antv/util';\nimport EE from '@antv/event-emitter';\nimport { bind } from 'size-sensor';\nimport { Options, StateName, StateCondition, Size, StateObject, Annotation } from '../types';\nimport { getContainerSize, getAllElementsRecursively, deepAssign, pick } from '../utils';\nimport { Adaptor } from './adaptor';\n\n/** 单独 pick 出来的用于基类的类型定义 */\nexport type PickOptions = Pick<\n Options,\n | 'width'\n | 'height'\n | 'padding'\n | 'appendPadding'\n | 'renderer'\n | 'pixelRatio'\n | 'autoFit'\n | 'syncViewPadding'\n | 'supportCSSTransform'\n | 'limitInPlot'\n | 'locale'\n | 'defaultInteractions'\n>;\n\nconst SOURCE_ATTRIBUTE_NAME = 'data-chart-source-type';\n\n/** plot 图表容器的配置 */\nexport const PLOT_CONTAINER_OPTIONS = [\n 'padding',\n 'appendPadding',\n 'renderer',\n 'pixelRatio',\n 'syncViewPadding',\n 'supportCSSTransform',\n 'limitInPlot',\n];\n\n/**\n * 所有 plot 的基类\n */\nexport abstract class Plot extends EE {\n /**\n * 获取默认的 options 配置项\n * 每个组件都可以复写\n */\n static getDefaultOptions(): any {\n return {\n renderer: 'canvas',\n xAxis: {\n nice: true,\n label: {\n autoRotate: false,\n autoHide: { type: 'equidistance', cfg: { minGap: 6 } },\n },\n },\n yAxis: {\n nice: true,\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n animation: true,\n };\n }\n\n /** plot 类型名称 */\n public abstract readonly type: string;\n /** plot 的 schema 配置 */\n public options: O;\n /** plot 绘制的 dom */\n public readonly container: HTMLElement;\n /** G2 chart 实例 */\n public chart: Chart;\n /** resizer unbind */\n private unbind: () => void;\n\n constructor(container: string | HTMLElement, options: O) {\n super();\n this.container = typeof container === 'string' ? document.getElementById(container) : container;\n\n this.options = deepAssign({}, this.getDefaultOptions(), options);\n\n this.createG2();\n\n this.bindEvents();\n }\n\n /**\n * 创建 G2 实例\n */\n private createG2() {\n const { width, height, defaultInteractions } = this.options;\n\n this.chart = new Chart({\n container: this.container,\n autoFit: false, // G2Plot 使用 size-sensor 进行 autoFit\n ...this.getChartSize(width, height),\n localRefresh: false, // 默认关闭,目前 G 还有一些位置问题,难以排查!\n ...pick(this.options, PLOT_CONTAINER_OPTIONS),\n defaultInteractions,\n });\n\n // 给容器增加标识,知道图表的来源区别于 G2\n this.container.setAttribute(SOURCE_ATTRIBUTE_NAME, 'G2Plot');\n }\n\n /**\n * 计算默认的 chart 大小。逻辑简化:如果存在 width 或 height,则直接使用,否则使用容器大小\n * @param width\n * @param height\n */\n private getChartSize(width: number, height: number): Size {\n const chartSize = getContainerSize(this.container);\n return { width: width || chartSize.width || 400, height: height || chartSize.height || 400 };\n }\n\n /**\n * 绑定代理所有 G2 的事件\n */\n private bindEvents() {\n if (this.chart) {\n this.chart.on('*', (e: Event) => {\n if (e?.type) {\n this.emit(e.type, e);\n }\n });\n }\n }\n\n /**\n * 获取默认的 options 配置项\n * 每个组件都可以复写\n */\n protected getDefaultOptions(): any {\n return Plot.getDefaultOptions();\n }\n\n /**\n * 每个组件有自己的 schema adaptor\n */\n protected abstract getSchemaAdaptor(): Adaptor;\n\n /**\n * 绘制\n */\n public render() {\n // 暴力处理,先清空再渲染,需要 G2 层自行做好更新渲染\n this.chart.clear();\n // 因为子 view 会继承父 view 的 options 配置(包括 legend,所以会导致 legend 重复创建)\n // 所以这里给 chart 实例的 options 配置清空\n // 最好的解法是在 G2 view.clear 方法的时候,重置 options 配置。或者提供方法去 resetOptions\n // #1684 理论上在多 view 图形上,只要存在 custom legend,都存在类似问题(子弹图、双轴图)\n // @ts-ignore\n this.chart.options = {\n data: [],\n animate: true,\n };\n this.chart.views = []; // 删除已有的 views\n // 执行 adaptor\n this.execAdaptor();\n // 渲染\n this.chart.render();\n // 绑定\n this.bindSizeSensor();\n }\n\n /**\n * 更新: 更新配置且重新渲染\n * @param options\n */\n public update(options: Partial) {\n this.updateOption(options);\n this.render();\n }\n\n /**\n * 更新配置\n * @param options\n */\n protected updateOption(options: Partial) {\n this.options = deepAssign({}, this.options, options);\n }\n\n /**\n * 设置状态\n * @param type 状态类型,支持 'active' | 'inactive' | 'selected' 三种\n * @param conditions 条件,支持数组\n * @param status 是否激活,默认 true\n */\n public setState(type: StateName, condition: StateCondition, status: boolean = true) {\n const elements = getAllElementsRecursively(this.chart);\n\n each(elements, (ele: Element) => {\n if (condition(ele.getData())) {\n ele.setState(type, status);\n }\n });\n }\n\n /**\n * 获取状态\n */\n public getStates(): StateObject[] {\n const elements = getAllElementsRecursively(this.chart);\n\n const stateObjects: StateObject[] = [];\n each(elements, (element: Element) => {\n const data = element.getData();\n const states = element.getStates();\n each(states, (state) => {\n stateObjects.push({ data, state, geometry: element.geometry, element });\n });\n });\n\n return stateObjects;\n }\n\n /**\n * 更新数据\n * @override\n * @param options\n */\n public changeData(data: any) {\n // @ts-ignore\n this.update({ data });\n // TODO: 临时方案,最好使用下面的方式去更新数据\n // this.chart.changeData(data);\n }\n\n /**\n * 修改画布大小\n * @param width\n * @param height\n */\n public changeSize(width: number, height: number) {\n this.chart.changeSize(width, height);\n }\n\n /**\n * 增加图表标注。通过 id 标识,如果匹配到,就做更新\n */\n public addAnnotations(annotations: Annotation[]): void {\n const incoming = [...annotations];\n const controller = this.chart.getController('annotation');\n const current = controller.getComponents().map((co) => co.extra);\n\n controller.clear(true);\n for (let i = 0; i < current.length; i++) {\n let annotation = current[i];\n\n const findIndex = incoming.findIndex((item) => item.id && item.id === annotation.id);\n if (findIndex !== -1) {\n annotation = deepAssign({}, annotation, incoming[findIndex]);\n incoming.splice(findIndex, 1);\n }\n controller.annotation(annotation);\n }\n\n incoming.forEach((annotation) => controller.annotation(annotation));\n this.chart.render(true);\n }\n\n /**\n * 删除图表标注。通过 id 标识,如果匹配到,就做删除\n */\n public removeAnnotations(annotations: Array<{ id: string } & Partial>): void {\n const controller = this.chart.getController('annotation');\n const current = controller.getComponents().map((co) => co.extra);\n\n controller.clear(true);\n for (let i = 0; i < current.length; i++) {\n const annotation = current[i];\n\n if (!annotations.find((item) => item.id && item.id === annotation.id)) {\n controller.annotation(annotation);\n }\n }\n\n this.chart.render(true);\n }\n /**\n * 销毁\n */\n public destroy() {\n // 取消 size-sensor 的绑定\n this.unbindSizeSensor();\n // G2 的销毁\n this.chart.destroy();\n // 清空已经绑定的事件\n this.off();\n\n this.container.removeAttribute(SOURCE_ATTRIBUTE_NAME);\n }\n\n /**\n * 执行 adaptor 操作\n */\n protected execAdaptor() {\n const adaptor = this.getSchemaAdaptor();\n\n const { padding, appendPadding } = this.options;\n // 更新 padding\n this.chart.padding = padding;\n // 更新 appendPadding\n this.chart.appendPadding = appendPadding;\n\n // 转化成 G2 API\n adaptor({\n chart: this.chart,\n options: this.options,\n });\n }\n\n /**\n * 当图表容器大小变化的时候,执行的函数\n */\n protected triggerResize() {\n this.chart.forceFit();\n }\n\n /**\n * 绑定 dom 容器大小变化的事件\n */\n private bindSizeSensor() {\n if (this.unbind) {\n return;\n }\n\n const { autoFit = true } = this.options;\n if (autoFit) {\n this.unbind = bind(this.container, () => {\n // 获取最新的宽高信息\n const { width, height } = getContainerSize(this.container);\n\n // 主要是防止绑定的时候触发 resize 回调\n if (width !== this.chart.width || height !== this.chart.height) {\n this.triggerResize();\n }\n });\n }\n }\n\n /**\n * 取消绑定\n */\n private unbindSizeSensor() {\n if (this.unbind) {\n this.unbind();\n this.unbind = undefined;\n }\n }\n}\n","/**\n * view 中三层 group 分层 key\n */\nexport enum LAYER {\n /** 前景层 */\n FORE = 'fore',\n /** 中间层 */\n MID = 'mid',\n /** 背景层 */\n BG = 'bg',\n}\n\n/**\n * 组件在画布的布局方位 12 方位\n */\nexport enum DIRECTION {\n TOP = 'top',\n TOP_LEFT = 'top-left',\n TOP_RIGHT = 'top-right',\n RIGHT = 'right',\n RIGHT_TOP = 'right-top',\n RIGHT_BOTTOM = 'right-bottom',\n LEFT = 'left',\n LEFT_TOP = 'left-top',\n LEFT_BOTTOM = 'left-bottom',\n BOTTOM = 'bottom',\n BOTTOM_LEFT = 'bottom-left',\n BOTTOM_RIGHT = 'bottom-right',\n RADIUS = 'radius',\n CIRCLE = 'circle',\n // no direction information\n NONE = 'none',\n}\n\n/**\n * 组件的类型,可能会影响到布局算法\n */\nexport enum COMPONENT_TYPE {\n /** axis 组件 */\n AXIS = 'axis',\n /** grid 组件 */\n GRID = 'grid',\n /** legend 组件 */\n LEGEND = 'legend',\n /** tooltip 组件 */\n TOOLTIP = 'tooltip',\n /** annotation 组件 */\n ANNOTATION = 'annotation',\n /** 缩略轴组件 */\n SLIDER = 'slider',\n /** 滚动条组件 */\n SCROLLBAR = 'scrollbar',\n /** 其他组件,自定义组件 */\n OTHER = 'other',\n}\n\n/**\n * 三层 group 的 z index\n */\nexport const GROUP_Z_INDEX = {\n FORE: 3,\n MID: 2,\n BG: 1,\n};\n\n/**\n * View 的生命周期阶段(和 3.x 的生命周期略有不同)\n * 我们需要先确定在那写场景需要用到生命周期,如果只是为了在生命周期插入一下什么组件之类的,那么在现有架构就是不需要的\n */\nexport enum VIEW_LIFE_CIRCLE {\n BEFORE_RENDER = 'beforerender',\n AFTER_RENDER = 'afterrender',\n\n BEFORE_PAINT = 'beforepaint',\n AFTER_PAINT = 'afterpaint',\n\n BEFORE_CHANGE_DATA = 'beforechangedata',\n AFTER_CHANGE_DATA = 'afterchangedata',\n\n BEFORE_CLEAR = 'beforeclear',\n AFTER_CLEAR = 'afterclear',\n\n BEFORE_DESTROY = 'beforedestroy',\n\n BEFORE_CHANGE_SIZE = 'beforechangesize',\n AFTER_CHANGE_SIZE = 'afterchangesize',\n}\n\n/**\n * geometry 的生命周期\n */\nexport enum GEOMETRY_LIFE_CIRCLE {\n BEFORE_DRAW_ANIMATE = 'beforeanimate',\n AFTER_DRAW_ANIMATE = 'afteranimate',\n}\n\n/**\n * 绘图区的事件列表\n */\nexport enum PLOT_EVENTS {\n // mouse 事件\n MOUSE_ENTER = 'plot:mouseenter',\n MOUSE_DOWN = 'plot:mousedown',\n MOUSE_MOVE = 'plot:mousemove',\n MOUSE_UP = 'plot:mouseup',\n MOUSE_LEAVE = 'plot:mouseleave',\n // 移动端事件\n TOUCH_START = 'plot:touchstart',\n TOUCH_MOVE = 'plot:touchmove',\n TOUCH_END = 'plot:touchend',\n TOUCH_CANCEL = 'plot:touchcancel',\n // click 事件\n CLICK = 'plot:click',\n DBLCLICK = 'plot:dblclick',\n CONTEXTMENU = 'plot:contextmenu',\n\n LEAVE = 'plot:leave',\n ENTER = 'plot:enter',\n}\n\n/**\n * Element 图形交互状态\n */\nexport enum ELEMENT_STATE {\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n SELECTED = 'selected',\n DEFAULT = 'default',\n}\n\n/** 参与分组的图形属性名 */\nexport const GROUP_ATTRS = ['color', 'shape', 'size'];\n/** 存储原始数据的字段名 */\nexport const FIELD_ORIGIN = '_origin';\n/** 最小的图表宽度 */\nexport const MIN_CHART_WIDTH = 1;\n/** 最小的图表高度 */\nexport const MIN_CHART_HEIGHT = 1;\n/** 辅助组件占图表的尺寸的最大比例:如图表上方的图例最多占图表高度的25% */\nexport const COMPONENT_MAX_VIEW_PERCENTAGE = 0.25;\n","import { IG } from '../dependents';\n\nconst ENGINES: Record = {};\n\n/**\n * 通过名字获取渲染 engine\n * @param name 渲染引擎名字\n * @returns G engine\n */\nexport function getEngine(name: string): IG {\n const G = ENGINES[name];\n\n if (!G) {\n throw new Error(`G engine '${name}' is not exist, please register it at first.`);\n }\n\n return G;\n}\n\n/**\n * 注册渲染引擎\n * @param name\n * @param engine\n */\nexport function registerEngine(name: string, engine: IG) {\n ENGINES[name] = engine;\n}\n","import { MIN_CHART_HEIGHT, MIN_CHART_WIDTH } from '../constant';\nimport { Size } from '../interface';\n\n/**\n * get the element's bounding size\n * @param ele dom element\n * @returns the element width and height\n */\nfunction getElementSize(ele: HTMLElement): Size {\n const style = getComputedStyle(ele);\n\n return {\n width:\n (ele.clientWidth || parseInt(style.width, 10)) -\n parseInt(style.paddingLeft, 10) -\n parseInt(style.paddingRight, 10),\n height:\n (ele.clientHeight || parseInt(style.height, 10)) -\n parseInt(style.paddingTop, 10) -\n parseInt(style.paddingBottom, 10),\n };\n}\n\n/**\n * is value a valid number\n * @param v the input value\n * @returns whether it is a number\n */\nfunction isNumber(v: any): boolean {\n return typeof v === 'number' && !isNaN(v);\n}\n\n/**\n * @ignore\n * calculate the chart size\n * @param ele DOM element\n * @param autoFit should auto fit\n * @param width chart width which is set by user\n * @param height chart height which is set by user\n * @returns the chart width and height\n */\nexport function getChartSize(ele: HTMLElement, autoFit: boolean, width: number, height: number): Size {\n let w = width;\n let h = height;\n\n if (autoFit) {\n const size = getElementSize(ele);\n\n w = size.width ? size.width : w;\n h = size.height ? size.height : h;\n }\n\n return {\n width: Math.max(isNumber(w) ? w : MIN_CHART_WIDTH, MIN_CHART_WIDTH),\n height: Math.max(isNumber(h) ? h : MIN_CHART_HEIGHT, MIN_CHART_HEIGHT),\n };\n}\n\n/**\n * @ignore\n * remove html element from its parent\n * @param dom\n */\nexport function removeDom(dom: HTMLElement) {\n const parent = dom.parentNode;\n\n if (parent) {\n parent.removeChild(dom);\n }\n}\n\n/** @ignore */\nexport { createDom, modifyCSS } from '@antv/dom-util';\n","import EE from '@antv/event-emitter';\n\ninterface BaseCfg {\n visible?: boolean;\n}\n\n/**\n * G2 Chart、View、Geometry 以及 Element 等的基类,提供事件以及一些通用的方法。\n */\nexport default class Base extends EE {\n /** 是否可见 */\n public visible: boolean;\n /** 标识对象是否已销毁 */\n public destroyed: boolean = false;\n\n constructor(cfg: BaseCfg) {\n super();\n const { visible = true } = cfg;\n this.visible = visible;\n }\n\n /**\n * 显示。\n */\n public show() {\n const visible = this.visible;\n if (!visible) {\n this.changeVisible(true);\n }\n }\n\n /**\n * 隐藏。\n */\n public hide() {\n const visible = this.visible;\n if (visible) {\n this.changeVisible(false);\n }\n }\n\n /**\n * 销毁。\n */\n public destroy() {\n this.off();\n this.destroyed = true;\n }\n\n /**\n * 显示或者隐藏。\n * @param visible\n * @returns\n */\n public changeVisible(visible: boolean) {\n if (this.visible === visible) {\n return;\n }\n this.visible = visible;\n }\n}\n",null,"/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n",null,null,null,null,null,null,"import { GeometryCfg } from './geometry/base';\nimport { IInteractionContext } from './interface';\n\n// 注册黑暗主题\nimport { registerTheme } from './core';\nimport { antvDark } from './theme/style-sheet/dark';\nimport { createThemeByStyleSheet } from './theme/util/create-by-style-sheet';\nregisterTheme('dark', createThemeByStyleSheet(antvDark));\n\n// 注册 G 渲染引擎\nimport * as CanvasEngine from '@antv/g-canvas';\nimport * as SVGEngine from '@antv/g-svg';\nimport { registerEngine } from './core';\n\nregisterEngine('canvas', CanvasEngine);\nregisterEngine('svg', SVGEngine);\n\n// 注册 G2 内置的 geometry\nimport { registerGeometry } from './core';\nimport Area, { AreaCfg } from './geometry/area';\nimport Edge from './geometry/edge';\nimport Heatmap from './geometry/heatmap';\nimport Interval, { IntervalCfg } from './geometry/interval';\nimport Line from './geometry/line';\nimport Path, { PathCfg } from './geometry/path';\nimport Point from './geometry/point';\nimport Polygon from './geometry/polygon';\nimport Schema from './geometry/schema';\nimport Violin from './geometry/violin';\n\nregisterGeometry('Polygon', Polygon);\nregisterGeometry('Interval', Interval);\nregisterGeometry('Schema', Schema);\nregisterGeometry('Path', Path);\nregisterGeometry('Point', Point);\nregisterGeometry('Line', Line);\nregisterGeometry('Area', Area);\nregisterGeometry('Edge', Edge);\nregisterGeometry('Heatmap', Heatmap);\nregisterGeometry('Violin', Violin);\n\n// 引入所有内置的 shapes\nimport './geometry/shape/area/line';\nimport './geometry/shape/area/smooth';\nimport './geometry/shape/area/smooth-line';\n\nimport './geometry/shape/edge/arc';\nimport './geometry/shape/edge/smooth';\nimport './geometry/shape/edge/vhv';\n\nimport './geometry/shape/interval/funnel';\nimport './geometry/shape/interval/hollow-rect';\nimport './geometry/shape/interval/line';\nimport './geometry/shape/interval/pyramid';\nimport './geometry/shape/interval/tick';\n\nimport './geometry/shape/line/step';\n\nimport './geometry/shape/point/hollow';\nimport './geometry/shape/point/image';\nimport './geometry/shape/point/solid';\n\nimport './geometry/shape/schema/box';\nimport './geometry/shape/schema/candle';\n\nimport './geometry/shape/polygon/square';\n\nimport './geometry/shape/violin/smooth';\nimport './geometry/shape/violin/hollow';\n\n// 注册 Geometry 内置的 label\nimport { registerGeometryLabel } from './core';\nimport GeometryLabel from './geometry/label/base';\nimport IntervalLabel from './geometry/label/interval';\nimport PieLabel from './geometry/label/pie';\nimport PolarLabel from './geometry/label/polar';\n\nregisterGeometryLabel('base', GeometryLabel);\nregisterGeometryLabel('interval', IntervalLabel);\nregisterGeometryLabel('pie', PieLabel);\nregisterGeometryLabel('polar', PolarLabel);\n\n// 注册 Geometry label 内置的布局函数\nimport { registerGeometryLabelLayout } from './core';\nimport { distribute } from './geometry/label/layout/pie/distribute';\nimport { pieOuterLabelLayout } from './geometry/label/layout/pie/outer';\nimport { pieSpiderLabelLayout } from './geometry/label/layout/pie/spider';\nimport { limitInCanvas } from './geometry/label/layout/limit-in-canvas';\nimport { limitInShape } from './geometry/label/layout/limit-in-shape';\nimport { fixedOverlap, overlap } from './geometry/label/layout/overlap';\nimport { hideOverlap } from './geometry/label/layout/hide-overlap';\nimport { adjustColor } from './geometry/label/layout/adjust-color';\nimport { intervalAdjustPosition } from './geometry/label/layout/interval/adjust-position';\nimport { intervalHideOverlap } from './geometry/label/layout/interval/hide-overlap';\nimport { pointAdjustPosition } from './geometry/label/layout/point/adjust-position';\nimport { pathAdjustPosition } from './geometry/label/layout/path/adjust-position';\nimport { limitInPlot } from './geometry/label/layout/limit-in-plot';\n\nregisterGeometryLabelLayout('overlap', overlap);\nregisterGeometryLabelLayout('distribute', distribute);\nregisterGeometryLabelLayout('fixed-overlap', fixedOverlap);\nregisterGeometryLabelLayout('hide-overlap', hideOverlap);\nregisterGeometryLabelLayout('limit-in-shape', limitInShape);\nregisterGeometryLabelLayout('limit-in-canvas', limitInCanvas);\nregisterGeometryLabelLayout('limit-in-plot', limitInPlot);\nregisterGeometryLabelLayout('pie-outer', pieOuterLabelLayout);\nregisterGeometryLabelLayout('adjust-color', adjustColor);\nregisterGeometryLabelLayout('interval-adjust-position', intervalAdjustPosition);\nregisterGeometryLabelLayout('interval-hide-overlap', intervalHideOverlap);\nregisterGeometryLabelLayout('point-adjust-position', pointAdjustPosition);\nregisterGeometryLabelLayout('pie-spider', pieSpiderLabelLayout);\nregisterGeometryLabelLayout('path-adjust-position', pathAdjustPosition);\n\n// 注册需要的动画执行函数\nimport { fadeIn, fadeOut } from './animate/animation/fade';\nimport { growInX, growInXY, growInY } from './animate/animation/grow-in';\nimport { pathIn } from './animate/animation/path-in';\nimport { positionUpdate } from './animate/animation/position-update';\nimport { scaleInX, scaleInY } from './animate/animation/scale-in';\nimport { sectorPathUpdate } from './animate/animation/sector-path-update';\nimport { waveIn } from './animate/animation/wave-in';\nimport { zoomIn, zoomOut } from './animate/animation/zoom';\nimport { registerAnimation } from './core';\n\nregisterAnimation('fade-in', fadeIn);\nregisterAnimation('fade-out', fadeOut);\nregisterAnimation('grow-in-x', growInX);\nregisterAnimation('grow-in-xy', growInXY);\nregisterAnimation('grow-in-y', growInY);\nregisterAnimation('scale-in-x', scaleInX);\nregisterAnimation('scale-in-y', scaleInY);\nregisterAnimation('wave-in', waveIn);\nregisterAnimation('zoom-in', zoomIn);\nregisterAnimation('zoom-out', zoomOut);\nregisterAnimation('position-update', positionUpdate);\nregisterAnimation('sector-path-update', sectorPathUpdate);\nregisterAnimation('path-in', pathIn);\n\n// 注册内置的 Facet\nimport { registerFacet } from './core';\nimport Circle from './facet/circle';\nimport List from './facet/list';\nimport Matrix from './facet/matrix';\nimport Mirror from './facet/mirror';\nimport Rect from './facet/rect';\nimport Tree from './facet/tree';\n\nregisterFacet('rect', Rect);\nregisterFacet('mirror', Mirror);\nregisterFacet('list', List);\nregisterFacet('matrix', Matrix);\nregisterFacet('circle', Circle);\nregisterFacet('tree', Tree);\n\n// 注册内置的 Component\nimport { registerComponentController } from './core';\n\nimport Annotation from './chart/controller/annotation';\nimport Axis from './chart/controller/axis';\nimport Legend from './chart/controller/legend';\nimport Slider from './chart/controller/slider';\nimport Tooltip from './chart/controller/tooltip';\nimport Scrollbar from './chart/controller/scrollbar';\n\n// register build-in components\nregisterComponentController('axis', Axis);\nregisterComponentController('legend', Legend);\nregisterComponentController('tooltip', Tooltip);\nregisterComponentController('annotation', Annotation);\nregisterComponentController('slider', Slider);\nregisterComponentController('scrollbar', Scrollbar);\n\n// 注册 Interaction Action\nimport { registerAction } from './core';\nimport ActiveRegion from './interaction/action/active-region';\nimport SiblingTooltip from './interaction/action/component/tooltip/sibling';\nimport TooltipAction from './interaction/action/component/tooltip/geometry';\nimport EllipsisTextAction from './interaction/action/component/tooltip/ellipsis-text';\n\nimport ElementActive from './interaction/action/element/active';\nimport ElementLinkByColor from './interaction/action/element/link-by-color';\nimport ElementRangeActive from './interaction/action/element/range-active';\nimport ElementSingleActive from './interaction/action/element/single-active';\n\nimport ElementHighlight from './interaction/action/element/highlight';\nimport ElementHighlightByColor from './interaction/action/element/highlight-by-color';\nimport ElementHighlightByX from './interaction/action/element/highlight-by-x';\n\nimport ElementRangeHighlight, { ELEMENT_RANGE_HIGHLIGHT_EVENTS } from './interaction/action/element/range-highlight';\nimport ElementSingleHighlight from './interaction/action/element/single-highlight';\n\nimport ElementRangeSelected from './interaction/action/element/range-selected';\nimport ElementSelected from './interaction/action/element/selected';\nimport ElementSingleSelected from './interaction/action/element/single-selected';\n\nimport ListActive from './interaction/action/component/list-active';\nimport ListHighlight from './interaction/action/component/list-highlight';\nimport ListSelected from './interaction/action/component/list-selected';\nimport ListUnchecked from './interaction/action/component/list-unchecked';\nimport ListChecked from './interaction/action/component/list-checked';\nimport ListFocus from './interaction/action/component/list-focus';\nimport ListRadio from './interaction/action/component/list-radio';\n\nimport CircleMask from './interaction/action/mask/circle';\nimport DimMask from './interaction/action/mask/dim-rect';\nimport PathMask from './interaction/action/mask/path';\nimport RectMask from './interaction/action/mask/rect';\nimport SmoothPathMask from './interaction/action/mask/smooth-path';\n\nimport CursorAction from './interaction/action/cursor';\nimport DataFilter from './interaction/action/data/filter';\nimport DataRangeFilter, { BRUSH_FILTER_EVENTS } from './interaction/action/data/range-filter';\nimport SiblingFilter from './interaction/action/data/sibling-filter';\n\nimport ElementFilter from './interaction/action/element/filter';\nimport ElementSiblingFilter from './interaction/action/element/sibling-filter';\nimport ButtonAction from './interaction/action/view/button';\nimport ViewDrag from './interaction/action/view/drag';\nimport ViewMove from './interaction/action/view/move';\nimport ScaleTranslate from './interaction/action/view/scale-translate';\nimport ScaleZoom from './interaction/action/view/scale-zoom';\nimport MousewheelScroll from './interaction/action/view/mousewheel-scroll';\n\nregisterAction('tooltip', TooltipAction);\nregisterAction('sibling-tooltip', SiblingTooltip);\nregisterAction('ellipsis-text', EllipsisTextAction);\nregisterAction('element-active', ElementActive);\nregisterAction('element-single-active', ElementSingleActive);\nregisterAction('element-range-active', ElementRangeActive);\n\nregisterAction('element-highlight', ElementHighlight);\nregisterAction('element-highlight-by-x', ElementHighlightByX);\nregisterAction('element-highlight-by-color', ElementHighlightByColor);\n\nregisterAction('element-single-highlight', ElementSingleHighlight);\nregisterAction('element-range-highlight', ElementRangeHighlight);\nregisterAction('element-sibling-highlight', ElementRangeHighlight, {\n effectSiblings: true,\n effectByRecord: true,\n});\n\nregisterAction('element-selected', ElementSelected);\nregisterAction('element-single-selected', ElementSingleSelected);\nregisterAction('element-range-selected', ElementRangeSelected);\nregisterAction('element-link-by-color', ElementLinkByColor);\n\nregisterAction('active-region', ActiveRegion);\nregisterAction('list-active', ListActive);\nregisterAction('list-selected', ListSelected);\nregisterAction('list-highlight', ListHighlight);\nregisterAction('list-unchecked', ListUnchecked);\nregisterAction('list-checked', ListChecked);\nregisterAction('list-focus', ListFocus);\nregisterAction('list-radio', ListRadio);\n\nregisterAction('legend-item-highlight', ListHighlight, {\n componentNames: ['legend'],\n});\n\nregisterAction('axis-label-highlight', ListHighlight, {\n componentNames: ['axis'],\n});\n\nregisterAction('rect-mask', RectMask);\nregisterAction('x-rect-mask', DimMask, { dim: 'x' });\nregisterAction('y-rect-mask', DimMask, { dim: 'y' });\nregisterAction('circle-mask', CircleMask);\nregisterAction('path-mask', PathMask);\nregisterAction('smooth-path-mask', SmoothPathMask);\n\nregisterAction('cursor', CursorAction);\nregisterAction('data-filter', DataFilter);\n\nregisterAction('brush', DataRangeFilter);\nregisterAction('brush-x', DataRangeFilter, { dims: ['x'] });\nregisterAction('brush-y', DataRangeFilter, { dims: ['y'] });\nregisterAction('sibling-filter', SiblingFilter);\nregisterAction('sibling-x-filter', SiblingFilter);\nregisterAction('sibling-y-filter', SiblingFilter);\n\nregisterAction('element-filter', ElementFilter);\nregisterAction('element-sibling-filter', ElementSiblingFilter);\nregisterAction('element-sibling-filter-record', ElementSiblingFilter, { byRecord: true });\n\nregisterAction('view-drag', ViewDrag);\nregisterAction('view-move', ViewMove);\n\nregisterAction('scale-translate', ScaleTranslate);\nregisterAction('scale-zoom', ScaleZoom);\nregisterAction('reset-button', ButtonAction, {\n name: 'reset-button',\n text: 'reset',\n});\n\nregisterAction('mousewheel-scroll', MousewheelScroll);\n\n// 注册默认的 Interaction 交互行为\nimport { registerInteraction } from './core';\n\nfunction isPointInView(context: IInteractionContext) {\n return context.isInPlot();\n}\n\n// 注册 tooltip 的 interaction\nregisterInteraction('tooltip', {\n start: [\n { trigger: 'plot:mousemove', action: 'tooltip:show', throttle: { wait: 50, leading: true, trailing: false } },\n { trigger: 'plot:touchmove', action: 'tooltip:show', throttle: { wait: 50, leading: true, trailing: false } },\n ],\n end: [\n { trigger: 'plot:mouseleave', action: 'tooltip:hide' },\n { trigger: 'plot:leave', action: 'tooltip:hide' },\n { trigger: 'plot:touchend', action: 'tooltip:hide' },\n ],\n});\n\nregisterInteraction('ellipsis-text', {\n start: [\n {\n trigger: 'legend-item-name:mousemove',\n action: 'ellipsis-text:show',\n throttle: { wait: 50, leading: true, trailing: false },\n },\n {\n trigger: 'legend-item-name:touchstart',\n action: 'ellipsis-text:show',\n throttle: { wait: 50, leading: true, trailing: false },\n },\n {\n trigger: 'axis-label:mousemove',\n action: 'ellipsis-text:show',\n throttle: { wait: 50, leading: true, trailing: false },\n },\n {\n trigger: 'axis-label:touchstart',\n action: 'ellipsis-text:show',\n throttle: { wait: 50, leading: true, trailing: false },\n },\n ],\n end: [\n { trigger: 'legend-item-name:mouseleave', action: 'ellipsis-text:hide' },\n { trigger: 'legend-item-name:touchend', action: 'ellipsis-text:hide' },\n { trigger: 'axis-label:mouseleave', action: 'ellipsis-text:hide' },\n { trigger: 'axis-label:touchend', action: 'ellipsis-text:hide' },\n ],\n});\n\n// 移动到 element 上 active\nregisterInteraction('element-active', {\n start: [{ trigger: 'element:mouseenter', action: 'element-active:active' }],\n end: [{ trigger: 'element:mouseleave', action: 'element-active:reset' }],\n});\n\n// 点击选中,允许取消\nregisterInteraction('element-selected', {\n start: [{ trigger: 'element:click', action: 'element-selected:toggle' }],\n});\n\n// hover highlight,允许取消\nregisterInteraction('element-highlight', {\n start: [{ trigger: 'element:mouseenter', action: 'element-highlight:highlight' }],\n end: [{ trigger: 'element:mouseleave', action: 'element-highlight:reset' }],\n});\n\n// hover highlight by x,允许取消\nregisterInteraction('element-highlight-by-x', {\n start: [{ trigger: 'element:mouseenter', action: 'element-highlight-by-x:highlight' }],\n end: [{ trigger: 'element:mouseleave', action: 'element-highlight-by-x:reset' }],\n});\n\n// hover highlight by y,允许取消\nregisterInteraction('element-highlight-by-color', {\n start: [{ trigger: 'element:mouseenter', action: 'element-highlight-by-color:highlight' }],\n end: [{ trigger: 'element:mouseleave', action: 'element-highlight-by-color:reset' }],\n});\n\n// legend hover,element active\nregisterInteraction('legend-active', {\n start: [{ trigger: 'legend-item:mouseenter', action: ['list-active:active', 'element-active:active'] }],\n end: [{ trigger: 'legend-item:mouseleave', action: ['list-active:reset', 'element-active:reset'] }],\n});\n\n// legend hover,element active\nregisterInteraction('legend-highlight', {\n start: [\n { trigger: 'legend-item:mouseenter', action: ['legend-item-highlight:highlight', 'element-highlight:highlight'] },\n ],\n end: [{ trigger: 'legend-item:mouseleave', action: ['legend-item-highlight:reset', 'element-highlight:reset'] }],\n});\n\n// legend hover,element active\nregisterInteraction('axis-label-highlight', {\n start: [\n { trigger: 'axis-label:mouseenter', action: ['axis-label-highlight:highlight', 'element-highlight:highlight'] },\n ],\n end: [{ trigger: 'axis-label:mouseleave', action: ['axis-label-highlight:reset', 'element-highlight:reset'] }],\n});\n\n// legend hover,element active\nregisterInteraction('element-list-highlight', {\n start: [{ trigger: 'element:mouseenter', action: ['list-highlight:highlight', 'element-highlight:highlight'] }],\n end: [{ trigger: 'element:mouseleave', action: ['list-highlight:reset', 'element-highlight:reset'] }],\n});\n\n// 框选\nregisterInteraction('element-range-highlight', {\n showEnable: [\n { trigger: 'plot:mouseenter', action: 'cursor:crosshair' },\n { trigger: 'mask:mouseenter', action: 'cursor:move' },\n { trigger: 'plot:mouseleave', action: 'cursor:default' },\n { trigger: 'mask:mouseleave', action: 'cursor:crosshair' },\n ],\n start: [\n {\n trigger: 'plot:mousedown',\n isEnable(context) {\n // 不要点击在 mask 上重新开始\n return !context.isInShape('mask');\n },\n action: ['rect-mask:start', 'rect-mask:show'],\n },\n {\n trigger: 'mask:dragstart',\n action: ['rect-mask:moveStart'],\n },\n ],\n processing: [\n {\n trigger: 'plot:mousemove',\n action: ['rect-mask:resize'],\n },\n {\n trigger: 'mask:drag',\n action: ['rect-mask:move'],\n },\n {\n trigger: 'mask:change',\n action: ['element-range-highlight:highlight'],\n },\n ],\n end: [\n { trigger: 'plot:mouseup', action: ['rect-mask:end'] },\n { trigger: 'mask:dragend', action: ['rect-mask:moveEnd'] },\n {\n trigger: 'document:mouseup',\n isEnable(context) {\n return !context.isInPlot();\n },\n action: ['element-range-highlight:clear', 'rect-mask:end', 'rect-mask:hide'],\n },\n ],\n rollback: [{ trigger: 'dblclick', action: ['element-range-highlight:clear', 'rect-mask:hide'] }],\n});\n\nregisterInteraction('brush', {\n showEnable: [\n { trigger: 'plot:mouseenter', action: 'cursor:crosshair' },\n { trigger: 'plot:mouseleave', action: 'cursor:default' },\n ],\n start: [\n {\n trigger: 'mousedown',\n isEnable: isPointInView,\n action: ['brush:start', 'rect-mask:start', 'rect-mask:show'],\n },\n ],\n processing: [\n {\n trigger: 'mousemove',\n isEnable: isPointInView,\n action: ['rect-mask:resize'],\n },\n ],\n end: [\n {\n trigger: 'mouseup',\n isEnable: isPointInView,\n action: ['brush:filter', 'brush:end', 'rect-mask:end', 'rect-mask:hide', 'reset-button:show'],\n },\n ],\n rollback: [{ trigger: 'reset-button:click', action: ['brush:reset', 'reset-button:hide', 'cursor:crosshair'] }],\n});\n\nregisterInteraction('brush-visible', {\n showEnable: [\n { trigger: 'plot:mouseenter', action: 'cursor:crosshair' },\n { trigger: 'plot:mouseleave', action: 'cursor:default' },\n ],\n start: [\n {\n trigger: 'plot:mousedown',\n action: ['rect-mask:start', 'rect-mask:show'],\n },\n ],\n processing: [\n {\n trigger: 'plot:mousemove',\n action: ['rect-mask:resize'],\n },\n { trigger: 'mask:change', action: ['element-range-highlight:highlight'] },\n ],\n end: [\n {\n trigger: 'plot:mouseup',\n action: ['rect-mask:end', 'rect-mask:hide', 'element-filter:filter', 'element-range-highlight:clear'],\n },\n ],\n rollback: [\n {\n trigger: 'dblclick',\n action: ['element-filter:clear'],\n },\n ],\n});\n\nregisterInteraction('brush-x', {\n showEnable: [\n { trigger: 'plot:mouseenter', action: 'cursor:crosshair' },\n { trigger: 'plot:mouseleave', action: 'cursor:default' },\n ],\n start: [\n {\n trigger: 'mousedown',\n isEnable: isPointInView,\n action: ['brush-x:start', 'x-rect-mask:start', 'x-rect-mask:show'],\n },\n ],\n processing: [\n {\n trigger: 'mousemove',\n isEnable: isPointInView,\n action: ['x-rect-mask:resize'],\n },\n ],\n end: [\n {\n trigger: 'mouseup',\n isEnable: isPointInView,\n action: ['brush-x:filter', 'brush-x:end', 'x-rect-mask:end', 'x-rect-mask:hide'],\n },\n ],\n rollback: [{ trigger: 'dblclick', action: ['brush-x:reset'] }],\n});\n\nregisterInteraction('element-path-highlight', {\n showEnable: [\n { trigger: 'plot:mouseenter', action: 'cursor:crosshair' },\n { trigger: 'plot:mouseleave', action: 'cursor:default' },\n ],\n start: [\n { trigger: 'mousedown', isEnable: isPointInView, action: 'path-mask:start' },\n { trigger: 'mousedown', isEnable: isPointInView, action: 'path-mask:show' },\n ],\n processing: [{ trigger: 'mousemove', action: 'path-mask:addPoint' }],\n end: [{ trigger: 'mouseup', action: 'path-mask:end' }],\n rollback: [{ trigger: 'dblclick', action: 'path-mask:hide' }],\n});\n\n// 点击选中,允许取消\nregisterInteraction('element-single-selected', {\n start: [{ trigger: 'element:click', action: 'element-single-selected:toggle' }],\n});\n\n// 筛选数据\nregisterInteraction('legend-filter', {\n showEnable: [\n { trigger: 'legend-item:mouseenter', action: ['cursor:pointer', 'list-radio:show'] },\n { trigger: 'legend-item:mouseleave', action: ['cursor:default', 'list-radio:hide'] },\n ],\n start: [\n {\n trigger: 'legend-item:click',\n isEnable: (context) => {\n return !context.isInShape('legend-item-radio');\n },\n action: ['list-unchecked:toggle', 'data-filter:filter', 'list-radio:show'],\n },\n // 正反选数据: 只有当 radio === truthy 的时候才会有 legend-item-radio 这个元素\n {\n trigger: 'legend-item-radio:mouseenter',\n action: ['list-radio:showTip'],\n },\n {\n trigger: 'legend-item-radio:mouseleave',\n action: ['list-radio:hideTip'],\n },\n {\n trigger: 'legend-item-radio:click',\n action: ['list-focus:toggle', 'data-filter:filter', 'list-radio:show'],\n },\n ],\n});\n\n// 筛选数据\nregisterInteraction('continuous-filter', {\n start: [{ trigger: 'legend:valuechanged', action: 'data-filter:filter' }],\n});\n// 筛选数据\nregisterInteraction('continuous-visible-filter', {\n start: [{ trigger: 'legend:valuechanged', action: 'element-filter:filter' }],\n});\n\n// 筛选图形\nregisterInteraction('legend-visible-filter', {\n showEnable: [\n { trigger: 'legend-item:mouseenter', action: 'cursor:pointer' },\n { trigger: 'legend-item:mouseleave', action: 'cursor:default' },\n ],\n start: [{ trigger: 'legend-item:click', action: ['list-unchecked:toggle', 'element-filter:filter'] }],\n});\n\n// 出现背景框\nregisterInteraction('active-region', {\n start: [{ trigger: 'plot:mousemove', action: 'active-region:show' }],\n end: [{ trigger: 'plot:mouseleave', action: 'active-region:hide' }],\n});\n\nfunction isWheelDown(event) {\n event.gEvent.preventDefault();\n return event.gEvent.originalEvent.deltaY > 0;\n}\nregisterInteraction('view-zoom', {\n start: [\n {\n trigger: 'plot:mousewheel',\n isEnable(context) {\n return isWheelDown(context.event);\n },\n action: 'scale-zoom:zoomOut',\n throttle: { wait: 100, leading: true, trailing: false },\n },\n {\n trigger: 'plot:mousewheel',\n isEnable(context) {\n return !isWheelDown(context.event);\n },\n action: 'scale-zoom:zoomIn',\n throttle: { wait: 100, leading: true, trailing: false },\n },\n ],\n});\n\nregisterInteraction('sibling-tooltip', {\n start: [{ trigger: 'plot:mousemove', action: 'sibling-tooltip:show' }],\n end: [{ trigger: 'plot:mouseleave', action: 'sibling-tooltip:hide' }],\n});\n\nregisterInteraction('plot-mousewheel-scroll', {\n start: [{ trigger: 'plot:mousewheel', action: 'mousewheel-scroll:scroll' }],\n});\n\n// 让 TS 支持 View 原型上添加的创建 Geometry 方法的智能提示\n/**\n * 往 View 原型上添加的创建 Geometry 的方法\n *\n * Tips:\n * view module augmentation, detail: http://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation\n */\ndeclare module './chart/view' {\n interface View {\n /**\n * 创建 Polygon 几何标记。\n * @param [cfg] 传入 Polygon 构造函数的配置。\n * @returns polygon 返回 Polygon 实例。\n */\n polygon(cfg?: Partial): Polygon;\n /**\n * 创建 Point 几何标记。\n * @param [cfg] 传入 Point 构造函数的配置。\n * @returns point 返回 Point 实例。\n */\n point(cfg?: Partial): Point;\n /**\n * 创建 Interval 几何标记。\n * @param [cfg] 传入 Interval 构造函数的配置。\n * @returns interval 返回 Interval 实例。\n */\n interval(cfg?: Partial): Interval;\n /**\n * 创建 Schema 几何标记。\n * @param [cfg] 传入 Schema 构造函数的配置。\n * @returns schema 返回 Schema 实例。\n */\n schema(cfg?: Partial): Schema;\n /**\n * 创建 Path 几何标记。\n * @param [cfg] 传入 Path 构造函数的配置。\n * @returns path 返回 Path 实例。\n */\n path(cfg?: Partial): Path;\n /**\n * 创建 Line 几何标记。\n * @param [cfg] 传入 Line 构造函数的配置。\n * @returns line 返回 Line 实例。\n */\n line(cfg?: Partial): Line;\n /**\n * 创建 Area 几何标记。\n * @param [cfg] 传入 Area 构造函数的配置。\n * @returns area 返回 Area 实例。\n */\n area(cfg?: Partial): Area;\n /**\n * 创建 Edge 几何标记。\n * @param [cfg] 传入 Edge 构造函数的配置。\n * @returns schema 返回 Edge 实例。\n */\n edge(cfg?: Partial): Edge;\n /**\n * 创建 Heatmap 几何标记。\n * @param [cfg] 传入 Heatmap 构造函数的配置。\n * @returns heatmap 返回 Heatmap 实例。\n */\n heatmap(cfg?: Partial): Heatmap;\n /**\n * 创建 Violin 几何标记。\n * @param [cfg] 传入 Violin 构造函数的配置。\n * @returns violin 返回 Violin 实例。\n */\n violin(cfg?: Partial): Violin;\n }\n}\n\n// 暴露一些常量\nexport { VIEW_LIFE_CIRCLE } from './constant';\n/** brush 范围筛选的一些事件常量 */\nexport { BRUSH_FILTER_EVENTS, ELEMENT_RANGE_HIGHLIGHT_EVENTS };\n\nexport * from './core';\n",null,null,null,null,"/* 依赖的模块,在这里统一引入,方便打包优化 */\n\n// G\nexport {\n ICanvas,\n IElement,\n IGroup,\n IShape,\n PathCommand,\n BBox,\n Point,\n ShapeAttrs,\n Event,\n AbstractGroup,\n AbstractShape,\n} from '@antv/g-base';\n// 需要有 G-base 提供 g engine 类型定义\nexport type IG = any;\n\n// adjust\nexport { registerAdjust, getAdjust, Adjust } from '@antv/adjust';\n\n// attr\nexport { getAttribute, Attribute } from '@antv/attr';\nexport { Color } from '@antv/attr';\n\n// coordinate\nexport { getCoordinate, registerCoordinate, Coordinate, CoordinateCfg } from '@antv/coord';\n\n// scale\nexport { getScale, registerScale, Scale, ScaleConfig, Tick } from '@antv/scale';\n\n// component\nimport {\n Annotation,\n Axis,\n Component,\n Crosshair,\n Grid,\n GroupComponent,\n HtmlComponent,\n Legend,\n Slider,\n Tooltip,\n Scrollbar,\n} from '@antv/component';\n\nexport {\n CategoryLegendCfg,\n CircleAxisCfg,\n LineAxisCfg,\n GroupComponentCfg,\n ListItem,\n AxisLineCfg,\n AxisTickLineCfg,\n AxisSubTickLineCfg,\n AxisTitleCfg,\n AxisLabelCfg,\n GridLineCfg,\n LegendMarkerCfg,\n LegendTitleCfg,\n LegendBackgroundCfg,\n LegendItemNameCfg,\n LegendItemValueCfg,\n LegendPageNavigatorCfg,\n ContinueLegendCfg,\n ContinueLegendTrackCfg,\n ContinueLegendRailCfg,\n ContinueLegendLabelCfg,\n ContinueLegendHandlerCfg,\n CrosshairLineCfg,\n CrosshairTextCfg,\n CrosshairTextBackgroundCfg,\n SliderCfg,\n TrendCfg,\n EnhancedTextCfg,\n LineAnnotationTextCfg,\n IComponent,\n IList,\n} from '@antv/component';\n\nexport { HtmlComponent, GroupComponent, Component, Crosshair };\nexport { Annotation };\n// axis\nconst { Line: LineAxis, Circle: CircleAxis } = Axis;\nexport { LineAxis, CircleAxis };\n// grid\nconst { Line: LineGrid, Circle: CircleGrid } = Grid;\nexport { LineGrid, CircleGrid };\n// legend\nconst { Category: CategoryLegend, Continuous: ContinuousLegend } = Legend;\nexport { CategoryLegend, ContinuousLegend };\n// Tooltip\nconst { Html: HtmlTooltip } = Tooltip;\nexport { HtmlTooltip };\n// Slider\nexport { Slider };\n// Scrollbar\nexport { Scrollbar };\n","import { BBox } from '@antv/g-svg';\nimport { each, isEmpty, isNumber, isNumberEqual, max, min } from '@antv/util';\nimport { Coordinate, IShape, Point } from '../dependents';\nimport { ShapeInfo } from '../interface';\n\n// 获取图形的包围盒\nfunction getPointsBox(points) {\n if (isEmpty(points)) {\n return null;\n }\n\n let minX = points[0].x;\n let maxX = points[0].x;\n let minY = points[0].y;\n let maxY = points[0].y;\n each(points, (point) => {\n minX = minX > point.x ? point.x : minX;\n maxX = maxX < point.x ? point.x : maxX;\n minY = minY > point.y ? point.y : minY;\n maxY = maxY < point.y ? point.y : maxY;\n });\n\n return {\n minX,\n maxX,\n minY,\n maxY,\n centerX: (minX + maxX) / 2,\n centerY: (minY + maxY) / 2,\n };\n}\n\nfunction uniqueValues(array: T[]) {\n return Array.from(new Set(array)).length === 1;\n}\n\nfunction mid(array: number[]) {\n return (min(array) + max(array)) / 2;\n}\n\n/**\n * @ignore\n * 根据弧度计算极坐标系下的坐标点\n * @param centerX\n * @param centerY\n * @param radius\n * @param angleInRadian\n * @returns\n */\nexport function polarToCartesian(centerX: number, centerY: number, radius: number, angleInRadian: number) {\n return {\n x: centerX + radius * Math.cos(angleInRadian),\n y: centerY + radius * Math.sin(angleInRadian),\n };\n}\n\n/**\n * @ignore\n * 根据起始角度计算绘制扇形的 path\n * @param centerX\n * @param centerY\n * @param radius\n * @param startAngleInRadian\n * @param endAngleInRadian\n * @returns\n */\nexport function getSectorPath(\n centerX: number,\n centerY: number,\n radius: number,\n startAngleInRadian: number,\n endAngleInRadian: number,\n innerRadius: number = 0\n) {\n const start = polarToCartesian(centerX, centerY, radius, startAngleInRadian);\n const end = polarToCartesian(centerX, centerY, radius, endAngleInRadian);\n\n const innerStart = polarToCartesian(centerX, centerY, innerRadius, startAngleInRadian);\n const innerEnd = polarToCartesian(centerX, centerY, innerRadius, endAngleInRadian);\n\n if (endAngleInRadian - startAngleInRadian === Math.PI * 2) {\n // 整个圆是分割成两个圆\n const middlePoint = polarToCartesian(centerX, centerY, radius, startAngleInRadian + Math.PI);\n const innerMiddlePoint = polarToCartesian(centerX, centerY, innerRadius, startAngleInRadian + Math.PI);\n const circlePathCommands = [\n ['M', start.x, start.y],\n ['A', radius, radius, 0, 1, 1, middlePoint.x, middlePoint.y],\n ['A', radius, radius, 0, 1, 1, end.x, end.y],\n ['M', innerStart.x, innerStart.y],\n ];\n if (innerRadius) {\n circlePathCommands.push(['A', innerRadius, innerRadius, 0, 1, 0, innerMiddlePoint.x, innerMiddlePoint.y]);\n circlePathCommands.push(['A', innerRadius, innerRadius, 0, 1, 0, innerEnd.x, innerEnd.y]);\n }\n\n circlePathCommands.push(['M', start.x, start.y]);\n circlePathCommands.push(['Z']);\n\n return circlePathCommands;\n }\n\n const arcSweep = endAngleInRadian - startAngleInRadian <= Math.PI ? 0 : 1;\n const sectorPathCommands = [\n ['M', start.x, start.y],\n ['A', radius, radius, 0, arcSweep, 1, end.x, end.y],\n ['L', innerEnd.x, innerEnd.y],\n ];\n if (innerRadius) {\n sectorPathCommands.push(['A', innerRadius, innerRadius, 0, arcSweep, 0, innerStart.x, innerStart.y]);\n }\n sectorPathCommands.push(['L', start.x, start.y]);\n sectorPathCommands.push(['Z']);\n\n return sectorPathCommands;\n}\n\n/**\n * @ignore\n * Gets arc path\n * @param centerX\n * @param centerY\n * @param radius\n * @param startAngleInRadian\n * @param endAngleInRadian\n * @returns\n */\nexport function getArcPath(\n centerX: number,\n centerY: number,\n radius: number,\n startAngleInRadian: number,\n endAngleInRadian: number\n) {\n const start = polarToCartesian(centerX, centerY, radius, startAngleInRadian);\n const end = polarToCartesian(centerX, centerY, radius, endAngleInRadian);\n\n if (isNumberEqual(endAngleInRadian - startAngleInRadian, Math.PI * 2)) {\n const middlePoint = polarToCartesian(centerX, centerY, radius, startAngleInRadian + Math.PI);\n return [\n ['M', start.x, start.y],\n ['A', radius, radius, 0, 1, 1, middlePoint.x, middlePoint.y],\n ['A', radius, radius, 0, 1, 1, start.x, start.y],\n ['A', radius, radius, 0, 1, 0, middlePoint.x, middlePoint.y],\n ['A', radius, radius, 0, 1, 0, start.x, start.y],\n ['Z'],\n ];\n }\n const arcSweep = endAngleInRadian - startAngleInRadian <= Math.PI ? 0 : 1;\n return [\n ['M', start.x, start.y],\n ['A', radius, radius, 0, arcSweep, 1, end.x, end.y],\n ];\n}\n\n/**\n * @ignore\n * 从数据模型中的 points 换算角度\n * @param shapeModel\n * @param coordinate\n * @returns\n */\nexport function getAngle(shapeModel: ShapeInfo, coordinate: Coordinate) {\n const points = shapeModel.points;\n const box = getPointsBox(points);\n let endAngle;\n let startAngle;\n const { startAngle: coordStartAngle, endAngle: coordEndAngle } = coordinate;\n const diffAngle = coordEndAngle - coordStartAngle;\n\n if (coordinate.isTransposed) {\n endAngle = box.maxY * diffAngle;\n startAngle = box.minY * diffAngle;\n } else {\n endAngle = box.maxX * diffAngle;\n startAngle = box.minX * diffAngle;\n }\n endAngle += coordStartAngle;\n startAngle += coordStartAngle;\n return {\n startAngle,\n endAngle,\n };\n}\n\n/**\n * @ignore\n * 计算多边形重心: https://en.wikipedia.org/wiki/Centroid#Of_a_polygon\n */\nexport function getPolygonCentroid(xs: number | number[], ys: number | number[]) {\n if (isNumber(xs) && isNumber(ys)) {\n // 普通色块图,xs 和 ys 是数值\n return [xs, ys];\n }\n\n xs = xs as number[];\n ys = ys as number[];\n // 当这个 polygon 的点在一条线上的时候\n // 也就是说 xs 里面的值都相同,比如:[1, 1, 1, 1]\n // 或者说 ys 里面的值都相同,比如:[0, 0, 0, 0]\n // 下面计算得到的 k = 0\n // 导致返回的值是 [NaN, NaN]\n // 所以这里做相应的处理\n if (uniqueValues(xs) || uniqueValues(ys)) return [mid(xs), mid(ys)];\n\n let i = -1;\n let x = 0;\n let y = 0;\n let former;\n let current = xs.length - 1;\n let diff;\n let k = 0;\n while (++i < xs.length) {\n former = current;\n current = i;\n k += diff = xs[former] * ys[current] - xs[current] * ys[former];\n x += (xs[former] + xs[current]) * diff;\n y += (ys[former] + ys[current]) * diff;\n }\n k *= 3;\n return [x / k, y / k];\n}\n\n/**\n * @ignore\n * 获取需要替换的属性,如果原先图形元素存在,而新图形不存在,则设置 undefined\n */\nexport function getReplaceAttrs(sourceShape: IShape, targetShape: IShape) {\n const originAttrs = sourceShape.attr();\n const newAttrs = targetShape.attr();\n each(originAttrs, (v, k) => {\n if (newAttrs[k] === undefined) {\n newAttrs[k] = undefined;\n }\n });\n return newAttrs;\n}\n","import { isArray, isString } from '@antv/util';\n\n/**\n * @ignore\n * Determines whether between is\n * @param value\n * @param start\n * @param end\n * @returns true if between\n */\nexport function isBetween(value: number, start: number, end: number): boolean {\n const min = Math.min(start, end);\n const max = Math.max(start, end);\n\n return value >= min && value <= max;\n}\n\n/**\n * @ignore\n * pads the current string/array with a given value (repeated, if needed) so that the resulting reaches a given length.\n * The padding is applied from the end of the current value.\n *\n * @param source\n * @param targetLength\n * @param padValue\n * @returns\n */\nexport function padEnd(source: string | any[], targetLength: number, padValue: any) {\n if (isString(source)) {\n return source.padEnd(targetLength, padValue);\n } else if (isArray(source)) {\n const sourceLength = source.length;\n if (sourceLength < targetLength) {\n const diff = targetLength - sourceLength;\n for (let i = 0; i < diff; i++) {\n source.push(padValue);\n }\n }\n }\n\n return source;\n}\n\n/**\n * @ignore\n * omit keys of an object.\n * @param obj\n * @param keys\n */\nexport function omit(obj: T, keys: string[]): T {\n if (typeof obj === 'object') {\n keys.forEach((key: string) => {\n delete obj[key];\n });\n }\n\n return obj;\n}\n\n/**\n * @ignore\n * @param sourceArray\n * @param targetArray\n * @param map\n */\nexport function uniq(sourceArray: any[], targetArray: any[] = [], map: Map = new Map()) {\n for (const source of sourceArray) {\n if (!map.has(source)) {\n targetArray.push(source);\n map.set(source, true);\n }\n }\n return targetArray;\n}\n","import { each } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { Padding, Point, Region } from '../interface';\nimport { BBox as BBoxObject } from '../dependents';\n\n/**\n * 用于包围盒计算。\n */\nexport class BBox {\n /** x 轴坐标系 */\n public x: number;\n /** y 轴坐标系 */\n public y: number;\n /** 包围盒高度 */\n public height: number;\n /** 包围盒宽度 */\n public width: number;\n\n public static fromRange(minX: number, minY: number, maxX: number, maxY: number) {\n return new BBox(minX, minY, maxX - minX, maxY - minY);\n }\n\n public static fromObject(bbox: BBoxObject) {\n return new BBox(bbox.minX, bbox.minY, bbox.width, bbox.height);\n }\n\n constructor(x: number = 0, y: number = 0, width: number = 0, height: number = 0) {\n this.x = x;\n this.y = y;\n this.height = height;\n this.width = width;\n }\n\n public get minX(): number {\n return this.x;\n }\n\n public get maxX(): number {\n return this.x + this.width;\n }\n\n public get minY(): number {\n return this.y;\n }\n\n public get maxY(): number {\n return this.y + this.height;\n }\n\n public get tl(): Point {\n return { x: this.x, y: this.y };\n }\n\n public get tr(): Point {\n return { x: this.maxX, y: this.y };\n }\n\n public get bl(): Point {\n return { x: this.x, y: this.maxY };\n }\n\n public get br(): Point {\n return { x: this.maxX, y: this.maxY };\n }\n\n public get top(): Point {\n return {\n x: this.x + this.width / 2,\n y: this.minY,\n };\n }\n\n public get right(): Point {\n return {\n x: this.maxX,\n y: this.y + this.height / 2,\n };\n }\n public get bottom(): Point {\n return {\n x: this.x + this.width / 2,\n y: this.maxY,\n };\n }\n public get left(): Point {\n return {\n x: this.minX,\n y: this.y + this.height / 2,\n };\n }\n // end 计算属性\n\n /**\n * 包围盒是否相等\n * @param {BBox} bbox 包围盒\n * @returns 包围盒是否相等\n */\n public isEqual(bbox: BBox): boolean {\n return this.x === bbox.x && this.y === bbox.y && this.width === bbox.width && this.height === bbox.height;\n }\n\n /**\n * 是否包含了另一个包围盒\n * @param child\n */\n public contains(child: BBox): boolean {\n return child.minX >= this.minX && child.maxX <= this.maxX && child.minY >= this.minY && child.maxY <= this.maxY;\n }\n\n /**\n * 克隆包围盒\n * @returns 包围盒\n */\n public clone(): BBox {\n return new BBox(this.x, this.y, this.width, this.height);\n }\n\n /**\n * 取并集\n * @param subBBox\n */\n public add(...subBBox: BBox[]): BBox {\n const bbox = this.clone();\n each(subBBox, (b: BBox) => {\n bbox.x = Math.min(b.x, bbox.x);\n bbox.y = Math.min(b.y, bbox.y);\n bbox.width = Math.max(b.maxX, bbox.maxX) - bbox.x;\n bbox.height = Math.max(b.maxY, bbox.maxY) - bbox.y;\n });\n\n return bbox;\n }\n\n /**\n * 取交集\n * @param subBBox\n */\n public merge(...subBBox: BBox[]): BBox {\n const bbox = this.clone();\n each(subBBox, (b: BBox) => {\n bbox.x = Math.max(b.x, bbox.x);\n bbox.y = Math.max(b.y, bbox.y);\n bbox.width = Math.min(b.maxX, bbox.maxX) - bbox.x;\n bbox.height = Math.min(b.maxY, bbox.maxY) - bbox.y;\n });\n\n return bbox;\n }\n\n /**\n * bbox 剪裁\n * @param subBBox\n * @param direction\n */\n public cut(subBBox: BBox, direction: DIRECTION): BBox {\n const width = subBBox.width;\n const height = subBBox.height;\n\n switch (direction) {\n case DIRECTION.TOP:\n case DIRECTION.TOP_LEFT:\n case DIRECTION.TOP_RIGHT:\n return BBox.fromRange(this.minX, this.minY + height, this.maxX, this.maxY);\n\n case DIRECTION.RIGHT:\n case DIRECTION.RIGHT_TOP:\n case DIRECTION.RIGHT_BOTTOM:\n return BBox.fromRange(this.minX, this.minY, this.maxX - width, this.maxY);\n\n case DIRECTION.BOTTOM:\n case DIRECTION.BOTTOM_LEFT:\n case DIRECTION.BOTTOM_RIGHT:\n return BBox.fromRange(this.minX, this.minY, this.maxX, this.maxY - height);\n\n case DIRECTION.LEFT:\n case DIRECTION.LEFT_TOP:\n case DIRECTION.LEFT_BOTTOM:\n return BBox.fromRange(this.minX + width, this.minY, this.maxX, this.maxY);\n default:\n // 其他情况不裁剪,原样返回\n return this;\n }\n }\n\n /**\n * 收缩形成新的\n * @param gap\n */\n public shrink(gap: Padding): BBox {\n const [top, right, bottom, left] = gap;\n\n return new BBox(this.x + left, this.y + top, this.width - left - right, this.height - top - bottom);\n }\n\n /**\n * 扩张形成新的\n * @param gap\n */\n public expand(gap: Padding): BBox {\n const [top, right, bottom, left] = gap;\n\n return new BBox(this.x - left, this.y - top, this.width + left + right, this.height + top + bottom);\n }\n\n /**\n * get the gap of two bbox, if not exceed, then 0\n * @param bbox\n * @returns [top, right, bottom, left]\n */\n public exceed(bbox: BBox): Padding {\n return [\n Math.max(-this.minY + bbox.minY, 0),\n Math.max(this.maxX - bbox.maxX, 0),\n Math.max(this.maxY - bbox.maxY, 0),\n Math.max(-this.minX + bbox.minX, 0),\n ];\n }\n\n /**\n * 是否碰撞\n * @param bbox\n */\n public collide(bbox: BBox): boolean {\n return this.minX < bbox.maxX && this.maxX > bbox.minX && this.minY < bbox.maxY && this.maxY > bbox.minY;\n }\n\n /**\n * 获取包围盒大小\n * @returns 包围盒大小\n */\n public size(): number {\n return this.width * this.height;\n }\n\n /**\n * 点是否在 bbox 中\n * @param p\n */\n public isPointIn(p: Point) {\n return p.x >= this.minX && p.x <= this.maxX && p.y >= this.minY && p.y <= this.maxY;\n }\n}\n\n/**\n * 从一个 bbox 的 region 获取 bbox\n * @param bbox\n * @param region\n */\nexport const getRegionBBox = (bbox: BBox, region: Region): BBox => {\n const { start, end } = region;\n\n return new BBox(\n bbox.x + bbox.width * start.x,\n bbox.y + bbox.height * start.y,\n bbox.width * Math.abs(end.x - start.x),\n bbox.height * Math.abs(end.y - start.y)\n );\n};\n\n/**\n * 将 bbox 转换成 points\n * @param bbox\n */\nexport function toPoints(bbox: Partial): any[] {\n return [\n [bbox.minX, bbox.minY],\n [bbox.maxX, bbox.minY],\n [bbox.maxX, bbox.maxY],\n [bbox.minX, bbox.maxY],\n ];\n}\n","import { Coordinate } from '../dependents';\nimport { Point } from '../interface';\nimport { getSectorPath } from './graphics';\nimport { isBetween } from './helper';\nimport { BBox } from './bbox';\n\n/**\n * @ignore\n * Gets x dimension length\n * @param coordinate\n * @returns x dimension length\n */\nexport function getXDimensionLength(coordinate): number {\n if (coordinate.isPolar && !coordinate.isTransposed) {\n // 极坐标系下 width 为弧长\n return (coordinate.endAngle - coordinate.startAngle) * coordinate.getRadius();\n }\n\n // 直角坐标系\n const start = coordinate.convert({ x: 0, y: 0 });\n const end = coordinate.convert({ x: 1, y: 0 });\n // 坐标系有可能发生 transpose 等变换,所有通过两点之间的距离进行计算\n return Math.sqrt(Math.pow(end.x - start.x, 2) + Math.pow(end.y - start.y, 2));\n}\n\n/**\n * @ignore\n * Determines whether full circle is\n * @param coordinate\n * @returns true if full circle\n */\nexport function isFullCircle(coordinate: Coordinate): boolean {\n if (coordinate.isPolar) {\n const { startAngle, endAngle } = coordinate;\n return endAngle - startAngle === Math.PI * 2;\n }\n return false;\n}\n\n/**\n * @ignore\n * 获取当前点到坐标系圆心的距离\n * @param coordinate 坐标系\n * @param point 当前点\n * @returns distance to center\n */\nexport function getDistanceToCenter(coordinate: Coordinate, point: Point): number {\n const center = coordinate.getCenter() as Point;\n return Math.sqrt((point.x - center.x) ** 2 + (point.y - center.y) ** 2);\n}\n\n/**\n * @ignore\n * 坐标点是否在坐标系中\n * @param coordinate\n * @param point\n */\nexport function isPointInCoordinate(coordinate: Coordinate, point: Point) {\n let result = false;\n\n if (coordinate) {\n if (coordinate.type === 'theta') {\n const { start, end } = coordinate;\n result = isBetween(point.x, start.x, end.x) && isBetween(point.y, start.y, end.y);\n } else {\n const invertPoint = coordinate.invert(point);\n\n result = isBetween(invertPoint.x, 0, 1) && isBetween(invertPoint.y, 0, 1);\n }\n }\n\n return result;\n}\n\n/**\n * @ignore\n * 获取点到圆心的连线与水平方向的夹角\n */\nexport function getAngleByPoint(coordinate: Coordinate, point: Point): number {\n const center = coordinate.getCenter();\n return Math.atan2(point.y - center.y, point.x - center.x);\n}\n\n/**\n * @ignore\n * 获取同坐标系范围相同的剪切区域\n * @param coordinate\n * @returns\n */\nexport function getCoordinateClipCfg(coordinate: Coordinate, margin: number = 0) {\n const { start, end } = coordinate;\n const width = coordinate.getWidth();\n const height = coordinate.getHeight();\n\n if (coordinate.isPolar) {\n const { startAngle, endAngle } = coordinate;\n const center = coordinate.getCenter();\n const radius = coordinate.getRadius();\n\n return {\n type: 'path',\n startState: {\n path: getSectorPath(center.x, center.y, radius + margin, startAngle, startAngle),\n },\n endState: (ratio) => {\n const diff = (endAngle - startAngle) * ratio + startAngle;\n const path = getSectorPath(center.x, center.y, radius + margin, startAngle, diff);\n return {\n path,\n };\n },\n attrs: {\n path: getSectorPath(center.x, center.y, radius + margin, startAngle, endAngle),\n },\n };\n }\n\n let endState;\n if (coordinate.isTransposed) {\n endState = {\n height: height + margin * 2,\n };\n } else {\n endState = {\n width: width + margin * 2,\n };\n }\n\n return {\n type: 'rect',\n startState: {\n x: start.x - margin,\n y: end.y - margin,\n width: coordinate.isTransposed ? width + margin * 2 : 0,\n height: coordinate.isTransposed ? 0 : height + margin * 2,\n },\n endState,\n attrs: {\n x: start.x - margin,\n y: end.y - margin,\n width: width + margin * 2,\n height: height + margin * 2,\n },\n };\n}\n\n/**\n * 获取坐标系范围的 BBox\n * @param coordinate\n * @param margin\n */\nexport function getCoordinateBBox(coordinate: Coordinate, margin = 0) {\n const { start, end } = coordinate;\n const width = coordinate.getWidth();\n const height = coordinate.getHeight();\n const minX = Math.min(start.x, end.x);\n const minY = Math.min(start.y, end.y);\n\n return BBox.fromRange(minX - margin, minY - margin, minX + width + margin, minY + height + margin);\n}\n","import { firstValue, get, isEmpty, isNil, isNumber, isString, valuesOfKey } from '@antv/util';\nimport { GROUP_ATTRS } from '../constant';\nimport { getScale, Scale, Coordinate } from '../dependents';\nimport { LooseObject, ScaleOption, ViewCfg } from '../interface';\nimport { isFullCircle } from './coordinate';\n\nconst dateRegex =\n /^(?:(?!0000)[0-9]{4}([-/.]+)(?:(?:0?[1-9]|1[0-2])\\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\\1(?:29|30)|(?:0?[13578]|1[02])\\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]+)0?2\\2(?:29))(\\s+([01]|([01][0-9]|2[0-3])):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9]))?$/;\n\n/**\n * 获取字段对应数据的类型\n * @param field 数据字段名\n * @param data 数据源\n * @returns default type 返回对应的数据类型\n */\nfunction getDefaultType(value: any): string {\n let type = 'linear';\n if (dateRegex.test(value)) {\n type = 'timeCat';\n } else if (isString(value)) {\n type = 'cat';\n }\n return type;\n}\n\n/**\n * using the scale type if user specified, otherwise infer the type\n */\nexport function inferScaleType(scale: Scale, scaleDef: ScaleOption = {}, attrType: string, geometryType: string): string {\n if (scaleDef.type) return scaleDef.type;\n // geometry 类型有: edge,heatmap,interval,line,path,point,polygon,schema,voilin等;理论上,interval 下,可以用 linear scale 作为分组字段\n if (GROUP_ATTRS.includes(attrType) && ['interval'].includes(geometryType)) {\n return 'cat';\n }\n return scale.type;\n}\n\n/**\n * @ignore\n * 为指定的 `field` 字段数据创建 scale\n * @param field 字段名\n * @param [data] 数据集,可为空\n * @param [scaleDef] 列定义,可为空\n * @returns scale 返回创建的 Scale 实例\n */\nexport function createScaleByField(field: string | number, data?: LooseObject[] | [], scaleDef?: ScaleOption): Scale {\n const validData = data || [];\n\n if (isNumber(field) || (isNil(firstValue(validData, field)) && isEmpty(scaleDef))) {\n const Identity = getScale('identity');\n return new Identity({\n field: field.toString(),\n values: [field],\n });\n }\n\n const values = valuesOfKey(validData, field);\n\n // 如果已经定义过这个度量 (fix-later 单纯从数据中,推断 scale type 是不精确的)\n const type = get(scaleDef, 'type', getDefaultType(values[0]));\n const ScaleCtor = getScale(type);\n return new ScaleCtor({\n field,\n values,\n ...scaleDef,\n });\n}\n\n/**\n * @ignore\n * 同步 scale\n * @todo 是否可以通过 scale.update() 方法进行更新\n * @param scale 需要同步的 scale 实例\n * @param newScale 同步源 Scale\n */\nexport function syncScale(scale: Scale, newScale: Scale) {\n if (scale.type !== 'identity' && newScale.type !== 'identity') {\n const obj = {};\n for (const k in newScale) {\n if (Object.prototype.hasOwnProperty.call(newScale, k)) {\n obj[k] = newScale[k];\n }\n }\n\n scale.change(obj);\n }\n}\n\n/**\n * @ignore\n * get the scale name, if alias exist, return alias, or else field\n * @param scale\n * @returns the name of field\n */\nexport function getName(scale: Scale): string {\n return scale.alias || scale.field;\n}\n\n/**\n * 根据 scale values 和 coordinate 获取分类默认 range\n * @param scale 需要获取的 scale 实例\n * @param coordinate coordinate 实例\n * @param theme theme\n */\nexport function getDefaultCategoryScaleRange(\n scale: Scale,\n coordinate: Coordinate,\n theme: ViewCfg['theme']\n): Scale['range'] {\n const { values } = scale;\n const count = values.length;\n let range;\n\n if (count === 1) {\n range = [0.5, 1]; // 只有一个分类时,防止计算出现 [0.5,0.5] 的状态\n } else {\n let widthRatio = 1;\n let offset = 0;\n\n if (isFullCircle(coordinate)) {\n if (!coordinate.isTransposed) {\n range = [0, 1 - 1 / count];\n } else {\n widthRatio = get(theme, 'widthRatio.multiplePie', 1 / 1.3);\n offset = (1 / count) * widthRatio;\n range = [offset / 2, 1 - offset / 2];\n }\n } else {\n offset = 1 / count / 2; // 两边留下分类空间的一半\n range = [offset, 1 - offset]; // 坐标轴最前面和最后面留下空白防止绘制柱状图时\n }\n }\n return range;\n}\n\n/**\n * @function y轴scale的max\n * @param {yScale}\n */\nexport function getMaxScale(scale: Scale) {\n // 过滤values[]中 NaN/undefined/null 等\n const values = scale.values.filter((item) => !isNil(item) && !isNaN(item));\n\n return Math.max(...values, isNil(scale.max) ? -Infinity : scale.max);\n}\n","import { deepMix, get, isBoolean } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { Coordinate, Scale } from '../dependents';\nimport { AxisCfg, AxisOption, Point, Region } from '../interface';\nimport { getName } from './scale';\nimport { vec2 } from '@antv/matrix-util';\n\n/**\n * @ignore\n * get axis relative region ( 0 ~ 1) by direction when coordinate is rect\n * @param direction\n * @returns axis coordinate region\n */\nexport function getLineAxisRelativeRegion(direction: DIRECTION): Region {\n let start;\n let end;\n\n switch (direction) {\n case DIRECTION.TOP:\n start = { x: 0, y: 1 };\n end = { x: 1, y: 1 };\n break;\n case DIRECTION.RIGHT:\n start = { x: 1, y: 0 };\n end = { x: 1, y: 1 };\n break;\n case DIRECTION.BOTTOM:\n start = { x: 0, y: 0 };\n end = { x: 1, y: 0 };\n break;\n case DIRECTION.LEFT:\n start = { x: 0, y: 0 };\n end = { x: 0, y: 1 };\n break;\n default:\n start = end = { x: 0, y: 0 };\n }\n\n return { start, end };\n}\n\n/**\n * @ignore\n * get axis relative region ( 0 ~ 1) by direction when coordinate is polar\n * @param coordinate\n * @returns axis coordinate region\n */\nexport function getCircleAxisRelativeRegion(coordinate: Coordinate) {\n let start;\n let end;\n if (coordinate.isTransposed) {\n start = {\n x: 0,\n y: 0,\n };\n end = {\n x: 1,\n y: 0,\n };\n } else {\n start = {\n x: 0,\n y: 0,\n };\n end = {\n x: 0,\n y: 1,\n };\n }\n\n return { start, end };\n}\n\n/**\n * @ignore\n * get the axis region from coordinate\n * @param coordinate\n * @param direction\n * @returns the axis region (start point, end point)\n */\nexport function getAxisRegion(coordinate: Coordinate, direction: DIRECTION): Region {\n let region = { start: { x: 0, y: 0 }, end: { x: 0, y: 0 } };\n if (coordinate.isRect) {\n region = getLineAxisRelativeRegion(direction);\n } else if (coordinate.isPolar) {\n region = getCircleAxisRelativeRegion(coordinate);\n }\n\n const { start, end } = region;\n return {\n start: coordinate.convert(start),\n end: coordinate.convert(end),\n };\n}\n\n/**\n * @ignore\n * get axis factor\n * @param coordinate\n * @param direction\n * @returns factor\n */\nexport function getAxisFactor(coordinate: Coordinate, direction: DIRECTION): number {\n // rect coordinate, by direction\n if (coordinate.isRect) {\n return coordinate.isTransposed\n ? [DIRECTION.RIGHT, DIRECTION.BOTTOM].includes(direction)\n ? 1\n : -1\n : [DIRECTION.BOTTOM, DIRECTION.RIGHT].includes(direction)\n ? -1\n : 1;\n }\n\n // polar y axis, by angle\n if (coordinate.isPolar) {\n const startAngle = coordinate.x.start;\n return startAngle < 0 ? -1 : 1;\n }\n\n return 1;\n}\n\n/**\n * @ignore\n * whether the axis isVertical\n * @param region\n * @returns isVertical\n */\nexport function isVertical(region: Region): boolean {\n const { start, end } = region;\n\n return start.x === end.x;\n}\n\n/**\n * @ignore\n * get factor by region (real position)\n * @param region\n * @param center\n * @returns factor\n */\nexport function getAxisFactorByRegion(region: Region, center: Point): number {\n const { start, end } = region;\n\n const isAxisVertical = isVertical(region);\n\n // 垂直\n if (isAxisVertical) {\n // 左方,从下到上、右方,从上到下\n if ((start.y - end.y) * (center.x - start.x) > 0) {\n return 1;\n } else {\n return -1;\n }\n } else {\n // 下方,从左到右、上方,从右到做\n if ((end.x - start.x) * (start.y - center.y) > 0) {\n return -1;\n } else {\n return 1;\n }\n }\n}\n\n/**\n * @ignore\n * get the axis cfg from theme, will mix the common cfg of legend theme\n *\n * @param theme view theme object\n * @param direction axis direction\n * @returns axis theme cfg\n */\nexport function getAxisThemeCfg(theme: object, direction: string): object {\n const axisTheme = get(theme, ['components', 'axis'], {});\n return deepMix({}, get(axisTheme, ['common'], {}), deepMix({}, get(axisTheme, [direction], {})));\n}\n\n/**\n * get the options of axis title,mix the cfg from theme, avoid common themeCfg not work\n * @param theme\n * @param direction\n * @param axisOptions\n * @returns axis title options\n */\nexport function getAxisTitleOptions(theme: object, direction: string, axisOptions?: object): object {\n const axisTheme = get(theme, ['components', 'axis'], {});\n return deepMix(\n {},\n get(axisTheme, ['common', 'title'], {}),\n deepMix({}, get(axisTheme, [direction, 'title'], {})),\n axisOptions\n );\n}\n\n/**\n * @ignore\n * get circle axis center and radius\n * @param coordinate\n */\nexport function getCircleAxisCenterRadius(coordinate: Coordinate) {\n // @ts-ignore\n const { x, y, circleCenter: center } = coordinate;\n const isReflectY = y.start > y.end;\n const start = coordinate.isTransposed\n ? coordinate.convert({\n x: isReflectY ? 0 : 1,\n y: 0,\n })\n : coordinate.convert({\n x: 0,\n y: isReflectY ? 0 : 1,\n });\n\n const startVector: [number, number] = [start.x - center.x, start.y - center.y];\n const normalVector: [number, number] = [1, 0];\n const startAngle =\n start.y > center.y ? vec2.angle(startVector, normalVector) : vec2.angle(startVector, normalVector) * -1;\n const endAngle = startAngle + (x.end - x.start);\n const radius = Math.sqrt((start.x - center.x) ** 2 + (start.y - center.y) ** 2);\n\n return {\n center,\n radius,\n startAngle,\n endAngle,\n };\n}\n\n/**\n * @ignore\n * 从配置中获取单个字段的 axis 配置\n * @param axes\n * @param field\n * @returns the axis option of field\n */\nexport function getAxisOption(axes: Record | boolean, field: string) {\n if (isBoolean(axes)) {\n return axes === false ? false : {};\n }\n return get(axes, [field]);\n}\n\n/**\n * @ignore\n * 如果配置了 position,则使用配置\n * @param axisOption\n * @param def\n */\nexport function getAxisDirection(axisOption: AxisOption, def: DIRECTION): DIRECTION {\n return get(axisOption, 'position', def);\n}\n\n/**\n * 获取 axis 的 title 文本\n * @param scale\n * @param axisOption\n */\nexport function getAxisTitleText(scale: Scale, axisOption: AxisCfg): string {\n return get(axisOption, ['title', 'text'], getName(scale));\n}\n","import { deepMix, each, every, get, isNil, isNumber } from '@antv/util';\nimport { LAYER } from '../constant';\nimport { IGroup } from '../dependents';\nimport { AxisCfg, Condition, Datum, FacetCfg, FacetData, FacetDataFilter, Region } from '../interface';\n\nimport View from '../chart/view';\nimport { getAxisOption } from '../util/axis';\n\n/**\n * facet 基类\n * - 定义生命周期,方便自定义 facet\n * - 提供基础的生命流程方法\n *\n * 生命周期:\n *\n * 初始化 init\n * 1. 初始化容器\n * 2. 数据分面,生成分面布局信息\n *\n * 渲染阶段 render\n * 1. view 创建\n * 2. title\n * 3. axis\n *\n * 清除阶段 clear\n * 1. 清除 view\n *\n * 销毁阶段 destroy\n * 1. clear\n * 2. 清除事件\n * 3. 清除 group\n */\nexport abstract class Facet = FacetCfg, F extends FacetData = FacetData> {\n /** 分面所在的 view */\n public view: View;\n /** 分面容器 */\n public container: IGroup;\n /** 是否销毁 */\n public destroyed: boolean = false;\n\n /** 分面的配置项 */\n protected cfg: C;\n /** 分面之后的所有分面数据结构 */\n protected facets: F[] = [];\n\n constructor(view: View, cfg: C) {\n this.view = view;\n this.cfg = deepMix({}, this.getDefaultCfg(), cfg);\n }\n\n /**\n * 初始化过程\n */\n public init() {\n // 初始化容器\n if (!this.container) {\n this.container = this.createContainer();\n }\n\n // 生成分面布局信息\n const data = this.view.getData();\n this.facets = this.generateFacets(data);\n }\n\n /**\n * 渲染分面,由上层 view 调用。包括:\n * - 分面 view\n * - 轴\n * - title\n *\n * 子类可以复写,添加一些其他组件,比如滚动条等\n */\n public render() {\n this.renderViews();\n }\n\n /**\n * 更新 facet\n */\n public update() {\n // 其实不用做任何事情,因为 facet 最终生成的 View 和 Geometry 都在父 view 的更新中处理了\n }\n\n /**\n * 清空,clear 之后如果还需要使用,需要重新调用 init 初始化过程\n * 一般在数据有变更的时候调用,重新进行数据的分面逻辑\n */\n public clear() {\n this.clearFacetViews();\n }\n\n /**\n * 销毁\n */\n public destroy() {\n this.clear();\n\n if (this.container) {\n this.container.remove(true);\n this.container = undefined;\n }\n\n this.destroyed = true;\n this.view = undefined;\n this.facets = [];\n }\n\n /**\n * 根据 facet 生成 view,可以给上层自定义使用\n * @param facet\n */\n protected facetToView(facet: F): View {\n const { region, data, padding = this.cfg.padding } = facet;\n\n const view = this.view.createView({\n region,\n padding,\n });\n\n // 设置分面的数据\n view.data(data || []);\n facet.view = view;\n\n // 前置钩子\n this.beforeEachView(view, facet);\n\n const { eachView } = this.cfg;\n if (eachView) {\n eachView(view, facet);\n }\n\n // 后置钩子\n this.afterEachView(view, facet);\n\n return view;\n }\n\n // 创建容器\n private createContainer(): IGroup {\n const foregroundGroup = this.view.getLayer(LAYER.FORE);\n return foregroundGroup.addGroup();\n }\n\n /**\n * 初始化 view\n */\n private renderViews() {\n this.createFacetViews();\n }\n\n /**\n * 创建 分面 view\n */\n private createFacetViews(): View[] {\n // 使用分面数据 创建分面 view\n return this.facets.map((facet): View => {\n return this.facetToView(facet);\n });\n }\n\n /**\n * 从 view 中清除 facetView\n */\n private clearFacetViews() {\n // 从 view 中移除分面 view\n each(this.facets, (facet) => {\n if (facet.view) {\n this.view.removeView(facet.view);\n facet.view = undefined;\n }\n });\n }\n\n /**\n * 解析 spacing\n */\n private parseSpacing() {\n /**\n * @example\n *\n * // 仅使用百分比或像素值\n * // 横向间隔为 10%,纵向间隔为 10%\n * ['10%', '10%']\n * // 横向间隔为 10px,纵向间隔为 10px\n * [10, 10]\n *\n * // 同时使用百分比和像素值\n * ['10%', 10]\n * // 横向间隔为 10%,纵向间隔为 10px\n */\n const { width, height } = this.view.viewBBox;\n const { spacing } = this.cfg;\n return spacing.map((s: number, idx: number) => {\n if (isNumber(s)) return s / (idx === 0 ? width : height);\n else return parseFloat(s) / 100;\n });\n }\n\n // 其他一些提供给子类使用的方法\n\n /**\n * 获取这个字段对应的所有值,数组\n * @protected\n * @param data 数据\n * @param field 字段名\n * @return 字段对应的值\n */\n protected getFieldValues(data: Datum[], field: string): string[] {\n const rst = [];\n const cache: Record = {};\n\n // 去重、去除 Nil 值\n each(data, (d: Datum) => {\n const value = d[field];\n if (!isNil(value) && !cache[value]) {\n rst.push(value);\n cache[value] = true;\n }\n });\n\n return rst;\n }\n\n /**\n * 获得每个分面的 region,平分区域\n * @param rows row 总数\n * @param cols col 总数\n * @param xIndex x 方向 index\n * @param yIndex y 方向 index\n */\n protected getRegion(rows: number, cols: number, xIndex: number, yIndex: number): Region {\n const [xSpacing, ySpacing] = this.parseSpacing();\n // 每两个分面区域横向间隔xSPacing, 纵向间隔ySpacing\n // 每个分面区域的横纵占比\n /**\n * ratio * num + spacing * (num - 1) = 1\n * => ratio = (1 - (spacing * (num - 1))) / num\n * = (1 + spacing) / num - spacing\n *\n * num 对应 cols/rows\n * spacing 对应 xSpacing/ySpacing\n */\n const xRatio = (1 + xSpacing) / (cols === 0 ? 1 : cols) - xSpacing;\n const yRatio = (1 + ySpacing) / (rows === 0 ? 1 : rows) - ySpacing;\n\n // 得到第 index 个分面区域百分比位置\n const start = {\n x: (xRatio + xSpacing) * xIndex,\n y: (yRatio + ySpacing) * yIndex,\n };\n const end = {\n x: start.x + xRatio,\n y: start.y + yRatio,\n };\n return { start, end };\n }\n\n protected getDefaultCfg() {\n return {\n eachView: undefined,\n showTitle: true,\n spacing: [0, 0],\n padding: 10,\n fields: [],\n };\n }\n\n /**\n * 默认的 title 样式,因为有的分面是 title,有的分面配置是 columnTitle、rowTitle\n */\n protected getDefaultTitleCfg() {\n // @ts-ignore\n const fontFamily = this.view.getTheme().fontFamily;\n return {\n style: {\n fontSize: 14,\n fill: '#666',\n fontFamily,\n },\n };\n }\n\n /**\n * 处理 axis 的默认配置\n * @param view\n * @param facet\n */\n protected processAxis(view: View, facet: F) {\n const options = view.getOptions();\n\n const coordinateOption = options.coordinate;\n const geometries = view.geometries;\n\n const coordinateType = get(coordinateOption, 'type', 'rect');\n\n if (coordinateType === 'rect' && geometries.length) {\n if (isNil(options.axes)) {\n // @ts-ignore\n options.axes = {};\n }\n const axes = options.axes;\n\n const [x, y] = geometries[0].getXYFields();\n\n const xOption = getAxisOption(axes, x);\n const yOption = getAxisOption(axes, y);\n\n if (xOption !== false) {\n options.axes[x] = this.getXAxisOption(x, axes, xOption, facet);\n }\n\n if (yOption !== false) {\n options.axes[y] = this.getYAxisOption(y, axes, yOption, facet);\n }\n }\n }\n\n /**\n * 获取分面数据\n * @param conditions\n */\n protected getFacetDataFilter(conditions: Condition[]): FacetDataFilter {\n return (datum: Datum) => {\n // 过滤出全部满足条件的数据\n return every(conditions, (condition) => {\n const { field, value } = condition;\n\n if (!isNil(value) && field) {\n return datum[field] === value;\n }\n return true;\n });\n };\n }\n\n /**\n * @override 开始处理 eachView\n * @param view\n * @param facet\n */\n protected abstract beforeEachView(view: View, facet: F);\n\n /**\n * @override 处理 eachView 之后\n * @param view\n * @param facet\n */\n protected abstract afterEachView(view: View, facet: F);\n\n /**\n * @override 生成分面数据,包含布局\n * @param data\n */\n protected abstract generateFacets(data: Datum[]): F[];\n\n /**\n * 获取 x 轴的配置\n * @param x\n * @param axes\n * @param option\n * @param facet\n */\n protected abstract getXAxisOption(x: string, axes: any, option: AxisCfg, facet: F): object;\n\n /**\n * 获取 y 轴的配置\n * @param y\n * @param axes\n * @param option\n * @param facet\n */\n protected abstract getYAxisOption(y: string, axes: any, option: AxisCfg, facet: F): object;\n}\n","import { lowerCase } from '@antv/util';\nimport { FacetCtor } from '../interface';\nexport { Facet } from './facet';\n\n/**\n * 所有的 Facet 类\n */\nconst Facets: Record = {};\n\n/**\n * 根据 type 获取 facet 类\n * @param type 分面类型\n */\nexport const getFacet = (type: string): FacetCtor => {\n return Facets[lowerCase(type)];\n};\n\n/**\n * 注册一个 Facet 类\n * @param type 分面类型\n * @param ctor 分面类\n */\nexport const registerFacet = (type: string, ctor: FacetCtor) => {\n Facets[lowerCase(type)] = ctor;\n};\n","import { assign } from '@antv/util';\nimport { IAction, IInteractionContext, LooseObject } from '../../interface';\n\n/**\n * Action 的基类\n */\nabstract class Action implements IAction {\n /** Action 名字 */\n public name;\n /** 上下文对象 */\n public context: IInteractionContext;\n /** Action 配置 */\n protected cfg: T;\n /** 配置项的字段,自动负值到 this 上 */\n protected cfgFields: string[];\n\n constructor(context: IInteractionContext, cfg?: T) {\n this.context = context;\n this.cfg = cfg;\n context.addAction(this);\n }\n\n /**\n * 设置配置项传入的值\n * @param cfg\n */\n protected applyCfg(cfg) {\n assign(this, cfg);\n }\n\n /**\n * Inits action,提供给子类用于继承\n */\n public init() {\n this.applyCfg(this.cfg);\n }\n\n /**\n * Destroys action\n */\n public destroy() {\n // 移除 action\n this.context.removeAction(this);\n // 清空\n this.context = null;\n }\n}\n\nexport default Action;\n","import { ActionCallback } from '../../interface';\nimport Action from './base';\n\n/** 回调函数构建的 Action */\nexport default class CallbackAction extends Action {\n /**\n * 回调函数\n */\n public callback: ActionCallback;\n /**\n * 执行\n */\n public execute() {\n if (this.callback) {\n this.callback(this.context);\n }\n }\n /**\n * 销毁\n */\n public destroy() {\n super.destroy();\n this.callback = null;\n }\n}\n","import { ActionCallback, IInteractionContext, LooseObject } from '../../interface';\nimport Action from './base';\nimport CallbackAction from './callback';\nimport { get } from '@antv/util';\n\n/** Action 构造函数 */\ntype ActionConstructor = new (context: IInteractionContext, cfg?: LooseObject) => Action;\n\n/** @ignore */\ninterface ActionOption {\n ActionClass: ActionConstructor;\n cfg: LooseObject;\n}\n\n// Action 类的缓存\nconst ActionCache: Record = {};\n\n/**\n * 根据名称获取 Action 实例\n * @param actionName - action 的名称\n * @param context 上下文\n * @returns Action 实例\n */\nexport function createAction(actionName: string, context: IInteractionContext): Action {\n const actionOption = ActionCache[actionName];\n let action = null;\n if (actionOption) {\n const { ActionClass, cfg } = actionOption;\n action = new ActionClass(context, cfg);\n action.name = actionName;\n action.init();\n }\n return action;\n}\n\n/**\n * 根据 action 的 name 获取定义的类\n * @param actionName action 的 name\n */\nexport function getActionClass(actionName: string): ActionConstructor {\n const actionOption = ActionCache[actionName];\n return get(actionOption, 'ActionClass');\n}\n\n/**\n * 注册 Action\n * @param actionName - action 的名称\n * @param ActionClass - 继承自 action 的类\n */\nexport function registerAction(actionName: string, ActionClass: ActionConstructor, cfg?: LooseObject) {\n ActionCache[actionName] = {\n ActionClass,\n cfg,\n };\n}\n\n/**\n * 取消注册 Action\n * @param actionName action 名称\n */\nexport function unregisterAction(actionName: string) {\n delete ActionCache[actionName];\n}\n\n/**\n * 根据回调函数获取 Action 实例\n * @param callback - action 的回调函数\n * @param context 上下文\n * @returns Action 实例\n */\nexport function createCallbackAction(callback: ActionCallback, context: IInteractionContext): CallbackAction {\n const action = new CallbackAction(context);\n action.callback = callback;\n action.name = 'callback';\n return action;\n}\n","import { vec2 } from '@antv/matrix-util';\nimport { each } from '@antv/util';\nimport { Coordinate, PathCommand } from '../../../dependents';\nimport { Point, Position } from '../../../interface';\nimport { getDistanceToCenter } from '../../../util/coordinate';\n\nfunction _points2path(points: Point[], isInCircle: boolean): PathCommand[] {\n const path = [];\n if (points.length) {\n path.push(['M', points[0].x, points[0].y]);\n for (let i = 1, length = points.length; i < length; i += 1) {\n const item = points[i];\n path.push(['L', item.x, item.y]);\n }\n\n if (isInCircle) {\n path.push(['Z']);\n }\n }\n\n return path;\n}\n\nfunction _convertArr(arr: number[], coord: Coordinate): any[] {\n const tmp = [arr[0]];\n for (let i = 1, len = arr.length; i < len; i = i + 2) {\n const point = coord.convert({\n x: arr[i],\n y: arr[i + 1],\n });\n tmp.push(point.x, point.y);\n }\n return tmp;\n}\nfunction _convertArcPath(path: PathCommand, coord: Coordinate): any[] {\n const { isTransposed } = coord;\n const r = path[1];\n const x = path[6];\n const y = path[7];\n const point = coord.convert({ x, y });\n const direction = isTransposed ? 0 : 1;\n return ['A', r, r, 0, 0, direction, point.x, point.y];\n}\n\nfunction _convertPolarPath(pre: PathCommand, cur: PathCommand, coord: Coordinate): PathCommand[] {\n const { isTransposed, startAngle, endAngle } = coord;\n const prePoint =\n pre[0].toLowerCase() === 'a'\n ? {\n x: pre[6],\n y: pre[7],\n }\n : {\n x: pre[1],\n y: pre[2],\n };\n const curPoint = {\n x: cur[1],\n y: cur[2],\n };\n const rst = [];\n const xDim = isTransposed ? 'y' : 'x';\n const angleRange = Math.abs(curPoint[xDim] - prePoint[xDim]) * (endAngle - startAngle);\n const direction = curPoint[xDim] >= prePoint[xDim] ? 1 : 0; // 圆弧的方向\n const flag = angleRange > Math.PI ? 1 : 0; // 大弧还是小弧标志位\n const convertPoint = coord.convert(curPoint);\n const r = getDistanceToCenter(coord, convertPoint);\n if (r >= 0.5) {\n // 小于1像素的圆在图像上无法识别\n if (angleRange === Math.PI * 2) {\n const middlePoint = {\n x: (curPoint.x + prePoint.x) / 2,\n y: (curPoint.y + prePoint.y) / 2,\n };\n const middleConvertPoint = coord.convert(middlePoint);\n rst.push(['A', r, r, 0, flag, direction, middleConvertPoint.x, middleConvertPoint.y]);\n rst.push(['A', r, r, 0, flag, direction, convertPoint.x, convertPoint.y]);\n } else {\n rst.push(['A', r, r, 0, flag, direction, convertPoint.x, convertPoint.y]);\n }\n }\n return rst;\n}\n\n// 当存在整体的圆时,去除圆前面和后面的线,防止出现直线穿过整个圆的情形\nfunction _filterFullCirleLine(path: PathCommand[]) {\n each(path, (subPath, index) => {\n const cur = subPath;\n if (cur[0].toLowerCase() === 'a') {\n const pre = path[index - 1];\n const next = path[index + 1];\n if (next && next[0].toLowerCase() === 'a') {\n if (pre && pre[0].toLowerCase() === 'l') {\n pre[0] = 'M';\n }\n } else if (pre && pre[0].toLowerCase() === 'a') {\n if (next && next[0].toLowerCase() === 'l') {\n next[0] = 'M';\n }\n }\n }\n });\n}\n\n/**\n * @ignore\n * 计算光滑的贝塞尔曲线\n */\nexport const smoothBezier = (\n points: Position[],\n smooth: number,\n isLoop: boolean,\n constraint: Position[]\n): Position[] => {\n const cps = [];\n const hasConstraint = !!constraint;\n\n let prevPoint: Position;\n let nextPoint: Position;\n let min: Position;\n let max: Position;\n let nextCp0: Position;\n let cp1: Position;\n let cp0: Position;\n\n if (hasConstraint) {\n [min, max] = constraint;\n for (let i = 0, l = points.length; i < l; i++) {\n const point = points[i];\n min = vec2.min([0, 0], min, point) as [number, number];\n max = vec2.max([0, 0], max, point) as [number, number];\n }\n }\n\n for (let i = 0, len = points.length; i < len; i++) {\n const point = points[i];\n if (i === 0 && !isLoop) {\n cp0 = point;\n } else if (i === len - 1 && !isLoop) {\n cp1 = point;\n cps.push(cp0);\n cps.push(cp1);\n } else {\n prevPoint = points[isLoop ? (i ? i - 1 : len - 1) : i - 1];\n nextPoint = points[isLoop ? (i + 1) % len : i + 1];\n\n let v: [number, number] = [0, 0];\n v = vec2.sub(v, nextPoint, prevPoint) as [number, number];\n v = vec2.scale(v, v, smooth) as [number, number];\n\n let d0 = vec2.distance(point, prevPoint);\n let d1 = vec2.distance(point, nextPoint);\n\n const sum = d0 + d1;\n if (sum !== 0) {\n d0 /= sum;\n d1 /= sum;\n }\n\n let v1 = vec2.scale([0, 0], v, -d0);\n let v2 = vec2.scale([0, 0], v, d1);\n\n cp1 = vec2.add([0, 0], point, v1) as Position;\n nextCp0 = vec2.add([0, 0], point, v2) as Position;\n\n // 下一个控制点必须在这个点和下一个点之间\n nextCp0 = vec2.min([0, 0], nextCp0, vec2.max([0, 0], nextPoint, point)) as Position;\n nextCp0 = vec2.max([0, 0], nextCp0, vec2.min([0, 0], nextPoint, point)) as Position;\n\n // 重新计算 cp1 的值\n v1 = vec2.sub([0, 0], nextCp0, point);\n v1 = vec2.scale([0, 0], v1, -d0 / d1);\n cp1 = vec2.add([0, 0], point, v1) as Position;\n\n // 上一个控制点必须要在上一个点和这一个点之间\n cp1 = vec2.min([0, 0], cp1, vec2.max([0, 0], prevPoint, point)) as Position;\n cp1 = vec2.max([0, 0], cp1, vec2.min([0, 0], prevPoint, point)) as Position;\n\n // 重新计算 nextCp0 的值\n v2 = vec2.sub([0, 0], point, cp1);\n v2 = vec2.scale([0, 0], v2, d1 / d0);\n nextCp0 = vec2.add([0, 0], point, v2) as Position;\n\n if (hasConstraint) {\n cp1 = vec2.max([0, 0], cp1, min) as Position;\n cp1 = vec2.min([0, 0], cp1, max) as Position;\n nextCp0 = vec2.max([0, 0], nextCp0, min) as Position;\n nextCp0 = vec2.min([0, 0], nextCp0, max) as Position;\n }\n\n cps.push(cp0);\n cps.push(cp1);\n cp0 = nextCp0;\n }\n }\n\n if (isLoop) {\n cps.push(cps.shift());\n }\n\n return cps;\n};\n\n/**\n * @ignore\n * 贝塞尔曲线\n */\nexport function catmullRom2bezier(crp: number[], z: boolean, constraint: Position[]): PathCommand[] {\n const isLoop = !!z;\n const pointList = [];\n for (let i = 0, l = crp.length; i < l; i += 2) {\n pointList.push([crp[i], crp[i + 1]]);\n }\n\n const controlPointList = smoothBezier(pointList, 0.4, isLoop, constraint);\n const len = pointList.length;\n const d1 = [];\n\n let cp1: Position;\n let cp2: Position;\n let p: Position;\n\n for (let i = 0; i < len - 1; i++) {\n cp1 = controlPointList[i * 2];\n cp2 = controlPointList[i * 2 + 1];\n p = pointList[i + 1];\n\n d1.push(['C', cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]]);\n }\n\n if (isLoop) {\n cp1 = controlPointList[len];\n cp2 = controlPointList[len + 1];\n p = pointList[0];\n\n d1.push(['C', cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]]);\n }\n return d1;\n}\n\n/**\n * @ignore\n * 将点连接成路径 path\n */\nexport function getLinePath(points: Point[], isInCircle?: boolean): PathCommand[] {\n return _points2path(points, isInCircle);\n}\n\n/**\n * @ignore\n * 根据关键点获取限定了范围的平滑线\n */\nexport function getSplinePath(points: Point[], isInCircle?: boolean, constaint?: Position[]): PathCommand[] {\n const data = [];\n const first = points[0];\n let prePoint = null;\n if (points.length <= 2) {\n // 两点以内直接绘制成路径\n return getLinePath(points, isInCircle);\n }\n for (let i = 0, len = points.length; i < len; i++) {\n const point = points[i];\n if (!prePoint || !(prePoint.x === point.x && prePoint.y === point.y)) {\n data.push(point.x);\n data.push(point.y);\n prePoint = point;\n }\n }\n const constraint = constaint || [\n // 范围\n [0, 0],\n [1, 1],\n ];\n const splinePath = catmullRom2bezier(data, isInCircle, constraint);\n splinePath.unshift(['M', first.x, first.y]);\n return splinePath;\n}\n\n/**\n * @ignore\n * 将归一化后的路径数据转换成坐标\n */\nexport function convertNormalPath(coord, path: PathCommand[]): PathCommand[] {\n const tmp = [];\n each(path, (subPath) => {\n const action = subPath[0];\n switch (action.toLowerCase()) {\n case 'm':\n case 'l':\n case 'c':\n tmp.push(_convertArr(subPath, coord));\n break;\n case 'a':\n tmp.push(_convertArcPath(subPath, coord));\n break;\n case 'z':\n default:\n tmp.push(subPath);\n break;\n }\n });\n return tmp;\n}\n\n/**\n * @ignore\n * 将路径转换为极坐标下的真实路径\n */\nexport function convertPolarPath(coord, path: PathCommand[]): PathCommand[] {\n let tmp = [];\n let pre: PathCommand;\n let cur: PathCommand;\n let transposed: boolean;\n let equals: boolean;\n each(path, (subPath, index) => {\n const action = subPath[0];\n\n switch (action.toLowerCase()) {\n case 'm':\n case 'c':\n case 'q':\n tmp.push(_convertArr(subPath, coord));\n break;\n case 'l':\n pre = path[index - 1];\n cur = subPath;\n transposed = coord.isTransposed;\n // 是否半径相同,转换成圆弧\n equals = transposed ? pre[pre.length - 2] === cur[1] : pre[pre.length - 1] === cur[2];\n if (equals) {\n tmp = tmp.concat(_convertPolarPath(pre, cur, coord));\n } else {\n // y 不相等,所以直接转换\n tmp.push(_convertArr(subPath, coord));\n }\n break;\n case 'a':\n tmp.push(_convertArcPath(subPath, coord));\n break;\n case 'z':\n default:\n tmp.push(subPath);\n break;\n }\n });\n _filterFullCirleLine(tmp); // 过滤多余的直线\n return tmp;\n}\n","import { each, isArray } from '@antv/util';\nimport { View } from '../../chart';\nimport { BBox, PathCommand, Point } from '../../dependents';\nimport Geometry from '../../geometry/base';\nimport Element from '../../geometry/element/';\nimport { catmullRom2bezier, getLinePath } from '../../geometry/shape/util/path';\nimport { toPoints } from '../../util/bbox';\nimport { isPolygonsIntersect } from '@antv/path-util';\nimport { ComponentOption, IInteractionContext, LooseObject } from '../../interface';\n\nfunction getMaskBBox(context: IInteractionContext, tolerance: number) {\n const event = context.event;\n const maskShape = event.target;\n const maskBBox = maskShape.getCanvasBBox();\n // 如果 bbox 过小则不返回\n if (!(maskBBox.width >= tolerance || maskBBox.height >= tolerance)) {\n return null;\n }\n return maskBBox;\n}\n\nfunction getMaskPath(context: IInteractionContext, tolerance: number) {\n const event = context.event;\n const maskShape = event.target;\n const maskBBox = maskShape.getCanvasBBox();\n // 如果 bbox 过小则不返回\n if (!(maskBBox.width >= tolerance || maskBBox.height >= tolerance)) {\n return null;\n }\n return maskShape.attr('path');\n}\n\n/**\n * 获取当前事件相关的图表元素\n * @param context 交互的上下文\n * @ignore\n */\nexport function getCurrentElement(context: IInteractionContext): Element {\n const event = context.event;\n let element;\n const target = event.target;\n if (target) {\n element = target.get('element');\n }\n return element;\n}\n\n/**\n * 获取委托对象\n * @param context 上下文\n * @ignore\n */\nexport function getDelegationObject(context: IInteractionContext): LooseObject {\n const event = context.event;\n const target = event.target;\n let delegateObject;\n if (target) {\n delegateObject = target.get('delegateObject');\n }\n return delegateObject;\n}\n\nexport function isElementChange(context: IInteractionContext) {\n const event = context.event.gEvent;\n // 在同一个 element 内部移动,label 和 shape 之间\n if (event && event.fromShape && event.toShape && event.fromShape.get('element') === event.toShape.get('element')) {\n return false;\n }\n return true;\n}\n\n/**\n * 是否是列表组件\n * @param delegateObject 委托对象\n * @ignore\n */\nexport function isList(delegateObject: LooseObject): boolean {\n return delegateObject && delegateObject.component && delegateObject.component.isList();\n}\n\n/**\n * 是否是滑块组件\n * @param delegateObject 委托对象\n * @ignore\n */\nexport function isSlider(delegateObject: LooseObject): boolean {\n return delegateObject && delegateObject.component && delegateObject.component.isSlider();\n}\n\n/**\n * 是否由 mask 触发\n * @param context 上下文\n * @ignore\n */\nexport function isMask(context: IInteractionContext): boolean {\n const event = context.event;\n const target = event.target;\n return target && target.get('name') === 'mask';\n}\n\n/**\n * 获取被遮挡的 elements\n * @param context 上下文\n * @ignore\n */\nexport function getMaskedElements(context: IInteractionContext, tolerance: number): Element[] {\n const target = context.event.target;\n if (target.get('type') === 'path') {\n const maskPath = getMaskPath(context, tolerance);\n if (!maskPath) {\n return;\n }\n return getElementsByPath(context.view, maskPath);\n }\n const maskBBox = getMaskBBox(context, tolerance);\n // 如果 bbox 过小则不返回\n if (!maskBBox) {\n return null;\n }\n return getIntersectElements(context.view, maskBBox);\n}\n\n/**\n * @ignore\n */\nexport function getSiblingMaskElements(context: IInteractionContext, sibling: View, tolerance: number) {\n const maskBBox = getMaskBBox(context, tolerance);\n // 如果 bbox 过小则不返回\n if (!maskBBox) {\n return null;\n }\n const view = context.view;\n const start = getSiblingPoint(view, sibling, { x: maskBBox.x, y: maskBBox.y });\n const end = getSiblingPoint(view, sibling, { x: maskBBox.maxX, y: maskBBox.maxY });\n const box = {\n minX: start.x,\n minY: start.y,\n maxX: end.x,\n maxY: end.y,\n };\n return getIntersectElements(sibling, box);\n}\n\n/**\n * 获取所有的图表元素\n * @param view View/Chart\n * @ignore\n */\nexport function getElements(view: View): Element[] {\n const geometries = view.geometries;\n let rst: Element[] = [];\n each(geometries, (geom: Geometry) => {\n const elements = geom.elements;\n rst = rst.concat(elements);\n });\n if (view.views && view.views.length) {\n each(view.views, (subView) => {\n rst = rst.concat(getElements(subView));\n });\n }\n return rst;\n}\n\n/**\n * 获取所有的图表元素\n * @param view View/Chart\n * @param field 字段名\n * @param value 字段值\n * @ignore\n */\nexport function getElementsByField(view: View, field: string, value: any) {\n const elements = getElements(view);\n return elements.filter((el) => {\n return getElementValue(el, field) === value;\n });\n}\n\n/**\n * 根据状态名获取图表元素\n * @param view View/Chart\n * @param stateName 状态名\n * @ignore\n */\nexport function getElementsByState(view: View, stateName: string): Element[] {\n const geometries = view.geometries;\n let rst: Element[] = [];\n each(geometries, (geom: Geometry) => {\n const elements = geom.getElementsBy((el) => el.hasState(stateName));\n rst = rst.concat(elements);\n });\n return rst;\n}\n\n/**\n * 获取图表元素对应字段的值\n * @param element 图表元素\n * @param field 字段名\n * @ignore\n */\nexport function getElementValue(element: Element, field) {\n const model = element.getModel();\n const record = model.data;\n let value;\n if (isArray(record)) {\n value = record[0][field];\n } else {\n value = record[field];\n }\n return value;\n}\n\n/**\n * 两个包围盒是否相交\n * @param box1 包围盒1\n * @param box2 包围盒2\n * @ignore\n */\nexport function intersectRect(box1, box2) {\n return !(box2.minX > box1.maxX || box2.maxX < box1.minX || box2.minY > box1.maxY || box2.maxY < box1.minY);\n}\n\n/**\n * 获取包围盒内的图表元素\n * @param view View/Chart\n * @param box 包围盒\n * @ignore\n */\nexport function getIntersectElements(view: View, box) {\n const elements = getElements(view);\n const rst = [];\n each(elements, (el) => {\n const shape = el.shape;\n const shapeBBox = shape.getCanvasBBox();\n if (intersectRect(box, shapeBBox)) {\n rst.push(el);\n }\n });\n return rst;\n}\nfunction pathToPoints(path: any[]) {\n const points = [];\n each(path, (seg) => {\n const command = seg[0];\n if (command !== 'A') {\n for (let i = 1; i < seg.length; i = i + 2) {\n points.push([seg[i], seg[i + 1]]);\n }\n } else {\n const length = seg.length;\n points.push([seg[length - 2], seg[length - 1]]);\n }\n });\n return points;\n}\n/**\n * 获取包围盒内的图表元素\n * @param view View/Chart\n * @param path 路径\n * @ignore\n */\nexport function getElementsByPath(view: View, path: any[]) {\n const elements = getElements(view);\n const points = pathToPoints(path);\n const rst = elements.filter((el: Element) => {\n const shape = el.shape;\n let shapePoints;\n if (shape.get('type') === 'path') {\n shapePoints = pathToPoints(shape.attr('path'));\n } else {\n const shapeBBox = shape.getCanvasBBox();\n shapePoints = toPoints(shapeBBox);\n }\n return isPolygonsIntersect(points, shapePoints);\n });\n return rst;\n}\n\n/**\n * 获取当前 View 的所有组件\n * @param view View/Chart\n * @ignore\n */\nexport function getComponents(view) {\n return view.getComponents().map((co: ComponentOption) => co.component);\n}\n\n/** @ignore */\nexport function distance(p1: Point, p2: Point) {\n const dx = p2.x - p1.x;\n const dy = p2.y - p1.y;\n return Math.sqrt(dx * dx + dy * dy);\n}\n\n/** @ignore */\nexport function getSpline(points: Point[], z: boolean): PathCommand[] {\n if (points.length <= 2) {\n return getLinePath(points, false);\n }\n const first = points[0];\n const arr = [];\n each(points, (point) => {\n arr.push(point.x);\n arr.push(point.y);\n });\n const path = catmullRom2bezier(arr, z, null);\n path.unshift(['M', first.x, first.y]);\n return path;\n}\n\n/**\n * 检测点是否在包围盒内\n * @param box 包围盒\n * @param point 点\n * @ignore\n */\nexport function isInBox(box: BBox, point: Point) {\n return box.x <= point.x && box.maxX >= point.x && box.y <= point.y && box.maxY > point.y;\n}\n\n/**\n * 获取同 view 同一级的 views\n * @param view 当前 view\n * @returns 同一级的 views\n * @ignore\n */\nexport function getSilbings(view: View): View[] {\n const parent = view.parent;\n let siblings = null;\n if (parent) {\n siblings = parent.views.filter((sub) => sub !== view);\n }\n return siblings;\n}\n\nfunction point2Normalize(view: View, point: Point): Point {\n const coord = view.getCoordinate();\n return coord.invert(point);\n}\n/**\n * 将 view 上的一点转换成另一个 view 的点\n * @param view 当前的 view\n * @param sibling 同一层级的 view\n * @param point 指定点\n * @ignore\n */\nexport function getSiblingPoint(view: View, sibling: View, point: Point): Point {\n const normalPoint = point2Normalize(view, point);\n return sibling.getCoordinate().convert(normalPoint);\n}\n\n/**\n * 是否在记录中,临时因为所有的 view 中的数据不是引用,而使用的方法\n * 不同 view 上对数据的引用不相等,导致无法直接用 includes\n * 假设 x, y 值相等时是同一条数据,这个假设不完全正确,而改成 isEqual 则成本太高\n * 后面改成同一个引用时可以修改回来\n * @param records\n * @param record\n * @param xFiled\n * @param yField\n * @returns\n * @ignore\n */\nexport function isInRecords(records: object[], record: object, xFiled: string, yField: string) {\n let isIn = false;\n each(records, (r) => {\n if (r[xFiled] === record[xFiled] && r[yField] === record[yField]) {\n isIn = true;\n return false;\n }\n });\n return isIn;\n}\n\n// 级联获取 field 对应的 scale,如果 view 上没有,遍历子 view\nexport function getScaleByField(view: View, field: string) {\n let scale = view.getScaleByField(field);\n if (!scale && view.views) {\n each(view.views, (subView) => {\n scale = getScaleByField(subView, field);\n if (scale) {\n return false; // 终止循环\n }\n });\n }\n return scale;\n}\n","import { each, get } from '@antv/util';\nimport { View } from '../chart';\nimport { BBox, IShape, Point } from '../dependents';\nimport { IAction, IInteractionContext, LooseObject } from '../interface';\nimport { getComponents, isInBox } from './action/util';\n\n/**\n * 交互的上下文\n */\nexport default class Context implements IInteractionContext {\n /** 当前所有的 Action */\n public actions: IAction[] = [];\n /** 当前 View 实例 */\n public view: View;\n /** 当前事件对象 */\n public event: LooseObject = null;\n\n private cacheMap: LooseObject = {};\n\n constructor(view: View) {\n this.view = view;\n }\n\n /**\n * 缓存信息\n * @param params 缓存的字段\n * - 如果一个字段则获取缓存\n * - 两个字段则设置缓存\n */\n public cache(...params) {\n if (params.length === 1) {\n return this.cacheMap[params[0]];\n } else if (params.length === 2) {\n this.cacheMap[params[0]] = params[1];\n }\n }\n\n /**\n * 获取 Action\n * @param name Action 的名称\n */\n public getAction(name: string): IAction {\n return this.actions.find((action) => action.name === name);\n }\n\n /**\n * 获取 Action\n * @param action Action 对象\n */\n public addAction(action: IAction) {\n this.actions.push(action);\n }\n\n /**\n * 移除 Action\n * @param action Action 对象\n */\n public removeAction(action: IAction) {\n const actions = this.actions;\n const index = this.actions.indexOf(action);\n if (index >= 0) {\n actions.splice(index, 1);\n }\n }\n\n /**\n * 获取当前的点\n */\n public getCurrentPoint(): Point {\n const event = this.event;\n if (event) {\n if (event.target instanceof HTMLElement) {\n const canvas = this.view.getCanvas();\n const point = canvas.getPointByClient(event.clientX, event.clientY);\n return point;\n } else {\n return {\n x: event.x,\n y: event.y,\n };\n }\n }\n return null;\n }\n\n /**\n * 获取当前 shape\n * @returns current shape\n */\n public getCurrentShape(): IShape {\n return get(this.event, ['gEvent', 'shape']);\n }\n\n /**\n * 当前的触发是否在 View 内\n */\n public isInPlot() {\n const point = this.getCurrentPoint();\n if (point) {\n return this.view.isPointInPlot(point);\n }\n return false;\n }\n\n /**\n * 是否在指定的图形内\n * @param name shape 的 name\n */\n public isInShape(name) {\n const shape = this.getCurrentShape(); // 不再考虑在 shape 的 parent 内的情况\n if (shape) {\n return shape.get('name') === name;\n }\n return false;\n }\n\n /**\n * 当前的触发是组件内部\n * @param name 组件名,可以为空\n */\n public isInComponent(name?: string) {\n const components = getComponents(this.view);\n const point = this.getCurrentPoint();\n if (point) {\n return !!components.find((component) => {\n const bbox = component.getBBox() as BBox;\n if (name) {\n return component.get('name') === name && isInBox(bbox, point);\n } else {\n return isInBox(bbox, point);\n }\n });\n }\n return false;\n }\n\n /**\n * 销毁\n */\n public destroy() {\n // 先销毁 action 再清空,一边遍历,一边删除,所以数组需要更新引用\n each(this.actions.slice(), (action) => {\n action.destroy();\n });\n this.view = null;\n this.event = null;\n this.actions = null;\n this.cacheMap = null;\n }\n}\n","import { View } from '../chart';\nimport { LooseObject } from '../interface';\n\nexport type InteractionConstructor = new (view: View, cfg: LooseObject) => Interaction;\n\n/**\n * 交互的基类。\n */\nexport default class Interaction {\n /** view 或者 chart */\n protected view: View;\n /** 配置项 */\n protected cfg: LooseObject;\n\n constructor(view: View, cfg: LooseObject) {\n this.view = view;\n this.cfg = cfg;\n }\n\n /**\n * 初始化。\n */\n public init() {\n this.initEvents();\n }\n\n /**\n * 绑定事件\n */\n protected initEvents() {}\n\n /**\n * 销毁事件\n */\n protected clearEvents() {}\n\n /**\n * 销毁。\n */\n public destroy() {\n this.clearEvents();\n }\n}\n","import { each, isArray, isFunction, isString, debounce, throttle } from '@antv/util';\nimport { View } from '../chart';\nimport { ActionCallback, IAction, IInteractionContext, LooseObject } from '../interface';\nimport { createAction, createCallbackAction } from './action/register';\nimport InteractionContext from './context';\nimport Interaction from './interaction';\n\n// 将字符串转换成 action\nexport function parseAction(actionStr: string, context: IInteractionContext, arg?: any): ActionObject {\n const arr = actionStr.split(':');\n const actionName = arr[0];\n // 如果已经初始化过 action ,则直接引用之前的 action\n const action = context.getAction(actionName) || createAction(actionName, context);\n if (!action) {\n throw new Error(`There is no action named ${actionName}`);\n }\n const methodName = arr[1];\n return {\n action,\n methodName,\n arg,\n };\n}\n\n// 执行 Action\nfunction executeAction(actionObject: ActionObject) {\n const { action, methodName, arg } = actionObject;\n if (action[methodName]) {\n action[methodName](arg);\n } else {\n throw new Error(`Action(${action.name}) doesn't have a method called ${methodName}`);\n }\n}\n\nconst STEP_NAMES = {\n START: 'start',\n SHOW_ENABLE: 'showEnable',\n END: 'end',\n ROLLBACK: 'rollback',\n PROCESSING: 'processing',\n};\n\n/** 交互环节的定义 */\nexport interface InteractionStep {\n /**\n * 触发事件,支持 view,chart 的各种事件,也支持 document、window 的事件\n */\n trigger: string;\n /**\n * 是否可以触发 action\n * @param context - 交互的上下文\n */\n isEnable?: (context: IInteractionContext) => boolean;\n /**\n * 反馈,支持三种方式:\n * - action:method : action 的名字和方法的组合\n * - [’action1:method1‘, ’action2:method‘]\n * - ActionCallback: 回调函数\n */\n action: string | string[] | ActionCallback;\n /**\n * 反馈,具体 action method 的参数:\n * - 当传递多个 action 时,args 必须是一个数组\n */\n arg?: any | any[];\n /**\n * 回调函数,action 执行后执行\n */\n callback?: (context: IInteractionContext) => void;\n /**\n * @private\n * 不需要用户传入,通过上面的属性计算出来的属性\n */\n actionObject?: ActionObject | ActionObject[];\n /**\n * 在一个环节内是否只允许执行一次\n */\n once?: boolean;\n /**\n * 是否增加节流\n */\n throttle?: ThrottleOption;\n /**\n * 是否延迟\n */\n debounce?: DebounceOption;\n}\n\n// action 执行时支持 debounce 和 throttle,可以参考:https://css-tricks.com/debouncing-throttling-explained-examples/\n/**\n * debounce 的配置\n */\nexport interface DebounceOption {\n /**\n * 等待时间\n */\n wait: number;\n /**\n * 是否马上执行\n */\n immediate?: boolean;\n}\n\n/**\n * throttle 的配置\n */\nexport interface ThrottleOption {\n /**\n * 等待时间\n */\n wait: number;\n /**\n * 马上就执行\n */\n leading?: boolean;\n /**\n * 执行完毕后再执行一次\n */\n trailing?: boolean;\n}\n\n/** 缓存 action 对象,仅用于当前文件 */\ninterface ActionObject {\n /**\n * 缓存的 action\n */\n action: IAction;\n /**\n * action 的方法\n */\n methodName: string;\n /**\n * 用户传递的 action 方法的参数\n */\n arg?: any;\n}\n\n/** 交互的所有环节 */\nexport interface InteractionSteps {\n /**\n * 显示交互可以进行\n */\n showEnable?: InteractionStep[];\n /**\n * 交互开始\n */\n start?: InteractionStep[];\n /**\n * 交互持续\n */\n processing?: InteractionStep[];\n /**\n * 交互结束\n */\n end?: InteractionStep[];\n /**\n * 交互回滚\n */\n rollback?: InteractionStep[];\n}\n\n/**\n * 支持语法的交互类\n */\nexport default class GrammarInteraction extends Interaction {\n // 存储的交互环节\n private steps: InteractionSteps;\n /** 当前执行到的阶段 */\n public currentStepName: string;\n /**\n * 当前交互的上下文\n */\n public context: IInteractionContext;\n\n private callbackCaches: LooseObject = {};\n // 某个触发和反馈在本环节是否执行或\n private emitCaches: LooseObject = {};\n\n constructor(view: View, steps: InteractionSteps) {\n super(view, steps);\n this.steps = steps;\n }\n\n /**\n * 初始化\n */\n public init() {\n this.initContext();\n super.init();\n }\n\n /**\n * 清理资源\n */\n public destroy() {\n super.destroy(); // 先清理事件\n this.steps = null;\n if (this.context) {\n this.context.destroy();\n this.context = null;\n }\n\n this.callbackCaches = null;\n this.view = null;\n }\n\n /**\n * 绑定事件\n */\n protected initEvents() {\n each(this.steps, (stepArr, stepName) => {\n each(stepArr, (step) => {\n const callback = this.getActionCallback(stepName, step);\n if (callback) {\n // 如果存在 callback,才绑定,有时候会出现无 callback 的情况\n this.bindEvent(step.trigger, callback);\n }\n });\n });\n }\n\n /**\n * 清理绑定的事件\n */\n protected clearEvents() {\n each(this.steps, (stepArr, stepName) => {\n each(stepArr, (step) => {\n const callback = this.getActionCallback(stepName, step);\n if (callback) {\n this.offEvent(step.trigger, callback);\n }\n });\n });\n }\n\n // 初始化上下文,并初始化 action\n private initContext() {\n const view = this.view;\n const context = new InteractionContext(view);\n this.context = context;\n const steps = this.steps;\n // 生成具体的 Action\n each(steps, (subSteps: InteractionStep[]) => {\n each(subSteps, (step: InteractionStep) => {\n if (isFunction(step.action)) {\n // 如果传入回调函数,则直接生成 CallbackAction\n step.actionObject = {\n action: createCallbackAction(step.action, context),\n methodName: 'execute',\n };\n } else if (isString(step.action)) {\n // 如果是字符串\n step.actionObject = parseAction(step.action, context, step.arg);\n } else if (isArray(step.action)) {\n // 如果是数组\n const actionArr = step.action;\n const argArr = isArray(step.arg) ? step.arg : [step.arg];\n step.actionObject = [];\n each(actionArr, (actionStr, idx) => {\n (step.actionObject as ActionObject[]).push(parseAction(actionStr, context, argArr[idx]));\n });\n }\n // 如果 action 既不是字符串,也不是函数,则不会生成 actionObject\n });\n });\n }\n\n // 是否允许指定阶段名称执行\n private isAllowStep(stepName: string): boolean {\n const currentStepName = this.currentStepName;\n const steps = this.steps;\n // 相同的阶段允许同时执行\n if (currentStepName === stepName) {\n return true;\n }\n\n if (stepName === STEP_NAMES.SHOW_ENABLE) {\n // 示能在整个过程中都可用\n return true;\n }\n\n if (stepName === STEP_NAMES.PROCESSING) {\n // 只有当前是 start 时,才允许 processing\n return currentStepName === STEP_NAMES.START;\n }\n\n if (stepName === STEP_NAMES.START) {\n // 如果当前是 processing,则无法 start,必须等待 end 后才能执行\n return currentStepName !== STEP_NAMES.PROCESSING;\n }\n\n if (stepName === STEP_NAMES.END) {\n return currentStepName === STEP_NAMES.PROCESSING || currentStepName === STEP_NAMES.START;\n }\n\n if (stepName === STEP_NAMES.ROLLBACK) {\n if (steps[STEP_NAMES.END]) {\n // 如果定义了 end, 只有 end 时才允许回滚\n return currentStepName === STEP_NAMES.END;\n } else if (currentStepName === STEP_NAMES.START) {\n // 如果未定义 end, 则判断是否是开始\n return true;\n }\n }\n return false;\n }\n\n // 具体的指定阶段是否允许执行\n private isAllowExecute(stepName: string, step: InteractionStep): boolean {\n if (this.isAllowStep(stepName)) {\n const key = this.getKey(stepName, step);\n // 如果是在本环节内仅允许触发一次,同时已经触发过,则不允许再触发\n if (step.once && this.emitCaches[key]) {\n return false;\n }\n // 如果是允许的阶段,则验证 isEnable 方法\n if (step.isEnable) {\n return step.isEnable(this.context);\n }\n return true; // 如果没有 isEnable 则允许执行\n }\n return false;\n }\n\n private enterStep(stepName: string) {\n this.currentStepName = stepName;\n this.emitCaches = {}; // 清除所有本环节触发的缓存\n }\n\n // 执行完某个触发和反馈(子环节)\n private afterExecute(stepName: string, step) {\n // show enable 不计入正常的流程,其他情况则设置当前的 step\n if (stepName !== STEP_NAMES.SHOW_ENABLE && this.currentStepName !== stepName) {\n this.enterStep(stepName);\n }\n const key = this.getKey(stepName, step);\n // 一旦执行,则缓存标记为,一直保持到跳出改环节\n this.emitCaches[key] = true;\n }\n // 获取某个环节的唯一的键值\n private getKey(stepName, step) {\n return stepName + step.trigger + step.action;\n }\n\n // 获取 step 的回调函数,如果已经生成,则直接返回,如果未生成,则创建\n private getActionCallback(stepName: string, step: InteractionStep): (e: object) => void {\n const context = this.context;\n const callbackCaches = this.callbackCaches;\n const actionObject = step.actionObject;\n if (step.action && actionObject) {\n const key = this.getKey(stepName, step);\n if (!callbackCaches[key]) {\n // 动态生成执行的方法,执行对应 action 的名称\n const actionCallback = (event) => {\n context.event = event; // 保证检测时的 event\n if (this.isAllowExecute(stepName, step)) {\n // 如果是数组时,则依次执行\n if (isArray(actionObject)) {\n each(actionObject, (obj: ActionObject) => {\n context.event = event; // 可能触发新的事件,保证执行前的 context.event 是正确的\n executeAction(obj);\n });\n } else {\n context.event = event; // 保证执行前的 context.event 是正确的\n executeAction(actionObject);\n }\n this.afterExecute(stepName, step);\n if (step.callback) {\n context.event = event; // 保证执行前的 context.event 是正确的\n step.callback(context);\n }\n } else {\n // 如果未通过验证,则事件不要绑定在上面\n context.event = null;\n }\n };\n // 如果设置了 debounce\n if (step.debounce) {\n callbackCaches[key] = debounce(actionCallback, step.debounce.wait, step.debounce.immediate);\n } else if (step.throttle) {\n // 设置 throttle\n callbackCaches[key] = throttle(actionCallback, step.throttle.wait, {\n leading: step.throttle.leading,\n trailing: step.throttle.trailing,\n });\n } else {\n // 直接设置\n callbackCaches[key] = actionCallback;\n }\n }\n return callbackCaches[key];\n }\n return null;\n }\n\n private bindEvent(eventName, callback) {\n const nameArr = eventName.split(':');\n if (nameArr[0] === 'window') {\n window.addEventListener(nameArr[1], callback);\n } else if (nameArr[0] === 'document') {\n document.addEventListener(nameArr[1], callback);\n } else {\n this.view.on(eventName, callback);\n }\n }\n\n private offEvent(eventName, callback) {\n const nameArr = eventName.split(':');\n if (nameArr[0] === 'window') {\n window.removeEventListener(nameArr[1], callback);\n } else if (nameArr[0] === 'document') {\n document.removeEventListener(nameArr[1], callback);\n } else {\n this.view.off(eventName, callback);\n }\n }\n}\n","import { clone, isPlainObject, lowerCase, mix } from '@antv/util';\nimport { View } from '../chart';\nimport { LooseObject } from '../interface';\nimport GrammarInteraction, { InteractionSteps } from './grammar-interaction';\nimport { InteractionConstructor } from './interaction';\n\nconst Interactions: LooseObject = {};\n\n/**\n * 根据交互行为名字获取对应的交互类\n * @param name 交互名字\n * @returns 交互类\n */\nexport function getInteraction(name: string): InteractionSteps | InteractionConstructor {\n return Interactions[lowerCase(name)];\n}\n\n/**\n * 注册交互行为\n * @param name 交互行为名字\n * @param interaction 交互类\n */\nexport function registerInteraction(name: string, interaction: InteractionSteps | InteractionConstructor) {\n Interactions[lowerCase(name)] = interaction;\n}\n\n/**\n * 创建交互实例\n * @param name 交互名\n * @param view 交互应用的 View 实例\n * @param cfg 交互行为配置\n */\nexport function createInteraction(name: string, view: View, cfg?: LooseObject) {\n const interaciton = getInteraction(name);\n if (!interaciton) {\n return null;\n }\n if (isPlainObject(interaciton)) {\n // 如果不 clone 则会多个 interaction 实例共享 step 的定义\n const steps = mix(clone(interaciton), cfg) as InteractionSteps;\n return new GrammarInteraction(view, steps);\n } else {\n const cls = interaciton as InteractionConstructor;\n return new cls(view, cfg);\n }\n}\n\nexport { default as Interaction } from './interaction';\nexport { Action, registerAction, getActionClass } from './action';\n","import { TOOLTIP_CSS_CONST } from '@antv/component';\nimport { ext } from '@antv/matrix-util';\nimport { deepMix } from '@antv/util';\nimport Element from '../../geometry/element';\nimport { LooseObject, StyleSheet } from '../../interface';\nimport { getAngle } from '../../util/graphics';\n\n/**\n * 根据样式表创建 axis 组件主题样式\n * @param styleSheet\n */\nfunction createAxisStyles(styleSheet: StyleSheet): LooseObject {\n return {\n title: {\n autoRotate: true,\n position: 'center', // start, center, end\n spacing: styleSheet.axisTitleSpacing,\n style: {\n fill: styleSheet.axisTitleTextFillColor,\n fontSize: styleSheet.axisTitleTextFontSize,\n lineHeight: styleSheet.axisTitleTextLineHeight,\n textBaseline: 'middle',\n fontFamily: styleSheet.fontFamily,\n },\n },\n label: {\n autoRotate: false,\n autoEllipsis: false,\n autoHide: { type: 'equidistance', cfg: { minGap: 6 } },\n offset: styleSheet.axisLabelOffset,\n style: {\n fill: styleSheet.axisLabelFillColor,\n fontSize: styleSheet.axisLabelFontSize,\n lineHeight: styleSheet.axisLabelLineHeight,\n fontFamily: styleSheet.fontFamily,\n },\n },\n line: {\n style: {\n lineWidth: styleSheet.axisLineBorder,\n stroke: styleSheet.axisLineBorderColor,\n },\n },\n grid: {\n line: {\n type: 'line',\n style: {\n stroke: styleSheet.axisGridBorderColor,\n lineWidth: styleSheet.axisGridBorder,\n lineDash: styleSheet.axisGridLineDash,\n },\n },\n alignTick: true,\n animate: true,\n },\n tickLine: {\n style: {\n lineWidth: styleSheet.axisTickLineBorder,\n stroke: styleSheet.axisTickLineBorderColor,\n },\n alignTick: true, // 默认刻度线和文本对齐\n length: styleSheet.axisTickLineLength,\n },\n subTickLine: null,\n animate: true,\n };\n}\n\n/**\n *\n * @param styleSheet\n */\n// export function\n\n/**\n * 根据样式表创建 legend 组件主题样式\n * @param styleSheet\n */\nfunction createLegendStyles(styleSheet: StyleSheet): LooseObject {\n return {\n title: null,\n marker: {\n symbol: 'circle',\n spacing: styleSheet.legendMarkerSpacing,\n style: {\n r: styleSheet.legendCircleMarkerSize,\n fill: styleSheet.legendMarkerColor,\n },\n },\n itemName: {\n spacing: 5, // 如果右边有 value 使用这个间距\n style: {\n fill: styleSheet.legendItemNameFillColor,\n fontFamily: styleSheet.fontFamily,\n fontSize: styleSheet.legendItemNameFontSize,\n lineHeight: styleSheet.legendItemNameLineHeight,\n fontWeight: styleSheet.legendItemNameFontWeight,\n textAlign: 'start',\n textBaseline: 'middle',\n },\n },\n itemStates: {\n active: {\n nameStyle: {\n opacity: 0.8,\n },\n },\n unchecked: {\n nameStyle: {\n fill: '#D8D8D8',\n },\n markerStyle: {\n fill: '#D8D8D8',\n stroke: '#D8D8D8',\n },\n },\n inactive: {\n nameStyle: {\n fill: '#D8D8D8',\n },\n markerStyle: {\n opacity: 0.2,\n },\n },\n },\n flipPage: true,\n pageNavigator: {\n marker: {\n style: {\n size: styleSheet.legendPageNavigatorMarkerSize,\n inactiveFill: styleSheet.legendPageNavigatorMarkerInactiveFillColor,\n inactiveOpacity: styleSheet.legendPageNavigatorMarkerInactiveFillOpacity,\n fill: styleSheet.legendPageNavigatorMarkerFillColor,\n opacity: styleSheet.legendPageNavigatorMarkerFillOpacity,\n },\n },\n text: {\n style: {\n fill: styleSheet.legendPageNavigatorTextFillColor,\n fontSize: styleSheet.legendPageNavigatorTextFontSize,\n },\n },\n },\n animate: false,\n maxItemWidth: 200,\n itemSpacing: styleSheet.legendItemSpacing,\n itemMarginBottom: styleSheet.legendItemMarginBottom,\n padding: styleSheet.legendPadding, // 图例组件自己的外边距\n };\n}\n\n/**\n * 根据主题样式表生成主题结构\n * @param styleSheet 主题样式表\n */\nexport function createThemeByStyleSheet(styleSheet: StyleSheet): LooseObject {\n const shapeStyles = {\n point: {\n default: {\n fill: styleSheet.pointFillColor,\n r: styleSheet.pointSize,\n stroke: styleSheet.pointBorderColor,\n lineWidth: styleSheet.pointBorder,\n fillOpacity: styleSheet.pointFillOpacity,\n },\n active: {\n stroke: styleSheet.pointActiveBorderColor,\n lineWidth: styleSheet.pointActiveBorder,\n },\n selected: {\n stroke: styleSheet.pointSelectedBorderColor,\n lineWidth: styleSheet.pointSelectedBorder,\n },\n inactive: {\n fillOpacity: styleSheet.pointInactiveFillOpacity,\n strokeOpacity: styleSheet.pointInactiveBorderOpacity,\n },\n },\n hollowPoint: {\n default: {\n fill: styleSheet.hollowPointFillColor,\n lineWidth: styleSheet.hollowPointBorder,\n stroke: styleSheet.hollowPointBorderColor,\n strokeOpacity: styleSheet.hollowPointBorderOpacity,\n r: styleSheet.hollowPointSize,\n },\n active: {\n stroke: styleSheet.hollowPointActiveBorderColor,\n strokeOpacity: styleSheet.hollowPointActiveBorderOpacity,\n },\n selected: {\n lineWidth: styleSheet.hollowPointSelectedBorder,\n stroke: styleSheet.hollowPointSelectedBorderColor,\n strokeOpacity: styleSheet.hollowPointSelectedBorderOpacity,\n },\n inactive: {\n strokeOpacity: styleSheet.hollowPointInactiveBorderOpacity,\n },\n },\n area: {\n default: {\n fill: styleSheet.areaFillColor,\n fillOpacity: styleSheet.areaFillOpacity,\n stroke: null,\n },\n active: {\n fillOpacity: styleSheet.areaActiveFillOpacity,\n },\n selected: {\n fillOpacity: styleSheet.areaSelectedFillOpacity,\n },\n inactive: {\n fillOpacity: styleSheet.areaInactiveFillOpacity,\n },\n },\n hollowArea: {\n default: {\n fill: null,\n stroke: styleSheet.hollowAreaBorderColor,\n lineWidth: styleSheet.hollowAreaBorder,\n strokeOpacity: styleSheet.hollowAreaBorderOpacity,\n },\n active: {\n fill: null,\n lineWidth: styleSheet.hollowAreaActiveBorder,\n },\n selected: {\n fill: null,\n lineWidth: styleSheet.hollowAreaSelectedBorder,\n },\n inactive: {\n strokeOpacity: styleSheet.hollowAreaInactiveBorderOpacity,\n },\n },\n interval: {\n default: {\n fill: styleSheet.intervalFillColor,\n fillOpacity: styleSheet.intervalFillOpacity,\n },\n active: {\n stroke: styleSheet.intervalActiveBorderColor,\n lineWidth: styleSheet.intervalActiveBorder,\n },\n selected: {\n stroke: styleSheet.intervalSelectedBorderColor,\n lineWidth: styleSheet.intervalSelectedBorder,\n },\n inactive: {\n fillOpacity: styleSheet.intervalInactiveFillOpacity,\n strokeOpacity: styleSheet.intervalInactiveBorderOpacity,\n },\n },\n hollowInterval: {\n default: {\n fill: styleSheet.hollowIntervalFillColor,\n stroke: styleSheet.hollowIntervalBorderColor,\n lineWidth: styleSheet.hollowIntervalBorder,\n strokeOpacity: styleSheet.hollowIntervalBorderOpacity,\n },\n active: {\n stroke: styleSheet.hollowIntervalActiveBorderColor,\n lineWidth: styleSheet.hollowIntervalActiveBorder,\n strokeOpacity: styleSheet.hollowIntervalActiveBorderOpacity,\n },\n selected: {\n stroke: styleSheet.hollowIntervalSelectedBorderColor,\n lineWidth: styleSheet.hollowIntervalSelectedBorder,\n strokeOpacity: styleSheet.hollowIntervalSelectedBorderOpacity,\n },\n inactive: {\n stroke: styleSheet.hollowIntervalInactiveBorderColor,\n lineWidth: styleSheet.hollowIntervalInactiveBorder,\n strokeOpacity: styleSheet.hollowIntervalInactiveBorderOpacity,\n },\n },\n line: {\n default: {\n stroke: styleSheet.lineBorderColor,\n lineWidth: styleSheet.lineBorder,\n strokeOpacity: styleSheet.lineBorderOpacity,\n fill: null,\n lineAppendWidth: 10,\n lineCap: 'round',\n lineJoin: 'round',\n },\n active: {\n lineWidth: styleSheet.lineActiveBorder,\n },\n selected: {\n lineWidth: styleSheet.lineSelectedBorder,\n },\n inactive: {\n strokeOpacity: styleSheet.lineInactiveBorderOpacity,\n },\n },\n };\n const axisStyles = createAxisStyles(styleSheet);\n const legendStyles = createLegendStyles(styleSheet);\n\n return {\n background: styleSheet.backgroundColor,\n defaultColor: styleSheet.brandColor,\n subColor: styleSheet.subColor,\n semanticRed: styleSheet.paletteSemanticRed,\n semanticGreen: styleSheet.paletteSemanticGreen,\n padding: 'auto',\n fontFamily: styleSheet.fontFamily,\n // 兼容Theme配置\n /** 一般柱状图宽度占比,geometry中已添加默认值,为了geometry配置生效默认值为null */\n columnWidthRatio: 1 / 2,\n /** 柱状图最大宽度 */\n maxColumnWidth: null,\n /** 柱状图最小宽度 */\n minColumnWidth: null,\n /** 玫瑰图占比 */\n roseWidthRatio: 0.9999999,\n /** 多层饼图/环图占比 */\n multiplePieWidthRatio: 1 / 1.3,\n colors10: styleSheet.paletteQualitative10,\n colors20: styleSheet.paletteQualitative20,\n sequenceColors: styleSheet.paletteSequence,\n shapes: {\n point: [\n 'hollow-circle',\n 'hollow-square',\n 'hollow-bowtie',\n 'hollow-diamond',\n 'hollow-hexagon',\n 'hollow-triangle',\n 'hollow-triangle-down',\n 'circle',\n 'square',\n 'bowtie',\n 'diamond',\n 'hexagon',\n 'triangle',\n 'triangle-down',\n 'cross',\n 'tick',\n 'plus',\n 'hyphen',\n 'line',\n ],\n line: ['line', 'dash', 'dot', 'smooth'],\n area: ['area', 'smooth', 'line', 'smooth-line'],\n interval: ['rect', 'hollow-rect', 'line', 'tick'],\n },\n sizes: [1, 10],\n geometries: {\n interval: {\n rect: {\n default: {\n style: shapeStyles.interval.default,\n },\n active: {\n style: shapeStyles.interval.active,\n },\n inactive: {\n style: shapeStyles.interval.inactive,\n },\n selected: {\n style: (element: Element) => {\n const coordinate = element.geometry.coordinate;\n if (coordinate.isPolar && coordinate.isTransposed) {\n const { startAngle, endAngle } = getAngle(element.getModel(), coordinate);\n const middleAngle = (startAngle + endAngle) / 2;\n const r = 7.5;\n const x = r * Math.cos(middleAngle);\n const y = r * Math.sin(middleAngle);\n return {\n matrix: ext.transform(null, [['t', x, y]]),\n };\n }\n return shapeStyles.interval.selected;\n },\n },\n },\n 'hollow-rect': {\n default: {\n style: shapeStyles.hollowInterval.default,\n },\n active: {\n style: shapeStyles.hollowInterval.active,\n },\n inactive: {\n style: shapeStyles.hollowInterval.inactive,\n },\n selected: {\n style: shapeStyles.hollowInterval.selected,\n },\n },\n line: {\n default: {\n style: shapeStyles.hollowInterval.default,\n },\n active: {\n style: shapeStyles.hollowInterval.active,\n },\n inactive: {\n style: shapeStyles.hollowInterval.inactive,\n },\n selected: {\n style: shapeStyles.hollowInterval.selected,\n },\n },\n tick: {\n default: {\n style: shapeStyles.hollowInterval.default,\n },\n active: {\n style: shapeStyles.hollowInterval.active,\n },\n inactive: {\n style: shapeStyles.hollowInterval.inactive,\n },\n selected: {\n style: shapeStyles.hollowInterval.selected,\n },\n },\n funnel: {\n default: {\n style: shapeStyles.interval.default,\n },\n active: {\n style: shapeStyles.interval.active,\n },\n inactive: {\n style: shapeStyles.interval.inactive,\n },\n selected: {\n style: shapeStyles.interval.selected,\n },\n },\n pyramid: {\n default: {\n style: shapeStyles.interval.default,\n },\n active: {\n style: shapeStyles.interval.active,\n },\n inactive: {\n style: shapeStyles.interval.inactive,\n },\n selected: {\n style: shapeStyles.interval.selected,\n },\n },\n },\n line: {\n line: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n dot: {\n default: {\n style: {\n ...shapeStyles.line.default,\n lineCap: null,\n lineDash: [1, 1],\n },\n },\n active: {\n style: {\n ...shapeStyles.line.active,\n lineCap: null,\n lineDash: [1, 1],\n },\n },\n inactive: {\n style: {\n ...shapeStyles.line.inactive,\n lineCap: null,\n lineDash: [1, 1],\n },\n },\n selected: {\n style: {\n ...shapeStyles.line.selected,\n lineCap: null,\n lineDash: [1, 1],\n },\n },\n },\n dash: {\n default: {\n style: {\n ...shapeStyles.line.default,\n lineCap: null,\n lineDash: [5.5, 1],\n },\n },\n active: {\n style: {\n ...shapeStyles.line.active,\n lineCap: null,\n lineDash: [5.5, 1],\n },\n },\n inactive: {\n style: {\n ...shapeStyles.line.inactive,\n lineCap: null,\n lineDash: [5.5, 1],\n },\n },\n selected: {\n style: {\n ...shapeStyles.line.selected,\n lineCap: null,\n lineDash: [5.5, 1],\n },\n },\n },\n smooth: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n hv: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n vh: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n hvh: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n vhv: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n },\n polygon: {\n polygon: {\n default: {\n style: shapeStyles.interval.default,\n },\n active: {\n style: shapeStyles.interval.active,\n },\n inactive: {\n style: shapeStyles.interval.inactive,\n },\n selected: {\n style: shapeStyles.interval.selected,\n },\n },\n },\n point: {\n circle: {\n default: {\n style: shapeStyles.point.default,\n },\n active: {\n style: shapeStyles.point.active,\n },\n inactive: {\n style: shapeStyles.point.inactive,\n },\n selected: {\n style: shapeStyles.point.selected,\n },\n },\n square: {\n default: {\n style: shapeStyles.point.default,\n },\n active: {\n style: shapeStyles.point.active,\n },\n inactive: {\n style: shapeStyles.point.inactive,\n },\n selected: {\n style: shapeStyles.point.selected,\n },\n },\n bowtie: {\n default: {\n style: shapeStyles.point.default,\n },\n active: {\n style: shapeStyles.point.active,\n },\n inactive: {\n style: shapeStyles.point.inactive,\n },\n selected: {\n style: shapeStyles.point.selected,\n },\n },\n diamond: {\n default: {\n style: shapeStyles.point.default,\n },\n active: {\n style: shapeStyles.point.active,\n },\n inactive: {\n style: shapeStyles.point.inactive,\n },\n selected: {\n style: shapeStyles.point.selected,\n },\n },\n hexagon: {\n default: {\n style: shapeStyles.point.default,\n },\n active: {\n style: shapeStyles.point.active,\n },\n inactive: {\n style: shapeStyles.point.inactive,\n },\n selected: {\n style: shapeStyles.point.selected,\n },\n },\n triangle: {\n default: {\n style: shapeStyles.point.default,\n },\n active: {\n style: shapeStyles.point.active,\n },\n inactive: {\n style: shapeStyles.point.inactive,\n },\n selected: {\n style: shapeStyles.point.selected,\n },\n },\n 'triangle-down': {\n default: {\n style: shapeStyles.point.default,\n },\n active: {\n style: shapeStyles.point.active,\n },\n inactive: {\n style: shapeStyles.point.inactive,\n },\n selected: {\n style: shapeStyles.point.selected,\n },\n },\n 'hollow-circle': {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n 'hollow-square': {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n 'hollow-bowtie': {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n 'hollow-diamond': {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n 'hollow-hexagon': {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n 'hollow-triangle': {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n 'hollow-triangle-down': {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n cross: {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n tick: {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n plus: {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n hyphen: {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n line: {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n },\n area: {\n area: {\n default: {\n style: shapeStyles.area.default,\n },\n active: {\n style: shapeStyles.area.active,\n },\n inactive: {\n style: shapeStyles.area.inactive,\n },\n selected: {\n style: shapeStyles.area.selected,\n },\n },\n smooth: {\n default: {\n style: shapeStyles.area.default,\n },\n active: {\n style: shapeStyles.area.active,\n },\n inactive: {\n style: shapeStyles.area.inactive,\n },\n selected: {\n style: shapeStyles.area.selected,\n },\n },\n line: {\n default: {\n style: shapeStyles.hollowArea.default,\n },\n active: {\n style: shapeStyles.hollowArea.active,\n },\n inactive: {\n style: shapeStyles.hollowArea.inactive,\n },\n selected: {\n style: shapeStyles.hollowArea.selected,\n },\n },\n 'smooth-line': {\n default: {\n style: shapeStyles.hollowArea.default,\n },\n active: {\n style: shapeStyles.hollowArea.active,\n },\n inactive: {\n style: shapeStyles.hollowArea.inactive,\n },\n selected: {\n style: shapeStyles.hollowArea.selected,\n },\n },\n },\n schema: {\n candle: {\n default: {\n style: shapeStyles.hollowInterval.default,\n },\n active: {\n style: shapeStyles.hollowInterval.active,\n },\n inactive: {\n style: shapeStyles.hollowInterval.inactive,\n },\n selected: {\n style: shapeStyles.hollowInterval.selected,\n },\n },\n box: {\n default: {\n style: shapeStyles.hollowInterval.default,\n },\n active: {\n style: shapeStyles.hollowInterval.active,\n },\n inactive: {\n style: shapeStyles.hollowInterval.inactive,\n },\n selected: {\n style: shapeStyles.hollowInterval.selected,\n },\n },\n },\n edge: {\n line: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n vhv: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n smooth: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n arc: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n },\n violin: {\n violin: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n smooth: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n hollow: {\n default: {\n style: shapeStyles.hollowArea.default,\n },\n active: {\n style: shapeStyles.hollowArea.active,\n },\n inactive: {\n style: shapeStyles.hollowArea.inactive,\n },\n selected: {\n style: shapeStyles.hollowArea.selected,\n },\n },\n 'hollow-smooth': {\n default: {\n style: shapeStyles.hollowArea.default,\n },\n active: {\n style: shapeStyles.hollowArea.active,\n },\n inactive: {\n style: shapeStyles.hollowArea.inactive,\n },\n selected: {\n style: shapeStyles.hollowArea.selected,\n },\n },\n },\n },\n components: {\n axis: {\n common: axisStyles,\n top: {\n position: 'top',\n grid: null,\n title: null,\n verticalLimitLength: 1 / 2,\n },\n bottom: {\n position: 'bottom',\n grid: null,\n title: null,\n verticalLimitLength: 1 / 2,\n },\n left: {\n position: 'left',\n title: null,\n line: null,\n tickLine: null,\n verticalLimitLength: 1 / 3,\n },\n right: {\n position: 'right',\n title: null,\n line: null,\n tickLine: null,\n verticalLimitLength: 1 / 3,\n },\n circle: {\n title: null,\n grid: deepMix({}, axisStyles.grid, { line: { type: 'line' } }),\n },\n radius: {\n title: null,\n grid: deepMix({}, axisStyles.grid, { line: { type: 'circle' } }),\n },\n },\n legend: {\n common: legendStyles,\n right: {\n layout: 'vertical',\n padding: styleSheet.legendVerticalPadding,\n },\n left: {\n layout: 'vertical',\n padding: styleSheet.legendVerticalPadding,\n },\n top: {\n layout: 'horizontal',\n padding: styleSheet.legendHorizontalPadding,\n },\n bottom: {\n layout: 'horizontal',\n padding: styleSheet.legendHorizontalPadding,\n },\n continuous: {\n title: null,\n background: null,\n track: {},\n rail: {\n type: 'color',\n size: styleSheet.sliderRailHeight,\n defaultLength: styleSheet.sliderRailWidth,\n style: {\n fill: styleSheet.sliderRailFillColor,\n stroke: styleSheet.sliderRailBorderColor,\n lineWidth: styleSheet.sliderRailBorder,\n },\n },\n label: {\n align: 'rail',\n spacing: 4, // 文本和 rail 的间距\n formatter: null,\n style: {\n fill: styleSheet.sliderLabelTextFillColor,\n fontSize: styleSheet.sliderLabelTextFontSize,\n lineHeight: styleSheet.sliderLabelTextLineHeight,\n textBaseline: 'middle',\n fontFamily: styleSheet.fontFamily,\n },\n },\n handler: {\n size: styleSheet.sliderHandlerWidth,\n style: {\n fill: styleSheet.sliderHandlerFillColor,\n stroke: styleSheet.sliderHandlerBorderColor,\n },\n },\n slidable: true,\n padding: legendStyles.padding,\n },\n },\n tooltip: {\n showContent: true,\n follow: true,\n showCrosshairs: false,\n showMarkers: true,\n shared: false,\n enterable: false,\n position: 'auto',\n marker: {\n symbol: 'circle',\n stroke: '#fff',\n shadowBlur: 10,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n shadowColor: 'rgba(0,0,0,0.09)',\n lineWidth: 2,\n r: 4,\n },\n crosshairs: {\n line: {\n style: {\n stroke: styleSheet.tooltipCrosshairsBorderColor,\n lineWidth: styleSheet.tooltipCrosshairsBorder,\n },\n },\n text: null,\n textBackground: {\n padding: 2,\n style: {\n fill: 'rgba(0, 0, 0, 0.25)',\n lineWidth: 0,\n stroke: null,\n },\n },\n follow: false,\n },\n // tooltip dom 样式\n domStyles: {\n [`${TOOLTIP_CSS_CONST.CONTAINER_CLASS}`]: {\n position: 'absolute',\n visibility: 'hidden',\n zIndex: 8,\n transition: 'left 0.4s cubic-bezier(0.23, 1, 0.32, 1) 0s, top 0.4s cubic-bezier(0.23, 1, 0.32, 1) 0s',\n backgroundColor: styleSheet.tooltipContainerFillColor,\n opacity: styleSheet.tooltipContainerFillOpacity,\n boxShadow: styleSheet.tooltipContainerShadow,\n borderRadius: `${styleSheet.tooltipContainerBorderRadius}px`,\n color: styleSheet.tooltipTextFillColor,\n fontSize: `${styleSheet.tooltipTextFontSize}px`,\n fontFamily: styleSheet.fontFamily,\n lineHeight: `${styleSheet.tooltipTextLineHeight}px`,\n padding: '0 12px 0 12px',\n },\n [`${TOOLTIP_CSS_CONST.TITLE_CLASS}`]: {\n marginBottom: '12px',\n marginTop: '12px',\n },\n [`${TOOLTIP_CSS_CONST.LIST_CLASS}`]: {\n margin: 0,\n listStyleType: 'none',\n padding: 0,\n },\n [`${TOOLTIP_CSS_CONST.LIST_ITEM_CLASS}`]: {\n listStyleType: 'none',\n padding: 0,\n marginBottom: '12px',\n marginTop: '12px',\n marginLeft: 0,\n marginRight: 0,\n },\n [`${TOOLTIP_CSS_CONST.MARKER_CLASS}`]: {\n width: '8px',\n height: '8px',\n borderRadius: '50%',\n display: 'inline-block',\n marginRight: '8px',\n },\n [`${TOOLTIP_CSS_CONST.VALUE_CLASS}`]: {\n display: 'inline-block',\n float: 'right',\n marginLeft: '30px',\n },\n },\n },\n annotation: {\n arc: {\n style: {\n stroke: styleSheet.annotationArcBorderColor,\n lineWidth: styleSheet.annotationArcBorder,\n },\n animate: true,\n },\n line: {\n style: {\n stroke: styleSheet.annotationLineBorderColor,\n lineDash: styleSheet.annotationLineDash,\n lineWidth: styleSheet.annotationLineBorder,\n },\n text: {\n position: 'start',\n autoRotate: true,\n style: {\n fill: styleSheet.annotationTextFillColor,\n stroke: styleSheet.annotationTextBorderColor,\n lineWidth: styleSheet.annotationTextBorder,\n fontSize: styleSheet.annotationTextFontSize,\n textAlign: 'start',\n fontFamily: styleSheet.fontFamily,\n textBaseline: 'bottom',\n },\n },\n animate: true,\n },\n text: {\n style: {\n fill: styleSheet.annotationTextFillColor,\n stroke: styleSheet.annotationTextBorderColor,\n lineWidth: styleSheet.annotationTextBorder,\n fontSize: styleSheet.annotationTextFontSize,\n textBaseline: 'middle',\n textAlign: 'start',\n fontFamily: styleSheet.fontFamily,\n },\n animate: true,\n },\n region: {\n top: false,\n style: {\n lineWidth: styleSheet.annotationRegionBorder,\n stroke: styleSheet.annotationRegionBorderColor,\n fill: styleSheet.annotationRegionFillColor,\n fillOpacity: styleSheet.annotationRegionFillOpacity,\n }, // 辅助框的图形样式属性\n animate: true,\n },\n image: {\n top: false,\n animate: true,\n },\n dataMarker: {\n top: true,\n point: {\n style: {\n r: 3,\n stroke: styleSheet.brandColor,\n lineWidth: 2,\n },\n },\n line: {\n style: {\n stroke: styleSheet.annotationLineBorderColor,\n lineWidth: styleSheet.annotationLineBorder,\n },\n length: styleSheet.annotationDataMarkerLineLength,\n },\n text: {\n style: {\n textAlign: 'start',\n fill: styleSheet.annotationTextFillColor,\n stroke: styleSheet.annotationTextBorderColor,\n lineWidth: styleSheet.annotationTextBorder,\n fontSize: styleSheet.annotationTextFontSize,\n fontFamily: styleSheet.fontFamily,\n },\n },\n direction: 'upward',\n autoAdjust: true,\n animate: true,\n },\n dataRegion: {\n style: {\n region: {\n fill: styleSheet.annotationRegionFillColor,\n fillOpacity: styleSheet.annotationRegionFillOpacity,\n },\n text: {\n textAlign: 'center',\n textBaseline: 'bottom',\n fill: styleSheet.annotationTextFillColor,\n stroke: styleSheet.annotationTextBorderColor,\n lineWidth: styleSheet.annotationTextBorder,\n fontSize: styleSheet.annotationTextFontSize,\n fontFamily: styleSheet.fontFamily,\n },\n },\n animate: true,\n },\n },\n slider: {\n common: {\n padding: [8, 8, 8, 8],\n backgroundStyle: {\n fill: styleSheet.cSliderBackgroundFillColor,\n opacity: styleSheet.cSliderBackgroundFillOpacity,\n },\n foregroundStyle: {\n fill: styleSheet.cSliderForegroundFillColor,\n opacity: styleSheet.cSliderForegroundFillOpacity,\n },\n handlerStyle: {\n width: styleSheet.cSliderHandlerWidth,\n height: styleSheet.cSliderHandlerHeight,\n fill: styleSheet.cSliderHandlerFillColor,\n opacity: styleSheet.cSliderHandlerFillOpacity,\n stroke: styleSheet.cSliderHandlerBorderColor,\n lineWidth: styleSheet.cSliderHandlerBorder,\n radius: styleSheet.cSliderHandlerBorderRadius,\n // 高亮的颜色\n highLightFill: styleSheet.cSliderHandlerHighlightFillColor,\n },\n textStyle: {\n fill: styleSheet.cSliderTextFillColor,\n opacity: styleSheet.cSliderTextFillOpacity,\n fontSize: styleSheet.cSliderTextFontSize,\n lineHeight: styleSheet.cSliderTextLineHeight,\n fontWeight: styleSheet.cSliderTextFontWeight,\n stroke: styleSheet.cSliderTextBorderColor,\n lineWidth: styleSheet.cSliderTextBorder,\n },\n },\n },\n scrollbar: {\n common: {\n padding: [8, 8, 8, 8],\n },\n default: {\n style: {\n trackColor: styleSheet.scrollbarTrackFillColor,\n thumbColor: styleSheet.scrollbarThumbFillColor,\n },\n },\n hover: {\n style: {\n thumbColor: styleSheet.scrollbarThumbHighlightFillColor,\n },\n },\n },\n },\n labels: {\n offset: 12,\n style: {\n fill: styleSheet.labelFillColor,\n fontSize: styleSheet.labelFontSize,\n fontFamily: styleSheet.fontFamily,\n stroke: styleSheet.labelBorderColor,\n lineWidth: styleSheet.labelBorder,\n },\n fillColorDark: styleSheet.labelFillColorDark,\n fillColorLight: styleSheet.labelFillColorLight,\n autoRotate: true,\n },\n innerLabels: {\n style: {\n fill: styleSheet.innerLabelFillColor,\n fontSize: styleSheet.innerLabelFontSize,\n fontFamily: styleSheet.fontFamily,\n stroke: styleSheet.innerLabelBorderColor,\n lineWidth: styleSheet.innerLabelBorder,\n },\n autoRotate: true,\n },\n overflowLabels: {\n style: {\n fill: styleSheet.overflowLabelFillColor,\n fontSize: styleSheet.overflowLabelFontSize,\n fontFamily: styleSheet.fontFamily,\n stroke: styleSheet.overflowLabelBorderColor,\n lineWidth: styleSheet.overflowLabelBorder,\n },\n },\n pieLabels: {\n labelHeight: 14,\n offset: 10,\n labelLine: {\n style: {\n lineWidth: styleSheet.labelLineBorder,\n },\n },\n autoRotate: true,\n },\n };\n}\n","import { StyleSheetCfg } from '../../interface';\n\nconst BLACK_COLORS = {\n 100: '#000',\n 95: '#0D0D0D',\n 85: '#262626',\n 65: '#595959',\n 45: '#8C8C8C',\n 25: '#BFBFBF',\n 15: '#D9D9D9',\n 6: '#F0F0F0',\n};\n\nconst WHITE_COLORS = {\n 100: '#FFFFFF',\n 95: '#F2F2F2',\n 85: '#D9D9D9',\n 65: '#A6A6A6',\n 45: '#737373',\n 25: '#404040',\n 15: '#262626',\n 6: '#0F0F0F',\n};\n\nconst QUALITATIVE_10 = [\n '#5B8FF9',\n '#5AD8A6',\n '#5D7092',\n '#F6BD16',\n '#6F5EF9',\n '#6DC8EC',\n '#945FB9',\n '#FF9845',\n '#1E9493',\n '#FF99C3',\n];\n\nconst QUALITATIVE_20 = [\n '#5B8FF9',\n '#CDDDFD',\n '#5AD8A6',\n '#CDF3E4',\n '#5D7092',\n '#CED4DE',\n '#F6BD16',\n '#FCEBB9',\n '#6F5EF9',\n '#D3CEFD',\n '#6DC8EC',\n '#D3EEF9',\n '#945FB9',\n '#DECFEA',\n '#FF9845',\n '#FFE0C7',\n '#1E9493',\n '#BBDEDE',\n '#FF99C3',\n '#FFE0ED',\n];\n\n/** 单色顺序色板 */\nconst SINGLE_SEQUENCE = [\n '#B8E1FF',\n '#9AC5FF',\n '#7DAAFF',\n '#5B8FF9',\n '#3D76DD',\n '#085EC0',\n '#0047A5',\n '#00318A',\n '#001D70',\n];\n\nexport const createLightStyleSheet = (cfg: StyleSheetCfg = {}) => {\n const {\n backgroundColor = 'transparent',\n subColor = 'rgba(0,0,0,0.05)',\n paletteQualitative10 = QUALITATIVE_10,\n paletteQualitative20 = QUALITATIVE_20,\n paletteSemanticRed = '#F4664A',\n paletteSemanticGreen = '#30BF78',\n paletteSemanticYellow = '#FAAD14',\n paletteSequence = SINGLE_SEQUENCE,\n fontFamily = `\"Segoe UI\", Roboto, \"Helvetica Neue\", Arial,\n \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\",\n \"Noto Color Emoji\"`,\n } = cfg;\n const { brandColor = paletteQualitative10[0] } = cfg;\n\n return {\n /** 图表背景色 */\n backgroundColor,\n /** 主题色 */\n brandColor,\n /** 图表辅助色 */\n subColor,\n /** 分类色板 1,在数据量小于等于 10 时使用 */\n paletteQualitative10,\n /** 分类色板 2,在数据量大于 10 时使用 */\n paletteQualitative20,\n /** 语义色 */\n paletteSemanticRed,\n /** 语义色 */\n paletteSemanticGreen,\n /** 语义色 */\n paletteSemanticYellow,\n /** (单色)顺序色板 */\n paletteSequence,\n /** 字体 */\n fontFamily,\n\n // -------------------- 坐标轴 --------------------\n /** 坐标轴线颜色 */\n axisLineBorderColor: BLACK_COLORS[25],\n /** 坐标轴线粗细 */\n axisLineBorder: 1,\n /** 坐标轴线 lineDash 设置 */\n axisLineDash: null,\n\n /** 坐标轴标题颜色 */\n axisTitleTextFillColor: BLACK_COLORS[65],\n /** 坐标轴标题文本字体大小 */\n axisTitleTextFontSize: 12,\n /** 坐标轴标题文本行高 */\n axisTitleTextLineHeight: 12,\n /** 坐标轴标题文本字体粗细 */\n axisTitleTextFontWeight: 'normal',\n /** 坐标轴标题距离坐标轴文本的间距 */\n axisTitleSpacing: 12,\n\n /** 坐标轴刻度线颜色 */\n axisTickLineBorderColor: BLACK_COLORS[25],\n /** 坐标轴刻度线长度 */\n axisTickLineLength: 4,\n /** 坐标轴刻度线粗细 */\n axisTickLineBorder: 1,\n\n /** 坐标轴次刻度线颜色 */\n axisSubTickLineBorderColor: BLACK_COLORS[15],\n /** 坐标轴次刻度线长度 */\n axisSubTickLineLength: 2,\n /** 坐标轴次刻度线粗细 */\n axisSubTickLineBorder: 1,\n\n /** 坐标轴刻度文本颜色 */\n axisLabelFillColor: BLACK_COLORS[45],\n /** 坐标轴刻度文本字体大小 */\n axisLabelFontSize: 12,\n /** 坐标轴刻度文本行高 */\n axisLabelLineHeight: 12,\n /** 坐标轴刻度文本字体粗细 */\n axisLabelFontWeight: 'normal',\n /** 坐标轴刻度文本距离坐标轴线的间距 */\n axisLabelOffset: 8,\n\n /** 坐标轴网格线颜色 */\n axisGridBorderColor: BLACK_COLORS[15],\n /** 坐标轴网格线粗细 */\n axisGridBorder: 1,\n /** 坐标轴网格线虚线设置 */\n axisGridLineDash: null,\n\n // -------------------- 图例 --------------------\n /** 图例标题颜色 */\n legendTitleTextFillColor: BLACK_COLORS[45],\n /** 图例标题文本字体大小 */\n legendTitleTextFontSize: 12,\n /** 图例标题文本行高 */\n legendTitleTextLineHeight: 21,\n /** 图例标题文本字体粗细 */\n legendTitleTextFontWeight: 'normal',\n\n /** 图例 marker 颜色 */\n legendMarkerColor: brandColor,\n /** 图例 marker 距离图例文本的间距 */\n legendMarkerSpacing: 8,\n /** 图例 marker 默认半径大小 */\n legendMarkerSize: 4,\n /** 图例 'circle' marker 半径 */\n legendCircleMarkerSize: 4,\n /** 图例 'square' marker 半径 */\n legendSquareMarkerSize: 4,\n /** 图例 'line' marker 半径 */\n legendLineMarkerSize: 5,\n\n /** 图例项文本颜色 */\n legendItemNameFillColor: BLACK_COLORS[65],\n /** 图例项文本字体大小 */\n legendItemNameFontSize: 12,\n /** 图例项文本行高 */\n legendItemNameLineHeight: 12,\n /** 图例项粗细 */\n legendItemNameFontWeight: 'normal',\n /** 图例项之间的水平间距 */\n legendItemSpacing: 24,\n /** 图例项垂直方向的间隔 */\n legendItemMarginBottom: 12,\n /** 图例与图表绘图区域的偏移距离 */\n legendPadding: [8, 8, 8, 8],\n /** 水平布局的图例与绘图区域偏移距离 */\n legendHorizontalPadding: [8, 0, 8, 0],\n /** 垂直布局的图例与绘图区域偏移距离 */\n legendVerticalPadding: [0, 8, 0, 8],\n\n // 图例分页器\n /** 图例分页器 marker 大小 */\n legendPageNavigatorMarkerSize: 12,\n /** 图例分页器 marker 非激活状态填充色 */\n legendPageNavigatorMarkerInactiveFillColor: BLACK_COLORS[100],\n /** 图例分页器 marker 非激活状态填充色透明度 */\n legendPageNavigatorMarkerInactiveFillOpacity: 0.45,\n /** 图例分页器 marker 填充色 */\n legendPageNavigatorMarkerFillColor: BLACK_COLORS[100],\n /** 图例分页器 marker 填充色透明度 */\n legendPageNavigatorMarkerFillOpacity: 1,\n /** 图例分页器文本颜色 */\n legendPageNavigatorTextFillColor: BLACK_COLORS[45],\n /** 图例分页器文本字体大小 */\n legendPageNavigatorTextFontSize: 12,\n\n /** 连续图例滑块填充色 */\n sliderRailFillColor: BLACK_COLORS[15],\n /** 连续图例滑块边框粗细 */\n sliderRailBorder: 0,\n /** 连续图例滑块边框颜色 */\n sliderRailBorderColor: null,\n /** 连续图例滑块宽度 */\n sliderRailWidth: 100,\n /** 连续图例滑块高度 */\n sliderRailHeight: 12,\n\n /** 连续图例文本颜色 */\n sliderLabelTextFillColor: BLACK_COLORS[45],\n /** 连续图例文本字体大小 */\n sliderLabelTextFontSize: 12,\n /** 连续图例文本行高 */\n sliderLabelTextLineHeight: 12,\n /** 连续图例文本字体粗细 */\n sliderLabelTextFontWeight: 'normal',\n\n /** 连续图例滑块颜色 */\n sliderHandlerFillColor: BLACK_COLORS[6],\n /** 连续图例滑块宽度 */\n sliderHandlerWidth: 10,\n /** 连续图例滑块高度 */\n sliderHandlerHeight: 14,\n /** 连续图例滑块边框粗细 */\n sliderHandlerBorder: 1,\n /** 连续图例滑块边框颜色 */\n sliderHandlerBorderColor: BLACK_COLORS[25],\n\n // -------------------- Annotation,图形标注 --------------------\n /** arc 图形标注描边颜色 */\n annotationArcBorderColor: BLACK_COLORS[15],\n /** arc 图形标注粗细 */\n annotationArcBorder: 1,\n\n /** line 图形标注颜色 */\n annotationLineBorderColor: BLACK_COLORS[25],\n /** line 图形标注粗细 */\n annotationLineBorder: 1,\n /** lube 图形标注的虚线间隔 */\n annotationLineDash: null,\n\n /** text 图形标注文本颜色 */\n annotationTextFillColor: BLACK_COLORS[65],\n /** text 图形标注文本字体大小 */\n annotationTextFontSize: 12,\n /** text 图形标注文本行高 */\n annotationTextLineHeight: 12,\n /** text 图形标注文本字体粗细 */\n annotationTextFontWeight: 'normal',\n /** text 图形标注文本边框颜色 */\n annotationTextBorderColor: null,\n /** text 图形标注文本边框粗细 */\n annotationTextBorder: 0,\n\n /** region 图形标注填充颜色 */\n annotationRegionFillColor: BLACK_COLORS[100],\n /** region 图形标注填充颜色透明色 */\n annotationRegionFillOpacity: 0.06,\n /** region 图形标注描边粗细 */\n annotationRegionBorder: 0,\n /** region 图形标注描边颜色 */\n annotationRegionBorderColor: null,\n\n /** dataMarker 图形标注线的长度 */\n annotationDataMarkerLineLength: 16,\n\n // -------------------- Tooltip --------------------\n /** tooltip crosshairs 辅助线颜色 */\n tooltipCrosshairsBorderColor: BLACK_COLORS[25],\n /** tooltip crosshairs 辅助线粗细 */\n tooltipCrosshairsBorder: 1,\n /** tooltip crosshairs 辅助线虚线间隔 */\n tooltipCrosshairsLineDash: null,\n\n /** tooltip 内容框背景色 */\n tooltipContainerFillColor: 'rgb(255, 255, 255)',\n tooltipContainerFillOpacity: 0.95,\n /** tooltip 内容框阴影 */\n tooltipContainerShadow: '0px 0px 10px #aeaeae',\n /** tooltip 内容框圆角 */\n tooltipContainerBorderRadius: 3,\n\n /** tooltip 文本颜色 */\n tooltipTextFillColor: BLACK_COLORS[65],\n /** tooltip 文本字体大小 */\n tooltipTextFontSize: 12,\n /** tooltip 文本行高 */\n tooltipTextLineHeight: 12,\n /** tooltip 文本字体粗细 */\n tooltipTextFontWeight: 'bold',\n\n // -------------------- Geometry labels --------------------\n /** Geometry label 文本颜色 */\n labelFillColor: BLACK_COLORS[65],\n labelFillColorDark: '#2c3542',\n labelFillColorLight: '#ffffff',\n /** Geometry label 文本字体大小 */\n labelFontSize: 12,\n /** Geometry label 文本行高 */\n labelLineHeight: 12,\n /** Geometry label 文本字体粗细 */\n labelFontWeight: 'normal',\n /** Geometry label 文本描边颜色 */\n labelBorderColor: null,\n /** Geometry label 文本描边粗细 */\n labelBorder: 0,\n\n /** Geometry innerLabel 文本颜色 */\n innerLabelFillColor: WHITE_COLORS[100],\n /** Geometry innerLabel 文本字体大小 */\n innerLabelFontSize: 12,\n /** Geometry innerLabel 文本行高 */\n innerLabelLineHeight: 12,\n /** Geometry innerLabel 文本字体粗细 */\n innerLabelFontWeight: 'normal',\n /** Geometry innerLabel 文本描边颜色 */\n innerLabelBorderColor: null,\n /** Geometry innerLabel 文本描边粗细 */\n innerLabelBorder: 0,\n\n /** Geometry overflowLabel 文本颜色 */\n overflowLabelFillColor: BLACK_COLORS[65],\n /** Geometry overflowLabel 文本字体大小 */\n overflowLabelFontSize: 12,\n /** Geometry overflowLabel 文本行高 */\n overflowLabelLineHeight: 12,\n /** Geometry overflowLabel 文本字体粗细 */\n overflowLabelFontWeight: 'normal',\n /** Geometry overflowLabel 文本描边颜色 */\n overflowLabelBorderColor: WHITE_COLORS[100],\n /** Geometry overflowLabel 文本描边粗细 */\n overflowLabelBorder: 1,\n\n /** Geometry label 文本连接线粗细 */\n labelLineBorder: 1,\n /** Geometry label 文本连接线颜色 */\n labelLineBorderColor: BLACK_COLORS[25],\n\n // -------------------- Slider 组件样式--------------------\n /** slider 滑道高度 */\n cSliderRailHieght: 16,\n /** slider 滑道背景色 */\n cSliderBackgroundFillColor: '#416180',\n /** slider 滑道背景色透明度 */\n cSliderBackgroundFillOpacity: 0.05,\n /** slider 滑道前景色 */\n cSliderForegroundFillColor: '#5B8FF9',\n /** slider 滑道前景色透明度 */\n cSliderForegroundFillOpacity: 0.15,\n // slider handlerStyle 手柄样式\n /** slider 手柄高度 */\n cSliderHandlerHeight: 24,\n /** Slider 手柄宽度 */\n cSliderHandlerWidth: 10,\n /** Slider 手柄背景色 */\n cSliderHandlerFillColor: '#F7F7F7',\n /** Slider 手柄背景色透明度 */\n cSliderHandlerFillOpacity: 1,\n /** Slider 手柄高亮背景色 */\n cSliderHandlerHighlightFillColor: '#FFF',\n /** Slider 手柄边框色 */\n cSliderHandlerBorderColor: '#BFBFBF',\n /** Slider 手柄边框粗细 */\n cSliderHandlerBorder: 1,\n /** Slider 手柄边框圆角 */\n cSliderHandlerBorderRadius: 2,\n // slider textStyle 字体标签样式\n /** Slider 字体标签颜色 */\n cSliderTextFillColor: '#000',\n /** Slider 字体标签透明度 */\n cSliderTextFillOpacity: 0.45,\n /** Slider 字体标签大小 */\n cSliderTextFontSize: 12,\n /** Slider 字体标签行高 */\n cSliderTextLineHeight: 12,\n /** Slider 字体标签字重 */\n cSliderTextFontWeight: 'normal',\n /** Slider 字体标签描边色 */\n cSliderTextBorderColor: null,\n /** Slider 字体标签描边粗细 */\n cSliderTextBorder: 0,\n\n // -------------------- Scrollbar 组件样式--------------------\n /** 滚动条 滚道填充色 */\n scrollbarTrackFillColor: 'rgba(0,0,0,0)',\n /** 滚动条 滑块填充色 */\n scrollbarThumbFillColor: 'rgba(0,0,0,0.15)',\n /** 滚动条 滑块高亮填充色 */\n scrollbarThumbHighlightFillColor: 'rgba(0,0,0,0.2)',\n\n // -------------------- Geometry 图形样式--------------------\n /** 点图填充颜色 */\n pointFillColor: brandColor,\n /** 点图填充颜色透明度 */\n pointFillOpacity: 0.95,\n /** 点图大小 */\n pointSize: 4,\n /** 点图描边粗细 */\n pointBorder: 1,\n /** 点图描边颜色 */\n pointBorderColor: WHITE_COLORS[100],\n /** 点图描边透明度 */\n pointBorderOpacity: 1,\n\n /** 点图 active 状态下描边颜色 */\n pointActiveBorderColor: BLACK_COLORS[100],\n\n /** 点图 selected 状态下描边粗细 */\n pointSelectedBorder: 2,\n /** 点图 selected 状态下描边颜色 */\n pointSelectedBorderColor: BLACK_COLORS[100],\n\n /** 点图 inactive 状态下填充颜色透明度 */\n pointInactiveFillOpacity: 0.3,\n /** 点图 inactive 状态下描边透明度 */\n pointInactiveBorderOpacity: 0.3,\n\n /** 空心点图大小 */\n hollowPointSize: 4,\n /** 空心点图描边粗细 */\n hollowPointBorder: 1,\n /** 空心点图描边颜色 */\n hollowPointBorderColor: brandColor,\n /** 空心点图描边透明度 */\n hollowPointBorderOpacity: 0.95,\n hollowPointFillColor: WHITE_COLORS[100],\n\n /** 空心点图 active 状态下描边粗细 */\n hollowPointActiveBorder: 1,\n /** 空心点图 active 状态下描边颜色 */\n hollowPointActiveBorderColor: BLACK_COLORS[100],\n /** 空心点图 active 状态下描边透明度 */\n hollowPointActiveBorderOpacity: 1,\n\n /** 空心点图 selected 状态下描边粗细 */\n hollowPointSelectedBorder: 2,\n /** 空心点图 selected 状态下描边颜色 */\n hollowPointSelectedBorderColor: BLACK_COLORS[100],\n /** 空心点图 selected 状态下描边透明度 */\n hollowPointSelectedBorderOpacity: 1,\n\n /** 空心点图 inactive 状态下描边透明度 */\n hollowPointInactiveBorderOpacity: 0.3,\n\n /** 线图粗细 */\n lineBorder: 2,\n /** 线图颜色 */\n lineBorderColor: brandColor,\n /** 线图透明度 */\n lineBorderOpacity: 1,\n\n /** 线图 Active 状态下粗细 */\n lineActiveBorder: 3,\n\n /** 线图 selected 状态下粗细 */\n lineSelectedBorder: 3,\n\n /** 线图 inactive 状态下透明度 */\n lineInactiveBorderOpacity: 0.3,\n\n /** area 填充颜色 */\n areaFillColor: brandColor,\n /** area 填充透明度 */\n areaFillOpacity: 0.25,\n\n /** area 在 active 状态下的填充透明度 */\n areaActiveFillColor: brandColor,\n areaActiveFillOpacity: 0.5,\n\n /** area 在 selected 状态下的填充透明度 */\n areaSelectedFillColor: brandColor,\n areaSelectedFillOpacity: 0.5,\n\n /** area inactive 状态下填充透明度 */\n areaInactiveFillOpacity: 0.3,\n\n /** hollowArea 颜色 */\n hollowAreaBorderColor: brandColor,\n /** hollowArea 边框粗细 */\n hollowAreaBorder: 2,\n /** hollowArea 边框透明度 */\n hollowAreaBorderOpacity: 1,\n\n /** hollowArea active 状态下的边框粗细 */\n hollowAreaActiveBorder: 3,\n hollowAreaActiveBorderColor: BLACK_COLORS[100],\n\n /** hollowArea selected 状态下的边框粗细 */\n hollowAreaSelectedBorder: 3,\n hollowAreaSelectedBorderColor: BLACK_COLORS[100],\n\n /** hollowArea inactive 状态下的边框透明度 */\n hollowAreaInactiveBorderOpacity: 0.3,\n\n /** interval 填充颜色 */\n intervalFillColor: brandColor,\n /** interval 填充透明度 */\n intervalFillOpacity: 0.95,\n\n /** interval active 状态下边框粗细 */\n intervalActiveBorder: 1,\n /** interval active 状态下边框颜色 */\n intervalActiveBorderColor: BLACK_COLORS[100],\n intervalActiveBorderOpacity: 1,\n\n /** interval selected 状态下边框粗细 */\n intervalSelectedBorder: 2,\n /** interval selected 状态下边框颜色 */\n intervalSelectedBorderColor: BLACK_COLORS[100],\n /** interval selected 状态下边框透明度 */\n intervalSelectedBorderOpacity: 1,\n\n /** interval inactive 状态下边框透明度 */\n intervalInactiveBorderOpacity: 0.3,\n /** interval inactive 状态下填充透明度 */\n intervalInactiveFillOpacity: 0.3,\n\n /** interval 边框粗细 */\n hollowIntervalBorder: 2,\n /** hollowInterval 边框颜色 */\n hollowIntervalBorderColor: brandColor,\n /** hollowInterval 边框透明度 */\n hollowIntervalBorderOpacity: 1,\n hollowIntervalFillColor: WHITE_COLORS[100],\n\n /** hollowInterval active 状态下边框粗细 */\n hollowIntervalActiveBorder: 2,\n /** hollowInterval active 状态下边框颜色 */\n hollowIntervalActiveBorderColor: BLACK_COLORS[100],\n\n /** hollowInterval selected 状态下边框粗细 */\n hollowIntervalSelectedBorder: 3,\n /** hollowInterval selected 状态下边框颜色 */\n hollowIntervalSelectedBorderColor: BLACK_COLORS[100],\n /** hollowInterval selected 状态下边框透明度 */\n hollowIntervalSelectedBorderOpacity: 1,\n\n /** hollowInterval inactive 状态下边框透明度 */\n hollowIntervalInactiveBorderOpacity: 0.3,\n };\n};\n\nexport const antvLight = createLightStyleSheet();\n","import { deepMix } from '@antv/util';\nimport { createThemeByStyleSheet } from './create-by-style-sheet';\nimport { createLightStyleSheet } from '../style-sheet/light';\nimport { LooseObject, StyleSheetCfg } from '../../interface';\n\ninterface ThemeCfg extends LooseObject {\n styleSheet?: StyleSheetCfg;\n}\n\nexport function createTheme(themeCfg: ThemeCfg): LooseObject {\n const { styleSheet: styleSheetCfg = {}, ...themeObject } = themeCfg;\n\n // ① 创建样式表 (默认创建 light 的样式表)\n const styleSheet = createLightStyleSheet(styleSheetCfg);\n // ② 创建主题\n return deepMix({}, createThemeByStyleSheet(styleSheet), themeObject);\n}\n","import { get, lowerCase } from '@antv/util';\nimport { LooseObject } from '../interface';\n\nimport { createTheme } from './util';\n\nconst defaultTheme = createTheme({});\n\n// 所有已经存在的主题\nconst Themes: Record = {\n default: defaultTheme,\n};\n\n/**\n * 获取主题配置信息。\n * @param theme 主题名\n */\nexport function getTheme(theme?: string): LooseObject {\n return get(Themes, lowerCase(theme), Themes.default);\n}\n\n/**\n * 注册新的主题配置信息。\n * @param theme 主题名。\n * @param value 具体的主题配置。\n */\nexport function registerTheme(theme: string, value: LooseObject) {\n Themes[lowerCase(theme)] = createTheme(value);\n}\n","import {\n contains,\n filter,\n find,\n isArray,\n isEmpty,\n isFunction,\n isNil,\n isNumberEqual,\n isObject,\n memoize,\n get,\n values,\n} from '@antv/util';\nimport { View } from '../chart';\nimport { FIELD_ORIGIN, GROUP_ATTRS } from '../constant';\nimport { Attribute, Scale } from '../dependents';\nimport Geometry from '../geometry/base';\nimport { Data, Datum, MappingDatum, Point, TooltipCfg, TooltipTitle } from '../interface';\nimport { getName, inferScaleType } from './scale';\n\nfunction snapEqual(v1: any, v2: any, scale: Scale) {\n const value1 = scale.translate(v1);\n const value2 = scale.translate(v2);\n\n return isNumberEqual(value1, value2);\n}\n\nfunction getXValueByPoint(point: Point, geometry: Geometry): number {\n const coordinate = geometry.coordinate;\n const xScale = geometry.getXScale();\n const range = xScale.range;\n const rangeMax = range[range.length - 1];\n const rangeMin = range[0];\n\n const invertPoint = coordinate.invert(point);\n\n let xValue = invertPoint.x;\n if (coordinate.isPolar && xValue > (1 + rangeMax) / 2) {\n xValue = rangeMin; // 极坐标下,scale 的 range 被做过特殊处理\n }\n return xScale.translate(xScale.invert(xValue));\n}\n\nfunction filterYValue(data: Data, point: Point, geometry: Geometry) {\n const coordinate = geometry.coordinate;\n const yScale = geometry.getYScale();\n const yField = yScale.field;\n const invertPoint = coordinate.invert(point);\n const yValue = yScale.invert(invertPoint.y);\n\n const result = find(data, (obj: Datum) => {\n const originData = obj[FIELD_ORIGIN];\n return originData[yField][0] <= yValue && originData[yField][1] >= yValue;\n });\n return result || data[data.length - 1];\n}\n\nconst getXDistance = memoize((scale: Scale) => {\n if (scale.isCategory) {\n return 1;\n }\n const scaleValues = scale.values; // values 是无序的\n const length = scaleValues.length;\n let min = scale.translate(scaleValues[0]);\n let max = min;\n\n for (let index = 0; index < length; index++) {\n const value = scaleValues[index];\n // 时间类型需要 translate\n const numericValue = scale.translate(value);\n if (numericValue < min) {\n min = numericValue;\n }\n if (numericValue > max) {\n max = numericValue;\n }\n }\n return (max - min) / (length - 1);\n});\n\n/**\n * 获得 tooltip 的 title\n * @param originData\n * @param geometry\n * @param title\n */\nfunction getTooltipTitle(originData: Datum, geometry: Geometry, title: TooltipTitle): string {\n const positionAttr = geometry.getAttribute('position');\n const fields = positionAttr.getFields();\n const scales = geometry.scales;\n\n const titleField = isFunction(title) || !title ? fields[0] : title;\n const titleScale = scales[titleField];\n\n // 如果创建了该字段对应的 scale,则通过 scale.getText() 方式取值,因为用户可能对数据进行了格式化\n // 如果没有对应的 scale,则从原始数据中取值,如果原始数据中仍不存在,则直接放回 title 值\n const tooltipTitle = titleScale ? titleScale.getText(originData[titleField]) : originData[titleField] || titleField;\n\n return isFunction(title) ? title(tooltipTitle, originData) : tooltipTitle;\n}\n\nfunction getAttributesForLegend(geometry: Geometry) {\n const attributes = values(geometry.attributes);\n return filter(attributes, (attribute: Attribute) => contains(GROUP_ATTRS, attribute.type));\n}\n\nfunction getTooltipValueScale(geometry: Geometry) {\n const attributes = getAttributesForLegend(geometry);\n let scale;\n for (const attribute of attributes) {\n const tmpScale = attribute.getScale(attribute.type);\n if (tmpScale && tmpScale.isLinear) {\n const tmpScaleDef = get(geometry.scaleDefs, tmpScale.field);\n const inferedScaleType = inferScaleType(tmpScale, tmpScaleDef, attribute.type, geometry.type);\n if (inferedScaleType !== 'cat') {\n // 如果指定字段是非 position 的,同时是连续的\n scale = tmpScale;\n break;\n }\n }\n }\n\n const xScale = geometry.getXScale();\n const yScale = geometry.getYScale();\n\n return scale || yScale || xScale;\n}\n\nfunction getTooltipValue(originData: Datum, valueScale: Scale) {\n const field = valueScale.field;\n const value = originData[field];\n\n if (isArray(value)) {\n const texts = value.map((eachValue) => {\n return valueScale.getText(eachValue);\n });\n return texts.join('-');\n }\n return valueScale.getText(value);\n}\n\n// 根据原始数据获取 tooltip item 中 name 值\nfunction getTooltipName(originData: Datum, geometry: Geometry) {\n let nameScale: Scale;\n const groupScales = geometry.getGroupScales();\n if (groupScales.length) {\n // 如果存在分组类型,取第一个分组类型\n nameScale = groupScales[0];\n }\n if (nameScale) {\n const field = nameScale.field;\n return nameScale.getText(originData[field]);\n }\n\n const valueScale = getTooltipValueScale(geometry);\n return getName(valueScale);\n}\n\n/**\n * @ignore\n * Finds data from geometry by point\n * @param point canvas point\n * @param data an item of geometry.dataArray\n * @param geometry\n * @returns\n */\nexport function findDataByPoint(point: Point, data: MappingDatum[], geometry: Geometry) {\n if (data.length === 0) {\n return null;\n }\n\n const geometryType = geometry.type;\n const xScale = geometry.getXScale();\n const yScale = geometry.getYScale();\n\n const xField = xScale.field;\n const yField = yScale.field;\n\n let rst = null;\n\n // 热力图采用最小逼近策略查找 point 击中的数据\n if (geometryType === 'heatmap' || geometryType === 'point') {\n // 将 point 画布坐标转换为原始数据值\n const coordinate = geometry.coordinate;\n const invertPoint = coordinate.invert(point); // 转换成归一化的数据\n const x = xScale.invert(invertPoint.x); // 转换为原始值\n const y = yScale.invert(invertPoint.y); // 转换为原始值\n\n let min = Infinity;\n for (let index = 0; index < data.length; index++) {\n const obj = data[index];\n const originData = obj[FIELD_ORIGIN];\n const range = (originData[xField] - x) ** 2 + (originData[yField] - y) ** 2;\n if (range < min) {\n min = range;\n rst = obj;\n }\n }\n\n return rst;\n }\n\n // 其他 Geometry 类型按照 x 字段数据进行查找\n const first = data[0];\n let last = data[data.length - 1];\n const xValue = getXValueByPoint(point, geometry);\n const firstXValue = first[FIELD_ORIGIN][xField];\n const firstYValue = first[FIELD_ORIGIN][yField];\n const lastXValue = last[FIELD_ORIGIN][xField];\n const isYArray = yScale.isLinear && isArray(firstYValue); // 考虑 x 维度相同,y 是数组区间的情况\n\n // 如果 x 的值是数组\n if (isArray(firstXValue)) {\n for (let index = 0; index < data.length; index++) {\n const record = data[index];\n const originData = record[FIELD_ORIGIN];\n // xValue 在 originData[xField] 的数值区间内\n if (xScale.translate(originData[xField][0]) <= xValue && xScale.translate(originData[xField][1]) >= xValue) {\n if (isYArray) {\n // 层叠直方图场景,x 和 y 都是数组区间\n if (!isArray(rst)) {\n rst = [];\n }\n rst.push(record);\n } else {\n rst = record;\n break;\n }\n }\n }\n if (isArray(rst)) {\n rst = filterYValue(rst, point, geometry);\n }\n } else {\n let next;\n if (!xScale.isLinear && xScale.type !== 'timeCat') {\n // x 轴对应的数据为非线性以及非时间类型的数据采用遍历查找\n for (let index = 0; index < data.length; index++) {\n const record = data[index];\n const originData = record[FIELD_ORIGIN];\n if (snapEqual(originData[xField], xValue, xScale)) {\n if (isYArray) {\n if (!isArray(rst)) {\n rst = [];\n }\n rst.push(record);\n } else {\n rst = record;\n break;\n }\n } else if (xScale.translate(originData[xField]) <= xValue) {\n last = record;\n next = data[index + 1];\n }\n }\n\n if (isArray(rst)) {\n rst = filterYValue(rst, point, geometry);\n }\n } else {\n // x 轴对应的数据为线性以及时间类型,进行二分查找,性能更好\n if (\n (xValue > xScale.translate(lastXValue) || xValue < xScale.translate(firstXValue)) &&\n (xValue > xScale.max || xValue < xScale.min)\n ) {\n // 不在数据范围内\n return null;\n }\n\n let firstIdx = 0;\n let lastIdx = data.length - 1;\n let middleIdx;\n while (firstIdx <= lastIdx) {\n middleIdx = Math.floor((firstIdx + lastIdx) / 2);\n const item = data[middleIdx][FIELD_ORIGIN][xField];\n if (snapEqual(item, xValue, xScale)) {\n return data[middleIdx];\n }\n\n if (xScale.translate(item) <= xScale.translate(xValue)) {\n firstIdx = middleIdx + 1;\n last = data[middleIdx];\n next = data[middleIdx + 1];\n } else {\n if (lastIdx === 0) {\n last = data[0];\n }\n lastIdx = middleIdx - 1;\n }\n }\n }\n\n if (last && next) {\n // 计算最逼近的\n if (\n Math.abs(xScale.translate(last[FIELD_ORIGIN][xField]) - xValue) >\n Math.abs(xScale.translate(next[FIELD_ORIGIN][xField]) - xValue)\n ) {\n last = next;\n }\n }\n }\n\n const distance = getXDistance(geometry.getXScale()); // 每个分类间的平均间距\n if (!rst && Math.abs(xScale.translate(last[FIELD_ORIGIN][xField]) - xValue) <= distance / 2) {\n rst = last;\n }\n\n return rst;\n}\n\n/**\n * @ignore\n * Gets tooltip items\n * @param data\n * @param geometry\n * @param [title]\n * @returns\n */\nexport function getTooltipItems(\n data: MappingDatum,\n geometry: Geometry,\n title: TooltipTitle = '',\n showNil: boolean = false\n) {\n const originData = data[FIELD_ORIGIN];\n const tooltipTitle = getTooltipTitle(originData, geometry, title);\n const tooltipOption = geometry.tooltipOption;\n const { defaultColor } = geometry.theme;\n const items = [];\n let name;\n let value;\n\n function addItem(itemName, itemValue) {\n if (showNil || (!isNil(itemValue) && itemValue !== '')) {\n // 值为 null的时候,忽视\n const item = {\n title: tooltipTitle,\n data: originData, // 原始数据\n mappingData: data, // 映射后的数据\n name: itemName,\n value: itemValue,\n color: data.color || defaultColor,\n marker: true,\n };\n\n items.push(item);\n }\n }\n\n if (isObject(tooltipOption)) {\n const { fields, callback } = tooltipOption;\n if (callback) {\n // 用户定义了回调函数\n const callbackParams = fields.map((field: string) => {\n return data[FIELD_ORIGIN][field];\n });\n const cfg = callback(...callbackParams);\n const itemCfg = {\n data: data[FIELD_ORIGIN], // 原始数据\n mappingData: data, // 映射后的数据\n title: tooltipTitle,\n color: data.color || defaultColor,\n marker: true, // 默认展示 marker\n ...cfg,\n };\n\n items.push(itemCfg);\n } else {\n const scales = geometry.scales;\n for (const field of fields) {\n if (!isNil(originData[field])) {\n // 字段数据为null, undefined 时不显示\n const scale = scales[field];\n name = getName(scale);\n value = scale.getText(originData[field]);\n addItem(name, value);\n }\n }\n }\n } else {\n const valueScale = getTooltipValueScale(geometry);\n // 字段数据为null ,undefined时不显示\n value = getTooltipValue(originData, valueScale);\n name = getTooltipName(originData, geometry);\n addItem(name, value);\n }\n return items;\n}\n\nfunction getTooltipItemsByFindData(geometry: Geometry, point, title, tooltipCfg: TooltipCfg) {\n const { showNil } = tooltipCfg;\n const result = [];\n const dataArray = geometry.dataArray;\n if (!isEmpty(dataArray)) {\n geometry.sort(dataArray); // 先进行排序,便于 tooltip 查找\n for (const data of dataArray) {\n const record = findDataByPoint(point, data, geometry);\n if (record) {\n const elementId = geometry.getElementId(record);\n const element = geometry.elementsMap[elementId];\n if (geometry.type === 'heatmap' || element.visible) {\n // Heatmap 没有 Element\n // 如果图形元素隐藏了,怎不再 tooltip 上展示相关数据\n const items = getTooltipItems(record, geometry, title, showNil);\n if (items.length) {\n result.push(items);\n }\n }\n }\n }\n }\n\n return result;\n}\n\nfunction getTooltipItemsByHitShape(geometry, point, title, tooltipCfg: TooltipCfg) {\n const { showNil } = tooltipCfg;\n const result = [];\n const container = geometry.container;\n const shape = container.getShape(point.x, point.y);\n if (shape && shape.get('visible') && shape.get('origin')) {\n const mappingData = shape.get('origin').mappingData;\n const items = getTooltipItems(mappingData, geometry, title, showNil);\n if (items.length) {\n result.push(items);\n }\n }\n\n return result;\n}\n\n/**\n * 不进行递归查找\n */\nexport function findItemsFromView(view: View, point: Point, tooltipCfg: TooltipCfg) {\n const result = [];\n // 先从 view 本身查找\n const geometries = view.geometries;\n const { shared, title, reversed } = tooltipCfg;\n for (const geometry of geometries) {\n if (geometry.visible && geometry.tooltipOption !== false) {\n // geometry 可见同时未关闭 tooltip\n const geometryType = geometry.type;\n let tooltipItems;\n if (['point', 'edge', 'polygon'].includes(geometryType)) {\n // 始终通过图形拾取\n tooltipItems = getTooltipItemsByHitShape(geometry, point, title, tooltipCfg);\n } else if (['area', 'line', 'path', 'heatmap'].includes(geometryType)) {\n // 如果是 'area', 'line', 'path',始终通过数据查找方法查找 tooltip\n tooltipItems = getTooltipItemsByFindData(geometry, point, title, tooltipCfg);\n } else {\n if (shared !== false) {\n tooltipItems = getTooltipItemsByFindData(geometry, point, title, tooltipCfg);\n } else {\n tooltipItems = getTooltipItemsByHitShape(geometry, point, title, tooltipCfg);\n }\n }\n if (tooltipItems.length) {\n if (reversed) {\n tooltipItems.reverse();\n }\n // geometry 有可能会有多个 item,因为用户可以设置 geometry.tooltip('x*y*z')\n result.push(tooltipItems);\n }\n }\n }\n\n return result;\n}\n\nexport function findItemsFromViewRecurisive(view: View, point: Point, tooltipCfg: TooltipCfg) {\n let result = findItemsFromView(view, point, tooltipCfg);\n\n // 递归查找,并合并结果\n for (const childView of view.views) {\n result = result.concat(findItemsFromView(childView, point, tooltipCfg));\n }\n\n return result;\n}\n","import { isArray, isNumber } from '@antv/util';\nimport { Padding, ViewPadding } from '../interface';\n\n/**\n * @ignore\n * 是否是自动 padding\n * @param padding\n */\nexport function isAutoPadding(padding: ViewPadding): padding is 'auto' {\n return !isNumber(padding) && !isArray(padding);\n}\n\n/**\n * @ignore\n * padding 的解析逻辑\n * @param padding\n * @return [ top, right, bottom, left ]\n */\nexport function parsePadding(padding: number[] | number = 0): Padding {\n let paddingArray = isArray(padding) ? padding : [padding];\n\n switch (paddingArray.length) {\n case 0:\n paddingArray = [0, 0, 0, 0];\n break;\n case 1:\n paddingArray = new Array(4).fill(paddingArray[0]);\n break;\n case 2:\n paddingArray = [...paddingArray, ...paddingArray];\n break;\n case 3:\n paddingArray = [...paddingArray, paddingArray[1]];\n break;\n default:\n // 其他情况,只去四个\n paddingArray = paddingArray.slice(0, 4);\n break;\n }\n\n return paddingArray as [number, number, number, number];\n}\n","import { ControllerCtor } from './base';\n\nconst LOAD_COMPONENT_CONTROLLERS: Record = {};\n\n/**\n * 全局注册组件。\n * @param name 组件名称\n * @param plugin 注册的组件类\n * @returns void\n */\nexport function registerComponentController(name: string, plugin: ControllerCtor) {\n LOAD_COMPONENT_CONTROLLERS[name] = plugin;\n}\n\n/**\n * 删除全局组件。\n * @param name 组件名\n * @returns void\n */\nexport function unregisterComponentController(name: string) {\n delete LOAD_COMPONENT_CONTROLLERS[name];\n}\n\n/**\n * 获取以注册的组件名。\n * @returns string[] 返回已注册的组件名称\n */\nexport function getComponentControllerNames(): string[] {\n return Object.keys(LOAD_COMPONENT_CONTROLLERS);\n}\n\n/**\n * 根据组件名获取组件类。\n * @param name 组件名\n * @returns 返回组件类\n */\nexport function getComponentController(name: string): ControllerCtor {\n return LOAD_COMPONENT_CONTROLLERS[name];\n}\n","import { each, isNil, some } from '@antv/util';\nimport { Coordinate, getCoordinate, Point } from '../../dependents';\nimport { CoordinateOption } from '../../interface';\n\n/**\n * coordinate controller,职责:\n * 1. 创建实例\n * 2. 暂存配置\n */\nexport default class CoordinateController {\n private option: CoordinateOption;\n private coordinate: Coordinate;\n\n constructor(option?: CoordinateOption) {\n // 设置默认值,并存储配置\n this.option = this.wrapperOption(option);\n }\n\n /**\n * 更新配置\n * @param option\n */\n public update(option: CoordinateOption) {\n this.option = this.wrapperOption(option);\n return this;\n }\n\n /**\n * 是否存在某一个 action\n * @param actionName\n */\n public hasAction(actionName: string) {\n const { actions } = this.option;\n\n return some(actions, (action) => action[0] === actionName);\n }\n /**\n * 创建坐标系对象\n * @param start 起始位置\n * @param end 结束位置\n * @return 坐标系实例\n */\n public create(start: Point, end: Point) {\n const { type, cfg } = this.option;\n const isTheta = type === 'theta';\n\n // 1. 起始位置\n const props = {\n start,\n end,\n ...cfg,\n };\n\n // 2. 创建实例\n const C = getCoordinate(isTheta ? 'polar' : type);\n\n this.coordinate = new C(props);\n\n // @ts-ignore FIXME coordinate 包问题导致 type 不正确\n this.coordinate.type = type;\n\n // 3. 添加默认 action\n if (isTheta) {\n // 不存在 transpose,为其自动设置一个 action\n if (!this.hasAction('transpose')) {\n this.transpose();\n }\n }\n\n // 4. 执行 action\n this.execActions();\n\n return this.coordinate;\n }\n\n /**\n * 更新坐标系对象\n * @param start 起始位置\n * @param end 结束位置\n * @return 坐标系实例\n */\n public adjust(start: Point, end: Point) {\n this.coordinate.update({\n start,\n end,\n });\n\n // 更新坐标系大小的时候,需要:\n // 1. 重置 matrix\n // 2. 重新执行作用于 matrix 的 action\n this.coordinate.resetMatrix();\n this.execActions(['scale', 'rotate', 'translate']);\n\n return this.coordinate;\n }\n\n /**\n * 旋转弧度\n * @param angle\n */\n public rotate(angle: number) {\n this.option.actions.push(['rotate', angle]);\n return this;\n }\n\n /**\n * 镜像\n * @param dim\n */\n public reflect(dim: 'x' | 'y') {\n this.option.actions.push(['reflect', dim]);\n return this;\n }\n\n /**\n * scale\n * @param sx\n * @param sy\n */\n public scale(sx: number, sy: number) {\n this.option.actions.push(['scale', sx, sy]);\n return this;\n }\n\n /**\n * 对角变换\n */\n public transpose() {\n this.option.actions.push(['transpose']);\n return this;\n }\n\n /**\n * 获取配置\n */\n public getOption(): CoordinateOption {\n return this.option;\n }\n\n /**\n * 获得 coordinate 实例\n */\n public getCoordinate() {\n return this.coordinate;\n }\n\n /**\n * 包装配置的默认值\n * @param option\n */\n private wrapperOption(option: CoordinateOption): CoordinateOption {\n return {\n type: 'rect',\n actions: [],\n cfg: {},\n ...option,\n };\n }\n\n /**\n * coordinate 实例执行 actions\n * @params includeActions 如果没有指定,则执行全部,否则,执行指定的 action\n */\n private execActions(includeActions?: string[]) {\n const { actions } = this.option;\n\n each(actions, (action) => {\n const [actionName, ...args] = action;\n\n const shouldExec = isNil(includeActions) ? true : includeActions.includes(actionName);\n\n if (shouldExec) {\n this.coordinate[actionName](...args);\n }\n });\n }\n}\n","import { Event as GEvent, IShape } from '../dependents';\nimport { Datum } from '../interface';\nimport View from './view';\n\n/**\n * @todo Whether it can(or necessary to) keep consistent with the structure of G.Event or directly use the structure of G.Event\n * G2 事件的事件包装类,基于 G.Event\n */\nexport default class Event {\n /** 当前 target 归属的 view 实例 */\n public view: View;\n /** 被包装的原生 G 事件 */\n public gEvent: GEvent;\n /** 原始数据 */\n public data?: Datum;\n /** 事件类型 */\n public type: string;\n\n constructor(view: View, gEvent: GEvent, data?: Datum) {\n this.view = view;\n this.gEvent = gEvent;\n this.data = data;\n this.type = gEvent.type;\n }\n\n /**\n * 非交互产生的事件\n * @param view\n * @param type\n * @param data\n */\n public static fromData(view: View, type: string, data: Datum) {\n return new Event(view, new GEvent(type, {}), data);\n }\n\n // below props are proxy props of G.event convenient\n\n /** the real trigger shape of the event */\n public get target(): IShape {\n // @todo G 中事件定义为 object 不正确,这里先 ignore\n // @ts-ignore\n return this.gEvent.target;\n }\n\n /** 获取对应的 dom 原生时间 */\n public get event(): any {\n return this.gEvent.originalEvent;\n }\n\n /** x 画布坐标 */\n public get x(): number {\n return this.gEvent.x;\n }\n\n /** y 画布坐标 */\n public get y(): number {\n return this.gEvent.y;\n }\n\n /** x 窗口坐标 */\n public get clientX(): number {\n return this.gEvent.clientX;\n }\n\n /** y 窗口坐标 */\n public get clientY(): number {\n return this.gEvent.clientY;\n }\n // end for proxy events\n\n /**\n * event string\n * @returns string\n */\n public toString(): string {\n return `[Event (type=${this.type})]`;\n }\n\n /**\n * clone a new event with same attributes\n * @returns [[Event]]\n */\n public clone(): Event {\n return new Event(this.view, this.gEvent, this.data);\n }\n}\n","import { Controller } from '../controller/base';\nimport View from '../view';\n\n// 布局函数的定义\n// 布局函数的职责:根据 view 中组件信息,计算出最终的图形 padding 数值,以及最终各个组件的布局和位置\nexport type Layout = (view: View) => void;\n\n/**\n * @ignore\n * G2 默认提供的 layout 函数\n * 内置布局函数处理的逻辑:\n *\n * 1. 如果 padding = 'auto',那么自动根据组件的 direction 来计算 padding 数组\n * 2. 根据 padding 和 direction 去分配对应方向的 padding 数值\n * 3. 移动组件位置\n *\n * 前面 1,2 步骤在 view 中已经做掉了。对于组件响应式布局,可以尝试使用约束布局的方式去求解位置信息。\n * @param view\n */\nexport default function defaultLayout(view: View): void {\n const axis = view.getController('axis');\n const legend = view.getController('legend');\n const annotation = view.getController('annotation');\n const slider = view.getController('slider');\n const scrollbar = view.getController('scrollbar');\n\n // 根据最新的 coordinate 重新布局组件\n [axis, slider, scrollbar, legend, annotation].forEach((controller: Controller) => {\n if (controller) {\n controller.layout();\n }\n });\n}\n","/**\n * view 中缓存 scale 的类\n */\nimport { deepMix, each, get, isNumber, last } from '@antv/util';\nimport { Scale, Coordinate } from '../../dependents';\nimport { Data, LooseObject, ScaleOption, ViewCfg } from '../../interface';\nimport { createScaleByField, syncScale, getDefaultCategoryScaleRange } from '../../util/scale';\n\n/** @ignore */\ninterface ScaleMeta {\n readonly key: string;\n readonly scale: Scale;\n scaleDef: ScaleOption;\n syncKey?: string;\n}\n\n/** @ignore */\nexport class ScalePool {\n /** 所有的 scales */\n private scales = new Map();\n /** 需要同步的 scale 分组, key: scaleKeyArray */\n private syncScales = new Map();\n\n /**\n * 创建 scale\n * @param field\n * @param data\n * @param scaleDef\n * @param key\n */\n public createScale(field: string, data: Data, scaleDef: ScaleOption, key: string): Scale {\n let finalScaleDef = scaleDef;\n\n const cacheScaleMeta = this.getScaleMeta(key);\n if (data.length === 0 && cacheScaleMeta) {\n // 在更新过程中数据变为空,同时 key 对应的 scale 已存在则保持 scale 同类型\n const cacheScale = cacheScaleMeta.scale;\n const cacheScaleDef: LooseObject = {\n type: cacheScale.type,\n };\n if (cacheScale.isCategory) {\n // 如果是分类类型,保持 values\n cacheScaleDef.values = cacheScale.values;\n }\n finalScaleDef = deepMix(cacheScaleDef, cacheScaleMeta.scaleDef, scaleDef);\n }\n\n const scale = createScaleByField(field, data, finalScaleDef);\n\n // 缓存起来\n this.cacheScale(scale, scaleDef, key);\n\n return scale;\n }\n\n /**\n * 同步 scale\n */\n public sync(coordinate: Coordinate, theme: ViewCfg['theme']) {\n // 对于 syncScales 中每一个 syncKey 下面的 scale 数组进行同步处理\n this.syncScales.forEach((scaleKeys: string[], syncKey: string) => {\n // min, max, values, ranges\n let min = Number.MAX_SAFE_INTEGER;\n let max = Number.MIN_SAFE_INTEGER;\n const values = [];\n\n // 1. 遍历求得最大最小值,values 等\n each(scaleKeys, (key: string) => {\n const scale = this.getScale(key);\n\n max = isNumber(scale.max) ? Math.max(max, scale.max) : max;\n min = isNumber(scale.min) ? Math.min(min, scale.min) : min;\n\n // 去重\n each(scale.values, (v: any) => {\n if (!values.includes(v)) {\n values.push(v);\n }\n });\n });\n\n // 2. 同步\n each(scaleKeys, (key: string) => {\n const scale = this.getScale(key);\n\n if (scale.isContinuous) {\n scale.change({\n min,\n max,\n values,\n });\n } else if (scale.isCategory) {\n let range = scale.range;\n const cacheScaleMeta = this.getScaleMeta(key);\n\n // 存在 value 值,且用户没有配置 range 配置 to fix https://github.com/antvis/G2/issues/2996\n if (values && !get(cacheScaleMeta, ['scaleDef', 'range'])) {\n // 更新 range\n range = getDefaultCategoryScaleRange(\n deepMix({}, scale, {\n values,\n }),\n coordinate,\n theme\n );\n }\n scale.change({\n values,\n range,\n });\n }\n });\n });\n }\n\n /**\n * 缓存一个 scale\n * @param scale\n * @param scaleDef\n * @param key\n */\n private cacheScale(scale: Scale, scaleDef: ScaleOption, key: string) {\n // 1. 缓存到 scales\n\n let sm = this.getScaleMeta(key);\n // 存在则更新,同时检测类型是否一致\n if (sm && sm.scale.type === scale.type) {\n syncScale(sm.scale, scale);\n sm.scaleDef = scaleDef;\n // 更新 scaleDef\n } else {\n sm = {\n key,\n scale,\n scaleDef,\n };\n\n this.scales.set(key, sm);\n }\n\n // 2. 缓存到 syncScales,构造 Record 数据结构\n const syncKey = this.getSyncKey(sm);\n sm.syncKey = syncKey; // 设置 sync 同步的 key\n\n // 因为存在更新 scale 机制,所以在缓存之前,先从原 syncScales 中去除 sync 的缓存引用\n this.removeFromSyncScales(key);\n\n // 存在 sync 标记才进行 sync\n if (syncKey) {\n // 不存在这个 syncKey,则创建一个空数组\n let scaleKeys = this.syncScales.get(syncKey);\n if (!scaleKeys) {\n scaleKeys = [];\n this.syncScales.set(syncKey, scaleKeys);\n }\n scaleKeys.push(key);\n }\n }\n\n /**\n * 通过 key 获取 scale\n * @param key\n */\n public getScale(key: string): Scale {\n let scaleMeta = this.getScaleMeta(key);\n if (!scaleMeta) {\n const field = last(key.split('-'));\n const scaleKeys = this.syncScales.get(field);\n if (scaleKeys && scaleKeys.length) {\n scaleMeta = this.getScaleMeta(scaleKeys[0]);\n }\n }\n return scaleMeta && scaleMeta.scale;\n }\n\n /**\n * 在 view 销毁的时候,删除 scale 实例,防止内存泄露\n * @param key\n */\n public deleteScale(key: string) {\n const scaleMeta = this.getScaleMeta(key);\n if (scaleMeta) {\n const { syncKey } = scaleMeta;\n\n const scaleKeys = this.syncScales.get(syncKey);\n\n // 移除同步的关系\n if (scaleKeys && scaleKeys.length) {\n const idx = scaleKeys.indexOf(key);\n\n if (idx !== -1) {\n scaleKeys.splice(idx, 1);\n }\n }\n }\n\n // 删除 scale 实例\n this.scales.delete(key);\n }\n\n /**\n * 清空\n */\n public clear() {\n this.scales.clear();\n this.syncScales.clear();\n }\n\n /**\n * 删除 sync scale 引用\n * @param key\n */\n private removeFromSyncScales(key: string) {\n this.syncScales.forEach((scaleKeys: string[], syncKey: string) => {\n const idx = scaleKeys.indexOf(key);\n\n if (idx !== -1) {\n scaleKeys.splice(idx, 1);\n\n // 删除空数组值\n if (scaleKeys.length === 0) {\n this.syncScales.delete(syncKey);\n }\n\n return false; // 跳出循环\n }\n });\n }\n\n /**\n * get sync key\n * @param sm\n */\n private getSyncKey(sm: ScaleMeta): string {\n const { scale, scaleDef } = sm;\n const { field } = scale;\n const sync = get(scaleDef, ['sync']);\n\n // 如果 sync = true,则直接使用字段名作为 syncKey\n return sync === true ? field : sync === false ? undefined : sync;\n }\n\n /**\n * 通过 key 获取 scale\n * @param key\n */\n private getScaleMeta(key: string): ScaleMeta {\n return this.scales.get(key);\n }\n}\n","import { DIRECTION } from '../../constant';\nimport { BBox } from '../../dependents';\nimport { Padding } from '../../interface';\n\nexport type PaddingCalCtor = {\n readonly instance: (top?: number, right?: number, bottom?: number, left?: number) => PaddingCal;\n};\n\n/** @ignore */\nexport class PaddingCal {\n private top: number;\n private right: number;\n private bottom: number;\n private left: number;\n\n /**\n * 使用静态方法创建一个\n * @param top\n * @param right\n * @param bottom\n * @param left\n */\n public static instance(top: number = 0, right: number = 0, bottom: number = 0, left: number = 0) {\n return new PaddingCal(top, right, bottom, left);\n }\n\n /**\n * 初始的 padding 数据\n * @param top\n * @param right\n * @param bottom\n * @param left\n */\n constructor(top: number = 0, right: number = 0, bottom: number = 0, left: number = 0) {\n this.top = top;\n this.right = right;\n this.bottom = bottom;\n this.left = left;\n }\n\n /**\n * 取最大区间\n * @param padding\n */\n public max(padding: Padding): PaddingCal {\n const [top, right, bottom, left] = padding;\n\n this.top = Math.max(this.top, top);\n this.right = Math.max(this.right, right);\n this.bottom = Math.max(this.bottom, bottom);\n this.left = Math.max(this.left, left);\n\n return this;\n }\n\n /**\n * 四周增加 padding\n * @param padding\n */\n public shrink(padding: Padding): PaddingCal {\n const [top, right, bottom, left] = padding;\n\n this.top += top;\n this.right += right;\n this.bottom += bottom;\n this.left += left;\n\n return this;\n }\n\n /**\n * 在某一个方向增加 padding\n * @param bbox\n * @param direction\n */\n public inc(bbox: BBox, direction: DIRECTION): PaddingCal {\n const { width, height } = bbox;\n\n switch (direction) {\n case DIRECTION.TOP:\n case DIRECTION.TOP_LEFT:\n case DIRECTION.TOP_RIGHT:\n this.top += height;\n break;\n\n case DIRECTION.RIGHT:\n case DIRECTION.RIGHT_TOP:\n case DIRECTION.RIGHT_BOTTOM:\n this.right += width;\n break;\n\n case DIRECTION.BOTTOM:\n case DIRECTION.BOTTOM_LEFT:\n case DIRECTION.BOTTOM_RIGHT:\n this.bottom += height;\n break;\n\n case DIRECTION.LEFT:\n case DIRECTION.LEFT_TOP:\n case DIRECTION.LEFT_BOTTOM:\n this.left += width;\n break;\n default:\n break;\n }\n\n return this;\n }\n\n /**\n * 获得最终的 padding\n */\n public getPadding(): Padding {\n return [this.top, this.right, this.bottom, this.left];\n }\n\n /**\n * clone 一个 padding cal\n */\n public clone(): PaddingCal {\n return new PaddingCal(...this.getPadding());\n }\n}\n","import { each } from '@antv/util';\nimport { COMPONENT_TYPE } from '../../constant';\nimport { ComponentOption, Padding } from '../../interface';\nimport { BBox } from '../../util/bbox';\nimport { isAutoPadding, parsePadding } from '../../util/padding';\nimport View from '../view';\nimport { PaddingCal } from './padding-cal';\n\n/**\n * @ignore\n * 根据 view 中的组件,计算实际的 padding 数值\n * @param view\n */\nexport function calculatePadding(view: View): PaddingCal {\n const padding = view.padding;\n\n // 如果不是 auto padding,那么直接解析之后返回\n if (!isAutoPadding(padding)) {\n return new PaddingCal(...parsePadding(padding));\n }\n\n // 是 auto padding,根据组件的情况,来计算 padding\n const { viewBBox } = view;\n\n const paddingCal = new PaddingCal();\n\n const axisComponents = [];\n const paddingComponents = [];\n const otherComponents = [];\n\n each(view.getComponents(), (co: ComponentOption) => {\n const { type } = co;\n if (type === COMPONENT_TYPE.AXIS) {\n axisComponents.push(co);\n } else if ([COMPONENT_TYPE.LEGEND, COMPONENT_TYPE.SLIDER, COMPONENT_TYPE.SCROLLBAR].includes(type)) {\n paddingComponents.push(co);\n } else if (type !== COMPONENT_TYPE.GRID && type !== COMPONENT_TYPE.TOOLTIP) {\n otherComponents.push(co);\n }\n });\n\n // 进行坐标轴布局,应该是取 padding 的并集,而不是进行相加\n each(axisComponents, (co: ComponentOption) => {\n const { component } = co;\n const bboxObject = component.getLayoutBBox();\n const componentBBox = new BBox(bboxObject.x, bboxObject.y, bboxObject.width, bboxObject.height);\n\n const exceed = componentBBox.exceed(viewBBox);\n\n // 在对组件分组之后,先对 axis 进行处理,然后取最大的超出即可。\n paddingCal.max(exceed);\n });\n\n // 有 padding 的组件布局\n each(paddingComponents, (co: ComponentOption) => {\n const { component, direction } = co;\n const bboxObject = component.getLayoutBBox();\n const componentPadding: Padding = component.get('padding');\n const componentBBox = new BBox(bboxObject.x, bboxObject.y, bboxObject.width, bboxObject.height).expand(\n componentPadding\n );\n // 按照方向计算 padding\n paddingCal.inc(componentBBox, direction);\n });\n\n // 其他组件布局\n each(otherComponents, (co: ComponentOption) => {\n const { component, direction } = co;\n const bboxObject = component.getLayoutBBox();\n const componentBBox = new BBox(bboxObject.x, bboxObject.y, bboxObject.width, bboxObject.height);\n // 按照方向计算 padding\n paddingCal.inc(componentBBox, direction);\n });\n\n return paddingCal;\n}\n","import { PaddingCalCtor } from '../layout/padding-cal';\nimport { View } from '../view';\n\n/**\n * 默认的 syncViewPadding 逻辑\n * @param chart\n * @param views\n * @param PC: PaddingCalCtor\n */\nexport function defaultSyncViewPadding(chart: View, views: View[], PC: PaddingCalCtor) {\n const syncPadding = PC.instance();\n\n // 所有的 view 的 autoPadding 指向同一个引用\n views.forEach((v: View) => {\n v.autoPadding = syncPadding.max(v.autoPadding.getPadding());\n });\n}\n","import {\n clone,\n deepMix,\n each,\n filter,\n find,\n flatten,\n get,\n isBoolean,\n isFunction,\n isNil,\n isObject,\n isString,\n isUndefined,\n mix,\n remove,\n set,\n size,\n uniqueId,\n isEqual,\n isPlainObject,\n reduce,\n} from '@antv/util';\nimport { Attribute, Coordinate, Event as GEvent, GroupComponent, ICanvas, IGroup, IShape, Scale } from '../dependents';\nimport {\n AxisOption,\n ComponentOption,\n CoordinateCfg,\n CoordinateOption,\n Data,\n Datum,\n FacetCfgMap,\n FilterCondition,\n GeometryOption,\n LegendOption,\n LooseObject,\n Options,\n Point,\n Region,\n ScaleOption,\n TooltipOption,\n ViewCfg,\n ViewPadding,\n ViewAppendPadding,\n EventPayload,\n Padding,\n} from '../interface';\nimport { GROUP_Z_INDEX, LAYER, PLOT_EVENTS, VIEW_LIFE_CIRCLE } from '../constant';\nimport Base from '../base';\nimport { Facet, getFacet } from '../facet';\nimport Geometry from '../geometry/base';\nimport Element from '../geometry/element';\nimport { createInteraction, Interaction } from '../interaction';\nimport { getTheme } from '../theme';\nimport { BBox } from '../util/bbox';\nimport { getCoordinateClipCfg, isPointInCoordinate } from '../util/coordinate';\nimport { uniq } from '../util/helper';\nimport { findDataByPoint } from '../util/tooltip';\nimport { parsePadding } from '../util/padding';\nimport { getDefaultCategoryScaleRange } from '../util/scale';\nimport { createTheme } from '../theme/util';\nimport Chart from './chart';\nimport { getComponentController, getComponentControllerNames } from './controller';\nimport Annotation from './controller/annotation';\nimport { Controller } from './controller/base';\nimport CoordinateController from './controller/coordinate';\nimport Tooltip from './controller/tooltip';\nimport Slider from './controller/slider';\nimport Scrollbar from './controller/scrollbar';\nimport Axis from './controller/axis';\nimport Gesture from './controller/gesture';\nimport Legend from './controller/legend';\nimport Event from './event';\nimport defaultLayout, { Layout } from './layout';\nimport { ScalePool } from './util/scale-pool';\nimport { PaddingCal } from './layout/padding-cal';\nimport { calculatePadding } from './layout/auto';\nimport { defaultSyncViewPadding } from './util/sync-view-padding';\n\n/**\n * G2 视图 View 类\n */\nexport class View extends Base {\n /** view id,全局唯一。 */\n public id: string;\n /** 父级 view,如果没有父级,则为空。 */\n public parent: View;\n /** 所有的子 view。 */\n public views: View[] = [];\n /** 所有的 geometry 实例。 */\n public geometries: Geometry[] = [];\n /** 所有的组件 controllers。 */\n public controllers: Controller[] = [];\n /** 所有的 Interaction 实例。 */\n public interactions: Record = {};\n\n /** view 区域空间。 */\n public viewBBox: BBox;\n /** 坐标系的位置大小,ViewBBox - padding = coordinateBBox。 */\n public coordinateBBox: BBox;\n /** view 的 padding 大小,传入的配置(不是解析之后的值)。 */\n public padding: ViewPadding;\n /** padding的基础上增加的调整值 */\n public appendPadding: ViewAppendPadding;\n /** G.Canvas 实例。 */\n public canvas: ICanvas;\n /** 存储最终计算的 padding 结果 */\n public autoPadding: PaddingCal;\n\n /** 三层 Group 图形中的背景层。 */\n public backgroundGroup: IGroup;\n /** 三层 Group 图形中的中间层。 */\n public middleGroup: IGroup;\n /** 三层 Group 图形中的前景层。 */\n public foregroundGroup: IGroup;\n /** 是否对超出坐标系范围的 Geometry 进行剪切 */\n public limitInPlot: boolean = false;\n\n /**\n * 标记 view 的大小位置范围,均是 0 ~ 1 范围,便于开发者使用,起始点为左上角。\n */\n protected region: Region;\n /** 主题配置,存储当前主题配置。 */\n protected themeObject: LooseObject;\n\n // 配置信息存储\n protected options: Options = {\n data: [],\n animate: true, // 默认开启动画\n }; // 初始化为空\n\n /** 过滤之后的数据 */\n protected filteredData: Data;\n\n /** 配置开启的组件插件,默认为全局配置的组件。 */\n private usedControllers: string[] = getComponentControllerNames();\n\n /** 所有的 scales */\n private scalePool: ScalePool = new ScalePool();\n\n /** 布局函数 */\n protected layoutFunc: Layout = defaultLayout;\n /** 生成的坐标系实例,{@link https://github.com/antvis/coord/blob/master/src/coord/base.ts|Coordinate} */\n protected coordinateInstance: Coordinate;\n /** Coordinate 相关的控制器类,负责坐标系实例的创建、更新、变换等 */\n protected coordinateController: CoordinateController;\n /** 分面类实例 */\n protected facetInstance: Facet;\n\n /** 当前鼠标是否在 plot 内(CoordinateBBox) */\n private isPreMouseInPlot: boolean = false;\n /** 默认标识位,用于判定数据是否更新 */\n private isDataChanged: boolean = false;\n /** 用于判断坐标系范围是否发生变化的标志位 */\n private isCoordinateChanged: boolean = false;\n /** 从当前这个 view 创建的 scale key */\n private createdScaleKeys = new Map();\n /** 背景色样式的 shape */\n private backgroundStyleRectShape;\n /** 是否同步子 view 的 padding */\n private syncViewPadding;\n\n constructor(props: ViewCfg) {\n super({ visible: props.visible });\n\n const {\n id = uniqueId('view'),\n parent,\n canvas,\n backgroundGroup,\n middleGroup,\n foregroundGroup,\n region = { start: { x: 0, y: 0 }, end: { x: 1, y: 1 } },\n padding,\n appendPadding,\n theme,\n options,\n limitInPlot,\n syncViewPadding,\n } = props;\n\n this.parent = parent;\n this.canvas = canvas;\n this.backgroundGroup = backgroundGroup;\n this.middleGroup = middleGroup;\n this.foregroundGroup = foregroundGroup;\n this.region = region;\n this.padding = padding;\n this.appendPadding = appendPadding;\n // 接受父 view 传入的参数\n this.options = { ...this.options, ...options };\n this.limitInPlot = limitInPlot;\n this.id = id;\n this.syncViewPadding = syncViewPadding;\n\n // 初始化 theme\n this.themeObject = isObject(theme) ? deepMix({}, getTheme('default'), createTheme(theme)) : getTheme(theme);\n this.init();\n }\n\n /**\n * 设置 layout 布局函数\n * @param layout 布局函数\n * @returns void\n */\n public setLayout(layout: Layout) {\n this.layoutFunc = layout;\n }\n\n /**\n * 生命周期:初始化\n * @returns voids\n */\n public init() {\n // 计算画布的 viewBBox\n this.calculateViewBBox();\n\n // 事件委托机制\n this.initEvents();\n\n // 初始化组件 controller\n this.initComponentController();\n\n this.initOptions();\n }\n\n /**\n * 生命周期:渲染流程,渲染过程需要处理数据更新的情况。\n * render 函数仅仅会处理 view 和子 view。\n * @param isUpdate 是否触发更新流程。\n * @param params render 事件参数\n */\n public render(isUpdate: boolean = false, payload?: EventPayload) {\n this.emit(VIEW_LIFE_CIRCLE.BEFORE_RENDER, Event.fromData(this, VIEW_LIFE_CIRCLE.BEFORE_RENDER, payload));\n // 递归渲染\n this.paint(isUpdate);\n\n this.emit(VIEW_LIFE_CIRCLE.AFTER_RENDER, Event.fromData(this, VIEW_LIFE_CIRCLE.AFTER_RENDER, payload));\n\n if (this.visible === false) {\n // 用户在初始化的时候声明 visible: false\n this.changeVisible(false);\n }\n }\n\n /**\n * 生命周期:清空图表上所有的绘制内容,但是不销毁图表,chart 仍可使用。\n * @returns void\n */\n public clear() {\n this.emit(VIEW_LIFE_CIRCLE.BEFORE_CLEAR);\n // 1. 清空缓存和计算数据\n this.filteredData = [];\n this.coordinateInstance = undefined;\n this.isDataChanged = false; // 复位\n this.isCoordinateChanged = false; // 复位\n\n // 2. 清空 geometries\n const geometries = this.geometries;\n for (let i = 0; i < geometries.length; i++) {\n geometries[i].clear();\n // view 中使用 geometry 的时候,还需要清空它的容器,不然下一次 chart.geometry() 的时候,又创建了一个,导致泄露, #2799。\n geometries[i].container.remove(true);\n geometries[i].labelsContainer.remove(true);\n }\n this.geometries = [];\n\n // 3. 清空 controllers\n const controllers = this.controllers;\n for (let i = 0; i < controllers.length; i++) {\n if (controllers[i].name === 'annotation') {\n // 需要清空配置项\n (controllers[i] as Annotation).clear(true);\n } else {\n controllers[i].clear();\n }\n }\n\n // 4. 删除 scale 缓存\n this.createdScaleKeys.forEach((v: boolean, k: string) => {\n this.getRootView().scalePool.deleteScale(k);\n });\n this.createdScaleKeys.clear();\n\n // 递归处理子 view\n const views = this.views;\n for (let i = 0; i < views.length; i++) {\n views[i].clear();\n }\n\n this.emit(VIEW_LIFE_CIRCLE.AFTER_CLEAR);\n }\n\n /**\n * 生命周期:销毁,完全无法使用。\n * @returns void\n */\n public destroy() {\n // 销毁前事件,销毁之后已经没有意义了,所以不抛出事件\n this.emit(VIEW_LIFE_CIRCLE.BEFORE_DESTROY);\n const interactions = this.interactions;\n // 销毁 interactions\n each(interactions, (interaction) => {\n if (interaction) {\n // 有可能已经销毁,设置了 undefined\n interaction.destroy();\n }\n });\n\n this.clear();\n\n // 销毁 controller 中的组件\n const controllers = this.controllers;\n for (let i = 0, len = controllers.length; i < len; i++) {\n const controller = controllers[i];\n controller.destroy();\n }\n\n this.backgroundGroup.remove(true);\n this.middleGroup.remove(true);\n this.foregroundGroup.remove(true);\n\n super.destroy();\n }\n /* end 生命周期函数 */\n\n /**\n * 显示或者隐藏整个 view。\n * @param visible 是否可见\n * @returns View\n */\n public changeVisible(visible: boolean): View {\n super.changeVisible(visible);\n\n const geometries = this.geometries;\n for (let i = 0, len = geometries.length; i < len; i++) {\n const geometry = geometries[i];\n geometry.changeVisible(visible);\n }\n\n const controllers = this.controllers;\n for (let i = 0, len = controllers.length; i < len; i++) {\n const controller = controllers[i];\n controller.changeVisible(visible);\n }\n\n this.foregroundGroup.set('visible', visible);\n this.middleGroup.set('visible', visible);\n this.backgroundGroup.set('visible', visible);\n\n // group.set('visible', visible) 不会触发自动刷新\n this.getCanvas().draw();\n\n return this;\n }\n\n /**\n * 装载数据源。\n *\n * ```ts\n * view.data([{ city: '杭州', sale: 100 }, { city: '上海', sale: 110 } ]);\n * ```\n *\n * @param data 数据源,json 数组。\n * @returns View\n */\n public data(data: Data): View {\n set(this.options, 'data', data);\n this.isDataChanged = true;\n return this;\n }\n\n /**\n * @deprecated\n * This method will be removed at G2 V4.1. Replaced by {@link #data(data)}\n */\n public source(data: Data): View {\n console.warn('This method will be removed at G2 V4.1. Please use chart.data() instead.');\n return this.data(data);\n }\n\n /**\n * 设置数据筛选规则。\n *\n * ```ts\n * view.filter('city', (value: any, datum: Datum) => value !== '杭州');\n *\n * // 删除 'city' 字段对应的筛选规则。\n * view.filter('city', null);\n * ```\n *\n * @param field 数据字段\n * @param condition 筛选规则\n * @returns View\n */\n public filter(field: string, condition: FilterCondition | null): View {\n if (isFunction(condition)) {\n set(this.options, ['filters', field], condition);\n return this;\n }\n // condition 为空,则表示删除过滤条件\n if (!condition && get(this.options, ['filters', field])) {\n delete this.options.filters[field];\n }\n\n return this;\n }\n\n /**\n * 开启或者关闭坐标轴。\n *\n * ```ts\n * view.axis(false); // 不展示坐标轴\n * ```\n * @param field 坐标轴开关\n */\n public axis(field: boolean): View;\n /**\n * 对特定的某条坐标轴进行配置。\n *\n * @example\n * ```ts\n * view.axis('city', false); // 不展示 'city' 字段对应的坐标轴\n *\n * // 将 'city' 字段对应的坐标轴的标题隐藏\n * view.axis('city', {\n * title: null,\n * });\n * ```\n *\n * @param field 要配置的坐标轴对应的字段名称\n * @param axisOption 坐标轴具体配置,更详细的配置项可以参考:https://github.com/antvis/component#axis\n */\n public axis(field: string, axisOption: AxisOption): View;\n public axis(field: string | boolean, axisOption?: AxisOption): View {\n if (isBoolean(field)) {\n set(this.options, ['axes'], field);\n } else {\n set(this.options, ['axes', field], axisOption);\n }\n\n return this;\n }\n\n /**\n * 对图例进行整体配置。\n *\n * ```ts\n * view.legend(false); // 关闭图例\n *\n * view.legend({\n * position: 'right',\n * }); // 图例进行整体配置\n * ```\n * @param field\n * @returns View\n */\n public legend(field: LegendOption): View;\n /**\n * 对特定的图例进行配置。\n *\n * @example\n * ```ts\n * view.legend('city', false); // 关闭某个图例,通过数据字段名进行关联\n *\n * // 对特定的图例进行配置\n * view.legend('city', {\n * position: 'right',\n * });\n * ```\n *\n * @param field 图例对应的数据字段名称\n * @param legendOption 图例配置,更详细的配置项可以参考:https://github.com/antvis/component#axis\n * @returns View\n */\n public legend(field: string, legendOption: LegendOption): View;\n public legend(field: string | LegendOption, legendOption?: LegendOption): View {\n if (isBoolean(field)) {\n set(this.options, ['legends'], field);\n } else if (isString(field)) {\n set(this.options, ['legends', field], legendOption);\n if (isPlainObject(legendOption) && legendOption?.selected) {\n set(this.options, ['filters', field], (name: string) => {\n return legendOption?.selected[name] ?? true;\n });\n }\n } else {\n // 设置全局的 legend 配置\n set(this.options, ['legends'], field);\n }\n\n return this;\n }\n\n /**\n * 批量设置 scale 配置。\n *\n * ```ts\n * view.scale({\n * sale: {\n * min: 0,\n * max: 100,\n * }\n * });\n * ```\n * Scale 的详细配置项可以参考:https://github.com/antvis/scale#api\n * @returns View\n */\n public scale(field: Record): View;\n /**\n * 为特性的数据字段进行 scale 配置。\n *\n * ```ts\n * view.scale('sale', {\n * min: 0,\n * max: 100,\n * });\n * ```\n *\n * @returns View\n */\n public scale(field: string, scaleOption: ScaleOption): View;\n public scale(field: string | Record, scaleOption?: ScaleOption): View {\n if (isString(field)) {\n set(this.options, ['scales', field], scaleOption);\n } else if (isObject(field)) {\n each(field, (v: ScaleOption, k: string) => {\n set(this.options, ['scales', k], v);\n });\n }\n\n return this;\n }\n\n /**\n * tooltip 提示信息配置。\n *\n * ```ts\n * view.tooltip(false); // 关闭 tooltip\n *\n * view.tooltip({\n * shared: true\n * });\n * ```\n *\n * @param cfg Tooltip 配置,更详细的配置项参考:https://github.com/antvis/component#tooltip\n * @returns View\n */\n public tooltip(cfg: boolean | TooltipOption): View {\n set(this.options, 'tooltip', cfg);\n\n return this;\n }\n\n /**\n * 辅助标记配置。\n *\n * ```ts\n * view.annotation().line({\n * start: ['min', 85],\n * end: ['max', 85],\n * style: {\n * stroke: '#595959',\n * lineWidth: 1,\n * lineDash: [3, 3],\n * },\n * });\n * ```\n * 更详细的配置项:https://github.com/antvis/component#annotation\n * @returns [[Annotation]]\n */\n public annotation(): Annotation {\n return this.getController('annotation');\n }\n\n /**\n * @deprecated\n * This method will be removed at G2 V4.1. Replaced by {@link #guide()}\n */\n public guide(): Annotation {\n console.warn('This method will be removed at G2 V4.1. Please use chart.annotation() instead.');\n return this.annotation();\n }\n\n /**\n * 坐标系配置。\n *\n * @example\n * ```ts\n * view.coordinate({\n * type: 'polar',\n * cfg: {\n * radius: 0.85,\n * },\n * actions: [\n * [ 'transpose' ],\n * ],\n * });\n * ```\n *\n * @param option\n * @returns\n */\n public coordinate(option?: CoordinateOption): CoordinateController;\n /**\n * 声明坐标系类型,并进行配置。\n *\n * ```ts\n * // 直角坐标系,并进行转置变换\n * view.coordinate('rect').transpose();\n *\n * // 默认创建直角坐标系\n * view.coordinate();\n * ```\n *\n * @param type 坐标系类型\n * @param [coordinateCfg] 坐标系配置\n * @returns\n */\n public coordinate(type: string, coordinateCfg?: CoordinateCfg): CoordinateController;\n public coordinate(type: string | CoordinateOption, coordinateCfg?: CoordinateCfg): CoordinateController {\n // 提供语法糖,使用更简单\n if (isString(type)) {\n set(this.options, 'coordinate', { type, cfg: coordinateCfg } as CoordinateOption);\n } else {\n set(this.options, 'coordinate', type);\n }\n\n // 更新 coordinate 配置\n this.coordinateController.update(this.options.coordinate);\n\n return this.coordinateController;\n }\n\n /**\n * @deprecated\n * This method will be removed at G2 V4.1. Replaced by {@link #coordinate()}\n */\n public coord(type: string | CoordinateOption, coordinateCfg?: CoordinateCfg): CoordinateController {\n console.warn('This method will be removed at G2 V4.1. Please use chart.coordinate() instead.');\n // @ts-ignore\n return this.coordinate(type, coordinateCfg);\n }\n\n /**\n * view 分面绘制。\n *\n * ```ts\n * view.facet('rect', {\n * rowField: 'province',\n * columnField: 'category',\n * eachView: (innerView: View, facet?: FacetData) => {\n * innerView.line().position('city*sale');\n * },\n * });\n * ```\n *\n * @param type 分面类型\n * @param cfg 分面配置, [[FacetCfgMap]]\n * @returns View\n */\n public facet(type: T, cfg: FacetCfgMap[T]): View {\n // 先销毁掉之前的分面\n if (this.facetInstance) {\n this.facetInstance.destroy();\n }\n\n // 创建新的分面\n const Ctor = getFacet(type);\n\n if (!Ctor) {\n throw new Error(`facet '${type}' is not exist!`);\n }\n\n this.facetInstance = new Ctor(this, { ...cfg, type });\n\n return this;\n }\n\n /*\n * 开启或者关闭动画。\n *\n * ```ts\n * view.animate(false);\n * ```\n *\n * @param status 动画状态,true 表示开始,false 表示关闭\n * @returns View\n */\n public animate(status: boolean): View {\n set(this.options, 'animate', status);\n return this;\n }\n\n /**\n * 更新配置项,用于配置项式声明。\n * @param options 配置项\n */\n public updateOptions(options: Options) {\n this.clear(); // 清空\n mix(this.options, options);\n\n // 需要把已存在的 view 销毁,否则会重复创建\n // 目前针对配置项还没有特别好的 view 更新机制,为了不影响主流流程,所以在这里直接销毁\n this.views.forEach((view) => view.destroy());\n this.views = [];\n\n this.initOptions();\n // 初始化坐标系大小,保证 padding 计算正确\n this.coordinateBBox = this.viewBBox;\n return this;\n }\n\n /**\n * 往 `view.options` 属性中存储配置项。\n * @param name 属性名称\n * @param opt 属性值\n * @returns view\n */\n public option(name: string, opt: any): View {\n // 对于内置的 option,避免覆盖。\n // name 在原型上,说明可能是内置 API,存在 option 被覆盖的风险,不处理\n if (View.prototype[name]) {\n throw new Error(`Can't use built in variable name \"${name}\", please change another one.`);\n }\n\n // 存入到 option 中\n set(this.options, name, opt);\n return this;\n }\n\n /**\n * 设置主题。\n *\n * ```ts\n * view.theme('dark'); // 'dark' 需要事先通过 `registerTheme()` 接口注册完成\n *\n * view.theme({ defaultColor: 'red' });\n * ```\n *\n * @param theme 主题名或者主题配置\n * @returns View\n */\n public theme(theme: string | LooseObject): View {\n this.themeObject = isObject(theme) ? deepMix({}, this.themeObject, createTheme(theme)) : getTheme(theme);\n\n return this;\n }\n\n /* end 一系列传入配置的 API */\n\n /**\n * Call the interaction based on the interaction name\n *\n * ```ts\n * view.interaction('my-interaction', { extra: 'hello world' });\n * ```\n * 详细文档可以参考:https://g2.antv.vision/zh/docs/api/general/interaction\n * @param name interaction name\n * @param cfg interaction config\n * @returns\n */\n public interaction(name: string, cfg?: LooseObject): View {\n const existInteraction = this.interactions[name];\n // 存在则先销毁已有的\n if (existInteraction) {\n existInteraction.destroy();\n }\n\n // 新建交互实例\n const interaction = createInteraction(name, this, cfg);\n if (interaction) {\n interaction.init();\n this.interactions[name] = interaction;\n }\n return this;\n }\n\n /**\n * 移除当前 View 的 interaction\n * ```ts\n * view.removeInteraction('my-interaction');\n * ```\n * @param name interaction name\n */\n public removeInteraction(name: string) {\n const existInteraction = this.interactions[name];\n // 存在则先销毁已有的\n if (existInteraction) {\n existInteraction.destroy();\n this.interactions[name] = undefined;\n }\n }\n\n /**\n * 修改数据,数据更新逻辑,数据更新仅仅影响当前这一层的 view\n *\n * ```ts\n * view.changeData([{ city: '北京', sale: '200' }]);\n * ```\n *\n * @param data\n * @returns void\n */\n public changeData(data: Data) {\n this.isDataChanged = true;\n this.emit(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, Event.fromData(this, VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, null));\n // 1. 保存数据\n this.data(data);\n\n // 2. 渲染\n this.paint(true);\n\n // 3. 遍历子 view 进行 change data\n const views = this.views;\n for (let i = 0, len = views.length; i < len; i++) {\n const view = views[i];\n // FIXME 子 view 有自己的数据的情况,该如何处理?\n view.changeData(data);\n }\n\n this.emit(VIEW_LIFE_CIRCLE.AFTER_CHANGE_DATA, Event.fromData(this, VIEW_LIFE_CIRCLE.AFTER_CHANGE_DATA, null));\n }\n\n /* View 管理相关的 API */\n\n /**\n * 创建子 view\n *\n * ```ts\n * const innerView = view.createView({\n * start: { x: 0, y: 0 },\n * end: { x: 0.5, y: 0.5 },\n * padding: 8,\n * });\n * ```\n *\n * @param cfg\n * @returns View\n */\n public createView(cfg?: Partial): View {\n // 将会在 4.1 版本中移除递归嵌套 view,仅仅只允许 chart - view 两层。\n // 这个 API 理论上用户量不多,所以暂时不发大版本,所以先暂时打一个 warning。\n if (this.parent && this.parent.parent) {\n // 存在 3 层 结构了\n console.warn('The view nesting recursive feature will be removed at G2 V4.1. Please avoid to use it.');\n }\n\n // 子 view 共享 options 配置数据\n const sharedOptions = {\n data: this.options.data,\n scales: clone(this.options.scales),\n axes: clone(this.options.axes),\n coordinate: clone(this.coordinateController.getOption()),\n tooltip: clone(this.options.tooltip),\n legends: clone(this.options.legends),\n animate: this.options.animate,\n visible: this.visible,\n };\n\n const v = new View({\n parent: this,\n canvas: this.canvas,\n // 子 view 共用三层 group\n backgroundGroup: this.backgroundGroup.addGroup({ zIndex: GROUP_Z_INDEX.BG }),\n middleGroup: this.middleGroup.addGroup({ zIndex: GROUP_Z_INDEX.MID }),\n foregroundGroup: this.foregroundGroup.addGroup({ zIndex: GROUP_Z_INDEX.FORE }),\n theme: this.themeObject,\n padding: this.padding,\n ...cfg,\n options: {\n ...sharedOptions,\n ...get(cfg, 'options', {}),\n },\n });\n\n this.views.push(v);\n\n return v;\n }\n\n /**\n * @deprecated\n * This method will be removed at G2 V4.1. Replaced by {@link #createView()}\n */\n public view(cfg?: Partial) {\n console.warn('This method will be removed at G2 V4.1. Please use chart.createView() instead.');\n return this.createView(cfg);\n }\n\n /**\n * 删除一个子 view\n * @param view\n * @return removedView\n */\n public removeView(view: View): View {\n const removedView = remove(this.views, (v: View) => v === view)[0];\n\n if (removedView) {\n removedView.destroy();\n }\n\n return removedView;\n }\n /* end View 管理相关的 API */\n\n // 一些 get 方法\n\n /**\n * 获取当前坐标系实例。\n * @returns [[Coordinate]]\n */\n public getCoordinate() {\n return this.coordinateInstance;\n }\n\n /**\n * 获取当前 view 的主题配置。\n * @returns themeObject\n */\n public getTheme(): LooseObject {\n return this.themeObject;\n }\n\n /**\n * 获得 x 轴字段的 scale 实例。\n * @returns view 中 Geometry 对于的 x scale\n */\n public getXScale(): Scale {\n // 拿第一个 Geometry 的 X scale\n // 隐藏逻辑:一个 view 中的 Geometry 必须 x 字段一致\n const g = this.geometries[0];\n return g ? g.getXScale() : null;\n }\n\n /**\n * 获取 y 轴字段的 scales 实例。\n * @returns view 中 Geometry 对于的 y scale 数组\n */\n public getYScales(): Scale[] {\n // 拿到所有的 Geometry 的 Y scale,然后去重\n const tmpMap = {};\n const yScales = [];\n this.geometries.forEach((g: Geometry) => {\n const yScale = g.getYScale();\n const field = yScale.field;\n if (!tmpMap[field]) {\n tmpMap[field] = true;\n yScales.push(yScale);\n }\n });\n return yScales;\n }\n\n /**\n * 获取 x 轴或者 y 轴对应的所有 scale 实例。\n * @param dimType x | y\n * @returns x 轴或者 y 轴对应的所有 scale 实例。\n */\n public getScalesByDim(dimType: 'x' | 'y'): Record {\n const geometries = this.geometries;\n const scales = {};\n\n for (let i = 0, len = geometries.length; i < len; i++) {\n const geometry = geometries[i];\n const scale = dimType === 'x' ? geometry.getXScale() : geometry.getYScale();\n if (scale && !scales[scale.field]) {\n scales[scale.field] = scale;\n }\n }\n\n return scales;\n }\n\n /**\n * 根据字段名去获取 scale 实例。\n * @param field 数据字段名称\n * @param key id\n */\n public getScale(field: string, key?: string): Scale {\n const defaultKey = key ? key : this.getScaleKey(field);\n // 调用根节点 view 的方法获取\n return this.getRootView().scalePool.getScale(defaultKey);\n }\n\n /**\n * @deprecated\n * This method will be removed at G2 V4.1. Please use `getScale`.\n */\n public getScaleByField(field: string, key?: string): Scale {\n return this.getScale(field, key);\n }\n\n /**\n * 返回所有配置信息。\n * @returns 所有的 view API 配置。\n */\n public getOptions(): Options {\n return this.options;\n }\n\n /**\n * 获取 view 的数据(过滤后的数据)。\n * @returns 处理过滤器之后的数据。\n */\n public getData() {\n return this.filteredData;\n }\n\n /**\n * 获取原始数据\n * @returns 传入 G2 的原始数据\n */\n public getOriginalData() {\n return this.options.data;\n }\n\n /**\n * 获取布局后的边距 padding\n * @returns\n */\n public getPadding(): Padding {\n return this.autoPadding.getPadding();\n }\n\n /**\n * 获取当前 view 有的 geometries\n * @returns\n */\n public getGeometries() {\n return this.geometries;\n }\n\n /**\n * 获取 view 中的所有 geome\n */\n public getElements(): Element[] {\n return reduce(\n this.geometries,\n (elements: Element[], geometry: Geometry) => {\n return elements.concat(geometry.getElements());\n },\n []\n );\n }\n\n /**\n * 根据一定的规则查找 Geometry 的 Elements。\n *\n * ```typescript\n * getElementsBy((element) => {\n * const data = element.getData();\n *\n * return data.a === 'a';\n * });\n * ```\n *\n * @param condition 定义查找规则的回调函数。\n * @returns\n */\n public getElementsBy(condition: (element: Element) => boolean): Element[] {\n return this.getElements().filter((el) => condition(el));\n }\n\n /**\n * 获得绘制的层级 group。\n * @param layer 层级名称。\n * @returns 对应层级的 Group。\n */\n public getLayer(layer: LAYER): IGroup {\n return layer === LAYER.BG\n ? this.backgroundGroup\n : layer === LAYER.MID\n ? this.middleGroup\n : layer === LAYER.FORE\n ? this.foregroundGroup\n : this.foregroundGroup;\n }\n\n /**\n * 对外暴露方法,判断一个点是否在绘图区域(即坐标系范围)内部。\n * @param point 坐标点\n */\n public isPointInPlot(point: Point): boolean {\n return isPointInCoordinate(this.getCoordinate(), point);\n }\n\n /**\n * 获得所有的 legend 对应的 attribute 实例。\n * @returns 维度字段的 Attribute 数组\n */\n public getLegendAttributes(): Attribute[] {\n return flatten(this.geometries.map((g: Geometry) => g.getGroupAttributes())) as unknown as Attribute[];\n }\n\n /**\n * 获取所有的分组字段的 scale 实例。\n * @returns 获得分组字段的 scale 实例数组。\n */\n public getGroupScales(): Scale[] {\n // 拿到所有的 Geometry 的 分组字段 scale,然后打平去重\n const scales = this.geometries.map((g: Geometry) => g.getGroupScales());\n return uniq(flatten(scales));\n }\n\n /**\n * 获取 G.Canvas 实例。\n * @returns G.Canvas 画布实例。\n */\n public getCanvas(): ICanvas {\n return (this.getRootView() as unknown as Chart).canvas;\n }\n\n /**\n * 获得根节点 view。\n */\n public getRootView(): View {\n let v = this as View;\n\n while (true) {\n if (v.parent) {\n v = v.parent;\n continue;\n }\n break;\n }\n return v;\n }\n\n /**\n * 获取该数据在可视化后,对应的画布坐标点。\n * @param data 原始数据记录\n * @returns 对应的画布坐标点\n */\n public getXY(data: Datum): Point {\n const coordinate = this.getCoordinate();\n const xScales = this.getScalesByDim('x');\n const yScales = this.getScalesByDim('y');\n let x;\n let y;\n\n each(data, (value, key) => {\n if (xScales[key]) {\n x = xScales[key].scale(value);\n }\n if (yScales[key]) {\n y = yScales[key].scale(value);\n }\n });\n\n if (!isNil(x) && !isNil(y)) {\n return coordinate.convert({ x, y });\n }\n }\n\n public getController(name: 'tooltip'): Tooltip;\n public getController(name: 'axis'): Axis;\n public getController(name: 'legend'): Legend;\n public getController(name: 'scrollbar'): Scrollbar;\n public getController(name: 'slider'): Slider;\n public getController(name: 'annotation'): Annotation;\n public getController(name: 'gestucre'): Gesture;\n public getController(name: string): Controller;\n /**\n * 获取 name 对应的 controller 实例\n * @param name\n */\n public getController(name: string): Controller {\n return find(this.controllers, (c: Controller) => c.name === name);\n }\n\n /**\n * 显示 point 坐标点对应的 tooltip。\n * @param point 画布坐标点\n * @returns View\n */\n public showTooltip(point: Point): View {\n const tooltip = this.getController('tooltip');\n if (tooltip) {\n tooltip.showTooltip(point);\n }\n return this;\n }\n\n /**\n * 隐藏 tooltip。\n * @returns View\n */\n public hideTooltip(): View {\n const tooltip = this.getController('tooltip');\n if (tooltip) {\n tooltip.hideTooltip();\n }\n return this;\n }\n\n /**\n * 将 tooltip 锁定到当前位置不能移动。\n * @returns View\n */\n public lockTooltip(): View {\n const tooltip = this.getController('tooltip');\n if (tooltip) {\n tooltip.lockTooltip();\n }\n return this;\n }\n\n /**\n * 将 tooltip 锁定解除。\n * @returns View\n */\n public unlockTooltip(): View {\n const tooltip = this.getController('tooltip');\n if (tooltip) {\n tooltip.unlockTooltip();\n }\n return this;\n }\n\n /**\n * 是否锁定 tooltip。\n * @returns 是否锁定\n */\n public isTooltipLocked() {\n const tooltip = this.getController('tooltip');\n return tooltip && tooltip.isTooltipLocked();\n }\n\n /**\n * 获取当前 point 对应的 tooltip 数据项。\n * @param point 坐标点\n * @returns tooltip 数据项\n */\n public getTooltipItems(point: Point) {\n const tooltip = this.getController('tooltip');\n\n return tooltip ? tooltip.getTooltipItems(point) : [];\n }\n\n /**\n * 获取逼近的点的数据集合\n * @param point 当前坐标点\n * @returns 数据\n */\n public getSnapRecords(point: Point) {\n const geometries = this.geometries;\n let rst = [];\n for (let i = 0, len = geometries.length; i < len; i++) {\n const geom = geometries[i];\n const dataArray = geom.dataArray;\n geom.sort(dataArray); // 先进行排序,便于 tooltip 查找\n let record;\n for (let j = 0, dataLen = dataArray.length; j < dataLen; j++) {\n const data = dataArray[j];\n record = findDataByPoint(point, data, geom);\n if (record) {\n rst.push(record);\n }\n }\n }\n\n // 同样递归处理子 views\n const views = this.views;\n for (let i = 0, len = views.length; i < len; i++) {\n const view = views[i];\n const snapRecords = view.getSnapRecords(point);\n rst = rst.concat(snapRecords);\n }\n\n return rst;\n }\n\n /**\n * 获取所有的 pure component 组件,用于布局。\n */\n public getComponents(): ComponentOption[] {\n let components = [];\n const controllers = this.controllers;\n for (let i = 0, len = controllers.length; i < len; i++) {\n const controller = controllers[i];\n components = components.concat(controller.getComponents());\n }\n\n return components;\n }\n\n /**\n * 将 data 数据进行过滤。\n * @param data\n * @returns 过滤之后的数据\n */\n public filterData(data: Data): Data {\n const { filters } = this.options;\n // 不存在 filters,则不需要进行数据过滤\n if (size(filters) === 0) {\n return data;\n }\n\n // 存在过滤器,则逐个执行过滤,过滤器之间是 与 的关系\n return filter(data, (datum: Datum, idx: number) => {\n // 所有的 filter 字段\n const fields = Object.keys(filters);\n\n // 所有的条件都通过,才算通过\n return fields.every((field: string) => {\n const condition = filters[field];\n\n // condition 返回 true,则保留\n return condition(datum[field], datum, idx);\n });\n });\n }\n\n /**\n * 对某一个字段进行过滤\n * @param field\n * @param data\n */\n public filterFieldData(field: string, data: Data): Data {\n const { filters } = this.options;\n const condition = get(filters, field);\n\n if (isUndefined(condition)) {\n return data;\n }\n return data.filter((datum: Datum, idx: number) => condition(datum[field], datum, idx));\n }\n\n /**\n * 调整 coordinate 的坐标范围。\n */\n public adjustCoordinate() {\n const { start: curStart, end: curEnd } = this.getCoordinate();\n const start = this.coordinateBBox.bl;\n const end = this.coordinateBBox.tr;\n\n // 在 defaultLayoutFn 中只会在 coordinateBBox 发生变化的时候会调用 adjustCoordinate(),所以不用担心被置位\n if (isEqual(curStart, start) && isEqual(curEnd, end)) {\n this.isCoordinateChanged = false;\n // 如果大小没有变化则不更新\n return;\n }\n this.isCoordinateChanged = true;\n this.coordinateInstance = this.coordinateController.adjust(start, end);\n }\n\n protected paint(isUpdate: boolean) {\n this.renderDataRecursive(isUpdate);\n\n // 处理 sync scale 的逻辑\n this.syncScale();\n\n this.emit(VIEW_LIFE_CIRCLE.BEFORE_PAINT);\n\n // 初始化图形、组件位置,计算 padding\n this.renderPaddingRecursive(isUpdate);\n // 布局图形、组件\n this.renderLayoutRecursive(isUpdate);\n // 背景色 shape\n this.renderBackgroundStyleShape();\n // 最终的绘制 render\n this.renderPaintRecursive(isUpdate);\n\n this.emit(VIEW_LIFE_CIRCLE.AFTER_PAINT);\n\n this.isDataChanged = false; // 渲染完毕复位\n }\n\n /**\n * 渲染背景样式的 shape。\n * 放到 view 中创建的原因是让使用 view 绘制图形的时候,也能够处理背景色\n */\n private renderBackgroundStyleShape() {\n // 只有根节点才处理\n if (this.parent) {\n return;\n }\n const background = get(this.themeObject, 'background');\n // 配置了背景色\n if (background) {\n // 1. 不存在则创建\n if (!this.backgroundStyleRectShape) {\n this.backgroundStyleRectShape = this.backgroundGroup.addShape('rect', {\n attrs: {},\n zIndex: -1,\n // 背景色 shape 不设置事件捕获\n capture: false,\n });\n this.backgroundStyleRectShape.toBack();\n }\n\n // 2. 有了 shape 之后设置背景,位置(更新的时候)\n const { x, y, width, height } = this.viewBBox;\n this.backgroundStyleRectShape.attr({\n fill: background,\n x,\n y,\n width,\n height,\n });\n } else {\n // 没有配置背景色\n if (this.backgroundStyleRectShape) {\n this.backgroundStyleRectShape.remove(true);\n this.backgroundStyleRectShape = undefined;\n }\n }\n }\n\n /**\n * 递归计算每个 view 的 padding 值,coordinateBBox 和 coordinateInstance\n * @param isUpdate\n */\n protected renderPaddingRecursive(isUpdate: boolean) {\n // 1. 子 view 大小相对 coordinateBBox,changeSize 的时候需要重新计算\n this.calculateViewBBox();\n // 2. 更新 coordinate\n this.adjustCoordinate();\n // 3. 初始化组件 component\n this.initComponents(isUpdate);\n // 4. 布局计算每隔 view 的 padding 值\n // 4.1. 自动加 auto padding -> absolute padding,并且增加 appendPadding\n this.autoPadding = calculatePadding(this).shrink(parsePadding(this.appendPadding));\n // 4.2. 计算出新的 coordinateBBox,更新 Coordinate\n // 这里必须保留,原因是后面子 view 的 viewBBox 或根据 parent 的 coordinateBBox\n this.coordinateBBox = this.viewBBox.shrink(this.autoPadding.getPadding());\n this.adjustCoordinate();\n\n // 同样递归处理子 views\n const views = this.views;\n for (let i = 0, len = views.length; i < len; i++) {\n const view = views[i];\n view.renderPaddingRecursive(isUpdate);\n }\n }\n\n /**\n * 递归处理 view 的布局,最终是计算各个 view 的 coordinateBBox 和 coordinateInstance\n * @param isUpdate\n */\n protected renderLayoutRecursive(isUpdate: boolean) {\n // 1. 同步子 view padding\n // 根据配置获取 padding\n const syncViewPaddingFn =\n this.syncViewPadding === true\n ? defaultSyncViewPadding\n : isFunction(this.syncViewPadding)\n ? this.syncViewPadding\n : undefined;\n\n if (syncViewPaddingFn) {\n syncViewPaddingFn(this, this.views, PaddingCal);\n // 同步 padding 之后,更新 coordinate\n this.views.forEach((v: View) => {\n v.coordinateBBox = v.viewBBox.shrink(v.autoPadding.getPadding());\n v.adjustCoordinate();\n });\n }\n\n // 3. 将 view 中的组件按照 view padding 移动到对应的位置\n this.doLayout();\n\n // 同样递归处理子 views\n const views = this.views;\n for (let i = 0, len = views.length; i < len; i++) {\n const view = views[i];\n view.renderLayoutRecursive(isUpdate);\n }\n }\n\n /**\n * 最终递归绘制组件和图形\n * @param isUpdate\n */\n protected renderPaintRecursive(isUpdate: boolean) {\n const middleGroup = this.middleGroup;\n if (this.limitInPlot) {\n const { type, attrs } = getCoordinateClipCfg(this.coordinateInstance);\n middleGroup.setClip({\n type,\n attrs,\n });\n } else {\n // 清除已有的 clip\n middleGroup.setClip(undefined);\n }\n\n // 1. 渲染几何标记\n this.paintGeometries(isUpdate);\n // 2. 绘制组件\n this.renderComponents(isUpdate);\n\n // 同样递归处理子 views\n const views = this.views;\n for (let i = 0, len = views.length; i < len; i++) {\n const view = views[i];\n view.renderPaintRecursive(isUpdate);\n }\n }\n\n // end Get 方法\n\n /**\n * 创建 scale,递归到顶层 view 去创建和缓存 scale\n * @param field\n * @param data\n * @param scaleDef\n * @param key\n */\n protected createScale(field: string, data: Data, scaleDef: ScaleOption, key: string): Scale {\n // 1. 合并 field 对应的 scaleDef,合并原则是底层覆盖顶层(就近原则)\n const currentScaleDef = get(this.options.scales, [field]);\n const mergedScaleDef = { ...currentScaleDef, ...scaleDef };\n\n // 2. 是否存在父 view,在则递归,否则创建\n if (this.parent) {\n return this.parent.createScale(field, data, mergedScaleDef, key);\n }\n\n // 3. 在根节点 view 通过 scalePool 创建\n return this.scalePool.createScale(field, data, mergedScaleDef, key);\n }\n\n /**\n * 递归渲染中的数据处理\n * @param isUpdate\n */\n private renderDataRecursive(isUpdate: boolean) {\n // 1. 处理数据\n this.doFilterData();\n // 2. 创建实例\n this.createCoordinate();\n // 3. 初始化 Geometry\n this.initGeometries(isUpdate);\n // 4. 处理分面逻辑,最终都是生成子 view 和 geometry\n this.renderFacet(isUpdate);\n\n // 同样递归处理子 views\n const views = this.views;\n for (let i = 0, len = views.length; i < len; i++) {\n const view = views[i];\n view.renderDataRecursive(isUpdate);\n }\n }\n\n /**\n * 计算 region,计算实际的像素范围坐标\n * @private\n */\n private calculateViewBBox() {\n let x;\n let y;\n let width;\n let height;\n\n if (this.parent) {\n const bbox = this.parent.coordinateBBox;\n // 存在 parent, 那么就是通过父容器大小计算\n x = bbox.x;\n y = bbox.y;\n width = bbox.width;\n height = bbox.height;\n } else {\n // 顶层容器,从 canvas 中取值 宽高\n x = 0;\n y = 0;\n width = this.canvas.get('width');\n height = this.canvas.get('height');\n }\n\n const { start, end } = this.region;\n\n // 根据 region 计算当前 view 的 bbox 大小。\n const viewBBox = new BBox(\n x + width * start.x,\n y + height * start.y,\n width * (end.x - start.x),\n height * (end.y - start.y)\n );\n\n if (!this.viewBBox || !this.viewBBox.isEqual(viewBBox)) {\n // viewBBox 发生变化的时候进行更新\n this.viewBBox = new BBox(\n x + width * start.x,\n y + height * start.y,\n width * (end.x - start.x),\n height * (end.y - start.y)\n );\n }\n\n // 初始的 coordinate bbox 大小\n this.coordinateBBox = this.viewBBox;\n }\n\n /**\n * 初始化事件机制:G 4.0 底层内置支持 name:event 的机制,那么只要所有组件都有自己的 name 即可。\n *\n * G2 的事件只是获取事件委托,然后在 view 嵌套结构中,形成事件冒泡机制。\n * 当前 view 只委托自己 view 中的 Component 和 Geometry 事件,并向上冒泡\n * @private\n */\n private initEvents() {\n // 三层 group 中的 shape 事件都会通过 G 冒泡上来的\n this.foregroundGroup.on('*', this.onDelegateEvents);\n this.middleGroup.on('*', this.onDelegateEvents);\n this.backgroundGroup.on('*', this.onDelegateEvents);\n\n this.canvas.on('*', this.onCanvasEvent);\n }\n\n private onCanvasEvent = (evt: GEvent): void => {\n const name = evt.name;\n if (!name.includes(':')) {\n // 非委托事件\n const e = this.createViewEvent(evt);\n // 处理 plot 事件\n this.doPlotEvent(e);\n this.emit(name, e);\n }\n };\n\n /**\n * 初始化插件\n */\n private initComponentController() {\n const usedControllers = this.usedControllers;\n for (let i = 0, len = usedControllers.length; i < len; i++) {\n const controllerName = usedControllers[i];\n const Ctor = getComponentController(controllerName);\n if (Ctor) {\n this.controllers.push(new Ctor(this));\n }\n }\n }\n\n private createViewEvent(evt: GEvent) {\n const { shape, name } = evt;\n\n const data = shape ? shape.get('origin') : null;\n // 事件在 view 嵌套中冒泡(暂不提供阻止冒泡的机制)\n const e = new Event(this, evt, data);\n e.type = name;\n return e;\n }\n /**\n * 触发事件之后\n * @param evt\n */\n private onDelegateEvents = (evt: GEvent): void => {\n // 阻止继续冒泡,防止重复事件触发\n // evt.preventDefault();\n const { name } = evt;\n if (!name.includes(':')) {\n return;\n }\n // 事件在 view 嵌套中冒泡(暂不提供阻止冒泡的机制)\n const e = this.createViewEvent(evt);\n\n // 包含有基本事件、组合事件\n this.emit(name, e);\n // const currentTarget = evt.currentTarget as IShape;\n // const inheritNames = currentTarget.get('inheritNames');\n // if (evt.delegateObject || inheritNames) {\n // const events = this.getEvents();\n // each(inheritNames, (subName) => {\n // const eventName = `${subName}:${type}`;\n // if (events[eventName]) {\n // this.emit(eventName, e);\n // }\n // });\n // }\n };\n\n /**\n * 处理 PLOT_EVENTS\n * plot event 需要处理所有的基础事件,并判断是否在画布中,然后再决定是否要 emit。\n * 对于 mouseenter、mouseleave 比较特殊,需要做一下数学比较。\n * @param e\n */\n private doPlotEvent(e: Event) {\n const { type, x, y } = e;\n\n const point = { x, y };\n\n const ALL_EVENTS = [\n 'mousedown',\n 'mouseup',\n 'mousemove',\n 'mouseleave',\n 'mousewheel',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'click',\n 'dblclick',\n 'contextmenu',\n ];\n\n if (ALL_EVENTS.includes(type)) {\n const currentInPlot = this.isPointInPlot(point);\n const newEvent = e.clone();\n\n if (currentInPlot) {\n const TYPE = `plot:${type}`; // 组合 plot 事件\n newEvent.type = TYPE;\n this.emit(TYPE, newEvent);\n if (type === 'mouseleave' || type === 'touchend') {\n // 在plot 内部却离开画布\n this.isPreMouseInPlot = false;\n }\n }\n\n // 对于 mouseenter, mouseleave 的计算处理\n if (type === 'mousemove' || type === 'touchmove') {\n if (this.isPreMouseInPlot && !currentInPlot) {\n if (type === 'mousemove') {\n newEvent.type = PLOT_EVENTS.MOUSE_LEAVE;\n this.emit(PLOT_EVENTS.MOUSE_LEAVE, newEvent);\n }\n newEvent.type = PLOT_EVENTS.LEAVE;\n this.emit(PLOT_EVENTS.LEAVE, newEvent);\n } else if (!this.isPreMouseInPlot && currentInPlot) {\n if (type === 'mousemove') {\n newEvent.type = PLOT_EVENTS.MOUSE_ENTER;\n this.emit(PLOT_EVENTS.MOUSE_ENTER, newEvent);\n }\n newEvent.type = PLOT_EVENTS.ENTER;\n this.emit(PLOT_EVENTS.ENTER, newEvent);\n }\n // 赋新的状态值\n this.isPreMouseInPlot = currentInPlot;\n } else if (type === 'mouseleave' || type === 'touchend') {\n // 可能不在 currentInPlot 中\n if (this.isPreMouseInPlot) {\n if (type === 'mouseleave') {\n newEvent.type = PLOT_EVENTS.MOUSE_LEAVE;\n this.emit(PLOT_EVENTS.MOUSE_LEAVE, newEvent);\n }\n newEvent.type = PLOT_EVENTS.LEAVE;\n this.emit(PLOT_EVENTS.LEAVE, newEvent);\n\n this.isPreMouseInPlot = false;\n }\n }\n }\n }\n\n // view 生命周期 —— 渲染流程\n\n /**\n * 处理筛选器,筛选数据\n * @private\n */\n private doFilterData() {\n const { data } = this.options;\n this.filteredData = this.filterData(data);\n }\n\n /**\n * 初始化 Geometries\n * @private\n */\n private initGeometries(isUpdate: boolean) {\n // 初始化图形的之前,先创建 / 更新 scales\n this.createOrUpdateScales();\n // 实例化 Geometry,然后 view 将所有的 scale 管理起来\n const coordinate = this.getCoordinate();\n const scaleDefs = get(this.options, 'scales', {});\n const geometries = this.geometries;\n for (let i = 0, len = geometries.length; i < len; i++) {\n const geometry = geometries[i];\n // 保持 scales 引用不要变化\n geometry.scales = this.getGeometryScales();\n const cfg = {\n coordinate, // 使用 coordinate 引用,可以保持 coordinate 的同步更新\n scaleDefs,\n data: this.filteredData,\n theme: this.themeObject,\n isDataChanged: this.isDataChanged,\n isCoordinateChanged: this.isCoordinateChanged,\n };\n\n if (isUpdate) {\n // 数据发生更新\n geometry.update(cfg);\n } else {\n geometry.init(cfg);\n }\n }\n\n // Geometry 初始化之后,生成了 scale,然后进行调整 scale 配置\n this.adjustScales();\n }\n\n /**\n * 根据 Geometry 的所有字段创建 scales\n * 如果存在,则更新,不存在则创建\n */\n private createOrUpdateScales() {\n const fields = this.getScaleFields();\n const groupedFields = this.getGroupedFields();\n\n const { data, scales = {} } = this.getOptions();\n const filteredData = this.filteredData;\n\n for (let i = 0, len = fields.length; i < len; i++) {\n const field = fields[i];\n const scaleDef = scales[field];\n\n // 调用方法,递归去创建\n const key = this.getScaleKey(field);\n this.createScale(\n field,\n // 分组字段的 scale 使用未过滤的数据创建\n groupedFields.includes(field) ? data : filteredData,\n scaleDef,\n key\n );\n\n // 缓存从当前 view 创建的 scale key\n this.createdScaleKeys.set(key, true);\n }\n }\n\n /**\n * 处理 scale 同步逻辑\n */\n private syncScale() {\n // 最终调用 root view 的\n this.getRootView().scalePool.sync(this.getCoordinate(), this.theme);\n }\n\n /**\n * 获得 Geometry 中的 scale 对象\n */\n private getGeometryScales(): Record {\n const fields = this.getScaleFields();\n\n const scales = {};\n for (let i = 0; i < fields.length; i++) {\n const field = fields[i];\n scales[field] = this.getScaleByField(field);\n }\n\n return scales;\n }\n\n private getScaleFields() {\n const fields = [];\n const tmpMap = new Map();\n const geometries = this.geometries;\n for (let i = 0; i < geometries.length; i++) {\n const geometry = geometries[i];\n const geometryScales = geometry.getScaleFields();\n uniq(geometryScales, fields, tmpMap);\n }\n return fields;\n }\n\n private getGroupedFields() {\n const fields = [];\n const tmpMap = new Map();\n const geometries = this.geometries;\n for (let i = 0; i < geometries.length; i++) {\n const geometry = geometries[i];\n const groupFields = geometry.getGroupFields();\n uniq(groupFields, fields, tmpMap);\n }\n return fields;\n }\n\n /**\n * 调整 scale 配置\n * @private\n */\n private adjustScales() {\n // 调整目前包括:\n // 分类 scale,调整 range 范围\n this.adjustCategoryScaleRange();\n }\n\n /**\n * 调整分类 scale 的 range,防止超出坐标系外面\n * @private\n */\n private adjustCategoryScaleRange() {\n const xyScales = [this.getXScale(), ...this.getYScales()].filter((e) => !!e);\n const coordinate = this.getCoordinate();\n const scaleOptions = this.options.scales;\n\n each(xyScales, (scale: Scale) => {\n const { field, values, isCategory, isIdentity } = scale;\n\n // 分类或者 identity 的 scale 才进行处理\n if (isCategory || isIdentity) {\n // 存在 value 值,且用户没有配置 range 配置\n if (values && !get(scaleOptions, [field, 'range'])) {\n // 更新 range\n scale.range = getDefaultCategoryScaleRange(scale, coordinate, this.theme);\n }\n }\n });\n }\n\n /**\n * 根据 options 配置、Geometry 字段配置,自动生成 components\n * @param isUpdate 是否是更新\n * @private\n */\n private initComponents(isUpdate: boolean) {\n // 先全部清空,然后 render\n const controllers = this.controllers;\n for (let i = 0; i < controllers.length; i++) {\n const controller = controllers[i];\n // 更新则走更新逻辑;否则清空载重绘\n if (isUpdate) {\n controller.update();\n } else {\n controller.clear();\n controller.render();\n }\n }\n }\n\n private doLayout() {\n this.layoutFunc(this);\n }\n\n /**\n * 创建坐标系\n * @private\n */\n private createCoordinate() {\n const start = this.coordinateBBox.bl;\n const end = this.coordinateBBox.tr;\n this.coordinateInstance = this.coordinateController.create(start, end);\n }\n\n /**\n * 根据 options 配置自动渲染 geometry\n * @private\n */\n private paintGeometries(isUpdate: boolean) {\n const doAnimation = this.options.animate;\n // geometry 的 paint 阶段\n const coordinate = this.getCoordinate();\n const canvasRegion = {\n x: this.viewBBox.x,\n y: this.viewBBox.y,\n minX: this.viewBBox.minX,\n minY: this.viewBBox.minY,\n maxX: this.viewBBox.maxX,\n maxY: this.viewBBox.maxY,\n width: this.viewBBox.width,\n height: this.viewBBox.height,\n };\n const geometries = this.geometries;\n for (let i = 0; i < geometries.length; i++) {\n const geometry = geometries[i];\n geometry.coordinate = coordinate;\n geometry.canvasRegion = canvasRegion;\n if (!doAnimation) {\n // 如果 view 不执行动画,那么 view 下所有的 geometry 都不执行动画\n geometry.animate(false);\n }\n geometry.paint(isUpdate);\n }\n }\n\n /**\n * 最后的绘制组件\n * @param isUpdate\n */\n private renderComponents(isUpdate: boolean) {\n // 先全部清空,然后 render\n for (let i = 0; i < this.getComponents().length; i++) {\n const co = this.getComponents()[i];\n (co.component as GroupComponent).render();\n }\n }\n\n /**\n * 渲染分面,会在其中进行数据分面,然后进行子 view 创建\n * @param isUpdate\n */\n private renderFacet(isUpdate: boolean) {\n if (this.facetInstance) {\n if (isUpdate) {\n this.facetInstance.update();\n } else {\n this.facetInstance.clear();\n // 计算分面数据\n this.facetInstance.init();\n // 渲染组件和 views\n this.facetInstance.render();\n }\n }\n }\n\n private initOptions() {\n const {\n geometries = [],\n interactions = [],\n views = [],\n annotations = [],\n coordinate,\n events,\n facets,\n } = this.options;\n\n // 设置坐标系\n if (this.coordinateController) {\n // 更新 coordinate controller\n coordinate && this.coordinateController.update(coordinate);\n } else {\n // 创建 coordinate controller\n this.coordinateController = new CoordinateController(coordinate);\n }\n\n // 创建 geometry 实例\n for (let i = 0; i < geometries.length; i++) {\n const geometryOption = geometries[i];\n this.createGeometry(geometryOption);\n }\n\n // 创建 interactions 实例\n for (let j = 0; j < interactions.length; j++) {\n const interactionOption = interactions[j];\n const { type, cfg } = interactionOption;\n this.interaction(type, cfg);\n }\n\n // 创建 view 实例\n for (let k = 0; k < views.length; k++) {\n const viewOption = views[k];\n this.createView(viewOption);\n }\n\n // 设置 annotation\n const annotationComponent = this.getController('annotation');\n for (let l = 0; l < annotations.length; l++) {\n const annotationOption = annotations[l];\n annotationComponent.annotation(annotationOption);\n }\n\n // 设置 events\n if (events) {\n each(events, (eventCallback, eventName) => {\n this.on(eventName, eventCallback);\n });\n }\n\n if (facets) {\n each(facets, (facet) => {\n const { type, ...rest } = facet;\n\n this.facet(type, rest);\n });\n }\n }\n\n private createGeometry(geometryOption: GeometryOption) {\n const { type, cfg = {} } = geometryOption;\n if (this[type]) {\n const geometry = this[type](cfg);\n each(geometryOption, (v, k) => {\n if (isFunction(geometry[k])) {\n geometry[k](v);\n }\n });\n }\n }\n\n /**\n * scale key 的创建方式\n * @param field\n */\n private getScaleKey(field: string): string {\n return `${this.id}-${field}`;\n }\n}\n\n/**\n * 注册 geometry 组件\n * @param name\n * @param Ctor\n * @returns Geometry\n */\nexport function registerGeometry(name: string, Ctor: any) {\n // 语法糖,在 view API 上增加原型方法\n View.prototype[name.toLowerCase()] = function (cfg: any = {}) {\n const props = {\n /** 图形容器 */\n container: this.middleGroup.addGroup(),\n labelsContainer: this.foregroundGroup.addGroup(),\n ...cfg,\n };\n\n const geometry = new Ctor(props);\n this.geometries.push(geometry);\n\n return geometry;\n };\n}\n\nexport default View;\n","import { debounce, each, isString } from '@antv/util';\nimport { ChartCfg } from '../interface';\nimport { GROUP_Z_INDEX, VIEW_LIFE_CIRCLE } from '../constant';\nimport { getEngine } from '../engine';\nimport { createDom, getChartSize, removeDom, modifyCSS } from '../util/dom';\nimport View from './view';\nimport { AriaOption } from '../interface';\n\n/**\n * Chart 类,是使用 G2 进行绘图的入口。\n */\nexport default class Chart extends View {\n /** Chart 的 DOM 容器 */\n public ele: HTMLElement;\n\n /** 图表宽度 */\n public width: number;\n /** 图表高度 */\n public height: number;\n /** 是否开启局部刷新 */\n public localRefresh: boolean;\n /** 是否自适应 DOM 容器宽高,默认为 false,需要用户手动指定宽高 */\n public autoFit: boolean;\n /** 图表渲染引擎 */\n public renderer: 'canvas' | 'svg';\n\n private wrapperElement: HTMLElement;\n\n // @ts-ignore\n constructor(props: ChartCfg) {\n const {\n container,\n width,\n height,\n autoFit = false,\n padding,\n appendPadding,\n renderer = 'canvas',\n pixelRatio,\n localRefresh = true,\n visible = true,\n supportCSSTransform = false,\n defaultInteractions = ['tooltip', 'legend-filter', 'legend-active', 'continuous-filter', 'ellipsis-text'],\n options,\n limitInPlot,\n theme,\n syncViewPadding,\n } = props;\n\n const ele: HTMLElement = isString(container) ? document.getElementById(container) : container;\n\n // 生成内部正式绘制的 div 元素\n const wrapperElement = createDom('
');\n ele.appendChild(wrapperElement);\n\n // if autoFit, use the container size, to avoid the graph render twice.\n const size = getChartSize(ele, autoFit, width, height);\n\n const G = getEngine(renderer);\n\n const canvas = new G.Canvas({\n container: wrapperElement,\n pixelRatio,\n localRefresh,\n supportCSSTransform,\n ...size,\n });\n\n // 调用 view 的创建\n super({\n parent: null,\n canvas,\n // create 3 group layers for views.\n backgroundGroup: canvas.addGroup({ zIndex: GROUP_Z_INDEX.BG }),\n middleGroup: canvas.addGroup({ zIndex: GROUP_Z_INDEX.MID }),\n foregroundGroup: canvas.addGroup({ zIndex: GROUP_Z_INDEX.FORE }),\n padding,\n appendPadding,\n visible,\n options,\n limitInPlot,\n theme,\n syncViewPadding,\n });\n\n this.ele = ele;\n this.canvas = canvas;\n this.width = size.width;\n this.height = size.height;\n this.autoFit = autoFit;\n this.localRefresh = localRefresh;\n this.renderer = renderer;\n this.wrapperElement = wrapperElement;\n\n // 自适应大小\n this.updateCanvasStyle();\n this.bindAutoFit();\n this.initDefaultInteractions(defaultInteractions);\n }\n\n private initDefaultInteractions(interactions) {\n each(interactions, (interaction) => {\n this.interaction(interaction);\n });\n }\n\n /**\n * 设置 WAI-ARIA 无障碍标签。如何根据图形语法自动生成 arial 内容?\n * @param ariaOption\n */\n public aria(ariaOption: AriaOption) {\n const ATTR = 'aria-label';\n if (ariaOption === false) {\n this.ele.removeAttribute(ATTR);\n } else {\n this.ele.setAttribute(ATTR, ariaOption.label);\n }\n }\n\n /**\n * 改变图表大小,同时重新渲染。\n * @param width 图表宽度\n * @param height 图表高度\n * @returns\n */\n public changeSize(width: number, height: number) {\n // 如果宽高一致,那么 changeSize 不执行任何操作\n if (this.width === width && this.height === height) {\n return this;\n }\n\n this.emit(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_SIZE);\n\n this.width = width;\n this.height = height;\n this.canvas.changeSize(width, height);\n\n // 重新渲染\n this.render(true);\n\n this.emit(VIEW_LIFE_CIRCLE.AFTER_CHANGE_SIZE);\n\n return this;\n }\n\n /**\n * 清空图表,同时清除掉 aria 配置\n */\n public clear() {\n super.clear();\n\n this.aria(false);\n }\n\n /**\n * 销毁图表,同时解绑事件,销毁创建的 G.Canvas 实例。\n * @returns void\n */\n public destroy() {\n super.destroy();\n\n this.unbindAutoFit();\n this.canvas.destroy();\n\n removeDom(this.wrapperElement);\n this.wrapperElement = null;\n }\n\n /**\n * 显示或隐藏图表\n * @param visible 是否可见,true 表示显示,false 表示隐藏\n * @returns\n */\n public changeVisible(visible: boolean) {\n super.changeVisible(visible); // 需要更新 visible 变量\n this.wrapperElement.style.display = visible ? '' : 'none';\n\n return this;\n }\n\n /**\n * 自动根据容器大小 resize 画布\n */\n public forceFit() {\n // skip if already destroyed\n if (!this.destroyed) {\n // 注意第二参数用 true,意思是即时 autoFit = false,forceFit() 调用之后一样是适配容器\n const { width, height } = getChartSize(this.ele, true, this.width, this.height);\n this.changeSize(width, height);\n }\n }\n\n private updateCanvasStyle() {\n modifyCSS(this.canvas.get('el'), {\n display: 'inline-block',\n verticalAlign: 'middle',\n });\n }\n\n private bindAutoFit() {\n if (this.autoFit) {\n window.addEventListener('resize', this.onResize);\n }\n }\n\n private unbindAutoFit() {\n if (this.autoFit) {\n window.removeEventListener('resize', this.onResize);\n }\n }\n\n /**\n * when container size changed, change chart size props, and re-render.\n */\n private onResize = debounce(() => {\n this.forceFit();\n }, 300);\n}\n","import { each } from '@antv/util';\nimport { ComponentOption } from '../../interface';\nimport View from '../view';\n\n/** Component controller class type define */\nexport type ControllerCtor = new (view: View) => Controller;\n\n/**\n * Component Controller 规范需要定义的基类\n * 1. 规范的 option 输入\n * 2. 统一的信息获取 API\n * 3. 明确定义的组件事件(名称、数据)\n */\nexport abstract class Controller {\n /** 是否可见 */\n public visible: boolean = true;\n protected view: View;\n /** option 配置,不同组件有自己不同的配置结构 */\n protected option: O;\n /** 所有的 component */\n protected components: ComponentOption[] = [];\n\n constructor(view: View) {\n this.view = view;\n }\n\n public abstract get name(): string;\n\n /**\n * init the component\n */\n public abstract init();\n\n /**\n * render the components\n */\n public abstract render();\n\n /**\n * update the components\n */\n // public abstract update();\n\n /**\n * do layout\n */\n public abstract layout();\n\n /**\n * 组件的更新逻辑\n * - 根据字段为标识,为每一个组件生成一个 id,放到 option 中\n * - 更新的时候按照 id 去做 diff,然后对同的做处理\n * - 创建增加的\n * - 更新已有的\n * - 销毁删除的\n */\n public abstract update();\n\n /**\n * clear\n * @param includeOption 是否清空 option 配置项(used in annotation)\n */\n public clear(includeOption?: boolean) {\n // destroy all components\n each(this.components, (co: ComponentOption) => {\n co.component.destroy();\n });\n\n // clear all component instance\n this.components = [];\n }\n\n /**\n * destroy the component\n */\n public destroy() {\n this.clear();\n }\n\n /**\n * get all components\n * @returns components array\n */\n public getComponents(): ComponentOption[] {\n return this.components;\n }\n\n /**\n * change visibility of component\n * @param visible\n */\n public changeVisible(visible: boolean) {\n if (this.visible === visible) {\n return;\n }\n this.components.forEach((co: ComponentOption) => {\n if (visible) {\n co.component.show();\n } else {\n co.component.hide();\n }\n });\n this.visible = visible;\n }\n}\n","import { deepMix, find, get, isEqual, isFunction, mix, isString, isBoolean, flatten, isArray } from '@antv/util';\nimport { Crosshair, HtmlTooltip, IGroup } from '../../dependents';\nimport { Point, TooltipItem, TooltipOption } from '../../interface';\nimport { getAngleByPoint, getDistanceToCenter, isPointInCoordinate, getCoordinateClipCfg } from '../../util/coordinate';\nimport { polarToCartesian } from '../../util/graphics';\nimport { findItemsFromView } from '../../util/tooltip';\nimport { BBox } from '../../util/bbox';\nimport { Controller } from './base';\nimport Event from '../event';\nimport View from '../view';\n\n// Filter duplicates, use `name`, `color`, `value` and `title` property values as condition\nfunction uniq(items) {\n const uniqItems = [];\n for (let index = 0; index < items.length; index++) {\n const item = items[index];\n const result = find(uniqItems, (subItem) => {\n return (\n subItem.color === item.color &&\n subItem.name === item.name &&\n subItem.value === item.value &&\n subItem.title === item.title\n );\n });\n if (!result) {\n uniqItems.push(item);\n }\n }\n return uniqItems;\n}\n\n/** @ignore */\nexport default class Tooltip extends Controller {\n private tooltip;\n private tooltipMarkersGroup: IGroup;\n private tooltipCrosshairsGroup: IGroup;\n private xCrosshair;\n private yCrosshair;\n private guideGroup: IGroup;\n\n private isLocked: boolean = false;\n private items;\n private title: string;\n private point: Point;\n\n public get name(): string {\n return 'tooltip';\n }\n\n public init() { }\n\n private isVisible() {\n const option = this.view.getOptions().tooltip;\n return option !== false;\n }\n\n public render() { }\n\n /**\n * Shows tooltip\n * @param point\n */\n public showTooltip(point: Point) {\n this.point = point;\n if (!this.isVisible()) {\n // 如果设置 tooltip(false) 则始终不显示\n return;\n }\n const view = this.view;\n const items = this.getTooltipItems(point);\n if (!items.length) {\n // 无内容则不展示,同时 tooltip 需要隐藏\n this.hideTooltip();\n return;\n }\n const title = this.getTitle(items);\n const dataPoint = {\n x: items[0].x,\n y: items[0].y,\n }; // 数据点位置\n\n view.emit(\n 'tooltip:show',\n Event.fromData(view, 'tooltip:show', {\n items,\n title,\n ...point,\n })\n );\n\n const cfg = this.getTooltipCfg();\n const { follow, showMarkers, showCrosshairs, showContent, marker } = cfg;\n const lastItems = this.items;\n const lastTitle = this.title;\n if (!isEqual(lastTitle, title) || !isEqual(lastItems, items)) {\n // 内容发生变化了更新 tooltip\n view.emit(\n 'tooltip:change',\n Event.fromData(view, 'tooltip:change', {\n items,\n title,\n ...point,\n })\n );\n\n if (isFunction(showContent) ? showContent(items) : showContent) {\n // 展示 tooltip 内容框才渲染 tooltip\n if (!this.tooltip) {\n // 延迟生成\n this.renderTooltip();\n }\n this.tooltip.update(\n mix(\n {},\n cfg,\n {\n items: this.getItemsAfterProcess(items),\n title,\n },\n follow ? point : {}\n )\n );\n this.tooltip.show();\n }\n\n if (showMarkers) {\n // 展示 tooltipMarkers,tooltipMarkers 跟随数据\n this.renderTooltipMarkers(items, marker);\n }\n } else {\n // 内容未发生变化,则更新位置\n if (this.tooltip && follow) {\n this.tooltip.update(point);\n this.tooltip.show(); // tooltip 有可能被隐藏,需要保证显示状态\n }\n\n if (this.tooltipMarkersGroup) {\n this.tooltipMarkersGroup.show();\n }\n }\n\n this.items = items;\n this.title = title;\n\n if (showCrosshairs) {\n // 展示 tooltip 辅助线\n const isCrosshairsFollowCursor = get(cfg, ['crosshairs', 'follow'], false); // 辅助线是否要跟随鼠标\n this.renderCrosshairs(isCrosshairsFollowCursor ? point : dataPoint, cfg);\n }\n }\n\n public hideTooltip() {\n const { follow } = this.getTooltipCfg();\n if (!follow) {\n this.point = null;\n return;\n }\n // hide the tooltipMarkers\n const tooltipMarkersGroup = this.tooltipMarkersGroup;\n if (tooltipMarkersGroup) {\n tooltipMarkersGroup.hide();\n }\n\n // hide crosshairs\n const xCrosshair = this.xCrosshair;\n const yCrosshair = this.yCrosshair;\n if (xCrosshair) {\n xCrosshair.hide();\n }\n if (yCrosshair) {\n yCrosshair.hide();\n }\n\n const tooltip = this.tooltip;\n if (tooltip) {\n tooltip.hide();\n }\n\n this.view.emit('tooltip:hide', Event.fromData(this.view, 'tooltip:hide', {}));\n\n this.point = null;\n }\n\n /**\n * lockTooltip\n */\n public lockTooltip() {\n this.isLocked = true;\n if (this.tooltip) {\n // tooltip contianer 可捕获事件\n this.tooltip.setCapture(true);\n }\n }\n\n /**\n * unlockTooltip\n */\n public unlockTooltip() {\n this.isLocked = false;\n const cfg = this.getTooltipCfg();\n if (this.tooltip) {\n // 重置 capture 属性\n this.tooltip.setCapture(cfg.capture);\n }\n }\n\n /**\n * isTooltipLocked\n */\n public isTooltipLocked() {\n return this.isLocked;\n }\n\n public clear() {\n const { tooltip, xCrosshair, yCrosshair, tooltipMarkersGroup } = this;\n if (tooltip) {\n tooltip.hide();\n tooltip.clear();\n }\n\n if (xCrosshair) {\n xCrosshair.clear();\n }\n\n if (yCrosshair) {\n yCrosshair.clear();\n }\n\n if (tooltipMarkersGroup) {\n tooltipMarkersGroup.clear();\n }\n\n // 如果 customContent 不为空,就重新生成 tooltip\n if (tooltip?.get('customContent')) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n\n // title 和 items 需要清空, 否则 tooltip 内容会出现置空的情况\n // 即:需要走进 !isEqual(lastTitle, title) || !isEqual(lastItems, items) 的逻辑,更新 tooltip 的内容\n this.title = null;\n this.items = null;\n }\n\n public destroy() {\n if (this.tooltip) {\n this.tooltip.destroy();\n }\n if (this.xCrosshair) {\n this.xCrosshair.destroy();\n }\n if (this.yCrosshair) {\n this.yCrosshair.destroy();\n }\n\n if (this.guideGroup) {\n this.guideGroup.remove(true);\n }\n\n this.reset();\n }\n\n public reset() {\n this.items = null;\n this.title = null;\n this.tooltipMarkersGroup = null;\n this.tooltipCrosshairsGroup = null;\n this.xCrosshair = null;\n this.yCrosshair = null;\n this.tooltip = null;\n this.guideGroup = null;\n this.isLocked = false;\n this.point = null;\n }\n\n public changeVisible(visible: boolean) {\n if (this.visible === visible) {\n return;\n }\n const { tooltip, tooltipMarkersGroup, xCrosshair, yCrosshair } = this;\n if (visible) {\n if (tooltip) {\n tooltip.show();\n }\n if (tooltipMarkersGroup) {\n tooltipMarkersGroup.show();\n }\n if (xCrosshair) {\n xCrosshair.show();\n }\n if (yCrosshair) {\n yCrosshair.show();\n }\n } else {\n if (tooltip) {\n tooltip.hide();\n }\n if (tooltipMarkersGroup) {\n tooltipMarkersGroup.hide();\n }\n if (xCrosshair) {\n xCrosshair.hide();\n }\n if (yCrosshair) {\n yCrosshair.hide();\n }\n }\n this.visible = visible;\n }\n\n public getTooltipItems(point: Point) {\n let items = this.findItemsFromView(this.view, point);\n if (items.length) {\n // 三层\n items = flatten(items);\n for (const itemArr of items) {\n for (const item of itemArr) {\n const { x, y } = item.mappingData;\n item.x = isArray(x) ? x[x.length - 1] : x;\n item.y = isArray(y) ? y[y.length - 1] : y;\n }\n }\n\n const { shared } = this.getTooltipCfg();\n // shared: false 代表只显示当前拾取到的 shape 的数据,但是一个 view 会有多个 Geometry,所以有可能会拾取到多个 shape\n if (shared === false && items.length > 1) {\n let snapItem = items[0];\n let min = Math.abs(point.y - snapItem[0].y);\n for (const aItem of items) {\n const yDistance = Math.abs(point.y - aItem[0].y);\n if (yDistance <= min) {\n snapItem = aItem;\n min = yDistance;\n }\n }\n items = [snapItem];\n }\n\n return uniq(flatten(items));\n }\n\n return [];\n }\n\n public layout() { }\n\n public update() {\n if (this.point) {\n this.showTooltip(this.point);\n }\n\n if (this.tooltip) {\n // #2279 修复resize之后tooltip越界的问题\n // 确保tooltip已经创建的情况下\n const canvas = this.view.getCanvas();\n // TODO 逍为 tooltip 的区域不应该是 canvas,而应该是整个 特别是在图比较小的时候\n // 更新 region\n this.tooltip.set('region', {\n start: { x: 0, y: 0 },\n end: { x: canvas.get('width'), y: canvas.get('height') },\n });\n }\n }\n\n /**\n * 当前鼠标点是在 enter tooltip 中\n * @param point\n */\n public isCursorEntered(point: Point) {\n // 是可捕获的,并且点在 tooltip dom 上\n if (this.tooltip) {\n const el: HTMLElement = this.tooltip.getContainer();\n const capture = this.tooltip.get('capture');\n\n if (el && capture) {\n const { x, y, width, height } = el.getBoundingClientRect();\n return new BBox(x, y, width, height).isPointIn(point);\n }\n }\n\n return false;\n }\n\n // 获取 tooltip 配置,因为用户可能会通过 view.tooltip() 重新配置 tooltip,所以就不做缓存,每次直接读取\n public getTooltipCfg() {\n const view = this.view;\n const option = view.getOptions().tooltip;\n const processOption = this.processCustomContent(option);\n const theme = view.getTheme();\n const defaultCfg = get(theme, ['components', 'tooltip'], {});\n const enterable = get(processOption, 'enterable', defaultCfg.enterable);\n return deepMix({}, defaultCfg, processOption, {\n capture: enterable || this.isLocked ? true : false,\n });\n }\n\n // process customContent\n protected processCustomContent(option: TooltipOption) {\n if (isBoolean(option) || !get(option, 'customContent')) {\n return option;\n }\n const currentCustomContent = option.customContent;\n const customContent = (title: string, items: any[]) => {\n const content = currentCustomContent(title, items) || '';\n return isString(content) ? '
' + content + '
' : content;\n };\n return {\n ...option,\n customContent,\n };\n }\n\n private getTitle(items) {\n const title = items[0].title || items[0].name;\n this.title = title;\n\n return title;\n }\n\n private renderTooltip() {\n const canvas = this.view.getCanvas();\n const region = {\n start: { x: 0, y: 0 },\n end: { x: canvas.get('width'), y: canvas.get('height') },\n };\n\n const cfg = this.getTooltipCfg();\n const tooltip = new HtmlTooltip({\n parent: canvas.get('el').parentNode,\n region,\n ...cfg,\n visible: false,\n crosshairs: null,\n });\n\n tooltip.init();\n this.tooltip = tooltip;\n }\n\n private renderTooltipMarkers(items, marker) {\n const tooltipMarkersGroup = this.getTooltipMarkersGroup();\n const rootView = this.view.getRootView();\n const { limitInPlot } = rootView;\n for (const item of items) {\n const { x, y } = item;\n\n // 有裁剪就剪切\n if (limitInPlot || tooltipMarkersGroup?.getClip()) {\n const { type, attrs } = getCoordinateClipCfg(rootView.getCoordinate());\n tooltipMarkersGroup?.setClip({\n type,\n attrs,\n });\n } else {\n // 清除已有的 clip\n tooltipMarkersGroup?.setClip(undefined);\n }\n\n const attrs = {\n fill: item.color,\n symbol: 'circle',\n shadowColor: item.color,\n ...marker,\n x,\n y,\n };\n\n tooltipMarkersGroup.addShape('marker', {\n attrs,\n });\n }\n }\n\n private renderCrosshairs(point: Point, cfg) {\n const crosshairsType = get(cfg, ['crosshairs', 'type'], 'x'); // 默认展示 x 轴上的辅助线\n if (crosshairsType === 'x') {\n if (this.yCrosshair) {\n this.yCrosshair.hide();\n }\n this.renderXCrosshairs(point, cfg);\n } else if (crosshairsType === 'y') {\n if (this.xCrosshair) {\n this.xCrosshair.hide();\n }\n this.renderYCrosshairs(point, cfg);\n } else if (crosshairsType === 'xy') {\n this.renderXCrosshairs(point, cfg);\n this.renderYCrosshairs(point, cfg);\n }\n }\n\n // 渲染 x 轴上的 tooltip 辅助线\n private renderXCrosshairs(point: Point, tooltipCfg) {\n const coordinate = this.getViewWithGeometry(this.view).getCoordinate();\n if (!isPointInCoordinate(coordinate, point)) {\n return;\n }\n let start;\n let end;\n if (coordinate.isRect) {\n if (coordinate.isTransposed) {\n start = {\n x: coordinate.start.x,\n y: point.y,\n };\n end = {\n x: coordinate.end.x,\n y: point.y,\n };\n } else {\n start = {\n x: point.x,\n y: coordinate.end.y,\n };\n end = {\n x: point.x,\n y: coordinate.start.y,\n };\n }\n } else {\n // 极坐标下 x 轴上的 crosshairs 表现为半径\n const angle = getAngleByPoint(coordinate, point);\n const center = coordinate.getCenter();\n const radius = coordinate.getRadius();\n end = polarToCartesian(center.x, center.y, radius, angle);\n start = center;\n }\n\n const cfg = deepMix(\n {\n start,\n end,\n container: this.getTooltipCrosshairsGroup(),\n },\n get(tooltipCfg, 'crosshairs', {}),\n this.getCrosshairsText('x', point, tooltipCfg)\n );\n delete cfg.type; // 与 Crosshairs 组件的 type 冲突故删除\n\n let xCrosshair = this.xCrosshair;\n if (xCrosshair) {\n xCrosshair.update(cfg);\n } else {\n xCrosshair = new Crosshair.Line(cfg);\n xCrosshair.init();\n }\n xCrosshair.render();\n xCrosshair.show();\n this.xCrosshair = xCrosshair;\n }\n\n // 渲染 y 轴上的辅助线\n private renderYCrosshairs(point: Point, tooltipCfg) {\n const coordinate = this.getViewWithGeometry(this.view).getCoordinate();\n if (!isPointInCoordinate(coordinate, point)) {\n return;\n }\n let cfg;\n let type;\n if (coordinate.isRect) {\n let start;\n let end;\n if (coordinate.isTransposed) {\n start = {\n x: point.x,\n y: coordinate.end.y,\n };\n end = {\n x: point.x,\n y: coordinate.start.y,\n };\n } else {\n start = {\n x: coordinate.start.x,\n y: point.y,\n };\n end = {\n x: coordinate.end.x,\n y: point.y,\n };\n }\n cfg = {\n start,\n end,\n };\n type = 'Line';\n } else {\n // 极坐标下 y 轴上的 crosshairs 表现为圆弧\n cfg = {\n center: coordinate.getCenter(),\n // @ts-ignore\n radius: getDistanceToCenter(coordinate, point),\n startAngle: coordinate.startAngle,\n endAngle: coordinate.endAngle,\n };\n type = 'Circle';\n }\n\n cfg = deepMix(\n {\n container: this.getTooltipCrosshairsGroup(),\n },\n cfg,\n get(tooltipCfg, 'crosshairs', {}),\n this.getCrosshairsText('y', point, tooltipCfg)\n );\n delete cfg.type; // 与 Crosshairs 组件的 type 冲突故删除\n\n let yCrosshair = this.yCrosshair;\n if (yCrosshair) {\n // 如果坐标系发生直角坐标系与极坐标的切换操作\n if (\n (coordinate.isRect && yCrosshair.get('type') === 'circle') ||\n (!coordinate.isRect && yCrosshair.get('type') === 'line')\n ) {\n yCrosshair = new Crosshair[type](cfg);\n yCrosshair.init();\n } else {\n yCrosshair.update(cfg);\n }\n } else {\n yCrosshair = new Crosshair[type](cfg);\n yCrosshair.init();\n }\n yCrosshair.render();\n yCrosshair.show();\n this.yCrosshair = yCrosshair;\n }\n\n private getCrosshairsText(type, point: Point, tooltipCfg) {\n let textCfg = get(tooltipCfg, ['crosshairs', 'text']);\n const follow = get(tooltipCfg, ['crosshairs', 'follow']);\n const items = this.items;\n\n if (textCfg) {\n const view = this.getViewWithGeometry(this.view);\n // 需要展示文本\n const firstItem = items[0];\n const xScale = view.getXScale();\n const yScale = view.getYScales()[0];\n let xValue;\n let yValue;\n if (follow) {\n // 如果需要跟随鼠标移动,就需要将当前鼠标坐标点转换为对应的数值\n const invertPoint = this.view.getCoordinate().invert(point);\n xValue = xScale.invert(invertPoint.x); // 转换为原始值\n yValue = yScale.invert(invertPoint.y); // 转换为原始值\n } else {\n xValue = firstItem.data[xScale.field];\n yValue = firstItem.data[yScale.field];\n }\n\n const content = type === 'x' ? xValue : yValue;\n if (isFunction(textCfg)) {\n textCfg = textCfg(type, content, items, point);\n } else {\n textCfg.content = content;\n }\n\n return {\n text: textCfg,\n };\n }\n }\n\n // 获取存储 tooltipMarkers 和 crosshairs 的容器\n private getGuideGroup() {\n if (!this.guideGroup) {\n const foregroundGroup = this.view.foregroundGroup;\n this.guideGroup = foregroundGroup.addGroup({\n name: 'tooltipGuide',\n capture: false,\n });\n }\n\n return this.guideGroup;\n }\n\n // 获取 tooltipMarkers 存储的容器\n private getTooltipMarkersGroup() {\n let tooltipMarkersGroup = this.tooltipMarkersGroup;\n if (tooltipMarkersGroup && !tooltipMarkersGroup.destroyed) {\n tooltipMarkersGroup.clear();\n tooltipMarkersGroup.show();\n } else {\n tooltipMarkersGroup = this.getGuideGroup().addGroup({\n name: 'tooltipMarkersGroup',\n });\n tooltipMarkersGroup.toFront();\n this.tooltipMarkersGroup = tooltipMarkersGroup;\n }\n return tooltipMarkersGroup;\n }\n\n // 获取 tooltip crosshairs 存储的容器\n private getTooltipCrosshairsGroup() {\n let tooltipCrosshairsGroup = this.tooltipCrosshairsGroup;\n if (!tooltipCrosshairsGroup) {\n tooltipCrosshairsGroup = this.getGuideGroup().addGroup({\n name: 'tooltipCrosshairsGroup',\n capture: false,\n });\n tooltipCrosshairsGroup.toBack();\n this.tooltipCrosshairsGroup = tooltipCrosshairsGroup;\n }\n return tooltipCrosshairsGroup;\n }\n\n private findItemsFromView(view: View, point: Point) {\n if (view.getOptions().tooltip === false) {\n // 如果 view 关闭了 tooltip\n return [];\n }\n\n const tooltipCfg = this.getTooltipCfg();\n let result = findItemsFromView(view, point, tooltipCfg);\n // 递归查找,并合并结果\n for (const childView of view.views) {\n result = result.concat(this.findItemsFromView(childView, point));\n }\n\n return result;\n }\n\n // FIXME: hack 方法\n // 因为 tooltip 的交互是挂载在 Chart 上,所以当chart 上没有绘制 Geometry 的时候,就查找不到数据,并且绘图区域同子 View 的区域不同\n private getViewWithGeometry(view) {\n if (view.geometries.length) {\n return view;\n }\n\n return find(view.views, (childView) => this.getViewWithGeometry(childView));\n }\n\n /**\n * 根据用户配置的 items 配置,来进行用户自定义的处理,并返回最终的 items\n * 默认不做任何处理\n */\n private getItemsAfterProcess(originalItems: TooltipItem[]): TooltipItem[] {\n const { customItems } = this.getTooltipCfg();\n const fn = customItems ? customItems : (v) => v;\n\n return fn(originalItems);\n }\n}\n","import { IGroup, IShape } from '../../dependents';\nimport { GAnimateCfg } from '../../interface';\nimport { AnimateExtraCfg } from '../interface';\n\n/** @ignore */\ninterface AnimationMap {\n [key: string]: Animation;\n}\n\ntype Animation = (element: IGroup | IShape, animateCfg: GAnimateCfg, cfg: AnimateExtraCfg) => void;\n\nconst ANIMATIONS_MAP: AnimationMap = {};\n\n/**\n * 根据名称获取对应的动画执行函数\n * @param type 动画函数名称\n */\nexport function getAnimation(type: string) {\n return ANIMATIONS_MAP[type.toLowerCase()];\n}\n\n/**\n * 注册动画执行函数\n * @param type 动画执行函数名称\n * @param animation 动画执行函数\n */\nexport function registerAnimation(type: string, animation: Animation) {\n ANIMATIONS_MAP[type.toLowerCase()] = animation;\n}\n","import { deepMix, get, isFunction } from '@antv/util';\nimport { FIELD_ORIGIN } from '../constant';\nimport { Coordinate, IGroup, IShape } from '../dependents';\nimport { AnimateCfg, Data, Datum, GAnimateCfg, Point } from '../interface';\nimport { AnimateExtraCfg } from './interface';\n\nimport { getAnimation } from './animation';\n\n// 默认的动画参数配置\nexport const DEFAULT_ANIMATE_CFG = {\n appear: {\n duration: 450,\n easing: 'easeQuadOut',\n }, // 初始入场动画配置\n update: {\n duration: 400,\n easing: 'easeQuadInOut',\n }, // 更新时发生变更的动画配置\n enter: {\n duration: 400,\n easing: 'easeQuadInOut',\n }, // 更新时新增元素的入场动画配置\n leave: {\n duration: 350,\n easing: 'easeQuadIn',\n }, // 更新时销毁动画配置\n};\n\n// 各个 Geometry 默认的动画执行函数\nconst GEOMETRY_ANIMATE_CFG = {\n interval: (coordinate: Coordinate) => {\n return {\n enter: {\n animation: coordinate.isRect ? (coordinate.isTransposed ? 'scale-in-x' : 'scale-in-y') : 'fade-in',\n },\n update: {\n animation: coordinate.isPolar && coordinate.isTransposed ? 'sector-path-update' : null,\n },\n leave: {\n animation: 'fade-out',\n },\n };\n },\n line: {\n enter: {\n animation: 'fade-in',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n path: {\n enter: {\n animation: 'fade-in',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n point: {\n appear: {\n animation: 'zoom-in',\n },\n enter: {\n animation: 'zoom-in',\n },\n leave: {\n animation: 'zoom-out',\n },\n },\n area: {\n enter: {\n animation: 'fade-in',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n polygon: {\n enter: {\n animation: 'fade-in',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n schema: {\n enter: {\n animation: 'fade-in',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n edge: {\n enter: {\n animation: 'fade-in',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n label: {\n appear: {\n animation: 'fade-in',\n delay: 450,\n },\n enter: {\n animation: 'fade-in',\n },\n update: {\n animation: 'position-update',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n};\n\n// 各个 Geometry 默认的群组出场动画\nconst GEOMETRY_GROUP_APPEAR_ANIMATION = {\n line: () => {\n return {\n animation: 'wave-in',\n };\n },\n area: () => {\n return {\n animation: 'wave-in',\n };\n },\n path: () => {\n return {\n animation: 'fade-in',\n };\n },\n interval(coordinate: Coordinate) {\n let animation;\n\n if (coordinate.isRect) {\n animation = coordinate.isTransposed ? 'grow-in-x' : 'grow-in-y';\n } else {\n animation = 'grow-in-xy';\n if (coordinate.isPolar && coordinate.isTransposed) {\n // pie chart\n animation = 'wave-in';\n }\n }\n return {\n animation,\n };\n },\n schema: (coordinate) => {\n let animation;\n if (coordinate.isRect) {\n animation = coordinate.isTransposed ? 'grow-in-x' : 'grow-in-y';\n } else {\n animation = 'grow-in-xy';\n }\n return {\n animation,\n };\n },\n polygon: () => {\n return {\n animation: 'fade-in',\n duration: 500,\n };\n },\n edge: () => {\n return {\n animation: 'fade-in',\n };\n },\n};\n\n// 解析用户的动画配置\nfunction parseAnimateConfig(animateCfg: AnimateCfg, data: Data | Datum): GAnimateCfg {\n return {\n delay: isFunction(animateCfg.delay) ? animateCfg.delay(data) : animateCfg.delay,\n easing: isFunction(animateCfg.easing) ? animateCfg.easing(data) : animateCfg.easing,\n duration: isFunction(animateCfg.duration) ? animateCfg.duration(data) : animateCfg.duration,\n callback: animateCfg.callback,\n repeat: animateCfg.repeat,\n };\n}\n\n/**\n * @ignore\n * 获取 elementName 对应的动画配置,当声明了 `animateType`,则返回 `animateType` 对应的动画配置\n * @param elementName 元素名称\n * @param coordinate 做表弟类型\n * @param animateType 可选,动画类型\n */\nexport function getDefaultAnimateCfg(elementName: string, coordinate: Coordinate, animateType?: string) {\n let animateCfg = GEOMETRY_ANIMATE_CFG[elementName];\n\n if (animateCfg) {\n if (isFunction(animateCfg)) {\n animateCfg = animateCfg(coordinate);\n }\n animateCfg = deepMix({}, DEFAULT_ANIMATE_CFG, animateCfg);\n\n if (animateType) {\n return animateCfg[animateType];\n }\n }\n return animateCfg;\n}\n\n/**\n * @ignore\n * 工具函数\n * 根据用户传入的配置为 shape 执行动画\n * @param shape 执行动画的图形元素\n * @param animateCfg 动画配置\n * @param cfg 额外的信息\n */\nexport function doAnimate(shape: IGroup | IShape, animateCfg: AnimateCfg, cfg: AnimateExtraCfg) {\n const data = get(shape.get('origin'), 'data', FIELD_ORIGIN);\n const animation = animateCfg.animation; // 获取动画执行函数\n const parsedAnimateCfg = parseAnimateConfig(animateCfg, data);\n if (animation) {\n // 用户声明了动画执行函数\n const animateFunction = getAnimation(animation);\n if (animateFunction) {\n animateFunction(shape, parsedAnimateCfg, cfg);\n }\n } else {\n // 没有声明,则根据 toAttrs 做差值动画\n shape.animate(cfg.toAttrs, parsedAnimateCfg);\n }\n}\n\n/**\n * @ignore\n * 执行 Geometry 群组入场动画\n * @param container 执行群组动画的图形元素\n * @param animateCfg 动画配置\n * @param geometryType geometry 类型\n * @param coordinate 坐标系对象\n * @param minYPoint y 轴最小值对应的画布坐标点\n */\nexport function doGroupAppearAnimate(\n container: IGroup,\n animateCfg: AnimateCfg,\n geometryType: string,\n coordinate: Coordinate,\n minYPoint: Point\n) {\n if (GEOMETRY_GROUP_APPEAR_ANIMATION[geometryType]) {\n const defaultCfg = GEOMETRY_GROUP_APPEAR_ANIMATION[geometryType](coordinate);\n const animation = getAnimation(get(defaultCfg, 'animation', ''));\n if (animation) {\n const cfg = {\n ...DEFAULT_ANIMATE_CFG.appear,\n ...defaultCfg,\n ...animateCfg,\n };\n container.stopAnimate(); // 先结束当前 container 动画\n animation(container, cfg, {\n coordinate,\n minYPoint,\n toAttrs: null,\n });\n }\n }\n}\n","/**\n * Name of Background Shape\n */\nexport const BACKGROUND_SHAPE = 'element-background';\n","import { deepMix, each, get, isArray, isEmpty, isEqual, isFunction, isString } from '@antv/util';\n// 暂未发包\n// @ts-ignore\nimport { propagationDelegate } from '@antv/component';\nimport { doAnimate } from '../../animate';\nimport Base from '../../base';\nimport { BBox, IGroup, IShape } from '../../dependents';\nimport { AnimateOption, Datum, ShapeFactory, ShapeInfo, StateCfg } from '../../interface';\nimport { getReplaceAttrs } from '../../util/graphics';\nimport Geometry from '../base';\nimport { GEOMETRY_LIFE_CIRCLE } from '../../constant';\nimport { BACKGROUND_SHAPE } from '../shape/constant';\n\n/** Element 构造函数传入参数类型 */\ninterface ElementCfg {\n /** 用于创建各种 shape 的工厂对象 */\n shapeFactory: ShapeFactory;\n /** shape 容器 */\n container: IGroup;\n /** element 的索引 */\n elementIndex?: number;\n /** 虚拟 group,用户可以不传入 */\n offscreenGroup?: IGroup;\n /** 是否可见 */\n visible?: boolean;\n}\n\n/**\n * Element 图形元素。\n * 定义:在 G2 中,我们会将数据通过图形语法映射成不同的图形,比如点图,数据集中的每条数据会对应一个点,柱状图每条数据对应一个柱子,线图则是一组数据对应一条折线,Element 即一条/一组数据对应的图形元素,它代表一条数据或者一个数据集,在图形层面,它可以是单个 Shape 也可以是多个 Shape,我们称之为图形元素。\n */\nexport default class Element extends Base {\n /** 用于创建各种 shape 的工厂对象 */\n public shapeFactory: ShapeFactory;\n /** shape 容器 */\n public container: IGroup;\n /** element 索引 */\n public elementIndex: number;\n /** 最后创建的图形对象 */\n public shape: IShape | IGroup;\n /** shape 的动画配置 */\n public animate: AnimateOption | boolean;\n\n // 非构造函数属性,需要外部赋值\n /** element 对应的 Geometry 实例 */\n public geometry: Geometry;\n /** 保存 shape 对应的 label */\n public labelShape: IGroup[];\n\n /** 绘制的 shape 类型 */\n private shapeType: string;\n\n /** shape 绘制需要的数据 */\n private model: ShapeInfo;\n /** 原始数据 */\n private data: Datum;\n // 存储当前开启的状态\n private states: string[] = [];\n private statesStyle;\n // 虚拟 Group\n private offscreenGroup: IGroup;\n\n constructor(cfg: ElementCfg) {\n super(cfg);\n\n const { shapeFactory, container, offscreenGroup, elementIndex, visible = true } = cfg;\n this.shapeFactory = shapeFactory;\n this.container = container;\n this.offscreenGroup = offscreenGroup;\n this.visible = visible;\n this.elementIndex = elementIndex;\n }\n\n /**\n * 绘制图形。\n * @param model 绘制数据。\n * @param isUpdate 可选,是否是更新发生后的绘制。\n */\n public draw(model: ShapeInfo, isUpdate: boolean = false) {\n this.model = model;\n this.data = model.data; // 存储原始数据\n this.shapeType = this.getShapeType(model);\n\n // 绘制图形\n this.drawShape(model, isUpdate);\n\n if (this.visible === false) {\n // 用户在初始化的时候声明 visible: false\n this.changeVisible(false);\n }\n }\n\n /**\n * 更新图形。\n * @param model 更新的绘制数据。\n */\n public update(model: ShapeInfo) {\n const { shapeFactory, shape } = this;\n if (!shape) {\n return;\n }\n\n // 更新数据\n this.model = model;\n this.data = model.data;\n this.shapeType = this.getShapeType(model);\n\n // step 1: 更新 shape 携带的信息\n this.setShapeInfo(shape, model);\n\n // step 2: 使用虚拟 Group 重新绘制 shape,然后更新当前 shape\n const offscreenGroup = this.getOffscreenGroup();\n const newShape = shapeFactory.drawShape(this.shapeType, model, offscreenGroup);\n // @ts-ignore\n newShape.cfg.data = this.data;\n // @ts-ignore\n newShape.cfg.origin = model;\n // label 需要使用\n newShape.cfg.element = this;\n\n // step 3: 同步 shape 样式\n this.syncShapeStyle(shape, newShape, this.getStates(), this.getAnimateCfg('update'));\n }\n\n /**\n * 销毁 element 实例。\n */\n public destroy() {\n const { shapeFactory, shape } = this;\n\n if (shape) {\n const animateCfg = this.getAnimateCfg('leave');\n if (animateCfg) {\n // 指定了动画配置则执行销毁动画\n doAnimate(shape, animateCfg, {\n coordinate: shapeFactory.coordinate,\n toAttrs: {\n ...shape.attr(),\n },\n });\n } else {\n // 否则直接销毁\n shape.remove(true);\n }\n }\n\n // reset\n this.states = [];\n this.shapeFactory = undefined;\n this.container = undefined;\n this.shape = undefined;\n this.animate = undefined;\n this.geometry = undefined;\n this.labelShape = undefined;\n this.model = undefined;\n this.data = undefined;\n this.offscreenGroup = undefined;\n this.statesStyle = undefined;\n\n super.destroy();\n }\n\n /**\n * 显示或者隐藏 element。\n * @param visible 是否可见。\n */\n public changeVisible(visible: boolean) {\n super.changeVisible(visible);\n\n if (visible) {\n if (this.shape) {\n this.shape.show();\n }\n if (this.labelShape) {\n this.labelShape.forEach((label: IGroup) => {\n label.show();\n });\n }\n } else {\n if (this.shape) {\n this.shape.hide();\n }\n if (this.labelShape) {\n this.labelShape.forEach((label: IGroup) => {\n label.hide();\n });\n }\n }\n }\n\n /**\n * 设置 Element 的状态。\n *\n * 目前 Element 开放三种状态:\n * 1. active\n * 2. selected\n * 3. inactive\n *\n * 这三种状态相互独立,可以进行叠加。\n *\n * 这三种状态的样式可在 [[Theme]] 主题中或者通过 `geometry.state()` 接口进行配置。\n *\n * ```ts\n * // 激活 active 状态\n * setState('active', true);\n * ```\n *\n * @param stateName 状态名\n * @param stateStatus 是否开启状态\n */\n public setState(stateName: string, stateStatus: boolean) {\n const { states, shapeFactory, model, shape, shapeType } = this;\n\n const index = states.indexOf(stateName);\n if (stateStatus) {\n // 开启状态\n if (index > -1) {\n // 该状态已经开启,则返回\n return;\n }\n states.push(stateName);\n if (stateName === 'active' || stateName === 'selected') {\n shape?.toFront();\n }\n } else {\n if (index === -1) {\n // 关闭状态,但是状态未设置过\n return;\n }\n states.splice(index, 1);\n if (stateName === 'active' || stateName === 'selected') {\n const { sortZIndex, zIndexReversed } = this.geometry;\n const idx = zIndexReversed ? this.geometry.elements.length - this.elementIndex : this.elementIndex;\n sortZIndex ? shape.setZIndex(idx) : shape.set('zIndex', idx);\n }\n }\n\n // 使用虚拟 group 重新绘制 shape,然后对这个 shape 应用状态样式后,更新当前 shape。\n const offscreenShape = shapeFactory.drawShape(shapeType, model, this.getOffscreenGroup());\n if (states.length) {\n // 应用当前状态\n this.syncShapeStyle(shape, offscreenShape, states, null);\n } else {\n // 如果没有状态,则需要恢复至原始状态\n this.syncShapeStyle(shape, offscreenShape, ['reset'], null);\n }\n\n offscreenShape.remove(true); // 销毁,减少内存占用\n\n const eventObject = {\n state: stateName,\n stateStatus,\n element: this,\n target: this.container,\n };\n this.container.emit('statechange', eventObject);\n // @ts-ignore\n propagationDelegate(this.shape, 'statechange', eventObject);\n }\n\n /**\n * 清空状量态,恢复至初始状态。\n */\n public clearStates() {\n const states = this.states;\n\n each(states, (state) => {\n this.setState(state, false);\n });\n\n this.states = [];\n }\n\n /**\n * 查询当前 Element 上是否已设置 `stateName` 对应的状态。\n * @param stateName 状态名称。\n * @returns true 表示存在,false 表示不存在。\n */\n public hasState(stateName: string): boolean {\n return this.states.includes(stateName);\n }\n\n /**\n * 获取当前 Element 上所有的状态。\n * @returns 当前 Element 上所有的状态数组。\n */\n public getStates(): string[] {\n return this.states;\n }\n\n /**\n * 获取 Element 对应的原始数据。\n * @returns 原始数据。\n */\n public getData(): Datum {\n return this.data;\n }\n\n /**\n * 获取 Element 对应的图形绘制数据。\n * @returns 图形绘制数据。\n */\n public getModel(): ShapeInfo {\n return this.model;\n }\n\n /**\n * 返回 Element 元素整体的 bbox,包含文本及文本连线(有的话)。\n * @returns 整体包围盒。\n */\n public getBBox(): BBox {\n const { shape, labelShape } = this;\n let bbox = {\n x: 0,\n y: 0,\n minX: 0,\n minY: 0,\n maxX: 0,\n maxY: 0,\n width: 0,\n height: 0,\n };\n if (shape) {\n bbox = shape.getCanvasBBox();\n }\n if (labelShape) {\n labelShape.forEach((label: IGroup) => {\n const labelBBox = label.getCanvasBBox();\n bbox.x = Math.min(labelBBox.x, bbox.x);\n bbox.y = Math.min(labelBBox.y, bbox.y);\n bbox.minX = Math.min(labelBBox.minX, bbox.minX);\n bbox.minY = Math.min(labelBBox.minY, bbox.minY);\n bbox.maxX = Math.max(labelBBox.maxX, bbox.maxX);\n bbox.maxY = Math.max(labelBBox.maxY, bbox.maxY);\n });\n }\n\n bbox.width = bbox.maxX - bbox.minX;\n bbox.height = bbox.maxY - bbox.minY;\n\n return bbox;\n }\n\n private getStatesStyle() {\n if (!this.statesStyle) {\n const { shapeType, geometry, shapeFactory } = this;\n const stateOption = geometry.stateOption;\n const defaultShapeType = shapeFactory.defaultShapeType;\n const stateTheme = shapeFactory.theme[shapeType] || shapeFactory.theme[defaultShapeType];\n this.statesStyle = deepMix({}, stateTheme, stateOption);\n }\n\n return this.statesStyle;\n }\n\n // 从主题中获取对应状态量的样式\n private getStateStyle(stateName: string, shapeKey?: string): StateCfg {\n const statesStyle = this.getStatesStyle();\n const stateCfg = get(statesStyle, [stateName, 'style'], {});\n const shapeStyle = stateCfg[shapeKey] || stateCfg;\n if (isFunction(shapeStyle)) {\n return shapeStyle(this);\n }\n\n return shapeStyle;\n }\n\n // 获取动画配置\n private getAnimateCfg(animateType: string) {\n const animate = this.animate;\n if (animate) {\n const cfg = animate[animateType];\n\n if (cfg) {\n // 增加动画的回调函数,如果外部传入了,则先执行外部,然后发射 geometry 的 animate 事件\n return {\n ...cfg,\n callback: () => {\n isFunction(cfg.callback) && cfg.callback();\n this.geometry?.emit(GEOMETRY_LIFE_CIRCLE.AFTER_DRAW_ANIMATE);\n },\n };\n }\n return cfg;\n }\n\n return null;\n }\n\n // 绘制图形\n private drawShape(model: ShapeInfo, isUpdate: boolean = false) {\n const { shapeFactory, container, shapeType } = this;\n\n // 自定义 shape 有可能返回空 shape\n this.shape = shapeFactory.drawShape(shapeType, model, container);\n\n if (this.shape) {\n this.setShapeInfo(this.shape, model); // 存储绘图数据\n // @ts-ignore\n const name = this.shape.cfg.name;\n // 附加 element 的 name, name 现在支持数组了,很好用了\n if (!name) {\n // 这个地方如果用户添加了 name, 则附加 name ,否则就添加自己的 name\n // @ts-ignore\n this.shape.cfg.name = ['element', this.shapeFactory.geometryType];\n } else if (isString(name)) {\n // @ts-ignore\n this.shape.cfg.name = ['element', name];\n }\n // 执行入场动画\n const animateType = isUpdate ? 'enter' : 'appear';\n const animateCfg = this.getAnimateCfg(animateType);\n if (animateCfg) {\n // 开始执行动画的生命周期\n this.geometry?.emit(GEOMETRY_LIFE_CIRCLE.BEFORE_DRAW_ANIMATE);\n\n doAnimate(this.shape, animateCfg, {\n coordinate: shapeFactory.coordinate,\n toAttrs: {\n ...this.shape.attr(),\n },\n });\n }\n }\n }\n\n // 获取虚拟 Group\n private getOffscreenGroup() {\n if (!this.offscreenGroup) {\n const GroupCtor = this.container.getGroupBase(); // 获取分组的构造函数\n this.offscreenGroup = new GroupCtor({});\n }\n\n return this.offscreenGroup;\n }\n\n // 设置 shape 上需要携带的信息\n private setShapeInfo(shape: IShape | IGroup, data: ShapeInfo) {\n // @ts-ignore\n shape.cfg.origin = data;\n // @ts-ignore\n shape.cfg.element = this;\n if (shape.isGroup()) {\n const children = shape.get('children');\n children.forEach((child) => {\n this.setShapeInfo(child, data);\n });\n }\n }\n\n // 更新当前 shape 的样式\n private syncShapeStyle(\n sourceShape: IGroup | IShape,\n targetShape: IGroup | IShape,\n states: string[] = [],\n animateCfg,\n index: number = 0\n ) {\n if (!sourceShape || !targetShape) {\n return;\n }\n // 所有的 shape 都需要同步 clip\n const clip = sourceShape.get('clipShape');\n const newClip = targetShape.get('clipShape');\n\n this.syncShapeStyle(clip, newClip, states, animateCfg);\n\n if (sourceShape.isGroup()) {\n const children = sourceShape.get('children');\n const newChildren = targetShape.get('children');\n for (let i = 0; i < children.length; i++) {\n this.syncShapeStyle(children[i], newChildren[i], states, animateCfg, index + i);\n }\n } else {\n if (!isEmpty(states) && !isEqual(states, ['reset'])) {\n let name = sourceShape.get('name');\n if (isArray(name)) {\n // 会附加 element 的 name\n name = name[1];\n }\n\n each(states, (state) => {\n // background shape 不进行状态样式设置\n if (targetShape.get('name') !== BACKGROUND_SHAPE) {\n const style = this.getStateStyle(state, name || index); // 如果用户没有设置 name,则默认根据索引值\n targetShape.attr(style);\n }\n });\n }\n const newAttrs = getReplaceAttrs(sourceShape as IShape, targetShape as IShape);\n\n if (this.animate) {\n if (animateCfg) {\n this.geometry?.emit(GEOMETRY_LIFE_CIRCLE.BEFORE_DRAW_ANIMATE);\n // 需要进行动画\n doAnimate(sourceShape, animateCfg, {\n coordinate: this.shapeFactory.coordinate,\n toAttrs: newAttrs,\n shapeModel: this.model,\n });\n } else if (!isEmpty(states)) {\n sourceShape.stopAnimate();\n sourceShape.animate(newAttrs, {\n duration: 300,\n });\n } else {\n sourceShape.attr(newAttrs);\n }\n } else {\n sourceShape.attr(newAttrs);\n }\n }\n }\n\n private getShapeType(model: ShapeInfo) {\n const shape = get(model, 'shape');\n return isArray(shape) ? shape[0] : shape;\n }\n}\n","import { BBox, IGroup, IShape } from '../../dependents';\nimport { LooseObject } from '../../interface';\nimport { GeometryLabelConstructor } from './base';\nimport { LabelItem } from './interface';\n\n/**\n * label 布局函数定义\n * @param items 存储每个 label 的详细信息\n * @param labels 所有的 labels 图形实例\n * @param shapes 所有 label 对应的图形元素实例\n * @param region 画布区域\n * @param cfg 用于存储各个布局函数开放给用户的配置数据\n */\ntype GeometryLabelsLayoutFn = (\n items: LabelItem[],\n labels: IGroup[],\n shapes: IShape[] | IGroup[],\n region: BBox,\n cfg?: LooseObject\n) => void;\n\nconst GEOMETRY_LABELS_MAP: Record = {};\nconst GEOMETRY_LABELS_LAYOUT_MAP: Record = {};\n\n/**\n * 获取 `type` 对应的 [[GeometryLabel]] 类\n * @param type\n * @returns\n */\nexport function getGeometryLabel(type: string): GeometryLabelConstructor {\n return GEOMETRY_LABELS_MAP[type.toLowerCase()];\n}\n\n/**\n * 注册定义的 GeometryLabel 类\n * @param type GeometryLabel 类型名称\n * @param ctor GeometryLabel 类\n */\nexport function registerGeometryLabel(type: string, ctor: GeometryLabelConstructor) {\n GEOMETRY_LABELS_MAP[type.toLowerCase()] = ctor;\n}\n\n/**\n * 获取 `type` 对应的 [[GeometryLabelsLayoutFn]] label 布局函数\n * @param type 布局函数名称\n * @returns\n */\nexport function getGeometryLabelLayout(type: string): GeometryLabelsLayoutFn {\n return GEOMETRY_LABELS_LAYOUT_MAP[type.toLowerCase()];\n}\n\n/**\n * 注册定义的 label 布局函数\n * @param type label 布局函数名称\n * @param layoutFn label 布局函数\n */\nexport function registerGeometryLabelLayout(type: string, layoutFn: GeometryLabelsLayoutFn) {\n GEOMETRY_LABELS_LAYOUT_MAP[type.toLowerCase()] = layoutFn;\n}\n","import { LooseObject } from '@antv/g-svg';\nimport { parsePathString } from '@antv/path-util';\nimport { deepMix, get, upperFirst } from '@antv/util';\nimport { IGroup, IShape, PathCommand } from '../../dependents';\nimport {\n Point,\n RegisterShape,\n RegisterShapeFactory,\n Shape,\n ShapeFactory,\n ShapeInfo,\n ShapeMarkerAttrs,\n ShapeMarkerCfg,\n ShapePoint,\n} from '../../interface';\n\nimport { convertNormalPath, convertPolarPath } from './util/path';\n\n/** ShapeFactory 基类 */\nconst ShapeFactoryBase = {\n /** 坐标系对象 */\n coordinate: null,\n /** 默认绘制的 Shape 类型 */\n defaultShapeType: null,\n /** 主题样式 */\n theme: null,\n /**\n * 获取 shape 绘制需要的关键点\n * @param shapeType shape 类型\n * @param shapePoint 每条数据映射后的坐标点以及 size 数值\n * @returns 图形关键点信息\n */\n getShapePoints(shapeType: string, shapePoint: ShapePoint) {\n const shape = this.getShape(shapeType);\n if (shape.getPoints) {\n return shape.getPoints(shapePoint);\n }\n\n return this.getDefaultPoints(shapePoint);\n },\n /**\n * 根据 shape 类型获取具体的 shape 实例\n * @param shapeType string shape 的类型\n * @returns\n */\n getShape(shapeType: string): Shape {\n const shape = this[shapeType] || this[this.defaultShapeType];\n shape.coordinate = this.coordinate;\n\n return shape;\n },\n /**\n * 获取 shape 的默认关键点\n * @override\n */\n getDefaultPoints() {\n return [];\n },\n /**\n * 获取 shape 的默认绘制样式 (内置的 shapeFactory 均有注册默认样式)\n */\n getDefaultStyle(geometryTheme: LooseObject): LooseObject {\n return get(geometryTheme, [this.defaultShapeType, 'default', 'style'], {});\n },\n /**\n * 获取 shape 对应的缩略图配置信息。\n * @param shapeType shape 类型\n * @param color 颜色\n * @param isInPolar 是否在极坐标系下\n * @returns 返回缩略图 marker 配置。\n */\n getMarker(shapeType: string, markerCfg: ShapeMarkerCfg): ShapeMarkerAttrs {\n let shape = this.getShape(shapeType);\n\n if (!shape.getMarker) {\n const defaultShapeType = this.defaultShapeType;\n shape = this.getShape(defaultShapeType);\n }\n\n const theme = this.theme;\n const shapeStyle = get(theme, [shapeType, 'default'], {});\n const markerStyle = shape.getMarker(markerCfg);\n\n return deepMix({}, shapeStyle, markerStyle);\n },\n /**\n * 绘制 shape\n * @override\n * @param shapeType 绘制的 shape 类型\n * @param cfg 绘制 shape 需要的信息\n * @param element Element 实例\n * @returns\n */\n drawShape(shapeType: string, cfg: ShapeInfo, container: IGroup): IShape | IGroup {\n const shape = this.getShape(shapeType);\n return shape.draw(cfg, container);\n },\n};\n\n/** Shape 基类 */\nconst ShapeBase = {\n /** 坐标系对象 */\n coordinate: null,\n /**\n * 将归一化的 path 转换成坐标系下的 path\n * @param path 归一化的路径\n * @returns\n */\n parsePath(path: string): PathCommand[] {\n const coordinate = this.coordinate;\n let parsedPath = parsePathString(path);\n if (coordinate.isPolar) {\n parsedPath = convertPolarPath(coordinate, parsedPath);\n } else {\n parsedPath = convertNormalPath(coordinate, parsedPath);\n }\n return parsedPath;\n },\n /**\n * 将归一化的坐标转换成画布坐标\n * @param point 归一化的坐标点数据\n * @returns\n */\n parsePoint(point: Point): Point {\n const coordinate = this.coordinate;\n return coordinate.convert(point);\n },\n /**\n * 0~1 points 转 画布 points\n * @param points 节点集合\n * @returns\n */\n parsePoints(points: Point[]): Point[] {\n const coordinate = this.coordinate;\n return points.map((point) => {\n return coordinate.convert(point);\n });\n },\n /**\n * 绘制 shape\n * @override\n */\n draw(cfg: ShapeInfo, container: IGroup) {},\n};\n\nconst ShapeFactoryMap = {};\n\n/**\n * 注册 ShapeFactory。\n * @param factoryName ShapeFactory 名称,对应 Geometry 几何标记名称。\n * @param cfg 注册 ShapeFactory 需要覆写定义的属性。\n * @returns 返回 ShapeFactory 对象。\n */\nexport function registerShapeFactory(factoryName: string, cfg: RegisterShapeFactory): ShapeFactory {\n const className = upperFirst(factoryName);\n const geomObj = {\n ...ShapeFactoryBase,\n ...cfg,\n geometryType: factoryName,\n };\n ShapeFactoryMap[className] = geomObj;\n return geomObj;\n}\n\n/**\n * 注册 Shape。\n * @param factoryName 对应的 ShapeFactory 名称。\n * @param shapeType 注册的 shape 名称。\n * @param cfg 注册 Shape 需要覆写定义的属性。\n * @returns shape 返回注册的 shape 对象。\n */\nexport function registerShape(factoryName: string, shapeType: string, cfg: RegisterShape): Shape {\n const className = upperFirst(factoryName);\n const factory = ShapeFactoryMap[className];\n const shapeObj = {\n ...ShapeBase,\n ...cfg,\n };\n factory[shapeType] = shapeObj;\n return shapeObj;\n}\n\n/**\n * 获取 factoryName 对应的 shapeFactory\n * @param factoryName\n * @returns shape factory\n */\nexport function getShapeFactory(factoryName: string): ShapeFactory {\n const className = upperFirst(factoryName);\n return ShapeFactoryMap[className];\n}\n","import { isEqual, some } from '@antv/util';\nimport { ShapeInfo } from '../../interface';\n\n/**\n * @ignore\n * Determines whether model is change\n * @param currentModel\n * @param preModel\n * @returns\n */\nexport function isModelChange(currentModel: ShapeInfo, preModel: ShapeInfo) {\n return some(\n ['color', 'shape', 'size', 'x', 'y', 'isInCircle', 'data', 'style', 'defaultStyle', 'points', 'mappingData'],\n (key: string) => {\n return !isEqual(currentModel[key], preModel[key]);\n }\n );\n}\n","import { isArray } from '@antv/util';\n\n/** @ignore */\nexport function parseFields(field: string | string[]): string[] {\n if (isArray(field)) {\n return field;\n }\n\n return field.split('*');\n}\n","/**\n * 对比当前元素和之前的元素,返回 added, updated, removed\n * @param keyItem 之前的元素的,按照 key-item 的 object 的形式存储\n * @param keys 现在的元素,按照 array 的形式存储\n * @returns 由 added, updated, removed array 构成的 object\n */\nexport function diff(keyItem: Record, keys: string[]) {\n const added = [];\n const updated = [];\n const removed = [];\n const keyIncluded = new Map();\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (keyItem[key]) updated.push(key);\n else added.push(key);\n keyIncluded.set(key, true);\n }\n\n Object.keys(keyItem).forEach((key) => {\n if (!keyIncluded.has(key)) removed.push(key);\n });\n\n return {\n added,\n updated,\n removed,\n };\n}\n","import { Adjust, getAdjust as getAdjustClass } from '@antv/adjust';\nimport { Attribute, getAttribute as getAttributeClass } from '@antv/attr';\nimport {\n clone,\n deepMix,\n each,\n flatten,\n get,\n isArray,\n isEmpty,\n isEqual,\n isFunction,\n isNil,\n isNumber,\n isObject,\n isPlainObject,\n isString,\n set,\n} from '@antv/util';\nimport { doGroupAppearAnimate, getDefaultAnimateCfg } from '../animate';\nimport Base from '../base';\nimport { FIELD_ORIGIN, GROUP_ATTRS } from '../constant';\nimport { BBox, Coordinate, IGroup, IShape, Scale } from '../dependents';\nimport {\n AdjustOption,\n AdjustType,\n AnimateOption,\n AttributeOption,\n ColorAttrCallback,\n Data,\n Datum,\n GeometryLabelCfg,\n GeometryTooltipOption,\n LabelCallback,\n LabelOption,\n LooseObject,\n MappingDatum,\n ScaleOption,\n ShapeAttrCallback,\n ShapeFactory,\n ShapeInfo,\n ShapeMarkerCfg,\n ShapeMarkerAttrs,\n ShapePoint,\n SizeAttrCallback,\n StateOption,\n StyleCallback,\n StyleOption,\n TooltipCallback,\n CustomOption,\n} from '../interface';\nimport { uniq } from '../util/helper';\nimport Element from './element';\nimport { getGeometryLabel } from './label';\nimport GeometryLabel from './label/base';\nimport { getShapeFactory } from './shape/base';\nimport { group } from './util/group-data';\nimport { isModelChange } from './util/is-model-change';\nimport { parseFields } from './util/parse-fields';\nimport { diff } from './util/diff';\nimport { inferScaleType } from '../util/scale';\nimport { getXDimensionLength } from '../util/coordinate';\n\n/** @ignore */\ninterface AttributeInstanceCfg {\n fields?: string[];\n callback?: (...args) => any;\n values?: string[] | number[];\n scales?: Scale[];\n}\ninterface DimValuesMapType {\n [dim: string]: number[];\n}\n/** @ignore */\ninterface AdjustInstanceCfg {\n type: AdjustType;\n adjustNames?: string[];\n xField?: string;\n yField?: string;\n\n dodgeBy?: string;\n marginRatio?: number;\n dodgeRatio?: number;\n\n size?: number;\n height?: number;\n reverseOrder?: boolean;\n\n /** 像素级柱间宽度,调整offset */\n intervalPadding?: number;\n dodgePadding?: number;\n /** x维度长度,计算归一化padding使用 */\n xDimensionLength?: number;\n /** 分组数,计算offset */\n groupNum?: number;\n /** 用户配置宽度 size */\n defaultSize?: number;\n /** 最大最小宽度约束 */\n maxColumnWidth?: number;\n minColumnWidth?: number;\n /** 柱宽比例 */\n columnWidthRatio?: number;\n /** 用户自定义的dimValuesMap */\n dimValuesMap?: DimValuesMapType;\n}\n\n/** geometry.init() 传入参数 */\nexport interface InitCfg {\n /** 坐标系 */\n coordinate?: Coordinate;\n /** 数据 */\n data?: Data;\n /** 主题对象 */\n theme?: LooseObject;\n /** 列定义 */\n scaleDefs?: Record;\n /** 因为数据使用的引用,所以需要有一个标识位标识数据是否发生了更新 */\n isDataChanged?: boolean;\n isCoordinateChanged?: boolean;\n}\n\n/** Geometry 构造函数参数 */\nexport interface GeometryCfg {\n /** Geometry shape 的容器。 */\n container: IGroup;\n /** 绘制的坐标系对象。 */\n coordinate?: Coordinate;\n /** 绘制数据。 */\n data?: Data;\n /** 需要的 scales。 */\n scales?: Record;\n /** 列定义 */\n scaleDefs?: Record;\n /** Geometry labels 的容器 */\n labelsContainer?: IGroup;\n /** 是否对数据进行排序 */\n sortable?: boolean;\n /** elements 的 zIndex 默认按顺序提升,通过 zIndexReversed 可以反序,从而数据越前,层级越高 */\n zIndexReversed?: boolean;\n /** 是否需要对 zIndex 进行 sort。因为耗时长,由具体场景自行决定 */\n sortZIndex?: boolean;\n /** 是否可见 */\n visible?: boolean;\n /** 主题配置 */\n theme?: LooseObject;\n\n /** 组间距 */\n intervalPadding?: number;\n /** 组内间距 */\n dodgePadding?: number;\n /** 柱状图最大宽度 */\n maxColumnWidth?: number;\n /** 柱状图最小宽度 */\n minColumnWidth?: number;\n /** 默认宽度占比,interval类型和schema类型通用 */\n columnWidthRatio?: number;\n /** 玫瑰图占比 */\n roseWidthRatio?: number;\n /** 多层饼图/环图占比 */\n multiplePieWidthRatio?: number;\n}\n\n// 根据 elementId 查找对应的 label,因为有可能一个 element 对应多个 labels,所以在给 labels 打标识时做了处理\n// 打标规则详见 ./label/base.ts#L263\nfunction filterLabelsById(id: string, labelsMap: Record) {\n const labels = [];\n each(labelsMap, (label: IGroup, labelId: string) => {\n const elementId = labelId.split(' ')[0];\n if (elementId === id) {\n labels.push(label);\n }\n });\n\n return labels;\n}\n\n/**\n * Geometry 几何标记基类,主要负责数据到图形属性的映射以及绘制逻辑。\n */\nexport default class Geometry extends Base {\n /** Geometry 几何标记类型。 */\n public readonly type: string = 'base';\n /** ShapeFactory 对应的类型。 */\n public readonly shapeType: string;\n\n // 在创建 Geometry 实例时可以传入的属性\n /** Coordinate 坐标系实例。 */\n public coordinate: Coordinate;\n /** 用户绘制数据。 */\n public data: Data;\n /** 图形绘制容器。 */\n public readonly container: IGroup;\n /** label 绘制容器。 */\n public readonly labelsContainer: IGroup;\n /** 是否对数据进行排序,默认为 false。 */\n public sortable: boolean;\n /** 当前 Geometry 实例主题。 */\n public theme: LooseObject;\n /** 存储 geometry 需要的 scales,需要外部传入。 */\n public scales: Record;\n /** scale 定义,需要外部传入。 */\n public scaleDefs: Record;\n /** 画布区域,用于 label 布局。 */\n public canvasRegion: BBox;\n\n // 内部产生的属性\n /** Attribute map */\n public attributes: Record = {};\n /** Element map */\n public elements: Element[] = [];\n /**\n * 存储处理后的数据,\n * + init() 及 updateData() 逻辑后, 结构为 Data[];\n * + paint() 逻辑后,结构为 MappingDatum[][]。\n */\n public dataArray: MappingDatum[][];\n /** 存储 tooltip 配置信息。 */\n public tooltipOption: GeometryTooltipOption | boolean;\n /** 存储 label 配置信息。 */\n public labelOption: LabelOption | false;\n /** 状态量相关的配置项 */\n public stateOption: StateOption;\n /** 使用 key-value 结构存储 Element,key 为每个 Element 实例对应的唯一 ID */\n public elementsMap: Record = {};\n /** animate 配置项 */\n public animateOption: AnimateOption | boolean = true;\n /** 图形属性映射配置 */\n protected attributeOption: Record = {};\n /** adjust 配置项 */\n protected adjustOption: AdjustOption[];\n /** style 配置项 */\n protected styleOption: StyleOption;\n /** custom 自定义的配置项 */\n protected customOption: CustomOption;\n /** 每个 Geometry 对应的 Shape 工厂实例,用于创建各个 Shape */\n protected shapeFactory: ShapeFactory;\n /** 存储上一次渲染时的 element 映射表,用于更新逻辑 */\n protected lastElementsMap: Record = {};\n /** 是否生成多个点来绘制图形。 */\n protected generatePoints: boolean = false;\n /** 存储发生图形属性映射前的数据 */\n protected beforeMappingData: Data[] = null;\n /** 存储每个 shape 的默认 size,用于 Interval、Schema 几何标记 */\n protected defaultSize: number;\n\n // 用户通过 geometry 构造函数设置的主题\n private userTheme: LooseObject;\n private adjusts: Record = {};\n private lastAttributeOption;\n private idFields: string[] = [];\n private geometryLabel: GeometryLabel;\n\n // 柱状图间距相关配置\n /** 组间距 */\n protected intervalPadding: number;\n /** 组内间距 */\n protected dodgePadding: number;\n /** 柱状图最大宽度 */\n protected maxColumnWidth: number;\n /** 柱状图最小宽度 */\n protected minColumnWidth: number;\n /** 一般柱状图宽度占比 */\n protected columnWidthRatio: number;\n /** 玫瑰图占比 */\n protected roseWidthRatio: number;\n /** 多层饼图/环图占比 */\n protected multiplePieWidthRatio: number;\n /** elements 的 zIndex 默认按顺序提升,通过 zIndexReversed 可以反序,从而数据越前,层级越高 */\n public zIndexReversed?: boolean;\n /** 是否需要对 zIndex 进行 sort。因为耗时长,由具体场景自行决定 */\n public sortZIndex?: boolean;\n\n /** 虚拟 Group,用于图形更新 */\n private offscreenGroup: IGroup;\n private groupScales: Scale[];\n private hasSorted: boolean = false;\n protected isCoordinateChanged: boolean = false;\n\n /**\n * 创建 Geometry 实例。\n * @param cfg\n */\n constructor(cfg: GeometryCfg) {\n super(cfg);\n\n const {\n container,\n labelsContainer,\n coordinate,\n data,\n sortable = false,\n visible = true,\n theme,\n scales = {},\n scaleDefs = {},\n // 柱状图间隔与宽度相关配置\n intervalPadding,\n dodgePadding,\n maxColumnWidth,\n minColumnWidth,\n columnWidthRatio,\n roseWidthRatio,\n multiplePieWidthRatio,\n zIndexReversed,\n sortZIndex,\n } = cfg;\n\n this.container = container;\n this.labelsContainer = labelsContainer;\n this.coordinate = coordinate;\n this.data = data;\n this.sortable = sortable;\n this.visible = visible;\n this.userTheme = theme;\n this.scales = scales;\n this.scaleDefs = scaleDefs;\n // 柱状图间隔与宽度相关配置\n this.intervalPadding = intervalPadding;\n this.dodgePadding = dodgePadding;\n this.maxColumnWidth = maxColumnWidth;\n this.minColumnWidth = minColumnWidth;\n this.columnWidthRatio = columnWidthRatio;\n this.roseWidthRatio = roseWidthRatio;\n this.multiplePieWidthRatio = multiplePieWidthRatio;\n this.zIndexReversed = zIndexReversed;\n this.sortZIndex = sortZIndex;\n }\n\n /**\n * 配置 position 通道映射规则。\n *\n * @example\n * ```typescript\n * // 数据结构: [{ x: 'A', y: 10, color: 'red' }]\n * geometry.position('x*y');\n * geometry.position([ 'x', 'y' ]);\n * geometry.position({\n * fields: [ 'x', 'y' ],\n * });\n * ```\n *\n * @param cfg 映射规则\n * @returns\n */\n public position(cfg: string | string[] | AttributeOption): Geometry {\n let positionCfg = cfg;\n if (!isPlainObject(cfg)) {\n // 字符串字段或者数组字段\n positionCfg = {\n fields: parseFields(cfg),\n };\n }\n\n const fields = get(positionCfg, 'fields');\n if (fields.length === 1) {\n // 默认填充一维 1*xx\n fields.unshift('1');\n set(positionCfg, 'fields', fields);\n }\n set(this.attributeOption, 'position', positionCfg);\n\n return this;\n }\n\n /**\n * 配置 color 通道映射规则。\n *\n * @example\n * ```typescript\n * // data: [{ x: 'A', y: 10, color: 'red' }, { x: 'B', y: 30, color: 'yellow' }]\n * geometry.color({\n * fields: [ 'x' ],\n * values: [ '#1890ff', '#5AD8A6' ],\n * });\n * ```\n *\n * @param field 映射规则\n * @returns\n */\n public color(field: AttributeOption): Geometry;\n /**\n * @example\n * ```typescript\n * // data: [{ x: 'A', y: 10, color: 'red' }, { x: 'B', y: 30, color: 'yellow' }]\n *\n * // 使用 '#1890ff' 颜色渲染图形\n * geometry.color('#1890ff');\n *\n * // 根据 x 字段的数据值进行颜色的映射,这时候 G2 会在内部调用默认的回调函数,读取默认提供的颜色进行数据值到颜色值的映射。\n * geometry.color('x');\n *\n * // 将 'x' 字段的数据值映射至指定的颜色值 colors(可以是字符串也可以是数组),此时用于通常映射分类数据\n * geometry.color('x', [ '#1890ff', '#5AD8A6' ]);\n *\n * // 使用回调函数进行颜色值的自定义;可以使用多个字段使用、*号连接\n * geometry.color('x', (xVal) => {\n * if (xVal === 'a') {\n * return 'red';\n * }\n * return 'blue';\n * });\n *\n * // 指定颜色的渐变路径,用于映射连续的数据\n * geometry.color('x', '#BAE7FF-#1890FF-#0050B3');\n * ```\n *\n * @param field 参与颜色映射的数据字段,多个字段使用 '*' 连接符进行连接。\n * @param cfg Optional, color 映射规则。\n * @returns\n */\n public color(field: string, cfg?: string | string[] | ColorAttrCallback): Geometry;\n public color(field: AttributeOption | string, cfg?: string | string[] | ColorAttrCallback): Geometry {\n this.createAttrOption('color', field, cfg);\n\n return this;\n }\n\n /**\n * 配置 shape 通道映射规则。\n *\n * @example\n *\n * ```typescript\n * // data: [{ x: 'A', y: 10, color: 'red' }, { x: 'B', y: 30, color: 'yellow' }]\n * geometry.shape({\n * fields: [ 'x' ],\n * });\n * ```\n *\n * @param field 映射规则配置。\n * @returns\n */\n public shape(field: AttributeOption): Geometry;\n /**\n *\n * @example\n * ```typescript\n * // data: [{ x: 'A', y: 10, color: 'red' }, { x: 'B', y: 30, color: 'yellow' }]\n *\n * // 指定常量,将所有数据值映射到固定的 shape\n * geometry.shape('circle');\n *\n * // 将指定的字段映射到内置的 shapes 数组中\n * geometry.shape('x');\n *\n * // 将指定的字段映射到指定的 shapes 数组中\n * geometry.shape('x', [ 'circle', 'diamond', 'square' ]);\n *\n * // 使用回调函数获取 shape,用于个性化的 shape 定制,可以根据单个或者多个字段确定\n * geometry.shape('x', (xVal) => {\n * if (xVal === 'a') {\n * return 'circle';\n * }\n * return 'diamond';\n * });\n * ```\n *\n * @param field 参与 shape 映射的数据字段,多个字段使用 '*' 连接符进行连接。\n * @param cfg Optional, shape 映射规则。\n * @returns\n */\n public shape(field: string, cfg?: string[] | ShapeAttrCallback): Geometry;\n public shape(field: AttributeOption | string, cfg?: string[] | ShapeAttrCallback): Geometry {\n this.createAttrOption('shape', field, cfg);\n\n return this;\n }\n\n /**\n * 配置 size 通道映射规则。\n *\n * @example\n * ```typescript\n * // data: [{ x: 'A', y: 10, color: 'red' }, { x: 'B', y: 30, color: 'yellow' }]\n * geometry.size({\n * values: [ 10 ],\n * })\n * ```\n *\n * @param field 映射规则。\n * @returns\n */\n public size(field: AttributeOption): Geometry;\n /**\n *\n * @example\n * ```typescript\n * // data: [{ x: 'A', y: 10, color: 'red' }, { x: 'B', y: 30, color: 'yellow' }]\n *\n * // 直接指定像素大小\n * geometry.size(10);\n *\n * // 指定映射到 size 的字段,使用内置的默认大小范围为 [1, 10]\n * geometry.size('x');\n *\n * // 指定映射到 size 字段外,还提供了 size 的最大值和最小值范围\n * geometry.size('x', [ 5, 30 ]);\n *\n * // 使用回调函数映射 size,用于个性化的 size 定制,可以使用多个字段进行映射\n * geometry.size('x', (xVal) => {\n * if (xVal === 'a') {\n * return 10;\n * }\n * return 5;\n * });\n * ```\n *\n * @param field 参与 size 映射的数据字段,多个字段使用 '*' 连接符进行连接。\n * @param cfg Optional, size 映射规则\n * @returns\n */\n public size(field: number | string, cfg?: [number, number] | SizeAttrCallback): Geometry;\n public size(field: AttributeOption | number | string, cfg?: [number, number] | SizeAttrCallback): Geometry {\n this.createAttrOption('size', field, cfg);\n\n return this;\n }\n\n /**\n * 设置数据调整方式。G2 目前内置了四种类型:\n * 1. dodge\n * 2. stack\n * 3. symmetric\n * 4. jitter\n *\n *\n * **Tip**\n * + 对于 'dodge' 类型,可以额外进行如下属性的配置:\n * ```typescript\n * geometry.adjust('dodge', {\n * marginRatio: 0, // 取 0 到 1 范围的值(相对于每个柱子宽度),用于控制一个分组中柱子之间的间距\n * dodgeBy: 'x', // 该属性只对 'dodge' 类型生效,声明以哪个数据字段为分组依据\n * });\n * ```\n *\n * + 对于 'stack' 类型,可以额外进行如下属性的配置:\n * ```typescript\n * geometry.adjust('stack', {\n * reverseOrder: false, // 用于控制是否对数据进行反序操作\n * });\n * ```\n *\n * @example\n * ```typescript\n * geometry.adjust('stack');\n *\n * geometry.adjust({\n * type: 'stack',\n * reverseOrder: false,\n * });\n *\n * // 组合使用 adjust\n * geometry.adjust([ 'stack', 'dodge' ]);\n *\n * geometry.adjust([\n * { type: 'stack' },\n * { type: 'dodge', dodgeBy: 'x' },\n * ]);\n * ```\n *\n * @param adjustCfg 数据调整配置\n * @returns\n */\n public adjust(adjustCfg: string | string[] | AdjustOption | AdjustOption[]): Geometry {\n let adjusts: any = adjustCfg;\n if (isString(adjustCfg) || isPlainObject(adjustCfg)) {\n adjusts = [adjustCfg];\n }\n each(adjusts, (adjust, index) => {\n if (!isObject(adjust)) {\n adjusts[index] = { type: adjust };\n }\n });\n\n this.adjustOption = adjusts;\n return this;\n }\n\n /**\n * 图形样式配置。\n *\n * @example\n * ```typescript\n * // 配置图形样式\n * style({\n * lineWidth: 2,\n * stroke: '#1890ff',\n * });\n *\n * // 根据具体的数据进行详细配置\n * style({\n * fields: [ 'x', 'y' ], // 数据字段\n * callback: (xVal, yVal) => {\n * const style = { lineWidth: 2, stroke: '#1890ff' };\n * if (xVal === 'a') {\n * style.lineDash = [ 2, 2 ];\n * }\n * return style;\n * },\n * });\n * ```\n *\n * @param field 配置样式属性或者样式规则。\n * @returns\n */\n public style(field: StyleOption | LooseObject): Geometry;\n /**\n * @example\n * ```typescript\n * style('x*y', (xVal, yVal) => {\n * const style = { lineWidth: 2, stroke: '#1890ff' };\n * if (xVal === 'a') {\n * style.lineDash = [ 2, 2 ];\n * }\n * return style;\n * });\n * ```\n *\n * @param field 数据字段或者样式配置规则。\n * @param styleFunc Optional, 样式配置回调函数。\n * @returns\n */\n public style(field: string, styleFunc: StyleCallback): Geometry;\n public style(field: StyleOption | LooseObject | string, styleFunc?: StyleCallback): Geometry {\n if (isString(field)) {\n const fields = parseFields(field);\n this.styleOption = {\n fields,\n callback: styleFunc,\n };\n } else {\n const { fields, callback, cfg } = field as StyleOption;\n if (fields || callback || cfg) {\n this.styleOption = field;\n } else {\n this.styleOption = {\n cfg: field,\n };\n }\n }\n\n return this;\n }\n\n /**\n * 配置 Geometry 显示的 tooltip 内容。\n *\n * `tooltip(false)` 代表关闭 tooltip。\n * `tooltip(true)` 代表开启 tooltip。\n *\n * Geometry 默认允许 tooltip 展示,我们可以使用以下方法对 tooltip 的展示内容进行配置:\n *\n * @example\n * ```typescript\n * // data: [{x: 'a', y: 10}]\n * tooltip({\n * fields: [ 'x' ],\n * });\n * ```\n * ![](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*268uQ50if60AAAAAAAAAAABkARQnAQ)\n *\n * ```typescript\n * tooltip({\n * fields: [ 'x', 'y' ],\n * });\n * ```\n * ![](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*A_ujSa8QhtcAAAAAAAAAAABkARQnAQ)\n *\n * tooltip() 方法同样支持数据映射及回调用法:\n *\n * @example\n * ```typescript\n * chart.tooltip({\n * itemTpl: '
  • {x}: {y}
  • ',\n * });\n *\n * chart.line()\n * .position('x*y')\n * .tooltip({\n * fields: [ 'x', 'y' ],\n * callback: (x, y) => {\n * return {\n * x,\n * y,\n * };\n * },\n * });\n * ```\n *\n * 其返回的值必须为对象,该值中的属性同 chart.tooltip() 的 itemTpl 模板相对应,返回的变量可用于 itemTpl 的字符串模板。\n *\n * @param field tooltip 配置信息。\n * @returns\n */\n public tooltip(field: GeometryTooltipOption | boolean): Geometry;\n /**\n * @example\n * ```typescript\n * // data: [{x: 'a', y: 10}]\n *\n * // 等同于 tooltip({ fields: [ 'x' ] })\n * tooltip('x');\n *\n * // 等同于 tooltip({ fields: [ 'x', 'y' ] })\n * tooltip('x*y');\n *\n * // 等同于 tooltip({ fields: [ 'x', 'y' ], callback: (x, y) => { x, y } })\n * tooltip('x*y', (x, y) => {\n * return {\n * x,\n * y,\n * };\n * });\n * ```\n *\n * @param field 参与映射的字段。\n * @param cfg Optional, 回调函数\n * @returns\n */\n public tooltip(field: string, cfg?: TooltipCallback): Geometry;\n public tooltip(field: GeometryTooltipOption | boolean | string, cfg?: TooltipCallback): Geometry {\n if (isString(field)) {\n const fields = parseFields(field);\n this.tooltipOption = {\n fields,\n callback: cfg,\n };\n } else {\n this.tooltipOption = field;\n }\n\n return this;\n }\n\n /**\n * Geometry 动画配置。\n *\n * + `animate(false)` 关闭动画\n * + `animate(true)` 开启动画,默认开启。\n *\n * 我们将动画分为四个场景:\n * 1. appear: 图表第一次加载时的入场动画;\n * 2. enter: 图表绘制完成,发生更新后,产生的新图形的进场动画;\n * 3. update: 图表绘制完成,数据发生变更后,有状态变更的图形的更新动画;\n * 4. leave: 图表绘制完成,数据发生变更后,被销毁图形的销毁动画。\n *\n * @example\n * ```typescript\n * animate({\n * enter: {\n * duration: 1000, // enter 动画执行时间\n * },\n * leave: false, // 关闭 leave 销毁动画\n * });\n * ```\n *\n * @param cfg 动画配置\n * @returns\n */\n public animate(cfg: AnimateOption | boolean): Geometry {\n this.animateOption = cfg;\n return this;\n }\n\n /**\n * Geometry label 配置。\n *\n * @example\n * ```ts\n * // data: [ {x: 1, y: 2, z: 'a'}, {x: 2, y: 2, z: 'b'} ]\n * // 在每个图形上显示 z 字段对应的数值\n * label({\n * fields: [ 'z' ]\n * });\n *\n * label(false); // 不展示 label\n *\n * // 在每个图形上显示 x 字段对应的数值,同时配置文本颜色为红色\n * label('x', {\n * style: {\n * fill: 'red',\n * },\n * })\n *\n * // 以 type 类型的 label 渲染每个图形上显示 x 字段对应的数值,同时格式化文本内容\n * label('x', (xValue) => {\n * return {\n * content: xValue + '%',\n * };\n * }, {\n * type: 'base' // 声明 label 类型\n * })\n * ```\n *\n * @param field\n * @returns label\n */\n public label(field: LabelOption | false | string): Geometry;\n public label(field: string, secondParam: GeometryLabelCfg | LabelCallback): Geometry;\n public label(field: string, secondParam: LabelCallback, thirdParam: GeometryLabelCfg): Geometry;\n public label(\n field: string | LabelOption | false,\n secondParam?: GeometryLabelCfg | LabelCallback,\n thirdParam?: GeometryLabelCfg\n ): Geometry {\n if (isString(field)) {\n const labelOption: LabelOption = {};\n const fields = parseFields(field);\n labelOption.fields = fields;\n if (isFunction(secondParam)) {\n labelOption.callback = secondParam;\n } else if (isPlainObject(secondParam)) {\n labelOption.cfg = secondParam;\n }\n\n if (thirdParam) {\n labelOption.cfg = thirdParam;\n }\n this.labelOption = labelOption;\n } else {\n this.labelOption = field;\n }\n\n return this;\n }\n\n /**\n * 设置状态对应的样式。\n *\n * @example\n * ```ts\n * chart.interval().state({\n * selected: {\n * animate: { duration: 100, easing: 'easeLinear' },\n * style: {\n * lineWidth: 2,\n * stroke: '#000',\n * },\n * },\n * });\n * ```\n *\n * 如果图形 shape 是由多个 shape 组成,即为一个 G.Group 对象,那么针对 group 中的每个 shape,我们需要使用下列方式进行状态样式设置:\n * 如果我们为 group 中的每个 shape 设置了 'name' 属性(shape.set('name', 'xx')),则以 'name' 作为 key,否则默认以索引值(即 shape 的 添加顺序)为 key。\n *\n * ```ts\n * chart.interval().shape('groupShape').state({\n * selected: {\n * style: {\n * 0: { lineWidth: 2 },\n * 1: { fillOpacity: 1 },\n * }\n * }\n * });\n * ```\n *\n * @param cfg 状态样式\n */\n public state(cfg: StateOption) {\n this.stateOption = cfg;\n return this;\n }\n\n /**\n * 用于向 shape 中传入自定义的数据。目前可能仅仅可能用于在自定义 shape 的时候,像自定义 shape 中传入自定义的数据,方便实现自定义 shape 的配置能力。\n *\n * @example\n * ```ts\n * chart.interval().customInfo({ yourData: 'hello, g2!' });\n * ```\n *\n * 然后在自定义 shape 的时候,可以拿到这个信息。\n *\n * ```ts\n * registerShape('interval', 'your-shape', {\n * draw(shapeInfo, container) {\n * const { customInfo } = shapeInfo;\n * console.log(customInfo); // will log { yourData: 'hello, g2!' }.\n * }\n * });\n * ```\n *\n * @param cfg\n */\n public customInfo(cfg: any) {\n this.customOption = cfg;\n return this;\n }\n\n /**\n * 初始化 Geomtry 实例:\n * 创建 [[Attribute]] and [[Scale]] 实例,进行数据处理,包括分组、数值化以及数据调整。\n */\n public init(cfg: InitCfg = {}) {\n this.setCfg(cfg);\n this.initAttributes(); // 创建图形属性\n\n // 数据加工:分组 -> 数字化 -> adjust\n this.processData(this.data);\n\n // 调整 scale\n this.adjustScale();\n }\n\n /**\n * Geometry 更新。\n * @param [cfg] 更新的配置\n */\n public update(cfg: InitCfg = {}) {\n const { data, isDataChanged, isCoordinateChanged } = cfg;\n const { attributeOption, lastAttributeOption } = this;\n\n if (!isEqual(attributeOption, lastAttributeOption)) {\n // 映射发生改变,则重新创建图形属性\n this.init(cfg);\n } else if (data && (isDataChanged || !isEqual(data, this.data))) {\n // 数据发生变化\n this.setCfg(cfg);\n this.initAttributes(); // 创建图形属性\n this.processData(data); // 数据加工:分组 -> 数字化 -> adjust\n } else {\n // 有可能 coordinate 变化\n this.setCfg(cfg);\n }\n\n // 调整 scale\n this.adjustScale();\n this.isCoordinateChanged = isCoordinateChanged;\n }\n\n /**\n * 将原始数据映射至图形空间,同时创建图形对象。\n */\n public paint(isUpdate: boolean = false) {\n if (this.animateOption) {\n this.animateOption = deepMix({}, getDefaultAnimateCfg(this.type, this.coordinate), this.animateOption);\n }\n\n this.defaultSize = undefined;\n this.elementsMap = {};\n this.elements = [];\n const offscreenGroup = this.getOffscreenGroup();\n offscreenGroup.clear();\n\n const beforeMappingData = this.beforeMappingData;\n const dataArray = this.beforeMapping(beforeMappingData);\n\n this.dataArray = new Array(dataArray.length);\n for (let i = 0; i < dataArray.length; i++) {\n const data = dataArray[i];\n this.dataArray[i] = this.mapping(data);\n }\n this.updateElements(this.dataArray, isUpdate);\n this.lastElementsMap = this.elementsMap;\n\n if (this.canDoGroupAnimation(isUpdate)) {\n // 如果用户没有配置 appear.animation,就默认走整体动画\n const container = this.container;\n const type = this.type;\n const coordinate = this.coordinate;\n const animateCfg = get(this.animateOption, 'appear');\n const yScale = this.getYScale();\n const yMinPoint = coordinate.convert({\n x: 0,\n y: yScale.scale(this.getYMinValue()),\n });\n doGroupAppearAnimate(container, animateCfg, type, coordinate, yMinPoint);\n }\n\n // 添加 label\n if (this.labelOption) {\n this.renderLabels(flatten(this.dataArray) as unknown as MappingDatum[], isUpdate);\n }\n\n // 缓存,用于更新\n this.lastAttributeOption = {\n ...this.attributeOption,\n };\n\n if (this.visible === false) {\n // 用户在初始化的时候声明 visible: false\n this.changeVisible(false);\n }\n }\n\n /**\n * 清空当前 Geometry,配置项仍保留,但是内部创建的对象全部清空。\n * @override\n */\n public clear() {\n const { container, geometryLabel, offscreenGroup } = this;\n if (container) {\n container.clear();\n }\n\n if (geometryLabel) {\n geometryLabel.clear();\n }\n\n if (offscreenGroup) {\n offscreenGroup.clear();\n }\n\n // 属性恢复至出厂状态\n this.scaleDefs = undefined;\n this.attributes = {};\n this.scales = {};\n this.elementsMap = {};\n this.lastElementsMap = {};\n this.elements = [];\n this.adjusts = {};\n this.dataArray = null;\n this.beforeMappingData = null;\n this.lastAttributeOption = undefined;\n this.defaultSize = undefined;\n this.idFields = [];\n this.groupScales = undefined;\n this.hasSorted = false;\n this.isCoordinateChanged = false;\n }\n\n /**\n * 销毁 Geometry 实例。\n */\n public destroy() {\n this.clear();\n const container = this.container;\n container.remove(true);\n\n if (this.offscreenGroup) {\n this.offscreenGroup.remove(true);\n this.offscreenGroup = null;\n }\n\n if (this.geometryLabel) {\n this.geometryLabel.destroy();\n this.geometryLabel = null;\n }\n this.theme = undefined;\n this.shapeFactory = undefined;\n\n super.destroy();\n }\n\n /**\n * 获取决定分组的图形属性对应的 scale 实例。\n * @returns\n */\n public getGroupScales(): Scale[] {\n return this.groupScales;\n }\n\n /**\n * 根据名字获取图形属性实例。\n */\n public getAttribute(name: string): Attribute {\n return this.attributes[name];\n }\n\n /** 获取 x 轴对应的 scale 实例。 */\n public getXScale(): Scale {\n return this.getAttribute('position').scales[0];\n }\n\n /** 获取 y 轴对应的 scale 实例。 */\n public getYScale(): Scale {\n return this.getAttribute('position').scales[1];\n }\n\n /**\n * 获取决定分组的图形属性实例。\n */\n public getGroupAttributes(): Attribute[] {\n const rst = [];\n each(this.attributes, (attr: Attribute) => {\n if (GROUP_ATTRS.includes(attr.type)) {\n rst.push(attr);\n }\n });\n return rst;\n }\n\n /** 获取图形属性默认的映射值。 */\n public getDefaultValue(attrName: string) {\n let value: any;\n const attr = this.getAttribute(attrName);\n if (attr && isEmpty(attr.scales)) {\n // 获取映射至常量的值\n value = attr.values[0];\n }\n return value;\n }\n\n /**\n * 获取该数据发生图形映射后对应的 Attribute 图形空间数据。\n * @param attr Attribute 图形属性实例。\n * @param obj 需要进行映射的原始数据。\n * @returns\n */\n public getAttributeValues(attr: Attribute, obj: Datum) {\n const params = [];\n const scales = attr.scales;\n for (let index = 0, length = scales.length; index < length; index++) {\n const scale = scales[index];\n const field = scale.field;\n if (scale.isIdentity) {\n params.push(scale.values);\n } else {\n params.push(obj[field]);\n }\n }\n\n return attr.mapping(...params);\n }\n\n /**\n * 获取对应的 adjust 实例\n * @param adjustType\n * @returns\n */\n public getAdjust(adjustType: string) {\n return this.adjusts[adjustType];\n }\n\n /**\n * 获得 coordinate 实例\n * @returns\n */\n public getCoordinate() {\n return this.coordinate;\n }\n\n public getData() {\n return this.data;\n }\n\n /**\n * 获取 shape 对应的 marker 样式。\n * @param shapeName shape 具体名字\n * @param cfg marker 信息\n * @returns\n */\n public getShapeMarker(shapeName: string, cfg: ShapeMarkerCfg): ShapeMarkerAttrs {\n const shapeFactory = this.getShapeFactory();\n return shapeFactory.getMarker(shapeName, cfg);\n }\n\n /**\n * 根据一定的规则查找 Geometry 的 Elements。\n *\n * ```typescript\n * getElementsBy((element) => {\n * const data = element.getData();\n *\n * return data.a === 'a';\n * });\n * ```\n *\n * @param condition 定义查找规则的回调函数。\n * @returns\n */\n public getElementsBy(condition: (element: Element) => boolean): Element[] {\n return this.elements.filter((element) => condition(element));\n }\n\n /**\n * 获取 Geometry 的所有 Elements。\n *\n * ```typescript\n * getElements();\n * ```\n */\n public getElements() {\n return this.elements;\n }\n\n /**\n * 获取数据对应的唯一 id。\n * @param data Element 对应的绘制数据\n * @returns\n */\n public getElementId(data: MappingDatum | MappingDatum[]) {\n data = isArray(data) ? data[0] : data;\n const originData = data[FIELD_ORIGIN];\n\n // 如果用户声明了使用哪些字段作为 id 值\n if (this.idFields.length) {\n let elementId = originData[this.idFields[0]];\n for (let index = 1; index < this.idFields.length; index++) {\n elementId += '-' + originData[this.idFields[index]];\n }\n\n return elementId;\n }\n\n const type = this.type;\n const xScale = this.getXScale();\n const yScale = this.getYScale();\n const xField = xScale.field || 'x';\n const yField = yScale.field || 'y';\n const yVal = originData[yField];\n let xVal;\n if (xScale.type === 'identity') {\n xVal = xScale.values[0];\n } else {\n xVal = originData[xField];\n }\n\n let id: string;\n if (type === 'interval' || type === 'schema') {\n id = `${xVal}`;\n } else if (type === 'line' || type === 'area' || type === 'path') {\n id = type;\n } else {\n id = `${xVal}-${yVal}`;\n }\n\n const groupScales = this.groupScales;\n\n for (let index = 0, length = groupScales.length; index < length; index++) {\n const groupScale = groupScales[index];\n const field = groupScale.field;\n id = `${id}-${originData[field]}`;\n }\n\n // 用户在进行 dodge 类型的 adjust 调整的时候设置了 dodgeBy 属性\n const dodgeAdjust = this.getAdjust('dodge');\n if (dodgeAdjust) {\n const dodgeBy = dodgeAdjust.dodgeBy;\n if (dodgeBy) {\n id = `${id}-${originData[dodgeBy]}`;\n }\n }\n\n if (this.getAdjust('jitter')) {\n id = `${id}-${data.x}-${data.y}`;\n }\n\n return id;\n }\n\n /**\n * 获取所有需要创建 scale 的字段名称。\n */\n public getScaleFields(): string[] {\n const fields = [];\n const tmpMap = new Map();\n const { attributeOption, labelOption, tooltipOption } = this;\n // 获取图形属性上的 fields\n for (const attributeType in attributeOption) {\n if (attributeOption.hasOwnProperty(attributeType)) {\n const eachOpt = attributeOption[attributeType];\n if (eachOpt.fields) {\n uniq(eachOpt.fields, fields, tmpMap);\n } else if (eachOpt.values) {\n // 考虑 size(10), shape('circle') 等场景\n uniq(eachOpt.values, fields, tmpMap);\n }\n }\n }\n // 获取 label 上的字段\n if (labelOption && labelOption.fields) {\n uniq(labelOption.fields, fields, tmpMap);\n }\n\n // 获取 tooltip 上的字段\n if (isObject(tooltipOption) && tooltipOption.fields) {\n uniq(tooltipOption.fields, fields, tmpMap);\n }\n\n return fields;\n }\n\n /**\n * 显示或者隐藏 geometry。\n * @param visible\n */\n public changeVisible(visible: boolean) {\n super.changeVisible(visible);\n const elements = this.elements;\n for (let index = 0, length = elements.length; index < length; index++) {\n const element = elements[index];\n element.changeVisible(visible);\n }\n if (visible) {\n if (this.container) {\n this.container.show();\n }\n if (this.labelsContainer) {\n this.labelsContainer.show();\n }\n } else {\n if (this.container) {\n this.container.hide();\n }\n if (this.labelsContainer) {\n this.labelsContainer.hide();\n }\n }\n }\n\n /**\n * 获得所有的字段\n */\n public getFields() {\n const uniqMap = new Map();\n const fields = [];\n\n Object.values(this.attributeOption).forEach((cfg) => {\n const fs = cfg?.fields || [];\n fs.forEach((f) => {\n if (!uniqMap.has(f)) {\n fields.push(f);\n }\n uniqMap.set(f, true);\n });\n }, []);\n\n return fields;\n }\n\n /**\n * 获取当前配置中的所有分组 & 分类的字段。\n * @return fields string[]\n */\n public getGroupFields(): string[] {\n const groupFields = [];\n const tmpMap = new Map(); // 用于去重过滤\n for (let index = 0, length = GROUP_ATTRS.length; index < length; index++) {\n const attributeName = GROUP_ATTRS[index];\n const cfg = this.attributeOption[attributeName];\n if (cfg && cfg.fields) {\n uniq(cfg.fields, groupFields, tmpMap);\n }\n }\n\n return groupFields;\n }\n\n /**\n * 获得图形的 x y 字段。\n */\n public getXYFields() {\n const [x, y] = this.attributeOption.position.fields;\n return [x, y];\n }\n\n /**\n * x 字段\n * @returns\n */\n public getXField(): string {\n return get(this.getXYFields(), [0]);\n }\n\n /**\n * y 字段\n * @returns\n */\n public getYField(): string {\n return get(this.getXYFields(), [1]);\n }\n\n /**\n * 获取该 Geometry 下所有生成的 shapes。\n * @returns shapes\n */\n public getShapes(): (IShape | IGroup)[] {\n return this.elements.map((element: Element) => element.shape);\n }\n\n /**\n * 获取虚拟 Group。\n * @returns\n */\n public getOffscreenGroup() {\n if (!this.offscreenGroup) {\n const GroupCtor = this.container.getGroupBase(); // 获取分组的构造函数\n this.offscreenGroup = new GroupCtor({});\n }\n return this.offscreenGroup;\n }\n\n // 对数据进行排序\n public sort(mappingArray: Data[]) {\n if (!this.hasSorted) {\n // 未发生过排序\n const xScale = this.getXScale();\n const xField = xScale.field;\n for (let index = 0; index < mappingArray.length; index++) {\n const itemArr = mappingArray[index];\n itemArr.sort((obj1: Datum, obj2: Datum) => {\n return xScale.translate(obj1[FIELD_ORIGIN][xField]) - xScale.translate(obj2[FIELD_ORIGIN][xField]);\n });\n }\n }\n\n this.hasSorted = true;\n }\n\n /**\n * 调整度量范围。主要针对发生层叠以及一些特殊需求的 Geometry,比如 Interval 下的柱状图 Y 轴默认从 0 开始。\n */\n protected adjustScale() {\n const yScale = this.getYScale();\n // 如果数据发生过 stack adjust,需要调整下 yScale 的数据范围\n if (yScale && this.getAdjust('stack')) {\n this.updateStackRange(yScale, this.beforeMappingData);\n }\n }\n\n /**\n * 获取当前 Geometry 对应的 Shape 工厂实例。\n */\n protected getShapeFactory() {\n const shapeType = this.shapeType;\n if (!getShapeFactory(shapeType)) {\n return;\n }\n if (!this.shapeFactory) {\n this.shapeFactory = clone(getShapeFactory(shapeType)); // 防止多个 view 共享一个 shapeFactory 实例,导致 coordinate 被篡改\n }\n // 因为这里缓存了 shapeFactory,但是外部可能会变更 coordinate,导致无法重新设置到 shapeFactory 中\n this.shapeFactory.coordinate = this.coordinate;\n // theme 原因同上\n this.shapeFactory.theme = this.theme.geometries[shapeType] || {};\n\n return this.shapeFactory;\n }\n\n /**\n * 获取每个 Shape 对应的关键点数据。\n * @param obj 经过分组 -> 数字化 -> adjust 调整后的数据记录\n * @returns\n */\n protected createShapePointsCfg(obj: Datum): S {\n const xScale = this.getXScale();\n const yScale = this.getYScale();\n const x = this.normalizeValues(obj[xScale.field], xScale);\n let y; // 存在没有 y 的情况\n\n if (yScale) {\n y = this.normalizeValues(obj[yScale.field], yScale);\n } else {\n y = obj.y ? obj.y : 0.1;\n }\n\n return {\n x,\n y,\n y0: yScale ? yScale.scale(this.getYMinValue()) : undefined,\n } as S;\n }\n\n /**\n * 创建 Element 实例。\n * @param mappingDatum Element 对应的绘制数据\n * @param [isUpdate] 是否处于更新阶段\n * @returns element 返回创建的 Element 实例\n */\n protected createElement(mappingDatum: MappingDatum, index: number, isUpdate: boolean = false): Element {\n const { container } = this;\n\n const shapeCfg = this.getDrawCfg(mappingDatum); // 获取绘制图形的配置信息\n const shapeFactory = this.getShapeFactory();\n\n const element = new Element({\n shapeFactory,\n container,\n offscreenGroup: this.getOffscreenGroup(),\n elementIndex: index,\n });\n element.animate = this.animateOption;\n element.geometry = this;\n element.draw(shapeCfg, isUpdate); // 绘制\n\n return element;\n }\n\n /**\n * 获取每条数据对应的图形绘制数据。\n * @param mappingDatum 映射后的数据\n * @returns draw cfg\n */\n protected getDrawCfg(mappingDatum: MappingDatum): ShapeInfo {\n const originData = mappingDatum[FIELD_ORIGIN]; // 原始数据\n const cfg: ShapeInfo = {\n mappingData: mappingDatum, // 映射后的数据\n data: originData, // 原始数据\n x: mappingDatum.x,\n y: mappingDatum.y,\n color: mappingDatum.color,\n size: mappingDatum.size,\n isInCircle: this.coordinate.isPolar,\n customInfo: this.customOption,\n };\n\n let shapeName = mappingDatum.shape;\n if (!shapeName && this.getShapeFactory()) {\n shapeName = this.getShapeFactory().defaultShapeType;\n }\n cfg.shape = shapeName;\n // 获取默认样式\n const theme = this.theme.geometries[this.shapeType];\n cfg.defaultStyle = get(theme, [shapeName, 'default'], {}).style;\n if (!cfg.defaultStyle && this.getShapeFactory()) {\n cfg.defaultStyle = this.getShapeFactory().getDefaultStyle(theme);\n }\n\n const styleOption = this.styleOption;\n if (styleOption) {\n cfg.style = this.getStyleCfg(styleOption, originData);\n }\n if (this.generatePoints) {\n cfg.points = mappingDatum.points;\n cfg.nextPoints = mappingDatum.nextPoints;\n }\n\n return cfg;\n }\n\n protected updateElements(mappingDataArray: MappingDatum[][], isUpdate: boolean = false): void {\n const keyDatum = new Map();\n const keys: string[] = [];\n\n // 用来保持 diff 元素之后 added, updated 的相对顺序\n const keyIndex = new Map();\n let index = 0;\n\n // 获得更新数据所有的 keys\n // 将更新的数据用 key 索引\n for (let i = 0; i < mappingDataArray.length; i++) {\n const mappingData = mappingDataArray[i];\n for (let j = 0; j < mappingData.length; j++) {\n const mappingDatum = mappingData[j];\n const key = this.getElementId(mappingDatum);\n const finalKey = keyDatum.has(key) ? `${key}-${i}-${j}` : key;\n keys.push(finalKey);\n keyDatum.set(finalKey, mappingDatum);\n keyIndex.set(finalKey, index);\n index++;\n }\n }\n\n this.elements = new Array(index);\n\n const { added, updated, removed } = diff(this.lastElementsMap, keys);\n\n // 新建 element\n for (const key of added) {\n const mappingDatum = keyDatum.get(key);\n const i = keyIndex.get(key);\n const element = this.createElement(mappingDatum, i, isUpdate);\n this.elements[i] = element;\n this.elementsMap[key] = element;\n if (element.shape) {\n element.shape.set('zIndex', this.zIndexReversed ? this.elements.length - i : i);\n }\n }\n\n // 更新 element\n for (const key of updated) {\n const element = this.lastElementsMap[key];\n const mappingDatum = keyDatum.get(key);\n const currentShapeCfg = this.getDrawCfg(mappingDatum);\n const preShapeCfg = element.getModel();\n const i = keyIndex.get(key);\n if (this.isCoordinateChanged || isModelChange(currentShapeCfg, preShapeCfg)) {\n element.animate = this.animateOption;\n // 通过绘制数据的变更来判断是否需要更新,因为用户有可能会修改图形属性映射\n element.update(currentShapeCfg); // 更新对应的 element\n }\n this.elements[i] = element;\n this.elementsMap[key] = element;\n if (element.shape) {\n element.shape.set('zIndex', this.zIndexReversed ? this.elements.length - i : i);\n }\n }\n\n // 全部 setZIndex 之后,再执行 sort\n if (this.container) {\n this.container.sort();\n }\n\n // 销毁被删除的 elements\n for (const key of removed) {\n const element = this.lastElementsMap[key];\n // 更新动画配置,用户有可能在更新之前有对动画进行配置操作\n element.animate = this.animateOption;\n element.destroy();\n }\n }\n\n /**\n * 获取渲染的 label 类型。\n */\n protected getLabelType(): string {\n const { labelOption, coordinate, type } = this;\n const { type: coordinateType, isTransposed } = coordinate;\n let labelType = get(labelOption, ['cfg', 'type']);\n if (!labelType) {\n // 用户未定义,则进行默认的逻辑\n if (coordinateType === 'polar') {\n // 极坐标下使用通用的极坐标文本,转置则使用饼图\n labelType = isTransposed ? 'pie' : 'polar';\n } else if (coordinateType === 'theta') {\n // theta 坐标系下使用饼图文本\n labelType = 'pie';\n } else if (type === 'interval' || type === 'polygon') {\n labelType = 'interval';\n } else {\n labelType = 'base';\n }\n }\n\n return labelType;\n }\n\n /**\n * 获取 Y 轴上的最小值。\n */\n protected getYMinValue(): number {\n const yScale = this.getYScale();\n const { min, max } = yScale;\n let value: number;\n\n if (min >= 0) {\n value = min;\n } else if (max <= 0) {\n // 当值全位于负区间时,需要保证 ymin 在区域内,不可为 0\n value = max;\n } else {\n value = 0;\n }\n return value;\n }\n\n // 创建图形属性相关的配置项\n protected createAttrOption(attrName: string, field: AttributeOption | string | number, cfg?) {\n if (isNil(field) || isObject(field)) {\n if (isObject(field) && isEqual(Object.keys(field), ['values'])) {\n // shape({ values: [ 'funnel' ] })\n set(this.attributeOption, attrName, {\n fields: field.values,\n });\n } else {\n set(this.attributeOption, attrName, field);\n }\n } else {\n const attrCfg: AttributeOption = {};\n if (isNumber(field)) {\n // size(3)\n attrCfg.values = [field];\n } else {\n attrCfg.fields = parseFields(field);\n }\n\n if (cfg) {\n if (isFunction(cfg)) {\n attrCfg.callback = cfg;\n } else {\n attrCfg.values = cfg;\n }\n }\n\n set(this.attributeOption, attrName, attrCfg);\n }\n }\n\n protected initAttributes() {\n const { attributes, attributeOption, theme, shapeType } = this;\n this.groupScales = [];\n const tmpMap = {};\n\n // 遍历每一个 attrOption,各自创建 Attribute 实例\n for (const attrType in attributeOption) {\n if (attributeOption.hasOwnProperty(attrType)) {\n const option: AttributeOption = attributeOption[attrType];\n if (!option) {\n return;\n }\n const attrCfg: AttributeInstanceCfg = {\n ...option,\n };\n const { callback, values, fields = [] } = attrCfg;\n\n // 获取每一个字段对应的 scale\n const scales = fields.map((field) => {\n const scale = this.scales[field];\n if (!tmpMap[field] && GROUP_ATTRS.includes(attrType)) {\n const inferedScaleType = inferScaleType(scale, get(this.scaleDefs, field), attrType, this.type);\n if (inferedScaleType === 'cat') {\n this.groupScales.push(scale);\n tmpMap[field] = true;\n }\n }\n return scale;\n });\n\n attrCfg.scales = scales;\n\n if (attrType !== 'position' && scales.length === 1 && scales[0].type === 'identity') {\n // 用户在图形通道上声明了常量字段 color('red'), size(5)\n attrCfg.values = scales[0].values;\n } else if (!callback && !values) {\n // 用户没有指定任何规则,则使用默认的映射规则\n if (attrType === 'size') {\n attrCfg.values = theme.sizes;\n } else if (attrType === 'shape') {\n attrCfg.values = theme.shapes[shapeType] || [];\n } else if (attrType === 'color') {\n if (scales.length) {\n // 根据数值个数使用对应的色板\n attrCfg.values = scales[0].values.length <= 10 ? theme.colors10 : theme.colors20;\n } else {\n attrCfg.values = theme.colors10;\n }\n }\n }\n const AttributeCtor = getAttributeClass(attrType);\n attributes[attrType] = new AttributeCtor(attrCfg);\n }\n }\n }\n\n // 处理数据:分组 -> 数字化 -> adjust 调整\n private processData(data: Data) {\n this.hasSorted = false;\n const { scales } = this.getAttribute('position');\n const categoryScales = scales.filter((scale: Scale) => scale.isCategory);\n\n const groupedArray = this.groupData(data); // 数据分组\n const beforeAdjust = [];\n for (let i = 0, len = groupedArray.length; i < len; i++) {\n const subData = groupedArray[i];\n const arr = [];\n for (let j = 0, subLen = subData.length; j < subLen; j++) {\n const originData = subData[j];\n const item = {};\n // tslint:disable-next-line: forin\n for (const k in originData) {\n item[k] = originData[k];\n }\n item[FIELD_ORIGIN] = originData;\n\n // 将分类数据翻译成数据, 仅对位置相关的度量进行数字化处理\n for (const scale of categoryScales) {\n const field = scale.field;\n item[field] = scale.translate(item[field]);\n }\n arr.push(item);\n }\n beforeAdjust.push(arr);\n }\n\n const dataArray = this.adjustData(beforeAdjust); // 进行 adjust 数据调整\n this.beforeMappingData = dataArray;\n\n return dataArray;\n }\n\n // 调整数据\n private adjustData(dataArray: Data[]): Data[] {\n const adjustOption = this.adjustOption;\n const { intervalPadding, dodgePadding, theme } = this;\n // 兼容theme配置\n const maxColumnWidth = this.maxColumnWidth || theme.maxColumnWidth;\n const minColumnWidth = this.minColumnWidth || theme.minColumnWidth;\n const columnWidthRatio = this.columnWidthRatio || theme.columnWidthRatio;\n let result = dataArray;\n\n if (adjustOption) {\n const xScale = this.getXScale();\n const yScale = this.getYScale();\n const xField = xScale.field;\n const yField = yScale ? yScale.field : null;\n const xDimensionLength = getXDimensionLength(this.coordinate);\n const groupNum = xScale.values.length;\n // 传入size计算相关参数,默认宽度、最大最小宽度约束\n const sizeAttr = this.getAttribute('size');\n let defaultSize;\n if (sizeAttr) {\n defaultSize = sizeAttr.values[0];\n }\n for (let i = 0, len = adjustOption.length; i < len; i++) {\n const adjust = adjustOption[i];\n const adjustCfg: AdjustInstanceCfg = {\n xField,\n yField,\n intervalPadding,\n dodgePadding,\n xDimensionLength,\n groupNum,\n defaultSize,\n maxColumnWidth,\n minColumnWidth,\n columnWidthRatio,\n ...adjust,\n };\n const type = adjust.type;\n if (type === 'dodge') {\n const adjustNames = [];\n if (xScale.isCategory || xScale.type === 'identity') {\n adjustNames.push('x');\n } else if (!yScale) {\n adjustNames.push('y');\n } else {\n throw new Error('dodge is not support linear attribute, please use category attribute!');\n }\n adjustCfg.adjustNames = adjustNames;\n // 每个分组内每条柱子的宽度占比,用户不可指定,用户需要通过 columnWidthRatio 指定\n // 兼容theme配置\n adjustCfg.dodgeRatio = columnWidthRatio;\n } else if (type === 'stack') {\n const coordinate = this.coordinate;\n if (!yScale) {\n // 一维的情况下获取高度和默认size\n adjustCfg.height = coordinate.getHeight();\n const size = this.getDefaultValue('size') || 3;\n adjustCfg.size = size;\n }\n // 不进行 transpose 时,用户又没有设置这个参数时,默认从上向下\n if (!coordinate.isTransposed && isNil(adjustCfg.reverseOrder)) {\n adjustCfg.reverseOrder = true;\n }\n }\n const adjustCtor = getAdjustClass(type);\n adjustCfg.dimValuesMap = {};\n //生成dimValuesMap\n if (xScale && xScale.values) {\n adjustCfg.dimValuesMap[xScale.field] = xScale.values.map((v) => xScale.translate(v));\n }\n const adjustInstance = new adjustCtor(adjustCfg);\n\n result = adjustInstance.process(result);\n\n this.adjusts[type] = adjustInstance;\n }\n }\n\n return result;\n }\n\n // 对数据进行分组\n private groupData(data: Data): Data[] {\n const groupScales = this.getGroupScales();\n const scaleDefs = this.scaleDefs;\n const appendConditions = {};\n const groupFields = [];\n for (let index = 0; index < groupScales.length; index++) {\n const scale = groupScales[index];\n const field = scale.field;\n groupFields.push(field);\n if (get(scaleDefs, [field, 'values'])) {\n // 用户通过 view.scale() 接口指定了 values 属性\n appendConditions[field] = scaleDefs[field].values;\n }\n }\n\n return group(data, groupFields, appendConditions);\n }\n\n // 更新发生层叠后的数据对应的度量范围\n private updateStackRange(scale: Scale, dataArray: Data[]) {\n const mergeArray = flatten(dataArray);\n const field = scale.field;\n let min = scale.min;\n let max = scale.max;\n for (let index = 0; index < mergeArray.length; index++) {\n const obj = mergeArray[index];\n const tmpMin = Math.min.apply(null, obj[field]);\n const tmpMax = Math.max.apply(null, obj[field]);\n if (tmpMin < min) {\n min = tmpMin;\n }\n if (tmpMax > max) {\n max = tmpMax;\n }\n }\n const scaleDefs = this.scaleDefs;\n const cfg: LooseObject = {};\n if (min < scale.min && !get(scaleDefs, [field, 'min'])) {\n // 用户如果在列定义中定义了 min,则以用户定义的为准\n cfg.min = min;\n }\n if (max > scale.max && !get(scaleDefs, [field, 'max'])) {\n // 用户如果在列定义中定义了 max\n cfg.max = max;\n }\n\n scale.change(cfg);\n }\n\n // 将数据映射至图形空间前的操作:排序以及关键点的生成\n private beforeMapping(beforeMappingData: Data[]) {\n // 当初加 clone 是因为 points 的引用关系,导致更新失败,可是现在貌似复现不出来了,所以暂时不进行 clone\n // const source = clone(beforeMappingData);\n const source = beforeMappingData;\n if (this.sortable) {\n this.sort(source);\n }\n if (this.generatePoints) {\n // 需要生成关键点\n for (let index = 0, length = source.length; index < length; index++) {\n const currentData = source[index];\n this.generateShapePoints(currentData);\n const nextData = source[index + 1];\n if (nextData) {\n this.generateShapePoints(nextData);\n currentData[0].nextPoints = nextData[0].points;\n }\n }\n }\n\n return source;\n }\n\n // 生成 shape 的关键点\n private generateShapePoints(data: Data) {\n const shapeFactory = this.getShapeFactory();\n const shapeAttr = this.getAttribute('shape');\n for (let index = 0; index < data.length; index++) {\n const obj = data[index];\n const cfg = this.createShapePointsCfg(obj);\n const shape = shapeAttr ? this.getAttributeValues(shapeAttr, obj) : null;\n const points = shapeFactory.getShapePoints(shape, cfg);\n obj.points = points;\n }\n }\n\n // 将数据归一化\n private normalizeValues(values, scale) {\n let rst = [];\n if (isArray(values)) {\n for (let index = 0; index < values.length; index++) {\n const value = values[index];\n rst.push(scale.scale(value));\n }\n } else {\n rst = scale.scale(values);\n }\n return rst;\n }\n\n // 将数据映射至图形空间\n private mapping(data: Data): MappingDatum[] {\n const attributes = this.attributes;\n const mappingData = [];\n for (let index = 0; index < data.length; index++) {\n const record = data[index];\n const newRecord: MappingDatum = {\n _origin: record[FIELD_ORIGIN],\n points: record.points,\n nextPoints: record.nextPoints,\n };\n for (const k in attributes) {\n if (attributes.hasOwnProperty(k)) {\n const attr = attributes[k];\n const names = attr.names;\n const values = this.getAttributeValues(attr, record);\n if (names.length > 1) {\n // position 之类的生成多个字段的属性\n for (let j = 0; j < values.length; j += 1) {\n const val = values[j];\n const name = names[j];\n newRecord[name] = isArray(val) && val.length === 1 ? val[0] : val; // 只有一个值时返回第一个属性值\n }\n } else {\n // values.length === 1 的判断是以下情况,获取用户设置的图形属性值\n // shape('a', ['dot', 'dash']), color('a', ['red', 'yellow'])\n newRecord[names[0]] = values.length === 1 ? values[0] : values;\n }\n }\n }\n\n this.convertPoint(newRecord); // 将 x、y 转换成画布坐标\n mappingData.push(newRecord);\n }\n\n return mappingData;\n }\n\n // 将归一化的坐标值转换成画布坐标\n private convertPoint(mappingRecord: MappingDatum) {\n const { x, y } = mappingRecord;\n\n let rstX;\n let rstY;\n let obj;\n const coordinate = this.coordinate;\n if (isArray(x) && isArray(y)) {\n rstX = [];\n rstY = [];\n for (let i = 0, j = 0, xLen = x.length, yLen = y.length; i < xLen && j < yLen; i += 1, j += 1) {\n obj = coordinate.convert({\n x: x[i],\n y: y[j],\n });\n rstX.push(obj.x);\n rstY.push(obj.y);\n }\n } else if (isArray(y)) {\n rstY = [];\n for (let index = 0; index < y.length; index++) {\n const yVal = y[index];\n obj = coordinate.convert({\n x: x as number,\n y: yVal,\n });\n if (rstX && rstX !== obj.x) {\n if (!isArray(rstX)) {\n rstX = [rstX];\n }\n rstX.push(obj.x);\n } else {\n rstX = obj.x;\n }\n rstY.push(obj.y);\n }\n } else if (isArray(x)) {\n rstX = [];\n for (let index = 0; index < x.length; index++) {\n const xVal = x[index];\n obj = coordinate.convert({\n x: xVal,\n y,\n });\n if (rstY && rstY !== obj.y) {\n if (!isArray(rstY)) {\n rstY = [rstY];\n }\n rstY.push(obj.y);\n } else {\n rstY = obj.y;\n }\n rstX.push(obj.x);\n }\n } else {\n const point = coordinate.convert({\n x,\n y,\n });\n rstX = point.x;\n rstY = point.y;\n }\n mappingRecord.x = rstX;\n mappingRecord.y = rstY;\n }\n\n // 获取 style 配置\n private getStyleCfg(styleOption: StyleOption, originData: Datum) {\n const { fields = [], callback, cfg } = styleOption;\n if (cfg) {\n // 用户直接配置样式属性\n return cfg;\n }\n\n const params = fields.map((field) => {\n return originData[field];\n });\n\n return callback(...params);\n }\n\n private setCfg(cfg: InitCfg) {\n const { coordinate, data, theme, scaleDefs } = cfg;\n if (coordinate) {\n this.coordinate = coordinate;\n }\n if (data) {\n this.data = data;\n }\n if (scaleDefs) {\n this.scaleDefs = scaleDefs;\n this.idFields = [];\n each(scaleDefs, (scaleDef, field) => {\n if (scaleDef && scaleDef.key) {\n this.idFields.push(field);\n }\n });\n }\n if (theme) {\n this.theme = this.userTheme ? deepMix({}, theme, this.userTheme) : theme; // 支持 geometry 层级的主题设置\n }\n }\n\n private renderLabels(mappingArray: MappingDatum[], isUpdate: boolean = false) {\n let geometryLabel = this.geometryLabel;\n\n if (!geometryLabel) {\n // 初次创建\n const labelType = this.getLabelType();\n const GeometryLabelsCtor = getGeometryLabel(labelType);\n geometryLabel = new GeometryLabelsCtor(this);\n this.geometryLabel = geometryLabel;\n }\n geometryLabel.render(mappingArray, isUpdate);\n\n // 将 label 同 element 进行关联\n const labelsMap = geometryLabel.labelsRenderer.shapesMap;\n each(this.elementsMap, (element: Element, id) => {\n const labels = filterLabelsById(id, labelsMap); // element 实例同 label 进行绑定\n if (labels.length) {\n element.labelShape = labels;\n for (let i = 0; i < labels.length; i++) {\n const label = labels[i];\n const labelChildren = label.getChildren();\n for (let j = 0; j < labelChildren.length; j++) {\n const child = labelChildren[j];\n child.cfg.name = ['element', 'label'];\n child.cfg.element = element;\n }\n }\n }\n });\n }\n /**\n * 是否需要进行群组入场动画\n * 规则:\n * 1. 如果发生更新,则不进行\n * 2. 如果用户关闭 geometry 动画,则不进行\n * 3. 如果用户关闭了 appear 动画,则不进行\n * 4. 如果用户配置了 appear.animation,则不进行\n */\n private canDoGroupAnimation(isUpdate: boolean) {\n return (\n !isUpdate &&\n this.animateOption &&\n (get(this.animateOption, 'appear') === undefined ||\n (get(this.animateOption, 'appear') && get(this.animateOption, ['appear', 'animation']) === undefined))\n );\n }\n}\n","import { groupToMap } from '@antv/util';\nimport { Data } from '../../interface';\n\n/** @ignore */\nexport function group(data: Data, fields: string[], appendConditions: Record = {}) {\n if (!fields) {\n return [data];\n }\n const groups = groupToMap(data, fields);\n const array = [];\n if (fields.length === 1 && appendConditions[fields[0]]) {\n const values = appendConditions[fields[0]];\n for (const value of values) {\n const arr = groups[`_${value}`];\n if (arr) {\n // 可能存在用户设置 values ,但是数据中没有对应的字段,则这时候 arr 就为 null\n array.push(arr);\n }\n }\n } else {\n for (const k in groups) {\n if (groups.hasOwnProperty(k)) {\n const eachGroup = groups[k];\n array.push(eachGroup);\n }\n }\n }\n\n return array;\n}\n","import { ext } from '@antv/matrix-util';\nimport { IElement, IGroup, IShape } from '../dependents';\n\nconst transform: (m: number[], actions: any[][]) => number[] = ext.transform;\n\nexport { transform };\n\n/**\n * 对元素进行平移操作。\n * @param element 进行变换的元素\n * @param x x 方向位移\n * @param y y 方向位移\n */\nexport function translate(element: IGroup | IShape, x: number, y: number) {\n const matrix = transform(element.getMatrix(), [['t', x, y]]);\n element.setMatrix(matrix);\n}\n\n/**\n * 获取元素旋转矩阵 (以元素的左上角为旋转点)\n * @param element 进行变换的元素\n * @param rotateRadian 旋转弧度\n */\nexport function getRotateMatrix(element: IElement, rotateRadian: number) {\n const { x, y } = element.attr();\n const matrix = transform(element.getMatrix(), [\n ['t', -x, -y],\n ['r', rotateRadian],\n ['t', x, y],\n ]);\n return matrix;\n}\n\n/**\n * 对元素进行旋转操作。\n * @param element 进行变换的元素\n * @param rotateRadian 旋转弧度\n */\nexport function rotate(element: IGroup | IShape, rotateRadian: number) {\n const matrix = getRotateMatrix(element, rotateRadian);\n element.setMatrix(matrix);\n}\n\n/**\n * 获取元矩阵。\n * @returns identity matrix\n */\nexport function getIdentityMatrix(): number[] {\n return [1, 0, 0, 0, 1, 0, 0, 0, 1];\n}\n\n/**\n * 围绕图形中心点进行缩放\n * @param element 进行缩放的图形元素\n * @param ratio 缩放比例\n */\nexport function zoom(element: IGroup | IShape, ratio: number) {\n const bbox = element.getBBox();\n const x = (bbox.minX + bbox.maxX) / 2;\n const y = (bbox.minY + bbox.maxY) / 2;\n element.applyToMatrix([x, y, 1]);\n\n const matrix = transform(element.getMatrix(), [\n ['t', -x, -y],\n ['s', ratio, ratio],\n ['t', x, y],\n ]);\n element.setMatrix(matrix);\n}\n","/**\n * @file utils of label\n */\n\nimport { isNil, isNumber, some } from '@antv/util';\nimport { IElement, IGroup, BBox } from '../../../dependents';\nimport { rotate } from '../../../util/transform';\nimport { LabelItem } from '../interface';\n\n/**\n * 查找 Label Group 中的文本 shape 对象\n * @param label\n */\nexport function findLabelTextShape(label: IGroup): IElement {\n return label.find((el) => el.get('type') === 'text');\n}\n\n/**\n * 获取标签背景信息: box (无旋转) + rotation (旋转角度)\n */\nexport function getlLabelBackgroundInfo(\n labelGroup: IGroup,\n labelItem: LabelItem,\n padding: number | number[] = [0, 0, 0, 0]\n): { x: number; y: number; width: number; height: number; rotation: number } {\n const content = labelGroup.getChildren()[0];\n if (content) {\n const labelShape = content.clone();\n\n // revert rotate\n if (labelItem?.rotate) {\n rotate(labelShape as IGroup, -labelItem.rotate);\n }\n\n // use `getCanvasBBox`, because if Shape is been translated, `getBBox` is not the actual box position\n const { x, y, width, height } = labelShape.getCanvasBBox();\n\n labelShape.destroy();\n\n let boxPadding = padding;\n if (isNil(boxPadding)) {\n boxPadding = [2, 2, 2, 2];\n } else if (isNumber(boxPadding)) {\n boxPadding = new Array(4).fill(boxPadding);\n }\n\n return {\n x: x - boxPadding[3],\n y: y - boxPadding[0],\n width: width + boxPadding[1] + boxPadding[3],\n height: height + boxPadding[0] + boxPadding[2],\n rotation: labelItem?.rotate || 0,\n };\n }\n}\n\n/**\n * 计算两个矩形之间的堆叠区域面积\n */\nexport function getOverlapArea(a: BBox, b: BBox, margin = 0) {\n const xOverlap = Math.max(\n 0,\n Math.min(a.x + a.width + margin, b.x + b.width + margin) - Math.max(a.x - margin, b.x - margin)\n );\n const yOverlap = Math.max(\n 0,\n Math.min(a.y + a.height + margin, b.y + b.height + margin) - Math.max(a.y - margin, b.y - margin)\n );\n\n return xOverlap * yOverlap;\n}\n\n/** 检测是否和已布局的堆叠 */\nexport function checkShapeOverlap(cur: IElement, dones: IElement[]) {\n const box = cur.getBBox();\n return some(dones, (done) => {\n const target = done.getBBox();\n return getOverlapArea(box, target, 2) > 0;\n });\n}\n","import { deepMix, each, get, isArray, isNull } from '@antv/util';\nimport { BBox, Coordinate, IGroup, IShape } from '../dependents';\nimport { LabelItem } from '../geometry/label/interface';\nimport { AnimateOption, GeometryLabelLayoutCfg } from '../interface';\nimport { doAnimate } from '../animate';\nimport { getGeometryLabelLayout } from '../geometry/label';\nimport { getlLabelBackgroundInfo } from '../geometry/label/util';\nimport { polarToCartesian } from '../util/graphics';\nimport { rotate, translate } from '../util/transform';\nimport { FIELD_ORIGIN } from '../constant';\nimport { updateLabel } from './update-label';\n\n/**\n * Labels 实例创建时,传入构造函数的参数定义\n */\nexport interface LabelsGroupCfg {\n /** label 容器 */\n container: IGroup;\n /** label 布局配置 */\n layout?: GeometryLabelLayoutCfg | GeometryLabelLayoutCfg[];\n}\n\n/**\n * Geometry labels 渲染组件\n */\nexport default class Labels {\n /** 用于指定 labels 布局的类型 */\n public layout: GeometryLabelLayoutCfg | GeometryLabelLayoutCfg[];\n /** 图形容器 */\n public container: IGroup;\n /** 动画配置 */\n public animate: AnimateOption | false;\n /** label 绘制的区域 */\n public region: BBox;\n\n /** 存储当前 shape 的映射表,键值为 shape id */\n public shapesMap: Record = {};\n private lastShapesMap: Record = {};\n\n constructor(cfg: LabelsGroupCfg) {\n const { layout, container } = cfg;\n\n this.layout = layout;\n this.container = container;\n }\n\n /**\n * 渲染文本\n */\n public render(items: LabelItem[], shapes: Record, isUpdate: boolean = false) {\n this.shapesMap = {};\n const container = this.container;\n const offscreenGroup = this.createOffscreenGroup(); // 创建虚拟分组\n if (items.length) {\n // 如果 items 空的话就不进行绘制调整操作\n // step 1: 在虚拟 group 中创建 shapes\n for (const item of items) {\n if (item) {\n this.renderLabel(item, offscreenGroup);\n }\n }\n // step 2: 根据布局,调整 labels\n this.doLayout(items, shapes);\n // step 3.1: 绘制 labelLine\n this.renderLabelLine(items);\n // step 3.2: 绘制 labelBackground\n this.renderLabelBackground(items);\n // step 4: 根据用户设置的偏移量调整 label\n this.adjustLabel(items);\n }\n\n // 进行添加、更新、销毁操作\n const lastShapesMap = this.lastShapesMap;\n const shapesMap = this.shapesMap;\n each(shapesMap, (shape, id) => {\n if (shape.destroyed) {\n // label 在布局调整环节被删除了(doLayout)\n delete shapesMap[id];\n } else {\n if (lastShapesMap[id]) {\n // 图形发生更新\n const data = shape.get('data');\n const origin = shape.get('origin');\n const coordinate = shape.get('coordinate');\n const currentAnimateCfg = shape.get('animateCfg');\n\n const currentShape = lastShapesMap[id]; // 已经在渲染树上的 shape\n updateLabel(currentShape, shapesMap[id], {\n data,\n origin,\n animateCfg: currentAnimateCfg,\n coordinate,\n });\n\n this.shapesMap[id] = currentShape; // 保存引用\n } else {\n // 新生成的 shape\n container.add(shape);\n\n const animateCfg = get(shape.get('animateCfg'), isUpdate ? 'enter' : 'appear');\n if (animateCfg) {\n doAnimate(shape, animateCfg, {\n toAttrs: {\n ...shape.attr(),\n },\n coordinate: shape.get('coordinate'),\n });\n }\n }\n delete lastShapesMap[id];\n }\n });\n\n // 移除\n each(lastShapesMap, (deleteShape) => {\n const animateCfg = get(deleteShape.get('animateCfg'), 'leave');\n if (animateCfg) {\n doAnimate(deleteShape, animateCfg, {\n toAttrs: null,\n coordinate: deleteShape.get('coordinate'),\n });\n } else {\n deleteShape.remove(true); // 移除\n }\n });\n\n this.lastShapesMap = shapesMap;\n offscreenGroup.destroy();\n }\n\n /** 清除当前 labels */\n public clear() {\n this.container.clear();\n this.shapesMap = {};\n this.lastShapesMap = {};\n }\n\n /** 销毁 */\n public destroy() {\n this.container.destroy();\n this.shapesMap = null;\n this.lastShapesMap = null;\n }\n\n private renderLabel(cfg: LabelItem, container: IGroup) {\n const { id, elementId, data, mappingData, coordinate, animate, content } = cfg;\n const shapeAppendCfg = {\n id,\n elementId,\n data,\n origin: {\n ...mappingData,\n data: mappingData[FIELD_ORIGIN],\n },\n coordinate,\n };\n const labelGroup = container.addGroup({\n name: 'label',\n // 如果 this.animate === false 或者 cfg.animate === false/null 则不进行动画,否则进行动画配置的合并\n animateCfg:\n this.animate === false || animate === null || animate === false ? false : deepMix({}, this.animate, animate),\n ...shapeAppendCfg,\n });\n let labelShape;\n if ((content.isGroup && content.isGroup()) || (content.isShape && content.isShape())) {\n // 如果 content 是 Group 或者 Shape,根据 textAlign 调整位置后,直接将其加入 labelGroup\n const { width, height } = content.getCanvasBBox();\n const textAlign = get(cfg, 'textAlign', 'left');\n\n let x = cfg.x;\n const y = cfg.y - height / 2;\n\n if (textAlign === 'center') {\n x = x - width / 2;\n } else if (textAlign === 'right' || textAlign === 'end') {\n x = x - width;\n }\n\n translate(content, x, y); // 将 label 平移至 x, y 指定的位置\n labelShape = content;\n labelGroup.add(content);\n } else {\n const fill = get(cfg, ['style', 'fill']);\n labelShape = labelGroup.addShape('text', {\n attrs: {\n x: cfg.x,\n y: cfg.y,\n textAlign: cfg.textAlign,\n textBaseline: get(cfg, 'textBaseline', 'middle'),\n text: cfg.content,\n ...cfg.style,\n fill: isNull(fill) ? cfg.color : fill,\n },\n ...shapeAppendCfg,\n });\n }\n\n if (cfg.rotate) {\n rotate(labelShape, cfg.rotate);\n }\n this.shapesMap[id] = labelGroup;\n }\n\n // 根据type对label布局\n private doLayout(items: LabelItem[], shapes: Record) {\n if (this.layout) {\n const layouts = isArray(this.layout) ? this.layout : [this.layout];\n each(layouts, (layout: GeometryLabelLayoutCfg) => {\n const layoutFn = getGeometryLabelLayout(get(layout, 'type', ''));\n if (layoutFn) {\n const labelShapes = [];\n const geometryShapes = [];\n each(this.shapesMap, (labelShape, id) => {\n labelShapes.push(labelShape);\n geometryShapes.push(shapes[labelShape.get('elementId')]);\n });\n\n layoutFn(items, labelShapes, geometryShapes, this.region, layout.cfg);\n }\n });\n }\n }\n\n private renderLabelLine(labelItems: LabelItem[]) {\n each(labelItems, (labelItem) => {\n const coordinate: Coordinate = get(labelItem, 'coordinate');\n if (!labelItem || !coordinate) {\n return;\n }\n const center = coordinate.getCenter();\n const radius = coordinate.getRadius();\n if (!labelItem.labelLine) {\n // labelLine: null | false,关闭 label 对应的 labelLine\n return;\n }\n const labelLineCfg = get(labelItem, 'labelLine', {});\n const id = labelItem.id;\n let path = labelLineCfg.path;\n if (!path) {\n const start = polarToCartesian(center.x, center.y, radius, labelItem.angle);\n path = [\n ['M', start.x, start.y],\n ['L', labelItem.x, labelItem.y],\n ];\n }\n const labelGroup = this.shapesMap[id];\n if (!labelGroup.destroyed) {\n labelGroup.addShape('path', {\n capture: false, // labelLine 默认不参与事件捕获\n attrs: {\n path,\n stroke: labelItem.color ? labelItem.color : get(labelItem, ['style', 'fill'], '#000'),\n fill: null,\n ...labelLineCfg.style,\n },\n id,\n origin: labelItem.mappingData,\n data: labelItem.data,\n coordinate: labelItem.coordinate,\n });\n }\n });\n }\n\n /**\n * 绘制标签背景\n * @param labelItems\n */\n private renderLabelBackground(labelItems: LabelItem[]) {\n each(labelItems, (labelItem) => {\n const coordinate: Coordinate = get(labelItem, 'coordinate');\n const background: LabelItem['background'] = get(labelItem, 'background');\n if (!background || !coordinate) {\n return;\n }\n\n const id = labelItem.id;\n const labelGroup = this.shapesMap[id];\n if (!labelGroup.destroyed) {\n const labelContentShape = labelGroup.getChildren()[0];\n if (labelContentShape) {\n const { rotation, ...box } = getlLabelBackgroundInfo(labelGroup, labelItem, background.padding);\n const backgroundShape = labelGroup.addShape('rect', {\n attrs: {\n ...box,\n ...(background.style || {}),\n },\n id,\n origin: labelItem.mappingData,\n data: labelItem.data,\n coordinate: labelItem.coordinate,\n });\n backgroundShape.setZIndex(-1);\n\n if (rotation) {\n const matrix = labelContentShape.getMatrix();\n backgroundShape.setMatrix(matrix);\n }\n }\n }\n });\n }\n\n private createOffscreenGroup() {\n const container = this.container;\n const GroupClass = container.getGroupBase(); // 获取分组的构造函数\n const newGroup = new GroupClass({});\n return newGroup;\n }\n\n private adjustLabel(items: LabelItem[]) {\n each(items, (item) => {\n if (item) {\n const id = item.id;\n const labelGroup = this.shapesMap[id];\n if (!labelGroup.destroyed) {\n // fix: 如果说开发者的 label content 是一个 group,此处的偏移无法对 整个 content group 生效;场景类似 饼图 spider label 是一个含 2 个 textShape 的 gorup\n const labelShapes = labelGroup.findAll((ele) => ele.get('type') !== 'path');\n each(labelShapes, (labelShape) => {\n if (labelShape) {\n if (item.offsetX) {\n labelShape.attr('x', labelShape.attr('x') + item.offsetX);\n }\n if (item.offsetY) {\n labelShape.attr('y', labelShape.attr('y') + item.offsetY);\n }\n }\n });\n }\n }\n });\n }\n}\n","import { Coordinate } from '@antv/coord';\nimport { IGroup, IShape } from '@antv/g-base';\nimport { each, get } from '@antv/util';\nimport { doAnimate } from '../animate';\nimport { getReplaceAttrs } from '../util/graphics';\n\n/** label 的必要配置 */\ntype Cfg = {\n data: any;\n origin: any;\n animateCfg: any;\n coordinate: Coordinate;\n};\n\n/**\n * @desc 更新 label (目前没有根据 id 索引,还是会存在一点小问题的,只能根据 idx 索引)\n * @done shape 属性更新\n * @done shape delete\n * @done shape append\n *\n * @param fromShape old labelShape\n * @param toShape new labelShape\n * @param cfg\n */\nexport function updateLabel(fromShape: IGroup, toShape: IGroup, cfg: Cfg): void {\n const { data, origin, animateCfg, coordinate } = cfg;\n const updateAnimateCfg = get(animateCfg, 'update');\n\n fromShape.set('data', data);\n fromShape.set('origin', origin);\n fromShape.set('animateCfg', animateCfg);\n fromShape.set('coordinate', coordinate);\n fromShape.set('visible', toShape.get('visible'));\n\n fromShape.getChildren().forEach((fromChild, idx) => {\n const toChild = toShape.getChildByIndex(idx) as IShape;\n if (!toChild) {\n fromShape.removeChild(fromChild);\n fromChild.remove(true);\n } else {\n fromChild.set('data', data);\n fromChild.set('origin', origin);\n fromChild.set('animateCfg', animateCfg);\n fromChild.set('coordinate', coordinate);\n\n const newAttrs = getReplaceAttrs(fromChild as IShape, toChild);\n if (updateAnimateCfg) {\n doAnimate(fromChild as IShape, updateAnimateCfg, {\n toAttrs: newAttrs,\n coordinate,\n });\n } else {\n fromChild.attr(newAttrs);\n }\n if (toChild.isGroup()) {\n updateLabel(fromChild as any, toChild as any, cfg);\n }\n }\n });\n\n // append\n each(toShape.getChildren(), (child, idx) => {\n if (idx >= fromShape.getCount()) {\n if (!child.destroyed) {\n fromShape.add(child);\n }\n }\n });\n}\n","import { deepMix, each, get, isArray, isFunction, isNil, isNumber, isString, isUndefined } from '@antv/util';\n\nimport { FIELD_ORIGIN } from '../../constant';\nimport { Scale } from '../../dependents';\nimport { Datum, LabelOption, MappingDatum, Point } from '../../interface';\nimport { LabelCfg, LabelItem, LabelPointCfg, TextAlign } from './interface';\n\nimport { getDefaultAnimateCfg } from '../../animate';\nimport { getPolygonCentroid } from '../../util/graphics';\n\nimport Labels from '../../component/labels';\nimport Geometry from '../base';\nimport Element from '../element';\n\nexport type GeometryLabelConstructor = new (cfg: any) => GeometryLabel;\n\nfunction avg(arr: number[]) {\n let sum = 0;\n each(arr, (value: number) => {\n sum += value;\n });\n return sum / arr.length;\n}\n\n/**\n * Geometry Label 基类,用于生成 Geometry 下所有 label 的配置项信息\n */\nexport default class GeometryLabel {\n /** geometry 实例 */\n public readonly geometry: Geometry;\n public labelsRenderer: Labels;\n /** 默认的布局 */\n public defaultLayout: string;\n\n constructor(geometry: Geometry) {\n this.geometry = geometry;\n }\n\n public getLabelItems(mapppingArray: MappingDatum[]): LabelItem[] {\n const items = [];\n const labelCfgs = this.getLabelCfgs(mapppingArray);\n // 获取 label 相关的 x,y 的值,获取具体的 x, y,防止存在数组\n each(mapppingArray, (mappingData: MappingDatum, index: number) => {\n const labelCfg = labelCfgs[index];\n if (!labelCfg || isNil(mappingData.x) || isNil(mappingData.y)) {\n items.push(null);\n return;\n }\n\n const labelContent = !isArray(labelCfg.content) ? [labelCfg.content] : labelCfg.content;\n labelCfg.content = labelContent;\n const total = labelContent.length;\n each(labelContent, (content, subIndex) => {\n if (isNil(content) || content === '') {\n items.push(null);\n return;\n }\n\n const item = {\n ...labelCfg,\n ...this.getLabelPoint(labelCfg, mappingData, subIndex),\n };\n if (!item.textAlign) {\n item.textAlign = this.getLabelAlign(item, subIndex, total);\n }\n\n if (item.offset <= 0) {\n item.labelLine = null;\n }\n\n items.push(item);\n });\n });\n return items;\n }\n\n public render(mapppingArray: MappingDatum[], isUpdate: boolean = false) {\n const labelItems = this.getLabelItems(mapppingArray);\n const labelsRenderer = this.getLabelsRenderer();\n const shapes = this.getGeometryShapes();\n // 渲染文本\n labelsRenderer.render(labelItems, shapes, isUpdate);\n }\n\n public clear() {\n const labelsRenderer = this.labelsRenderer;\n if (labelsRenderer) {\n labelsRenderer.clear();\n }\n }\n\n public destroy() {\n const labelsRenderer = this.labelsRenderer;\n if (labelsRenderer) {\n labelsRenderer.destroy();\n }\n this.labelsRenderer = null;\n }\n\n // geometry 更新之后,对应的 Coordinate 也会更新,为了获取到最新鲜的 Coordinate,故使用方法获取\n public getCoordinate() {\n return this.geometry.coordinate;\n }\n\n /**\n * 获取 label 的默认配置\n */\n protected getDefaultLabelCfg(offset?: number, position?: string) {\n const geometry = this.geometry;\n const { type, theme } = geometry;\n\n if (\n type === 'polygon' ||\n (type === 'interval' && position === 'middle') ||\n (offset < 0 && !['line', 'point', 'path'].includes(type))\n ) {\n // polygon 或者 (interval 且 middle) 或者 offset 小于 0 时,文本展示在图形内部,将其颜色设置为 白色\n return get(theme, 'innerLabels', {});\n }\n\n return get(theme, 'labels', {});\n }\n\n /**\n * 获取当前 label 的最终配置\n * @param labelCfg\n */\n protected getThemedLabelCfg(labelCfg: LabelCfg) {\n const geometry = this.geometry;\n const defaultLabelCfg = this.getDefaultLabelCfg();\n const { type, theme } = geometry;\n let themedLabelCfg;\n\n if (type === 'polygon' || (labelCfg.offset < 0 && !['line', 'point', 'path'].includes(type))) {\n // polygon 或者 offset 小于 0 时,文本展示在图形内部,将其颜色设置为 白色\n themedLabelCfg = deepMix({}, defaultLabelCfg, theme.innerLabels, labelCfg);\n } else {\n themedLabelCfg = deepMix({}, defaultLabelCfg, theme.labels, labelCfg);\n }\n\n return themedLabelCfg;\n }\n\n /**\n * 设置 label 位置\n * @param labelPointCfg\n * @param mappingData\n * @param index\n * @param position\n */\n protected setLabelPosition(\n labelPointCfg: LabelPointCfg,\n mappingData: MappingDatum,\n index: number,\n position: string\n ) {}\n\n /**\n * @desc 获取 label offset\n */\n protected getLabelOffset(offset: number | string): number {\n const coordinate = this.getCoordinate();\n const vector = this.getOffsetVector(offset);\n return coordinate.isTransposed ? vector[0] : vector[1];\n }\n\n /**\n * 获取每个 label 的偏移量 (矢量)\n * @param labelCfg\n * @param index\n * @param total\n * @return {Point} offsetPoint\n */\n protected getLabelOffsetPoint(labelCfg: LabelCfg, index: number, total: number): Point {\n const offset = labelCfg.offset;\n const coordinate = this.getCoordinate();\n const transposed = coordinate.isTransposed;\n const dim = transposed ? 'x' : 'y';\n const factor = transposed ? 1 : -1; // y 方向上越大,像素的坐标越小,所以transposed时将系数变成\n const offsetPoint = {\n x: 0,\n y: 0,\n };\n if (index > 0 || total === 1) {\n // 判断是否小于0\n offsetPoint[dim] = offset * factor;\n } else {\n offsetPoint[dim] = offset * factor * -1;\n }\n return offsetPoint;\n }\n\n /**\n * 获取每个 label 的位置\n * @param labelCfg\n * @param mappingData\n * @param index\n * @returns label point\n */\n protected getLabelPoint(labelCfg: LabelCfg, mappingData: MappingDatum, index: number): LabelPointCfg {\n const coordinate = this.getCoordinate();\n const total = labelCfg.content.length;\n\n function getDimValue(value: number | number[], idx: number, isAvg = false) {\n let v = value;\n if (isArray(v)) {\n if (labelCfg.content.length === 1) {\n if (isAvg) {\n v = avg(v);\n } else {\n // 如果仅一个 label,多个 y, 取最后一个 y\n if (v.length <= 2) {\n v = v[(value as number[]).length - 1];\n } else {\n v = avg(v);\n }\n }\n } else {\n v = v[idx];\n }\n }\n return v;\n }\n\n const label = {\n content: labelCfg.content[index],\n x: 0,\n y: 0,\n start: { x: 0, y: 0 },\n color: '#fff',\n };\n const shape = isArray(mappingData.shape) ? mappingData.shape[0] : mappingData.shape;\n const isFunnel = shape === 'funnel' || shape === 'pyramid';\n\n // 多边形场景,多用于地图\n if (this.geometry.type === 'polygon') {\n const centroid = getPolygonCentroid(mappingData.x, mappingData.y);\n label.x = centroid[0];\n label.y = centroid[1];\n } else if (this.geometry.type === 'interval' && !isFunnel) {\n // 对直方图的label X 方向的位置居中\n label.x = getDimValue(mappingData.x, index, true);\n label.y = getDimValue(mappingData.y, index);\n } else {\n label.x = getDimValue(mappingData.x, index);\n label.y = getDimValue(mappingData.y, index);\n }\n\n // 处理漏斗图文本位置\n if (isFunnel) {\n const nextPoints = get(mappingData, 'nextPoints');\n const points = get(mappingData, 'points');\n if (nextPoints) {\n // 非漏斗图底部\n const point1 = coordinate.convert(points[1] as Point);\n const point2 = coordinate.convert(nextPoints[1] as Point);\n label.x = (point1.x + point2.x) / 2;\n label.y = (point1.y + point2.y) / 2;\n } else if (shape === 'pyramid') {\n const point1 = coordinate.convert(points[1] as Point);\n const point2 = coordinate.convert(points[2] as Point);\n label.x = (point1.x + point2.x) / 2;\n label.y = (point1.y + point2.y) / 2;\n }\n }\n\n if (labelCfg.position) {\n // 如果 label 支持 position 属性\n this.setLabelPosition(label, mappingData, index, labelCfg.position);\n }\n const offsetPoint = this.getLabelOffsetPoint(labelCfg, index, total);\n label.start = { x: label.x, y: label.y };\n label.x += offsetPoint.x;\n label.y += offsetPoint.y;\n label.color = mappingData.color;\n return label;\n }\n\n /**\n * 获取文本的对齐方式\n * @param item\n * @param index\n * @param total\n * @returns\n */\n protected getLabelAlign(item: LabelItem, index: number, total: number): TextAlign {\n let align: TextAlign = 'center';\n const coordinate = this.getCoordinate();\n if (coordinate.isTransposed) {\n const offset = item.offset;\n if (offset < 0) {\n align = 'right';\n } else if (offset === 0) {\n align = 'center';\n } else {\n align = 'left';\n }\n if (total > 1 && index === 0) {\n if (align === 'right') {\n align = 'left';\n } else if (align === 'left') {\n align = 'right';\n }\n }\n }\n return align;\n }\n\n /**\n * 获取每一个 label 的唯一 id\n * @param mappingData label 对应的图形的绘制数据\n */\n protected getLabelId(mappingData: MappingDatum) {\n const geometry = this.geometry;\n const type = geometry.type;\n const xScale = geometry.getXScale();\n const yScale = geometry.getYScale();\n const origin = mappingData[FIELD_ORIGIN]; // 原始数据\n\n let labelId = geometry.getElementId(mappingData);\n if (type === 'line' || type === 'area') {\n // 折线图以及区域图,一条线会对应一组数据,即多个 labels,为了区分这些 labels,需要在 line id 的前提下加上 x 字段值\n labelId += ` ${origin[xScale.field]}`;\n } else if (type === 'path') {\n // path 路径图,无序,有可能存在相同 x 不同 y 的情况,需要通过 x y 来确定唯一 id\n labelId += ` ${origin[xScale.field]}-${origin[yScale.field]}`;\n }\n\n return labelId;\n }\n\n // 获取 labels 组件\n private getLabelsRenderer() {\n const { labelsContainer, labelOption, canvasRegion, animateOption } = this.geometry;\n const coordinate = this.geometry.coordinate;\n\n let labelsRenderer = this.labelsRenderer;\n if (!labelsRenderer) {\n labelsRenderer = new Labels({\n container: labelsContainer,\n layout: get(labelOption, ['cfg', 'layout'], {\n type: this.defaultLayout,\n }),\n });\n this.labelsRenderer = labelsRenderer;\n }\n labelsRenderer.region = canvasRegion;\n // 设置动画配置,如果 geometry 的动画关闭了,那么 label 的动画也会关闭\n labelsRenderer.animate = animateOption ? getDefaultAnimateCfg('label', coordinate) : false;\n\n return labelsRenderer;\n }\n\n private getLabelCfgs(mapppingArray: MappingDatum[]): LabelCfg[] {\n const geometry = this.geometry;\n const { labelOption, scales, coordinate } = geometry;\n const { fields, callback, cfg } = labelOption as LabelOption;\n const labelScales = fields.map((field: string) => {\n return scales[field];\n });\n\n const labelCfgs: LabelCfg[] = [];\n each(mapppingArray, (mappingData: MappingDatum, index: number) => {\n const origin = mappingData[FIELD_ORIGIN]; // 原始数据\n const originText = this.getLabelText(origin, labelScales);\n let callbackCfg;\n if (callback) {\n // 当同时配置了 callback 和 cfg 时,以 callback 为准\n const originValues = fields.map((field: string) => origin[field]);\n callbackCfg = callback(...originValues);\n if (isNil(callbackCfg)) {\n labelCfgs.push(null);\n return;\n }\n }\n\n let labelCfg = {\n id: this.getLabelId(mappingData), // 进行 ID 标记\n elementId: this.geometry.getElementId(mappingData), // label 对应 Element 的 ID\n data: origin, // 存储原始数据\n mappingData, // 存储映射后的数据,\n coordinate, // 坐标系\n ...cfg,\n ...callbackCfg,\n };\n\n if (isFunction(labelCfg.position)) {\n labelCfg.position = labelCfg.position(origin, mappingData, index);\n }\n\n const offset = this.getLabelOffset(labelCfg.offset || 0);\n // defaultCfg 需要判断 innerLabels & labels\n const defaultLabelCfg = this.getDefaultLabelCfg(offset, labelCfg.position);\n // labelCfg priority: defaultCfg < cfg < callbackCfg\n labelCfg = deepMix({}, defaultLabelCfg, labelCfg);\n // 获取最终的 offset\n labelCfg.offset = this.getLabelOffset(labelCfg.offset || 0);\n\n const content = labelCfg.content;\n if (isFunction(content)) {\n labelCfg.content = content(origin, mappingData, index);\n } else if (isUndefined(content)) {\n // 用户未配置 content,则默认为映射的第一个字段的值\n labelCfg.content = originText[0];\n }\n\n labelCfgs.push(labelCfg);\n });\n\n return labelCfgs;\n }\n\n private getLabelText(origin: Datum, scales: Scale[]) {\n const labelTexts = [];\n each(scales, (scale: Scale) => {\n let value = origin[scale.field];\n if (isArray(value)) {\n value = value.map((subVal) => {\n return scale.getText(subVal);\n });\n } else {\n value = scale.getText(value);\n }\n\n if (isNil(value) || value === '') {\n labelTexts.push(null);\n } else {\n labelTexts.push(value);\n }\n });\n return labelTexts;\n }\n\n private getOffsetVector(offset: number | string = 0) {\n const coordinate = this.getCoordinate();\n let actualOffset = 0;\n if (isNumber(offset)) {\n actualOffset = offset;\n }\n // 如果 x,y 翻转,则偏移 x,否则偏移 y\n return coordinate.isTransposed ? coordinate.applyMatrix(actualOffset, 0) : coordinate.applyMatrix(0, actualOffset);\n }\n\n private getGeometryShapes() {\n const geometry = this.geometry;\n const shapes = {};\n each(geometry.elementsMap, (element: Element, id: string) => {\n shapes[id] = element.shape;\n });\n // 因为有可能 shape 还在进行动画,导致 shape.getBBox() 获取到的值不是最终态,所以需要从 offscreenGroup 获取\n each(geometry.getOffscreenGroup().getChildren(), (child) => {\n const id = geometry.getElementId(child.get('origin').mappingData);\n shapes[id] = child;\n });\n\n return shapes;\n }\n}\n","import { Attribute } from '../dependents';\n\n/**\n * @ignore\n * get the mapping value by attribute, if mapping value is nil, return def\n * @param attr\n * @param value\n * @param def\n * @returns get mapping value\n */\nexport function getMappingValue(attr: Attribute, value: any, def: string): string {\n if (!attr) {\n return def;\n }\n\n let r;\n // 多参数映射,阻止程序报错\n if (attr.callback && attr.callback.length > 1) {\n const restArgs = Array(attr.callback.length - 1).fill('');\n r = attr.mapping(value, ...restArgs).join('');\n } else {\n r = attr.mapping(value).join('');\n }\n\n return r || def;\n}\n","/** @ignore */\nexport const MarkerSymbols = {\n hexagon: (x: number, y: number, r: number) => {\n const diffX = (r / 2) * Math.sqrt(3);\n return [\n ['M', x, y - r],\n ['L', x + diffX, y - r / 2],\n ['L', x + diffX, y + r / 2],\n ['L', x, y + r],\n ['L', x - diffX, y + r / 2],\n ['L', x - diffX, y - r / 2],\n ['Z'],\n ];\n },\n bowtie: (x: number, y: number, r: number) => {\n const diffY = r - 1.5;\n return [['M', x - r, y - diffY], ['L', x + r, y + diffY], ['L', x + r, y - diffY], ['L', x - r, y + diffY], ['Z']];\n },\n cross: (x: number, y: number, r: number) => {\n return [\n ['M', x - r, y - r],\n ['L', x + r, y + r],\n ['M', x + r, y - r],\n ['L', x - r, y + r],\n ];\n },\n tick: (x: number, y: number, r: number) => {\n return [\n ['M', x - r / 2, y - r],\n ['L', x + r / 2, y - r],\n ['M', x, y - r],\n ['L', x, y + r],\n ['M', x - r / 2, y + r],\n ['L', x + r / 2, y + r],\n ];\n },\n plus: (x: number, y: number, r: number) => {\n return [\n ['M', x - r, y],\n ['L', x + r, y],\n ['M', x, y - r],\n ['L', x, y + r],\n ];\n },\n hyphen: (x: number, y: number, r: number) => {\n return [\n ['M', x - r, y],\n ['L', x + r, y],\n ];\n },\n line: (x: number, y: number, r: number) => {\n return [\n ['M', x, y - r],\n ['L', x, y + r],\n ];\n },\n};\n","import { LegendMarkerCfg } from '@antv/component';\nimport { deepMix, isString, each, get, isFunction } from '@antv/util';\nimport View from '../chart/view';\nimport { DIRECTION } from '../constant';\nimport { Attribute, ShapeAttrs, Tick } from '../dependents';\nimport Geometry from '../geometry/base';\nimport { LegendCfg, LegendItem, MarkerCfg } from '../interface';\nimport { getMappingValue } from './attr';\nimport { omit } from './helper';\nimport { MarkerSymbols } from './marker';\n\n/** 线条形 marker symbol */\nconst STROKES_SYMBOLS = ['line', 'cross', 'tick', 'plus', 'hyphen'];\n\n/**\n * 处理用户配置的 marker style\n * @param markerStyle\n * @param userMarker.style\n * @returns {ShapeAttrs} newStyle\n */\nfunction handleUserMarkerStyle(markerStyle: ShapeAttrs, style: MarkerCfg['style']): ShapeAttrs {\n if (isFunction(style)) {\n return style(markerStyle);\n }\n return deepMix({}, markerStyle, style);\n}\n\n/**\n * 根据 marker 是否为线条形 symbol, 来调整下样式\n * @param symbol\n * @param style\n * @param color\n */\nfunction adpatorMarkerStyle(marker: LegendMarkerCfg, color: string): void {\n const symbol = marker.symbol;\n if (isString(symbol) && STROKES_SYMBOLS.indexOf(symbol) !== -1) {\n const markerStyle = get(marker, 'style', {});\n const lineWidth = get(markerStyle, 'lineWidth', 1);\n const stroke = markerStyle.stroke || markerStyle.fill || color;\n marker.style = deepMix({}, marker.style, { lineWidth, stroke, fill: null });\n }\n}\n\n/**\n * 设置 marker 的 symbol,将 字符串的 symbol 转换为真正的绘制命令\n * @param marker\n */\nfunction setMarkerSymbol(marker: LegendMarkerCfg): void {\n const symbol = marker.symbol;\n if (isString(symbol) && MarkerSymbols[symbol]) {\n marker.symbol = MarkerSymbols[symbol];\n }\n}\n\n/**\n * @ignore\n * get the legend layout from direction\n * @param direction\n * @returns layout 'horizontal' | 'vertical'\n */\nexport function getLegendLayout(direction: DIRECTION): 'vertical' | 'horizontal' {\n return direction.startsWith(DIRECTION.LEFT) || direction.startsWith(DIRECTION.RIGHT) ? 'vertical' : 'horizontal';\n}\n\n/** item of @antv/component legend */\ntype ComponentLegendItem = Omit & {\n marker: any;\n};\n\n/**\n * @ignore\n * get the legend items\n * @param view\n * @param geometry\n * @param attr\n * @param themeMarker\n * @param markerCfg\n * @returns legend items\n */\nexport function getLegendItems(\n view: View,\n geometry: Geometry,\n attr: Attribute,\n themeMarker: object,\n userMarker: LegendCfg['marker']\n): ComponentLegendItem[] {\n const scale = attr.getScale(attr.type);\n if (scale.isCategory) {\n const field = scale.field;\n const colorAttr = geometry.getAttribute('color');\n const shapeAttr = geometry.getAttribute('shape');\n const defaultColor = view.getTheme().defaultColor;\n const isInPolar = geometry.coordinate.isPolar;\n\n return scale.getTicks().map((tick: Tick, index: number) => {\n const { text, value: scaleValue } = tick;\n const name = text;\n const value = scale.invert(scaleValue);\n\n // 通过过滤图例项的数据,来看是否 unchecked\n let unchecked = view.filterFieldData(field, [{ [field]: value }]).length === 0;\n each(view.views, (subView) => {\n if (!subView.filterFieldData(field, [{ [field]: value }]).length) {\n unchecked = true;\n }\n });\n\n // @ts-ignore\n const color = getMappingValue(colorAttr, value, defaultColor);\n const shape = getMappingValue(shapeAttr, value, 'point');\n let marker = geometry.getShapeMarker(shape, {\n color,\n isInPolar,\n });\n\n let markerCfg = userMarker;\n if (isFunction(markerCfg)) {\n markerCfg = markerCfg(name, index, { name, value, ...deepMix({}, themeMarker, marker) });\n }\n\n // the marker configure order should be ensure\n marker = deepMix({}, themeMarker, marker, omit({ ...markerCfg }, ['style']));\n adpatorMarkerStyle(marker, color);\n if (markerCfg && markerCfg.style) {\n // handle user's style settings\n marker.style = handleUserMarkerStyle(marker.style, markerCfg.style);\n }\n setMarkerSymbol(marker);\n\n return { id: value, name, value, marker, unchecked };\n });\n }\n return [];\n}\n\n/**\n *\n * @ignore\n * custom legend 的 items 获取\n * @param themeMarker\n * @param userMarker\n * @param customItems\n */\nexport function getCustomLegendItems(themeMarker: object, userMarker: object, customItems: LegendItem[]) {\n // 如果有自定义的 item,那么就直接使用,并合并主题的 marker 配置\n return customItems.map((item: LegendItem, index: number) => {\n let markerCfg = userMarker;\n if (isFunction(markerCfg)) {\n markerCfg = markerCfg(item.name, index, deepMix({}, themeMarker, item));\n }\n\n const itemMarker = isFunction(item.marker)\n ? item.marker(item.name, index, deepMix({}, themeMarker, item))\n : item.marker;\n\n const marker = deepMix({}, themeMarker, markerCfg, itemMarker);\n setMarkerSymbol(marker);\n\n item.marker = marker;\n return item;\n });\n}\n\n/**\n * get the legend cfg from theme, will mix the common cfg of legend theme\n *\n * @param theme view theme object\n * @param direction legend direction\n * @returns legend theme cfg\n */\nexport function getLegendThemeCfg(theme: object, direction: string): object {\n const legendTheme = get(theme, ['components', 'legend'], {});\n return deepMix({}, get(legendTheme, ['common'], {}), deepMix({}, get(legendTheme, [direction], {})));\n}\n","import { isArray } from '@antv/util';\nimport { PathCommand } from '../../../dependents';\nimport { Point, RangePoint, ShapeVertices } from '../../../interface';\nimport { getSplinePath } from './path';\n\nfunction isValueEmpty(value) {\n if (value) {\n return false;\n }\n return value === null || value === undefined || isNaN(value);\n}\n\nfunction isYNil(point: Point[] | RangePoint) {\n if (isArray(point)) {\n // 特殊处理 area 的关键点数据,其关键点结构为 [{x: 0, y: 1}, {x: 0, y: 2}]\n return isValueEmpty(point[1].y);\n }\n const value = point.y;\n return isArray(value) ? isValueEmpty(value[0]) : isValueEmpty(value);\n}\n\n/**\n * @ignore\n * 分割数据,用于处理在一组点数据中,y 对应的数值存在 null/undefined/NaN 的情况\n * 应用于折线图、区域图以及路径图\n *\n * ```typescript\n * // return [[{x: 1, y: 2}, {x: 3, y: 3}]]\n * getPathPoints([{x: 1, y: 2}, {x: 2, y: null}, {x: 3, y: 3}], true);\n * // return [[{x: 1, y: 2}], [{x: 3, y: 3}]]\n * getPathPoints([{x: 1, y: 2}, {x: 2, y: null}, {x: 3, y: 3}], false);\n * // return [[[{ x: 1, y: 10 }, { x: 2, y: 2 }], [{ x: 9, y: 34 }, { x: 1, y: 1 }]]]\n * getPathPoints([\n * [{ x: 1, y: 10 }, { x: 2, y: 2 }],\n * [{ x: 4, y: 2 }, { x: 8, y: NaN }],\n * [{ x: 9, y: 34 }, { x: 1, y: 1 }],\n * ], true);\n * ```\n *\n * @param points 要进行处理点集合\n * @param connectNulls 是否连接空值数据\n * @param showSinglePoint 是否展示孤立点\n * @returns 返回处理后的点集合\n */\nexport function getPathPoints(points: ShapeVertices, connectNulls: boolean = false, showSinglePoint: boolean = true) {\n if (!points.length || (points.length === 1 && !showSinglePoint)) {\n // 空或者只有一个点并配置不展示时\n return [];\n }\n\n if (connectNulls) {\n // 即 y 值为空的场景\n const filtered = [];\n for (let i = 0, len = points.length; i < len; i++) {\n const point = points[i];\n if (!isYNil(point)) {\n filtered.push(point);\n }\n }\n return [filtered];\n }\n\n const result = [];\n let tmp = [];\n for (let i = 0, len = points.length; i < len; i++) {\n const point = points[i];\n if (isYNil(point)) {\n if (tmp.length) {\n if (!(tmp.length === 1 && !showSinglePoint)) {\n // 如果前段数据只有一个字段并且不需要展示时则不加入\n result.push(tmp);\n }\n tmp = [];\n }\n } else {\n tmp.push(point);\n }\n }\n\n if (tmp.length) {\n result.push(tmp);\n }\n return result;\n}\n\n/**\n * 获取小提琴图的边界 path\n * @param points\n * @returns\n */\nexport function getViolinPath(points: ShapeVertices): PathCommand[] {\n const path = [];\n for (let i = 0; i < points.length; i++) {\n const point = points[i] as Point;\n if (point) {\n const action = i === 0 ? 'M' : 'L';\n path.push([action, point.x, point.y]);\n }\n }\n const first = points[0] as Point;\n if (first) {\n path.push(['L', first.x, first.y]);\n path.push(['z']);\n }\n return path;\n}\n\n/**\n * 获取小提琴图 平滑的边界 path\n * @param points\n * @returns\n */\nexport function getSmoothViolinPath(points: ShapeVertices): PathCommand[] {\n const half = points.length / 2;\n const leftPoints = [];\n const rightPoints = [];\n for (let i = 0; i < points.length; i++) {\n if (i < half) {\n leftPoints.push(points[i]);\n } else {\n rightPoints.push(points[i]);\n }\n }\n const leftPath = getSplinePath(leftPoints, false);\n const rightPath = getSplinePath(rightPoints, false);\n if (rightPoints.length) {\n leftPath.push(['L', rightPoints[0].x, rightPoints[0].y]);\n }\n rightPath.shift();\n const path = leftPath.concat(rightPath);\n if (leftPoints.length) {\n path.push(['L', leftPoints[0].x, leftPoints[0].y]);\n }\n path.push(['z']);\n return path;\n}\n","import { deepMix, isNil, get } from '@antv/util';\nimport { ShapeInfo } from '../../../interface';\n\n/**\n * @ignore\n * 获取 Shape 的图形属性\n * @param cfg\n * @param isStroke 是否需要描边\n * @param isFill 是否需要填充\n * @param [sizeName] 可选,表示图形大小的属性,lineWidth 或者 r\n * @returns\n */\nexport function getStyle(cfg: ShapeInfo, isStroke: boolean, isFill: boolean, sizeName: string = '') {\n const { style = {}, defaultStyle, color, size } = cfg;\n const attrs = {\n ...defaultStyle,\n ...style,\n };\n if (color) {\n if (isStroke) {\n if (!style.stroke) {\n // 如果用户在 style() 中配置了 stroke,则以用户配置的为准\n attrs.stroke = color;\n }\n }\n\n if (isFill) {\n if (!style.fill) {\n // 如果用户在 style() 中配置了 fill\n attrs.fill = color;\n }\n }\n }\n if (sizeName && isNil(style[sizeName]) && !isNil(size)) {\n // 如果用户在 style() 中配置了 lineWidth 或者 r 属性\n attrs[sizeName] = size;\n }\n\n return attrs;\n}\n\n/**\n * 获取 矩形背景 的样式\n * @param cfg\n */\nexport function getBackgroundRectStyle(cfg?: ShapeInfo) {\n return deepMix(\n {},\n {\n // 默认背景色,copy from active-region\n fill: '#CCD6EC',\n fillOpacity: 0.3,\n },\n get(cfg, ['background', 'style'])\n );\n}\n","import { isArray } from '@antv/util';\nimport { Point, RangePoint } from '../../../interface';\n\n/**\n * @ignore\n * 拆分点数据\n * @example\n * // result: [{x: 20, y: 20}, {x: 20, y: 30}]\n * splitPoints({x: 20,y: [20, 30]});\n * @example\n * // result: [{x: 20, y: 20}, {x: 30, y: 30}]\n * splitPoints({x: [20, 30],y: [20, 30]});\n * @param obj\n */\nexport function splitPoints(obj: RangePoint): Point[] {\n // y 有可能是数组,对应原始数据中 y 为一个区间数据,如 [19, 30],为了统一也将 x 转换为数组\n const x = obj.x;\n const y = isArray(obj.y) ? obj.y : [obj.y];\n\n return y.map((eachY, index) => {\n return {\n x: isArray(x) ? x[index] : x,\n y: eachY,\n };\n });\n}\n","import { ShapeMarkerCfg } from '../../../interface';\n\nconst LineSymbols = {\n line: (x: number, y: number, r: number) => {\n return [\n ['M', x - r, y],\n ['L', x + r, y],\n ];\n },\n dot: (x: number, y: number, r: number) => {\n return [\n ['M', x - r, y],\n ['L', x + r, y],\n ];\n },\n dash: (x: number, y: number, r: number) => {\n return [\n ['M', x - r, y],\n ['L', x + r, y],\n ];\n },\n smooth: (x: number, y: number, r: number) => {\n return [\n ['M', x - r, y],\n ['A', r / 2, r / 2, 0, 1, 1, x, y],\n ['A', r / 2, r / 2, 0, 1, 0, x + r, y],\n ];\n },\n hv: (x: number, y: number, r: number) => {\n return [\n ['M', x - r - 1, y - 2.5],\n ['L', x, y - 2.5],\n ['L', x, y + 2.5],\n ['L', x + r + 1, y + 2.5],\n ];\n },\n vh: (x: number, y: number, r: number) => {\n return [\n ['M', x - r - 1, y + 2.5],\n ['L', x, y + 2.5],\n ['L', x, y - 2.5],\n ['L', x + r + 1, y - 2.5],\n ];\n },\n hvh: (x: number, y: number, r: number) => {\n return [\n ['M', x - (r + 1), y + 2.5],\n ['L', x - r / 2, y + 2.5],\n ['L', x - r / 2, y - 2.5],\n ['L', x + r / 2, y - 2.5],\n ['L', x + r / 2, y + 2.5],\n ['L', x + r + 1, y + 2.5],\n ];\n },\n vhv: (x: number, y: number) => {\n // 宽 13px,高 8px\n return [\n ['M', x - 5, y + 2.5],\n ['L', x - 5, y],\n ['L', x, y],\n ['L', x, y - 3],\n ['L', x, y + 3],\n ['L', x + 6.5, y + 3],\n ];\n },\n};\n\n/**\n * Gets line marker\n * @ignore\n * @param markerCfg\n * @param shapeType\n * @returns 返回 Line 的 marker 配置\n */\nexport function getLineMarker(markerCfg: ShapeMarkerCfg, shapeType: string) {\n const { color } = markerCfg;\n return {\n symbol: LineSymbols[shapeType],\n style: {\n lineWidth: 2,\n r: 6,\n stroke: color,\n },\n };\n}\n","import { each, isArray } from '@antv/util';\nimport { IGroup, ShapeAttrs } from '../../../dependents';\nimport { Point, Position, RangePoint, ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { registerShape, registerShapeFactory } from '../base';\nimport { getPathPoints } from '../util/get-path-points';\nimport { getStyle } from '../util/get-style';\nimport { getLinePath, getSplinePath } from '../util/path';\nimport { splitPoints } from '../util/split-points';\nimport { getLineMarker } from './util';\n\nfunction getShapeAttrs(cfg: ShapeInfo, smooth?: boolean, constraint?: Position[]) {\n const { isStack, connectNulls, isInCircle, showSinglePoint } = cfg;\n const shapeAttrs = getStyle(cfg, true, false, 'lineWidth');\n\n const points = getPathPoints(cfg.points, connectNulls, showSinglePoint); // 根据 connectNulls 值处理 points\n let path = [];\n for (let i = 0, len = points.length; i < len; i++) {\n const eachLinePoints = points[i];\n path = path.concat(getPath(eachLinePoints, isInCircle, isStack, smooth, constraint, shapeAttrs));\n }\n shapeAttrs.path = path;\n\n return shapeAttrs;\n}\n\n// 单条 path\nfunction getSinglePath(\n points: Point[],\n isInCircle: boolean,\n smooth?: boolean,\n constraint?: Position[],\n style?: ShapeAttrs\n) {\n if (points.length === 1) {\n // 只有一个点时\n return [\n ['M', points[0].x, points[0].y - style.lineWidth / 2],\n ['L', points[0].x, points[0].y],\n ['L', points[0].x, points[0].y + style.lineWidth / 2],\n ];\n }\n\n let path;\n if (!smooth) {\n path = getLinePath(points, false);\n if (isInCircle) {\n path.push(['Z']);\n }\n } else {\n // 直角坐标系下绘制曲线时限制最大值、最小值\n if (isInCircle && points.length) {\n points.push({ x: points[0].x, y: points[0].y });\n }\n path = getSplinePath(points, false, constraint);\n }\n\n return path;\n}\n\nfunction getRangePath(\n points: RangePoint[],\n isInCircle: boolean,\n isStack?: boolean,\n smooth?: boolean,\n constraint?: Position[],\n style?: ShapeAttrs\n) {\n const topPoints = [];\n const bottomPoints = [];\n each(points, (point: RangePoint) => {\n const result = splitPoints(point);\n topPoints.push(result[1]); // 上边\n bottomPoints.push(result[0]); // 底边\n });\n\n const topPath = getSinglePath(topPoints, isInCircle, smooth, constraint, style);\n const bottomPath = getSinglePath(bottomPoints, isInCircle, smooth, constraint, style);\n if (isStack) {\n return topPath;\n }\n return topPath.concat(bottomPath);\n}\n\n/**\n * 获取折线图 path\n */\nexport function getPath(\n points: Point[] | RangePoint[],\n isInCircle: boolean,\n isStack?: boolean,\n smooth?: boolean,\n constraint?: Position[],\n style?: ShapeAttrs\n) {\n if (points.length) {\n const first = points[0];\n\n return isArray(first.y)\n ? getRangePath(points as RangePoint[], isInCircle, isStack, smooth, constraint, style)\n : getSinglePath(points as Point[], isInCircle, smooth, constraint, style);\n }\n return [];\n}\n\nconst LineShapeFactory = registerShapeFactory('line', {\n defaultShapeType: 'line',\n});\n\n// 这里因为代码公用,所以直接全部注册\n// 'line' 默认折线;'dot' 点线 ···;'dash' 断线 - - -\neach(['line', 'dot', 'dash', 'smooth'], (shapeType) => {\n registerShape('line', shapeType, {\n draw(cfg: ShapeInfo, container: IGroup) {\n const smooth = shapeType === 'smooth';\n let constraint;\n if (smooth) {\n const { start, end } = this.coordinate;\n constraint = [\n [start.x, end.y],\n [end.x, start.y],\n ];\n }\n\n const attrs = getShapeAttrs(cfg, smooth, constraint);\n const shape = container.addShape({\n type: 'path',\n attrs,\n name: 'line',\n capture: !smooth,\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n return getLineMarker(markerCfg, shapeType);\n },\n });\n});\n\nexport default LineShapeFactory;\n","/* G2 的一个壳子,不包含 Geometry,由开发者自己定义和引入 */\n\nexport const VERSION = '4.1.42';\n\n// 核心基类导出\nexport { Chart, View, Event } from './chart'; // Chart, View 类\nexport { Controller as ComponentController } from './chart/controller/base'; // G2 组件基类\nexport { default as TooltipController } from './chart/controller/tooltip'; // G2 tooltip 组件基类\nexport { default as Geometry } from './geometry/base'; // Geometry 基类\nexport { default as Element } from './geometry/element'; // Element 类\nexport { default as GeometryLabel } from './geometry/label/base'; // Geometry Label 基类\nexport { Interaction, Action } from './interaction'; // Interaction, Action 基类\nexport { Facet } from './facet'; // Facet 基类\nexport { default as InteractionAction } from './interaction/action/base'; // Interaction Action 基类\n\n// 注册 ComponentController\nexport { registerComponentController } from './chart';\n\n// 注册 Geometry\nexport { registerGeometry } from './chart';\n\n// 注册 Geometry Shape\nexport { registerShape, registerShapeFactory, getShapeFactory } from './geometry/shape/base';\n\n// 注册 Geometry label 以及 Geometry Label 布局函数\nexport {\n registerGeometryLabel,\n registerGeometryLabelLayout,\n getGeometryLabel,\n getGeometryLabelLayout,\n} from './geometry/label';\n\n// 注册 interaction\nexport { getInteraction, registerInteraction, registerAction, getActionClass } from './interaction';\n\n// 注册 facet\nexport { getFacet, registerFacet } from './facet';\n\n// 注册主题\nexport { getTheme, registerTheme } from './theme';\n\n// G engine 管理相关\nexport { registerEngine, getEngine } from './engine';\n\n// 注册动画函数\nexport { registerAnimation, getAnimation } from './animate/animation';\n\nexport { LAYER, DIRECTION } from './constant';\n\n// 因为 typescript 部分版本不支持 export * as 语法。\nimport * as Types from './interface';\nexport type { Types };\n\nexport { IGroup, ShapeAttrs, Coordinate, Scale, ScaleConfig } from './dependents';\n\n// 一些工具方法导出\nimport { getMappingValue } from './util/attr';\nimport { getLegendItems } from './util/legend';\nimport { getAngle, getSectorPath, polarToCartesian } from './util/graphics';\nimport { rotate, transform, translate, zoom } from './util/transform';\nimport { getTooltipItems } from './util/tooltip';\nimport { getDelegationObject } from './interaction/action/util';\nimport { getPathPoints } from './geometry/shape/util/get-path-points';\nimport { getPath } from './geometry/shape/line';\n\nexport const Util = {\n getLegendItems,\n translate,\n rotate,\n zoom,\n transform,\n getAngle,\n getSectorPath,\n polarToCartesian,\n getDelegationObject,\n getTooltipItems,\n getMappingValue,\n // shape 的一些操作方法\n getPath,\n getPathPoints,\n};\n","import { StyleSheetCfg } from '../../interface';\n\nconst WHITE_COLORS = {\n 100: '#000',\n 95: '#0D0D0D',\n 85: '#262626',\n 65: '#595959',\n 45: '#8C8C8C',\n 25: '#BFBFBF',\n 15: '#D9D9D9',\n 6: '#F0F0F0',\n};\n\nconst BLACK_COLORS = {\n 100: '#FFFFFF',\n 95: '#F2F2F2',\n 85: '#D9D9D9',\n 65: '#A6A6A6',\n 45: '#737373',\n 25: '#404040',\n 15: '#262626',\n 6: '#0F0F0F',\n};\n\nconst QUALITATIVE_10 = [\n '#5B8FF9',\n '#5AD8A6',\n '#5D7092',\n '#F6BD16',\n '#E86452',\n '#6DC8EC',\n '#945FB9',\n '#FF9845',\n '#1E9493',\n '#FF99C3',\n];\n\nconst QUALITATIVE_20 = [\n '#5B8FF9',\n '#CDDDFD',\n '#5AD8A6',\n '#CDF3E4',\n '#5D7092',\n '#CED4DE',\n '#F6BD16',\n '#FCEBB9',\n '#E86452',\n '#F8D0CB',\n '#6DC8EC',\n '#D3EEF9',\n '#945FB9',\n '#DECFEA',\n '#FF9845',\n '#FFE0C7',\n '#1E9493',\n '#BBDEDE',\n '#FF99C3',\n '#FFE0ED',\n];\n\n/** 单色顺序色板 */\nconst SINGLE_SEQUENCE = [\n '#B8E1FF',\n '#9AC5FF',\n '#7DAAFF',\n '#5B8FF9',\n '#3D76DD',\n '#085EC0',\n '#0047A5',\n '#00318A',\n '#001D70',\n];\n\nexport const createDarkStyleSheet = (cfg: StyleSheetCfg = {}) => {\n const {\n backgroundColor = '#141414',\n subColor = 'rgba(255,255,255,0.05)',\n paletteQualitative10 = QUALITATIVE_10,\n paletteQualitative20 = QUALITATIVE_20,\n paletteSemanticRed = '#F4664A',\n paletteSemanticGreen = '#30BF78',\n paletteSemanticYellow = '#FAAD14',\n paletteSequence = SINGLE_SEQUENCE,\n fontFamily = `\"Segoe UI\", Roboto, \"Helvetica Neue\", Arial,\n \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\",\n \"Noto Color Emoji\"`,\n } = cfg;\n const { brandColor = paletteQualitative10[0] } = cfg;\n\n return {\n /** 图表背景色 */\n backgroundColor,\n /** 主题色 */\n brandColor,\n /** 图表辅助色 */\n subColor,\n /** 分类色板 1,在数据量小于等于 10 时使用 */\n paletteQualitative10,\n /** 分类色板 2,在数据量大于 10 时使用 */\n paletteQualitative20,\n /** 语义色 */\n paletteSemanticRed,\n /** 语义色 */\n paletteSemanticGreen,\n /** 语义色 */\n paletteSemanticYellow,\n /** (单色)顺序色板 */\n paletteSequence,\n /** 字体 */\n fontFamily,\n\n // -------------------- 坐标轴 --------------------\n /** 坐标轴线颜色 */\n axisLineBorderColor: BLACK_COLORS[25],\n /** 坐标轴线粗细 */\n axisLineBorder: 1,\n /** 坐标轴线 lineDash 设置 */\n axisLineDash: null,\n\n /** 坐标轴标题颜色 */\n axisTitleTextFillColor: BLACK_COLORS[65],\n /** 坐标轴标题文本字体大小 */\n axisTitleTextFontSize: 12,\n /** 坐标轴标题文本行高 */\n axisTitleTextLineHeight: 12,\n /** 坐标轴标题文本字体粗细 */\n axisTitleTextFontWeight: 'normal',\n /** 坐标轴标题距离坐标轴文本的间距 */\n axisTitleSpacing: 12,\n\n /** 坐标轴刻度线颜色 */\n axisTickLineBorderColor: BLACK_COLORS[25],\n /** 坐标轴刻度线长度 */\n axisTickLineLength: 4,\n /** 坐标轴刻度线粗细 */\n axisTickLineBorder: 1,\n\n /** 坐标轴次刻度线颜色 */\n axisSubTickLineBorderColor: BLACK_COLORS[15],\n /** 坐标轴次刻度线长度 */\n axisSubTickLineLength: 2,\n /** 坐标轴次刻度线粗细 */\n axisSubTickLineBorder: 1,\n\n /** 坐标轴刻度文本颜色 */\n axisLabelFillColor: BLACK_COLORS[45],\n /** 坐标轴刻度文本字体大小 */\n axisLabelFontSize: 12,\n /** 坐标轴刻度文本行高 */\n axisLabelLineHeight: 12,\n /** 坐标轴刻度文本字体粗细 */\n axisLabelFontWeight: 'normal',\n /** 坐标轴刻度文本距离坐标轴线的间距 */\n axisLabelOffset: 8,\n\n /** 坐标轴网格线颜色 */\n axisGridBorderColor: BLACK_COLORS[15],\n /** 坐标轴网格线粗细 */\n axisGridBorder: 1,\n /** 坐标轴网格线虚线设置 */\n axisGridLineDash: null,\n\n // -------------------- 图例 --------------------\n /** 图例标题颜色 */\n legendTitleTextFillColor: BLACK_COLORS[45],\n /** 图例标题文本字体大小 */\n legendTitleTextFontSize: 12,\n /** 图例标题文本行高 */\n legendTitleTextLineHeight: 21,\n /** 图例标题文本字体粗细 */\n legendTitleTextFontWeight: 'normal',\n\n /** 图例 marker 颜色 */\n legendMarkerColor: QUALITATIVE_10[0],\n /** 图例 marker 距离图例文本的间距 */\n legendMarkerSpacing: 8,\n /** 图例 marker 默认半径大小 */\n legendMarkerSize: 4,\n /** 图例 'circle' marker 半径 */\n legendCircleMarkerSize: 4,\n /** 图例 'square' marker 半径 */\n legendSquareMarkerSize: 4,\n /** 图例 'line' marker 半径 */\n legendLineMarkerSize: 5,\n\n /** 图例项文本颜色 */\n legendItemNameFillColor: BLACK_COLORS[65],\n /** 图例项文本字体大小 */\n legendItemNameFontSize: 12,\n /** 图例项文本行高 */\n legendItemNameLineHeight: 12,\n /** 图例项粗细 */\n legendItemNameFontWeight: 'normal',\n /** 图例项之间的水平间距 */\n legendItemSpacing: 24,\n /** 图例项垂直方向的间隔 */\n legendItemMarginBottom: 12,\n /** 图例与图表绘图区域的偏移距离 */\n legendSpacing: 16,\n /** 图例与图表绘图区域的偏移距离 */\n legendPadding: [8, 8, 8, 8],\n /** 水平布局的图例与绘图区域偏移距离 */\n legendHorizontalPadding: [8, 0, 8, 0],\n /** 垂直布局的图例与绘图区域偏移距离 */\n legendVerticalPadding: [0, 8, 0, 8],\n\n // 图例分页器\n /** 图例分页器 marker 大小 */\n legendPageNavigatorMarkerSize: 12,\n /** 图例分页器 marker 填充色 */\n legendPageNavigatorMarkerInactiveFillColor: BLACK_COLORS[45],\n /** 图例分页器 marker 填充色透明度 */\n legendPageNavigatorMarkerInactiveFillOpacity: 0.45,\n /** 图例分页器 marker 激活状态填充色 */\n legendPageNavigatorMarkerFillColor: BLACK_COLORS[45],\n /** 图例分页器 marker 激活状态填充色透明度 */\n legendPageNavigatorMarkerFillOpacity: 1,\n /** 图例分页器文本颜色 */\n legendPageNavigatorTextFillColor: BLACK_COLORS[65],\n /** 图例分页器文本字体大小 */\n legendPageNavigatorTextFontSize: 12,\n\n /** 连续图例滑块填充色 */\n sliderRailFillColor: BLACK_COLORS[15],\n /** 连续图例滑块边框粗细 */\n sliderRailBorder: 0,\n /** 连续图例滑块边框颜色 */\n sliderRailBorderColor: null,\n /** 连续图例滑块宽度 */\n sliderRailWidth: 100,\n /** 连续图例滑块高度 */\n sliderRailHeight: 12,\n\n /** 连续图例文本颜色 */\n sliderLabelTextFillColor: BLACK_COLORS[45],\n /** 连续图例文本字体大小 */\n sliderLabelTextFontSize: 12,\n /** 连续图例文本行高 */\n sliderLabelTextLineHeight: 12,\n /** 连续图例文本字体粗细 */\n sliderLabelTextFontWeight: 'normal',\n\n /** 连续图例滑块颜色 */\n sliderHandlerFillColor: WHITE_COLORS[6],\n /** 连续图例滑块宽度 */\n sliderHandlerWidth: 10,\n /** 连续图例滑块高度 */\n sliderHandlerHeight: 14,\n /** 连续图例滑块边框粗细 */\n sliderHandlerBorder: 1,\n /** 连续图例滑块边框颜色 */\n sliderHandlerBorderColor: WHITE_COLORS[25],\n\n // -------------------- Annotation,图形标注 --------------------\n /** arc 图形标注描边颜色 */\n annotationArcBorderColor: BLACK_COLORS[15],\n /** arc 图形标注粗细 */\n annotationArcBorder: 1,\n\n /** line 图形标注颜色 */\n annotationLineBorderColor: BLACK_COLORS[25],\n /** line 图形标注粗细 */\n annotationLineBorder: 1,\n /** lube 图形标注的虚线间隔 */\n annotationLineDash: null,\n\n /** text 图形标注文本颜色 */\n annotationTextFillColor: BLACK_COLORS[65],\n /** text 图形标注文本字体大小 */\n annotationTextFontSize: 12,\n /** text 图形标注文本行高 */\n annotationTextLineHeight: 12,\n /** text 图形标注文本字体粗细 */\n annotationTextFontWeight: 'normal',\n /** text 图形标注文本边框颜色 */\n annotationTextBorderColor: null,\n /** text 图形标注文本边框粗细 */\n annotationTextBorder: 0,\n\n /** region 图形标注填充颜色 */\n annotationRegionFillColor: BLACK_COLORS[100],\n /** region 图形标注填充颜色透明色 */\n annotationRegionFillOpacity: 0.06,\n /** region 图形标注描边粗细 */\n annotationRegionBorder: 0,\n /** region 图形标注描边颜色 */\n annotationRegionBorderColor: null,\n\n /** dataMarker 图形标注线的长度 */\n annotationDataMarkerLineLength: 16,\n\n // -------------------- Tooltip --------------------\n /** tooltip crosshairs 辅助线颜色 */\n tooltipCrosshairsBorderColor: BLACK_COLORS[25],\n /** tooltip crosshairs 辅助线粗细 */\n tooltipCrosshairsBorder: 1,\n /** tooltip crosshairs 辅助线虚线间隔 */\n tooltipCrosshairsLineDash: null,\n\n /** tooltip 内容框背景色 */\n tooltipContainerFillColor: '#1f1f1f',\n tooltipContainerFillOpacity: 0.95,\n /** tooltip 内容框阴影 */\n tooltipContainerShadow: '0px 2px 4px rgba(0,0,0,.5)',\n /** tooltip 内容框圆角 */\n tooltipContainerBorderRadius: 3,\n\n /** tooltip 文本颜色 */\n tooltipTextFillColor: BLACK_COLORS[65],\n /** tooltip 文本字体大小 */\n tooltipTextFontSize: 12,\n /** tooltip 文本行高 */\n tooltipTextLineHeight: 12,\n /** tooltip 文本字体粗细 */\n tooltipTextFontWeight: 'bold',\n\n // -------------------- Geometry labels --------------------\n /** Geometry label 文本颜色 */\n labelFillColor: BLACK_COLORS[65],\n labelFillColorDark: '#2c3542',\n labelFillColorLight: '#ffffff',\n /** Geometry label 文本字体大小 */\n labelFontSize: 12,\n /** Geometry label 文本行高 */\n labelLineHeight: 12,\n /** Geometry label 文本字体粗细 */\n labelFontWeight: 'normal',\n /** Geometry label 文本描边颜色 */\n labelBorderColor: null,\n /** Geometry label 文本描边粗细 */\n labelBorder: 0,\n\n /** Geometry innerLabel 文本颜色 */\n innerLabelFillColor: WHITE_COLORS[100],\n /** Geometry innerLabel 文本字体大小 */\n innerLabelFontSize: 12,\n /** Geometry innerLabel 文本行高 */\n innerLabelLineHeight: 12,\n /** Geometry innerLabel 文本字体粗细 */\n innerLabelFontWeight: 'normal',\n /** Geometry innerLabel 文本描边颜色 */\n innerLabelBorderColor: null,\n /** Geometry innerLabel 文本描边粗细 */\n innerLabelBorder: 0,\n\n /** Geometry label 文本颜色 */\n overflowLabelFillColor: BLACK_COLORS[65],\n overflowLabelFillColorDark: '#2c3542',\n overflowLabelFillColorLight: '#ffffff',\n /** Geometry label 文本字体大小 */\n overflowLabelFontSize: 12,\n /** Geometry label 文本行高 */\n overflowLabelLineHeight: 12,\n /** Geometry label 文本字体粗细 */\n overflowLabelFontWeight: 'normal',\n /** Geometry label 文本描边颜色 */\n overflowLabelBorderColor: WHITE_COLORS[100],\n /** Geometry label 文本描边粗细 */\n overflowLabelBorder: 1,\n\n /** Geometry label 文本连接线粗细 */\n labelLineBorder: 1,\n /** Geometry label 文本连接线颜色 */\n labelLineBorderColor: BLACK_COLORS[25],\n\n // -------------------- Slider 组件样式--------------------\n /** slider 滑道高度 */\n cSliderRailHieght: 16,\n /** slider 滑道背景色 */\n cSliderBackgroundFillColor: '#416180',\n /** slider 滑道背景色透明度 */\n cSliderBackgroundFillOpacity: 0.05,\n /** slider 滑道前景色 */\n cSliderForegroundFillColor: '#5B8FF9',\n /** slider 滑道前景色透明度 */\n cSliderForegroundFillOpacity: 0.15,\n // slider handlerStyle 手柄样式\n /** slider 手柄高度 */\n cSliderHandlerHeight: 24,\n /** Slider 手柄宽度 */\n cSliderHandlerWidth: 10,\n /** Slider 手柄背景色 */\n cSliderHandlerFillColor: '#F7F7F7',\n /** Slider 手柄背景色透明度 */\n cSliderHandlerFillOpacity: 1,\n /** Slider 手柄高亮背景色 */\n cSliderHandlerHighlightFillColor: '#FFF',\n /** Slider 手柄边框色 */\n cSliderHandlerBorderColor: '#BFBFBF',\n /** Slider 手柄边框粗细 */\n cSliderHandlerBorder: 1,\n /** Slider 手柄边框圆角 */\n cSliderHandlerBorderRadius: 2,\n // slider textStyle 字体标签样式\n /** Slider 字体标签颜色 */\n cSliderTextFillColor: '#fff',\n /** Slider 字体标签透明度 */\n cSliderTextFillOpacity: 0.45,\n /** Slider 字体标签大小 */\n cSliderTextFontSize: 12,\n /** Slider 字体标签行高 */\n cSliderTextLineHeight: 12,\n /** Slider 字体标签字重 */\n cSliderTextFontWeight: 'normal',\n /** Slider 字体标签描边色 */\n cSliderTextBorderColor: null,\n /** Slider 字体标签描边粗细 */\n cSliderTextBorder: 0,\n\n // -------------------- Scrollbar 组件样式--------------------\n /** 滚动条 滚道填充色 */\n scrollbarTrackFillColor: 'rgba(255,255,255,0.65)',\n /** 滚动条 滑块填充色 */\n scrollbarThumbFillColor: 'rgba(0,0,0,0.35)',\n /** 滚动条 滑块高亮填充色 */\n scrollbarThumbHighlightFillColor: 'rgba(0,0,0,0.45)',\n\n // -------------------- Geometry 图形样式--------------------\n /** 点图填充颜色 */\n pointFillColor: QUALITATIVE_10[0],\n /** 点图填充颜色透明度 */\n pointFillOpacity: 0.95,\n /** 点图大小 */\n pointSize: 4,\n /** 点图描边粗细 */\n pointBorder: 1,\n /** 点图描边颜色 */\n pointBorderColor: WHITE_COLORS[100],\n /** 点图描边透明度 */\n pointBorderOpacity: 1,\n\n /** 点图 active 状态下描边颜色 */\n pointActiveBorderColor: BLACK_COLORS[100],\n\n /** 点图 selected 状态下描边粗细 */\n pointSelectedBorder: 2,\n /** 点图 selected 状态下描边颜色 */\n pointSelectedBorderColor: BLACK_COLORS[100],\n\n /** 点图 inactive 状态下填充颜色透明度 */\n pointInactiveFillOpacity: 0.3,\n /** 点图 inactive 状态下描边透明度 */\n pointInactiveBorderOpacity: 0.3,\n\n /** 空心点图大小 */\n hollowPointSize: 4,\n /** 空心点图描边粗细 */\n hollowPointBorder: 1,\n /** 空心点图描边颜色 */\n hollowPointBorderColor: QUALITATIVE_10[0],\n /** 空心点图描边透明度 */\n hollowPointBorderOpacity: 0.95,\n hollowPointFillColor: WHITE_COLORS[100],\n\n /** 空心点图 active 状态下描边粗细 */\n hollowPointActiveBorder: 1,\n /** 空心点图 active 状态下描边颜色 */\n hollowPointActiveBorderColor: BLACK_COLORS[100],\n /** 空心点图 active 状态下描边透明度 */\n hollowPointActiveBorderOpacity: 1,\n\n /** 空心点图 selected 状态下描边粗细 */\n hollowPointSelectedBorder: 2,\n /** 空心点图 selected 状态下描边颜色 */\n hollowPointSelectedBorderColor: BLACK_COLORS[100],\n /** 空心点图 selected 状态下描边透明度 */\n hollowPointSelectedBorderOpacity: 1,\n\n /** 空心点图 inactive 状态下描边透明度 */\n hollowPointInactiveBorderOpacity: 0.3,\n\n /** 线图粗细 */\n lineBorder: 2,\n /** 线图颜色 */\n lineBorderColor: QUALITATIVE_10[0],\n /** 线图透明度 */\n lineBorderOpacity: 1,\n\n /** 线图 Active 状态下粗细 */\n lineActiveBorder: 3,\n\n /** 线图 selected 状态下粗细 */\n lineSelectedBorder: 3,\n\n /** 线图 inactive 状态下透明度 */\n lineInactiveBorderOpacity: 0.3,\n\n /** area 填充颜色 */\n areaFillColor: QUALITATIVE_10[0],\n /** area 填充透明度 */\n areaFillOpacity: 0.25,\n\n /** area 在 active 状态下的填充透明度 */\n areaActiveFillColor: QUALITATIVE_10[0],\n areaActiveFillOpacity: 0.5,\n\n /** area 在 selected 状态下的填充透明度 */\n areaSelectedFillColor: QUALITATIVE_10[0],\n areaSelectedFillOpacity: 0.5,\n\n /** area inactive 状态下填充透明度 */\n areaInactiveFillOpacity: 0.3,\n\n /** hollowArea 颜色 */\n hollowAreaBorderColor: QUALITATIVE_10[0],\n /** hollowArea 边框粗细 */\n hollowAreaBorder: 2,\n /** hollowArea 边框透明度 */\n hollowAreaBorderOpacity: 1,\n\n /** hollowArea active 状态下的边框粗细 */\n hollowAreaActiveBorder: 3,\n hollowAreaActiveBorderColor: BLACK_COLORS[100],\n\n /** hollowArea selected 状态下的边框粗细 */\n hollowAreaSelectedBorder: 3,\n hollowAreaSelectedBorderColor: BLACK_COLORS[100],\n\n /** hollowArea inactive 状态下的边框透明度 */\n hollowAreaInactiveBorderOpacity: 0.3,\n\n /** interval 填充颜色 */\n intervalFillColor: QUALITATIVE_10[0],\n /** interval 填充透明度 */\n intervalFillOpacity: 0.95,\n\n /** interval active 状态下边框粗细 */\n intervalActiveBorder: 1,\n /** interval active 状态下边框颜色 */\n intervalActiveBorderColor: BLACK_COLORS[100],\n intervalActiveBorderOpacity: 1,\n\n /** interval selected 状态下边框粗细 */\n intervalSelectedBorder: 2,\n /** interval selected 状态下边框颜色 */\n intervalSelectedBorderColor: BLACK_COLORS[100],\n /** interval selected 状态下边框透明度 */\n intervalSelectedBorderOpacity: 1,\n\n /** interval inactive 状态下边框透明度 */\n intervalInactiveBorderOpacity: 0.3,\n /** interval inactive 状态下填充透明度 */\n intervalInactiveFillOpacity: 0.3,\n\n /** interval 边框粗细 */\n hollowIntervalBorder: 2,\n /** hollowInterval 边框颜色 */\n hollowIntervalBorderColor: QUALITATIVE_10[0],\n /** hollowInterval 边框透明度 */\n hollowIntervalBorderOpacity: 1,\n hollowIntervalFillColor: WHITE_COLORS[100],\n\n /** hollowInterval active 状态下边框粗细 */\n hollowIntervalActiveBorder: 2,\n /** hollowInterval active 状态下边框颜色 */\n hollowIntervalActiveBorderColor: BLACK_COLORS[100],\n\n /** hollowInterval selected 状态下边框粗细 */\n hollowIntervalSelectedBorder: 3,\n /** hollowInterval selected 状态下边框颜色 */\n hollowIntervalSelectedBorderColor: BLACK_COLORS[100],\n /** hollowInterval selected 状态下边框透明度 */\n hollowIntervalSelectedBorderOpacity: 1,\n\n /** hollowInterval inactive 状态下边框透明度 */\n hollowIntervalInactiveBorderOpacity: 0.3,\n };\n};\n\nexport const antvDark = createDarkStyleSheet();\n","import { FIELD_ORIGIN } from '../constant';\nimport { MappingDatum, ShapeInfo } from '../interface';\nimport Geometry, { GeometryCfg } from './base';\nimport Element from './element';\n/** 引入对应的 ShapeFactory */\nimport './shape/line';\nimport { isModelChange } from './util/is-model-change';\nimport { diff } from './util/diff';\n\n/** Path 构造函数参数类型 */\nexport interface PathCfg extends GeometryCfg {\n /** 是否连接空值 */\n connectNulls?: boolean;\n /** 单个孤立数据点是否展示 */\n showSinglePoint?: boolean;\n}\n\n/**\n * Path 几何标记。\n * 用于绘制路径图等。\n */\nexport default class Path extends Geometry {\n public readonly type: string = 'path';\n public readonly shapeType: string = 'line';\n /** 是否连接空值 */\n public connectNulls: boolean;\n /** 单个孤立数据点是否展示 */\n public showSinglePoint: boolean;\n\n constructor(cfg: PathCfg) {\n super(cfg);\n\n const { connectNulls = false, showSinglePoint = true } = cfg;\n this.connectNulls = connectNulls;\n this.showSinglePoint = showSinglePoint;\n }\n\n /**\n * 创建所有的 Element 实例,对于 Path、Line、Area,一组数据对应一个 Element。\n * @param mappingData\n * @param [isUpdate]\n * @returns elements\n */\n protected updateElements(mappingDataArray: MappingDatum[][], isUpdate: boolean = false) {\n // Path 的每个 element 对应一组数据\n const keyData = new Map();\n const keyIndex = new Map();\n const keys: string[] = [];\n\n let index = 0;\n for (let i = 0; i < mappingDataArray.length; i++) {\n const mappingData = mappingDataArray[i];\n const key = this.getElementId(mappingData);\n keys.push(key);\n keyData.set(key, mappingData);\n keyIndex.set(key, index);\n index++;\n }\n\n this.elements = new Array(index);\n\n const { added, updated, removed } = diff(this.lastElementsMap, keys);\n\n for (const key of added) {\n const mappingData = keyData.get(key);\n const shapeFactory = this.getShapeFactory();\n const shapeCfg = this.getShapeInfo(mappingData);\n const i = keyIndex.get(key);\n const element = new Element({\n shapeFactory,\n container: this.container,\n offscreenGroup: this.getOffscreenGroup(),\n elementIndex: i,\n });\n element.geometry = this;\n element.animate = this.animateOption;\n element.draw(shapeCfg, isUpdate); // 绘制 shape\n this.elementsMap[key] = element;\n this.elements[i] = element;\n }\n\n for (const key of updated) {\n const mappingData = keyData.get(key);\n const element = this.lastElementsMap[key];\n const i = keyIndex.get(key);\n const shapeCfg = this.getShapeInfo(mappingData);\n const preShapeCfg = element.getModel();\n if (this.isCoordinateChanged || isModelChange(preShapeCfg, shapeCfg)) {\n element.animate = this.animateOption;\n // 通过绘制数据的变更来判断是否需要更新,因为用户有可能会修改图形属性映射\n element.update(shapeCfg); // 更新对应的 element\n }\n this.elementsMap[key] = element;\n this.elements[i] = element;\n }\n\n for (const key of removed) {\n const element = this.lastElementsMap[key];\n // 更新动画配置,用户有可能在更新之前有对动画进行配置操作\n element.animate = this.animateOption;\n element.destroy();\n }\n }\n\n /**\n * 获取组成一条线(一组数据)的所有点以及数据\n * @param mappingData 映射后的数组\n */\n protected getPointsAndData(mappingData: MappingDatum[]) {\n const points = [];\n const data = [];\n\n for (let i = 0, len = mappingData.length; i < len; i++) {\n const obj = mappingData[i];\n points.push({\n x: obj.x,\n y: obj.y,\n });\n data.push(obj[FIELD_ORIGIN]);\n }\n\n return {\n points,\n data,\n };\n }\n\n private getShapeInfo(mappingData: MappingDatum[]): ShapeInfo {\n const shapeCfg = this.getDrawCfg(mappingData[0]);\n const { points, data } = this.getPointsAndData(mappingData);\n shapeCfg.mappingData = mappingData;\n shapeCfg.data = data;\n shapeCfg.isStack = !!this.getAdjust('stack');\n shapeCfg.points = points;\n shapeCfg.connectNulls = this.connectNulls;\n shapeCfg.showSinglePoint = this.showSinglePoint;\n\n return shapeCfg;\n }\n}\n","import { each } from '@antv/util';\nimport { Coordinate, PathCommand } from '../../../dependents';\nimport { Point, Position, Shape, ShapeInfo } from '../../../interface';\n\nimport { getPathPoints } from '../util/get-path-points';\nimport { getStyle } from '../util/get-style';\nimport { getLinePath, getSplinePath } from '../util/path';\n\nfunction getPath(\n points: Point[],\n isInCircle: boolean,\n smooth: boolean,\n registeredShape: Shape,\n constraint?: Position[]\n): PathCommand[] {\n let path = [];\n\n if (points.length) {\n const topLinePoints = []; // area 区域上部分\n let bottomLinePoints = []; // area 区域下部分\n for (let i = 0, len = points.length; i < len; i++) {\n const point = points[i];\n topLinePoints.push(point[1]);\n bottomLinePoints.push(point[0]);\n }\n bottomLinePoints = bottomLinePoints.reverse();\n\n each([topLinePoints, bottomLinePoints], (pointsData, index) => {\n let subPath = [];\n const parsedPoints = registeredShape.parsePoints(pointsData);\n const p1 = parsedPoints[0];\n\n if (topLinePoints.length === 1 && bottomLinePoints.length === 1) {\n // 都只有一个点,绘制一条竖线\n subPath =\n index === 0\n ? [\n ['M', p1.x - 0.5, p1.y],\n ['L', p1.x + 0.5, p1.y],\n ]\n : [\n ['L', p1.x + 0.5, p1.y],\n ['L', p1.x - 0.5, p1.y],\n ];\n } else {\n if (isInCircle) {\n parsedPoints.push({ x: p1.x, y: p1.y });\n }\n if (smooth) {\n subPath = getSplinePath(parsedPoints, false, constraint);\n } else {\n subPath = getLinePath(parsedPoints, false);\n }\n if (index > 0) {\n subPath[0][0] = 'L';\n }\n }\n\n path = path.concat(subPath);\n });\n\n path.push(['Z']);\n }\n\n return path;\n}\n\n/**\n * @ignore\n * Gets shape attrs\n * @param cfg\n * @param isStroke\n * @param smooth\n * @param registeredShape\n * @param [constraint]\n * @returns\n */\nexport function getShapeAttrs(\n cfg: ShapeInfo,\n isStroke: boolean,\n smooth: boolean,\n registeredShape: Shape,\n constraint?: Position[]\n) {\n const attrs = getStyle(cfg, isStroke, !isStroke, 'lineWidth');\n const { connectNulls, isInCircle, points, showSinglePoint } = cfg;\n const pathPoints = getPathPoints(points, connectNulls, showSinglePoint); // 根据 connectNulls 配置获取图形关键点\n\n let path = [];\n for (let i = 0, len = pathPoints.length; i < len; i++) {\n const eachPoints = pathPoints[i];\n path = path.concat(getPath(eachPoints, isInCircle, smooth, registeredShape, constraint));\n }\n attrs.path = path;\n\n return attrs;\n}\n\n/**\n * @ignore\n * Gets constraint\n * @param coordinate\n * @returns constraint\n */\nexport function getConstraint(coordinate: Coordinate): Position[] {\n const { start, end } = coordinate;\n return [\n [start.x, end.y],\n [end.x, start.y],\n ];\n}\n","import { isArray } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\nimport { registerShape, registerShapeFactory } from '../base';\nimport { getShapeAttrs } from './util';\n\nconst AreaShapeFactory = registerShapeFactory('area', {\n defaultShapeType: 'area',\n getDefaultPoints(pointInfo: ShapePoint): Point[] {\n // area 基本标记的绘制需要获取上下两边的顶点\n const { x, y0 } = pointInfo;\n const y = isArray(pointInfo.y) ? pointInfo.y : [y0, pointInfo.y];\n\n return y.map((yItem: number) => {\n return {\n x: x as number,\n y: yItem,\n };\n });\n },\n});\n\n// Area 几何标记默认的 shape:填充的区域图\nregisterShape('area', 'area', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const attrs = getShapeAttrs(cfg, false, false, this);\n const shape = container.addShape({\n type: 'path',\n attrs,\n name: 'area',\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: (x: number, y: number, r: number = 5.5) => {\n return [['M', x - r, y - 4], ['L', x + r, y - 4], ['L', x + r, y + 4], ['L', x - r, y + 4], ['Z']];\n },\n style: {\n r: 5,\n fill: color,\n },\n };\n },\n});\n\nexport default AreaShapeFactory;\n","import { FIELD_ORIGIN } from '../constant';\nimport { MappingDatum } from '../interface';\nimport Path, { PathCfg } from './path';\nimport './shape/area';\n\n/** Area 几何标记构造函数参数 */\nexport interface AreaCfg extends PathCfg {\n /**\n * 面积图是否从 0 基准线开始填充。\n * 1. 默认值为 `true`,表现如下:\n * ![image](https://gw.alipayobjects.com/zos/rmsportal/ZQqwUCczalrKqGgagOVp.png)\n * 2. 当值为 `false` 时,表现如下:\n * ![image](https://gw.alipayobjects.com/zos/rmsportal/yPswkaXvUpCYOdhocGwB.png)\n */\n startOnZero?: boolean;\n}\n\n/**\n * Area 几何标记类。\n * 常用于绘制面积图。\n */\nexport default class Area extends Path {\n public readonly type: string = 'area';\n public readonly shapeType: string = 'area';\n /** 生成图形关键点 */\n public readonly generatePoints: boolean = true;\n /**\n * 面积图是否从 0 基准线开始填充。\n * 1. 默认值为 `true`,表现如下:\n * ![image](https://gw.alipayobjects.com/zos/rmsportal/ZQqwUCczalrKqGgagOVp.png)\n * 2. 当值为 `false` 时,表现如下:\n * ![image](https://gw.alipayobjects.com/zos/rmsportal/yPswkaXvUpCYOdhocGwB.png)\n */\n public readonly startOnZero: boolean = true;\n\n constructor(cfg: AreaCfg) {\n super(cfg);\n\n const { startOnZero = true, sortable = false, showSinglePoint = false } = cfg;\n this.startOnZero = startOnZero; // 默认为 true\n this.sortable = sortable; // 关闭默认的 X 轴数据排序\n this.showSinglePoint = showSinglePoint;\n }\n\n /**\n * 获取图形绘制的关键点以及数据\n * @param mappingData 映射后的数据\n */\n protected getPointsAndData(mappingData: MappingDatum[]) {\n const points = [];\n const data = [];\n\n for (let i = 0, len = mappingData.length; i < len; i++) {\n const obj = mappingData[i];\n points.push(obj.points);\n data.push(obj[FIELD_ORIGIN]);\n }\n\n return {\n points,\n data,\n };\n }\n\n /**\n * 获取 Y 轴上的最小值\n * @returns y 字段最小值\n */\n protected getYMinValue(): number {\n if (this.startOnZero) {\n return super.getYMinValue();\n }\n const yScale = this.getYScale();\n return yScale.min;\n }\n}\n","import { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { registerShape, registerShapeFactory } from '../base';\nimport { getStyle } from '../util/get-style';\nimport { getLinePath } from '../util/path';\nimport { splitPoints } from '../util/split-points';\n\nconst EdgeShapeFactory = registerShapeFactory('edge', {\n defaultShapeType: 'line',\n getDefaultPoints(pointInfo: ShapePoint): Point[] {\n return splitPoints(pointInfo);\n },\n});\n\nregisterShape('edge', 'line', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, true, false, 'lineWidth');\n const path = getLinePath(this.parsePoints(cfg.points), this.coordinate.isPolar);\n return container.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n });\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n return {\n symbol: 'circle',\n style: {\n r: 4.5,\n fill: markerCfg.color,\n },\n };\n },\n});\n\nexport default EdgeShapeFactory;\n","import Geometry from './base';\nimport './shape/edge';\n\n/**\n * Edge 几何标记,用于绘制关系图中的**边**图形,如:\n * 1. 流程图\n * 2. 树\n * 3. 弧长连接图\n * 4. 和弦图\n * 5. 桑基图\n */\nexport default class Edge extends Geometry {\n public readonly type: string = 'edge';\n public readonly shapeType: string = 'edge';\n protected generatePoints: boolean = true;\n}\n","import ColorUtil from '@antv/color-util';\nimport { get, isNumber } from '@antv/util';\nimport { FIELD_ORIGIN } from '../constant';\nimport { Color, IShape } from '../dependents';\nimport { Data, Datum, MappingDatum, ShapeInfo, AttributeOption, ColorAttrCallback } from '../interface';\nimport Geometry from './base';\n\n/**\n * 用于绘制热力图。\n */\nexport default class Heatmap extends Geometry {\n public readonly type: string = 'heatmap';\n\n private paletteCache: Record = {};\n private grayScaleBlurredCanvas: HTMLCanvasElement;\n private shadowCanvas: HTMLCanvasElement;\n private imageShape: IShape;\n\n protected updateElements(mappingDataArray: MappingDatum[][], isUpdate: boolean = false) {\n for (let i = 0; i < mappingDataArray.length; i++) {\n const mappingData = mappingDataArray[i];\n const range = this.prepareRange(mappingData);\n const radius = this.prepareSize();\n\n let blur = get(this.styleOption, ['cfg', 'shadowBlur']);\n if (!isNumber(blur)) {\n blur = radius / 2;\n }\n\n this.prepareGreyScaleBlurredCircle(radius, blur);\n this.drawWithRange(mappingData, range, radius, blur);\n }\n }\n\n /** 热力图暂时不支持 callback 回调(文档需要说明下) */\n public color(field: AttributeOption | string, cfg?: string | string[] | ColorAttrCallback): Geometry {\n this.createAttrOption('color', field, typeof cfg !== 'function' ? cfg : '');\n\n return this;\n }\n\n /**\n * clear\n */\n public clear() {\n super.clear();\n this.clearShadowCanvasCtx();\n this.paletteCache = {};\n }\n\n private prepareRange(data: MappingDatum[]) {\n const colorAttr = this.getAttribute('color');\n const colorField = colorAttr.getFields()[0];\n\n let min = Infinity;\n let max = -Infinity;\n data.forEach((row) => {\n const value = row[FIELD_ORIGIN][colorField];\n if (value > max) {\n max = value;\n }\n if (value < min) {\n min = value;\n }\n });\n\n if (min === max) {\n min = max - 1;\n }\n\n return [min, max];\n }\n\n private prepareSize() {\n let radius = this.getDefaultValue('size');\n if (!isNumber(radius)) {\n radius = this.getDefaultSize();\n }\n\n return radius;\n }\n\n private prepareGreyScaleBlurredCircle(radius: number, blur: number) {\n const grayScaleBlurredCanvas = this.getGrayScaleBlurredCanvas();\n const r2 = radius + blur;\n const ctx = grayScaleBlurredCanvas.getContext('2d');\n grayScaleBlurredCanvas.width = grayScaleBlurredCanvas.height = r2 * 2;\n ctx.clearRect(0, 0, grayScaleBlurredCanvas.width, grayScaleBlurredCanvas.height);\n ctx.shadowOffsetX = ctx.shadowOffsetY = r2 * 2;\n ctx.shadowBlur = blur;\n ctx.shadowColor = 'black';\n\n ctx.beginPath();\n ctx.arc(-r2, -r2, radius, 0, Math.PI * 2, true);\n ctx.closePath();\n ctx.fill();\n }\n\n private drawWithRange(data: MappingDatum[], range: number[], radius: number, blur: number) {\n // canvas size\n const { start, end } = this.coordinate;\n const width = this.coordinate.getWidth();\n const height = this.coordinate.getHeight();\n\n // value, range, etc\n const colorAttr = this.getAttribute('color');\n const valueField = colorAttr.getFields()[0];\n\n // prepare shadow canvas context\n this.clearShadowCanvasCtx();\n const ctx = this.getShadowCanvasCtx();\n // filter data\n if (range) {\n data = data.filter((row) => {\n return row[FIELD_ORIGIN][valueField] <= range[1] && row[FIELD_ORIGIN][valueField] >= range[0];\n });\n }\n\n // step1. draw points with shadow\n const scale = this.scales[valueField];\n for (const obj of data) {\n const { x, y } = this.getDrawCfg(obj);\n const alpha = scale.scale(obj[FIELD_ORIGIN][valueField]);\n this.drawGrayScaleBlurredCircle((x as number) - start.x, (y as number) - end.y, radius + blur, alpha, ctx);\n }\n\n // step2. convert pixels\n const colored = ctx.getImageData(0, 0, width, height);\n this.clearShadowCanvasCtx();\n this.colorize(colored);\n ctx.putImageData(colored, 0, 0);\n const imageShape = this.getImageShape();\n imageShape.attr('x', start.x);\n imageShape.attr('y', end.y);\n imageShape.attr('width', width);\n imageShape.attr('height', height);\n imageShape.attr('img', ctx.canvas);\n imageShape.set('origin', this.getShapeInfo(data)); // 存储绘图信息数据\n }\n\n private getDefaultSize() {\n const position = this.getAttribute('position');\n const coordinate = this.coordinate;\n return Math.min(\n coordinate.getWidth() / (position.scales[0].ticks.length * 4),\n coordinate.getHeight() / (position.scales[1].ticks.length * 4)\n );\n }\n\n private clearShadowCanvasCtx() {\n const ctx = this.getShadowCanvasCtx();\n ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);\n }\n\n private getShadowCanvasCtx() {\n let canvas = this.shadowCanvas;\n if (!canvas) {\n canvas = document.createElement('canvas');\n this.shadowCanvas = canvas;\n }\n canvas.width = this.coordinate.getWidth();\n canvas.height = this.coordinate.getHeight();\n return canvas.getContext('2d');\n }\n\n private getGrayScaleBlurredCanvas() {\n if (!this.grayScaleBlurredCanvas) {\n this.grayScaleBlurredCanvas = document.createElement('canvas');\n }\n\n return this.grayScaleBlurredCanvas;\n }\n\n private drawGrayScaleBlurredCircle(x: number, y: number, r: number, alpha: number, ctx: CanvasRenderingContext2D) {\n const grayScaleBlurredCanvas = this.getGrayScaleBlurredCanvas();\n ctx.globalAlpha = alpha;\n ctx.drawImage(grayScaleBlurredCanvas, x - r, y - r);\n }\n\n private colorize(img: ImageData) {\n const colorAttr = this.getAttribute('color') as Color;\n const pixels = img.data;\n const paletteCache = this.paletteCache;\n for (let i = 3; i < pixels.length; i += 4) {\n const alpha = pixels[i]; // get gradient color from opacity value\n if (isNumber(alpha)) {\n const palette = paletteCache[alpha] ? paletteCache[alpha] : ColorUtil.rgb2arr(colorAttr.gradient(alpha / 256));\n pixels[i - 3] = palette[0];\n pixels[i - 2] = palette[1];\n pixels[i - 1] = palette[2];\n pixels[i] = alpha;\n }\n }\n }\n\n private getImageShape() {\n let imageShape = this.imageShape;\n if (imageShape) {\n return imageShape;\n }\n const container = this.container;\n imageShape = container.addShape({\n type: 'image',\n attrs: {},\n });\n this.imageShape = imageShape;\n return imageShape;\n }\n\n private getShapeInfo(mappingData: MappingDatum[]): ShapeInfo {\n const shapeCfg = this.getDrawCfg(mappingData[0]);\n\n const data = mappingData.map((obj: Datum) => {\n return obj[FIELD_ORIGIN];\n });\n\n return {\n ...shapeCfg,\n mappingData,\n data,\n };\n }\n}\n","import { Coordinate } from '@antv/coord';\nimport { isArray, isNil, get } from '@antv/util';\nimport { getAngle, getSectorPath } from '../../../util/graphics';\nimport { PathCommand } from '../../../dependents';\nimport { Point, ShapeInfo, ShapePoint } from '../../../interface';\n\n/**\n * @ignore\n * 根据数据点生成矩形的四个关键点\n * @param pointInfo 数据点信息\n * @param [isPyramid] 是否为尖底漏斗图\n * @returns rect points 返回矩形四个顶点信息\n */\nexport function getRectPoints(pointInfo: ShapePoint): Point[] {\n const { x, y, y0, size } = pointInfo;\n // 有 4 种情况,\n // 1. x, y 都不是数组\n // 2. y是数组,x不是\n // 3. x是数组,y不是\n // 4. x, y 都是数组\n let yMin;\n let yMax;\n if (isArray(y)) {\n [yMin, yMax] = y;\n } else {\n yMin = y0;\n yMax = y;\n }\n\n let xMin;\n let xMax;\n if (isArray(x)) {\n [xMin, xMax] = x;\n } else {\n xMin = x - size / 2;\n xMax = x + size / 2;\n }\n\n const points = [\n { x: xMin, y: yMin },\n { x: xMin, y: yMax },\n ];\n\n // 矩形的四个关键点,结构如下(左下角顺时针连接)\n // 1 ---- 2\n // | |\n // 0 ---- 3\n points.push({ x: xMax, y: yMax }, { x: xMax, y: yMin });\n\n return points;\n}\n\n/**\n * @ignore\n * 根据矩形关键点绘制 path\n * @param points 关键点数组\n * @param isClosed path 是否需要闭合\n * @returns 返回矩形的 path\n */\nexport function getRectPath(points: Point[], isClosed: boolean = true): PathCommand[] {\n const path = [];\n const firstPoint = points[0];\n path.push(['M', firstPoint.x, firstPoint.y]);\n for (let i = 1, len = points.length; i < len; i++) {\n path.push(['L', points[i].x, points[i].y]);\n }\n // 对于 shape=\"line\" path 不应该闭合,否则会造成 lineCap 绘图属性失效\n if (isClosed) {\n path.push(['L', firstPoint.x, firstPoint.y]); // 需要闭合\n path.push(['z']);\n }\n return path;\n}\n\n/**\n * 处理 rect path 的 radius\n * @returns 返回矩形 path 的四个角的 arc 半径\n */\nexport function parseRadius(radius: number | number[], minLength: number): number[] {\n let r1 = 0;\n let r2 = 0;\n let r3 = 0;\n let r4 = 0;\n if (isArray(radius)) {\n if (radius.length === 1) {\n r1 = r2 = r3 = r4 = radius[0];\n } else if (radius.length === 2) {\n r1 = r3 = radius[0];\n r2 = r4 = radius[1];\n } else if (radius.length === 3) {\n r1 = radius[0];\n r2 = r4 = radius[1];\n r3 = radius[2];\n } else {\n r1 = radius[0];\n r2 = radius[1];\n r3 = radius[2];\n r4 = radius[3];\n }\n } else {\n r1 = r2 = r3 = r4 = radius;\n }\n\n // 处理 边界值\n if (r1 + r2 > minLength) {\n r1 = r1 ? minLength / (1 + r2 / r1) : 0;\n r2 = minLength - r1;\n }\n\n if (r3 + r4 > minLength) {\n r3 = r3 ? minLength / (1 + r4 / r3) : 0;\n r4 = minLength - r3;\n }\n\n return [r1 || 0, r2 || 0, r3 || 0, r4 || 0];\n}\n\n/**\n * 获取 interval 矩形背景的 path\n * @param cfg 关键点的信息\n * @param points 已转化为画布坐标的 4 个关键点\n * @param coordinate 坐标系\n * @returns 返回矩形背景的 path\n */\nexport function getBackgroundRectPath(cfg: ShapeInfo, points: Point[], coordinate: Coordinate): PathCommand[] {\n let path = [];\n if (coordinate.isRect) {\n const p0 = coordinate.isTransposed\n ? { x: coordinate.start.x, y: points[0].y }\n : { x: points[0].x, y: coordinate.start.y };\n const p1 = coordinate.isTransposed\n ? { x: coordinate.end.x, y: points[2].y }\n : { x: points[3].x, y: coordinate.end.y };\n\n // corner radius of background shape works only in 笛卡尔坐标系\n const radius = get(cfg, ['background', 'style', 'radius']);\n if (radius) {\n const width = coordinate.isTransposed ? Math.abs(points[0].y - points[2].y) : points[2].x - points[1].x;\n const height = coordinate.isTransposed ? coordinate.getWidth() : coordinate.getHeight();\n const [r1, r2, r3, r4] = parseRadius(radius, Math.min(width, height));\n\n path.push(['M', p0.x, p1.y + r1]);\n r1 !== 0 && path.push(['A', r1, r1, 0, 0, 1, p0.x + r1, p1.y]);\n path.push(['L', p1.x - r2, p1.y]);\n r2 !== 0 && path.push(['A', r2, r2, 0, 0, 1, p1.x, p1.y + r2]);\n path.push(['L', p1.x, p0.y - r3]);\n r3 !== 0 && path.push(['A', r3, r3, 0, 0, 1, p1.x - r3, p0.y]);\n path.push(['L', p0.x + r4, p0.y]);\n r4 !== 0 && path.push(['A', r4, r4, 0, 0, 1, p0.x, p0.y - r4]);\n } else {\n path.push(['M', p0.x, p0.y]);\n path.push(['L', p1.x, p0.y]);\n path.push(['L', p1.x, p1.y]);\n path.push(['L', p0.x, p1.y]);\n path.push(['L', p0.x, p0.y]);\n }\n\n path.push(['z']);\n }\n\n if (coordinate.isPolar) {\n const center = coordinate.getCenter();\n const { startAngle, endAngle } = getAngle(cfg, coordinate);\n if (coordinate.type !== 'theta' && !coordinate.isTransposed) {\n // 获取扇形 path\n path = getSectorPath(center.x, center.y, coordinate.getRadius(), startAngle, endAngle);\n } else {\n const pow = (v) => Math.pow(v, 2);\n const r1 = Math.sqrt(pow(center.x - points[0].x) + pow(center.y - points[0].y));\n const r2 = Math.sqrt(pow(center.x - points[2].x) + pow(center.y - points[2].y));\n // 获取扇形 path(其实是一个圆环,从 coordinate 的起始角度到结束角度)\n path = getSectorPath(center.x, center.y, r1, coordinate.startAngle, coordinate.endAngle, r2);\n }\n }\n return path;\n}\n\n/**\n * @ignore\n * 根据矩形关键点绘制 path\n * @param points 关键点数组\n * @param lineCap 'round'圆角样式\n * @param coor 坐标\n * @returns 返回矩形的 path\n */\nexport function getIntervalRectPath(points: Point[], lineCap: CanvasLineCap, coor: Coordinate): PathCommand[] {\n const width = coor.getWidth();\n const height = coor.getHeight();\n const isRect = coor.type === 'rect';\n let path = [];\n const r = (points[2].x - points[1].x) / 2;\n const ry = coor.isTransposed ? (r * height) / width : (r * width) / height;\n if (lineCap === 'round') {\n if (isRect) {\n path.push(['M', points[0].x, points[0].y + ry]);\n path.push(['L', points[1].x, points[1].y - ry]);\n path.push(['A', r, r, 0, 0, 1, points[2].x, points[2].y - ry]);\n path.push(['L', points[3].x, points[3].y + ry]);\n path.push(['A', r, r, 0, 0, 1, points[0].x, points[0].y + ry]);\n } else {\n path.push(['M', points[0].x, points[0].y]);\n path.push(['L', points[1].x, points[1].y]);\n path.push(['A', r, r, 0, 0, 1, points[2].x, points[2].y]);\n path.push(['L', points[3].x, points[3].y]);\n path.push(['A', r, r, 0, 0, 1, points[0].x, points[0].y]);\n }\n path.push(['z']);\n } else {\n path = getRectPath(points);\n }\n return path;\n}\n\n/**\n * @ignore\n * 根据 funnel 关键点绘制漏斗图的 path\n * @param points 图形关键点信息\n * @param nextPoints 下一个数据的图形关键点信息\n * @param isPyramid 是否为尖底漏斗图\n * @returns 返回漏斗图的图形 path\n */\nexport function getFunnelPath(points: Point[], nextPoints: Point[], isPyramid: boolean) {\n const path = [];\n if (!isNil(nextPoints)) {\n path.push(\n ['M', points[0].x, points[0].y],\n ['L', points[1].x, points[1].y],\n ['L', nextPoints[1].x, nextPoints[1].y],\n ['L', nextPoints[0].x, nextPoints[0].y],\n ['Z']\n );\n } else if (isPyramid) {\n // 金字塔最底部\n path.push(\n ['M', points[0].x, points[0].y],\n ['L', points[1].x, points[1].y],\n ['L', (points[2].x + points[3].x) / 2, (points[2].y + points[3].y) / 2],\n ['Z']\n );\n } else {\n // 漏斗图最底部\n path.push(\n ['M', points[0].x, points[0].y],\n ['L', points[1].x, points[1].y],\n ['L', points[2].x, points[2].y],\n ['L', points[3].x, points[3].y],\n ['Z']\n );\n }\n\n return path;\n}\n\n/**\n * 交换两个对象\n */\nfunction swap(p0: T, p1: T) {\n return [p1, p0];\n}\n\n/**\n * 获取 倒角 矩形\n * - 目前只适用于笛卡尔坐标系下\n */\nexport function getRectWithCornerRadius(points: Point[], coordinate: Coordinate, radius?: number | number[]) {\n // 获取 四个关键点\n let [p0, p1, p2, p3] = [...points];\n let [r1, r2, r3, r4] = typeof radius === 'number' ? Array(4).fill(radius) : radius;\n\n if (coordinate.isTransposed) {\n [p1, p3] = swap(p1, p3);\n [r1, r2, r3, r4] = [r4, r1, r2, r3]\n }\n\n /**\n * 存在镜像\n */\n if (coordinate.isReflect('y')) {\n [p0, p1] = swap(p0, p1);\n [p2, p3] = swap(p2, p3);\n }\n if (coordinate.isReflect('x')) {\n [p0, p3] = swap(p0, p3);\n [p1, p2] = swap(p1, p2);\n }\n\n const path = [];\n\n\n /**\n * p1 → p2\n * ↑ ↓\n * p0 ← p3\n *\n * 负数的情况,关键点会变成下面的形式\n *\n * p0 ← p3 p2 ← p1\n * ↓ ↑ ↓ ↑\n * p1 → p2 --> (转置下) p3 → p0\n */\n const abs = v => Math.abs(v);\n [r1, r2, r3, r4] = parseRadius([r1, r2, r3, r4], Math.min(abs(p3.x - p0.x), abs(p1.y - p0.y))).map(d => abs(d));\n\n if (p0.y < p1.y /** 负数情况 */) {\n path.push(['M', p3.x, p3.y + r3]);\n r3 !== 0 && path.push(['A', r3, r3, 0, 0, 0, p3.x - r3, p3.y]);\n path.push(['L', p0.x + r4, p0.y]);\n r4 !== 0 && path.push(['A', r4, r4, 0, 0, 0, p0.x, p0.y + r4]);\n path.push(['L', p1.x, p1.y - r1]);\n r1 !== 0 && path.push(['A', r1, r1, 0, 0, 0/** 逆时针 */, p1.x + r1, p1.y]);\n path.push(['L', p2.x - r2, p2.y]);\n r2 !== 0 && path.push(['A', r2, r2, 0, 0, 0, p2.x, p2.y - r2]);\n path.push(['L', p3.x, p3.y + r3]);\n path.push(['z']);\n } else if (p3.x < p0.x) {\n path.push(['M', p2.x + r2, p2.y]);\n r2 !== 0 && path.push(['A', r2, r2, 0, 0, 0, p2.x, p2.y + r2]);\n path.push(['L', p3.x, p3.y - r3]);\n r3 !== 0 && path.push(['A', r3, r3, 0, 0, 0, p3.x + r3, p3.y]);\n path.push(['L', p0.x - r4, p0.y]);\n r4 !== 0 && path.push(['A', r4, r4, 0, 0, 0, p0.x, p0.y - r4]);\n path.push(['L', p1.x, p1.y + r1]);\n r1 !== 0 && path.push(['A', r1, r1, 0, 0, 0, p1.x - r1, p1.y]);\n path.push(['L', p2.x + r2, p2.y]);\n path.push(['z']);\n } else {\n path.push(['M', p1.x, p1.y + r1]);\n r1 !== 0 && path.push(['A', r1, r1, 0, 0, 1, p1.x + r1, p1.y]);\n path.push(['L', p2.x - r2, p2.y]);\n r2 !== 0 && path.push(['A', r2, r2, 0, 0, 1, p2.x, p2.y + r2]);\n path.push(['L', p3.x, p3.y - r3]);\n r3 !== 0 && path.push(['A', r3, r3, 0, 0, 1, p3.x - r3, p3.y]);\n path.push(['L', p0.x + r4, p0.y]);\n r4 !== 0 && path.push(['A', r4, r4, 0, 0, 1, p0.x, p0.y - r4]);\n path.push(['L', p1.x, p1.y + r1]);\n path.push(['z']);\n }\n\n return path;\n}\n","import { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { registerShape, registerShapeFactory } from '../base';\nimport { BACKGROUND_SHAPE } from '../constant';\nimport { getBackgroundRectStyle, getStyle } from '../util/get-style';\nimport { getBackgroundRectPath, getIntervalRectPath, getRectPoints, getRectWithCornerRadius } from './util';\n\n/** Interval 的 shape 工厂 */\nconst IntervalShapeFactory = registerShapeFactory('interval', {\n defaultShapeType: 'rect',\n getDefaultPoints(pointInfo: ShapePoint): Point[] {\n return getRectPoints(pointInfo);\n },\n});\n\n/** Inerval 默认 shape,填充的矩形 */\nregisterShape('interval', 'rect', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, false, true);\n let group = container;\n\n const backgroundCfg = cfg?.background;\n if (backgroundCfg) {\n group = container.addGroup();\n const backgroundStyle = getBackgroundRectStyle(cfg);\n const backgroundPath = getBackgroundRectPath(cfg, this.parsePoints(cfg.points) as Point[], this.coordinate);\n group.addShape('path', {\n attrs: {\n ...backgroundStyle,\n path: backgroundPath,\n },\n zIndex: -1,\n name: BACKGROUND_SHAPE,\n });\n }\n\n let path;\n if (style.radius && this.coordinate.isRect) {\n path = getRectWithCornerRadius(this.parsePoints(cfg.points), this.coordinate, style.radius);\n } else {\n path = this.parsePath(getIntervalRectPath(cfg.points as Point[], style.lineCap, this.coordinate));\n }\n\n const shape = group.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n name: 'interval',\n });\n\n return backgroundCfg ? group : shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color, isInPolar } = markerCfg;\n if (isInPolar) {\n return {\n symbol: 'circle',\n style: {\n r: 4.5,\n fill: color,\n },\n };\n }\n\n return {\n symbol: 'square',\n style: {\n r: 4,\n fill: color,\n },\n };\n },\n});\n\nexport default IntervalShapeFactory;\n","import { flatten, isString, valuesOfKey, isNil } from '@antv/util';\nimport { getXDimensionLength } from '../../util/coordinate';\n\n// 已经排序后的数据查找距离最小的\nfunction findMinDistance(arr, scale) {\n const count = arr.length;\n let sourceArr = arr;\n if (isString(sourceArr[0])) {\n // 日期类型的 values 经常上文本类型,所以需要转换一下\n sourceArr = arr.map((v: string) => {\n return scale.translate(v);\n });\n }\n let distance = sourceArr[1] - sourceArr[0];\n for (let i = 2; i < count; i++) {\n const tmp = sourceArr[i] - sourceArr[i - 1];\n if (distance > tmp) {\n distance = tmp;\n }\n }\n return distance;\n}\n\nfunction getDodgeCount(dataArray, dodgeBy) {\n if (dodgeBy) {\n const mergeData = flatten(dataArray);\n const values = valuesOfKey(mergeData, dodgeBy);\n return values.length;\n }\n\n return dataArray.length;\n}\n\n/** @ignore */\nexport function getDefaultSize(geometry): number {\n const theme = geometry.theme;\n const coordinate = geometry.coordinate;\n const xScale = geometry.getXScale();\n const xValues = xScale.values;\n const dataArray = geometry.beforeMappingData;\n let count: number = xValues.length;\n const xDimensionLength = getXDimensionLength(geometry.coordinate);\n // 获取柱宽相关配置项\n const { intervalPadding, dodgePadding } = geometry;\n // 兼容theme配置\n const maxColumnWidth = geometry.maxColumnWidth || theme.maxColumnWidth;\n const minColumnWidth = geometry.minColumnWidth || theme.minColumnWidth;\n const columnWidthRatio = geometry.columnWidthRatio || theme.columnWidthRatio;\n const multiplePieWidthRatio = geometry.multiplePieWidthRatio || theme.multiplePieWidthRatio;\n const roseWidthRatio = geometry.roseWidthRatio || theme.roseWidthRatio;\n\n // 线性情况下count值\n if (xScale.isLinear && xValues.length > 1) {\n // Linear 类型用户有可能设置了 min, max 范围所以需要根据数据最小区间计算 count\n xValues.sort();\n const interval = findMinDistance(xValues, xScale);\n count = (xScale.max - xScale.min) / interval;\n if (xValues.length > count) {\n count = xValues.length;\n }\n }\n\n const range = xScale.range;\n let normalizedSize = 1 / count;\n let wr = 1;\n if (coordinate.isPolar) {\n // 极坐标场景\n if (coordinate.isTransposed && count > 1) {\n // 极坐标下多层环图\n wr = multiplePieWidthRatio;\n } else {\n wr = roseWidthRatio;\n }\n } else {\n // 非极坐标场景\n if (xScale.isLinear) {\n normalizedSize *= range[1] - range[0];\n }\n wr = columnWidthRatio;\n }\n\n // 基础柱状图\n if (!isNil(intervalPadding) && intervalPadding >= 0) {\n // 配置组间距情况\n const normalizedIntervalPadding = intervalPadding / xDimensionLength;\n normalizedSize = (1 - (count - 1) * normalizedIntervalPadding) / count;\n } else {\n // 默认情况\n normalizedSize *= wr;\n }\n // 分组柱状图\n if (geometry.getAdjust('dodge')) {\n const dodgeAdjust = geometry.getAdjust('dodge');\n const dodgeBy = dodgeAdjust.dodgeBy;\n const dodgeCount = getDodgeCount(dataArray, dodgeBy);\n if (!isNil(dodgePadding) && dodgePadding >= 0) {\n // 仅配置组内间距情况\n const normalizedDodgePadding = dodgePadding / xDimensionLength;\n normalizedSize = (normalizedSize - normalizedDodgePadding * (dodgeCount - 1)) / dodgeCount;\n } else if (!isNil(intervalPadding) && intervalPadding >= 0) {\n // 设置组间距但未设置组内间距情况,避免组间距过小导致图形重叠,需乘以wr\n normalizedSize *= wr;\n normalizedSize = normalizedSize / dodgeCount;\n } else {\n // 组间距和组内间距均未配置\n normalizedSize = normalizedSize / dodgeCount;\n }\n normalizedSize = normalizedSize >= 0 ? normalizedSize : 0;\n }\n\n // 最大和最小限制\n if (!isNil(maxColumnWidth) && maxColumnWidth >= 0) {\n const normalizedMaxColumnWidth = maxColumnWidth / xDimensionLength;\n if (normalizedSize > normalizedMaxColumnWidth) {\n normalizedSize = normalizedMaxColumnWidth;\n }\n }\n\n // \bminColumnWidth可能设置为0\n if (!isNil(minColumnWidth) && minColumnWidth >= 0) {\n const normalizedMinColumnWidth = minColumnWidth / xDimensionLength;\n if (normalizedSize < normalizedMinColumnWidth) {\n normalizedSize = normalizedMinColumnWidth;\n }\n }\n\n return normalizedSize;\n}\n","import { get } from '@antv/util';\nimport { Datum, MappingDatum, ShapeInfo, LooseObject } from '../interface';\nimport { ShapeAttrs } from '../dependents';\nimport { getXDimensionLength } from '../util/coordinate';\nimport Geometry, { GeometryCfg } from './base';\n/** 引入对应的 ShapeFactory */\nimport './shape/interval';\nimport { getDefaultSize } from './util/shape-size';\nimport { getMaxScale } from '../util/scale';\n\n/** Path 构造函数参数类型 */\nexport interface IntervalCfg extends GeometryCfg {\n /** shape 背景,只对 Interval Geometry 生效,目前只对 interval-rect shape 生效。 */\n background?: { style?: ShapeAttrs };\n}\n\n/**\n * Interval 几何标记。\n * 用于绘制柱状图、饼图、条形图、玫瑰图等。\n */\nexport default class Interval extends Geometry {\n public readonly type: string = 'interval';\n public readonly shapeType: string = 'interval';\n /** shape 背景。目前只对 interval-rect shape 生效。 */\n protected background?: { style?: ShapeAttrs };\n protected generatePoints: boolean = true;\n\n constructor(cfg: IntervalCfg) {\n super(cfg);\n\n const { background } = cfg;\n this.background = background;\n }\n\n /**\n * 获取每条数据的 Shape 绘制信息\n * @param obj 经过分组 -> 数字化 -> adjust 调整后的数据记录\n * @returns\n */\n protected createShapePointsCfg(obj: Datum) {\n const cfg = super.createShapePointsCfg(obj);\n\n // 计算每个 shape 的 size\n let size;\n const sizeAttr = this.getAttribute('size');\n if (sizeAttr) {\n size = this.getAttributeValues(sizeAttr, obj)[0];\n // 归一化\n const coordinate = this.coordinate;\n const coordinateWidth = getXDimensionLength(coordinate);\n size = size / coordinateWidth;\n } else {\n if (!this.defaultSize) {\n this.defaultSize = getDefaultSize(this);\n }\n size = this.defaultSize;\n }\n cfg.size = size;\n\n return cfg;\n }\n\n /**\n * 调整 y 轴的 scale 范围。\n * 对于 Y 轴为数值轴柱状图,默认从 0 开始 生长。\n */\n protected adjustScale() {\n super.adjustScale();\n const yScale = this.getYScale();\n // 特殊逻辑:饼图需要填充满整个空间\n if (this.coordinate.type === 'theta') {\n yScale.change({\n nice: false,\n min: 0,\n // 发生过 stack 调整,yScale 的 max 被调整过,this.updateStackRange()\n max: getMaxScale(yScale),\n });\n } else {\n // 柱状图数值轴默认从 0 开始\n const scaleDefs = this.scaleDefs;\n const { field, min, max, type } = yScale;\n if (type !== 'time') {\n // time 类型不做调整\n // 柱状图的 Y 轴要从 0 开始生长,但是如果用户设置了则以用户的为准\n if (min > 0 && !get(scaleDefs, [field, 'min'])) {\n yScale.change({\n min: 0,\n });\n }\n // 柱当柱状图全为负值时也需要从 0 开始生长,但是如果用户设置了则以用户的为准\n if (max <= 0 && !get(scaleDefs, [field, 'max'])) {\n yScale.change({\n max: 0,\n });\n }\n }\n }\n }\n\n /**\n * @override\n */\n protected getDrawCfg(mappingData: MappingDatum): ShapeInfo {\n const shapeCfg = super.getDrawCfg(mappingData);\n shapeCfg.background = this.background;\n\n return shapeCfg;\n }\n}\n","import Path, { PathCfg } from './path';\n/** 引入 Path 对应的 ShapeFactory */\nimport './shape/line';\n\n/**\n * Line 几何标记。\n * 常用于折线图的绘制。\n */\nexport default class Line extends Path {\n public type: string = 'line';\n\n constructor(cfg: PathCfg) {\n super(cfg);\n\n const { sortable = false } = cfg; // 关闭默认的 X 轴数据排序\n this.sortable = sortable;\n }\n}\n","import { IGroup, IShape } from '../../../dependents';\nimport { ShapeInfo } from '../../../interface';\nimport { MarkerSymbols } from '../../../util/marker';\nimport { getStyle } from '../util/get-style';\n\nexport const SHAPES = ['circle', 'square', 'bowtie', 'diamond', 'hexagon', 'triangle', 'triangle-down'];\nexport const HOLLOW_SHAPES = ['cross', 'tick', 'plus', 'hyphen', 'line'];\n\n/**\n * @ignore\n * Draws points\n * @param shape\n * @param cfg\n * @param container\n * @param shapeName\n * @param isStroke\n * @returns points\n */\nexport function drawPoints(\n shape,\n cfg: ShapeInfo,\n container: IGroup,\n shapeName: string,\n isStroke: boolean\n): IShape | IGroup {\n const style = getStyle(cfg, isStroke, !isStroke, 'r');\n const points = shape.parsePoints(cfg.points);\n let pointPosition = points[0];\n if (cfg.isStack) {\n pointPosition = points[1];\n } else if (points.length > 1) {\n const group = container.addGroup();\n for (const point of points) {\n group.addShape({\n type: 'marker',\n attrs: {\n ...style,\n symbol: MarkerSymbols[shapeName] || shapeName,\n ...point,\n },\n });\n }\n return group;\n }\n\n return container.addShape({\n type: 'marker',\n attrs: {\n ...style,\n symbol: MarkerSymbols[shapeName] || shapeName,\n ...pointPosition,\n },\n });\n}\n","import { each } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { MarkerSymbols } from '../../../util/marker';\nimport { registerShape, registerShapeFactory } from '../base';\nimport { splitPoints } from '../util/split-points';\nimport { drawPoints, SHAPES } from './util';\n\nconst PointShapeFactory = registerShapeFactory('point', {\n defaultShapeType: 'hollow-circle',\n getDefaultPoints(pointInfo: ShapePoint): Point[] {\n return splitPoints(pointInfo);\n },\n});\n\neach(SHAPES, (shapeName: string) => {\n // 添加该 shape 对应的 hollow-shape\n registerShape('point', `hollow-${shapeName}`, {\n draw(cfg: ShapeInfo, container: IGroup) {\n return drawPoints(this, cfg, container, shapeName, true);\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: MarkerSymbols[shapeName] || shapeName,\n style: {\n r: 4.5,\n stroke: color,\n fill: null,\n },\n };\n },\n });\n});\n\nexport default PointShapeFactory;\n","import { MappingDatum, ShapeInfo } from '../interface';\nimport Geometry from './base';\n/** 引入 Point 对应的 ShapeFactory */\nimport './shape/point';\n\n/**\n * Point 几何标记。\n * 常用于绘制点图。\n */\nexport default class Point extends Geometry {\n public readonly type: string = 'point';\n public readonly shapeType: string = 'point';\n protected generatePoints: boolean = true;\n\n /**\n * 获取一个点的绘制信息。\n * @param mappingDatum\n * @returns draw cfg\n */\n protected getDrawCfg(mappingDatum: MappingDatum): ShapeInfo {\n const shapeCfg = super.getDrawCfg(mappingDatum);\n\n return {\n ...shapeCfg,\n isStack: !!this.getAdjust('stack'), // 层叠点图\n };\n }\n}\n","import { each, isEmpty, isEqual, last } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { registerShape, registerShapeFactory } from '../base';\nimport { getStyle } from '../util/get-style';\n\nfunction getPath(points: any[]) {\n let flag: any = points[0];\n let i = 1;\n\n const path = [['M', flag.x, flag.y]];\n\n while (i < points.length) {\n const c: any = points[i];\n if (c.x !== points[i - 1].x || c.y !== points[i - 1].y) {\n path.push(['L', c.x, c.y]);\n if (c.x === flag.x && c.y === flag.y && i < points.length - 1) {\n flag = points[i + 1];\n path.push(['Z']);\n path.push(['M', flag.x, flag.y]);\n i++;\n }\n }\n i++;\n }\n\n if (!isEqual(last(path), flag)) {\n path.push(['L', flag.x, flag.y]);\n }\n\n path.push(['Z']);\n\n return path;\n}\n\nconst PolygonShapeFactory = registerShapeFactory('polygon', {\n defaultShapeType: 'polygon',\n getDefaultPoints(pointInfo: ShapePoint) {\n const points = [];\n each(pointInfo.x as number[], (subX, index) => {\n const subY = pointInfo.y[index];\n points.push({\n x: subX,\n y: subY,\n });\n });\n return points;\n },\n});\n\nregisterShape('polygon', 'polygon', {\n draw(cfg: ShapeInfo, container: IGroup) {\n if (!isEmpty(cfg.points)) {\n const shapeAttrs = getStyle(cfg, true, true);\n const path = this.parsePath(getPath(cfg.points));\n return container.addShape('path', {\n attrs: {\n ...shapeAttrs,\n path,\n },\n name: 'polygon',\n });\n }\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: 'square',\n style: {\n r: 4,\n fill: color,\n },\n };\n },\n});\n\nexport default PolygonShapeFactory;\n","import { isArray } from '@antv/util';\nimport { Datum } from '../interface';\nimport Geometry from './base';\n/** 引入 Path 对应的 ShapeFactory */\nimport './shape/polygon';\n\n/**\n * Polygon 几何标记。\n * 常用于绘制色块图、日历图等。\n */\nexport default class Polygon extends Geometry {\n public readonly type: string = 'polygon';\n public readonly shapeType: string = 'polygon';\n protected generatePoints: boolean = true;\n\n /**\n * 获取 Shape 的关键点数据。\n * @param obj\n * @returns\n */\n protected createShapePointsCfg(obj: Datum) {\n const cfg: any = super.createShapePointsCfg(obj);\n let x = cfg.x;\n let y = cfg.y;\n let temp;\n // x y 都是数组时,不做处理\n if (!(isArray(x) && isArray(y))) {\n const xScale = this.getXScale();\n const yScale = this.getYScale();\n const xCount = xScale.values.length;\n const yCount = yScale.values.length;\n const xOffset = (0.5 * 1) / xCount;\n const yOffset = (0.5 * 1) / yCount;\n\n if (xScale.isCategory && yScale.isCategory) {\n // 如果x,y都是分类\n x = [x - xOffset, x - xOffset, x + xOffset, x + xOffset];\n y = [y - yOffset, y + yOffset, y + yOffset, y - yOffset];\n } else if (isArray(x)) {\n // x 是数组\n temp = x;\n x = [temp[0], temp[0], temp[1], temp[1]];\n y = [y - yOffset / 2, y + yOffset / 2, y + yOffset / 2, y - yOffset / 2];\n } else if (isArray(y)) {\n // y 是数组\n temp = y;\n y = [temp[0], temp[1], temp[1], temp[0]];\n x = [x - xOffset / 2, x - xOffset / 2, x + xOffset / 2, x + xOffset / 2];\n }\n cfg.x = x;\n cfg.y = y;\n }\n return cfg;\n }\n}\n","import { registerShapeFactory } from '../base';\n\nconst SchemaShapeFactory = registerShapeFactory('schema', {\n defaultShapeType: '', // 'schema' is for some custom shapes, so will not specify defaultShapeType\n});\n\nexport default SchemaShapeFactory;\n","import { LooseObject } from '../interface';\nimport { getXDimensionLength } from '../util/coordinate';\nimport Geometry from './base';\n/** 引入对应的 ShapeFactory */\nimport './shape/schema';\nimport { getDefaultSize } from './util/shape-size';\n\n/**\n * Schema 几何标记,用于一些自定义图形的绘制,比如箱型图、股票图等。\n */\nexport default class Schema extends Geometry {\n public readonly type: string = 'schema';\n public readonly shapeType: string = 'schema';\n protected generatePoints: boolean = true;\n\n /**\n * 获取 Shape 的关键点数据。\n * @param record\n * @returns\n */\n protected createShapePointsCfg(record: LooseObject) {\n const cfg = super.createShapePointsCfg(record);\n\n // 计算每个 shape 的 size\n let size;\n const sizeAttr = this.getAttribute('size');\n if (sizeAttr) {\n size = this.getAttributeValues(sizeAttr, record)[0];\n // 归一化\n const coordinate = this.coordinate;\n const coordinateWidth = getXDimensionLength(coordinate);\n size = size / coordinateWidth;\n } else {\n if (!this.defaultSize) {\n this.defaultSize = getDefaultSize(this);\n }\n size = this.defaultSize;\n }\n cfg.size = size;\n\n return cfg;\n }\n}\n","import { each, max, map, isArray } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg, ViolinShapePoint } from '../../../interface';\nimport { registerShape, registerShapeFactory } from '../base';\nimport { getViolinPath } from '../util/get-path-points';\nimport { getStyle } from '../util/get-style';\n\nfunction normalizeSize(arr: number[]) {\n if (!isArray(arr)) {\n return [];\n }\n const maxValue = max(arr);\n return map(arr, (num) => num / maxValue);\n}\n\nconst ViolinShapeFactory = registerShapeFactory('violin', {\n defaultShapeType: 'violin',\n getDefaultPoints(pointInfo: ViolinShapePoint) {\n const radius = pointInfo.size / 2;\n const points = [];\n const sizeArr = normalizeSize(pointInfo._size);\n\n each(pointInfo.y as number[], (y, index) => {\n const offset = sizeArr[index] * radius;\n const isMin = index === 0;\n const isMax = index === (pointInfo.y as number[]).length - 1;\n points.push({\n isMin,\n isMax,\n x: (pointInfo.x as number) - offset,\n y,\n });\n points.unshift({\n isMin,\n isMax,\n x: (pointInfo.x as number) + offset,\n y,\n });\n });\n return points;\n },\n});\n\nregisterShape('violin', 'violin', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const shapeAttrs = getStyle(cfg, true, true);\n const path = this.parsePath(getViolinPath(cfg.points));\n return container.addShape('path', {\n attrs: {\n ...shapeAttrs,\n path,\n },\n name: 'violin',\n });\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n\n return {\n symbol: 'circle',\n style: {\n r: 4,\n fill: color,\n },\n };\n },\n});\n\nexport default ViolinShapeFactory;\n","import { get } from '@antv/util';\nimport { FIELD_ORIGIN } from '../constant';\nimport { Datum, ViolinShapePoint } from '../interface';\nimport { getXDimensionLength } from '../util/coordinate';\nimport { getDefaultSize } from './util/shape-size';\nimport Geometry from './base';\n/** 引入 Path 对应的 ShapeFactory */\nimport './shape/violin';\n\n/**\n * Violin 几何标记。\n * 用于绘制小提琴图。\n */\nexport default class Violin extends Geometry {\n public readonly type: string = 'violin';\n public readonly shapeType: string = 'violin';\n protected generatePoints: boolean = true;\n /** size 私有映射字段 */\n private _sizeField: string;\n\n /**\n * 获取 Shape 的关键点数据。\n * @param record\n * @returns\n */\n protected createShapePointsCfg(record: Datum) {\n const cfg = super.createShapePointsCfg(record);\n\n // 计算每个 shape 的 size\n let size;\n const sizeAttr = this.getAttribute('size');\n if (sizeAttr) {\n size = this.getAttributeValues(sizeAttr, record)[0];\n // 归一化\n const coordinate = this.coordinate;\n const coordinateWidth = getXDimensionLength(coordinate);\n size = size / coordinateWidth;\n } else {\n if (!this.defaultSize) {\n this.defaultSize = getDefaultSize(this);\n }\n size = this.defaultSize;\n }\n cfg.size = size;\n cfg._size = get(record[FIELD_ORIGIN], [this._sizeField]);\n return cfg;\n }\n\n /**\n * @override\n */\n protected initAttributes() {\n const { attributeOption } = this;\n const sizeField = attributeOption.size\n ? attributeOption.size.fields[0]\n : this._sizeField\n ? this._sizeField\n : 'size';\n this._sizeField = sizeField;\n // fixme 干啥要删掉\n delete attributeOption.size;\n super.initAttributes();\n }\n}\n","import { each } from '@antv/util';\nimport { Point } from '../../../interface';\n\n/**\n * @ignore\n * Gets cpath\n * @param from\n * @param to\n * @returns\n */\nexport function getCPath(from: Point, to: Point) {\n return ['C', (from.x * 1) / 2 + (to.x * 1) / 2, from.y, (from.x * 1) / 2 + (to.x * 1) / 2, to.y, to.x, to.y];\n}\n\n/**\n * @ignore\n * Gets qpath\n * @param to\n * @param center\n * @returns\n */\nexport function getQPath(to: Point, center: Point) {\n const points = [];\n points.push({\n x: center.x,\n y: center.y,\n });\n points.push(to);\n\n const sub = ['Q'];\n each(points, (point) => {\n sub.push(point.x, point.y);\n });\n\n return sub;\n}\n","import { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg } from '../../../interface';\nimport { registerShape } from '../base';\nimport { getShapeAttrs } from './util';\n\n/**\n * 描边但不填充的区域图\n */\nregisterShape('area', 'line', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const attrs = getShapeAttrs(cfg, true, false, this);\n const shape = container.addShape({\n type: 'path',\n attrs,\n name: 'area',\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: (x: number, y: number, r: number = 5.5) => {\n return [['M', x - r, y - 4], ['L', x + r, y - 4], ['L', x + r, y + 4], ['L', x - r, y + 4], ['Z']];\n },\n style: {\n r: 5,\n stroke: color,\n fill: null,\n },\n };\n },\n});\n","import { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getConstraint, getShapeAttrs } from './util';\n\n/**\n * 填充的平滑曲面图\n */\nregisterShape('area', 'smooth', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const coordinate = this.coordinate;\n const attrs = getShapeAttrs(cfg, false, true, this, getConstraint(coordinate));\n const shape = container.addShape({\n type: 'path',\n attrs,\n name: 'area',\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: (x: number, y: number, r: number = 5.5) => {\n return [['M', x - r, y - 4], ['L', x + r, y - 4], ['L', x + r, y + 4], ['L', x - r, y + 4], ['Z']];\n },\n style: {\n r: 5,\n fill: color,\n },\n };\n },\n});\n","import { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getConstraint, getShapeAttrs } from './util';\n\n/** 描边的平滑曲面图 */\nregisterShape('area', 'smooth-line', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const coordinate = this.coordinate;\n const attrs = getShapeAttrs(cfg, true, true, this, getConstraint(coordinate));\n const shape = container.addShape({\n type: 'path',\n attrs,\n name: 'area',\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: (x: number, y: number, r: number = 5.5) => {\n return [['M', x - r, y - 4], ['L', x + r, y - 4], ['L', x + r, y + 4], ['L', x - r, y + 4], ['Z']];\n },\n style: {\n r: 5,\n stroke: color,\n fill: null,\n },\n };\n },\n});\n","import { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { getArcPath } from '../../../util/graphics';\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\nimport { getCPath, getQPath } from './util';\n\nfunction getArcShapePath(from: Point, to: Point, center: Point) {\n const sub = getQPath(to, center);\n const path = [['M', from.x, from.y]];\n path.push(sub);\n return path;\n}\n\nfunction getArcShapeWeightPath(points: Point[], center: Point) {\n const arc1 = getQPath(points[1], center);\n const arc2 = getQPath(points[3], center);\n const path = [['M', points[0].x, points[0].y]];\n path.push(arc2);\n path.push(['L', points[3].x, points[3].y]);\n path.push(['L', points[2].x, points[2].y]);\n path.push(arc1);\n path.push(['L', points[1].x, points[1].y]);\n path.push(['L', points[0].x, points[0].y]);\n path.push(['Z']);\n return path;\n}\n\n// 弧线包括笛卡尔坐标系下的半圆弧线、极坐标系下以圆心为控制点的二阶曲线、笛卡尔坐标系下带权重的三阶曲线、极坐标系下带权重的以圆心为控制点的二阶曲线\nregisterShape('edge', 'arc', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, true, false, 'lineWidth');\n\n let points = cfg.points as Point[];\n const type = points.length > 2 ? 'weight' : 'normal';\n let path;\n if (cfg.isInCircle) {\n const center = { x: 0, y: 1 };\n if (type === 'normal') {\n path = getArcShapePath(points[0], points[1], center);\n } else {\n style.fill = style.stroke;\n path = getArcShapeWeightPath(points, center);\n }\n path = this.parsePath(path);\n\n return container.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n });\n } else {\n if (type === 'normal') {\n points = this.parsePoints(points);\n path = getArcPath(\n (points[1].x + points[0].x) / 2,\n points[0].y,\n Math.abs(points[1].x - points[0].x) / 2,\n Math.PI,\n Math.PI * 2\n );\n return container.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n });\n } else {\n const c1 = getCPath(points[1], points[3]);\n const c2 = getCPath(points[2], points[0]);\n\n path = [\n ['M', points[0].x, points[0].y],\n ['L', points[1].x, points[1].y],\n c1,\n ['L', points[3].x, points[3].y],\n ['L', points[2].x, points[2].y],\n c2,\n ['Z'],\n ];\n path = this.parsePath(path);\n style.fill = style.stroke;\n\n return container.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n });\n }\n }\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n return {\n symbol: 'circle',\n style: {\n r: 4.5,\n fill: markerCfg.color,\n },\n };\n },\n});\n","import { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\nimport { getCPath } from './util';\n\nfunction getSmoothPath(from: Point, to: Point) {\n const sub = getCPath(from, to);\n const path = [['M', from.x, from.y]];\n\n path.push(sub);\n return path;\n}\n\nregisterShape('edge', 'smooth', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, true, false, 'lineWidth');\n const points = cfg.points;\n const path = this.parsePath(getSmoothPath(points[0] as Point, points[1] as Point));\n return container.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n });\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n return {\n symbol: 'circle',\n style: {\n r: 4.5,\n fill: markerCfg.color,\n },\n };\n },\n});\n","import { each } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\n\nconst CORNER_PERCENT = 1 / 3;\n\nfunction getVHVPath(from: Point, to: Point) {\n const points = [];\n points.push({\n x: from.x,\n y: from.y * (1 - CORNER_PERCENT) + to.y * CORNER_PERCENT,\n });\n points.push({\n x: to.x,\n y: from.y * (1 - CORNER_PERCENT) + to.y * CORNER_PERCENT,\n });\n points.push(to);\n\n const path = [['M', from.x, from.y]];\n each(points, (point) => {\n path.push(['L', point.x, point.y]);\n });\n\n return path;\n}\n\nregisterShape('edge', 'vhv', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, true, false, 'lineWidth');\n const points = cfg.points;\n const path = this.parsePath(getVHVPath(points[0] as Point, points[1] as Point));\n return container.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n });\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n return {\n symbol: 'circle',\n style: {\n r: 4.5,\n fill: markerCfg.color,\n },\n };\n },\n});\n","import { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\nimport { getFunnelPath, getRectPoints } from './util';\n\n/** 漏斗图 */\nregisterShape('interval', 'funnel', {\n getPoints(shapePoint: ShapePoint) {\n shapePoint.size = shapePoint.size * 2; // 漏斗图的 size 是柱状图的两倍\n return getRectPoints(shapePoint);\n },\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, false, true);\n const path = this.parsePath(getFunnelPath(cfg.points as Point[], cfg.nextPoints as Point[], false));\n const shape = container.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n name: 'interval',\n });\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: 'square',\n style: {\n r: 4,\n fill: color,\n },\n };\n },\n});\n","import { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { BACKGROUND_SHAPE } from '../constant';\nimport { getBackgroundRectStyle, getStyle } from '../util/get-style';\nimport { getBackgroundRectPath, getRectPath } from './util';\n\n/** 描边柱状图 */\nregisterShape('interval', 'hollow-rect', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, true, false);\n let group = container;\n const backgroundCfg = cfg?.background;\n if (backgroundCfg) {\n group = container.addGroup();\n const backgroundStyle = getBackgroundRectStyle(cfg);\n const backgroundPath = getBackgroundRectPath(cfg, this.parsePoints(cfg.points) as Point[], this.coordinate);\n group.addShape('path', {\n attrs: {\n ...backgroundStyle,\n path: backgroundPath,\n },\n zIndex: -1,\n name: BACKGROUND_SHAPE,\n });\n }\n\n const path = this.parsePath(getRectPath(cfg.points as Point[]));\n const shape = group.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n name: 'interval',\n });\n\n return backgroundCfg ? group : shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color, isInPolar } = markerCfg;\n if (isInPolar) {\n return {\n symbol: 'circle',\n style: {\n r: 4.5,\n stroke: color,\n fill: null,\n },\n };\n }\n\n return {\n symbol: 'square',\n style: {\n r: 4,\n stroke: color,\n fill: null,\n },\n };\n },\n});\n","import { isArray } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\nimport { getRectPath } from './util';\nimport { omit } from '../../../util/helper';\n\n// 根据数据点生成 Line 的两个关键点\nfunction getLinePoints(pointInfo: ShapePoint): Point[] {\n const { x, y, y0 } = pointInfo;\n\n if (isArray(y)) {\n return y.map((yItem, idx) => {\n return {\n x: isArray(x) ? x[idx] : x,\n y: yItem,\n };\n });\n }\n\n // 起始点从 y0 开始\n return [\n { x: x as number, y: y0 },\n { x: x as number, y },\n ];\n}\n\nregisterShape('interval', 'line', {\n getPoints(shapePoint: ShapePoint) {\n return getLinePoints(shapePoint);\n },\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, true, false, 'lineWidth');\n const newStyle = omit({ ...style }, ['fill']);\n const path = this.parsePath(getRectPath(cfg.points as Point[], false));\n const shape = container.addShape('path', {\n attrs: {\n ...newStyle,\n path,\n },\n name: 'interval',\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: (x: number, y: number, r: number) => {\n return [\n ['M', x, y - r],\n ['L', x, y + r],\n ];\n },\n style: {\n r: 5,\n stroke: color,\n },\n };\n },\n});\n","import { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\nimport { getFunnelPath, getRectPoints } from './util';\n\n/** 金字塔图,尖底漏斗图 */\nregisterShape('interval', 'pyramid', {\n getPoints(shapePoint: ShapePoint) {\n shapePoint.size = shapePoint.size * 2; // 漏斗图的 size 是柱状图的两倍\n return getRectPoints(shapePoint);\n },\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, false, true);\n const path = this.parsePath(getFunnelPath(cfg.points as Point[], cfg.nextPoints as Point[], true));\n const shape = container.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n name: 'interval',\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: 'square',\n style: {\n r: 4,\n fill: color,\n },\n };\n },\n});\n","import { isArray } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\n\n// 根据数据点生成 tick shape 的 6 个关键点\nfunction getTickPoints(pointInfo: ShapePoint): Point[] {\n const { x, y, y0, size } = pointInfo;\n let yMin;\n let yMax;\n if (isArray(y)) {\n [yMin, yMax] = y;\n } else {\n yMin = y0;\n yMax = y;\n }\n\n const xMax = (x as number) + size / 2;\n const xMin = (x as number) - size / 2;\n\n // tick 关键点顺序\n // 4 - 1 - 5\n // |\n // 2 - 0 - 3\n return [\n { x: x as number, y: yMin },\n { x: x as number, y: yMax },\n { x: xMin, y: yMin },\n { x: xMax, y: yMin },\n { x: xMin, y: yMax },\n { x: xMax, y: yMax },\n ];\n}\n\n// 根据 tick 关键点绘制 path\nfunction getTickPath(points: Point[]) {\n return [\n ['M', points[0].x, points[0].y],\n ['L', points[1].x, points[1].y],\n ['M', points[2].x, points[2].y],\n ['L', points[3].x, points[3].y],\n ['M', points[4].x, points[4].y],\n ['L', points[5].x, points[5].y],\n ];\n}\n\n/** I 形状柱状图,常用于 error bar chart */\nregisterShape('interval', 'tick', {\n getPoints(shapePoint: ShapePoint) {\n return getTickPoints(shapePoint);\n },\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, true, false);\n const path = this.parsePath(getTickPath(cfg.points as Point[]));\n const shape = container.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n name: 'interval',\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: (x: number, y: number, r: number) => {\n return [\n ['M', x - r / 2, y - r],\n ['L', x + r / 2, y - r],\n ['M', x, y - r],\n ['L', x, y + r],\n ['M', x - r / 2, y + r],\n ['L', x + r / 2, y + r],\n ];\n },\n style: {\n r: 5,\n stroke: color,\n },\n };\n },\n});\n","import { each } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getPathPoints } from '../util/get-path-points';\nimport { getStyle } from '../util/get-style';\nimport { getLineMarker } from './util';\n\nconst interpolateCallback = (point: Point, nextPoint: Point, shapeType: string) => {\n const x = point.x as number;\n const y = point.y as number;\n const nextX = nextPoint.x as number;\n const nextY = nextPoint.y as number;\n let result;\n\n switch (shapeType) {\n case 'hv':\n result = [{ x: nextX, y }];\n break;\n case 'vh':\n result = [{ x, y: nextY }];\n break;\n case 'hvh':\n const middleX = (nextX + x) / 2;\n result = [\n { x: middleX, y },\n { x: middleX, y: nextY },\n ];\n break;\n case 'vhv':\n const middleY = (y + nextY) / 2;\n result = [\n { x, y: middleY },\n { x: nextX, y: middleY },\n ];\n break;\n default:\n break;\n }\n\n return result;\n};\n\nfunction getInterpolatePoints(points: Point[], shapeType: string) {\n let result = [];\n each(points, (point: Point, index) => {\n const nextPoint = points[index + 1];\n result.push(point);\n if (nextPoint) {\n const interpolatePoint = interpolateCallback(point, nextPoint, shapeType);\n result = result.concat(interpolatePoint);\n }\n });\n return result;\n}\n\n// 插值的图形path,不考虑null\nfunction getInterpolatePath(points: Point[]) {\n return points.map((point, index) => {\n return index === 0 ? ['M', point.x, point.y] : ['L', point.x, point.y];\n });\n}\n\n// 插值的图形\nfunction getInterpolateShapeAttrs(cfg: ShapeInfo, shapeType: string) {\n const points = getPathPoints(cfg.points, cfg.connectNulls, cfg.showSinglePoint); // 根据 connectNulls 值处理 points\n let path = [];\n each(points, (eachLinePoints) => {\n const interpolatePoints = getInterpolatePoints(eachLinePoints, shapeType);\n path = path.concat(getInterpolatePath(interpolatePoints));\n });\n\n return {\n ...getStyle(cfg, true, false, 'lineWidth'),\n path,\n };\n}\n\n// step line\neach(['hv', 'vh', 'hvh', 'vhv'], (shapeType) => {\n registerShape('line', shapeType, {\n draw(cfg: ShapeInfo, container: IGroup) {\n const attrs = getInterpolateShapeAttrs(cfg, shapeType);\n const shape = container.addShape({\n type: 'path',\n attrs,\n name: 'line',\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n return getLineMarker(markerCfg, shapeType);\n },\n });\n});\n","import { isArray, isNil } from '@antv/util';\nimport { IGroup, PathCommand } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\n\nfunction parseValue(value: number[]) {\n const array = !isArray(value) ? [value] : value;\n\n const min = array[0]; // 最小值\n const max = array[array.length - 1]; // 最大值\n const min1 = array.length > 1 ? array[1] : min;\n const max1 = array.length > 3 ? array[3] : max;\n const median = array.length > 2 ? array[2] : min1;\n\n return {\n min, // 最小值\n max, // 最大值\n min1,\n max1,\n median,\n };\n}\n\nfunction getBoxPoints(x: number | number[], y: number | number[], size: number): Point[] {\n const halfSize = size / 2;\n let pointsArray;\n if (isArray(y)) {\n // 2维\n const { min, max, median, min1, max1 } = parseValue(y);\n const minX = (x as number) - halfSize;\n const maxX = (x as number) + halfSize;\n pointsArray = [\n [minX, max],\n [maxX, max],\n [x as number, max],\n [x as number, max1],\n [minX, min1],\n [minX, max1],\n [maxX, max1],\n [maxX, min1],\n [x as number, min1],\n [x as number, min],\n [minX, min],\n [maxX, min],\n [minX, median],\n [maxX, median],\n ];\n } else {\n // 只有一个维度\n y = isNil(y) ? 0.5 : y;\n const { min, max, median, min1, max1 } = parseValue(x as number[]);\n const minY = y - halfSize;\n const maxY = y + halfSize;\n pointsArray = [\n [min, minY],\n [min, maxY],\n [min, y],\n [min1, y],\n [min1, minY],\n [min1, maxY],\n [max1, maxY],\n [max1, minY],\n [max1, y],\n [max, y],\n [max, minY],\n [max, maxY],\n [median, minY],\n [median, maxY],\n ];\n }\n\n return pointsArray.map((arr) => {\n return {\n x: arr[0],\n y: arr[1],\n };\n });\n}\n\nfunction getBoxPath(points): PathCommand[] {\n return [\n ['M', points[0].x, points[0].y],\n ['L', points[1].x, points[1].y],\n ['M', points[2].x, points[2].y],\n ['L', points[3].x, points[3].y],\n ['M', points[4].x, points[4].y],\n ['L', points[5].x, points[5].y],\n ['L', points[6].x, points[6].y],\n ['L', points[7].x, points[7].y],\n ['L', points[4].x, points[4].y], // 封闭 z\n ['Z'],\n ['M', points[8].x, points[8].y],\n ['L', points[9].x, points[9].y],\n ['M', points[10].x, points[10].y],\n ['L', points[11].x, points[11].y],\n ['M', points[12].x, points[12].y],\n ['L', points[13].x, points[13].y],\n ];\n}\n\n// box shape\nregisterShape('schema', 'box', {\n getPoints(shapePoint: ShapePoint) {\n const { x, y, size } = shapePoint;\n return getBoxPoints(x as number, y as number[], size);\n },\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, true, false);\n const path = this.parsePath(getBoxPath(cfg.points));\n const shape = container.addShape('path', {\n attrs: {\n ...style,\n path,\n name: 'schema',\n },\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol(x: number, y: number, r: number) {\n const yValues = [y - 6, y - 3, y, y + 3, y + 6];\n const points = getBoxPoints(x, yValues, r);\n return [\n ['M', points[0].x + 1, points[0].y],\n ['L', points[1].x - 1, points[1].y],\n ['M', points[2].x, points[2].y],\n ['L', points[3].x, points[3].y],\n ['M', points[4].x, points[4].y],\n ['L', points[5].x, points[5].y],\n ['L', points[6].x, points[6].y],\n ['L', points[7].x, points[7].y],\n ['L', points[4].x, points[4].y],\n ['Z'],\n ['M', points[8].x, points[8].y],\n ['L', points[9].x, points[9].y],\n ['M', points[10].x + 1, points[10].y],\n ['L', points[11].x - 1, points[11].y],\n ['M', points[12].x, points[12].y],\n ['L', points[13].x, points[13].y],\n ];\n },\n style: {\n r: 6,\n lineWidth: 1,\n stroke: color,\n },\n };\n },\n});\n","import { isArray } from '@antv/util';\nimport { IGroup, PathCommand } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { padEnd } from '../../../util/helper';\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\n\nfunction getCandleYValues(value: number | number[]) {\n const array = !isArray(value) ? [value] : value;\n // 从大到小排序\n const sorted = array.sort((a, b) => b - a);\n return padEnd(sorted, 4, sorted[sorted.length - 1]);\n}\n\n// get candle shape's key points\nfunction getCandlePoints(x: number, y: number[], size: number): Point[] {\n const yValues = getCandleYValues(y);\n return [\n { x, y: yValues[0] },\n { x, y: yValues[1] },\n { x: x - size / 2, y: yValues[2] },\n { x: x - size / 2, y: yValues[1] },\n { x: x + size / 2, y: yValues[1] },\n { x: x + size / 2, y: yValues[2] },\n { x, y: yValues[2] },\n { x, y: yValues[3] },\n ];\n}\n\nfunction getCandlePath(points): PathCommand[] {\n return [\n ['M', points[0].x, points[0].y],\n ['L', points[1].x, points[1].y],\n ['M', points[2].x, points[2].y],\n ['L', points[3].x, points[3].y],\n ['L', points[4].x, points[4].y],\n ['L', points[5].x, points[5].y],\n ['Z'],\n ['M', points[6].x, points[6].y],\n ['L', points[7].x, points[7].y],\n ];\n}\n\n// k line shape\nregisterShape('schema', 'candle', {\n getPoints(shapePoint: ShapePoint) {\n const { x, y, size } = shapePoint;\n return getCandlePoints(x as number, y as number[], size);\n },\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, true, true);\n const path = this.parsePath(getCandlePath(cfg.points));\n const shape = container.addShape('path', {\n attrs: {\n ...style,\n path,\n name: 'schema',\n },\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol(x: number, y: number, r: number) {\n const yValues = [y + 7.5, y + 3, y - 3, y - 7.5];\n const points = getCandlePoints(x, yValues, r);\n return [\n ['M', points[0].x, points[0].y],\n ['L', points[1].x, points[1].y],\n ['M', points[2].x, points[2].y],\n ['L', points[3].x, points[3].y],\n ['L', points[4].x, points[4].y],\n ['L', points[5].x, points[5].y],\n ['Z'],\n ['M', points[6].x, points[6].y],\n ['L', points[7].x, points[7].y],\n ];\n },\n style: {\n lineWidth: 1,\n stroke: color,\n fill: color,\n r: 6,\n },\n };\n },\n});\n","import { isEmpty, clamp } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\n\nfunction getRectAttrs(points: any[], size: number) {\n const width = Math.abs(points[0].x - points[2].x);\n const height = Math.abs(points[0].y - points[2].y);\n\n let len = Math.min(width, height);\n if (size) {\n len = clamp(size, 0, Math.min(width, height));\n }\n len = len / 2;\n const centerX = (points[0].x + points[2].x) / 2;\n const centerY = (points[0].y + points[2].y) / 2;\n\n return {\n x: centerX - len,\n y: centerY - len,\n width: len * 2,\n height: len * 2,\n };\n}\n\nregisterShape('polygon', 'square', {\n draw(cfg: ShapeInfo, container: IGroup) {\n if (!isEmpty(cfg.points)) {\n const shapeAttrs = getStyle(cfg, true, true);\n const points = this.parsePoints(cfg.points); // 转换为画布坐标\n return container.addShape('rect', {\n attrs: {\n ...shapeAttrs,\n ...getRectAttrs(points, cfg.size), // 获取 rect 绘图信息\n },\n name: 'polygon',\n });\n }\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: 'square',\n style: {\n r: 4,\n fill: color,\n },\n };\n },\n});\n","import { each } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { MarkerSymbols } from '../../../util/marker';\nimport { registerShape } from '../base';\nimport { drawPoints, HOLLOW_SHAPES } from './util';\n\n// 添加 hollowShape\neach(HOLLOW_SHAPES, (shapeName: string) => {\n registerShape('point', shapeName, {\n draw(cfg: ShapeInfo, container: IGroup) {\n return drawPoints(this, cfg, container, shapeName, true);\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: MarkerSymbols[shapeName],\n style: {\n r: 4.5,\n stroke: color,\n fill: null,\n },\n };\n },\n });\n});\n","import { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\n\nregisterShape('point', 'image', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const { r: size } = getStyle(cfg, false, false, 'r');\n const points = this.parsePoints(cfg.points);\n let pointPosition = points[0];\n if (cfg.isStack) {\n pointPosition = points[1];\n } else if (points.length > 1) {\n const group = container.addGroup();\n for (const point of points) {\n group.addShape('image', {\n attrs: {\n x: (point.x as number) - size / 2,\n y: (point.y as number) - size,\n width: size,\n height: size,\n img: cfg.shape[1],\n },\n });\n }\n\n return group;\n }\n\n return container.addShape('image', {\n attrs: {\n x: (pointPosition.x as number) - size / 2,\n y: (pointPosition.y as number) - size,\n width: size,\n height: size,\n img: cfg.shape[1],\n },\n });\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: 'circle',\n style: {\n r: 4.5,\n fill: color,\n },\n };\n },\n});\n","import { each } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { MarkerSymbols } from '../../../util/marker';\nimport { registerShape } from '../base';\nimport { drawPoints, SHAPES } from './util';\n\n// 所有的 SHAPES 都注册一下\neach(SHAPES, (shapeName: string) => {\n registerShape('point', shapeName, {\n draw(cfg: ShapeInfo, container: IGroup) {\n return drawPoints(this, cfg, container, shapeName, false);\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: MarkerSymbols[shapeName] || shapeName,\n style: {\n r: 4.5,\n fill: color,\n },\n };\n },\n });\n});\n","import { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg } from '../../../interface';\nimport { registerShape } from '../base';\nimport { getSmoothViolinPath } from '../util/get-path-points';\nimport { getStyle } from '../util/get-style';\n\n/**\n * 平滑边界的小提琴图\n */\nregisterShape('violin', 'smooth', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const attrs = getStyle(cfg, true, true);\n const path = this.parsePath(getSmoothViolinPath(cfg.points));\n return container.addShape('path', {\n attrs: {\n ...attrs,\n path,\n },\n });\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: 'circle',\n style: {\n stroke: null,\n r: 4,\n fill: color,\n },\n };\n },\n});\n","import { IGroup, Point } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg } from '../../../interface';\nimport { registerShape } from '../base';\nimport { getSmoothViolinPath, getViolinPath } from '../util/get-path-points';\nimport { getStyle } from '../util/get-style';\n\n/**\n * 空心小提琴图\n */\nregisterShape('violin', 'hollow', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const attrs = getStyle(cfg, true, false);\n const path = this.parsePath(getViolinPath(cfg.points));\n return container.addShape('path', {\n attrs: {\n ...attrs,\n path,\n },\n });\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: 'circle',\n style: {\n r: 4,\n fill: null,\n stroke: color,\n },\n };\n },\n});\n\n/**\n * 平滑边界的空心小提琴图\n */\nregisterShape('violin', 'hollow-smooth', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const attrs = getStyle(cfg, true, false);\n const path = this.parsePath(getSmoothViolinPath(cfg.points));\n return container.addShape('path', {\n attrs: {\n ...attrs,\n path,\n },\n });\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: 'circle',\n style: {\n r: 4,\n fill: null,\n stroke: color,\n },\n };\n },\n});\n","import { get, deepMix, isArray } from '@antv/util';\nimport { Writeable } from '../../util/types';\nimport { MappingDatum, Point } from '../../interface';\nimport GeometryLabel from './base';\nimport { LabelCfg, LabelItem, LabelPointCfg, TextAlign } from './interface';\n\n/**\n * 柱状图 label\n */\nexport default class IntervalLabel extends GeometryLabel {\n /**\n * 获取 interval label 的方向,取决于 value 的值是正还是负\n * @param labelCfg\n */\n private getLabelValueDir(mappingData: MappingDatum) {\n // points 中的 x/y 和 transpose 无关\n const dim = 'y';\n const { points } = mappingData;\n\n return points[0][dim] <= points[2][dim] ? 1 : -1;\n }\n\n /**\n * 重载:根据 interval 值的正负来调整 label 偏移量\n * @param labelCfg\n * @param index\n * @param total\n */\n protected getLabelOffsetPoint(labelCfg: LabelCfg, index: number, total: number, position?: string) {\n let point = super.getLabelOffsetPoint(labelCfg, index, total);\n const coordinate = this.getCoordinate();\n const transposed = coordinate.isTransposed;\n const dim = transposed ? 'x' : 'y';\n const dir = this.getLabelValueDir(labelCfg.mappingData);\n point = { ...point, [dim]: point[dim] * dir };\n\n if (coordinate.isReflect('x')) {\n point = {\n ...point,\n x: point.x * -1,\n };\n }\n if (coordinate.isReflect('y')) {\n point = {\n ...point,\n y: point.y * -1,\n };\n }\n\n return point;\n }\n\n /**\n * 重载:定制 interval label 的默认主题配置\n * @param labelCfg\n */\n protected getThemedLabelCfg(labelCfg: LabelCfg) {\n const geometry = this.geometry;\n const defaultLabelCfg = this.getDefaultLabelCfg();\n const { theme } = geometry;\n\n // 如果 interval label position 设置为 middle,则将主题中的 offset 覆盖为 0\n return deepMix({}, defaultLabelCfg, theme.labels, labelCfg.position === 'middle' ? { offset: 0 } : {}, labelCfg);\n }\n\n protected setLabelPosition(\n labelPointCfg: Writeable,\n mappingData: MappingDatum,\n index: number,\n position: string\n ) {\n const coordinate = this.getCoordinate();\n const transposed = coordinate.isTransposed;\n const shapePoints = mappingData.points as Point[];\n const point0 = coordinate.convert(shapePoints[0]);\n const point2 = coordinate.convert(shapePoints[2]);\n const dir = this.getLabelValueDir(mappingData);\n\n let top;\n let right;\n let bottom;\n let left;\n\n const shape = isArray(mappingData.shape) ? mappingData.shape[0] : mappingData.shape;\n if (shape === 'funnel' || shape === 'pyramid') {\n // 处理漏斗图\n const nextPoints = get(mappingData, 'nextPoints');\n const points = get(mappingData, 'points');\n if (nextPoints) {\n // 非漏斗图底部\n const p0 = coordinate.convert(points[0] as Point);\n const p1 = coordinate.convert(points[1] as Point);\n const nextP0 = coordinate.convert(nextPoints[0] as Point);\n const nextP1 = coordinate.convert(nextPoints[1] as Point);\n\n // TODO: 使用包围盒的计算方法\n if (transposed) {\n top = Math.min(nextP0.y, p0.y);\n bottom = Math.max(nextP0.y, p0.y);\n right = (p1.x + nextP1.x) / 2;\n left = (p0.x + nextP0.x) / 2;\n } else {\n top = Math.min((p1.y + nextP1.y) / 2, (p0.y + nextP0.y) / 2);\n bottom = Math.max((p1.y + nextP1.y) / 2, (p0.y + nextP0.y) / 2);\n right = nextP1.x;\n left = p0.x;\n }\n } else {\n top = Math.min(point2.y, point0.y);\n bottom = Math.max(point2.y, point0.y);\n right = point2.x;\n left = point0.x;\n }\n } else {\n top = Math.min(point2.y, point0.y);\n bottom = Math.max(point2.y, point0.y);\n right = point2.x;\n left = point0.x;\n }\n\n switch (position) {\n case 'right':\n labelPointCfg.x = right;\n labelPointCfg.y = (top + bottom) / 2;\n labelPointCfg.textAlign = get(labelPointCfg, 'textAlign', dir > 0 ? 'left' : 'right');\n break;\n case 'left':\n labelPointCfg.x = left;\n labelPointCfg.y = (top + bottom) / 2;\n labelPointCfg.textAlign = get(labelPointCfg, 'textAlign', dir > 0 ? 'left' : 'right');\n break;\n case 'bottom':\n if (transposed) {\n labelPointCfg.x = (right + left) / 2;\n }\n labelPointCfg.y = bottom;\n labelPointCfg.textAlign = get(labelPointCfg, 'textAlign', 'center');\n labelPointCfg.textBaseline = get(labelPointCfg, 'textBaseline', dir > 0 ? 'bottom' : 'top');\n break;\n case 'middle':\n if (transposed) {\n labelPointCfg.x = (right + left) / 2;\n }\n labelPointCfg.y = (top + bottom) / 2;\n labelPointCfg.textAlign = get(labelPointCfg, 'textAlign', 'center');\n labelPointCfg.textBaseline = get(labelPointCfg, 'textBaseline', 'middle');\n break;\n case 'top':\n if (transposed) {\n labelPointCfg.x = (right + left) / 2;\n }\n labelPointCfg.y = top;\n labelPointCfg.textAlign = get(labelPointCfg, 'textAlign', 'center');\n labelPointCfg.textBaseline = get(labelPointCfg, 'textBaseline', dir > 0 ? 'bottom' : 'top');\n break;\n default:\n break;\n }\n }\n}\n","import { each, get, isArray, map, isNumber, isString } from '@antv/util';\nimport { MappingDatum, Point } from '../../interface';\nimport { getDistanceToCenter } from '../../util/coordinate';\nimport { getAngleByPoint } from '../../util/coordinate';\nimport GeometryLabel from './base';\nimport { LabelCfg, LabelItem, PolarLabelItem, LabelPointCfg, Writeable } from './interface';\n\nconst HALF_PI = Math.PI / 2;\n\n/**\n * 极坐标下的图形 label\n */\nexport default class PolarLabel extends GeometryLabel {\n /**\n * @override\n * @desc 获取 label offset\n * polar & theta coordinate support「string」type, should transform to 「number」\n */\n protected getLabelOffset(offset: number | string): number {\n const coordinate = this.getCoordinate();\n let actualOffset = 0;\n if (isNumber(offset)) {\n actualOffset = offset;\n } else if (isString(offset) && offset.indexOf('%') !== -1) {\n let r = coordinate.getRadius();\n if (coordinate.innerRadius > 0) {\n r = r * (1 - coordinate.innerRadius);\n }\n actualOffset = parseFloat(offset) * 0.01 * r;\n }\n\n return actualOffset;\n }\n\n /**\n * @override\n * 获取 labelItems, 增加切片 percent\n * @param mapppingArray\n */\n public getLabelItems(mapppingArray: MappingDatum[]): PolarLabelItem[] {\n const items = super.getLabelItems(mapppingArray);\n const yScale = this.geometry.getYScale();\n\n return map(items, (item) => {\n if (item && yScale) {\n const percent = yScale.scale(get(item.data, yScale.field));\n return { ...item, percent };\n }\n return item;\n });\n }\n /**\n * @override\n * 获取文本的对齐方式\n * @param point\n */\n protected getLabelAlign(point: LabelItem) {\n const coordinate = this.getCoordinate();\n let align;\n if (point.labelEmit) {\n align = point.angle <= Math.PI / 2 && point.angle >= -Math.PI / 2 ? 'left' : 'right';\n } else if (!coordinate.isTransposed) {\n align = 'center';\n } else {\n const center = coordinate.getCenter();\n const offset = point.offset;\n if (Math.abs(point.x - center.x) < 1) {\n align = 'center';\n } else if (point.angle > Math.PI || point.angle <= 0) {\n align = offset > 0 ? 'left' : 'right';\n } else {\n align = offset > 0 ? 'right' : 'left';\n }\n }\n return align;\n }\n\n /**\n * @override\n * 获取 label 的位置\n * @param labelCfg\n * @param mappingData\n * @param index\n */\n protected getLabelPoint(labelCfg: LabelCfg, mappingData: MappingDatum, index: number): LabelPointCfg {\n let factor = 1;\n let arcPoint;\n const content = labelCfg.content[index];\n if (this.isToMiddle(mappingData)) {\n arcPoint = this.getMiddlePoint(mappingData.points as Point[]);\n } else {\n if (labelCfg.content.length === 1 && index === 0) {\n index = 1;\n } else if (index === 0) {\n factor = -1;\n }\n arcPoint = this.getArcPoint(mappingData, index);\n }\n\n const offset = labelCfg.offset * factor;\n const middleAngle = this.getPointAngle(arcPoint);\n const isLabelEmit = labelCfg.labelEmit;\n const labelPositionCfg: Writeable = this.getCirclePoint(middleAngle, offset, arcPoint, isLabelEmit);\n if (labelPositionCfg.r === 0) {\n // 如果文本位置位于圆心,则不展示\n labelPositionCfg.content = '';\n } else {\n labelPositionCfg.content = content;\n labelPositionCfg.angle = middleAngle;\n labelPositionCfg.color = mappingData.color;\n }\n\n labelPositionCfg.rotate = labelCfg.autoRotate\n ? this.getLabelRotate(middleAngle, offset, isLabelEmit)\n : labelCfg.rotate;\n labelPositionCfg.start = {\n x: arcPoint.x,\n y: arcPoint.y,\n };\n return labelPositionCfg;\n }\n\n /**\n * 获取圆弧的位置\n */\n protected getArcPoint(mappingData: MappingDatum, index: number = 0): Point {\n if (!isArray(mappingData.x) && !isArray(mappingData.y)) {\n return {\n x: mappingData.x,\n y: mappingData.y,\n };\n }\n\n return {\n x: isArray(mappingData.x) ? mappingData.x[index] : mappingData.x,\n y: isArray(mappingData.y) ? mappingData.y[index] : mappingData.y,\n };\n }\n\n /**\n * 计算坐标线点在极坐标系下角度\n * @param point\n */\n protected getPointAngle(point: Point): number {\n return getAngleByPoint(this.getCoordinate(), point);\n }\n\n /**\n * 获取坐标点与圆心形成的圆的位置信息\n * @param angle\n * @param offset\n * @param point\n * @param isLabelEmit\n */\n protected getCirclePoint(angle: number, offset: number, point: Point, isLabelEmit: boolean) {\n const coordinate = this.getCoordinate();\n const center = coordinate.getCenter();\n let r = getDistanceToCenter(coordinate, point);\n if (r === 0) {\n return {\n ...center,\n r,\n };\n }\n\n let labelAngle = angle;\n if (coordinate.isTransposed && r > offset && !isLabelEmit) {\n const appendAngle = Math.asin(offset / (2 * r));\n labelAngle = angle + appendAngle * 2;\n } else {\n r = r + offset;\n }\n\n return {\n x: center.x + r * Math.cos(labelAngle),\n y: center.y + r * Math.sin(labelAngle),\n r,\n };\n }\n\n /**\n * 获取 label 的旋转角度\n * @param angle\n * @param offset\n * @param isLabelEmit\n */\n protected getLabelRotate(angle: number, offset: number, isLabelEmit: boolean) {\n let rotate = angle + HALF_PI;\n if (isLabelEmit) {\n rotate -= HALF_PI;\n }\n if (rotate) {\n if (rotate > HALF_PI) {\n rotate = rotate - Math.PI;\n } else if (rotate < -HALF_PI) {\n rotate = rotate + Math.PI;\n }\n }\n return rotate;\n }\n\n // 获取中心的位置\n private getMiddlePoint(points: Point[]) {\n const coordinate = this.getCoordinate();\n const count = points.length;\n let middlePoint = {\n x: 0,\n y: 0,\n };\n each(points, (point: Point) => {\n middlePoint.x += point.x;\n middlePoint.y += point.y;\n });\n middlePoint.x /= count;\n middlePoint.y /= count;\n\n middlePoint = coordinate.convert(middlePoint);\n return middlePoint;\n }\n\n // 是否居中\n private isToMiddle(mappingData: MappingDatum) {\n return (mappingData.x as number[]).length > 2;\n }\n}\n","import { deepMix, get, isArray } from '@antv/util';\nimport { getAngleByPoint } from '../../util/coordinate';\nimport { polarToCartesian } from '../../util/graphics';\nimport { LabelItem } from './interface';\nimport PolarLabel from './polar';\n\n/**\n * 饼图 label\n */\nexport default class PieLabel extends PolarLabel {\n public defaultLayout = 'distribute';\n\n protected getDefaultLabelCfg(offset?: number, position?: string) {\n const cfg = super.getDefaultLabelCfg(offset, position);\n return deepMix({}, cfg, get(this.geometry.theme, 'pieLabels', {}));\n }\n\n /** @override */\n protected getLabelOffset(offset: string | number): number {\n return super.getLabelOffset(offset) || 0;\n }\n\n protected getLabelRotate(angle: number, offset: number, isLabelLimit: boolean) {\n let rotate;\n if (offset < 0) {\n rotate = angle;\n if (rotate > Math.PI / 2) {\n rotate = rotate - Math.PI;\n }\n if (rotate < -Math.PI / 2) {\n rotate = rotate + Math.PI;\n }\n }\n return rotate;\n }\n\n protected getLabelAlign(point: LabelItem) {\n const coordinate = this.getCoordinate();\n const center = coordinate.getCenter();\n\n let align;\n if (point.angle <= Math.PI / 2 && point.x >= center.x) {\n align = 'left';\n } else {\n align = 'right';\n }\n if (point.offset <= 0) {\n if (align === 'right') {\n align = 'left';\n } else {\n align = 'right';\n }\n }\n return align;\n }\n\n protected getArcPoint(point) {\n return point;\n }\n\n protected getPointAngle(point) {\n const coordinate = this.getCoordinate();\n const startPoint = {\n x: isArray(point.x) ? point.x[0] : point.x,\n y: point.y[0],\n };\n const endPoint = {\n x: isArray(point.x) ? point.x[1] : point.x,\n y: point.y[1],\n };\n let angle;\n const startAngle = getAngleByPoint(coordinate, startPoint);\n if (point.points && point.points[0].y === point.points[1].y) {\n angle = startAngle;\n } else {\n let endAngle = getAngleByPoint(coordinate, endPoint);\n if (startAngle >= endAngle) {\n // 100% pie slice\n endAngle = endAngle + Math.PI * 2;\n }\n angle = startAngle + (endAngle - startAngle) / 2;\n }\n return angle;\n }\n\n /** @override */\n protected getCirclePoint(angle: number, offset: number) {\n const coordinate = this.getCoordinate();\n const center = coordinate.getCenter();\n const r = coordinate.getRadius() + offset;\n return {\n ...polarToCartesian(center.x, center.y, r, angle),\n angle,\n r,\n };\n }\n}\n","import { PolarLabelItem } from '../../interface';\n\n/**\n * 碰撞检测算法\n */\nexport function antiCollision(\n items: PolarLabelItem[],\n labelHeight: number,\n plotRange: { minY: number; maxY: number; minX: number; maxX: number }\n) {\n const labels = items.filter((item) => !item.invisible);\n\n // sorted by y, mutable\n labels.sort((a, b) => a.y - b.y);\n // adjust y position of labels to avoid overlapping\n let overlapping = true;\n const startY = plotRange.minY;\n const endY = plotRange.maxY;\n let totalHeight = Math.abs(startY - endY);\n let i;\n\n let maxY = 0;\n let minY = Number.MIN_VALUE;\n const boxes = labels.map((label) => {\n if (label.y > maxY) {\n maxY = label.y;\n }\n if (label.y < minY) {\n minY = label.y;\n }\n return {\n content: label.content,\n size: labelHeight,\n targets: [label.y - startY],\n pos: null,\n };\n });\n\n minY -= startY;\n if (maxY - startY > totalHeight) {\n totalHeight = maxY - startY;\n }\n\n while (overlapping) {\n /* eslint no-loop-func: 0 */\n boxes.forEach((box) => {\n const target = (Math.min.apply(minY, box.targets) + Math.max.apply(minY, box.targets)) / 2;\n box.pos = Math.min(Math.max(minY, target - box.size / 2), totalHeight - box.size);\n box.pos = Math.max(0, box.pos);\n });\n\n // detect overlapping and join boxes\n overlapping = false;\n i = boxes.length;\n while (i--) {\n if (i > 0) {\n const previousBox = boxes[i - 1];\n const box = boxes[i];\n if (previousBox.pos + previousBox.size > box.pos) {\n // overlapping\n previousBox.size += box.size;\n previousBox.targets = previousBox.targets.concat(box.targets);\n\n // overflow, shift up\n if (previousBox.pos + previousBox.size > totalHeight) {\n previousBox.pos = totalHeight - previousBox.size;\n }\n boxes.splice(i, 1); // removing box\n overlapping = true;\n }\n }\n }\n }\n\n i = 0;\n // step 4: normalize y and adjust x\n boxes.forEach((b) => {\n let posInCompositeBox = startY + labelHeight / 2; // middle of the label\n b.targets.forEach(() => {\n labels[i].y = b.pos + posInCompositeBox;\n posInCompositeBox += labelHeight;\n i++;\n });\n });\n}\n","import { each } from '@antv/util';\nimport { BBox, IGroup, IShape } from '../../../dependents';\nimport { LabelItem } from '../interface';\n\nconst MAX_TIMES = 100;\n\n/** @ignore */\ninterface Bitmap {\n [key: number]: {\n [key: number]: boolean;\n };\n}\n\n/** @ignore */\ninterface GreedyCfg {\n readonly xGap?: number;\n readonly yGap?: number;\n}\n\n/**\n * @ignore\n * Greedy 贪婪算法\n */\nclass Greedy {\n public readonly xGap: number;\n /** optimizing for text overlapping detection: use a min text height as gap */\n public readonly yGap: number;\n\n private bitmap: Bitmap = {};\n\n constructor(cfg: GreedyCfg = {}) {\n const { xGap = 1, yGap = 8 } = cfg;\n this.xGap = xGap;\n this.yGap = yGap;\n }\n\n public hasGap(bbox: BBox): boolean {\n let hasGap = true;\n const bitmap = this.bitmap;\n const minX = Math.round(bbox.minX);\n const maxX = Math.round(bbox.maxX);\n const minY = Math.round(bbox.minY);\n const maxY = Math.round(bbox.maxY);\n for (let i = minX; i <= maxX; i += 1) {\n if (!bitmap[i]) {\n bitmap[i] = {};\n continue;\n }\n if (i === minX || i === maxX) {\n for (let j = minY; j <= maxY; j++) {\n if (bitmap[i][j]) {\n hasGap = false;\n break;\n }\n }\n } else {\n if (bitmap[i][minY] || bitmap[i][maxY]) {\n hasGap = false;\n break;\n }\n }\n }\n return hasGap;\n }\n\n public fillGap(bbox: BBox): void {\n const bitmap = this.bitmap;\n const minX = Math.round(bbox.minX);\n const maxX = Math.round(bbox.maxX);\n const minY = Math.round(bbox.minY);\n const maxY = Math.round(bbox.maxY);\n // filling grid\n for (let i = minX; i <= maxX; i += 1) {\n if (!bitmap[i]) {\n bitmap[i] = {};\n }\n }\n for (let i = minX; i <= maxX; i += this.xGap) {\n for (let j = minY; j <= maxY; j += this.yGap) {\n bitmap[i][j] = true;\n }\n bitmap[i][maxY] = true;\n }\n\n // filling y edges\n if (this.yGap !== 1) {\n for (let i = minY; i <= maxY; i += 1) {\n bitmap[minX][i] = true;\n bitmap[maxX][i] = true;\n }\n }\n\n // filling x edges\n if (this.xGap !== 1) {\n for (let i = minX; i <= maxX; i += 1) {\n bitmap[i][minY] = true;\n bitmap[i][maxY] = true;\n }\n }\n }\n\n public destroy(): void {\n this.bitmap = {};\n }\n}\n\nfunction spiralFill(label: IShape, greedy: Greedy, maxTimes: number = MAX_TIMES) {\n const dt = -1;\n const { x, y } = label.attr();\n const bbox = label.getCanvasBBox();\n const maxDelta = Math.sqrt(bbox.width * bbox.width + bbox.height * bbox.height);\n let dxdy;\n let t = -dt;\n let dx = 0;\n let dy = 0;\n const f = (param: number) => {\n const nt = param * 0.1;\n return [nt * Math.cos(nt), nt * Math.sin(nt)];\n };\n\n if (greedy.hasGap(bbox)) {\n greedy.fillGap(bbox);\n return true;\n }\n let canFill = false;\n let times = 0;\n const accessedCache = {};\n while (Math.min(Math.abs(dx), Math.abs(dy)) < maxDelta && times < maxTimes) {\n dxdy = f((t += dt));\n dx = ~~dxdy[0];\n dy = ~~dxdy[1];\n if ((!dx && !dy) || accessedCache[`${dx}-${dy}`]) {\n continue;\n }\n label.attr({ x: x + dx, y: y + dy });\n if (dx + dy < 0) {\n label.attr('textAlign', 'right');\n }\n times++;\n if (greedy.hasGap(label.getCanvasBBox())) {\n greedy.fillGap(label.getCanvasBBox());\n canFill = true;\n accessedCache[`${dx}-${dy}`] = true;\n break;\n }\n }\n return canFill;\n}\n\n/*\n * 根据如下规则尝试放置label\n * 5\n * ------------------\n * | 1 | 0 |\n * 8 —————————4———————— 7\n * | 2 | 3 |\n * ——————————————————\n * 6\n */\nfunction adjustLabelPosition(label: IShape, x: number, y: number, index: number) {\n const { width, height } = label.getCanvasBBox();\n const attrs = {\n x,\n y,\n textAlign: 'center',\n };\n switch (index) {\n case 0:\n attrs.y -= height + 1;\n attrs.x += 1;\n attrs.textAlign = 'left';\n break;\n case 1:\n attrs.y -= height + 1;\n attrs.x -= 1;\n attrs.textAlign = 'right';\n break;\n case 2:\n attrs.y += height + 1;\n attrs.x -= 1;\n attrs.textAlign = 'right';\n break;\n case 3:\n attrs.y += height + 1;\n attrs.x += 1;\n attrs.textAlign = 'left';\n break;\n case 5:\n attrs.y -= height * 2 + 2;\n break;\n case 6:\n attrs.y += height * 2 + 2;\n break;\n case 7:\n attrs.x += width + 1;\n attrs.textAlign = 'left';\n break;\n case 8:\n attrs.x -= width + 1;\n attrs.textAlign = 'right';\n break;\n default:\n break;\n }\n label.attr(attrs);\n return label.getCanvasBBox();\n}\n\n/**\n * @ignore\n * label 防遮挡布局:在不改变 label 位置的情况下对相互重叠的 label 进行调整。\n * 不同于 'overlap' 类型的布局,该布局不会对 label 的位置进行偏移调整。\n * @param labels 参与布局调整的 label 数组集合\n */\nexport function fixedOverlap(items: LabelItem[], labels: IGroup[], shapes: IShape[] | IGroup[], region: BBox) {\n const greedy = new Greedy();\n each(labels, (label: IGroup) => {\n const labelShape = label.find((shape) => shape.get('type') === 'text') as IShape;\n if (!spiralFill(labelShape, greedy)) {\n label.remove(true);\n }\n });\n greedy.destroy();\n}\n\n/**\n * @ignore\n * label 防遮挡布局:为了防止 label 之间相互覆盖同时保证尽可能多 的 label 展示,通过尝试将 label 向**四周偏移**来剔除放不下的 label\n * @param labels 参与布局调整的 label 数组集合\n */\nexport function overlap(items: LabelItem[], labels: IGroup[], shapes: IShape[] | IGroup[], region: BBox) {\n const greedy = new Greedy();\n each(labels, (label: IGroup) => {\n const labelShape = label.find((shape) => shape.get('type') === 'text') as IShape;\n const { x, y } = labelShape.attr();\n let canFill = false;\n for (let i = 0; i <= 8; i++) {\n const bbox = adjustLabelPosition(labelShape, x, y, i);\n if (greedy.hasGap(bbox)) {\n greedy.fillGap(bbox);\n canFill = true;\n break;\n }\n }\n if (!canFill) {\n label.remove(true);\n }\n });\n\n greedy.destroy();\n}\n","import { isNumber } from '@antv/util';\nimport { vec2 } from '@antv/matrix-util';\nimport { BBox, Point } from '../dependents';\n\nconst { dot } = vec2;\ntype Vec2 = [number, number];\n\ntype Box = Pick & { rotation?: number };\n\n/**\n * 定义投影对象\n */\ntype Projection = { min: number; max: number };\n\n/**\n * @private\n * 1. 获取投影轴\n */\nfunction getAxes(points: Point[] /** 多边形的关键点 */): Vec2[] {\n // 目前先处理 平行矩形 的场景, 其他多边形不处理\n if (points.length > 4) {\n return [];\n }\n // 获取向量\n const vector = (start: Point, end: Point): Vec2 => {\n return [end.x - start.x, end.y - start.y];\n };\n\n // 由于 矩形的平行原理,所以只有 2 条投影轴: A -> B, B -> C\n const AB = vector(points[0], points[1]);\n const BC = vector(points[1], points[2]);\n\n return [AB, BC];\n}\n\n/**\n * @private\n * 绕指定点顺时针旋转后的点坐标\n * 默认绕原点旋转\n */\nfunction rotateAtPoint(point: Point, deg = 0, origin = { x: 0, y: 0 }): Point {\n const { x, y } = point;\n return {\n x: (x - origin.x) * Math.cos(-deg) + (y - origin.y) * Math.sin(-deg) + origin.x,\n y: (origin.x - x) * Math.sin(-deg) + (y - origin.y) * Math.cos(-deg) + origin.y,\n };\n}\n\n/**\n * @private\n * 转化为顶点坐标数组\n *\n * @param {Object} box\n */\nfunction getRectPoints(box: Box): Point[] {\n const points = [\n { x: box.x, y: box.y },\n { x: box.x + box.width, y: box.y },\n { x: box.x + box.width, y: box.y + box.height },\n { x: box.x, y: box.y + box.height },\n ];\n\n const rotation = box.rotation;\n if (rotation) {\n return [\n rotateAtPoint(points[0], rotation, points[0]),\n rotateAtPoint(points[1], rotation, points[0]),\n rotateAtPoint(points[2], rotation, points[0]),\n rotateAtPoint(points[3], rotation, points[0]),\n ];\n }\n\n return points;\n}\n\n/**\n * @private\n * 2. 获取多边形在投影轴上的投影\n *\n * 向量的点积的其中一个几何含义是:一个向量在平行于另一个向量方向上的投影的数值乘积。\n * 由于投影轴是单位向量(长度为1),投影的长度为 x1 * x2 + y1 * y2\n */\nfunction getProjection(points: Point[] /** 多边形的关键点 */, axis: Vec2): Projection {\n // 目前先处理矩形的场景\n if (points.length > 4) {\n return { min: 0, max: 0 };\n }\n\n const scalars = [];\n points.forEach((point) => {\n scalars.push(dot([point.x, point.y], axis));\n });\n\n return { min: Math.min(...scalars), max: Math.max(...scalars) };\n}\n\nfunction isProjectionOverlap(projection1: Projection, projection2: Projection): boolean {\n return projection1.max > projection2.min && projection1.min < projection2.max;\n}\n\nfunction isValidNumber(d: number) {\n return isNumber(d) && !Number.isNaN(d) && d !== Infinity && d !== -Infinity;\n}\n\nfunction isValidBox(box: Box) {\n return Object.values(box).every(isValidNumber);\n}\n\n/**\n * 快速判断两个无旋转矩形是否遮挡\n */\nexport function isIntersectRect(box1: Box, box2: Box, margin: number = 0): boolean {\n return !(\n box2.x > box1.x + box1.width + margin ||\n box2.x + box2.width < box1.x - margin ||\n box2.y > box1.y + box1.height + margin ||\n box2.y + box2.height < box1.y - margin\n );\n}\n\n/**\n * detect whether two shape is intersected, useful when shape is been rotated\n * 判断两个矩形是否重叠(相交和包含, 是否旋转)\n *\n * - 原理: 分离轴定律\n */\nexport function isIntersect(box1: Box, box2: Box) {\n // 如果两个 box 中有一个是不合法的 box,也就是不会被渲染出来的,那么它们就不相交。\n if (!isValidBox(box1) || !isValidBox(box2)) return false;\n\n // 如果两个矩形没有旋转,使用快速判断\n if (!box1.rotation && !box2.rotation) {\n return isIntersectRect(box1, box2);\n }\n\n // 分别获取 4 个关键点\n const rect1Points = getRectPoints(box1);\n const rect2Points = getRectPoints(box2);\n\n // 获取所有投影轴\n const axes = [...getAxes(rect1Points), ...getAxes(rect2Points)];\n\n for (let i = 0; i < axes.length; i++) {\n const axis = axes[i];\n const projection1 = getProjection(rect1Points, axis);\n const projection2 = getProjection(rect2Points, axis);\n\n // 判断投影轴上的投影是否存在重叠,若检测到存在间隙则立刻退出判断,消除不必要的运算。\n if (!isProjectionOverlap(projection1, projection2)) return false;\n }\n\n return true;\n}\n","import colorUtil from '@antv/color-util';\n\n// 内置的一些特殊设置\nconst preset = {\n '#5B8FF9': true,\n};\n\n// 根据YIQ亮度判断指定颜色取反色是不是白色\n// http://24ways.org/2010/calculating-color-contrast\n// http://www.w3.org/TR/AERT#color-contrast\nexport const isContrastColorWhite = (color: string): boolean => {\n const rgb = colorUtil.toRGB(color).toUpperCase();\n if (preset[rgb]) {\n return preset[rgb];\n }\n\n const [r, g, b] = colorUtil.rgb2arr(rgb);\n const isDark = (r * 299 + g * 587 + b * 114) / 1000 < 128;\n\n return isDark;\n};\n","let ctx: CanvasRenderingContext2D;\n\n/**\n * 获取 canvas context\n */\nexport function getCanvasContext() {\n if (!ctx) {\n ctx = document.createElement('canvas').getContext('2d');\n }\n\n return ctx;\n}\n","import { IElement, IGroup, IShape } from '../../../../dependents';\nimport { BBox } from '../../../../util/bbox';\nimport Geometry from '../../../base';\nimport Element from '../../../element';\nimport { LabelItem } from '../../interface';\nimport { findLabelTextShape } from '../../util';\n\nfunction shouldInShapeSingle(geometry: Geometry, label: IGroup, shape: IElement): boolean {\n const coordinate = geometry.coordinate;\n const textShape = findLabelTextShape(label);\n const textBBox = BBox.fromObject(textShape.getCanvasBBox());\n const shapeBBox = BBox.fromObject(shape.getBBox());\n\n return coordinate.isTransposed ? shapeBBox.height >= textBBox.height : shapeBBox.width >= textBBox.width;\n}\n\nfunction shouldInShape(geometry: Geometry, labels: IGroup[], shapes: IShape[] | IGroup[]): boolean {\n const isStack = !!geometry.getAdjust('stack');\n\n return (\n isStack ||\n labels.every((label: IGroup, index: number) => {\n const shape = shapes[index];\n return shouldInShapeSingle(geometry, label, shape);\n })\n );\n}\n\nfunction moveInShape(geometry: Geometry, label: IGroup, shape: IElement): void {\n const coordinate = geometry.coordinate;\n const shapeBBox = BBox.fromObject(shape.getBBox());\n const textShape = findLabelTextShape(label);\n\n if (coordinate.isTransposed) {\n // 水平方向:条形图系列\n textShape.attr({\n x: shapeBBox.minX + shapeBBox.width / 2,\n textAlign: 'center',\n });\n } else {\n // 垂直方向:柱形图系列\n textShape.attr({\n y: shapeBBox.minY + shapeBBox.height / 2,\n textBaseline: 'middle',\n });\n }\n}\n\n/**\n * 适用于 interval geometry 的数据标签位置自动调整布局方法\n * @param items\n * @param labels\n * @param shapes\n */\nexport function intervalAdjustPosition(items: LabelItem[], labels: IGroup[], shapes: IShape[] | IGroup[]) {\n if (shapes.length === 0) {\n return;\n }\n const element: Element = shapes[0]?.get('element');\n const geometry: Geometry = element?.geometry;\n if (!geometry || geometry.type !== 'interval') {\n return;\n }\n\n const inShape = shouldInShape(geometry, labels, shapes);\n if (inShape) {\n shapes.forEach((shape: IShape | IGroup, index: number) => {\n const label = labels[index];\n moveInShape(geometry, label, shape);\n });\n }\n}\n","import { groupBy, keys, map } from '@antv/util';\nimport { IElement, IGroup, IShape, BBox } from '../../../../dependents';\nimport Geometry from '../../../base';\nimport Element from '../../../element';\nimport { LabelItem } from '../../interface';\nimport { findLabelTextShape } from '../../util';\n\n/**\n * point-adjust-position layout 的配置类型\n */\nexport interface PointAdjustPositionLayoutCfg {\n offset?: number;\n}\n\n/**\n * 对同一组(相同 xField )的 Label 进行排序:第一个、最后一个、其他...\n * @param geometry\n * @param labels\n */\nfunction sortLabels(geometry: Geometry, labels: IGroup[]) {\n const yField = geometry.getXYFields()[1];\n const result: IGroup[] = [];\n const sortedLabels = labels.sort((left, right) => left.get('data')[yField] - left.get('data')[yField]);\n\n if (sortedLabels.length > 0) {\n result.push(sortedLabels.shift());\n }\n if (sortedLabels.length > 0) {\n result.push(sortedLabels.pop());\n }\n result.push(...sortedLabels);\n\n return result;\n}\n\nfunction hasSome(dones: IGroup[], current: IGroup, compare: (left: IGroup, right: IGroup) => boolean): boolean {\n return dones.some((done) => compare(done, current));\n}\n\n/**\n * 计算两个矩形之间的堆叠区域面积\n */\nfunction getOverlapArea(a: BBox, b: BBox, margin = 0) {\n const xOverlap = Math.max(\n 0,\n Math.min(a.x + a.width + margin, b.x + b.width + margin) - Math.max(a.x - margin, b.x - margin)\n );\n const yOverlap = Math.max(\n 0,\n Math.min(a.y + a.height + margin, b.y + b.height + margin) - Math.max(a.y - margin, b.y - margin)\n );\n\n return xOverlap * yOverlap;\n}\n\n/**\n * 判断新添加的 Label 是否和已存在的发生重叠\n * @param dones\n * @param current\n */\nfunction checkShapeOverlap(dones: IGroup[], current: IGroup): boolean {\n return hasSome(dones, current, (left, right) => {\n const leftText = findLabelTextShape(left);\n const rightText = findLabelTextShape(right);\n\n return getOverlapArea(leftText.getCanvasBBox(), rightText.getCanvasBBox(), 2) > 0;\n });\n}\n/**\n * 适用于 point geometry 的数据标签位置自动调整布局方法\n * @param items\n * @param labels\n * @param shapes\n * @param region\n * @param cfg\n */\nexport function pointAdjustPosition(\n items: LabelItem[],\n labels: IGroup[],\n shapes: IShape[] | IGroup[],\n region: BBox,\n cfg: PointAdjustPositionLayoutCfg\n): void {\n if (shapes.length === 0) {\n return;\n }\n\n const element: Element = shapes[0]?.get('element');\n const geometry: Geometry = element?.geometry;\n if (!geometry || geometry.type !== 'point') {\n return;\n }\n const [xField, yField] = geometry.getXYFields();\n const groupedLabels = groupBy(labels, (label) => label.get('data')[xField]);\n const dones: IGroup[] = [];\n const offset = (cfg && cfg.offset) || items[0]?.offset || 12;\n\n map(keys(groupedLabels).reverse(), (xValue) => {\n const sortedCollections = sortLabels(geometry, groupedLabels[xValue]);\n while (sortedCollections.length) {\n const current = sortedCollections.shift();\n const textShape = findLabelTextShape(current);\n if (\n hasSome(\n dones,\n current,\n (left, right) =>\n left.get('data')[xField] === right.get('data')[xField] &&\n left.get('data')[yField] === right.get('data')[yField]\n )\n ) {\n // 重复位置,直接隐藏\n textShape.set('visible', false);\n continue;\n }\n const upFail = checkShapeOverlap(dones, current);\n let downFail: boolean = false;\n if (upFail) {\n textShape.attr('y', textShape.attr('y') + 2 * offset);\n downFail = checkShapeOverlap(dones, current);\n }\n if (downFail) {\n textShape.set('visible', false);\n continue;\n }\n dones.push(current);\n }\n });\n}\n","import { groupBy, keys, map } from '@antv/util';\nimport { IElement, IGroup, IShape, BBox } from '../../../../dependents';\nimport { isIntersect } from '../../../../util/collision-detect';\nimport Geometry from '../../../base';\nimport Element from '../../../element';\nimport { LabelItem } from '../../interface';\nimport { findLabelTextShape } from '../../util';\n\n/**\n * point-adjust-position layout 的配置类型\n */\nexport interface PointAdjustPositionLayoutCfg {\n offset?: number;\n}\n\n/**\n * 对同一组(相同 xField )的 Label 进行排序:第一个、最后一个、其他...\n * @param geometry\n * @param labels\n */\nfunction sortLabels(geometry: Geometry, labels: IGroup[]) {\n const yField = geometry.getXYFields()[1];\n const result: IGroup[] = [];\n const sortedLabels = labels.sort((left, right) => left.get('data')[yField] - left.get('data')[yField]);\n\n if (sortedLabels.length > 0) {\n result.push(sortedLabels.shift());\n }\n if (sortedLabels.length > 0) {\n result.push(sortedLabels.pop());\n }\n result.push(...sortedLabels);\n\n return result;\n}\n\nfunction hasSome(dones: IGroup[], current: IGroup, compare: (left: IGroup, right: IGroup) => boolean): boolean {\n return dones.some((done) => compare(done, current));\n}\n\n/**\n * 计算两个矩形之间的堆叠区域面积\n */\nfunction getOverlapArea(a: BBox, b: BBox, margin = 0) {\n const xOverlap = Math.max(\n 0,\n Math.min(a.x + a.width + margin, b.x + b.width + margin) - Math.max(a.x - margin, b.x - margin)\n );\n const yOverlap = Math.max(\n 0,\n Math.min(a.y + a.height + margin, b.y + b.height + margin) - Math.max(a.y - margin, b.y - margin)\n );\n\n return xOverlap * yOverlap;\n}\n\n/**\n * 判断新添加的 Label 是否和已存在的发生重叠\n * @param dones\n * @param current\n */\nfunction checkShapeOverlap(dones: IGroup[], current: IGroup): boolean {\n return hasSome(dones, current, (left, right) => {\n const leftText = findLabelTextShape(left);\n const rightText = findLabelTextShape(right);\n\n return getOverlapArea(leftText.getCanvasBBox(), rightText.getCanvasBBox(), 2) > 0;\n });\n}\n/**\n * 适用于 point geometry 的数据标签位置自动调整布局方法\n * @param items\n * @param labels\n * @param shapes\n * @param region\n * @param cfg\n */\nexport function pathAdjustPosition(\n items: LabelItem[],\n labels: IGroup[],\n shapes: IShape[] | IGroup[],\n region: BBox,\n cfg: PointAdjustPositionLayoutCfg\n): void {\n if (shapes.length === 0) {\n return;\n }\n\n const element: Element = shapes[0]?.get('element');\n const geometry: Geometry = element?.geometry;\n if (!geometry || ['path', 'line', 'area'].indexOf(geometry.type) < 0) {\n return;\n }\n const [xField, yField] = geometry.getXYFields();\n const groupedLabels = groupBy(labels, (label) => label.get('data')[xField]);\n const dones: IGroup[] = [];\n const offset = (cfg && cfg.offset) || items[0]?.offset || 12;\n\n map(keys(groupedLabels).reverse(), (xValue) => {\n const sortedCollections = sortLabels(geometry, groupedLabels[xValue]);\n while (sortedCollections.length) {\n const current = sortedCollections.shift();\n const textShape = findLabelTextShape(current);\n if (\n hasSome(\n dones,\n current,\n (left, right) =>\n left.get('data')[xField] === right.get('data')[xField] &&\n left.get('data')[yField] === right.get('data')[yField]\n )\n ) {\n // 重复位置,直接隐藏\n textShape.set('visible', false);\n continue;\n }\n const upFail = checkShapeOverlap(dones, current);\n let downFail: boolean = false;\n if (upFail) {\n textShape.attr('y', textShape.attr('y') + 2 * offset);\n downFail = checkShapeOverlap(dones, current);\n }\n if (downFail) {\n textShape.set('visible', false);\n continue;\n }\n dones.push(current);\n }\n });\n}\n","import { isString, memoize, values, toString } from '@antv/util';\nimport * as CSS from 'csstype';\nimport { getCanvasContext } from './context';\n\ntype FontFace = CSS.Properties;\n\ntype Font = Pick & {\n fontSize?: number;\n};\n\n/**\n * 计算文本在画布中的宽度\n */\nexport const measureTextWidth = memoize(\n (text: any, font: Font = {}): number => {\n const { fontSize, fontFamily, fontWeight, fontStyle, fontVariant } = font;\n const ctx = getCanvasContext();\n ctx!.font = [fontStyle, fontVariant, fontWeight, `${fontSize}px`, fontFamily].join(' ');\n return ctx!.measureText(isString(text) ? text : '').width;\n },\n (text: any, font: Font = {}) => [text, ...values(font)].join('')\n);\n\n/**\n * 获取文本的 ... 文本。\n * 算法(减少每次 measureText 的长度,measureText 的性能跟字符串时间相关):\n * 1. 先通过 STEP 逐步计算,找到最后一个小于 maxWidth 的字符串\n * 2. 然后对最后这个字符串二分计算\n * @param text 需要计算的文本, 由于历史原因 除了支持string,还支持空值,number和数组等\n * @param maxWidth\n * @param font\n */\nexport const getEllipsisText = (text: any, maxWidth: number, font?: Font) => {\n const STEP = 16; // 每次 16,调参工程师\n const DOT_WIDTH = measureTextWidth('...', font);\n\n let leftText;\n\n if (!isString(text)) {\n leftText = toString(text);\n } else {\n leftText = text;\n }\n\n let leftWidth = maxWidth;\n\n const r = []; // 最终的分段字符串\n let currentText;\n let currentWidth;\n\n if (measureTextWidth(text, font) <= maxWidth) {\n return text;\n }\n\n // 首先通过 step 计算,找出最大的未超出长度的\n while (true) {\n // 更新字符串\n currentText = leftText.substr(0, STEP);\n\n // 计算宽度\n currentWidth = measureTextWidth(currentText, font);\n\n // 超出剩余宽度,则停止\n if (currentWidth + DOT_WIDTH > leftWidth) {\n if (currentWidth > leftWidth) {\n break;\n }\n }\n\n r.push(currentText);\n\n // 没有超出,则计算剩余宽度\n leftWidth -= currentWidth;\n leftText = leftText.substr(STEP);\n\n // 字符串整体没有超出\n if (!leftText) {\n return r.join('');\n }\n }\n\n // 最下的最后一个 STEP,使用 1 递增(用二分效果更高)\n while (true) {\n // 更新字符串\n currentText = leftText.substr(0, 1);\n\n // 计算宽度\n currentWidth = measureTextWidth(currentText, font);\n\n // 超出剩余宽度,则停止\n if (currentWidth + DOT_WIDTH > leftWidth) {\n break;\n }\n\n r.push(currentText);\n // 没有超出,则计算剩余宽度\n leftWidth -= currentWidth;\n leftText = leftText.substr(1);\n\n if (!leftText) {\n return r.join('');\n }\n }\n\n return `${r.join('')}...`;\n};\n","import { ext } from '@antv/matrix-util';\nimport { Coordinate, IGroup, IShape } from '../../dependents';\nimport { GAnimateCfg, Point } from '../../interface';\n\n/**\n * @ignore\n * 对图形元素进行矩阵变换,同时返回变换前的图形矩阵\n * @param shape 进行矩阵变换的图形\n * @param vector 矩阵变换的中心点\n * @param direct 矩阵变换的类型\n */\nexport function transformShape(shape: IShape | IGroup, vector: [number, number], direct: string): number[] {\n let scaledMatrix;\n\n const [x, y] = vector;\n shape.applyToMatrix([x, y, 1]);\n if (direct === 'x') {\n shape.setMatrix(\n ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 0.01, 1],\n ['t', x, y],\n ])\n );\n scaledMatrix = ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 100, 1],\n ['t', x, y],\n ]);\n } else if (direct === 'y') {\n shape.setMatrix(\n ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 1, 0.01],\n ['t', x, y],\n ])\n );\n scaledMatrix = ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 1, 100],\n ['t', x, y],\n ]);\n } else if (direct === 'xy') {\n shape.setMatrix(\n ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 0.01, 0.01],\n ['t', x, y],\n ])\n );\n scaledMatrix = ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 100, 100],\n ['t', x, y],\n ]);\n }\n return scaledMatrix;\n}\n\n/**\n * 对图形元素进行剪切动画\n * @param element 进行动画的图形元素\n * @param animateCfg 动画配置\n * @param coordinate 当前坐标系\n * @param yMinPoint y 轴的最小值对应的图形坐标点\n * @param type 剪切动画的类型\n */\nexport function doScaleAnimate(\n element: IGroup | IShape,\n animateCfg: GAnimateCfg,\n coordinate: Coordinate,\n yMinPoint: Point,\n type: string\n) {\n const { start, end } = coordinate;\n const width = coordinate.getWidth();\n const height = coordinate.getHeight();\n let x: number;\n let y: number;\n\n if (type === 'y') {\n x = start.x + width / 2;\n y = yMinPoint.y < start.y ? yMinPoint.y : start.y;\n } else if (type === 'x') {\n x = yMinPoint.x > start.x ? yMinPoint.x : start.x;\n y = start.y + height / 2;\n } else if (type === 'xy') {\n if (coordinate.isPolar) {\n x = coordinate.getCenter().x;\n y = coordinate.getCenter().y;\n } else {\n x = (start.x + end.x) / 2;\n y = (start.y + end.y) / 2;\n }\n }\n\n const endMatrix = transformShape(element, [x, y], type);\n element.animate(\n {\n matrix: endMatrix,\n },\n animateCfg\n );\n}\n","import { getArcParams } from '@antv/g-canvas';\nimport { isNumberEqual, isEqual } from '@antv/util';\n\nimport { IShape, PathCommand } from '../../dependents';\nimport { GAnimateCfg } from '../../interface';\nimport { AnimateExtraCfg } from '../interface';\n\nimport { getArcPath, getSectorPath } from '../../util/graphics';\n\nfunction getAngle(startPoint: number[], arcPath: PathCommand) {\n let { startAngle, endAngle } = getArcParams(startPoint, arcPath);\n\n if (!isNumberEqual(startAngle, -Math.PI * 0.5) && startAngle < -Math.PI * 0.5) {\n startAngle += Math.PI * 2;\n }\n if (!isNumberEqual(endAngle, -Math.PI * 0.5) && endAngle < -Math.PI * 0.5) {\n endAngle += Math.PI * 2;\n }\n\n if (arcPath[5] === 0) {\n // 逆时针,需要将 startAngle 和 endAngle 转置,因为 G2 极坐标系为顺时针方向\n [startAngle, endAngle] = [endAngle, startAngle];\n }\n\n if (isNumberEqual(startAngle, Math.PI * 1.5)) {\n startAngle = Math.PI * -0.5;\n }\n\n if (isNumberEqual(endAngle, Math.PI * -0.5)) {\n endAngle = Math.PI * 1.5;\n }\n\n return {\n startAngle,\n endAngle,\n };\n}\n\nfunction getArcStartPoint(path: PathCommand) {\n let startPoint;\n if (path[0] === 'M' || path[0] === 'L') {\n startPoint = [path[1], path[2]];\n } else if (path[0] === 'a' || path[0] === 'A' || path[0] === 'C') {\n startPoint = [path[path.length - 2], path[path.length - 1]];\n }\n\n return startPoint;\n}\n\n/**\n * path 存在以下情况\n * 1. 饼图不为整圆的 path,命令为 M, L, A, L, Z\n * 2. 饼图为整圆的 path,命令为 M, M, A, A, M, Z\n * 3. 环图不为整圆的 path,命令为 M, A, L, A, L, Z\n * 4. 环图为整圆的 path,命令为 M, A, A, M, A, A, M, Z\n * 5. radial-line, 不为整圆时的 path, 命令为 M, A, A, Z\n * 6. radial-line, 为整圆时的 path,命令为 M, A, A, A, A, Z\n * @param path theta 坐标系下圆弧的 path 命令\n */\nfunction getArcInfo(path: PathCommand[]) {\n let startAngle;\n let endAngle;\n\n const arcPaths = path.filter((command) => {\n return command[0] === 'A' || command[0] === 'a';\n });\n\n if (arcPaths.length === 0) {\n return {\n startAngle: 0,\n endAngle: 0,\n radius: 0,\n innerRadius: 0,\n };\n }\n\n const firstArcPathCommand = arcPaths[0];\n const lastArcPathCommand = arcPaths.length > 1 ? arcPaths[1] : arcPaths[0];\n const firstIndex = path.indexOf(firstArcPathCommand);\n const lastIndex = path.indexOf(lastArcPathCommand);\n const firstStartPoint = getArcStartPoint(path[firstIndex - 1]);\n const lastStartPoint = getArcStartPoint(path[lastIndex - 1]);\n\n const { startAngle: firstStartAngle, endAngle: firstEndAngle } = getAngle(firstStartPoint, firstArcPathCommand);\n const { startAngle: lastStartAngle, endAngle: lastEndAngle } = getAngle(lastStartPoint, lastArcPathCommand);\n\n if (isNumberEqual(firstStartAngle, lastStartAngle) && isNumberEqual(firstEndAngle, lastEndAngle)) {\n startAngle = firstStartAngle;\n endAngle = firstEndAngle;\n } else {\n startAngle = Math.min(firstStartAngle, lastStartAngle);\n endAngle = Math.max(firstEndAngle, lastEndAngle);\n }\n\n let radius = firstArcPathCommand[1];\n let innerRadius = arcPaths[arcPaths.length - 1][1];\n if (radius < innerRadius) {\n [radius, innerRadius] = [innerRadius, radius];\n } else if (radius === innerRadius) {\n innerRadius = 0;\n }\n\n return {\n startAngle,\n endAngle,\n radius,\n innerRadius,\n };\n}\n\n/**\n * @ignore\n * 饼图更新动画\n * @param shape 文本图形\n * @param animateCfg\n * @param cfg\n */\nexport function sectorPathUpdate(shape: IShape, animateCfg: GAnimateCfg, cfg: AnimateExtraCfg) {\n const { toAttrs, coordinate } = cfg;\n const path = (toAttrs as { path: PathCommand[] }).path || [];\n const pathCommands = path.map((command) => command[0]);\n\n if (path.length < 1) return;\n\n const { startAngle: curStartAngle, endAngle: curEndAngle, radius, innerRadius } = getArcInfo(path);\n const { startAngle: preStartAngle, endAngle: preEndAngle } = getArcInfo(shape.attr('path'));\n\n const center = coordinate.getCenter();\n const diffStartAngle = curStartAngle - preStartAngle;\n const diffEndAngle = curEndAngle - preEndAngle;\n // 没有 diff 时直接返回最终 attrs,不需要额外动画\n if (diffStartAngle === 0 && diffEndAngle === 0) {\n shape.attr('path', path);\n return;\n }\n\n shape.animate(\n (ratio) => {\n const onFrameStartAngle = preStartAngle + ratio * diffStartAngle;\n const onFrameEndAngle = preEndAngle + ratio * diffEndAngle;\n return {\n ...toAttrs,\n path:\n // hack, 兼容 /examples/bar/basic/demo/radial-line.ts 动画\n isEqual(pathCommands, ['M', 'A', 'A', 'Z'])\n ? getArcPath(center.x, center.y, radius, onFrameStartAngle, onFrameEndAngle)\n : getSectorPath(center.x, center.y, radius, onFrameStartAngle, onFrameEndAngle, innerRadius),\n };\n },\n {\n ...animateCfg,\n callback: () => {\n // 将 path 保持原始态,否则会影响 setState() 的动画\n shape.attr('path', path);\n },\n }\n );\n}\n","import { ext } from '@antv/matrix-util';\nimport { each } from '@antv/util';\nimport { IGroup, IShape } from '../../dependents';\nimport { GAnimateCfg } from '../../interface';\nimport { AnimateExtraCfg } from '../interface';\n\nfunction doShapeZoom(shape: IShape | IGroup, animateCfg: GAnimateCfg, type: 'zoomIn' | 'zoomOut') {\n if (shape.isGroup()) {\n each((shape as IGroup).getChildren(), (child) => {\n doShapeZoom(child, animateCfg, type);\n });\n } else {\n const bbox = shape.getBBox();\n const x = (bbox.minX + bbox.maxX) / 2;\n const y = (bbox.minY + bbox.maxY) / 2;\n shape.applyToMatrix([x, y, 1]);\n\n if (type === 'zoomIn') {\n // 放大\n const matrix = ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 0.01, 0.01],\n ['t', x, y],\n ]);\n shape.setMatrix(matrix);\n shape.animate(\n {\n matrix: ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 100, 100],\n ['t', x, y],\n ]),\n },\n animateCfg\n );\n } else {\n shape.animate(\n {\n matrix: ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 0.01, 0.01],\n ['t', x, y],\n ]),\n },\n {\n ...animateCfg,\n callback: () => {\n shape.remove(true);\n },\n }\n );\n }\n }\n}\n\n/**\n * @ignore\n * 单个 shape 动画\n * shape 以自身中心点逐渐放大的进入动画\n * @param shape 参与动画的图形元素\n * @param animateCfg 动画配置\n * @param cfg 额外信息\n */\nexport function zoomIn(shape: IShape | IGroup, animateCfg: GAnimateCfg, cfg: AnimateExtraCfg) {\n doShapeZoom(shape, animateCfg, 'zoomIn');\n}\n\n/**\n * @ignore\n * 单个 shape 动画\n * 消失动画,shape 以自身为中心点的逐渐缩小\n * @param shape 参与动画的图形元素\n * @param animateCfg 动画配置\n * @param cfg 额外信息\n */\nexport function zoomOut(shape: IShape | IGroup, animateCfg: GAnimateCfg, cfg: AnimateExtraCfg) {\n doShapeZoom(shape, animateCfg, 'zoomOut');\n}\n","import { DIRECTION } from '../constant';\nimport { Point } from '../dependents';\nimport { FacetTitle } from '../interface';\n\n/**\n * @ignore\n * 获取 facet title 的最佳默认配置,防止\n */\nexport function getFactTitleConfig(direction: DIRECTION): FacetTitle {\n if ([DIRECTION.TOP, DIRECTION.BOTTOM].includes(direction)) {\n return {\n offsetX: 0,\n offsetY: direction === DIRECTION.TOP ? -8 : 8,\n style: {\n textAlign: 'center',\n textBaseline: direction === DIRECTION.TOP ? 'bottom' : 'top',\n },\n };\n }\n\n if ([DIRECTION.LEFT, DIRECTION.RIGHT].includes(direction)) {\n return {\n offsetX: direction === DIRECTION.LEFT ? -8 : 8,\n offsetY: 0,\n style: {\n textAlign: direction === DIRECTION.LEFT ? 'right' : 'left',\n textBaseline: 'middle',\n rotate: Math.PI / 2, // 文本阅读习惯从上往下\n },\n };\n }\n\n return {};\n}\n\n/**\n * @ignore\n * 根据角度,获取 ○ 上的点\n * @param center\n * @param r\n * @param angle\n */\nexport function getAnglePoint(center: Point, r: number, angle: number): Point {\n return {\n x: center.x + r * Math.cos(angle),\n y: center.y + r * Math.sin(angle),\n };\n}\n","import { deepMix, each, filter, get } from '@antv/util';\nimport { AxisCfg, CircleCfg, CircleData, Datum } from '../interface';\n\nimport View from '../chart/view';\nimport { DIRECTION } from '../constant';\nimport { getAnglePoint, getFactTitleConfig } from '../util/facet';\nimport { Facet } from './facet';\n\n/**\n * @ignore\n * 镜像分面\n */\nexport default class Circle extends Facet {\n protected getDefaultCfg() {\n return deepMix({}, super.getDefaultCfg(), {\n type: 'circle',\n showTitle: true,\n title: super.getDefaultTitleCfg(),\n });\n }\n\n public render() {\n super.render();\n\n if (this.cfg.showTitle) {\n this.renderTitle();\n }\n }\n\n /**\n * 根据总数和当前索引,计算分面的 region\n * @param count\n * @param index\n */\n protected getRegion(count: number, index: number) {\n const r = 1 / 2; // 画布半径\n // 画布圆心\n const center = { x: 0.5, y: 0.5 };\n // 每隔分面间隔的弧度\n const avgAngle = (Math.PI * 2) / count;\n\n // 当前分面所在的弧度\n const angle = (-1 * Math.PI) / 2 + avgAngle * index;\n // TODO 没看懂\n const facetR = r / (1 + 1 / Math.sin(avgAngle / 2));\n // 分面的中心点\n const middle = getAnglePoint(center, r - facetR, angle);\n const startAngle = (Math.PI * 5) / 4; // 右上角\n const endAngle = (Math.PI * 1) / 4; // 左下角\n\n return {\n start: getAnglePoint(middle, facetR, startAngle),\n end: getAnglePoint(middle, facetR, endAngle),\n };\n }\n\n protected afterEachView(view: View, facet: CircleData) {\n this.processAxis(view, facet);\n }\n\n protected beforeEachView(view: View, facet: CircleData) {}\n\n protected generateFacets(data: Datum[]): CircleData[] {\n const { fields, type } = this.cfg;\n const [field] = fields;\n if (!field) {\n throw new Error('No `fields` specified!');\n }\n\n const values = this.getFieldValues(data, field);\n const count = values.length;\n\n const rst = [];\n values.forEach((value: any, index: number) => {\n const conditions = [{ field, value, values }];\n const facetData = filter(data, this.getFacetDataFilter(conditions));\n\n const facet: CircleData = {\n type,\n data: facetData,\n region: this.getRegion(count, index),\n\n columnValue: value,\n columnField: field,\n columnIndex: index,\n columnValuesLength: count,\n\n rowValue: null,\n rowField: null,\n rowIndex: 0,\n rowValuesLength: 1,\n };\n rst.push(facet);\n });\n return rst;\n }\n\n protected getXAxisOption(x: string, axes: any, option: AxisCfg, facet: CircleData): object {\n // 不做任何处理\n return option;\n }\n\n /**\n * 设置 y 坐标轴的文本、title 是否显示\n * @param y\n * @param axes\n * @param option\n * @param facet\n */\n protected getYAxisOption(y: string, axes: any, option: AxisCfg, facet: CircleData): object {\n // 不做任何处理\n return option;\n }\n\n /**\n * facet title\n */\n private renderTitle() {\n each(this.facets, (facet: CircleData) => {\n const { columnValue, view } = facet;\n const formatter = get(this.cfg.title, 'formatter');\n\n const config = deepMix(\n {\n position: ['50%', '0%'] as [string, string],\n content: formatter ? formatter(columnValue) : columnValue,\n },\n getFactTitleConfig(DIRECTION.TOP),\n this.cfg.title\n );\n\n view.annotation().text(config);\n });\n }\n}\n","import { deepMix, each, filter, get } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { AxisCfg, Datum, ListCfg, ListData } from '../interface';\n\nimport View from '../chart/view';\nimport { getFactTitleConfig } from '../util/facet';\nimport { Facet } from './facet';\n\n/**\n * @ignore\n * 镜像分面\n */\nexport default class List extends Facet {\n protected getDefaultCfg() {\n return deepMix({}, super.getDefaultCfg(), {\n type: 'list',\n cols: null, // 默认显示一列\n showTitle: true,\n title: super.getDefaultTitleCfg(),\n });\n }\n\n public render() {\n super.render();\n\n if (this.cfg.showTitle) {\n this.renderTitle();\n }\n }\n\n protected afterEachView(view: View, facet: ListData) {\n this.processAxis(view, facet);\n }\n\n protected beforeEachView(view: View, facet: ListData) {}\n\n protected generateFacets(data: Datum[]): ListData[] {\n const { fields } = this.cfg;\n let { cols } = this.cfg;\n\n const [columnField] = fields;\n if (!columnField) {\n throw new Error('No `fields` specified!');\n }\n\n const colValues = this.getFieldValues(data, columnField);\n\n const count = colValues.length;\n cols = cols || count; // 每行有几列数据\n\n // 总共有几行\n const rows = this.getPageCount(count, cols);\n const rst = [];\n\n colValues.forEach((val, index) => {\n // 当前 index 在那个行列\n const { row, col } = this.getRowCol(index, cols);\n\n const conditions = [{ field: columnField, value: val, values: colValues }];\n\n const facetData = filter(data, this.getFacetDataFilter(conditions));\n\n const facet: ListData = {\n type: this.cfg.type,\n data: facetData,\n region: this.getRegion(rows, cols, col, row),\n\n columnValue: val,\n rowValue: val,\n columnField,\n rowField: null,\n columnIndex: col,\n rowIndex: row,\n columnValuesLength: cols,\n rowValuesLength: rows,\n\n total: count,\n };\n\n rst.push(facet);\n });\n\n return rst;\n }\n\n /**\n * 设置 x 坐标轴的文本、title 是否显示\n * @param x\n * @param axes\n * @param option\n * @param facet\n */\n protected getXAxisOption(x: string, axes: any, option: AxisCfg, facet: ListData): object {\n // 当是最后一行或者下面没有 view 时文本不显示\n if (\n facet.rowIndex !== facet.rowValuesLength - 1 &&\n facet.columnValuesLength * facet.rowIndex + facet.columnIndex + 1 + facet.columnValuesLength <= facet.total\n ) {\n return {\n ...option,\n label: null,\n title: null,\n };\n }\n return option;\n }\n\n /**\n * 设置 y 坐标轴的文本、title 是否显示\n * @param y\n * @param axes\n * @param option\n * @param facet\n */\n protected getYAxisOption(y: string, axes: any, option: AxisCfg, facet: ListData): object {\n if (facet.columnIndex !== 0) {\n return {\n ...option,\n title: null,\n label: null,\n };\n }\n return option;\n }\n\n /**\n * facet title\n */\n private renderTitle() {\n each(this.facets, (facet: ListData) => {\n const { columnValue, view } = facet;\n const formatter = get(this.cfg.title, 'formatter');\n\n const config = deepMix(\n {\n position: ['50%', '0%'] as [string, string],\n content: formatter ? formatter(columnValue) : columnValue,\n },\n getFactTitleConfig(DIRECTION.TOP),\n this.cfg.title\n );\n\n view.annotation().text(config);\n });\n }\n\n /**\n * 计算分页数\n * @param total\n * @param pageSize\n */\n private getPageCount(total: number, pageSize: number): number {\n return Math.floor((total + pageSize - 1) / pageSize);\n }\n\n /**\n * 索引值在哪一页\n * @param index\n * @param pageSize\n */\n private getRowCol(index: number, pageSize: number) {\n const row = Math.floor(index / pageSize);\n const col = index % pageSize;\n\n return { row, col };\n }\n}\n","import { deepMix, each, get } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { AxisCfg, Datum, MatrixCfg, MatrixData } from '../interface';\n\nimport View from '../chart/view';\nimport { getFactTitleConfig } from '../util/facet';\nimport { Facet } from './facet';\n\n/**\n * @ignore\n * 镜像分面\n */\nexport default class Matrix extends Facet {\n protected getDefaultCfg() {\n return deepMix({}, super.getDefaultCfg(), {\n type: 'matrix',\n showTitle: false,\n columnTitle: {\n ...super.getDefaultTitleCfg(),\n },\n rowTitle: {\n ...super.getDefaultTitleCfg(),\n },\n });\n }\n\n public render() {\n super.render();\n\n if (this.cfg.showTitle) {\n this.renderTitle();\n }\n }\n\n protected afterEachView(view: View, facet: MatrixData) {\n this.processAxis(view, facet);\n }\n\n protected beforeEachView(view: View, facet: MatrixData) {}\n\n protected generateFacets(data: Datum[]): MatrixData[] {\n const { fields, type } = this.cfg;\n\n // 矩阵中行列相等,等于指定的字段个数\n const rowValuesLength = fields.length;\n const columnValuesLength = rowValuesLength;\n\n const rst = [];\n for (let i = 0; i < columnValuesLength; i++) {\n const columnField = fields[i];\n for (let j = 0; j < rowValuesLength; j++) {\n const rowField = fields[j];\n\n const facet: MatrixData = {\n type,\n data,\n region: this.getRegion(rowValuesLength, columnValuesLength, i, j),\n\n columnValue: columnField,\n rowValue: rowField,\n columnField,\n rowField,\n columnIndex: i,\n rowIndex: j,\n columnValuesLength,\n rowValuesLength,\n };\n rst.push(facet);\n }\n }\n return rst;\n }\n\n /**\n * 设置 x 坐标轴的文本、title 是否显示\n * @param x\n * @param axes\n * @param option\n * @param facet\n */\n protected getXAxisOption(x: string, axes: any, option: AxisCfg, facet: MatrixData): object {\n // 最后一行显示\n if (facet.rowIndex !== facet.rowValuesLength - 1) {\n return {\n ...option,\n label: null,\n title: null,\n };\n }\n return option;\n }\n\n /**\n * 设置 y 坐标轴的文本、title 是否显示\n * @param y\n * @param axes\n * @param option\n * @param facet\n */\n protected getYAxisOption(y: string, axes: any, option: AxisCfg, facet: MatrixData): object {\n // 第一列显示\n if (facet.columnIndex !== 0) {\n return {\n ...option,\n title: null,\n label: null,\n };\n }\n return option;\n }\n\n /**\n * facet title\n */\n private renderTitle() {\n each(this.facets, (facet: MatrixData, facetIndex: number) => {\n const { columnIndex, rowIndex, columnValuesLength, rowValuesLength, columnValue, rowValue, view } = facet;\n\n // top\n if (rowIndex === 0) {\n const formatter = get(this.cfg.columnTitle, 'formatter');\n const config = deepMix(\n {\n position: ['50%', '0%'] as [string, string],\n content: formatter ? formatter(columnValue) : columnValue,\n },\n getFactTitleConfig(DIRECTION.TOP),\n this.cfg.columnTitle\n );\n\n view.annotation().text(config);\n }\n // right\n if (columnIndex === columnValuesLength - 1) {\n const formatter = get(this.cfg.rowTitle, 'formatter');\n const config = deepMix(\n {\n position: ['100%', '50%'] as [string, string],\n content: formatter ? formatter(rowValue) : rowValue,\n },\n getFactTitleConfig(DIRECTION.RIGHT),\n this.cfg.rowTitle\n );\n\n view.annotation().text(config);\n }\n });\n }\n}\n","import { deepMix, each, filter, get } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { AxisCfg, Datum, MirrorCfg, MirrorData } from '../interface';\n\nimport View from '../chart/view';\nimport { getFactTitleConfig } from '../util/facet';\nimport { Facet } from './facet';\n\n/**\n * @ignore\n * 镜像分面\n */\nexport default class Mirror extends Facet {\n protected getDefaultCfg() {\n return deepMix({}, super.getDefaultCfg(), {\n type: 'mirror',\n showTitle: true,\n title: super.getDefaultTitleCfg(),\n transpose: false,\n });\n }\n\n public render() {\n super.render();\n\n if (this.cfg.showTitle) {\n this.renderTitle();\n }\n }\n\n protected beforeEachView(view: View, facet: MirrorData) {\n // 做一下坐标系转化\n if (this.cfg.transpose) {\n if (facet.columnIndex % 2 === 0) {\n view.coordinate().transpose().reflect('x');\n } else {\n view.coordinate().transpose();\n }\n } else {\n if (facet.rowIndex % 2 !== 0) {\n view.coordinate().reflect('y');\n }\n }\n }\n\n protected afterEachView(view: View, facet: MirrorData) {\n this.processAxis(view, facet);\n }\n\n protected generateFacets(data: Datum[]): MirrorData[] {\n const [f] = this.cfg.fields;\n\n const rst = [];\n let columnValuesLength = 1;\n let rowValuesLength = 1;\n\n let columnValues: string[] = [''];\n let rowValues: string[] = [''];\n\n let columnField;\n let rowField;\n\n if (this.cfg.transpose) {\n columnField = f;\n columnValues = this.getFieldValues(data, columnField).slice(0, 2); // 镜像最多两个\n columnValuesLength = columnValues.length;\n } else {\n rowField = f;\n rowValues = this.getFieldValues(data, rowField).slice(0, 2); // 镜像最多两个\n rowValuesLength = rowValues.length;\n }\n\n // 获取每个维度对应的数据配置片段\n columnValues.forEach((xVal, xIndex) => {\n rowValues.forEach((yVal, yIndex) => {\n const conditions = [\n { field: columnField, value: xVal, values: columnValues },\n { field: rowField, value: yVal, values: rowValues },\n ];\n\n const facetData = filter(data, this.getFacetDataFilter(conditions));\n\n const facet: MirrorData = {\n type: this.cfg.type,\n data: facetData,\n region: this.getRegion(rowValuesLength, columnValuesLength, xIndex, yIndex),\n\n columnValue: xVal,\n rowValue: yVal,\n columnField,\n rowField,\n columnIndex: xIndex,\n rowIndex: yIndex,\n columnValuesLength,\n rowValuesLength,\n };\n rst.push(facet);\n });\n });\n\n return rst;\n }\n\n /**\n * 设置 x 坐标轴的文本、title 是否显示\n * @param x\n * @param axes\n * @param option\n * @param facet\n */\n protected getXAxisOption(x: string, axes: any, option: AxisCfg, facet: MirrorData): object {\n // 非最后一行\n // 当是最后一行或者下面没有 view 时文本不显示\n if (facet.columnIndex === 1 || facet.rowIndex === 1) {\n return {\n ...option,\n label: null,\n title: null,\n };\n }\n\n return option;\n }\n\n /**\n * 设置 y 坐标轴的文本、title 是否显示\n * @param y\n * @param axes\n * @param option\n * @param facet\n */\n protected getYAxisOption(y: string, axes: any, option: AxisCfg, facet: MirrorData): object {\n // do nothing\n return option;\n }\n\n private renderTitle() {\n each(this.facets, (facet: MirrorData, facetIndex: number) => {\n const { columnValue, rowValue, view } = facet;\n const formatter = get(this.cfg.title, 'formatter');\n\n if (this.cfg.transpose) {\n const config = deepMix(\n {\n position: ['50%', '0%'] as [string, string],\n content: formatter ? formatter(columnValue) : columnValue,\n },\n getFactTitleConfig(DIRECTION.TOP),\n this.cfg.title\n );\n\n view.annotation().text(config);\n } else {\n const config = deepMix(\n {\n position: ['100%', '50%'] as [string, string],\n content: formatter ? formatter(rowValue) : rowValue,\n },\n getFactTitleConfig(DIRECTION.RIGHT),\n this.cfg.title\n );\n\n view.annotation().text(config);\n }\n });\n }\n}\n","import { deepMix, each, filter, get } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { AxisCfg, Datum, RectCfg, RectData } from '../interface';\n\nimport View from '../chart/view';\nimport { getFactTitleConfig } from '../util/facet';\nimport { Facet } from './facet';\n\n/**\n * @ignore\n * 矩阵分面\n */\nexport default class Rect extends Facet {\n protected afterEachView(view: View, facet: RectData) {\n this.processAxis(view, facet);\n }\n\n protected beforeEachView(view: View, facet: RectData) {\n // do nothing\n }\n\n protected getDefaultCfg() {\n return deepMix({}, super.getDefaultCfg(), {\n type: 'rect',\n columnTitle: {\n ...super.getDefaultTitleCfg(),\n },\n rowTitle: {\n ...super.getDefaultTitleCfg(),\n },\n });\n }\n\n public render() {\n super.render();\n\n if (this.cfg.showTitle) {\n this.renderTitle();\n }\n }\n\n /**\n * 生成矩阵分面的分面数据\n * @param data\n */\n protected generateFacets(data: Datum[]): RectData[] {\n const [columnField, rowField] = this.cfg.fields;\n\n const rst = [];\n let columnValuesLength = 1;\n let rowValuesLength = 1;\n\n let columnValues: string[] = [''];\n let rowValues: string[] = [''];\n\n if (columnField) {\n columnValues = this.getFieldValues(data, columnField);\n columnValuesLength = columnValues.length;\n }\n if (rowField) {\n rowValues = this.getFieldValues(data, rowField);\n rowValuesLength = rowValues.length;\n }\n\n // 获取每个维度对应的数据配置片段\n columnValues.forEach((xVal, xIndex) => {\n rowValues.forEach((yVal, yIndex) => {\n const conditions = [\n { field: columnField, value: xVal, values: columnValues },\n { field: rowField, value: yVal, values: rowValues },\n ];\n const facetData = filter(data, this.getFacetDataFilter(conditions));\n\n const facet: RectData = {\n type: this.cfg.type,\n data: facetData,\n region: this.getRegion(rowValuesLength, columnValuesLength, xIndex, yIndex),\n\n columnValue: xVal,\n rowValue: yVal,\n columnField,\n rowField,\n columnIndex: xIndex,\n rowIndex: yIndex,\n columnValuesLength,\n rowValuesLength,\n };\n rst.push(facet);\n });\n });\n\n return rst;\n }\n\n private renderTitle(): void {\n each(this.facets, (facet: RectData, facetIndex: number) => {\n const { columnIndex, rowIndex, columnValuesLength, columnValue, rowValue, view } = facet;\n\n // top\n if (rowIndex === 0) {\n const formatter = get(this.cfg.columnTitle, 'formatter');\n const config = deepMix(\n {\n position: ['50%', '0%'] as [string, string],\n content: formatter ? formatter(columnValue) : columnValue,\n },\n getFactTitleConfig(DIRECTION.TOP),\n this.cfg.columnTitle\n );\n\n view.annotation().text(config);\n }\n // right\n if (columnIndex === columnValuesLength - 1) {\n const formatter = get(this.cfg.rowTitle, 'formatter');\n const config = deepMix(\n {\n position: ['100%', '50%'] as [string, string],\n content: formatter ? formatter(rowValue) : rowValue,\n },\n getFactTitleConfig(DIRECTION.RIGHT),\n this.cfg.rowTitle\n );\n\n view.annotation().text(config);\n }\n });\n }\n\n /**\n * 设置 x 坐标轴的文本、title 是否显示\n * @param x\n * @param axes\n * @param option\n * @param facet\n */\n protected getXAxisOption(x: string, axes: any, option: AxisCfg, facet: RectData): object {\n // 非最后一行\n if (facet.rowIndex !== facet.rowValuesLength - 1) {\n return {\n ...option,\n title: null,\n label: null,\n };\n } else if (facet.columnIndex !== Math.floor((facet.columnValuesLength - 1) / 2)) {\n // 不是中间列\n return {\n ...option,\n title: null,\n };\n }\n return option;\n }\n\n /**\n * 设置 y 坐标轴的文本、title 是否显示\n * @param y\n * @param axes\n * @param option\n * @param facet\n */\n protected getYAxisOption(y: string, axes: any, option: AxisCfg, facet: RectData): object {\n if (facet.columnIndex !== 0) {\n return {\n ...option,\n title: null,\n label: null,\n };\n } else if (facet.rowIndex !== Math.floor((facet.rowValuesLength - 1) / 2)) {\n return {\n ...option,\n title: null,\n };\n }\n return option;\n }\n}\n","/**\n * Create By Bruce Too\n * On 2020-02-10\n */\nimport { assign, deepMix, each, get } from '@antv/util';\nimport View from '../chart/view';\nimport { DIRECTION, VIEW_LIFE_CIRCLE } from '../constant';\nimport { AxisCfg, Condition, Datum, TreeCfg, TreeData } from '../interface';\nimport { getFactTitleConfig } from '../util/facet';\nimport { Facet } from './facet';\n\n/**\n * @ignore\n * Tree Facet\n */\nexport default class Tree extends Facet {\n protected afterEachView(view: View, facet: TreeData) {\n this.processAxis(view, facet);\n }\n\n protected beforeEachView(view: View, facet: TreeData) {}\n\n public init() {\n super.init();\n this.view.on(VIEW_LIFE_CIRCLE.AFTER_RENDER, this.afterChartRender);\n }\n\n protected getDefaultCfg() {\n return deepMix({}, super.getDefaultCfg(), {\n type: 'tree',\n line: {\n style: {\n lineWidth: 1,\n stroke: '#ddd',\n },\n smooth: false,\n },\n showTitle: true,\n title: super.getDefaultTitleCfg(),\n });\n }\n\n protected generateFacets(data: Datum[]): TreeData[] {\n const fields = this.cfg.fields;\n if (!fields.length) {\n throw new Error('Please specify for the fields for rootFacet!');\n }\n const rst = [];\n const rootFacet: TreeData = {\n type: this.cfg.type,\n data,\n region: null,\n rowValuesLength: this.getRows(),\n columnValuesLength: 1,\n rowIndex: 0,\n columnIndex: 0,\n rowField: '',\n columnField: '',\n rowValue: '',\n columnValue: '',\n };\n rst.push(rootFacet);\n rootFacet.children = this.getChildFacets(data, 1, rst);\n this.setRegion(rst);\n return rst;\n }\n\n private setRegion(facets: TreeData[]) {\n this.forceColIndex(facets);\n facets.forEach((facet) => {\n // @ts-ignore 允许调整\n facet.region = this.getRegion(facet.rowValuesLength, facet.columnValuesLength, facet.columnIndex, facet.rowIndex);\n });\n }\n\n protected getRegion(rows: number, cols: number, xIndex: number, yIndex: number) {\n const xWidth = 1 / cols; // x轴方向的每个分面的偏移\n const yWidth = 1 / rows; // y轴方向的每个分面的偏移\n\n const start = {\n x: xWidth * xIndex,\n y: yWidth * yIndex,\n };\n\n const end = {\n x: start.x + xWidth,\n y: start.y + (yWidth * 2) / 3, // 预留1/3的空隙,方便添加连接线\n };\n return {\n start,\n end,\n };\n }\n\n private forceColIndex(facets: TreeData[]) {\n const leafs: TreeData[] = [];\n let index = 0;\n facets.forEach((facet) => {\n if (this.isLeaf(facet)) {\n leafs.push(facet);\n // @ts-ignore 允许调整\n facet.columnIndex = index;\n index++;\n }\n });\n\n leafs.forEach((facet) => {\n // @ts-ignore\n facet.columnValuesLength = leafs.length;\n });\n const maxLevel = this.cfg.fields.length;\n for (let i = maxLevel - 1; i >= 0; i--) {\n const levelFacets = this.getFacetsByLevel(facets, i);\n // var yIndex = maxLevel - i;\n for (const facet of levelFacets) {\n if (!this.isLeaf(facet)) {\n facet.originColIndex = facet.columnIndex;\n // @ts-ignore\n facet.columnIndex = this.getRegionIndex(facet.children);\n // @ts-ignore\n facet.columnValuesLength = leafs.length;\n }\n }\n }\n }\n\n // get facet use level\n private getFacetsByLevel(facets: TreeData[], level: number) {\n const rst: TreeData[] = [];\n facets.forEach((facet) => {\n if (facet.rowIndex === level) {\n rst.push(facet);\n }\n });\n return rst;\n }\n\n // if the facet has children , make it's column index in the middle of it's children\n private getRegionIndex(children: TreeData[]) {\n const first = children[0];\n const last = children[children.length - 1];\n return (last.columnIndex - first.columnIndex) / 2 + first.columnIndex;\n }\n\n // is a leaf without children\n private isLeaf(facet: TreeData) {\n return !facet.children || !facet.children.length;\n }\n\n private getRows() {\n return this.cfg.fields.length + 1;\n }\n\n // get child\n private getChildFacets(data: Datum[], level: number, arr: TreeData[]) {\n // [ 'grade', 'class' ]\n const fields = this.cfg.fields;\n const length = fields.length;\n if (length < level) {\n return;\n }\n const rst = [];\n // get fist level except root node\n const field = fields[level - 1];\n // get field value\n const values = this.getFieldValues(data, field);\n values.forEach((value, index) => {\n const conditions = [{ field, value, values } as Condition];\n const subData = data.filter(this.getFacetDataFilter(conditions));\n if (subData.length) {\n const facet: TreeData = {\n type: this.cfg.type,\n data: subData,\n region: null,\n columnValue: value,\n rowValue: '',\n columnField: field,\n rowField: '',\n columnIndex: index,\n rowValuesLength: this.getRows(),\n columnValuesLength: 1,\n rowIndex: level,\n children: this.getChildFacets(subData, level + 1, arr),\n };\n rst.push(facet);\n arr.push(facet);\n }\n });\n return rst;\n }\n\n public render() {\n super.render();\n if (this.cfg.showTitle) {\n this.renderTitle();\n }\n }\n\n private afterChartRender = () => {\n if (this.facets && this.cfg.line) {\n this.container.clear();\n this.drawLines(this.facets);\n }\n };\n\n private renderTitle() {\n each(this.facets, (facet: TreeData) => {\n const { columnValue, view } = facet;\n const formatter = get(this.cfg.title, 'formatter');\n\n const config = deepMix(\n {\n position: ['50%', '0%'] as [string, string],\n content: formatter ? formatter(columnValue) : columnValue,\n },\n getFactTitleConfig(DIRECTION.TOP),\n this.cfg.title\n );\n\n view.annotation().text(config);\n });\n }\n\n private drawLines(facets: TreeData[]) {\n facets.forEach((facet) => {\n if (!this.isLeaf(facet)) {\n const children = facet.children;\n this.addFacetLines(facet, children);\n }\n });\n }\n\n // add lines with it's children\n private addFacetLines(facet: TreeData, children: TreeData[]) {\n const view = facet.view;\n const region = view.coordinateBBox;\n // top, right, bottom, left\n const start = {\n x: region.x + region.width / 2,\n y: region.y + region.height,\n };\n\n children.forEach((subFacet) => {\n const subRegion = subFacet.view.coordinateBBox;\n const end = {\n x: subRegion.bl.x + (subRegion.tr.x - subRegion.bl.x) / 2,\n y: subRegion.tr.y,\n };\n\n const middle1 = {\n x: start.x,\n y: start.y + (end.y - start.y) / 2,\n };\n const middle2 = {\n x: end.x,\n y: middle1.y,\n };\n this.drawLine([start, middle1, middle2, end]);\n });\n }\n\n private getPath(points) {\n const path = [];\n const smooth = this.cfg.line.smooth;\n if (smooth) {\n path.push(['M', points[0].x, points[0].y]);\n path.push(['C', points[1].x, points[1].y, points[2].x, points[2].y, points[3].x, points[3].y]);\n } else {\n points.forEach((point, index) => {\n if (index === 0) {\n path.push(['M', point.x, point.y]);\n } else {\n path.push(['L', point.x, point.y]);\n }\n });\n }\n\n return path;\n }\n\n // draw line width points\n private drawLine(points) {\n const path = this.getPath(points);\n const line = this.cfg.line.style;\n this.container.addShape('path', {\n attrs: assign(\n {\n // @ts-ignore\n path,\n },\n line\n ),\n });\n }\n\n protected getXAxisOption(x: string, axes: any, option: AxisCfg, facet: TreeData): object {\n if (facet.rowIndex !== facet.rowValuesLength - 1) {\n return {\n ...option,\n title: null,\n label: null,\n };\n }\n return option;\n }\n\n protected getYAxisOption(y: string, axes: any, option: AxisCfg, facet: TreeData): object {\n if (facet.originColIndex !== 0 && facet.columnIndex !== 0) {\n return {\n ...option,\n title: null,\n label: null,\n };\n }\n return option;\n }\n}\n","import { reduce, isNumber } from '@antv/util';\n\n/**\n * 获得中位数\n * @param array\n */\nexport function getMedian(array: number[]) {\n const arr = [...array];\n // 先排序\n arr.sort((a: number, b: number) => {\n return a - b;\n });\n\n const len = arr.length;\n\n // median\n // 0\n if (len === 0) {\n return 0;\n }\n\n // 奇数\n if (len % 2 === 1) {\n return arr[(len - 1) / 2];\n }\n\n // 偶数\n return (arr[len / 2] + arr[len / 2 - 1]) / 2;\n}\n\n/**\n * 获得平均值\n * @param array\n */\nexport function getMean(array: number[]) {\n const sum = reduce(\n array,\n (r: number, num: number) => {\n return (r += isNaN(num) || !isNumber(num) ? 0 : num);\n },\n 0\n );\n\n return array.length === 0 ? 0 : sum / array.length;\n}\n","import { getMedian, getMean } from './stat';\nimport { Scale } from '../dependents';\n\n/**\n * parse the value position\n * @param val\n * @param scale\n */\nexport function getNormalizedValue(val: number | string, scale: Scale) {\n if (!scale) {\n return null;\n }\n let scaled: number;\n\n switch (val) {\n case 'start':\n return 0;\n case 'center':\n return 0.5;\n case 'end':\n return 1;\n case 'median': {\n scaled = scale.isCategory ? getMedian(scale.values.map((_, idx: number) => idx)) : getMedian(scale.values);\n break;\n }\n case 'mean': {\n scaled = scale.isCategory ? (scale.values.length - 1) / 2 : getMean(scale.values);\n break;\n }\n case 'min':\n scaled = scale.isCategory ? 0 : scale[val];\n break;\n case 'max':\n scaled = scale.isCategory ? scale.values.length - 1 : scale[val];\n break;\n default:\n scaled = val as number;\n break;\n }\n\n return scale.scale(scaled);\n}\n","import {\n contains,\n deepMix,\n each,\n get,\n isArray,\n isFunction,\n isNil,\n isString,\n keys,\n upperFirst,\n find,\n includes,\n} from '@antv/util';\nimport { Annotation as AnnotationComponent, IElement, IGroup } from '../../dependents';\nimport {\n AnnotationBaseOption as BaseOption,\n AnnotationPosition as Position,\n ArcOption,\n ComponentOption,\n ShapeAnnotationOption,\n Data,\n DataMarkerOption,\n DataRegionOption,\n Datum,\n HtmlAnnotationOption,\n ImageOption,\n LineOption,\n Point,\n RegionFilterOption,\n RegionOption,\n RegionPositionBaseOption,\n TextOption,\n} from '../../interface';\n\nimport { DEFAULT_ANIMATE_CFG } from '../../animate/';\nimport { COMPONENT_TYPE, DIRECTION, GEOMETRY_LIFE_CIRCLE, LAYER, VIEW_LIFE_CIRCLE } from '../../constant';\n\nimport Geometry from '../../geometry/base';\nimport Element from '../../geometry/element';\nimport { getAngleByPoint, getDistanceToCenter } from '../../util/coordinate';\nimport { omit } from '../../util/helper';\nimport { getNormalizedValue } from '../../util/annotation';\nimport View from '../view';\nimport { Controller } from './base';\nimport { Scale } from '@antv/attr';\n\n/** 需要在图形绘制完成后才渲染的辅助组件类型列表 */\nconst ANNOTATIONS_AFTER_RENDER = ['regionFilter', 'shape'];\n\n/**\n * Annotation controller, 主要作用:\n * 1. 创建 Annotation: line、text、arc ...\n * 2. 生命周期: init、layout、render、clear、destroy\n */\nexport default class Annotation extends Controller {\n private foregroundContainer: IGroup;\n private backgroundContainer: IGroup;\n\n /* 组件更新的 cache,组件配置 object : 组件 */\n private cache = new Map();\n\n constructor(view: View) {\n super(view);\n\n this.foregroundContainer = this.view.getLayer(LAYER.FORE).addGroup();\n this.backgroundContainer = this.view.getLayer(LAYER.BG).addGroup();\n\n this.option = [];\n }\n\n public get name(): string {\n return 'annotation';\n }\n\n public init() { }\n\n /**\n * 因为 annotation 需要依赖坐标系信息,所以 render 阶段为空方法,实际的创建逻辑都在 layout 中\n */\n public layout() {\n this.update();\n }\n\n // 因为 Annotation 不参与布局,但是渲染的位置依赖于坐标系,所以可以将绘制阶段延迟到 layout() 进行\n public render() { }\n\n /**\n * 更新\n */\n public update() {\n // 1. 先处理需要在图形渲染之后的辅助组件 需要在 Geometry 完成之后,拿到图形信息\n this.onAfterRender(() => {\n const updated = new Map();\n // 先看是否有 regionFilter/shape 要更新\n each(this.option, (option: BaseOption) => {\n if (includes(ANNOTATIONS_AFTER_RENDER, option.type)) {\n const co = this.updateOrCreate(option);\n // 存储已经处理过的\n if (co) {\n updated.set(this.getCacheKey(option), co);\n }\n }\n });\n\n // 处理完成之后,更新 cache\n // 处理完成之后,销毁删除的\n this.cache = this.syncCache(updated);\n });\n\n // 2. 处理非 regionFilter\n const updateCache = new Map();\n each(this.option, (option: BaseOption) => {\n if (!includes(ANNOTATIONS_AFTER_RENDER, option.type)) {\n const co = this.updateOrCreate(option);\n // 存储已经处理过的\n if (co) {\n updateCache.set(this.getCacheKey(option), co);\n }\n }\n });\n this.cache = this.syncCache(updateCache);\n }\n\n /**\n * 清空\n * @param includeOption 是否清空 option 配置项\n */\n public clear(includeOption = false) {\n super.clear();\n\n this.clearComponents();\n this.foregroundContainer.clear();\n this.backgroundContainer.clear();\n\n // clear all option\n if (includeOption) {\n this.option = [];\n }\n }\n\n public destroy() {\n this.clear(true);\n\n this.foregroundContainer.remove(true);\n this.backgroundContainer.remove(true);\n }\n\n /**\n * 复写基类的方法\n */\n public getComponents(): ComponentOption[] {\n const co = [];\n\n this.cache.forEach((value: ComponentOption) => {\n co.push(value);\n });\n\n return co;\n }\n\n /**\n * 清除当前的组件\n */\n private clearComponents() {\n this.getComponents().forEach((co) => {\n co.component.destroy();\n });\n\n this.cache.clear();\n }\n\n /**\n * region filter 比较特殊的渲染时机\n * @param doWhat\n */\n private onAfterRender(doWhat: () => void) {\n if (this.view.getOptions().animate) {\n this.view.geometries.forEach((g: Geometry) => {\n // 如果 geometry 开启,则监听\n if (g.animateOption) {\n g.once(GEOMETRY_LIFE_CIRCLE.AFTER_DRAW_ANIMATE, () => {\n doWhat();\n });\n }\n });\n } else {\n this.view.getRootView().once(VIEW_LIFE_CIRCLE.AFTER_RENDER, () => {\n doWhat();\n });\n }\n }\n\n private createAnnotation(option: BaseOption) {\n const { type } = option;\n\n const Ctor = AnnotationComponent[upperFirst(type)];\n if (Ctor) {\n const theme = this.getAnnotationTheme(type);\n const cfg = this.getAnnotationCfg(type, option, theme);\n const annotation = new Ctor(cfg);\n\n return {\n component: annotation,\n layer: this.isTop(cfg) ? LAYER.FORE : LAYER.BG,\n direction: DIRECTION.NONE,\n type: COMPONENT_TYPE.ANNOTATION,\n extra: option,\n };\n }\n }\n\n // APIs for creating annotation component\n public annotation(option: any) {\n this.option.push(option);\n }\n\n /**\n * 创建 Arc\n * @param option\n * @returns AnnotationController\n */\n public arc(option: ArcOption) {\n this.annotation({\n type: 'arc',\n ...option,\n });\n\n return this;\n }\n\n /**\n * 创建 image\n * @param option\n * @returns AnnotationController\n */\n public image(option: ImageOption) {\n this.annotation({\n type: 'image',\n ...option,\n });\n\n return this;\n }\n\n /**\n * 创建 Line\n * @param option\n * @returns AnnotationController\n */\n public line(option: LineOption) {\n this.annotation({\n type: 'line',\n ...option,\n });\n\n return this;\n }\n\n /**\n * 创建 Region\n * @param option\n * @returns AnnotationController\n */\n public region(option: RegionOption) {\n this.annotation({\n type: 'region',\n ...option,\n });\n\n return this;\n }\n\n /**\n * 创建 Text\n * @param option\n * @returns AnnotationController\n */\n public text(option: TextOption) {\n this.annotation({\n type: 'text',\n ...option,\n });\n\n return this;\n }\n\n /**\n * 创建 DataMarker\n * @param option\n * @returns AnnotationController\n */\n public dataMarker(option: DataMarkerOption) {\n this.annotation({\n type: 'dataMarker',\n ...option,\n });\n\n return this;\n }\n\n /**\n * 创建 DataRegion\n * @param option\n * @returns AnnotationController\n */\n public dataRegion(option: DataRegionOption) {\n this.annotation({\n type: 'dataRegion',\n ...option,\n });\n }\n\n /**\n * 创建 RegionFilter\n * @param option\n * @returns AnnotationController\n */\n public regionFilter(option: RegionFilterOption) {\n this.annotation({\n type: 'regionFilter',\n ...option,\n });\n }\n\n /**\n * 创建 ShapeAnnotation\n * @param option\n */\n public shape(option: ShapeAnnotationOption) {\n this.annotation({\n type: 'shape',\n ...option,\n });\n }\n\n /**\n * 创建 HtmlAnnotation\n * @param option\n */\n public html(option: HtmlAnnotationOption) {\n this.annotation({\n type: 'html',\n ...option,\n });\n }\n // end API\n\n /**\n * parse the point position to [x, y]\n * @param p Position\n * @returns { x, y }\n */\n private parsePosition(\n p:\n | [string | number, string | number]\n | Datum\n | ((xScale: Scale, yScale: Scale) => [string | number, string | number] | number | Datum)\n ): Point {\n const xScale = this.view.getXScale();\n // 转成 object\n const yScales = this.view.getScalesByDim('y');\n\n const position: Position = isFunction(p) ? p.call(null, xScale, yScales) : p;\n\n let x = 0;\n let y = 0;\n\n // 入参是 [24, 24] 这类时\n if (isArray(position)) {\n const [xPos, yPos] = position;\n // 如果数据格式是 ['50%', '50%'] 的格式\n // fix: 原始数据中可能会包含 'xxx5%xxx' 这样的数据,需要判断下 https://github.com/antvis/f2/issues/590\n // @ts-ignore\n if (isString(xPos) && xPos.indexOf('%') !== -1 && !isNaN(xPos.slice(0, -1))) {\n return this.parsePercentPosition(position as [string, string]);\n }\n\n x = getNormalizedValue(xPos, xScale);\n y = getNormalizedValue(yPos, Object.values(yScales)[0]);\n } else if (!isNil(position)) {\n // 入参是 object 结构,数据点\n for (const key of keys(position)) {\n const value = position[key];\n if (key === xScale.field) {\n x = getNormalizedValue(value, xScale);\n }\n if (yScales[key]) {\n y = getNormalizedValue(value, yScales[key]);\n }\n }\n }\n\n if (isNaN(x) || isNaN(y)) {\n return null;\n }\n\n return this.view.getCoordinate().convert({ x, y });\n }\n\n /**\n * parse all the points between start and end\n * @param start\n * @param end\n * @return Point[]\n */\n private getRegionPoints(start: Position | Data, end: Position | Data): Point[] {\n const xScale = this.view.getXScale();\n const yScales = this.view.getScalesByDim('y');\n const yScale = Object.values(yScales)[0];\n const xField = xScale.field;\n const viewData = this.view.getData();\n const startXValue = isArray(start) ? start[0] : start[xField];\n const endXValue = isArray(end) ? end[0] : end[xField];\n const arr = [];\n\n let startIndex;\n each(viewData, (item, idx) => {\n if (item[xField] === startXValue) {\n startIndex = idx;\n }\n if (idx >= startIndex) {\n const point = this.parsePosition([item[xField], item[yScale.field]]);\n if (point) {\n arr.push(point);\n }\n }\n if (item[xField] === endXValue) {\n return false;\n }\n });\n\n return arr;\n }\n\n /**\n * parse percent position\n * @param position\n */\n private parsePercentPosition(position: [string, string]): Point {\n const xPercent = parseFloat(position[0]) / 100;\n const yPercent = parseFloat(position[1]) / 100;\n const coordinate = this.view.getCoordinate();\n const { start, end } = coordinate;\n\n const topLeft = {\n x: Math.min(start.x, end.x),\n y: Math.min(start.y, end.y),\n };\n const x = coordinate.getWidth() * xPercent + topLeft.x;\n const y = coordinate.getHeight() * yPercent + topLeft.y;\n return { x, y };\n }\n\n /**\n * get coordinate bbox\n */\n private getCoordinateBBox() {\n const coordinate = this.view.getCoordinate();\n const { start, end } = coordinate;\n\n const width = coordinate.getWidth();\n const height = coordinate.getHeight();\n const topLeft = {\n x: Math.min(start.x, end.x),\n y: Math.min(start.y, end.y),\n };\n\n return {\n x: topLeft.x,\n y: topLeft.y,\n minX: topLeft.x,\n minY: topLeft.y,\n maxX: topLeft.x + width,\n maxY: topLeft.y + height,\n width,\n height,\n };\n }\n\n /**\n * get annotation component config by different type\n * @param type\n * @param option 用户的配置\n * @param theme\n */\n private getAnnotationCfg(type: string, option: any, theme: object): object | null {\n const coordinate = this.view.getCoordinate();\n const canvas = this.view.getCanvas();\n let o = {};\n\n if (isNil(option)) {\n return null;\n }\n const { start, end, position } = option;;\n const sp = this.parsePosition(start);\n const ep = this.parsePosition(end);\n const textPoint = this.parsePosition(position);\n if (['arc', 'image', 'line', 'region', 'regionFilter'].includes(type) && (!sp || !ep)) {\n return null;\n } else if (['text', 'dataMarker', 'html'].includes(type) && !textPoint) {\n return null;\n }\n\n if (type === 'arc') {\n const { start, end, ...rest } = option as ArcOption;\n const startAngle = getAngleByPoint(coordinate, sp);\n let endAngle = getAngleByPoint(coordinate, ep);\n if (startAngle > endAngle) {\n endAngle = Math.PI * 2 + endAngle;\n }\n\n o = {\n ...rest,\n center: coordinate.getCenter(),\n radius: getDistanceToCenter(coordinate, sp),\n startAngle,\n endAngle,\n };\n } else if (type === 'image') {\n const { start, end, ...rest } = option as ImageOption;\n o = {\n ...rest,\n start: sp,\n end: ep,\n src: option.src,\n };\n } else if (type === 'line') {\n const { start, end, ...rest } = option as LineOption;\n o = {\n ...rest,\n start: sp,\n end: ep,\n text: get(option, 'text', null),\n };\n } else if (type === 'region') {\n const { start, end, ...rest } = option as RegionPositionBaseOption;\n o = {\n ...rest,\n start: sp,\n end: ep,\n };\n } else if (type === 'text') {\n const filteredData = this.view.getData();\n const { position, content, ...rest } = option as TextOption;\n let textContent = content;\n if (isFunction(content)) {\n textContent = content(filteredData);\n }\n o = {\n ...textPoint,\n ...rest,\n content: textContent,\n };\n } else if (type === 'dataMarker') {\n const { position, point, line, text, autoAdjust, direction, ...rest } = option as DataMarkerOption;\n o = {\n ...rest,\n ...textPoint,\n coordinateBBox: this.getCoordinateBBox(),\n point,\n line,\n text,\n autoAdjust,\n direction,\n };\n } else if (type === 'dataRegion') {\n const { start, end, region, text, lineLength, ...rest } = option as DataRegionOption;\n o = {\n ...rest,\n points: this.getRegionPoints(start, end),\n region,\n text,\n lineLength,\n };\n } else if (type === 'regionFilter') {\n const { start, end, apply, color, ...rest } = option as RegionFilterOption;\n const geometries: Geometry[] = this.view.geometries;\n const shapes = [];\n const addShapes = (item?: IElement) => {\n if (!item) {\n return;\n }\n if (item.isGroup()) {\n (item as IGroup).getChildren().forEach((child) => addShapes(child));\n } else {\n shapes.push(item);\n }\n };\n each(geometries, (geom: Geometry) => {\n if (apply) {\n if (contains(apply, geom.type)) {\n each(geom.elements, (elem: Element) => {\n addShapes(elem.shape);\n });\n }\n } else {\n each(geom.elements, (elem: Element) => {\n addShapes(elem.shape);\n });\n }\n });\n o = {\n ...rest,\n color,\n shapes,\n start: sp,\n end: ep,\n };\n } else if (type === 'shape') {\n const { render, ...restOptions } = option as ShapeAnnotationOption;\n const wrappedRender = (container: IGroup) => {\n if (isFunction(option.render)) {\n return render(container, this.view, { parsePosition: this.parsePosition.bind(this) });\n }\n };\n o = {\n ...restOptions,\n render: wrappedRender,\n };\n } else if (type === 'html') {\n const { html, position, ...restOptions } = option as HtmlAnnotationOption;\n const wrappedHtml = (container: HTMLElement) => {\n if (isFunction(html)) {\n return html(container, this.view);\n }\n return html;\n };\n o = {\n ...restOptions,\n ...textPoint,\n // html 组件需要指定 parent\n parent: canvas.get('el').parentNode,\n html: wrappedHtml,\n };\n }\n // 合并主题,用户配置优先级高于默认主题\n const cfg = deepMix({}, theme, {\n ...o,\n top: option.top,\n style: option.style,\n offsetX: option.offsetX,\n offsetY: option.offsetY,\n });\n if (type !== 'html') {\n // html 类型不使用 G container\n cfg.container = this.getComponentContainer(cfg);\n }\n cfg.animate = this.view.getOptions().animate && cfg.animate && get(option, 'animate', cfg.animate); // 如果 view 关闭动画,则不执行\n cfg.animateOption = deepMix({}, DEFAULT_ANIMATE_CFG, cfg.animateOption, option.animateOption);\n\n return cfg;\n }\n\n /**\n * is annotation render on top\n * @param option\n * @return whethe on top\n */\n private isTop(option: any): boolean {\n return get(option, 'top', true);\n }\n\n /**\n * get the container by option.top\n * default is on top\n * @param option\n * @returns the container\n */\n private getComponentContainer(option: any) {\n return this.isTop(option) ? this.foregroundContainer : this.backgroundContainer;\n }\n\n private getAnnotationTheme(type: string) {\n return get(this.view.getTheme(), ['components', 'annotation', type], {});\n }\n\n /**\n * 创建或者更新 annotation\n * @param option\n */\n private updateOrCreate(option: BaseOption) {\n // 拿到缓存的内容\n let co = this.cache.get(this.getCacheKey(option));\n\n // 存在则更新,不存在在创建\n if (co) {\n const { type } = option;\n const theme = this.getAnnotationTheme(type);\n const cfg = this.getAnnotationCfg(type, option, theme);\n\n // 忽略掉一些配置\n if (cfg) {\n omit(cfg, ['container']);\n }\n co.component.update({ ...(cfg || {}), visible: !!cfg });\n // 对于 regionFilter/shape,因为生命周期的原因,需要额外 render\n if (includes(ANNOTATIONS_AFTER_RENDER, option.type)) {\n co.component.render();\n }\n } else {\n // 不存在,创建\n co = this.createAnnotation(option);\n if (co) {\n co.component.init();\n // Note:regionFilter/shape 特殊处理,regionFilter/shape 需要取到 Geometry 中的 Shape,需要在 view render 之后处理\n // 其他组件使用外层的统一 render 逻辑\n if (includes(ANNOTATIONS_AFTER_RENDER, option.type)) {\n co.component.render();\n }\n }\n }\n return co;\n }\n\n /**\n * 更新缓存,以及销毁组件\n * @param updated 更新或者创建的组件\n */\n private syncCache(updated: Map) {\n const newCache = new Map(this.cache); // clone 一份\n\n // 将 update 更新到 cache\n updated.forEach((co: ComponentOption, key: BaseOption) => {\n newCache.set(key, co);\n });\n\n // 另外和 options 进行对比,删除\n newCache.forEach((co: ComponentOption, key: BaseOption) => {\n // option 中已经找不到,那么就是删除的\n if (\n !find(this.option, (option: BaseOption) => {\n return key === this.getCacheKey(option);\n })\n ) {\n co.component.destroy();\n newCache.delete(key);\n }\n });\n\n return newCache;\n }\n\n /**\n * 获得缓存组件的 key\n * @param option\n */\n private getCacheKey(option: BaseOption) {\n // 如果存在 id,则使用 id string,否则直接使用 option 引用作为 key\n return option;\n // 后续扩展 id 用\n // const id = get(option, 'id');\n // return id ? id : option;\n }\n}\n","import { deepMix, get, map } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { Coordinate, Scale, Tick } from '../dependents';\n\n/**\n * @ignore\n * get the grid theme by type, will mix the common cfg of axis\n * @param theme\n * @param direction\n * @returns theme object\n */\nexport function getGridThemeCfg(theme: object, direction: DIRECTION | 'common'): object {\n const axisTheme = deepMix(\n {},\n get(theme, ['components', 'axis', 'common']),\n get(theme, ['components', 'axis', direction])\n );\n return get(axisTheme, ['grid'], {});\n}\n\n/**\n * @ignore\n * get axis grid items\n * @param coordinate\n * @param scale\n * @param dim\n * @return items\n */\nexport function getLineGridItems(coordinate: Coordinate, scale: Scale, dim: string, alignTick?: boolean) {\n const items = [];\n const ticks = scale.getTicks();\n if (coordinate.isPolar) {\n // 补全 ticks\n ticks.push({\n value: 1,\n text: '',\n tickValue: '',\n });\n }\n ticks.reduce((preTick: Tick, currentTick: Tick, currentIndex) => {\n const currentValue = currentTick.value;\n if (alignTick) {\n items.push({\n points: [\n coordinate.convert(dim === 'y' ? { x: 0, y: currentValue } : { x: currentValue, y: 0 }),\n coordinate.convert(dim === 'y' ? { x: 1, y: currentValue } : { x: currentValue, y: 1 }),\n ],\n });\n } else {\n if (currentIndex) {\n const preValue = preTick.value;\n const middleValue = (preValue + currentValue) / 2;\n items.push({\n points: [\n coordinate.convert(dim === 'y' ? { x: 0, y: middleValue } : { x: middleValue, y: 0 }),\n coordinate.convert(dim === 'y' ? { x: 1, y: middleValue } : { x: middleValue, y: 1 }),\n ],\n });\n }\n }\n return currentTick;\n }, ticks[0]);\n return items;\n}\n\n/**\n * @ignore\n * get\n * @param coordinate\n * @param xScale\n * @param yScale\n * @param dim\n * @returns items\n */\nexport function getCircleGridItems(\n coordinate: Coordinate,\n xScale: Scale,\n yScale: Scale,\n alignTick: boolean,\n dim: string\n) {\n const count = xScale.values.length;\n const items = [];\n const ticks = yScale.getTicks();\n\n ticks.reduce((preTick: Tick, currentTick: Tick) => {\n const preValue = preTick ? preTick.value : currentTick.value; // 只有一项数据时取当前值\n const currentValue = currentTick.value;\n const middleValue = (preValue + currentValue) / 2;\n if (dim === 'x') {\n // 如果是 x 轴作为半径轴,那么只需要取圆弧收尾两个即可\n items.push({\n points: [\n coordinate.convert({\n x: alignTick ? currentValue : middleValue,\n y: 0,\n }),\n coordinate.convert({\n x: alignTick ? currentValue : middleValue,\n y: 1,\n }),\n ],\n });\n } else {\n items.push({\n points: map(Array(count + 1), (__: any, idx: number) => {\n return coordinate.convert({\n x: idx / count,\n y: alignTick ? currentValue : middleValue,\n });\n }),\n });\n }\n\n return currentTick;\n }, ticks[0]);\n return items;\n}\n\n/**\n * @ignore\n * show grid or not\n * @param axisTheme\n * @param axisOption\n */\nexport function showGrid(axisTheme: any, axisOption: any): boolean {\n const userGrid = get(axisOption, 'grid');\n if (userGrid === null) {\n return false;\n }\n\n const themeGrid = get(axisTheme, 'grid');\n\n return !(userGrid === undefined && themeGrid === null);\n}\n","import { deepMix, each, get, isUndefined } from '@antv/util';\nimport { DIRECTION, COMPONENT_TYPE, LAYER } from '../../constant';\nimport { CircleAxis, CircleGrid, IGroup, LineAxis, LineGrid, Scale } from '../../dependents';\nimport { AxisCfg, AxisOption, ComponentOption } from '../../interface';\n\nimport { DEFAULT_ANIMATE_CFG } from '../../animate/';\n\nimport {\n getAxisDirection,\n getAxisFactorByRegion,\n getAxisRegion,\n getAxisThemeCfg,\n getAxisTitleOptions,\n getAxisTitleText,\n getCircleAxisCenterRadius,\n isVertical,\n} from '../../util/axis';\nimport { getAxisOption } from '../../util/axis';\nimport { getCircleGridItems, getGridThemeCfg, getLineGridItems, showGrid } from '../../util/grid';\nimport { omit } from '../../util/helper';\nimport View from '../view';\nimport { Controller } from './base';\n\ntype Option = Record | boolean;\n\ntype Cache = Map;\n\n// update 组件的时候,忽略的数据更新\nconst OMIT_CFG = ['container'];\n\n// 坐标轴默认动画配置\nconst AXIS_DEFAULT_ANIMATE_CFG = {\n ...DEFAULT_ANIMATE_CFG,\n appear: null,\n};\n\n/**\n * @ignore\n * G2 Axis controller, will:\n * - create component\n * - axis\n * - grid\n * - life circle\n */\nexport default class Axis extends Controller