{"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/util/parse.ts","webpack://G2Plot/../../src/util/arc-params.ts","webpack://G2Plot/../../src/util/arrow.ts","webpack://G2Plot/../../src/util/draw.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/util/path.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/util/hit.ts","webpack://G2Plot/../src/canvas.ts","webpack://G2Plot/../../src/util/svg.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/../../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/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/geometry/label/util/createWorker.ts","webpack://G2Plot/../../../../../src/geometry/label/layout/worker/hide-overlap.ts","webpack://G2Plot/../../../../src/geometry/label/layout/hide-overlap.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/interaction/action/component/axis/axis-description.ts","webpack://G2Plot/../../../../../src/geometry/label/layout/pie/distribute.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/event/graph-event.ts","webpack://G2Plot/../../src/abstract/base.ts","webpack://G2Plot/../../src/util/matrix.ts","webpack://G2Plot/../../src/abstract/element.ts","webpack://G2Plot/../../src/abstract/container.ts","webpack://G2Plot/./node_modules/d3-timer/src/timer.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/./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/../../src/animate/register.ts","webpack://G2Plot/../../src/animate/timeline.ts","webpack://G2Plot/../../src/event/event-contoller.ts","webpack://G2Plot/../../src/abstract/canvas.ts","webpack://G2Plot/../../src/abstract/group.ts","webpack://G2Plot/../../src/abstract/shape.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/util/offscreen.ts","webpack://G2Plot/../../src/bbox/text.ts","webpack://G2Plot/../../src/bbox/path.ts","webpack://G2Plot/../../src/bbox/index.ts","webpack://G2Plot/../../src/bbox/polygon.ts","webpack://G2Plot/../../src/bbox/line.ts","webpack://G2Plot/../../src/bbox/ellipse.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/tooltip/css-const.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/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-number.ts","webpack://G2Plot/../../src/util/extended.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/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/funnel/constant.ts","webpack://G2Plot/./src/plots/tiny-line/utils.ts","webpack://G2Plot/../../src/abstract/component.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/utils/hierarchy/util.ts","webpack://G2Plot/./src/plots/venn/constant.ts","webpack://G2Plot/./src/utils/data.ts","webpack://G2Plot/./src/utils/view.ts","webpack://G2Plot/./src/core/locale.ts","webpack://G2Plot/./src/plots/funnel/geometries/common.ts","webpack://G2Plot/./src/plots/gauge/constants.ts","webpack://G2Plot/./src/plots/tiny-area/adaptor.ts","webpack://G2Plot/./src/interactions/actions/drill-down.ts","webpack://G2Plot/./node_modules/gl-matrix/esm/vec3.js","webpack://G2Plot/../../src/util/event.ts","webpack://G2Plot/./node_modules/detect-browser/es/index.js","webpack://G2Plot/./src/utils/pick.ts","webpack://G2Plot/./src/utils/number.ts","webpack://G2Plot/./src/utils/pattern/util.ts","webpack://G2Plot/./src/plots/line/adaptor.ts","webpack://G2Plot/./src/plots/funnel/geometries/basic.ts","webpack://G2Plot/./src/plots/progress/adaptor.ts","webpack://G2Plot/./src/plots/progress/utils.ts","webpack://G2Plot/./src/plots/stock/constant.ts","webpack://G2Plot/./src/plots/box/constant.ts","webpack://G2Plot/./src/interactions/drill-down.ts","webpack://G2Plot/./src/plots/dual-axes/types.ts","webpack://G2Plot/./src/plots/dual-axes/util/option.ts","webpack://G2Plot/./src/plots/sankey/constant.ts","webpack://G2Plot/./src/plots/sunburst/constant.ts","webpack://G2Plot/./src/plots/venn/interactions/util.ts","webpack://G2Plot/./src/plots/waterfall/constant.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/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/ancestors.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/./src/utils/invariant.ts","webpack://G2Plot/./src/utils/deep-assign.ts","webpack://G2Plot/./src/utils/kebab-case.ts","webpack://G2Plot/./src/utils/statistic.ts","webpack://G2Plot/./src/utils/pattern/index.ts","webpack://G2Plot/./src/core/global.ts","webpack://G2Plot/./src/adaptor/geometries/point.ts","webpack://G2Plot/./src/adaptor/geometries/polygon.ts","webpack://G2Plot/./node_modules/size-sensor/lib/debounce.js","webpack://G2Plot/./node_modules/size-sensor/lib/constant.js","webpack://G2Plot/./src/plots/mix/index.ts","webpack://G2Plot/./src/plots/mix/utils.ts","webpack://G2Plot/./src/plots/area/index.ts","webpack://G2Plot/./src/plots/area/adaptor.ts","webpack://G2Plot/./src/plots/bar/index.ts","webpack://G2Plot/./src/plots/bar/adaptor.ts","webpack://G2Plot/./src/adaptor/brush.ts","webpack://G2Plot/./src/interactions/brush.ts","webpack://G2Plot/./src/utils/conversion.ts","webpack://G2Plot/./src/plots/column/index.ts","webpack://G2Plot/./src/plots/funnel/index.ts","webpack://G2Plot/./src/plots/funnel/adaptor.ts","webpack://G2Plot/./src/plots/funnel/geometries/compare.ts","webpack://G2Plot/./src/plots/funnel/interactions/index.ts","webpack://G2Plot/./src/types/index.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/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/line/index.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/interactions/index.ts","webpack://G2Plot/./src/utils/matrix.ts","webpack://G2Plot/./src/plots/pie/utils.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/scatter/index.ts","webpack://G2Plot/./src/plots/scatter/adaptor.ts","webpack://G2Plot/./src/interactions/drag-move.ts","webpack://G2Plot/./src/plots/stock/index.ts","webpack://G2Plot/./src/plots/stock/adaptor.ts","webpack://G2Plot/./src/plots/stock/utils.ts","webpack://G2Plot/./src/plots/tiny-area/index.ts","webpack://G2Plot/./src/plots/tiny-column/index.ts","webpack://G2Plot/./src/plots/tiny-column/adaptor.ts","webpack://G2Plot/./src/plots/tiny-line/index.ts","webpack://G2Plot/./src/plots/tiny-line/adaptor.ts","webpack://G2Plot/./src/plots/bidirectional-bar/constant.ts","webpack://G2Plot/./src/plots/bidirectional-bar/utils.ts","webpack://G2Plot/./src/plots/box/utils.ts","webpack://G2Plot/./src/plots/bullet/utils.ts","webpack://G2Plot/./src/plots/chord/constant.ts","webpack://G2Plot/./src/plots/circle-packing/constant.ts","webpack://G2Plot/./src/plots/dual-axes/constant.ts","webpack://G2Plot/./src/plots/liquid/utils.ts","webpack://G2Plot/./src/plots/liquid/shapes/liquid.ts","webpack://G2Plot/./src/plots/sankey/helper.ts","webpack://G2Plot/./src/plots/sankey/sankey/align.ts","webpack://G2Plot/./src/utils/hierarchy/treemap.ts","webpack://G2Plot/./src/plots/treemap/utils.ts","webpack://G2Plot/./node_modules/fmin/build/fmin.js","webpack://G2Plot/./src/plots/venn/layout/circleintersection.ts","webpack://G2Plot/./src/plots/violin/constant.ts","webpack://G2Plot/./src/plots/violin/utils.ts","webpack://G2Plot/./src/plots/waterfall/utils.ts","webpack://G2Plot/./src/plots/word-cloud/constant.ts","webpack://G2Plot/./src/plots/word-cloud/utils.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/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/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/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/dom.ts","webpack://G2Plot/./src/utils/flow.ts","webpack://G2Plot/./src/utils/geometry.ts","webpack://G2Plot/./src/utils/label.ts","webpack://G2Plot/./src/utils/measure-text.ts","webpack://G2Plot/./src/utils/context.ts","webpack://G2Plot/./src/utils/path.ts","webpack://G2Plot/./src/utils/template.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/locales/en_US.ts","webpack://G2Plot/./src/locales/zh_CN.ts","webpack://G2Plot/./src/adaptor/geometries/area.ts","webpack://G2Plot/./src/adaptor/geometries/edge.ts","webpack://G2Plot/./src/adaptor/geometries/interval.ts","webpack://G2Plot/./src/adaptor/geometries/line.ts","webpack://G2Plot/./src/adaptor/geometries/schema.ts","webpack://G2Plot/./src/adaptor/geometries/violin.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/lab.ts","webpack://G2Plot/./src/plots/mix/adaptor.ts","webpack://G2Plot/./src/plots/area/constants.ts","webpack://G2Plot/./src/interactions/actions/reset-button.ts","webpack://G2Plot/./src/adaptor/connected-area.ts","webpack://G2Plot/./src/adaptor/conversion-tag.ts","webpack://G2Plot/./src/plots/bar/constants.ts","webpack://G2Plot/./src/plots/column/constants.ts","webpack://G2Plot/./src/plots/funnel/geometries/dynamic-height.ts","webpack://G2Plot/./src/plots/funnel/geometries/facet.ts","webpack://G2Plot/./src/plots/funnel/interactions/funnel-conversion-tag.ts","webpack://G2Plot/./src/plots/funnel/types.ts","webpack://G2Plot/./src/plots/gauge/shapes/indicator.ts","webpack://G2Plot/./src/plots/gauge/shapes/meter-gauge.ts","webpack://G2Plot/./src/plots/gauge/types.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/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/ring-progress/constants.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/tiny-area/constants.ts","webpack://G2Plot/./src/plots/tiny-column/constants.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/bidirectional-bar/index.ts","webpack://G2Plot/./src/plots/bidirectional-bar/adaptor.ts","webpack://G2Plot/./src/plots/box/index.ts","webpack://G2Plot/./src/plots/box/adaptor.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/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/plots/dual-axes/index.ts","webpack://G2Plot/./src/plots/dual-axes/adaptor.ts","webpack://G2Plot/./src/plots/dual-axes/util/geometry.ts","webpack://G2Plot/./src/plots/dual-axes/util/legend.ts","webpack://G2Plot/./src/plots/dual-axes/util/render-sider.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/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/liquid/index.ts","webpack://G2Plot/./src/plots/liquid/adaptor.ts","webpack://G2Plot/./src/plots/liquid/constants.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/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/rose/index.ts","webpack://G2Plot/./src/plots/rose/adaptor.ts","webpack://G2Plot/./src/plots/rose/constant.ts","webpack://G2Plot/./src/plots/sankey/index.ts","webpack://G2Plot/./src/plots/sankey/adaptor.ts","webpack://G2Plot/./src/plots/sankey/circle.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/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/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/./src/plots/sunburst/interactions/index.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/venn/index.ts","webpack://G2Plot/./src/plots/venn/adaptor.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/venn/label.ts","webpack://G2Plot/./src/plots/venn/shape.ts","webpack://G2Plot/./src/plots/venn/utils.ts","webpack://G2Plot/./src/utils/color/blend.ts","webpack://G2Plot/./src/plots/venn/layout/diagram.ts","webpack://G2Plot/./src/plots/venn/layout/layout.ts","webpack://G2Plot/./src/plots/venn/types.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/waterfall/index.ts","webpack://G2Plot/./src/plots/waterfall/adaptor.ts","webpack://G2Plot/./src/plots/waterfall/shape.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/plugin/index.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","_i","pullAt","indexes","last","previous","fn","init","remove","str","sortBy","comparer","b","keys_1","isString","prop","sort","uniq","cache","Map","item","has","set","union","sources","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","apply","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","writable","configurable","__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","__classPrivateFieldIn","tslib_1","deepAssign","getContainerSize","flow","invariant","LEVEL","log","kebabCase","transformLabel","isBetween","isRealNumber","getSplinePath","pick","renderGaugeStatistic","renderStatistic","template","addViewAnimation","findViewById","getSiblingViews","getViews","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","descriptionIconStroke","descriptionIconFill","_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","view","incoming","controller","getController","current","getComponents","co","extra","annotation","id","unbindSizeSensor","destroy","off","removeAttribute","adaptor","getSchemaAdaptor","appendPadding","forceFit","unbind","size_sensor_1","triggerResize","event_emitter_1","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","style","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","_a","isTransposed","originalMatrix","Coordinate","initial","dim","isReflect","tag","vector","vec3","transformMat3","inverted","convertPoint","applyMatrix","invertMatrix","invertPoint","ext","isReflectX","isReflectY","s1","s2","Cartesian","convertDim","invertDim","startAngle","endAngle","innerRadius","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","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","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","facets","getDefaultCfg","Facet","createContainer","generateFacets","renderViews","clearFacetViews","facet","createView","beforeEachView","eachView","afterEachView","getLayer","FORE","addGroup","createFacetViews","facetToView","removeView","viewBBox","rows","cols","xIndex","yIndex","parseSpacing","xSpacing","ySpacing","xRatio","yRatio","showTitle","spacing","fields","fill","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","distance","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","stroke","pointBorderColor","lineWidth","pointBorder","fillOpacity","pointFillOpacity","active","pointActiveBorderColor","pointActiveBorder","selected","pointSelectedBorderColor","pointSelectedBorder","inactive","pointInactiveFillOpacity","strokeOpacity","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","line","lineBorderColor","lineBorder","lineBorderOpacity","lineAppendWidth","lineCap","lineJoin","lineActiveBorder","lineSelectedBorder","lineInactiveBorderOpacity","axisStyles","title","axisTitleSpacing","axisTitleTextFillColor","axisTitleTextFontSize","lineHeight","axisTitleTextLineHeight","textBaseline","iconStyle","axisDescriptionIconFillColor","autoEllipsis","axisLabelOffset","axisLabelFillColor","axisLabelFontSize","axisLabelLineHeight","axisLineBorder","axisLineBorderColor","grid","axisGridBorderColor","axisGridBorder","lineDash","axisGridLineDash","alignTick","tickLine","axisTickLineBorder","axisTickLineBorderColor","axisTickLineLength","subTickLine","createAxisStyles","legendStyles","marker","symbol","legendMarkerSpacing","legendCircleMarkerSize","legendMarkerColor","itemName","legendItemNameFillColor","legendItemNameFontSize","legendItemNameLineHeight","legendItemNameFontWeight","textAlign","itemStates","nameStyle","opacity","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","rect","middleAngle","tick","funnel","pyramid","dot","dash","hv","vh","hvh","vhv","polygon","circle","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","image","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","token","paletteSemanticYellow","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","isPointInCoordinate","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","_e","events","geometryOption","createGeometry","interactionOption","viewOption","annotationComponent","annotationOption","eventCallback","rest","geometry_1","registerGeometry","pixelRatio","supportCSSTransform","_f","wrapperElement","createDom","appendChild","Canvas","updateCanvasStyle","bindAutoFit","initDefaultInteractions","Chart","ariaOption","BEFORE_CHANGE_SIZE","AFTER_CHANGE_SIZE","aria","dom","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","itemArr","snapItem","aItem","yDistance","uniqItems","subItem","getContainer","getBoundingClientRect","isPointIn","processOption","processCustomContent","defaultCfg","currentCustomContent","customContent","content","getTooltipMarkersGroup","rootView","attrs_1","markerDefaultCfg","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","useDeferredLabel","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","deferred","renderLabels","requestIdleCallback","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","BEFORE_RENDER_LABEL","getLabelType","GeometryLabelsCtor","labelsMap","labelsRenderer","shapesMap","elementLabels","labelGroup","labelGroupId","labelChildren","entries","AFTER_RENDER_LABEL","getMatrix","setMatrix","rotate","rotateRadian","getRotateMatrix","findLabelTextShape","getLabelBackgroundInfo","labelItem","boxPadding","rotation","checkShapeOverlap","dones","Labels","createOffscreenGroup","items_1","renderLabel","renderLabelLine","renderLabelBackground","adjustLabel","lastShapesMap","origin_1","currentAnimateCfg","currentShape","updateLabel","updateAnimateCfg","fromChild","toChild","getChildByIndex","getCount","deleteShape","shapeAppendCfg","isShape","layouts","all","labelShapes","geometryShapes","labelItems","labelLineCfg","labelContentShape","backgroundShape","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","point1","point2","setLabelPosition","getLabelOffsetPoint","labelId","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","x1","y1","x2","y2","inBox","intersectRect","isSamePoint","regexLG","regexRG","regexPR","regexColorStop","addStop","addColorStop","parseStyle","gradientStr","exec","tanTheta","tan","tanTheta2","createLinearGradient","parseLineGradient","fx","fy","fr","colors","createRadialGradient","parseRadialGradient","patternStr","pattern","img","onload","createPattern","Image","crossOrigin","complete","parsePattern","CanvasPattern","vMag","vRatio","u","vAngle","acos","getArcParams","startPoint","rx","ry","xRotation","arcFlag","sweepFlag","xp","yp","lambda","cxp","cyp","cx","cy","theta","dTheta","_addDefaultArrow","isStart","arrowShape","Path","isArrowShape","rotateAtPoint","_addCustomizedArrow","endArrow","arrowAttrs","startArrow","arrowFill","arrowStroke","arrowLineWidth","restAttrs","getShortenOffset","addStartArrow","addEndArrow","SHAPE_ATTRS_MAP","applyAttrsToContext","setLineDash","globalAlpha","drawChildren","skipDraw","checkRefresh","refreshElements","parent_1","refresh","setChildrenRefresh","checkChildrenRefresh","hasChanged","checkElementRefresh","cacheCanvasBBox","isInView","drawPath","arcParamsCache","currentPoint","startMovePoint","beginPath","command","ArrowUtil","tangent","getStartTangent","getEndTangent","moveTo","lineTo","quadraticCurveTo","bezierCurveTo","arcParams","ellipse","closePath","refreshElement","changeType","_cacheCanvasBBox","getRefreshRegion","region1","region2","cacheBox","validCache","validBBox","Group","save","createPath","restore","_afterDraw","xArr","yArr","viewRange","getViewRange","allowDraw","_applyClip","AbstractGroup","getDefaultAttrs","getHitLineWidth","getBBoxMethod","bboxMethod","halfLineWidth","isClipShape","canvasBBox","getCanvasViewBox","strokeAndFill","afterDrawPath","refX","refY","isInStrokeOrPath","AbstractShape","Circle","absDistance","ellipseDistance","squareX","squareY","Ellipse","halfLineWith","isCanvas","nodeName","ImageShape","_setImage","image_1","_afterLoading","originValue","onAttrChange","swidth","sheight","drawImage","inLine","halfWidth","LineUtil","pointToLine","setArrow","startArrowDistance","endArrowDistance","startArrowShape","endArrowShape","pointAt","Symbols","Marker","_resetParamsCache","_getR","path2Absolute","_getPath","isPointInPath","getOffScreenContext","dcmp","onSegment","isInPolygon","isHit","hasArc","cmd","extractPolygons","polygons","polylines","isPointInStroke","segments","segment","QuadUtil","pointDistance","CubicUtil","inArc","PathUtil","isInPolygons","_setPathArr","path2Segments","getSegments","getTotalLength","extractResutl","totalLength","_calculateCurve","_setTcache","subt","tCache","curve","nextSeg","pathToCurve","segmentT","segmentL","segmentN","tempLength","endPoint","startTangent","endTangent","inPolyline","isClose","Polygon","PolyLine","_resetCache","PolylineUtil","Rect","inRectWithRadius","inRect","Text","_assembleFont","_setText","assembleFont","textArr","subY","spaceingY","_getSpaceingY","getTextHeight","subText","fillText","strokeText","_drawTextArr","_drawText","getRefXY","totalMatrix","getTotalMatrix","multiplyVec2","invertFromMatrix","preTest","isAllowCapture","isClipped","devicePixelRatio","ceil","setDOMSize","getPixelRatio","_clearFrame","clearRect","curShape","isInShape","viewRegion","minXArr","minYArr","maxXArr","maxYArr","getMergedRegion","mergeView","drawFrame","clearAnimationFrame","_startDraw","_getRefreshRegion","clearChanged","_drawRegion","_drawAll","AbstractCanvas","version","SHAPE_TO_TAGS","polyline","SVG_ATTR_MAP","fillStyle","strokeStyle","lineDashOffset","miterLimit","class","preserveAspectRatio","createSVGElement","createElementNS","getParent","sortDom","sorter","childList","toArray","fragment","createDocumentFragment","setTransform","hasAttribute","addClip","parentChildren","clipPathEl","defsEl","targetIndex","node","nodeType","currentIndex","insertBefore","targetNext","children_1","innerHTML","targetAttrs","afterAttrsChange","canFill","canStroke","shadow","_setColor","trim","addGradient","addPattern","blur","addShadow","setShadow","elementFromPoint","isEqualNode","Dom","toDataURL","ImageData","putImageData","addArrow","getDefaultArrow","triangleDown","register","getAll","_assembleMarker","symbolsFactory","_formatPath","newValue","getPointAtLength","Polyline","completed","pathRelatedAttrs","_assembleRect","BASELINE_MAP","middle","alphabetic","hanging","BASELINE_MAP_FOR_FIREFOX","ANCHOR_MAP","_setFont","browser","detect","baseline","textLen_1","arr_1","stops","Gradient","self","ATTR_MAP","shadowOpacity","SHADOW_DIMENSION","Shadow","_parseShadow","config","Arrow","_setDefaultPath","_setMarker","Clip","shapeEl","Pattern","Defs","defaultArrow","arrow","autoDraw","ev","srcElement","tagName","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","grayScaleBlurredCanvas","getGrayScaleBlurredCanvas","valueField","getShadowCanvasCtx","alpha","drawGrayScaleBlurredCircle","colored","getImageData","colorize","imageShape","getImageShape","ticks","shadowCanvas","colorAttr","pixels","palette","ColorUtil","rgb2arr","getRectPoints","yMin","yMax","xMin","xMax","getRectPath","isClosed","firstPoint","minLength","getBackgroundRectPath","p0","isReflectYTransposed_1","bump","opposite","getFunnelPath","isPyramid","swap","backgroundCfg","backgroundPath","p3","_g","getRectWithCornerRadius","coor","getIntervalRectPath","xValues","sourceArr","findMinDistance","normalizedSize","wr","dodgeCount","mergeData","getDodgeCount","normalizedMaxColumnWidth","normalizedMinColumnWidth","Interval","SHAPES","drawPoints","pointPosition","PointShapeFactory","Point","subX","PolygonShapeFactory","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","antiCollision","plotRange","invisible","overlapping","startY","endY","totalHeight","MIN_VALUE","boxes","targets","pos","previousBox","posInCompositeBox","bitmap","xGap","yGap","Greedy","hasGap","adjustLabelPosition","getAxes","deg","getProjection","scalars","isProjectionOverlap","projection1","projection2","isValidBox","intersect","isIntersectRect","rect1Points","rect2Points","url","queue","worker","Worker","onmessage","onmessageerror","MyWorker","onError","postMessage","terminate","code","generateUtils","methods","eventData","JSON","parse","blob","Blob","BlobBuilder","append","getBlob","URL","createObjectURL","createWorker","layoutCode","preset","shouldInShape","textShape","textBBox","fromObject","shouldInShapeSingle","hasSome","compare","rightText","doScaleAnimate","endMatrix","scaledMatrix","transformShape","arcPath","getArcStartPoint","getArcInfo","arcPaths","firstArcPathCommand","lastArcPathCommand","firstIndex","lastIndex","firstStartPoint","lastStartPoint","firstStartAngle","firstEndAngle","lastStartAngle","lastEndAngle","doShapeZoom","getFactTitleConfig","getAnglePoint","getDefaultTitleCfg","renderTitle","avgAngle","facetR","processAxis","getFieldValues","facetData","getFacetDataFilter","getRegion","columnValue","columnField","columnIndex","columnValuesLength","rowValue","rowField","rowIndex","rowValuesLength","List","colValues","getPageCount","getRowCol","col","pageSize","Matrix","columnTitle","rowTitle","facetIndex","Mirror","reflect","columnValues","rowValues","drawLines","Tree","afterChartRender","rootFacet","getRows","getChildFacets","setRegion","forceColIndex","xWidth","yWidth","leafs","isLeaf","levelFacets","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","_h","apply_1","shapes_1","addShapes_1","elem","_j","render_1","restOptions","_k","html_1","html","getComponentContainer","createAnnotation","newCache","getGridThemeCfg","getLineGridItems","tickValue","preTick","currentTick","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","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","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","CircleMask","RectMask","clampPoint","DimRect","normalStart","normalEnd","inPlot","PathMask","resize","SmoothPathMask","getSpline","CursorAction","cursor","setCursor","DataFilter","filterView","unCheckedItems","scale_1","names_1","getValue","min_1","max_1","getFilter","minValue","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","AxisDescription","description","descriptionTooltipStyle","isPointInView","isInPlot","preventDefault","CanvasEngine","SVGEngine","Edge","greedy","fillGap","totalHeight_1","lineHeight_1","plotRange_1","halves_1","maxLabelsCountForOneSide","isRight","rPow2","dyPow2","innerPoint","itemX","itemY","maxTimes","dxdy","maxDelta","nt","times","accessedCache","spiralFill","memoKey","stringify","cb","post","res","e_1","regionMinX","regionMinY","regionMaxX","regionMaxY","finalX","finalY","translateX_1","textBox","DOT_WIDTH","getEllipsisText","labelOffset","separateLabels","totalR","labelsContainerRange","dxPow2","dx_offset","smoothConnector","atan","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","halfHeight","originalPos","pathCommands","curStartAngle","curEndAngle","preStartAngle","preEndAngle","diffStartAngle","diffEndAngle","onFrameStartAngle","onFrameEndAngle","EllipsisTextAction","ElementHighlightByX","ElementHighlightByColor","ElementSelected","ElementLinkByColor","DimMask","DataRangeFilter","ElementSiblingFilter","ViewDrag","ViewMove","ScaleZoom","showEnable","processing","rollback","SPACES","PATH_COMMAND","PATH_VALUES","pathString","paramCounts","catmullRomToBezier","iLen","ellipsePath","pathToAbsolute","pathArray","pa0","dots","mx","my","crz","pa","ii","jj","kk","l2c","q2c","ax","ay","a2c","large_arc_flag","sweep_flag","recursive","xy","f1","f2","_120","rx2","ry2","df","f2old","x2old","y2old","hx","hy","m1","m2","m3","m4","newres","path2","bx","by","X","Y","qx","qy","attrs2","pcoms1","pcoms2","pfirst","pcom","processPath","nx","ny","T","Q","fixArc","pp","pi","fixM","path1","a2","seg2","seglen","seg2len","p2s","parsePathArray","base3","p4","bezlen","x3","y3","x4","y4","z2","Tvalues","Cvalues","ct","xbase","ybase","comb","curveDim","x0","tvalues","bounds","b2ac","sqrtb2ac","t1","t2","mt","jlen","denominator","px","py","px2","py2","isPointInsideBBox","rectPath","r0","vb","bezierBBox","p1x","p1y","c1x","c1y","c2x","c2y","p2x","p2y","findDotsAtSegment","t13","t12","t3","interHelper","bez1","bez2","justCount","bbox1","bbox2","isBBoxIntersect","n1","n2","dots1","dots2","di","di1","dj","dj1","ci","cj","is","intersection","x1m","y1m","x2m","y2m","pj","intr","segment1","segment2","interPathHelper","decasteljau","recurse","middlePoints","splitSegment","leftSegments","splitCurve","fillPath","sourceLen","targetLen","segmentsToFill","filled","getMinDiff","del","modify","fillPathByDiff","diffMatrix","sourceSegment","targetSegment","levenshteinDistance","changes","minPos","_splitPoints","formerEnd","_getSegmentPoints","formatPath","fromPath","toPath","GraphEvent","defaultPrevented","propagationStopped","removeFromArray","isBrowser","isParent","multiplyMatrix","a00","a01","a02","a10","a11","a12","a20","a21","a22","b00","b01","b02","b10","b11","b12","b20","b21","b22","det","CLONE_CFGS","RESERVED_PORPS","getFormatFromAttrs","fromAttrs","getFormatToAttrs","checkExistedAttrs","animations","onFrame","startTime","initAttrs","initAnimate","getDefaultMatrix","setAttr","applyTo","onCanvasChange","currentMatrix","parentMatrix","Cons","getShapeBase","_cloneArrayAttr","cons","cfgName","isPaused","timeline","timer","initTimer","pauseCallback","resumeCallback","formatToAttrs","getTime","pathFormatted","addAnimator","toEnd","pauseTime","_paused","_pauseTime","eventObj","relativeShape","paths","propagationPath","getEvents","subName","emitDelegateEvent","this_1","currentTarget","delegateTarget","translateX","translateY","newMatrix","targetX","targetY","move","ratioX","ratioY","SHAPE_MAP","Container","_applyChildrenMarix","preTotalMatrix","groupClass","tmpCfg","TmpGroupClass","_findShape","preParent","setCanvas","setTimeline","_applyElementMatrix","contain","taskHead","taskTail","frame","clockLast","clockNow","clockSkew","clock","performance","setFrame","clearNow","Timer","_call","_time","_next","time","restart","wake","timerFlush","t0","sleep","nap","poke","clearInterval","setInterval","stop","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","format","rgbn","Rgb","rgba","hsla","NaN","rgbConvert","rgb_formatHex","hex","rgb_formatRgb","Hsl","hslConvert","hsl2rgb","basis","v0","v3","copy","channels","displayable","formatHsl","brighter","darker","gamma","nogamma","exponential","constant","rgbGamma","colorRgb","rgbSpline","spline","isNumberArray","ArrayBuffer","isView","DataView","genericArray","nb","na","setTime","reA","reB","am","bm","bs","bi","one","zero","string","date","numberArray","valueOf","quadIn","quadOut","quadInOut","cubicIn","cubicOut","cubicInOut","polyIn","exponent","polyOut","polyInOut","halfPi","sinIn","sinOut","sinInOut","tpmt","expIn","expOut","expInOut","circleIn","circleOut","circleInOut","b0","bounceIn","bounceOut","bounceInOut","backIn","overshoot","backOut","backInOut","tau","elasticIn","amplitude","period","elasticOut","elasticInOut","EASING_MAP","registerEasing","easeFn","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","button","mousedownShape","mousedownPoint","mousedownTimeStamp","isCanvasEmit","_emitMouseoverEvents","_emitDragoverEvents","timeWindow","_getEventObj","emitDelegation","_clearEvents","isFirefox","initContainer","initDom","initTimeline","eventController","layerX","layerY","clientInfo","touches","changedTouches","removeDom","clearCacheBBox","calculateBBox","calculateCanvasBBox","topRight","bottomLeft","bottomRight","shadowLeft","shadowRight","shadowTop","shadowBottom","vec","inBBox","_isInBBox","isOnlyHitBox","getMethod","mergeBBox","mergeArrowBBox","offScreenCtx","lineCount","getLineSpaceing","getExtraFromSegmentWithAngle","currentAndPre","currentAndNext","preAndNext","currentAngle","xExtra","yExtra","xAngle","yAngle","getBBoxByArray","measureWidth","getTextWidth","segmentsWithAngle","EllipseArcUtil","getPathBox","eventType","attachEvent","detachEvent","TABLE","TABLE_TR","FRAGMENT_REG","CONTAINERS","tbody","thead","tfoot","td","th","$1","getOuterHeight","offsetHeight","bTop","pTop","pBottom","getOuterWidth","offsetWidth","bLeft","pLeft","pRight","bRight","mRight","css","seriesField","removeInteraction","meta","constant_1","annotationOptions","annotationController","COPY_PROPERTIES","COPY_PROPERTIES_EXCLUDES","GroupComponent","isRegister","isUpdating","isInit","clearOffScreenCache","localId","offScreenRender","offScreenGroup","deleteElements","applyOffset","initEvent","removeEvent","getInnerLayoutBBox","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","minNum","maxNum","getBBoxRange","piMod","tangentAngle","nearestPoint","tCallback","segNum","increaseRate","_t","d2","quadraticAt","onet","extrema","derivativeAt","divideQuadratic","xt","yt","controlPoint1","controlPoint2","xExtrema","yExtrema","quadraticLength","iterationCount","quadratics","interpolationAt","divide","cubicAt","discSqrt","extremas","disc","divideCubic","c3","c12","c23","cubicLength","snapLength","cubics","copysign","absv","nearestX","nearestY","relativeX","relativeY","squareA","squareB","ex","ey","rx1","ry1","hypot","xAt","yAt","getPoint","yDim","relativeVector","relativePoint","derivativeXAt","derivativeYAt","analyzePoints","lengthOfSegment","pointAtSegments","startRatio","localRatio","angleAtSegments","distanceAtSegment","minDistance","distance_1","ARRAY_TYPE","Float32Array","RANDOM","random","glMatrix","fromMat4","fromValues","m00","m01","m02","m10","m11","m12","m20","m21","m22","adjoint","determinant","fromMat2d","fromQuat","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","a3","a4","a5","a6","a7","a8","b1","b2","b3","b4","b5","b6","b7","b8","mul","identityMatrix","getMatrixByAngle","getAngleByMatrix","applyRotate","applyTranslate","translateMatrix","NAME_CLASS","CROSSHAIR_X","CROSSHAIR_Y","getMappingField","shapeField","styleField","rawFields","mappingFields","tileMappingField","getMappingFunction","tooltipFields","regexTags","regexDot","catmullRom2Bezier","REGEX_MD","toSymmetry","needProcess","preParams","upCmd","symetricT","symetricS","TAU","mapToEllipse","cosphi","sinphi","centerx","centery","approxUnitArc","ang1","ang2","vectorAngle","ux","uy","vx","vy","arcToBezier","xAxisRotation","largeArcFlag","curves","pxp","pyp","rxsq","rysq","pxpsq","pypsq","radicant","centerxp","centeryp","vx1","vy1","vx2","vy2","getArcCenter","arcToCubic","LAF","SF","quadToCubic","lineToCubic","segmentToCubic","needZCommandIndexes","allPathCommands","pathCommand","zCommandIndexes","ni","pathIntersection","path2Curve","nextParams","lastStartMovePointIndex","cp","preSegment","dx1","dy1","dx2","dy2","getLineIntersect","D0","D1","kross","parseToLines","lines","points1","points2","isPointInPolygon","lines1","lines2","isIntersect","lineIntersectPolygon","charAtLength","charCodeAt","getMaxLabelWidth","texts","maxLen","maxIdx","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","Category","translateIndexMap","buildIndexMap","order","calcPercent","calcValue","scaledValue","domainRange","word","literal","shorten","sLen","newArr","monthUpdate","arrName","i18n","origObj","args_1","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","mask","literals","$0","combinedI18nSettings","dateStr","dateInfo","year","month","day","hour","minute","second","millisecond","isPm","parseInfo","newFormat","specifiedFields","requiredFields","regex","requiredField","matches","dateTZ","parser","validateFields","UTC","timeFormat","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","Time","numberValue","minConfig","maxConfig","timeStamps_1","secondMin_1","minTickInterval","Quantize","minTick","minIndexPercent","Quantile","getClass","registerClass","cls","Identity","calculateCatTicks","tickInterval","showLast","lastValue","e10","e5","e2","D3Linear","domain","_domain","i0","i1","tickIncrement","d3ArrayTicks","power","LN10","snapMultiple","snapType","intervalTicks","maxTick","availableInterval","strictLimit","defaultMin","defaultMax","tickMin","tickMax","prettyNumber","DEFAULT_Q","eps","simplicity","lmin","lmax","lstep","simplicityMax","density","dMin","dMax","lMin","lMax","rt","densityMax","coverage","coverageMax","span","extended","onlyLoose","step_1","best","score","dm","delta","log10","cm","minStart","maxStart","i_1","lStep","pretty","unit","nu","quantileSorted","getYear","createYear","creatMonth","cat","catTicks","minYear","maxYear","yearInterval","monthInterval","mmMoth","dMonths","minMonth","diffMonth","mday","ddays","diffDay","hours","dHours","diffHour","dMinus","diffMinus","minSecond","dSeconds","seconds","d3Linear","registerScale","RGB_REG","arr2rgb","toHex","iEl","x16Value","defaultView","getPropertyValue","colorArray","fixedPercent","calColor","toCSSGradient","gradientColor","cssColor_1","colorStops_1","HtmlComponent","containerTpl","containerClassName","pointerEvents","resetStyles","applyStyles","initCapture","initVisible","defaultStyles","applyChildrenStyles","containerCss","styles","getElementsByClassName","cssName","hasKey","MARGIN_RATIO","DODGE_RATIO","GAP","ADJUST_MAP","registerAdjust","stateStyles","styleName","normalPadding","currentAppendPadding","PADDING","paddings","normalPaddings","finalPadding","patternOption","colorAttribute","seriesValue","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","scaleAndAdd","squaredDistance","squaredLength","negate","inverse","normalize","lerp","transformMat2","transformMat2d","transformMat4","sinC","cosC","mag","cosine","div","sqrDist","sqrLen","stride","defaultOptions","columnStyle","percentData","percent_1","chartData","stackedItem","tooltipOptions","widthRatio","geometries_1","percentYMeta","common_1","isRange","columnTooltip","tooltipFormatter_1","customItems_1","isBar","brush_1","conversion_tag_1","connected_area_1","itemTpl","defaultField","INVALID_FIELD_ERR_MSG","index_1","nodes","ancestors","depth","eachNode","blendMode","EventEmitter","_events","wildcardEvents","doEmit","es","numberData","gtZero","ltZero","sourceField","targetField","weightField","links","nodesMap","nodesIndex","weight","rawData","pick_1","invariant_1","WARN","animationCfg","LocaleMap","locale","localeObj","global_1","maxYFieldValue","getLineCoordinate","lineOption","formatter_1","indicator","pointer","pin","statistic","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","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","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","fillRect","isStagger","unitSize","dpr","lineStyle","lineShape","pointMapping","areaMapping","areaState","areaParams","lineGeometry","formatData","funnelStyle","tooltip_1","base_1","datumIndex","initLineOption","progressStyle","barWidthRatio","clampPercent","defaultContent","plot_1","risingFill","fallingFill","boxStyle","isParentNode","inCenter","drill_down_1","AxisType","DualAxesGeometry","isColumn","types_1","Column","transformAttribute","axisType","Left","Right","hierarchyConfig","sunburstStyle","drilldown","enabled","leaderLine","waterfallStyle","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","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","BRAND","getMessage","argIndex","deep","adapteStyle","styleObject","justifyContent","alignItems","shapeStyleKeys","kebab_case_1","setStatisticContainerStyle","plotType","titleOpt","contentOpt","containerW","liquidShape","customHtml","polarCoord","polarCenter","polarMaxY","containerWidth","dot_1","line_1","square_1","_len","_key","SensorTabIndex","SensorClassName","SizeSensorId","require","Mix","adaptor_1","PLOT_ADAPTORS","adaptor_7","pie","adaptor_8","column","adaptor_3","bar","adaptor_2","gauge","adaptor_5","adaptor_15","adaptor_14","adaptor_13","adaptor_10","progress","adaptor_9","scatter","adaptor_11","histogram","adaptor_6","adaptor_4","stock","adaptor_12","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","histogram_1","funnel_1","stock_1","DEFAULT_OPTIONS_MAP","plot","lineMapping","lineParams","areaGeometry","Bar","switchedFieldOptions","verticalAxis","horizontalAxis","coordinateOptions","barStyle","minBarWidth","maxBarWidth","barBackground","columnBackground","BRUSH_TYPES","brush","buttonConfig","getInteractionCfg","interactionType","brushType","isStartEnable","maskType","reset_button_1","Funnel","compareField","locale_1","defaultOption","conversion_1","dynamicHeight","facet_1","compare_1","dynamic_height_1","basic_1","interactions_1","showFacetTitle","formatterData","defaultFacetLabel","compareConversionTag","viewIndex","FUNNEL_CONVERSION_TAG","funnel_conversion_tag_1","Gauge","indicatorView","rangeView","gaugeStyle","meter","rangeWidth","indicatorData","rangeData","rangeColor","contentOption","transformContent","processRangeData","clampTicks","Histogram","binField","binNumber","binWidth","stackField","getBinKey","originData_copy","_binWidth","_defaultBinNumber","LN2","sturges","bins","bin","binKey","groupKey","groupKeyBinKey","plotData","Pie","contants_1","prevOptions","angleField","prevData","curData","pieStyle","dataum","angleScale","content_1","labelLayoutType","inner","outer","spider","labelLayoutCfg","transformStatisticOptions","titleOpt_1","contentOpt_1","dataValue","metaFormatter","pieAnnotation","startStages_1","stage","radio","statistic_active_1","legend_active_1","ORIGIN_MATRIX","ulMatrix","defaultOffset","Progress","RingProgress","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","Stock","stockStyle","constant_2","baseMeta","open","close","high","low","TinyArea","TinyColumn","TinyLine","hopeData","data1","data2","__axisPosition","newData","q1_1","median_1","q3_1","high_1","low_1","getSeriesFieldKey","measureField","rangeField","ds","rangeValues","flat","rKey","measureValues","mKey","targetValues","tKey","nodeStyle","edgeStyle","nodePaddingRatio","nodeWidthRatio","getWaterWavePositions","waveLength","getWaterWavePath","waterLevel","phase","_phase","waveRight","addWaterWave","waveCount","waveAttrs","wave","matrix_1","builtInShapeByName","cpX","cpY","outline","border","minXPoint","getFillAttrs","outlineAttrs","getLineAttrs","shapePath","waves","clipPath","getNodeWidthRatio","nodeWidth","getNodePaddingRatio","nodePadding","sankeyLayoutInputData","dataType","nodeAlign","nodeSort","nodeDepth","isNodeLink","circle_1","layout_1","isNode","edges","link","targetDepth","sourceLinks","targetLinks","DEFAULT_OPTIONS","ignoreParentValue","getTileMethod","d3Hierarchy","tileMethod","findInteraction","enableInteraction","drillDownInteraction","enableDrillDown","treemap_1","curPath","ancestorNode","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","kde","sampleSize","violinStyle","q1","quantile_1","q3","minMax","quantile","pdfOptions","pdfResults","pdfast_1","violinSize","violinY","resultList","seriesGroup","series","newYField","dIdx","timeInterval","wordStyle","rotationSteps","rotateRatio","getSize","containerSize","padding_1","resolvePadding","getFontSizeMapping","fMax_1","fMin_1","getSingleKeyValues","getRotate","resolveRotate","perSize","numbers","rawOptions","chartPadding","imageMask","wordField","spiral","placementStrategy","words","hasText","word_cloud_1","rej","HTMLImageElement","onerror","ERROR","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","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","titleAttrs","getTitleAttrs","titleShape","drawDescriptionIcon","descriptionShape","startX","x5","y5","x6","y6","x7","y7","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","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","wrapped","pageWidth","subGroup","pageHeight","adjustNavigation","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","DEFAULT_THEME","isMobile","startPos","bindLaterEvent","endPos","updateThumbOffset","newOffset","validateRange","originalValue","minThumbLen","renderTrackShape","renderThumbShape","themeSize","onStartEvent","onTrackClick","thumbShape","onThumbMouseOver","onThumbMouseOut","emitOffsetChange","marginRatio","customOffset","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","setGlobal","Lab","BidirectionalBar","Box","Bullet","Chord","CirclePacking","DualAxes","FUNNEL_CONVERSATION_FIELD","Liquid","Radar","RadialBar","Rose","Sankey","Sunburst","Treemap","Venn","Waterfall","WordCloud","getCanvasPattern","en_US_1","zh_CN_1","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","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","context_1","points2Path","matrix_util_1","drawDot","dotCfg","dots_1","Path2D","lineCfg","drawSquare","strokeRect","squareCfg","squares","squares_1","general","increase","decrease","waterfall","otherAdaptor","stepType","ver","_sensorPool","sensor","getSensor","removeSensor","_id","_sensors","_constant","Sensors","sensorId","newId","createSensor","_object","_resizeObserver","ResizeObserver","_debounce","resizeListener","listener","contentDocument","newSensor","disconnect","observe","Stage","notice","DEV","BETA","STABLE","mix_1","multiView","viewOfG2","multiPlot","plots","buttonStyle","drawText","INTERACTION_MAP","click","getStartStages","disable","connectedArea","getConversionTagOptionsWithDefaults","horizontal","headSize","elemPrev","elemNext","pointPrev","pointNext","totalWidth","renderArrowTag","textWidth","cWidth","cEnd","textAdjusted","renderTextTag","disabled","preItemX","preItemY","ConversionTagAction","rendering","conversionTag_1","STEP","STEP_RATIO","COORD_START_ANGLE","COORD_END_ANGLE","INTERVAL","START_ANGLE","END_ANGLE","marker_active_1","MarkerActiveAction","getView","PieLegendAction","item_1","getActiveElements","getActiveElementLabels","transfrom","StatisticAction","_view","initialAnnotation","getAnnotations","colorField_1","statistic_1","initialStatistic","getInitialAnnotation","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","lx","quadratic","X3","X4","n0","X2X2","polynomial","coefficients","_o","lhs","rhs","coef","gaussianElimination","uncenter","YS","Association","linkField","getAssociationItems","firstViewData","secondViewData","firstView","secondView","aliasMap","metaKey","leftGeometry","rightGeometry","leftLabelCfg","positionMap_1","outliersView","yFieldName","outliersPoint","outliersField","outliersStyle","outliersViewData","syncName","bulletStyle","extData","rangeGeometry","measureGeometry","targetGeometry","chordLayoutInputData","chord_1","nodesData","edgesData","chordData","nodeGeometry","nodeView","edgeGeometry","edgeView","edgeOptions","sourceWeight","targetWeight","chordLayoutOptions","nodeById","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","valueFormatter","adaptorInteraction","pack_1","tempPadding","wSize","hSize","restWidthPadding","restHeightPadding","packLayout","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","FIELD_KEY","adjust_1","legendItemName","attrItems","sliderValue","facetAdaptor","facetType","restFacetCfg","viewOptions","utils_3","plotOptions","sizeRatio","heatmapStyle","checkedSizeRatio","dautm","maxSideLength","sideLength","liquidStyle","areaOptions","radar_tooltip_action_1","RadarTooltipController","cfgTitle","hintItems","title_1","result_1","displayTitle","RadarTooltipAction","getTooltipController","maxAngle","actualData","intervalGeometry","yData","formatRadian","stackedData","valueItem","sectorStyle","edgeState","isLast","helper_1","nodesView","edgesView","nodeState","nodeDraggable","nodeInteractions","edgeInteractions","getNodes","graphMatrix","removedData","visited","DFS","dfsNode","ALIGN_METHOD","justify","getNodeAlignFunction","sankey_1","sankeyLayoutOptions","layoutData","extent","sankeyProcessor","ascendingSourceBreadth","ascendingBreadth","ascendingTargetBreadth","defaultNodes","graph","defaultLinks","computeLinkBreadths","nodes_1","linkSort","align_1","sankey","nodes_2","computeNodeLinks","nodes_3","fixedValue","computeNodeValues","maxDepth","computeNodeDepths","computeNodeHeights","columns","nodes_4","columns_1","computeNodeLayers","columns_2","nodes_6","nodes_5","reorderLinks","initializeNodeBreadths","relaxRightToLeft","relaxLeftToRight","computeNodeBreadths","targetTop","dy_1","reorderNodeLinks","resolveCollisions","column_2","sourceTop","dy_2","subject","resolveCollisionsBottomToTop","resolveCollisionsTopToBottom","dy_3","dy_4","targetLinks_1","sourceLinks_1","nodes_7","node_drag_1","isDragging","SankeyNodeDragAction","getNodeView","isNodeElement","getCurrentDatumIdx","currentElementIdx","prevNodeAnimateCfg","prevEdgeAnimateCfg","getEdgeView","prevDatum","datumGap_1","nextDatum","edgeData","pathFormatter","activeDepth","partition_1","transData","rectStyle","polygon_1","viewZoomInteraction","colorMap","colorPalette","setsField","currSets","sets","filterSets","vennData","colorOptions","map_1","transformColor","customLabelInfo","vennInteraction","MAP_1","active_1","highlight_1","selected_1","VennElementActive","syncElementsPos","toggle","VennElementHighlight","highlight","ElementSelectedAction","ElementSingleSelectedAction","VennElementSelected","VennElementSingleSelected","VennLabel","path_util_1","fillAttrs","colorPaletteLen","colorArr","blend","solution","textCenters","diagram_1","setCircles","legalArr","testArr","blendObject","screen","overlay","darken","lighten","dodge","burn","colorToArr","rgbaArr","color_util_1","c0","blendRgbArr","g0","g1","circleMargin","interior","exterior","circleintersection_1","computeTextCentre","fmin_1","valid","areaStats","circlePath","areas","overlapped","circleids","circleid","getOverlappingCircles","areaids","exclude","overlaps","setid","centre","tokens","wide","initialLayout","bestInitialLayout","loss","lossFunction","ids","pairs","addMissingAreas","setids","positions","setid_1","distanceFromIntersectArea","getDistanceMatrices","distances","constraints","greedyLayout","constrained","constrainedMDSLayout","restarts","matrices","norm","xj","yj","dij","constrainedMDSGradient","setOverlaps","rowid","mostOverlapped","positioned","isPositioned","positionSet","setIndex","extraPoints","bestLoss","bestPoint","localLoss","orientateCircles","orientation","orientationOrder","largestX","largestY","disjointCluster","maxDistance","xRoot","yRoot","disjointClusters","getBoundingBox","xRange","yRange","clusters","returnBounds","addCluster","centreing","xScaling","yScaling","scaling","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","localeTotalLabel","colorMapping","Y_FIELD_META","labelMode","leaderLineCfg","linkPath","catch","cloudFont","cloudFontSize","cloudFontNormal","cloudRotate","cloudPadding","archimedeanSpiral","cloudText","cloudCanvas","cloud","board","dt","cloudCollide","sprite","sw","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"],"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 = 161);\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 (g && (g = 0, op[0] && (_ = 0)), _) 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","export * from './data';\nexport { deepAssign } from './deep-assign';\nexport { getContainerSize } from './dom';\nexport { flow } from './flow';\nexport * from './geometry';\nexport { invariant, LEVEL, log } from './invariant';\nexport { kebabCase } from './kebab-case';\nexport { transformLabel } from './label';\nexport { measureTextWidth } from './measure-text';\nexport { isBetween, isRealNumber } from './number';\nexport * from './padding';\nexport { getSplinePath } from './path';\nexport { pick } from './pick';\nexport { renderGaugeStatistic, renderStatistic } from './statistic';\nexport { template } from './template';\nexport { addViewAnimation, findViewById, getSiblingViews, getViews } from './view';\n",null,null,null,"import EE from '@antv/event-emitter';\nimport { Chart, Element, Event, View } from '@antv/g2';\nimport { each } from '@antv/util';\nimport { bind } from 'size-sensor';\nimport { Annotation, Options, Size, StateCondition, StateName, StateObject } from '../types';\nimport { deepAssign, getAllElementsRecursively, getContainerSize, 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[], view?: View): void {\n view = view ? view : this.chart;\n const incoming = [...annotations];\n const controller = view.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 view.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 BEFORE_RENDER_LABEL = 'beforerenderlabel',\n AFTER_RENDER_LABEL = 'afterrenderlabel',\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';\nimport AxisDescription from './interaction/action/component/axis/axis-description'\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});\nregisterAction('axis-description', AxisDescription)\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:mouseout', 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: ['legend-item-highlight:reset', 'element-highlight:reset', '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: ['legend-item-highlight:reset', 'element-highlight:reset', '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\n// 显示坐标轴标题详情信息\nregisterInteraction('axis-description', {\n start: [{ trigger: 'axis-description:mousemove', action: 'axis-description:show' }],\n end: [{ trigger: 'axis-description:mouseleave', action: 'axis-description: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 // identity scale 直接返回\n // geometry 类型有: edge,heatmap,interval,line,path,point,polygon,schema,voilin等;理论上,interval 下,可以用 linear scale 作为分组字段\n if (scale.type !== 'identity' && GROUP_ATTRS.includes(attrType) && ['interval'].includes(geometryType)) {\n return 'cat';\n }\n return scale.isCategory ? 'cat' : 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 iconStyle: {\n fill: styleSheet.axisDescriptionIconFillColor\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 { paletteQualitative10 = QUALITATIVE_10, paletteQualitative20 = QUALITATIVE_20 } = cfg;\n const { brandColor = paletteQualitative10[0] } = cfg;\n\n const token = {\n /** 图表背景色 */\n backgroundColor: 'transparent',\n /** 主题色 */\n brandColor,\n /** 图表辅助色 */\n subColor: 'rgba(0,0,0,0.05)',\n /** 分类色板 1,在数据量小于等于 10 时使用 */\n paletteQualitative10,\n /** 分类色板 2,在数据量大于 10 时使用 */\n paletteQualitative20,\n /** 语义色 */\n paletteSemanticRed: '#F4664A',\n /** 语义色 */\n paletteSemanticGreen: '#30BF78',\n /** 语义色 */\n paletteSemanticYellow: '#FAAD14',\n /** (单色)顺序色板 */\n paletteSequence: SINGLE_SEQUENCE,\n /** 字体 */\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\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 /** 坐标轴标题详细说明icon颜色 */\n axisDescriptionIconFillColor: WHITE_COLORS[85],\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 return { ...token, ...cfg };\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 // 刷新 tooltip (tooltip crosshairs 依赖 coordinate 位置)\n const tooltipController = this.controllers.find((c) => c.name === 'tooltip');\n tooltipController.update();\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 const components = this.getComponents();\n // 先全部清空,然后 render\n for (let i = 0; i < components.length; i++) {\n const co = components[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', 'axis-description'],\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, 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 theme = this.view.getTheme();\n const markerDefaultCfg = get(theme, ['components', 'tooltip', 'marker'], {});\n\n const attrs = {\n fill: item.color,\n symbol: 'circle',\n shadowColor: item.color,\n ...(isFunction(marker) ? { ...markerDefaultCfg, ...marker(item) } : 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 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 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 = [];\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, GEOMETRY_LIFE_CIRCLE, 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 /** 延迟渲染 Geometry 数据标签. 设置为 true 时,会在浏览器空闲时期被调用, 也可以指定具体 timeout 时间 */\n useDeferredLabel?: boolean | number;\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/**\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 protected useDeferredLabel?: null | number;\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 useDeferredLabel,\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 this.useDeferredLabel = useDeferredLabel ? (typeof useDeferredLabel === 'number' ? useDeferredLabel : Infinity) : null;\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 const deferred = this.useDeferredLabel;\n const callback = (() => this.renderLabels(flatten(this.dataArray) as unknown as MappingDatum[], isUpdate)).bind(this);\n if (typeof deferred === 'number') {\n // Use `requestIdleCallback` to render labels in idle time (like react fiber)\n const timeout = (typeof deferred === 'number' && deferred !== Infinity) ? deferred : 0;\n if (!window.requestIdleCallback) {\n setTimeout(callback, timeout);\n } else {\n const options = timeout && timeout !== Infinity ? { timeout } : undefined;\n window.requestIdleCallback(callback, options);\n }\n } else {\n callback();\n }\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 async renderLabels(mappingArray: MappingDatum[], isUpdate: boolean = false) {\n let geometryLabel = this.geometryLabel;\n\n this.emit(GEOMETRY_LIFE_CIRCLE.BEFORE_RENDER_LABEL);\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 await geometryLabel.render(mappingArray, isUpdate);\n\n // 将 label 同 element 进行关联\n const labelsMap = geometryLabel.labelsRenderer.shapesMap;\n // Store labels for every element.\n const elementLabels = new Map>();\n each(labelsMap, (labelGroup: IGroup, labelGroupId: string) => {\n const labelChildren = labelGroup.getChildren() || [];\n for (let j = 0; j < labelChildren.length; j++) {\n const labelShape = labelChildren[j];\n const element = this.elementsMap[labelShape.get('elementId') || labelGroupId.split(' ')[0]];\n if (element) {\n labelShape.cfg.name = ['element', 'label'];\n labelShape.cfg.element = element;\n const labels = elementLabels.get(element) || new Set();\n labels.add(labelGroup);\n elementLabels.set(element, labels);\n }\n }\n });\n for (const [element, labels] of elementLabels.entries()) {\n element.labelShape = [...labels];\n }\n\n this.emit(GEOMETRY_LIFE_CIRCLE.AFTER_RENDER_LABEL);\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';\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 getLabelBackgroundInfo(\n labelGroup: IGroup,\n labelItem: { rotate?: number;[key: string]: any },\n padding: number | number[] = [0, 0, 0, 0]\n): { x: number; y: number; width: number; height: number; rotation: number } {\n const content = labelGroup && 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 return { x: 0, y: 0, width: 0, height: 0, rotation: 0 };\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 { getLabelBackgroundInfo } 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\n constructor(cfg: LabelsGroupCfg) {\n const { layout, container } = cfg;\n\n this.layout = layout;\n this.container = container;\n }\n /**\n * 渲染文本\n */\n public async render(items: LabelItem[], shapes: Record, isUpdate: boolean = false) {\n const shapesMap = {};\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 shapesMap[item.id] = this.renderLabel(item, offscreenGroup);\n }\n }\n // [todo] Move layout into Worker.\n // step 2: 根据布局,调整 labels\n await this.doLayout(items, shapes, shapesMap);\n\n // step 3.1: 绘制 labelLine\n this.renderLabelLine(items, shapesMap);\n // step 3.2: 绘制 labelBackground\n this.renderLabelBackground(items, shapesMap);\n // step 4: 根据用户设置的偏移量调整 label\n this.adjustLabel(items, shapesMap);\n }\n\n // 进行添加、更新、销毁操作\n const lastShapesMap = 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 shapesMap[id] = currentShape; // 保存引用\n } else {\n // 新生成的 shape\n // If container has been destroyed, no need to render labels.\n if (this.container.destroyed) return;\n this.container.add(shape);\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.shapesMap = shapesMap;\n offscreenGroup.destroy();\n }\n\n /** 清除当前 labels */\n public clear() {\n this.container.clear();\n this.shapesMap = {};\n }\n\n /** 销毁 */\n public destroy() {\n this.container.destroy();\n this.shapesMap = null;\n }\n\n private renderLabel(cfg: LabelItem, container: IGroup): IGroup {\n const { id, elementId, data, mappingData, coordinate, animate, content, capture } = cfg;\n const shapeAppendCfg = {\n id,\n elementId,\n capture,\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 return labelGroup;\n }\n\n // 根据type对label布局\n private async doLayout(items: LabelItem[], shapes: Record, shapesMap: Record) {\n if (this.layout) {\n const layouts = isArray(this.layout) ? this.layout : [this.layout];\n await Promise.all(layouts.map((layout: GeometryLabelLayoutCfg) => {\n const layoutFn = getGeometryLabelLayout(get(layout, 'type', ''));\n if (!layoutFn) return;\n\n const labelShapes = [];\n const geometryShapes = [];\n each(shapesMap, (labelShape, id) => {\n labelShapes.push(labelShape);\n geometryShapes.push(shapes[labelShape.get('elementId')]);\n });\n // [todo] Refactor more layout into Worker.\n return layoutFn(items, labelShapes, geometryShapes, this.region, layout.cfg);\n }));\n }\n }\n\n private renderLabelLine(labelItems: LabelItem[], shapesMap) {\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 = 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[], shapesMap) {\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 = shapesMap[id];\n if (!labelGroup.destroyed) {\n const labelContentShape = labelGroup.getChildren()[0];\n if (labelContentShape) {\n const { rotation, ...box } = getLabelBackgroundInfo(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[], shapesMap) {\n each(items, (item) => {\n if (item) {\n const id = item.id;\n const labelGroup = 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 async render(mappingArray: MappingDatum[], isUpdate: boolean = false) {\n const labelItems = this.getLabelItems(mappingArray);\n const labelsRenderer = this.getLabelsRenderer();\n const shapes = this.getGeometryShapes();\n // 渲染文本\n await 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.2.8';\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 { paletteQualitative10 = QUALITATIVE_10, paletteQualitative20 = QUALITATIVE_20 } = cfg;\n const { brandColor = paletteQualitative10[0] } = cfg;\n\n const token = {\n /** 图表背景色 */\n backgroundColor: '#141414',\n /** 主题色 */\n brandColor,\n /** 图表辅助色 */\n subColor: 'rgba(255,255,255,0.05)',\n /** 分类色板 1,在数据量小于等于 10 时使用 */\n paletteQualitative10,\n /** 分类色板 2,在数据量大于 10 时使用 */\n paletteQualitative20,\n /** 语义色 */\n paletteSemanticRed: '#F4664A',\n /** 语义色 */\n paletteSemanticGreen: '#30BF78',\n /** 语义色 */\n paletteSemanticYellow: '#FAAD14',\n /** (单色)顺序色板 */\n paletteSequence: SINGLE_SEQUENCE,\n /** 字体 */\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\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 /** 坐标轴标题详细说明icon颜色 */\n axisDescriptionIconFillColor: WHITE_COLORS[85],\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 return { ...token, ...cfg };\n};\n\nexport const antvDark = createDarkStyleSheet();\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,"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 fillOpacity: 1,\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 // 同时存在 坐标系是否发生转置 和 y 镜像的时候\n const isReflectYTransposed = (coordinate.isTransposed && coordinate.isReflect('y'));\n const bump = isReflectYTransposed ? 0 : 1;\n const opposite = (r: number) => isReflectYTransposed ? -r : r;\n\n path.push(['M', p0.x, p1.y + opposite(r1)]);\n r1 !== 0 && path.push(['A', r1, r1, 0, 0, bump, p0.x + r1, p1.y]);\n path.push(['L', p1.x - r2, p1.y]);\n r2 !== 0 && path.push(['A', r2, r2, 0, 0, bump, p1.x, p1.y + opposite(r2)]);\n path.push(['L', p1.x, p0.y - opposite(r3)]);\n r3 !== 0 && path.push(['A', r3, r3, 0, 0, bump, p1.x - r3, p0.y]);\n path.push(['L', p0.x + r4, p0.y]);\n r4 !== 0 && path.push(['A', r4, r4, 0, 0, bump, p0.x, p0.y - opposite(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 }\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 (coordinate.isTransposed) {\n [r1, r2, r3, r4] = [r4, r1, r2, r3]\n }\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 name: 'interval-group',\n });\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 fillOpacity: 1,\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 { Point } from '../dependents';\n\ntype Vec2 = [number, number];\n\ntype Item = {\n x: number;\n y: number;\n width: number;\n height: number;\n rotation?: number;\n visible?: boolean;\n};\n/**\n * 定义投影对象\n */\ntype Projection = { min: number; max: number };\n\nfunction dot(a, b) {\n return (a[0] || 0) * (b[0] || 0) + (a[1] || 0) * (b[1] || 0) + (a[2] || 0) * (b[2] || 0);\n}\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: Item): 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 typeof d === 'number' && !Number.isNaN(d) && d !== Infinity && d !== -Infinity;\n}\n\nfunction isValidBox(box: Item) {\n return ['x', 'y', 'width', 'height'].every(attr => isValidNumber(box[attr]))\n}\n\n/**\n * 快速判断两个无旋转矩形是否遮挡\n */\nexport function isIntersectRect(box1: Item, box2: Item, 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 intersect(box1: Item, box2: Item, margin: number = 0) {\n // 如果两个 box 中有一个是不合法的 box,也就是不会被渲染出来的,那么它们就不相交。\n if (!isValidBox(box1) || !isValidBox(box2)) return false;\n\n // 如果两个矩形没有旋转,使用快速判断\n if (!box1.rotation && !box2.rotation) {\n return isIntersectRect(box1, box2, margin);\n }\n\n // 分别获取 4 个关键点\n const rect1Points = getRectPoints(box1);\n const rect2Points = getRectPoints(box2);\n\n // 获取所有投影轴\n const axes = getAxes(rect1Points).concat(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)) {\n return false;\n }\n }\n\n return true;\n}\n","import { isFunction } from '@antv/util';\n\nclass MyWorker {\n queue: any[] = [];\n worker: Worker;\n\n constructor(url) {\n this.worker = new Worker(url);\n this.worker.onmessage = (e: MessageEvent) => {\n this.queue.shift()?.resolve(e);\n };\n this.worker.onmessageerror = (e: MessageEvent) => {\n console.warn('[AntV G2] Web worker is not available');\n this.queue.shift()?.reject(e);\n };\n }\n\n post(params, onError?: () => any): Promise {\n return new Promise((resolve, reject) => {\n this.queue.push({ resolve, reject });\n try {\n this.worker.postMessage(params);\n } catch (e) {\n console.warn('[AntV G2] Web worker is not available');\n isFunction(onError) && onError();\n }\n });\n }\n\n destroy() {\n this.worker.terminate();\n }\n}\n\nexport function createWorker(f: any) {\n if (typeof window === 'undefined') return;\n\n let blob;\n try {\n blob = new Blob([f.toString()], { type: 'application/javascript' });\n } catch (e) {\n // @ts-ignore\n blob = new window.BlobBuilder();\n blob.append(f.toString());\n blob = blob.getBlob();\n }\n\n return new MyWorker(URL.createObjectURL(blob));\n}\n","const onmessage = function (e) {\n type Item = {\n x: number;\n y: number;\n width: number;\n height: number;\n rotation?: number;\n visible?: boolean;\n };\n\n // Copy from src/util/collision-detect.ts\n function generateUtils() {\n type Vec2 = [number, number];\n\n type Point = { x: number; y: number };\n\n /**\n * 定义投影对象\n */\n type Projection = { min: number; max: number };\n\n function dot(a, b) {\n return (a[0] || 0) * (b[0] || 0) + (a[1] || 0) * (b[1] || 0) + (a[2] || 0) * (b[2] || 0);\n }\n /**\n * 1. 获取投影轴\n */\n function 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 * 绕指定点顺时针旋转后的点坐标\n * 默认绕原点旋转\n */\n function 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 */\n function getRectPoints(box: Item): 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 * 2. 获取多边形在投影轴上的投影\n *\n * 向量的点积的其中一个几何含义是:一个向量在平行于另一个向量方向上的投影的数值乘积。\n * 由于投影轴是单位向量(长度为1),投影的长度为 x1 * x2 + y1 * y2\n */\n function 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.apply(null, scalars), max: Math.max.apply(null, scalars) };\n }\n\n function isProjectionOverlap(projection1: Projection, projection2: Projection): boolean {\n return projection1.max > projection2.min && projection1.min < projection2.max;\n }\n\n function isValidNumber(d: number) {\n return typeof d === 'number' && !Number.isNaN(d) && d !== Infinity && d !== -Infinity;\n }\n\n function isValidBox(box: Item) {\n return ['x', 'y', 'width', 'height'].every(attr => isValidNumber(box[attr]))\n }\n\n function isIntersectRect(box1: Item, box2: Item, 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 function intersect(box1: Item, box2: Item, margin: number = 0) {\n if (!isValidBox(box1) || !isValidBox(box2)) return false;\n\n // Quick detect, if rotation is null or zero.\n if (!box1.rotation && !box2.rotation) {\n return isIntersectRect(box1, box2, margin);\n }\n\n // 分别获取 4 个关键点\n const rect1Points = getRectPoints(box1);\n const rect2Points = getRectPoints(box2);\n\n // 获取所有投影轴\n const axes = getAxes(rect1Points).concat(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 if (!isProjectionOverlap(projection1, projection2)) return false;\n }\n\n return true;\n }\n return { intersect }\n }\n const { intersect } = generateUtils();\n\n // Label layouts.\n function hideOverlap(items: Item[]) {\n const boxes = items.slice();\n for (let i = 0; i < boxes.length; i++) {\n const box1 = boxes[i];\n if (box1.visible) {\n for (let j = i + 1; j < boxes.length; j++) {\n const box2 = boxes[j];\n if (box1 !== box2 && box2.visible) {\n if (intersect(box1, box2)) {\n box2.visible = false;\n }\n }\n }\n }\n }\n return boxes;\n }\n\n const methods = {\n 'hide-overlap': hideOverlap,\n }\n\n // Main\n try {\n const eventData = JSON.parse(e.data);\n if (!eventData || !eventData.type || !methods[eventData.type]) return;\n\n const { type, items } = eventData;\n const result = methods[type](items);\n self.postMessage(result);\n } catch (e) {\n throw e;\n }\n}\n\nconst code = `\n self.onmessage = ${onmessage.toString()}\n`\nexport { code };\n","import { get, each } from '@antv/util';\nimport { BBox, IGroup, IShape } from '../../../dependents';\nimport { intersect } from '../../../util/collision-detect';\nimport { LabelItem } from '../interface';\nimport { getLabelBackgroundInfo } from '../util';\nimport { createWorker } from '../util/createWorker';\nimport { code as layoutCode } from './worker/hide-overlap';\n\ntype Item = {\n x: number;\n y: number;\n width: number;\n height: number;\n rotation?: number;\n visible?: boolean;\n};\n\nconst layout = (items: Item[]): Item[] => {\n const boxes = items.slice();\n for (let i = 0; i < boxes.length; i++) {\n const box1 = boxes[i];\n if (box1.visible) {\n for (let j = i + 1; j < boxes.length; j++) {\n const box2 = boxes[j];\n if (box1 !== box2 && box2.visible) {\n if (intersect(box1, box2)) {\n box2.visible = false;\n }\n }\n }\n }\n }\n return boxes;\n};\n\nconst cache: Map = new Map();\nconst worker = createWorker(layoutCode);\n\n/**\n * label 防遮挡布局:在不改变 label 位置的情况下对相互重叠的 label 进行隐藏(非移除)\n * 不同于 'overlap' 类型的布局,该布局不会对 label 的位置进行偏移调整。\n * @param labels 参与布局调整的 label 数组集合\n */\nexport async function hideOverlap(\n labelItems: LabelItem[],\n labels: IGroup[],\n shapes: IShape[] | IGroup[],\n region: BBox\n) {\n const boxes = labels.map((d, idx) => ({\n ...getLabelBackgroundInfo(d, labelItems[idx], get(labelItems[idx], 'background.padding')),\n visible: true,\n }));\n const memoKey = JSON.stringify(boxes);\n const cb = (items: Item[]) => {\n cache.set(memoKey, items);\n each(items, ({ visible }, idx) => {\n const labelShape = labels[idx];\n if (visible) {\n labelShape?.show();\n } else {\n labelShape?.hide();\n }\n });\n return items;\n };\n if (cache.get(memoKey)) {\n cb(cache.get(memoKey));\n } else if (worker) {\n // Do layout in worker.\n try {\n const params = JSON.stringify({ type: 'hide-overlap', items: boxes });\n const res = await worker.post(params, () => cb(layout(boxes)));\n cb(Array.isArray(res.data) ? res.data : []);\n } catch (e) {\n console.error(e);\n cb(layout(boxes));\n }\n } else {\n // Normal layout in main thread.\n cb(layout(boxes));\n }\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 { 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 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 // 当 startAngle, endAngle 接近相等时,不进行 endAngle = Math.PI * 1.5 防止变化从整个圆开始\n if (isNumberEqual(endAngle, Math.PI * -0.5) && !isNumberEqual(startAngle, endAngle)) {\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 */\nexport function 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 let done = false;\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 done = true;\n }\n });\n }\n\n if (!done) {\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 // 不创建\n if (!cfg) {\n return null;\n }\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