{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/react/index.js","webpack:///./node_modules/@antv/util/esm/is-array-like.js","webpack:///./node_modules/@antv/util/esm/contains.js","webpack:///./node_modules/@antv/util/esm/filter.js","webpack:///./node_modules/@antv/util/esm/difference.js","webpack:///./node_modules/@antv/util/esm/is-type.js","webpack:///./node_modules/@antv/util/esm/is-function.js","webpack:///./node_modules/@antv/util/esm/is-nil.js","webpack:///./node_modules/@antv/util/esm/is-array.js","webpack:///./node_modules/@antv/util/esm/is-object.js","webpack:///./node_modules/@antv/util/esm/each.js","webpack:///./node_modules/@antv/util/esm/keys.js","webpack:///./node_modules/@antv/util/esm/is-match.js","webpack:///./node_modules/@antv/util/esm/is-object-like.js","webpack:///./node_modules/@antv/util/esm/is-plain-object.js","webpack:///./node_modules/@antv/util/esm/find.js","webpack:///./node_modules/@antv/util/esm/find-index.js","webpack:///./node_modules/@antv/util/esm/first-value.js","webpack:///./node_modules/@antv/util/esm/flatten.js","webpack:///./node_modules/@antv/util/esm/max.js","webpack:///./node_modules/@antv/util/esm/min.js","webpack:///./node_modules/@antv/util/esm/get-range.js","webpack:///./node_modules/@antv/util/esm/pull.js","webpack:///./node_modules/@antv/util/esm/pull-at.js","webpack:///./node_modules/@antv/util/esm/reduce.js","webpack:///./node_modules/@antv/util/esm/remove.js","webpack:///./node_modules/@antv/util/esm/is-string.js","webpack:///./node_modules/@antv/util/esm/sort-by.js","webpack:///./node_modules/@antv/util/esm/uniq.js","webpack:///./node_modules/@antv/util/esm/union.js","webpack:///./node_modules/@antv/util/esm/values-of-key.js","webpack:///./node_modules/@antv/util/esm/head.js","webpack:///./node_modules/@antv/util/esm/last.js","webpack:///./node_modules/@antv/util/esm/ends-with.js","webpack:///./node_modules/@antv/util/esm/every.js","webpack:///./node_modules/@antv/util/esm/some.js","webpack:///./node_modules/@antv/util/esm/group-by.js","webpack:///./node_modules/@antv/util/esm/group-to-map.js","webpack:///./node_modules/@antv/util/esm/group.js","webpack:///./node_modules/@antv/util/esm/parse-radius.js","webpack:///./node_modules/@antv/util/esm/clamp.js","webpack:///./node_modules/@antv/util/esm/fixed-base.js","webpack:///./node_modules/@antv/util/esm/is-number.js","webpack:///./node_modules/@antv/util/esm/is-integer.js","webpack:///./node_modules/@antv/util/esm/is-number-equal.js","webpack:///./node_modules/@antv/util/esm/is-odd.js","webpack:///./node_modules/@antv/util/esm/max-by.js","webpack:///./node_modules/@antv/util/esm/min-by.js","webpack:///./node_modules/@antv/util/esm/mod.js","webpack:///./node_modules/@antv/util/esm/to-radian.js","webpack:///./node_modules/@antv/util/esm/to-degree.js","webpack:///./node_modules/@antv/util/esm/to-integer.js","webpack:///./node_modules/@antv/util/esm/for-in.js","webpack:///./node_modules/@antv/util/esm/has-key.js","webpack:///./node_modules/@antv/util/esm/has.js","webpack:///./node_modules/@antv/util/esm/values.js","webpack:///./node_modules/@antv/util/esm/to-string.js","webpack:///./node_modules/@antv/util/esm/lower-case.js","webpack:///./node_modules/@antv/util/esm/substitute.js","webpack:///./node_modules/@antv/util/esm/upper-first.js","webpack:///./node_modules/@antv/util/esm/get-type.js","webpack:///./node_modules/@antv/util/esm/is-boolean.js","webpack:///./node_modules/@antv/util/esm/is-date.js","webpack:///./node_modules/@antv/util/esm/is-null.js","webpack:///./node_modules/@antv/util/esm/is-prototype.js","webpack:///./node_modules/@antv/util/esm/is-undefined.js","webpack:///./node_modules/@antv/util/esm/is-element.js","webpack:///./node_modules/@antv/util/esm/request-animation-frame.js","webpack:///./node_modules/@antv/util/esm/clear-animation-frame.js","webpack:///./node_modules/@antv/util/esm/mix.js","webpack:///./node_modules/@antv/util/esm/clone.js","webpack:///./node_modules/@antv/util/esm/debounce.js","webpack:///./node_modules/@antv/util/esm/memoize.js","webpack:///./node_modules/@antv/util/esm/deep-mix.js","webpack:///./node_modules/@antv/util/esm/index-of.js","webpack:///./node_modules/@antv/util/esm/is-empty.js","webpack:///./node_modules/@antv/util/esm/is-equal.js","webpack:///./node_modules/@antv/util/esm/map.js","webpack:///./node_modules/@antv/util/esm/map-values.js","webpack:///./node_modules/@antv/util/esm/get.js","webpack:///./node_modules/@antv/util/esm/set.js","webpack:///./node_modules/@antv/util/esm/pick.js","webpack:///./node_modules/@antv/util/esm/omit.js","webpack:///./node_modules/@antv/util/esm/throttle.js","webpack:///./node_modules/@antv/util/esm/to-array.js","webpack:///./node_modules/@antv/util/esm/unique-id.js","webpack:///./node_modules/@antv/util/esm/noop.js","webpack:///./node_modules/@antv/util/esm/size.js","webpack:///./node_modules/@antv/util/esm/measure-text-width.js","webpack:///./node_modules/@antv/util/esm/get-ellipsis-text.js","webpack:///./node_modules/@antv/util/esm/cache.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/@antv/g2plot/esm/utils/flow.js","webpack:///./node_modules/@antv/g2plot/esm/utils/template.js","webpack:///./node_modules/@antv/g2plot/esm/utils/dom.js","webpack:///./node_modules/@antv/g2plot/esm/utils/geometry.js","webpack:///./node_modules/@antv/g2plot/esm/utils/label.js","webpack:///./node_modules/@antv/g2plot/esm/utils/path.js","webpack:///./node_modules/@antv/g2plot/esm/utils/kebab-case.js","webpack:///./node_modules/@antv/g2plot/esm/utils/context.js","webpack:///./node_modules/@antv/g2plot/esm/utils/measure-text.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///./node_modules/classnames/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/common.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@antv/g2/esm/constant.js","webpack:///./node_modules/@antv/g2/esm/engine/index.js","webpack:///./node_modules/@antv/g2/esm/util/dom.js","webpack:///./node_modules/@antv/g2/esm/base.js","webpack:///./node_modules/@antv/attr/esm/attributes/base.js","webpack:///./node_modules/@antv/attr/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/@antv/attr/esm/attributes/color.js","webpack:///./node_modules/@antv/attr/esm/attributes/opacity.js","webpack:///./node_modules/@antv/attr/esm/attributes/position.js","webpack:///./node_modules/@antv/attr/esm/attributes/shape.js","webpack:///./node_modules/@antv/attr/esm/attributes/size.js","webpack:///./node_modules/@antv/attr/esm/factory.js","webpack:///./node_modules/@antv/attr/esm/index.js","webpack:///./node_modules/@antv/coord/esm/coord/base.js","webpack:///./node_modules/@antv/coord/esm/coord/cartesian.js","webpack:///./node_modules/@antv/coord/esm/coord/helix.js","webpack:///./node_modules/@antv/coord/esm/coord/polar.js","webpack:///./node_modules/@antv/coord/esm/factory.js","webpack:///./node_modules/@antv/coord/esm/index.js","webpack:///./node_modules/@antv/g2/esm/dependents.js","webpack:///./node_modules/@antv/g2/esm/util/graphics.js","webpack:///./node_modules/@antv/g2/esm/util/helper.js","webpack:///./node_modules/@antv/g2/esm/util/bbox.js","webpack:///./node_modules/@antv/g2/esm/util/coordinate.js","webpack:///./node_modules/@antv/g2/esm/util/scale.js","webpack:///./node_modules/@antv/g2/esm/util/axis.js","webpack:///./node_modules/@antv/g2/esm/facet/facet.js","webpack:///./node_modules/@antv/g2/esm/facet/index.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/base.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/callback.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/register.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/util/path.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/util.js","webpack:///./node_modules/@antv/g2/esm/interaction/context.js","webpack:///./node_modules/@antv/g2/esm/interaction/interaction.js","webpack:///./node_modules/@antv/g2/esm/interaction/grammar-interaction.js","webpack:///./node_modules/@antv/g2/esm/interaction/index.js","webpack:///./node_modules/@antv/g2/esm/theme/util/create-by-style-sheet.js","webpack:///./node_modules/@antv/g2/esm/theme/style-sheet/light.js","webpack:///./node_modules/@antv/g2/esm/theme/util/create-theme.js","webpack:///./node_modules/@antv/g2/esm/theme/index.js","webpack:///./node_modules/@antv/g2/esm/util/tooltip.js","webpack:///./node_modules/@antv/g2/esm/util/padding.js","webpack:///./node_modules/@antv/g2/esm/chart/controller/index.js","webpack:///./node_modules/@antv/g2/esm/chart/controller/coordinate.js","webpack:///./node_modules/@antv/g2/esm/chart/event.js","webpack:///./node_modules/@antv/g2/esm/chart/layout/index.js","webpack:///./node_modules/@antv/g2/esm/chart/util/scale-pool.js","webpack:///./node_modules/@antv/g2/esm/chart/layout/padding-cal.js","webpack:///./node_modules/@antv/g2/esm/chart/layout/auto.js","webpack:///./node_modules/@antv/g2/esm/chart/util/sync-view-padding.js","webpack:///./node_modules/@antv/g2/esm/chart/view.js","webpack:///./node_modules/@antv/g2/esm/chart/chart.js","webpack:///./node_modules/@antv/g2/esm/chart/controller/base.js","webpack:///./node_modules/@antv/g2/esm/chart/controller/tooltip.js","webpack:///./node_modules/@antv/g2/esm/animate/animation/index.js","webpack:///./node_modules/@antv/g2/esm/animate/index.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/constant.js","webpack:///./node_modules/@antv/g2/esm/geometry/element/index.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/index.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/base.js","webpack:///./node_modules/@antv/g2/esm/geometry/util/is-model-change.js","webpack:///./node_modules/@antv/g2/esm/geometry/util/parse-fields.js","webpack:///./node_modules/@antv/g2/esm/geometry/util/diff.js","webpack:///./node_modules/@antv/g2/esm/geometry/base.js","webpack:///./node_modules/@antv/g2/esm/geometry/util/group-data.js","webpack:///./node_modules/@antv/g2/esm/util/transform.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/util/index.js","webpack:///./node_modules/@antv/g2/esm/component/update-label.js","webpack:///./node_modules/@antv/g2/esm/component/labels.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/base.js","webpack:///./node_modules/@antv/g2/esm/util/attr.js","webpack:///./node_modules/@antv/g2/esm/util/marker.js","webpack:///./node_modules/@antv/g2/esm/util/legend.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/util/get-path-points.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/util/get-style.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/util/split-points.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/line/util.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/line/index.js","webpack:///./node_modules/@antv/g2/esm/core.js","webpack:///./node_modules/@antv/g2/esm/theme/style-sheet/dark.js","webpack:///./node_modules/@antv/g-canvas/esm/util/util.js","webpack:///./node_modules/@antv/g-canvas/esm/util/parse.js","webpack:///./node_modules/@antv/g-canvas/esm/util/arc-params.js","webpack:///./node_modules/@antv/g-canvas/esm/util/arrow.js","webpack:///./node_modules/@antv/g-canvas/esm/util/draw.js","webpack:///./node_modules/@antv/g-canvas/esm/group.js","webpack:///./node_modules/@antv/g-canvas/esm/shape/base.js","webpack:///./node_modules/@antv/g-canvas/esm/shape/circle.js","webpack:///./node_modules/@antv/g-canvas/esm/shape/ellipse.js","webpack:///./node_modules/@antv/g-canvas/esm/shape/image.js","webpack:///./node_modules/@antv/g-canvas/esm/util/in-stroke/line.js","webpack:///./node_modules/@antv/g-canvas/esm/shape/line.js","webpack:///./node_modules/@antv/g-canvas/esm/shape/marker.js","webpack:///./node_modules/@antv/g-canvas/esm/util/in-path/point-in-path.js","webpack:///./node_modules/@antv/g-canvas/esm/util/in-path/polygon.js","webpack:///./node_modules/@antv/g-canvas/esm/util/in-stroke/arc.js","webpack:///./node_modules/@antv/g-canvas/esm/util/path.js","webpack:///./node_modules/@antv/g-canvas/esm/shape/path.js","webpack:///./node_modules/@antv/g-canvas/esm/util/in-stroke/polyline.js","webpack:///./node_modules/@antv/g-canvas/esm/shape/polygon.js","webpack:///./node_modules/@antv/g-canvas/esm/shape/polyline.js","webpack:///./node_modules/@antv/g-canvas/esm/shape/rect.js","webpack:///./node_modules/@antv/g-canvas/esm/util/in-stroke/rect-radius.js","webpack:///./node_modules/@antv/g-canvas/esm/util/in-stroke/rect.js","webpack:///./node_modules/@antv/g-canvas/esm/shape/text.js","webpack:///./node_modules/@antv/g-canvas/esm/util/hit.js","webpack:///./node_modules/@antv/g-canvas/esm/canvas.js","webpack:///./node_modules/@antv/g-canvas/esm/index.js","webpack:///./node_modules/@antv/g-svg/esm/constant.js","webpack:///./node_modules/@antv/g-svg/esm/util/dom.js","webpack:///./node_modules/@antv/g-svg/esm/util/svg.js","webpack:///./node_modules/@antv/g-svg/esm/util/draw.js","webpack:///./node_modules/@antv/g-svg/esm/group.js","webpack:///./node_modules/@antv/g-svg/esm/shape/base.js","webpack:///./node_modules/@antv/g-svg/esm/shape/circle.js","webpack:///./node_modules/@antv/g-svg/esm/shape/dom.js","webpack:///./node_modules/@antv/g-svg/esm/shape/ellipse.js","webpack:///./node_modules/@antv/g-svg/esm/shape/image.js","webpack:///./node_modules/@antv/g-svg/esm/shape/line.js","webpack:///./node_modules/@antv/g-svg/esm/shape/marker/symbols.js","webpack:///./node_modules/@antv/g-svg/esm/shape/marker/index.js","webpack:///./node_modules/@antv/g-svg/esm/shape/path.js","webpack:///./node_modules/@antv/g-svg/esm/shape/polygon.js","webpack:///./node_modules/@antv/g-svg/esm/shape/polyline.js","webpack:///./node_modules/@antv/g-svg/esm/shape/rect.js","webpack:///./node_modules/@antv/g-svg/esm/util/format.js","webpack:///./node_modules/@antv/g-svg/esm/shape/text.js","webpack:///./node_modules/@antv/g-svg/esm/defs/gradient.js","webpack:///./node_modules/@antv/g-svg/esm/defs/shadow.js","webpack:///./node_modules/@antv/g-svg/esm/defs/arrow.js","webpack:///./node_modules/@antv/g-svg/esm/defs/clip.js","webpack:///./node_modules/@antv/g-svg/esm/defs/pattern.js","webpack:///./node_modules/@antv/g-svg/esm/defs/index.js","webpack:///./node_modules/@antv/g-svg/esm/canvas.js","webpack:///./node_modules/@antv/g-svg/esm/index.js","webpack:///./node_modules/@antv/g2/esm/geometry/path.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/area/util.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/area/index.js","webpack:///./node_modules/@antv/g2/esm/geometry/area.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/edge/index.js","webpack:///./node_modules/@antv/g2/esm/geometry/edge.js","webpack:///./node_modules/@antv/g2/esm/geometry/heatmap.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/interval/util.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/interval/index.js","webpack:///./node_modules/@antv/g2/esm/geometry/util/shape-size.js","webpack:///./node_modules/@antv/g2/esm/geometry/interval.js","webpack:///./node_modules/@antv/g2/esm/geometry/line.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/point/util.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/point/index.js","webpack:///./node_modules/@antv/g2/esm/geometry/point.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/polygon/index.js","webpack:///./node_modules/@antv/g2/esm/geometry/polygon.js","webpack:///./node_modules/@antv/g2/esm/geometry/schema.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/schema/index.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/violin/index.js","webpack:///./node_modules/@antv/g2/esm/geometry/violin.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/edge/util.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/area/line.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/area/smooth.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/area/smooth-line.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/edge/arc.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/edge/smooth.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/edge/vhv.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/interval/funnel.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/interval/hollow-rect.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/interval/line.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/interval/pyramid.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/interval/tick.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/line/step.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/schema/box.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/schema/candle.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/polygon/square.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/point/hollow.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/point/image.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/point/solid.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/violin/smooth.js","webpack:///./node_modules/@antv/g2/esm/geometry/shape/violin/hollow.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/interval.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/polar.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/pie.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/layout/pie/util.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/layout/overlap.js","webpack:///./node_modules/@antv/g2/esm/util/collision-detect.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/util/createWorker.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/layout/worker/hide-overlap.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/layout/hide-overlap.js","webpack:///./node_modules/@antv/g2/esm/util/color.js","webpack:///./node_modules/@antv/g2/esm/util/context.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/layout/interval/adjust-position.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/layout/point/adjust-position.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/layout/path/adjust-position.js","webpack:///./node_modules/@antv/g2/esm/util/text.js","webpack:///./node_modules/@antv/g2/esm/animate/animation/util.js","webpack:///./node_modules/@antv/g2/esm/animate/animation/sector-path-update.js","webpack:///./node_modules/@antv/g2/esm/animate/animation/zoom.js","webpack:///./node_modules/@antv/g2/esm/util/facet.js","webpack:///./node_modules/@antv/g2/esm/facet/circle.js","webpack:///./node_modules/@antv/g2/esm/facet/list.js","webpack:///./node_modules/@antv/g2/esm/facet/matrix.js","webpack:///./node_modules/@antv/g2/esm/facet/mirror.js","webpack:///./node_modules/@antv/g2/esm/facet/rect.js","webpack:///./node_modules/@antv/g2/esm/facet/tree.js","webpack:///./node_modules/@antv/g2/esm/util/stat.js","webpack:///./node_modules/@antv/g2/esm/util/annotation.js","webpack:///./node_modules/@antv/g2/esm/chart/controller/annotation.js","webpack:///./node_modules/@antv/g2/esm/util/grid.js","webpack:///./node_modules/@antv/g2/esm/chart/controller/axis.js","webpack:///./node_modules/@antv/g2/esm/util/direction.js","webpack:///./node_modules/@antv/g2/esm/chart/controller/legend.js","webpack:///./node_modules/@antv/g2/esm/chart/controller/slider.js","webpack:///./node_modules/@antv/g2/esm/chart/controller/scrollbar.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/active-region.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/component/tooltip/geometry.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/component/tooltip/sibling.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/component/tooltip/ellipsis-text.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/element/state-base.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/element/state.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/element/active.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/element/link-by-color.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/element/range-state.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/element/range-active.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/element/single-state.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/element/single-active.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/element/highlight-util.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/element/highlight.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/element/range-highlight.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/element/highlight-by-color.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/element/highlight-by-x.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/element/single-highlight.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/element/range-selected.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/element/selected.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/element/single-selected.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/component/list-state.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/component/list-active.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/component/list-highlight-util.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/component/list-highlight.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/component/list-selected.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/component/list-unchecked.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/component/list-checked.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/component/list-focus.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/component/list-radio.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/mask/base.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/mask/circle.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/mask/rect.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/mask/dim-rect.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/data/range-filter.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/mask/path.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/mask/smooth-path.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/cursor.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/data/filter.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/data/sibling-filter.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/element/filter.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/element/sibling-filter.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/view/button.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/view/drag.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/view/move.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/view/scale-transform.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/view/scale-translate.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/view/scale-zoom.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/view/mousewheel-scroll.js","webpack:///./node_modules/@antv/g2/esm/interaction/action/component/axis/axis-description.js","webpack:///./node_modules/@antv/g2/esm/index.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/layout/pie/distribute.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/layout/limit-in-shape.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/layout/limit-in-canvas.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/layout/limit-in-plot.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/layout/pie/outer.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/layout/adjust-color.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/layout/interval/hide-overlap.js","webpack:///./node_modules/@antv/g2/esm/geometry/label/layout/pie/spider.js","webpack:///./node_modules/@antv/g2/esm/animate/animation/fade.js","webpack:///./node_modules/@antv/g2/esm/animate/animation/grow-in.js","webpack:///./node_modules/@antv/g2/esm/animate/animation/scale-in.js","webpack:///./node_modules/@antv/g2/esm/animate/animation/wave-in.js","webpack:///./node_modules/@antv/g2/esm/animate/animation/position-update.js","webpack:///./node_modules/@antv/g2/esm/animate/animation/path-in.js","webpack:///./node_modules/@antv/matrix-util/esm/ext.js","webpack:///./node_modules/@antv/g2plot/esm/core/plot.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./app/javascript/react/components/contexts/RootContext.jsx","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/geometries/area.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/geometries/line.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/geometries/interval.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/geometries/edge.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/geometries/schema.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/geometries/violin.js","webpack:///./node_modules/rc-util/es/KeyCode.js","webpack:///./node_modules/@ant-design/icons/es/utils.js","webpack:///./node_modules/@ant-design/icons/es/components/IconBase.js","webpack:///./node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","webpack:///./node_modules/@ant-design/icons/es/components/AntdIcon.js","webpack:///./node_modules/@antv/component/esm/util/util.js","webpack:///./app/javascript/react/components/utils/Constants.js","webpack:///./node_modules/rc-util/es/warning.js","webpack:///./node_modules/@antv/component/esm/util/theme.js","webpack:///./node_modules/memoize-one/dist/memoize-one.esm.js","webpack:///./node_modules/antd/es/locale-provider/index.js","webpack:///./node_modules/antd/es/notification/index.js","webpack:///./node_modules/antd/es/notification/hooks/useNotification.js","webpack:///./node_modules/@ctrl/tinycolor/dist/module/index.js","webpack:///./node_modules/antd/es/config-provider/cssVariables.js","webpack:///./node_modules/antd/es/config-provider/index.js","webpack:///./node_modules/rc-util/es/raf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/antd/es/form/context.js","webpack:///./node_modules/@antv/g2plot/esm/plots/funnel/constant.js","webpack:///./node_modules/react-router/index.js","webpack:///./node_modules/rc-util/es/omit.js","webpack:///./node_modules/rc-tree/es/utils/treeUtil.js","webpack:///./node_modules/@ctrl/tinycolor/dist/module/util.js","webpack:///./node_modules/@antv/g-base/esm/util/path.js","webpack:///./node_modules/@antv/g-base/esm/event/graph-event.js","webpack:///./node_modules/@antv/g-base/esm/util/util.js","webpack:///./node_modules/@antv/g-base/esm/abstract/base.js","webpack:///./node_modules/@antv/g-base/esm/util/matrix.js","webpack:///./node_modules/@antv/g-base/esm/abstract/element.js","webpack:///./node_modules/@antv/g-base/esm/abstract/container.js","webpack:///./node_modules/@antv/g-base/node_modules/d3-timer/src/timer.js","webpack:///./node_modules/d3-color/src/define.js","webpack:///./node_modules/d3-color/src/color.js","webpack:///./node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/d3-interpolate/src/numberArray.js","webpack:///./node_modules/d3-interpolate/src/array.js","webpack:///./node_modules/d3-interpolate/src/date.js","webpack:///./node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/d3-interpolate/src/object.js","webpack:///./node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/d3-interpolate/src/value.js","webpack:///./node_modules/d3-ease/src/linear.js","webpack:///./node_modules/d3-ease/src/quad.js","webpack:///./node_modules/d3-ease/src/cubic.js","webpack:///./node_modules/d3-ease/src/poly.js","webpack:///./node_modules/d3-ease/src/sin.js","webpack:///./node_modules/d3-ease/src/math.js","webpack:///./node_modules/d3-ease/src/exp.js","webpack:///./node_modules/d3-ease/src/circle.js","webpack:///./node_modules/d3-ease/src/bounce.js","webpack:///./node_modules/d3-ease/src/back.js","webpack:///./node_modules/d3-ease/src/elastic.js","webpack:///./node_modules/@antv/g-base/esm/animate/register.js","webpack:///./node_modules/@antv/g-base/esm/util/color.js","webpack:///./node_modules/@antv/g-base/esm/animate/timeline.js","webpack:///./node_modules/@antv/g-base/esm/event/event-contoller.js","webpack:///./node_modules/@antv/g-base/esm/abstract/canvas.js","webpack:///./node_modules/@antv/g-base/esm/abstract/group.js","webpack:///./node_modules/@antv/g-base/esm/abstract/shape.js","webpack:///./node_modules/@antv/g-base/esm/bbox/register.js","webpack:///./node_modules/@antv/g-base/esm/bbox/rect.js","webpack:///./node_modules/@antv/g-base/esm/bbox/circle.js","webpack:///./node_modules/@antv/g-base/esm/bbox/util.js","webpack:///./node_modules/@antv/g-base/esm/bbox/polyline.js","webpack:///./node_modules/@antv/g-base/esm/util/offscreen.js","webpack:///./node_modules/@antv/g-base/esm/util/text.js","webpack:///./node_modules/@antv/g-base/esm/bbox/text.js","webpack:///./node_modules/@antv/g-base/esm/bbox/path.js","webpack:///./node_modules/@antv/g-base/esm/bbox/index.js","webpack:///./node_modules/@antv/g-base/esm/bbox/polygon.js","webpack:///./node_modules/@antv/g-base/esm/bbox/line.js","webpack:///./node_modules/@antv/g-base/esm/bbox/ellipse.js","webpack:///./node_modules/@antv/dom-util/esm/add-event-listener.js","webpack:///./node_modules/@antv/dom-util/esm/create-dom.js","webpack:///./node_modules/@antv/dom-util/esm/get-style.js","webpack:///./node_modules/@antv/dom-util/esm/get-outer-height.js","webpack:///./node_modules/@antv/dom-util/esm/get-height.js","webpack:///./node_modules/@antv/dom-util/esm/get-outer-width.js","webpack:///./node_modules/@antv/dom-util/esm/get-width.js","webpack:///./node_modules/@antv/dom-util/esm/modify-css.js","webpack:///./node_modules/rc-tree/es/util.js","webpack:///./node_modules/@fortawesome/react-fontawesome/node_modules/prop-types/index.js","webpack:///./app/javascript/react/components/utils/utils.js","webpack:///./node_modules/antd/es/_util/reactNode.js","webpack:///./node_modules/@antv/component/esm/abstract/group-component.js","webpack:///./app/javascript/react/components/contexts/AuthContext.jsx","webpack:///./node_modules/@antv/component/esm/index.js","webpack:///./node_modules/react-router-dom/index.js","webpack:///./node_modules/@antv/g-math/esm/util.js","webpack:///./node_modules/@antv/g-math/esm/line.js","webpack:///./node_modules/@antv/g-math/esm/bezier.js","webpack:///./node_modules/@antv/g-math/esm/quadratic.js","webpack:///./node_modules/@antv/g-math/esm/cubic.js","webpack:///./node_modules/@antv/g-math/esm/ellipse.js","webpack:///./node_modules/@antv/g-math/esm/arc.js","webpack:///./node_modules/@antv/g-math/esm/segments.js","webpack:///./node_modules/@antv/g-math/esm/polyline.js","webpack:///./node_modules/gl-matrix/esm/common.js","webpack:///./node_modules/rc-util/es/ref.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/geometries/base.js","webpack:///./node_modules/@ctrl/tinycolor/dist/module/conversion.js","webpack:///./node_modules/@antv/g2plot/esm/utils/view.js","webpack:///./node_modules/rc-util/es/hooks/useMergedState.js","webpack:///./node_modules/gl-matrix/esm/mat3.js","webpack:///./node_modules/@antv/component/esm/util/matrix.js","webpack:///./node_modules/@antv/component/esm/tooltip/css-const.js","webpack:///./node_modules/@antv/g2plot/esm/utils/tooltip.js","webpack:///./node_modules/antd/es/config-provider/SizeContext.js","webpack:///./app/javascript/react/components/misc/AdSense.jsx","webpack:///./node_modules/rc-util/es/Dom/canUseDom.js","webpack:///./node_modules/antd/es/_util/type.js","webpack:///./node_modules/@antv/g2plot/esm/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/gauge/constants.js","webpack:///./app/javascript/react/components/misc/PageLoading.jsx","webpack:///./node_modules/rc-motion/es/util/motion.js","webpack:///./node_modules/rc-motion/es/interface.js","webpack:///./node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","webpack:///./node_modules/rc-motion/es/hooks/useStepQueue.js","webpack:///./node_modules/rc-motion/es/hooks/useNextFrame.js","webpack:///./node_modules/rc-motion/es/hooks/useStatus.js","webpack:///./node_modules/rc-motion/es/hooks/useDomMotionEvents.js","webpack:///./node_modules/rc-motion/es/DomWrapper.js","webpack:///./node_modules/rc-motion/es/CSSMotion.js","webpack:///./node_modules/rc-motion/es/util/diff.js","webpack:///./node_modules/rc-motion/es/CSSMotionList.js","webpack:///./node_modules/rc-motion/es/index.js","webpack:///./node_modules/history/index.js","webpack:///./node_modules/react-dom/index.js","webpack:///./node_modules/rc-util/es/hooks/useLayoutEffect.js","webpack:///./node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","webpack:///./node_modules/rc-util/es/Children/toArray.js","webpack:///./app/javascript/react/components/contexts/ToastContext.jsx","webpack:///./node_modules/antd/es/_util/motion.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/antd/es/button/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/tiny-line/constants.js","webpack:///./node_modules/antd/es/config-provider/DisabledContext.js","webpack:///./node_modules/rc-resize-observer/es/utils/observerUtil.js","webpack:///./node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js","webpack:///./node_modules/rc-resize-observer/es/Collection.js","webpack:///./node_modules/rc-resize-observer/es/SingleObserver/index.js","webpack:///./node_modules/rc-resize-observer/es/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/stock/constant.js","webpack:///./node_modules/rc-field-form/es/FieldContext.js","webpack:///./node_modules/rc-field-form/es/utils/typeUtil.js","webpack:///./node_modules/rc-field-form/es/utils/messages.js","webpack:///./node_modules/rc-util/es/utils/get.js","webpack:///./node_modules/rc-util/es/utils/set.js","webpack:///./node_modules/rc-field-form/es/utils/cloneDeep.js","webpack:///./node_modules/rc-field-form/es/utils/valueUtil.js","webpack:///./node_modules/rc-field-form/es/utils/validateUtil.js","webpack:///./node_modules/rc-field-form/es/Field.js","webpack:///./node_modules/rc-field-form/es/ListContext.js","webpack:///./node_modules/rc-field-form/es/List.js","webpack:///./node_modules/rc-field-form/es/utils/NameMap.js","webpack:///./node_modules/rc-field-form/es/useForm.js","webpack:///./node_modules/rc-field-form/es/utils/asyncUtil.js","webpack:///./node_modules/rc-field-form/es/FormContext.js","webpack:///./node_modules/rc-field-form/es/Form.js","webpack:///./node_modules/rc-field-form/es/useWatch.js","webpack:///./node_modules/rc-field-form/es/index.js","webpack:///./node_modules/rc-util/es/hooks/useState.js","webpack:///./node_modules/@antv/adjust/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/rc-util/es/pickAttrs.js","webpack:///./node_modules/@antv/path-util/esm/parse-path.js","webpack:///./node_modules/@antv/path-util/esm/catmull-rom-2-bezier.js","webpack:///./node_modules/@antv/path-util/esm/parse-path-string.js","webpack:///./node_modules/@antv/path-util/esm/path-2-absolute.js","webpack:///./node_modules/@antv/path-util/esm/process/arc-2-cubic.js","webpack:///./node_modules/@antv/path-util/esm/get-arc-params.js","webpack:///./node_modules/@antv/path-util/esm/path-2-segments.js","webpack:///./node_modules/@antv/path-util/esm/get-line-intersect.js","webpack:///./node_modules/@antv/path-util/esm/point-in-polygon.js","webpack:///./node_modules/@antv/path-util/esm/is-polygons-intersect.js","webpack:///./node_modules/rc-menu/es/context/MenuContext.js","webpack:///./node_modules/rc-menu/es/hooks/useActive.js","webpack:///./node_modules/rc-menu/es/utils/warnUtil.js","webpack:///./node_modules/rc-menu/es/Icon.js","webpack:///./node_modules/rc-menu/es/hooks/useDirectionStyle.js","webpack:///./node_modules/rc-menu/es/context/PathContext.js","webpack:///./node_modules/rc-menu/es/context/IdContext.js","webpack:///./node_modules/rc-menu/es/context/PrivateContext.js","webpack:///./node_modules/rc-menu/es/MenuItem.js","webpack:///./node_modules/rc-menu/es/utils/nodeUtil.js","webpack:///./node_modules/rc-menu/es/hooks/useMemoCallback.js","webpack:///./node_modules/rc-menu/es/SubMenu/SubMenuList.js","webpack:///./node_modules/rc-menu/es/placements.js","webpack:///./node_modules/rc-menu/es/utils/motionUtil.js","webpack:///./node_modules/rc-menu/es/SubMenu/PopupTrigger.js","webpack:///./node_modules/rc-menu/es/SubMenu/InlineSubMenuList.js","webpack:///./node_modules/rc-menu/es/SubMenu/index.js","webpack:///./node_modules/rc-menu/es/hooks/useAccessibility.js","webpack:///./node_modules/rc-menu/es/hooks/useUUID.js","webpack:///./node_modules/rc-menu/es/hooks/useKeyRecords.js","webpack:///./node_modules/rc-menu/es/utils/timeUtil.js","webpack:///./node_modules/rc-menu/es/Menu.js","webpack:///./node_modules/rc-menu/es/MenuItemGroup.js","webpack:///./node_modules/rc-menu/es/Divider.js","webpack:///./node_modules/rc-menu/es/index.js","webpack:///./node_modules/@antv/g2plot/esm/utils/hierarchy/util.js","webpack:///./node_modules/antd/es/_util/statusUtils.js","webpack:///./node_modules/d3-hierarchy/src/constant.js","webpack:///./node_modules/@auth0/auth0-react/dist/auth0-react.esm.js","webpack:///./node_modules/@antv/g2plot/esm/utils/padding.js","webpack:///./app/javascript/react/components/Error/ServerError.jsx","webpack:///./app/javascript/react/components/Error/Error.jsx","webpack:///./node_modules/antd/es/config-provider/context.js","webpack:///./node_modules/@antv/g2plot/esm/utils/transform/percent.js","webpack:///./node_modules/@antv/g2plot/esm/plots/tiny-line/utils.js","webpack:///./node_modules/rc-picker/es/locale/en_US.js","webpack:///./node_modules/antd/es/time-picker/locale/en_US.js","webpack:///./node_modules/antd/es/date-picker/locale/en_US.js","webpack:///./node_modules/antd/es/calendar/locale/en_US.js","webpack:///./node_modules/antd/es/locale/default.js","webpack:///./node_modules/@antv/color-util/esm/index.js","webpack:///./node_modules/@antv/component/esm/util/text.js","webpack:///./node_modules/@antv/component/esm/util/label.js","webpack:///./app/javascript/react/components/Leaderboard.jsx","webpack:///./node_modules/@antv/adjust/esm/adjusts/adjust.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/pattern.js","webpack:///./node_modules/shallowequal/index.js","webpack:///./node_modules/antd/es/locale-provider/default.js","webpack:///./node_modules/antd/es/locale-provider/LocaleReceiver.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/CloseCircleFilled.js","webpack:///./node_modules/@ant-design/icons/es/icons/CloseCircleFilled.js","webpack:///./node_modules/rc-util/es/Dom/addEventListener.js","webpack:///./node_modules/@antv/g2plot/esm/plots/histogram/constant.js","webpack:///./node_modules/fmin/build/fmin.js","webpack:///./node_modules/@antv/g2plot/esm/plots/tiny-area/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/conversion-tag.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/connected-area.js","webpack:///./node_modules/@antv/g2plot/esm/plots/column/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/core/locale.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/LoadingOutlined.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/@antv/scale/esm/tick-method/register.js","webpack:///./node_modules/@antv/scale/esm/base.js","webpack:///./node_modules/@antv/scale/esm/category/base.js","webpack:///./node_modules/fecha/lib/fecha.js","webpack:///./node_modules/@antv/scale/esm/util/time.js","webpack:///./node_modules/@antv/scale/esm/util/bisector.js","webpack:///./node_modules/@antv/scale/esm/category/time.js","webpack:///./node_modules/@antv/scale/esm/continuous/base.js","webpack:///./node_modules/@antv/scale/esm/continuous/linear.js","webpack:///./node_modules/@antv/scale/esm/util/math.js","webpack:///./node_modules/@antv/scale/esm/continuous/log.js","webpack:///./node_modules/@antv/scale/esm/continuous/pow.js","webpack:///./node_modules/@antv/scale/esm/continuous/time.js","webpack:///./node_modules/@antv/scale/esm/continuous/quantize.js","webpack:///./node_modules/@antv/scale/esm/continuous/quantile.js","webpack:///./node_modules/@antv/scale/esm/factory.js","webpack:///./node_modules/@antv/scale/esm/identity/index.js","webpack:///./node_modules/@antv/scale/esm/tick-method/cat.js","webpack:///./node_modules/@antv/scale/esm/util/d3-linear.js","webpack:///./node_modules/@antv/scale/esm/util/interval.js","webpack:///./node_modules/@antv/scale/esm/util/strict-limit.js","webpack:///./node_modules/@antv/scale/esm/util/pretty-number.js","webpack:///./node_modules/@antv/scale/esm/util/extended.js","webpack:///./node_modules/@antv/scale/esm/util/pretty.js","webpack:///./node_modules/@antv/scale/esm/tick-method/quantile.js","webpack:///./node_modules/@antv/scale/esm/tick-method/time-pretty.js","webpack:///./node_modules/@antv/scale/esm/tick-method/index.js","webpack:///./node_modules/@antv/scale/esm/tick-method/time-cat.js","webpack:///./node_modules/@antv/scale/esm/tick-method/linear.js","webpack:///./node_modules/@antv/scale/esm/tick-method/r-prettry.js","webpack:///./node_modules/@antv/scale/esm/tick-method/time.js","webpack:///./node_modules/@antv/scale/esm/tick-method/log.js","webpack:///./node_modules/@antv/scale/esm/tick-method/pow.js","webpack:///./node_modules/@antv/scale/esm/tick-method/d3-linear.js","webpack:///./node_modules/@antv/scale/esm/index.js","webpack:///./node_modules/d3-hierarchy/src/treemap/dice.js","webpack:///./node_modules/@antv/g2plot/esm/utils/number.js","webpack:///./node_modules/rc-util/es/getScrollBarSize.js","webpack:///./node_modules/@antv/g2plot/esm/plots/line/adaptor.js","webpack:///./node_modules/rc-overflow/es/Item.js","webpack:///./node_modules/rc-overflow/es/RawItem.js","webpack:///./node_modules/rc-overflow/es/Overflow.js","webpack:///./node_modules/rc-overflow/es/hooks/useBatchFrameState.js","webpack:///./node_modules/rc-overflow/es/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/rc-tree/es/Indent.js","webpack:///./node_modules/rc-tree/es/TreeNode.js","webpack:///./node_modules/rc-util/es/Dom/findDOMNode.js","webpack:///./node_modules/rc-util/es/hooks/useEvent.js","webpack:///./node_modules/antd/es/modal/locale.js","webpack:///./node_modules/antd/es/empty/empty.js","webpack:///./node_modules/antd/es/empty/simple.js","webpack:///./node_modules/antd/es/empty/index.js","webpack:///./node_modules/@antv/component/esm/abstract/html-component.js","webpack:///./node_modules/@antv/g2plot/esm/utils/data.js","webpack:///./node_modules/d3-hierarchy/src/treemap/slice.js","webpack:///./node_modules/rc-util/es/hooks/useMemo.js","webpack:///./node_modules/@antv/g2plot/esm/interactions/actions/drill-down.js","webpack:///./node_modules/rc-trigger/es/utils/alignUtil.js","webpack:///./node_modules/rc-trigger/es/utils/legacyUtil.js","webpack:///./node_modules/rc-trigger/es/Popup/Mask.js","webpack:///./node_modules/dom-align/dist-web/index.js","webpack:///./node_modules/rc-align/es/util.js","webpack:///./node_modules/rc-align/es/Align.js","webpack:///./node_modules/rc-align/es/hooks/useBuffer.js","webpack:///./node_modules/rc-align/es/index.js","webpack:///./node_modules/rc-trigger/es/Popup/useVisibleStatus.js","webpack:///./node_modules/rc-trigger/es/Popup/PopupInner.js","webpack:///./node_modules/rc-trigger/es/Popup/useStretchStyle.js","webpack:///./node_modules/rc-trigger/es/Popup/MobilePopupInner.js","webpack:///./node_modules/rc-trigger/es/Popup/index.js","webpack:///./node_modules/rc-trigger/es/context.js","webpack:///./node_modules/rc-trigger/es/index.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/count.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/each.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/find.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/iterator.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/index.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/path.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/links.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/CloseOutlined.js","webpack:///./node_modules/rc-util/es/Dom/contains.js","webpack:///./node_modules/@antv/adjust/esm/constant.js","webpack:///./node_modules/antd/es/_util/responsiveObserve.js","webpack:///./node_modules/rc-tree/es/utils/conductUtil.js","webpack:///./node_modules/@antv/g2plot/esm/plots/pie/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/scatter/util.js","webpack:///./node_modules/@antv/g2plot/esm/plots/scatter/adaptor.js","webpack:///./node_modules/d3-regression/dist/d3-regression.js","webpack:///./node_modules/@antv/g2plot/esm/utils/invariant.js","webpack:///./node_modules/d3-hierarchy/src/treemap/squarify.js","webpack:///./node_modules/antd/es/menu/OverrideContext.js","webpack:///./node_modules/@antv/adjust/esm/factory.js","webpack:///./node_modules/d3-hierarchy/src/accessors.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/RightOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/RightOutlined.js","webpack:///./node_modules/@antv/component/esm/util/state.js","webpack:///./node_modules/@ctrl/tinycolor/dist/module/format-input.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/@antv/adjust/esm/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/mix/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/mix/interactions/association.js","webpack:///./node_modules/@antv/g2plot/esm/plots/mix/interactions/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/mix/index.js","webpack:///./node_modules/@antv/component/esm/abstract/component.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/rc-notification/es/useNotification.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toArray.js","webpack:///./node_modules/rc-util/es/Dom/dynamicCSS.js","webpack:///./node_modules/@ant-design/icons/es/components/Context.js","webpack:///./node_modules/rc-util/es/isMobile.js","webpack:///./node_modules/rc-util/es/Dom/isVisible.js","webpack:///./app/javascript/react/components/Error/Forbidden.jsx","webpack:///./node_modules/rc-tree/es/contextTypes.js","webpack:///./node_modules/@antv/g2plot/esm/index.js","webpack:///./node_modules/@antv/event-emitter/esm/index.js","webpack:///./node_modules/gl-matrix/esm/vec2.js","webpack:///./node_modules/@antv/g2plot/esm/plots/progress/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/progress/utils.js","webpack:///./node_modules/rc-tooltip/es/Popup.js","webpack:///./node_modules/rc-tooltip/es/Tooltip.js","webpack:///./node_modules/rc-tooltip/es/index.js","webpack:///./node_modules/antd/es/_util/colors.js","webpack:///./node_modules/antd/es/tooltip/index.js","webpack:///./node_modules/antd/es/_util/wave.js","webpack:///./node_modules/antd/es/_util/raf.js","webpack:///./node_modules/antd/es/button/button-group.js","webpack:///./node_modules/antd/es/button/LoadingIcon.js","webpack:///./node_modules/antd/es/button/button.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/CheckCircleFilled.js","webpack:///./node_modules/@ant-design/icons/es/icons/CheckCircleFilled.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleFilled.js","webpack:///./node_modules/@ant-design/icons/es/icons/ExclamationCircleFilled.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/EllipsisOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/EllipsisOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/SearchOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/SearchOutlined.js","webpack:///./node_modules/rc-util/es/React/render.js","webpack:///./app/javascript/react/components/Error/Unavailable.jsx","webpack:///./node_modules/@antv/g2plot/esm/plots/gauge/utils.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/@antv/g2plot/esm/utils/statistic.js","webpack:///./node_modules/@antv/g2plot/esm/plots/funnel/index.js","webpack:///./node_modules/d3-hierarchy/src/cluster.js","webpack:///./node_modules/d3-hierarchy/src/stratify.js","webpack:///./node_modules/d3-hierarchy/src/tree.js","webpack:///./node_modules/d3-hierarchy/src/treemap/binary.js","webpack:///./node_modules/d3-hierarchy/src/treemap/sliceDice.js","webpack:///./node_modules/d3-hierarchy/src/treemap/resquarify.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@ant-design/colors/dist/index.esm.js","webpack:///./node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","webpack:///./node_modules/antd/es/locale-provider/context.js","webpack:///./node_modules/lodash/isEqual.js","webpack:///./app/javascript/react/components/Error/NotFound.jsx","webpack:///./node_modules/@antv/g2plot/esm/plots/area/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bar/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/pie/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/utils/matrix.js","webpack:///./node_modules/@antv/g2plot/esm/plots/tiny-line/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/tiny-column/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/ring-progress/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/gauge/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/mix/utils.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/ExclamationCircleOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/LeftOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/LeftOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/CheckOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/CheckOutlined.js","webpack:///./node_modules/antd/es/select/index.js","webpack:///./node_modules/antd/es/select/utils/iconUtil.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/_ListCache.js","webpack:///./node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/lodash/_nativeCreate.js","webpack:///./node_modules/lodash/_getMapData.js","webpack:///./node_modules/rc-util/es/Dom/styleChecker.js","webpack:///./node_modules/gl-matrix/esm/vec3.js","webpack:///./node_modules/@antv/component/esm/util/event.js","webpack:///./node_modules/@antv/g2plot/esm/utils/pick.js","webpack:///./node_modules/@antv/g2plot/esm/utils/deep-assign.js","webpack:///./node_modules/@antv/g2plot/esm/core/global.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/geometries/point.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/geometries/polygon.js","webpack:///./node_modules/@antv/g2plot/esm/plots/pie/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/tiny-line/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/histogram/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/progress/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/stock/index.js","webpack:///./node_modules/d3-hierarchy/src/pack/siblings.js","webpack:///./node_modules/d3-hierarchy/src/pack/enclose.js","webpack:///./node_modules/@antv/g2plot/esm/utils/pattern/util.js","webpack:///./node_modules/@antv/g2plot/esm/utils/pattern/dot.js","webpack:///./node_modules/@antv/g2plot/esm/utils/pattern/line.js","webpack:///./node_modules/@antv/g2plot/esm/utils/pattern/square.js","webpack:///./node_modules/@antv/g2plot/esm/utils/pattern/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/line/constants.js","webpack:///./node_modules/@antv/g2plot/esm/plots/line/interactions/marker-active.js","webpack:///./node_modules/@antv/g2plot/esm/plots/line/interactions/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/line/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/scatter/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/scatter/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/gauge/shapes/indicator.js","webpack:///./node_modules/@antv/g2plot/esm/plots/gauge/shapes/meter-gauge.js","webpack:///./node_modules/@antv/g2plot/esm/plots/gauge/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/area/constants.js","webpack:///./node_modules/@antv/g2plot/esm/plots/area/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/column/constants.js","webpack:///./node_modules/@antv/g2plot/esm/plots/column/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bar/constants.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bar/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/tiny-column/constants.js","webpack:///./node_modules/@antv/g2plot/esm/plots/tiny-column/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/tiny-area/constants.js","webpack:///./node_modules/@antv/g2plot/esm/plots/tiny-area/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/ring-progress/constants.js","webpack:///./node_modules/@antv/g2plot/esm/plots/ring-progress/index.js","webpack:///./app/javascript/react/components/misc/PolicyLinks.jsx","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/react-is/index.js","webpack:///./node_modules/rc-notification/es/Notice.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/rc-pagination/es/locale/en_US.js","webpack:///./node_modules/rc-util/es/Portal.js","webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:///./node_modules/antd/es/config-provider/defaultRenderEmpty.js","webpack:///./node_modules/antd/es/_util/styleChecker.js","webpack:///./node_modules/rc-tooltip/es/placements.js","webpack:///./node_modules/antd/es/_util/placements.js","webpack:///./node_modules/rc-util/es/Dom/focus.js","webpack:///./app/javascript/react/components/Home/Home.jsx","webpack:///./node_modules/detect-browser/es/index.js","webpack:///./node_modules/@antv/g2plot/esm/utils/conversion.js","webpack:///./node_modules/@antv/g2plot/esm/plots/pie/contants.js","webpack:///./node_modules/@antv/g2plot/esm/utils/transform/histogram.js","webpack:///./node_modules/@antv/g2plot/esm/plots/histogram/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/progress/constants.js","webpack:///./node_modules/@antv/g2plot/esm/plots/stock/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/stock/utils.js","webpack:///./node_modules/d3-hierarchy/src/treemap/round.js","webpack:///./node_modules/@antv/g2plot/esm/utils/hierarchy/treemap.js","webpack:///./node_modules/d3-hierarchy/src/array.js","webpack:///./node_modules/react-share/es/utils/assert.js","webpack:///./node_modules/react-share/es/utils/objectToGetParams.js","webpack:///./node_modules/react-share/es/ShareButton.js","webpack:///./node_modules/react-share/es/hocs/createShareButton.js","webpack:///./node_modules/react-share/es/FacebookShareButton.js","webpack:///./node_modules/react-share/es/hocs/createIcon.js","webpack:///./node_modules/react-share/es/FacebookIcon.js","webpack:///./node_modules/react-share/es/RedditShareButton.js","webpack:///./node_modules/react-share/es/RedditIcon.js","webpack:///./node_modules/react-share/es/TelegramShareButton.js","webpack:///./node_modules/react-share/es/TelegramIcon.js","webpack:///./node_modules/react-share/es/TumblrShareButton.js","webpack:///./node_modules/react-share/es/TumblrIcon.js","webpack:///./node_modules/react-share/es/TwitterShareButton.js","webpack:///./node_modules/react-share/es/TwitterIcon.js","webpack:///./node_modules/react-share/es/WhatsappShareButton.js","webpack:///./node_modules/react-share/es/WhatsappIcon.js","webpack:///./node_modules/react-share/es/EmailShareButton.js","webpack:///./node_modules/react-share/es/EmailIcon.js","webpack:///./app/javascript/react/components/utils/ShareButtons.jsx","webpack:///./node_modules/rc-virtual-list/es/Filler.js","webpack:///./node_modules/rc-virtual-list/es/ScrollBar.js","webpack:///./node_modules/rc-virtual-list/es/Item.js","webpack:///./node_modules/rc-virtual-list/es/utils/CacheMap.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useHeights.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useScrollTo.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useDiffItem.js","webpack:///./node_modules/rc-virtual-list/es/utils/algorithmUtil.js","webpack:///./node_modules/rc-virtual-list/es/utils/isFirefox.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useOriginScroll.js","webpack:///./node_modules/rc-virtual-list/es/List.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useFrameWheel.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useChildren.js","webpack:///./node_modules/rc-virtual-list/es/index.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/BarsOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/BarsOutlined.js","webpack:///./node_modules/antd/es/layout/layout.js","webpack:///./node_modules/antd/es/layout/Sider.js","webpack:///./node_modules/antd/es/menu/MenuDivider.js","webpack:///./node_modules/antd/es/menu/MenuContext.js","webpack:///./node_modules/antd/es/menu/MenuItem.js","webpack:///./node_modules/antd/es/menu/SubMenu.js","webpack:///./node_modules/antd/es/menu/hooks/useItems.js","webpack:///./node_modules/antd/es/menu/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/funnel/geometries/common.js","webpack:///./node_modules/@antv/g2plot/esm/plots/funnel/geometries/basic.js","webpack:///./node_modules/@antv/g2plot/esm/plots/funnel/geometries/compare.js","webpack:///./node_modules/@antv/g2plot/esm/plots/funnel/geometries/facet.js","webpack:///./node_modules/@antv/g2plot/esm/plots/funnel/geometries/dynamic-height.js","webpack:///./node_modules/@antv/g2plot/esm/plots/funnel/adaptor.js","webpack:///./node_modules/rc-dropdown/es/placements.js","webpack:///./node_modules/rc-dropdown/es/hooks/useAccessibility.js","webpack:///./node_modules/rc-dropdown/es/Dropdown.js","webpack:///./node_modules/rc-dropdown/es/index.js","webpack:///./node_modules/@antv/g2plot/esm/interactions/actions/reset-button.js","webpack:///./node_modules/@antv/g2plot/esm/interactions/brush.js","webpack:///./node_modules/@antv/g2plot/esm/adaptor/brush.js","webpack:///./app/javascript/react/components/Pools/InviteModal.jsx","webpack:///./app/javascript/react/components/Home/LeaderboardDescription.jsx","webpack:///./node_modules/rc-notification/es/Notification.js","webpack:///./node_modules/rc-notification/es/index.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/CheckCircleOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/CheckCircleOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/InfoCircleOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/InfoCircleOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/CloseCircleOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/CloseCircleOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/DownOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/DownOutlined.js","webpack:///./node_modules/rc-select/es/utils/valueUtil.js","webpack:///./node_modules/rc-select/es/SelectTrigger.js","webpack:///./node_modules/rc-select/es/TransBtn.js","webpack:///./node_modules/rc-select/es/Selector/Input.js","webpack:///./node_modules/rc-select/es/utils/commonUtil.js","webpack:///./node_modules/rc-select/es/Selector/MultipleSelector.js","webpack:///./node_modules/rc-select/es/hooks/useLayoutEffect.js","webpack:///./node_modules/rc-select/es/Selector/SingleSelector.js","webpack:///./node_modules/rc-select/es/hooks/useLock.js","webpack:///./node_modules/rc-select/es/Selector/index.js","webpack:///./node_modules/rc-select/es/utils/keyUtil.js","webpack:///./node_modules/rc-select/es/hooks/useBaseProps.js","webpack:///./node_modules/rc-select/es/BaseSelect.js","webpack:///./node_modules/rc-select/es/hooks/useDelayReset.js","webpack:///./node_modules/rc-select/es/hooks/useSelectTriggerControl.js","webpack:///./node_modules/rc-select/es/hooks/useFilterOptions.js","webpack:///./node_modules/rc-select/es/utils/legacyUtil.js","webpack:///./node_modules/rc-select/es/hooks/useRefFunc.js","webpack:///./node_modules/rc-select/es/OptGroup.js","webpack:///./node_modules/rc-select/es/Option.js","webpack:///./node_modules/rc-select/es/SelectContext.js","webpack:///./node_modules/rc-select/es/OptionList.js","webpack:///./node_modules/rc-select/es/utils/platformUtil.js","webpack:///./node_modules/rc-select/es/utils/warningPropsUtil.js","webpack:///./node_modules/rc-select/es/Select.js","webpack:///./node_modules/rc-select/es/hooks/useOptions.js","webpack:///./node_modules/rc-select/es/hooks/useCache.js","webpack:///./node_modules/rc-select/es/index.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/InfoCircleFilled.js","webpack:///./node_modules/@ant-design/icons/es/icons/InfoCircleFilled.js","webpack:///./node_modules/antd/es/message/index.js","webpack:///./node_modules/antd/es/message/hooks/useMessage.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/WarningFilled.js","webpack:///./node_modules/@ant-design/icons/es/icons/WarningFilled.js","webpack:///./node_modules/antd/es/result/noFound.js","webpack:///./node_modules/antd/es/result/serverError.js","webpack:///./node_modules/antd/es/result/unauthorized.js","webpack:///./node_modules/antd/es/result/index.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_Map.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/@antv/g2plot/esm/interactions/drill-down.js","webpack:///./node_modules/@antv/g2plot/esm/plots/liquid/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/liquid/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/liquid/constants.js","webpack:///./node_modules/@antv/g2plot/esm/plots/liquid/shapes/liquid.js","webpack:///./node_modules/@antv/g2plot/esm/plots/liquid/index.js","webpack:///./node_modules/d3-hierarchy/src/treemap/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/pie/interactions/actions/legend-active.js","webpack:///./node_modules/@antv/g2plot/esm/plots/pie/interactions/actions/statistic-active.js","webpack:///./node_modules/@antv/g2plot/esm/plots/pie/interactions/util.js","webpack:///./node_modules/@antv/g2plot/esm/plots/pie/interactions/index.js","webpack:///./node_modules/antd/es/spin/index.js","webpack:///./node_modules/logrocket/dist/build.umd.js","webpack:///./node_modules/rc-util/es/Dom/css.js","webpack:///./node_modules/antd/es/input/Group.js","webpack:///./node_modules/rc-input/es/utils/commonUtils.js","webpack:///./node_modules/rc-input/es/BaseInput.js","webpack:///./node_modules/rc-input/es/Input.js","webpack:///./node_modules/rc-input/es/index.js","webpack:///./node_modules/antd/es/input/Input.js","webpack:///./node_modules/antd/es/input/utils.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/EyeInvisibleOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/EyeInvisibleOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/EyeOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/EyeOutlined.js","webpack:///./node_modules/antd/es/input/Password.js","webpack:///./node_modules/antd/es/input/Search.js","webpack:///./node_modules/antd/es/input/ClearableLabeledInput.js","webpack:///./node_modules/antd/es/input/TextArea.js","webpack:///./node_modules/antd/es/input/index.js","webpack:///./node_modules/rc-tree/es/MotionTreeNode.js","webpack:///./node_modules/rc-tree/es/utils/diffUtil.js","webpack:///./node_modules/rc-tree/es/NodeList.js","webpack:///./node_modules/rc-tree/es/Tree.js","webpack:///./node_modules/rc-tree/es/DropIndicator.js","webpack:///./node_modules/rc-tree/es/index.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/_MapCache.js","webpack:///./node_modules/lodash/_equalArrays.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/react-csv/lib/core.js","webpack:///./node_modules/react-csv/lib/metaProps.js","webpack:///./node_modules/size-sensor/lib/debounce.js","webpack:///./node_modules/size-sensor/lib/constant.js","webpack:///./node_modules/@antv/g2plot/esm/types/index.js","webpack:///./node_modules/@antv/g2plot/esm/interactions/drag-move.js","webpack:///./node_modules/d3-hierarchy/src/partition.js","webpack:///./node_modules/d3-hierarchy/src/pack/index.js","webpack:///./node_modules/@antv/g2plot/esm/plugin/index.js","webpack:///./node_modules/@antv/g2plot/esm/lab.js","webpack:///./node_modules/@antv/g2plot/esm/utils/color/blend.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/layout/circleintersection.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/layout/layout.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/layout/diagram.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/shape.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/label.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/interactions/util.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/interactions/actions/active.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/interactions/actions/highlight.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/interactions/actions/selected.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/interactions/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/venn/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/sankey/align.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/sankey/helper.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/sankey/sankey.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/layout.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/circle.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/helper.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/interactions/actions/node-drag.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/interactions/node-draggable.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sankey/index.js","webpack:///./node_modules/@antv/component/esm/util/graphic.js","webpack:///./node_modules/@antv/component/esm/annotation/line.js","webpack:///./node_modules/@antv/component/esm/annotation/text.js","webpack:///./node_modules/@antv/component/esm/annotation/arc.js","webpack:///./node_modules/@antv/component/esm/annotation/region.js","webpack:///./node_modules/@antv/component/esm/annotation/image.js","webpack:///./node_modules/@antv/component/esm/annotation/data-marker.js","webpack:///./node_modules/@antv/component/esm/annotation/data-region.js","webpack:///./node_modules/@antv/component/esm/annotation/region-filter.js","webpack:///./node_modules/@antv/component/esm/annotation/shape.js","webpack:///./node_modules/@antv/component/esm/annotation/html.js","webpack:///./node_modules/@antv/g2plot/esm/plots/dual-axes/types.js","webpack:///./node_modules/@antv/g2plot/esm/plots/dual-axes/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/dual-axes/util/option.js","webpack:///./node_modules/@antv/g2plot/esm/plots/dual-axes/util/legend.js","webpack:///./node_modules/@antv/g2plot/esm/plots/dual-axes/util/render-sider.js","webpack:///./node_modules/@antv/g2plot/esm/plots/dual-axes/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/dual-axes/util/geometry.js","webpack:///./node_modules/@antv/g2plot/esm/plots/dual-axes/index.js","webpack:///./node_modules/@antv/component/esm/axis/base.js","webpack:///./node_modules/@antv/component/esm/axis/overlap/auto-ellipsis.js","webpack:///./node_modules/@antv/component/esm/axis/overlap/auto-hide.js","webpack:///./node_modules/@antv/component/esm/axis/overlap/auto-rotate.js","webpack:///./node_modules/@antv/component/esm/axis/line.js","webpack:///./node_modules/@antv/component/esm/axis/circle.js","webpack:///./node_modules/@antv/component/esm/crosshair/html-theme.js","webpack:///./node_modules/@antv/component/esm/crosshair/base.js","webpack:///./node_modules/@antv/component/esm/crosshair/line.js","webpack:///./node_modules/@antv/component/esm/crosshair/circle.js","webpack:///./node_modules/@antv/component/esm/crosshair/css-const.js","webpack:///./node_modules/@antv/component/esm/crosshair/html.js","webpack:///./node_modules/@antv/component/esm/trend/constant.js","webpack:///./node_modules/@antv/component/esm/trend/path.js","webpack:///./node_modules/@antv/component/esm/trend/trend.js","webpack:///./node_modules/@antv/component/esm/slider/handler.js","webpack:///./node_modules/@antv/component/esm/slider/constant.js","webpack:///./node_modules/@antv/component/esm/slider/slider.js","webpack:///./node_modules/@antv/g2plot/esm/utils/transform/word-cloud.js","webpack:///./node_modules/@antv/g2plot/esm/plots/word-cloud/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/word-cloud/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/word-cloud/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/word-cloud/shapes/word-cloud.js","webpack:///./node_modules/@antv/g2plot/esm/plots/word-cloud/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sunburst/constant.js","webpack:///./node_modules/@antv/g2plot/esm/utils/hierarchy/partition.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sunburst/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sunburst/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/sunburst/index.js","webpack:///./node_modules/@antv/g2plot/esm/utils/hierarchy/pack.js","webpack:///./node_modules/@antv/g2plot/esm/plots/circle-packing/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/circle-packing/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/circle-packing/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/circle-packing/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/heatmap/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/heatmap/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/heatmap/shapes/circle.js","webpack:///./node_modules/@antv/g2plot/esm/plots/heatmap/shapes/square.js","webpack:///./node_modules/@antv/g2plot/esm/plots/heatmap/index.js","webpack:///./node_modules/@antv/g2plot/esm/utils/transform/quantile.js","webpack:///./node_modules/@antv/g2plot/esm/plots/violin/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/violin/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/violin/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/violin/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/waterfall/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/waterfall/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/waterfall/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/waterfall/shape.js","webpack:///./node_modules/@antv/g2plot/esm/plots/waterfall/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/treemap/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/treemap/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/treemap/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/treemap/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/radar/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/radar/interactions/radar-tooltip-action.js","webpack:///./node_modules/@antv/g2plot/esm/plots/radar/interactions/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/radar/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/box/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/box/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/box/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/box/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bullet/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bullet/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bullet/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bullet/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/radial-bar/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/radial-bar/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/radial-bar/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/radial-bar/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bidirectional-bar/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bidirectional-bar/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bidirectional-bar/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/bidirectional-bar/index.js","webpack:///./node_modules/@antv/g2plot/esm/utils/transform/chord.js","webpack:///./node_modules/@antv/g2plot/esm/plots/chord/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/chord/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/chord/index.js","webpack:///./node_modules/@antv/g2plot/esm/plots/facet/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/facet/utils.js","webpack:///./node_modules/@antv/g2plot/esm/plots/facet/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/facet/index.js","webpack:///./node_modules/@antv/component/esm/grid/base.js","webpack:///./node_modules/@antv/component/esm/grid/circle.js","webpack:///./node_modules/@antv/component/esm/grid/line.js","webpack:///./node_modules/@antv/component/esm/legend/base.js","webpack:///./node_modules/@antv/component/esm/legend/category.js","webpack:///./node_modules/@antv/component/esm/legend/continuous.js","webpack:///./node_modules/@antv/component/esm/tooltip/html-theme.js","webpack:///./node_modules/@antv/component/esm/tooltip/html.js","webpack:///./node_modules/@antv/component/esm/util/align.js","webpack:///./node_modules/@antv/g2plot/esm/plots/rose/adaptor.js","webpack:///./node_modules/@antv/g2plot/esm/plots/rose/constant.js","webpack:///./node_modules/@antv/g2plot/esm/plots/rose/index.js","webpack:///./node_modules/@antv/component/esm/scrollbar/scrollbar.js","webpack:///./node_modules/react-cookie-consent/build/index.js","webpack:///./node_modules/lodash/debounce.js","webpack:///./node_modules/async-validator/dist-web/index.js","webpack:///./node_modules/rc-select/es/hooks/useId.js","webpack:///./node_modules/react-csv/index.js","webpack:///./app/javascript/react/components/Error/LeaderboardAlert.jsx","webpack:///./node_modules/@antv/adjust/esm/adjusts/dodge.js","webpack:///./node_modules/@antv/adjust/esm/adjusts/jitter.js","webpack:///./node_modules/@antv/adjust/esm/adjusts/stack.js","webpack:///./node_modules/@antv/adjust/esm/adjusts/symmetric.js","webpack:///./node_modules/@antv/g2plot/esm/locales/en_US.js","webpack:///./node_modules/@antv/g2plot/esm/locales/zh_CN.js","webpack:///./node_modules/size-sensor/lib/index.js","webpack:///./node_modules/pdfast/src/index.js","webpack:///./node_modules/redbox-react/lib/index.js","webpack:///./node_modules/rc-util/es/hooks/useId.js","webpack:///./node_modules/rc-dialog/es/Dialog/Mask.js","webpack:///./node_modules/rc-dialog/es/util.js","webpack:///./node_modules/rc-dialog/es/Dialog/Content/MemoChildren.js","webpack:///./node_modules/rc-dialog/es/Dialog/Content/Panel.js","webpack:///./node_modules/rc-dialog/es/Dialog/Content/index.js","webpack:///./node_modules/rc-dialog/es/Dialog/index.js","webpack:///./node_modules/rc-dialog/es/DialogWrap.js","webpack:///./node_modules/rc-dialog/es/index.js","webpack:///./node_modules/rc-util/es/setStyle.js","webpack:///./node_modules/rc-util/es/switchScrollingEffect.js","webpack:///./node_modules/rc-util/es/Dom/scrollLocker.js","webpack:///./node_modules/rc-util/es/PortalWrapper.js","webpack:///./node_modules/rc-textarea/es/calculateNodeHeight.js","webpack:///./node_modules/rc-textarea/es/ResizableTextArea.js","webpack:///./node_modules/rc-textarea/es/index.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/react/cjs/react.production.min.js","webpack:///./node_modules/lodash/now.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/lodash/_baseTrim.js","webpack:///./node_modules/lodash/_trimmedEndIndex.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/react-dom/cjs/react-dom.production.min.js","webpack:///./node_modules/scheduler/index.js","webpack:///./node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///./node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/lodash/_baseIsEqual.js","webpack:///./node_modules/lodash/_baseIsEqualDeep.js","webpack:///./node_modules/lodash/_Stack.js","webpack:///./node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/lodash/_listCacheHas.js","webpack:///./node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/lodash/_stackClear.js","webpack:///./node_modules/lodash/_stackDelete.js","webpack:///./node_modules/lodash/_stackGet.js","webpack:///./node_modules/lodash/_stackHas.js","webpack:///./node_modules/lodash/_stackSet.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/lodash/_Hash.js","webpack:///./node_modules/lodash/_hashClear.js","webpack:///./node_modules/lodash/_hashDelete.js","webpack:///./node_modules/lodash/_hashGet.js","webpack:///./node_modules/lodash/_hashHas.js","webpack:///./node_modules/lodash/_hashSet.js","webpack:///./node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/lodash/_isKeyable.js","webpack:///./node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/lodash/_mapCacheHas.js","webpack:///./node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/lodash/_SetCache.js","webpack:///./node_modules/lodash/_setCacheAdd.js","webpack:///./node_modules/lodash/_setCacheHas.js","webpack:///./node_modules/lodash/_arraySome.js","webpack:///./node_modules/lodash/_cacheHas.js","webpack:///./node_modules/lodash/_equalByTag.js","webpack:///./node_modules/lodash/_Uint8Array.js","webpack:///./node_modules/lodash/_mapToArray.js","webpack:///./node_modules/lodash/_setToArray.js","webpack:///./node_modules/lodash/_equalObjects.js","webpack:///./node_modules/lodash/_getAllKeys.js","webpack:///./node_modules/lodash/_baseGetAllKeys.js","webpack:///./node_modules/lodash/_arrayPush.js","webpack:///./node_modules/lodash/_getSymbols.js","webpack:///./node_modules/lodash/_arrayFilter.js","webpack:///./node_modules/lodash/stubArray.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/_getTag.js","webpack:///./node_modules/lodash/_DataView.js","webpack:///./node_modules/lodash/_Promise.js","webpack:///./node_modules/lodash/_Set.js","webpack:///./node_modules/lodash/_WeakMap.js","webpack:///./node_modules/@fortawesome/react-fontawesome/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/@fortawesome/react-fontawesome/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-csv/lib/index.js","webpack:///./node_modules/react-csv/lib/components/Download.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-csv/lib/components/Link.js","webpack:///./node_modules/size-sensor/lib/sensorPool.js","webpack:///./node_modules/size-sensor/lib/id.js","webpack:///./node_modules/size-sensor/lib/sensors/index.js","webpack:///./node_modules/size-sensor/lib/sensors/object.js","webpack:///./node_modules/size-sensor/lib/sensors/resizeObserver.js","webpack:///./node_modules/pdfast/src/helper.js","webpack:///./node_modules/redbox-react/node_modules/prop-types/index.js","webpack:///./node_modules/redbox-react/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/redbox-react/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/redbox-react/lib/style.js","webpack:///./node_modules/error-stack-parser/error-stack-parser.js","webpack:///./node_modules/error-stack-parser/node_modules/stackframe/stackframe.js","webpack:///./node_modules/redbox-react/lib/lib.js","webpack:///./node_modules/sourcemapped-stacktrace/dist/sourcemapped-stacktrace.js","webpack:///./app/javascript/react/components/misc/BackButton.jsx","webpack:///./app/javascript/react/components/BracketForm/FormTile.jsx","webpack:///./app/javascript/react/components/BracketForm/MatchupForm.jsx","webpack:///./app/javascript/react/components/BracketForm/WinnerFlag.js","webpack:///./node_modules/antd/es/form/hooks/useDebounce.js","webpack:///./node_modules/antd/es/form/ErrorList.js","webpack:///./node_modules/compute-scroll-into-view/dist/index.module.js","webpack:///./node_modules/scroll-into-view-if-needed/es/index.js","webpack:///./node_modules/antd/es/form/util.js","webpack:///./node_modules/antd/es/form/hooks/useForm.js","webpack:///./node_modules/antd/es/form/Form.js","webpack:///./node_modules/antd/es/form/hooks/useFormItemStatus.js","webpack:///./node_modules/antd/es/grid/RowContext.js","webpack:///./node_modules/antd/es/grid/row.js","webpack:///./node_modules/antd/es/_util/hooks/useFlexGapSupport.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/QuestionCircleOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/QuestionCircleOutlined.js","webpack:///./node_modules/antd/es/grid/col.js","webpack:///./node_modules/antd/es/form/FormItemLabel.js","webpack:///./node_modules/antd/es/form/FormItemInput.js","webpack:///./node_modules/antd/es/form/FormItem/ItemHolder.js","webpack:///./node_modules/antd/es/form/FormItem/index.js","webpack:///./node_modules/antd/es/form/hooks/useFrameState.js","webpack:///./node_modules/antd/es/form/hooks/useItemRef.js","webpack:///./node_modules/antd/es/form/FormList.js","webpack:///./node_modules/antd/es/form/index.js","webpack:///./node_modules/antd/es/form/hooks/useFormInstance.js","webpack:///./app/javascript/react/components/BracketForm/PickScore.jsx","webpack:///./app/javascript/react/components/BracketForm/BracketFormBracket.jsx","webpack:///./app/javascript/react/components/BracketForm/BracketSavedModal.jsx","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/index.es.js","webpack:///./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","webpack:///./node_modules/@fortawesome/react-fontawesome/index.es.js","webpack:///./app/javascript/react/components/BracketForm/TeamTile.jsx","webpack:///./node_modules/antd/es/skeleton/Element.js","webpack:///./node_modules/antd/es/skeleton/Avatar.js","webpack:///./node_modules/antd/es/skeleton/Button.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/DotChartOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/DotChartOutlined.js","webpack:///./node_modules/antd/es/skeleton/Node.js","webpack:///./node_modules/antd/es/skeleton/Image.js","webpack:///./node_modules/antd/es/skeleton/Input.js","webpack:///./node_modules/antd/es/skeleton/Paragraph.js","webpack:///./node_modules/antd/es/skeleton/Title.js","webpack:///./node_modules/antd/es/skeleton/Skeleton.js","webpack:///./node_modules/antd/es/skeleton/index.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/PlusOutlined.js","webpack:///./node_modules/rc-tabs/es/hooks/useRaf.js","webpack:///./node_modules/rc-tabs/es/TabNavList/TabNode.js","webpack:///./node_modules/rc-tabs/es/hooks/useOffsets.js","webpack:///./node_modules/rc-tabs/es/hooks/useVisibleRange.js","webpack:///./node_modules/rc-tabs/es/TabNavList/AddButton.js","webpack:///./node_modules/rc-tabs/es/TabNavList/OperationNode.js","webpack:///./node_modules/rc-tabs/es/TabContext.js","webpack:///./node_modules/rc-tabs/es/hooks/useTouchMove.js","webpack:///./node_modules/rc-tabs/es/hooks/useSyncState.js","webpack:///./node_modules/rc-tabs/es/TabNavList/index.js","webpack:///./node_modules/rc-tabs/es/hooks/useRefs.js","webpack:///./node_modules/rc-tabs/es/TabPanelList/index.js","webpack:///./node_modules/rc-tabs/es/TabPanelList/TabPane.js","webpack:///./node_modules/rc-tabs/es/Tabs.js","webpack:///./node_modules/rc-tabs/es/index.js","webpack:///./node_modules/antd/es/tabs/index.js","webpack:///./node_modules/antd/es/card/Grid.js","webpack:///./node_modules/antd/es/card/Card.js","webpack:///./node_modules/antd/es/card/Meta.js","webpack:///./node_modules/antd/es/card/index.js","webpack:///./app/javascript/react/components/BracketForm/GroupCard.jsx","webpack:///./app/javascript/react/components/BracketForm/GroupForm.jsx","webpack:///./app/javascript/react/components/The18/utils.js","webpack:///./app/javascript/react/components/utils/Callback.jsx","webpack:///./app/javascript/react/components/misc/SignInMessage.jsx","webpack:///./app/javascript/react/components/BracketForm/NameForm.jsx","webpack:///./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack:///./node_modules/date-fns/esm/toDate/index.js","webpack:///./node_modules/date-fns/esm/compareAsc/index.js","webpack:///./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack:///./node_modules/date-fns/esm/addDays/index.js","webpack:///./node_modules/date-fns/esm/addMonths/index.js","webpack:///./node_modules/date-fns/esm/add/index.js","webpack:///./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/startOfDay/index.js","webpack:///./node_modules/date-fns/esm/differenceInCalendarDays/index.js","webpack:///./node_modules/date-fns/esm/differenceInDays/index.js","webpack:///./node_modules/date-fns/esm/constants/index.js","webpack:///./node_modules/date-fns/esm/differenceInMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/_lib/roundingMethods/index.js","webpack:///./node_modules/date-fns/esm/differenceInHours/index.js","webpack:///./node_modules/date-fns/esm/differenceInMinutes/index.js","webpack:///./node_modules/date-fns/esm/differenceInCalendarMonths/index.js","webpack:///./node_modules/date-fns/esm/endOfDay/index.js","webpack:///./node_modules/date-fns/esm/endOfMonth/index.js","webpack:///./node_modules/date-fns/esm/isLastDayOfMonth/index.js","webpack:///./node_modules/date-fns/esm/differenceInMonths/index.js","webpack:///./node_modules/date-fns/esm/differenceInSeconds/index.js","webpack:///./node_modules/date-fns/esm/differenceInCalendarYears/index.js","webpack:///./node_modules/date-fns/esm/differenceInYears/index.js","webpack:///./node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack:///./node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/index.js","webpack:///./node_modules/date-fns/esm/formatDuration/index.js","webpack:///./app/javascript/react/components/misc/Countdown.jsx","webpack:///./node_modules/date-fns/esm/intervalToDuration/index.js","webpack:///./app/javascript/react/components/BracketForm/BracketForm.jsx","webpack:///./app/javascript/react/components/BracketForm/BracketFormContainer.jsx","webpack:///./app/javascript/react/components/misc/MailSupport.jsx","webpack:///./app/javascript/react/components/Faq/TermsAndConditions.jsx","webpack:///./app/javascript/react/components/Bracket/BracketEditForm.jsx","webpack:///./app/javascript/react/components/The18/The18Redirects.jsx","webpack:///./app/javascript/react/components/Faq/PrivacyPolicy.jsx","webpack:///./app/javascript/react/components/The18/The18Logging.jsx","webpack:///./app/javascript/react/components/utils/Seo.jsx","webpack:///./app/javascript/react/components/utils/Countries.js","webpack:///./app/javascript/react/components/Bracket/Matchup.jsx","webpack:///./app/javascript/react/components/Bracket/Bracket.jsx","webpack:///./app/javascript/react/components/Bracket/ShowBracket.jsx","webpack:///./app/javascript/react/components/The18/The18Create.jsx","webpack:///./app/javascript/react/components/utils/ScrollToTop.jsx","webpack:///./node_modules/date-fns/esm/isDate/index.js","webpack:///./node_modules/date-fns/esm/isValid/index.js","webpack:///./node_modules/date-fns/esm/addMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/subMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack:///./node_modules/date-fns/esm/format/index.js","webpack:///./app/javascript/react/components/Pools/ManagePool.jsx","webpack:///./app/javascript/react/components/The18/The18Home.jsx","webpack:///./app/javascript/react/components/Archive/Archive.jsx","webpack:///./app/javascript/react/components/Archive/France.jsx","webpack:///./node_modules/@rails/actioncable/app/assets/javascripts/actioncable.esm.js","webpack:///./app/javascript/react/channels/consumer.js","webpack:///./node_modules/@ant-design/plots/es/util/render.js","webpack:///./node_modules/@ant-design/plots/es/util/createNode.js","webpack:///./node_modules/@ant-design/plots/es/util/utils.js","webpack:///./node_modules/@ant-design/plots/es/hooks/useChart.js","webpack:///./node_modules/@ant-design/plots/es/util/getChart.js","webpack:///./node_modules/@ant-design/plots/es/errorBoundary/index.js","webpack:///./node_modules/react-content-loader/dist/react-content-loader.es.js","webpack:///./node_modules/@ant-design/plots/es/util/createLoading.js","webpack:///./node_modules/@ant-design/plots/es/components/column/index.js","webpack:///./app/javascript/react/components/Stats/utils.js","webpack:///./app/javascript/react/components/Stats/Charts/GroupedColumnStats.jsx","webpack:///./node_modules/@ant-design/plots/es/components/line/index.js","webpack:///./app/javascript/react/components/Stats/Charts/LineTotalStats.jsx","webpack:///./app/javascript/react/components/Stats/Charts/TotalsTable.jsx","webpack:///./node_modules/date-fns/esm/isAfter/index.js","webpack:///./node_modules/date-fns/esm/subDays/index.js","webpack:///./app/javascript/react/components/Stats/Metrics.jsx","webpack:///./app/javascript/react/channels/metrics_channel.js","webpack:///./node_modules/date-fns/esm/eachDayOfInterval/index.js","webpack:///./app/javascript/react/components/Pools/PoolPasswordModal.jsx","webpack:///./app/javascript/react/components/MainMenu.jsx","webpack:///./app/javascript/react/components/Pools/Pools.jsx","webpack:///./app/javascript/react/components/Stats/Charts/SelectionTable.jsx","webpack:///./node_modules/@ant-design/plots/es/components/treemap/index.js","webpack:///./app/javascript/react/components/Stats/Charts/WinnerTree.jsx","webpack:///./app/javascript/react/components/Stats/Stats.jsx","webpack:///./app/javascript/react/components/Home/Card.jsx","webpack:///./app/javascript/react/components/Welcome.jsx","webpack:///./app/javascript/react/components/Footer.jsx","webpack:///./app/javascript/react/components/Admin.jsx","webpack:///./app/javascript/react/components/misc/ExternalLink.jsx","webpack:///./app/javascript/react/components/Faq/UnsplashCredit.jsx","webpack:///./app/javascript/react/components/Faq/ScoringTable.jsx","webpack:///./app/javascript/react/components/Faq/FaqListItem.jsx","webpack:///./app/javascript/react/components/Faq/Faq.jsx","webpack:///./app/javascript/react/components/App.jsx","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/rc-table/es/sugar/ColumnGroup.js","webpack:///./node_modules/rc-table/es/sugar/Column.js","webpack:///./node_modules/rc-table/es/utils/valueUtil.js","webpack:///./node_modules/rc-table/es/context/StickyContext.js","webpack:///./node_modules/rc-table/es/context/HoverContext.js","webpack:///./node_modules/rc-table/es/ContextSelector/index.js","webpack:///./node_modules/rc-table/es/context/BodyContext.js","webpack:///./node_modules/rc-table/es/context/PerfContext.js","webpack:///./node_modules/rc-table/es/Cell/index.js","webpack:///./node_modules/rc-table/es/context/TableContext.js","webpack:///./node_modules/rc-table/es/utils/fixUtil.js","webpack:///./node_modules/rc-table/es/Header/HeaderRow.js","webpack:///./node_modules/rc-table/es/Header/Header.js","webpack:///./node_modules/rc-table/es/context/ExpandedRowContext.js","webpack:///./node_modules/rc-table/es/Body/ExpandedRow.js","webpack:///./node_modules/rc-table/es/context/ResizeContext.js","webpack:///./node_modules/rc-table/es/Body/BodyRow.js","webpack:///./node_modules/rc-table/es/hooks/useFlattenRecords.js","webpack:///./node_modules/rc-table/es/Body/MeasureCell.js","webpack:///./node_modules/rc-table/es/Body/MeasureRow.js","webpack:///./node_modules/rc-table/es/Body/index.js","webpack:///./node_modules/rc-table/es/utils/legacyUtil.js","webpack:///./node_modules/rc-table/es/constant.js","webpack:///./node_modules/rc-table/es/hooks/useColumns.js","webpack:///./node_modules/rc-table/es/hooks/useFrame.js","webpack:///./node_modules/rc-table/es/hooks/useStickyOffsets.js","webpack:///./node_modules/rc-table/es/ColGroup.js","webpack:///./node_modules/rc-table/es/Panel/index.js","webpack:///./node_modules/rc-table/es/Footer/SummaryContext.js","webpack:///./node_modules/rc-table/es/Footer/Row.js","webpack:///./node_modules/rc-table/es/Footer/Summary.js","webpack:///./node_modules/rc-table/es/Footer/Cell.js","webpack:///./node_modules/rc-table/es/Footer/index.js","webpack:///./node_modules/rc-table/es/utils/expandUtil.js","webpack:///./node_modules/rc-table/es/stickyScrollBar.js","webpack:///./node_modules/rc-table/es/hooks/useSticky.js","webpack:///./node_modules/rc-table/es/FixedHolder/index.js","webpack:///./node_modules/rc-table/es/Table.js","webpack:///./node_modules/rc-table/es/index.js","webpack:///./node_modules/antd/es/_util/hooks/useForceUpdate.js","webpack:///./node_modules/antd/es/grid/hooks/useBreakpoint.js","webpack:///./node_modules/antd/es/locale/en_US.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/DoubleLeftOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/DoubleLeftOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/DoubleRightOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/DoubleRightOutlined.js","webpack:///./node_modules/rc-pagination/es/Pager.js","webpack:///./node_modules/rc-pagination/es/KeyCode.js","webpack:///./node_modules/rc-pagination/es/Options.js","webpack:///./node_modules/rc-pagination/es/Pagination.js","webpack:///./node_modules/rc-pagination/es/locale/zh_CN.js","webpack:///./node_modules/antd/es/pagination/Select.js","webpack:///./node_modules/antd/es/pagination/Pagination.js","webpack:///./node_modules/antd/es/pagination/index.js","webpack:///./node_modules/antd/es/_util/easings.js","webpack:///./node_modules/antd/es/_util/getScroll.js","webpack:///./node_modules/antd/es/_util/scrollTo.js","webpack:///./node_modules/antd/es/table/Column.js","webpack:///./node_modules/antd/es/table/ColumnGroup.js","webpack:///./node_modules/antd/es/table/ExpandIcon.js","webpack:///./node_modules/antd/es/table/util.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/FilterFilled.js","webpack:///./node_modules/@ant-design/icons/es/icons/FilterFilled.js","webpack:///./node_modules/rc-checkbox/es/index.js","webpack:///./node_modules/antd/es/checkbox/Group.js","webpack:///./node_modules/antd/es/checkbox/Checkbox.js","webpack:///./node_modules/antd/es/checkbox/index.js","webpack:///./node_modules/antd/es/dropdown/dropdown-button.js","webpack:///./node_modules/antd/es/dropdown/dropdown.js","webpack:///./node_modules/antd/es/dropdown/index.js","webpack:///./node_modules/antd/es/radio/context.js","webpack:///./node_modules/antd/es/radio/radio.js","webpack:///./node_modules/antd/es/radio/group.js","webpack:///./node_modules/antd/es/_util/getDataOrAriaProps.js","webpack:///./node_modules/antd/es/radio/radioButton.js","webpack:///./node_modules/antd/es/radio/index.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/HolderOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/HolderOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/FileOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/FileOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/FolderOpenOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/FolderOpenOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/FolderOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/FolderOutlined.js","webpack:///./node_modules/antd/es/tree/utils/dictUtil.js","webpack:///./node_modules/antd/es/tree/DirectoryTree.js","webpack:///./node_modules/antd/es/tree/utils/dropIndicator.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/CaretDownFilled.js","webpack:///./node_modules/@ant-design/icons/es/icons/CaretDownFilled.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/MinusSquareOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/MinusSquareOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/PlusSquareOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/PlusSquareOutlined.js","webpack:///./node_modules/antd/es/tree/Tree.js","webpack:///./node_modules/antd/es/tree/utils/iconUtil.js","webpack:///./node_modules/antd/es/tree/index.js","webpack:///./node_modules/antd/es/table/hooks/useFilter/FilterSearch.js","webpack:///./node_modules/antd/es/table/hooks/useFilter/FilterWrapper.js","webpack:///./node_modules/antd/es/table/hooks/useFilter/FilterDropdown.js","webpack:///./node_modules/antd/es/_util/hooks/useSyncState.js","webpack:///./node_modules/antd/es/table/hooks/useFilter/index.js","webpack:///./node_modules/antd/es/table/hooks/usePagination.js","webpack:///./node_modules/antd/es/table/hooks/useSelection.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/CaretDownOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/CaretDownOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/CaretUpOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/CaretUpOutlined.js","webpack:///./node_modules/antd/es/table/hooks/useSorter.js","webpack:///./node_modules/antd/es/table/hooks/useTitleColumns.js","webpack:///./node_modules/antd/es/table/Table.js","webpack:///./node_modules/antd/es/table/hooks/useLazyKVMap.js","webpack:///./node_modules/antd/es/table/index.js","webpack:///./node_modules/antd/es/_util/ActionButton.js","webpack:///./node_modules/antd/es/modal/Modal.js","webpack:///./node_modules/antd/es/modal/ConfirmDialog.js","webpack:///./node_modules/antd/es/modal/destroyFns.js","webpack:///./node_modules/antd/es/modal/confirm.js","webpack:///./node_modules/antd/es/modal/useModal/HookModal.js","webpack:///./node_modules/antd/es/modal/useModal/index.js","webpack:///./node_modules/antd/es/_util/hooks/usePatchElement.js","webpack:///./node_modules/antd/es/modal/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","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","isFinite","length","arr","indexOf","func","result","index","push","values","toString","type","undefined","Array","isArray","_typeof","obj","iterator","constructor","elements","len","k","keys","attrs","_keys","getPrototypeOf","proto","predicate","_predicate","a","fromIndex","data","rst","concat","reduce","prev","curr","Math","max","min","filterValues","filter","v","isNaN","tmp","arrPrototype","splice","indexes","last","previous","fn","init","str","comparer","b","keys_1","prop","sort","uniq","cache","Map","item","has","set","tmpMap","j","val","head","condition","groupToMap","paramscondition_1","replace","split","row","unique","groups","array","base","round","substr","parseFloat","toFixed","Number","isInteger","isNumberEqual","precision","abs","maxItem","Infinity","minItem","RADIAN","PI","degree","toLowerCase","match","charAt","slice","toUpperCase","substring","objectProto","Ctor","Element","HTMLDocument","requestAnimationFrame","window","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","f","setTimeout","cancelAnimationFrame","handler","webkitCancelAnimationFrame","mozCancelAnimationFrame","msCancelAnimationFrame","clearTimeout","_mix","dist","mix","src1","src2","src3","clone","wait","immediate","timeout","context","this","args","arguments","later","apply","callNow","TypeError","memoized","_i","resolver","_deepMix","src","level","maxLevel","size","isEqual","other","valueKeys","otherKeys","identity","forEach","keyArr","defaultValue","path","idx","includes","options","leading","Date","now","throttled","remaining","trailing","cancel","prefix","ctx","memoize","text","font","fontSize","fontFamily","fontWeight","fontStyle","fontVariant","document","createElement","getContext","join","measureText","width","currentText","currentWidth","PLACEHOLDER_WIDTH","leftText","leftWidth","maxWidth","default_1","map","def","clear","_extendStatics","setPrototypeOf","__proto__","__extends","String","__","_assign","assign","__rest","e","getOwnPropertySymbols","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","done","then","__generator","body","y","g","_","label","sent","trys","ops","verb","op","pop","__values","__read","ar","error","__spreadArrays","il","jl","__spreadArray","to","from","pack","flow","flows","param","template","source","RegExp","getContainerSize","ele","height","style","getComputedStyle","clientWidth","parseInt","paddingLeft","paddingRight","clientHeight","paddingTop","paddingBottom","findGeometry","view","geometries","find","getAllElements","geometry","getAllElementsRecursively","views","subView","getAllGeometriesRecursively","transformLabel","labelOptions","formatter","content","catmullRom2bezier","crp","z","constraint","isLoop","pointList","cp1","cp2","controlPointList","points","smooth","prevPoint","nextPoint","cps","hasConstraint","point","sub","scale","d0","distance","d1","sum","v1","v2","cp0","add","shift","getSplinePath","isInCircle","constaint","first","prePoint","x","length_1","points2Path","splinePath","unshift","kebabCase","word","_a","_extends","target","_defineProperty","configurable","writable","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","defineProperties","hasOwn","classNames","classes","arg","argType","inner","_slicedToArray","arrayWithHoles","_s","_e","_arr","_n","_d","err","unsupportedIterableToArray","nonIterableRest","legend","params","chart","colorField","seriesField","tooltip","interaction","interactions","enable","removeInteraction","cfg","animation","animate","theme","state","slider","option","scrollbar","axes","meta","scales","axis","field","annotation","annotationOptions","annotationController","getController","annotations","annotationOption","limitInPlot","yAxis","some","transformations","coordinateType","coordinate","actions","_toConsumableArray","arrayLikeToArray","iterableToArray","LAYER","DIRECTION","COMPONENT_TYPE","VIEW_LIFE_CIRCLE","GEOMETRY_LIFE_CIRCLE","PLOT_EVENTS","ELEMENT_STATE","GROUP_Z_INDEX","GROUP_ATTRS","FIELD_ORIGIN","ENGINES","registerEngine","engine","isNumber","getChartSize","autoFit","w","h","getElementSize","_super","Base","_this","destroyed","visible","show","changeVisible","hide","destroy","off","invert","Attribute","names","linear","callback","_parseCfg","mapping","_toOriginParam","getLinearValue","percent","steps","floor","leftPercent","start","getNames","getFields","getScale","defaultCallback","_getAttributeValue","_b","_c","ret","isCategory","translate","isLinear","Color","gradient","Opacity","Position","scaleX","scaleY","xi","yi","Shape","Size","ATTRIBUTE_MAP","getAttribute","registerAttribute","ctor","Error","Coordinate","isRect","isHelix","isPolar","isReflectX","isReflectY","end","matrix","isTransposed","originalMatrix","initial","center","update","convertDim","dim","isReflect","invertDim","applyMatrix","tag","vector","transformMat3","invertMatrix","inverted","convert","convertPoint","invertPoint","rotate","radian","leftTranslate","leftRotate","reflect","s1","s2","leftScale","transpose","getCenter","getWidth","getHeight","getRadius","radius","resetMatrix","Cartesian","Helix","startAngle","endAngle","innerRadius","maxRadius","thi","newY","cos","sin","subtract","angleTo","rMin","Polar","oneBox","getOneBox","oneWidth","maxX","minX","oneHeight","maxY","minY","left","top","circleCenter","polarRadius","vPoint","vStart3","vStart2","angle","xPercent","yPercent","xs","ys","COORDINATE_MAP","registerCoordinate","LineAxis","Line","CircleAxis","Circle","LineGrid","CircleGrid","CategoryLegend","Category","ContinuousLegend","Continuous","HtmlTooltip","Html","uniqueValues","Set","mid","polarToCartesian","centerX","centerY","angleInRadian","getSectorPath","startAngleInRadian","endAngleInRadian","innerStart","innerEnd","middlePoint","innerMiddlePoint","circlePathCommands","arcSweep","sectorPathCommands","getArcPath","getAngle","shapeModel","box","getPointsBox","coordStartAngle","diffAngle","getReplaceAttrs","sourceShape","targetShape","originAttrs","attr","newAttrs","isBetween","omit","sourceArray","targetArray","e_1","sourceArray_1","sourceArray_1_1","e_1_1","BBox","fromRange","fromObject","bbox","contains","child","subBBox","merge","cut","direction","TOP","TOP_LEFT","TOP_RIGHT","RIGHT","RIGHT_TOP","RIGHT_BOTTOM","BOTTOM","BOTTOM_LEFT","BOTTOM_RIGHT","LEFT","LEFT_TOP","LEFT_BOTTOM","shrink","gap","right","bottom","expand","exceed","collide","isPointIn","getXDimensionLength","sqrt","pow","getDistanceToCenter","getAngleByPoint","atan2","getCoordinateClipCfg","margin","endState","startAngle_1","endAngle_1","center_1","radius_1","startState","ratio","diff","dateRegex","inferScaleType","scaleDef","attrType","geometryType","createScaleByField","validData","test","getDefaultType","getName","alias","getDefaultCategoryScaleRange","range","count","offset","isFullCircle","getAxisRegion","region","getLineAxisRelativeRegion","getCircleAxisRelativeRegion","isVertical","getAxisFactorByRegion","getAxisThemeCfg","axisTheme","getAxisTitleOptions","axisOptions","getCircleAxisCenterRadius","startVector","normalVector","getAxisOption","getAxisDirection","axisOption","getAxisTitleText","Facet","facets","getDefaultCfg","container","createContainer","getData","generateFacets","render","renderViews","clearFacetViews","remove","facetToView","facet","padding","createView","beforeEachView","eachView","afterEachView","getLayer","FORE","addGroup","createFacetViews","removeView","parseSpacing","viewBBox","spacing","getFieldValues","getRegion","rows","cols","xIndex","yIndex","xSpacing","ySpacing","xRatio","yRatio","showTitle","fields","getDefaultTitleCfg","fill","getTheme","processAxis","getOptions","coordinateOption","getXYFields","xOption","yOption","getXAxisOption","getYAxisOption","getFacetDataFilter","conditions","datum","Facets","Action","addAction","applyCfg","removeAction","CallbackAction","execute","ActionCache","getActionClass","actionName","actionOption","registerAction","ActionClass","createCallbackAction","action","_convertArr","coord","_convertArcPath","nextCp0","getLinePath","_points2path","convertPolarPath","pre","cur","transposed","subPath","curPoint","xDim","angleRange","flag","middleConvertPoint","_convertPolarPath","_filterFullCirleLine","getMaskBBox","tolerance","maskBBox","event","getCanvasBBox","getCurrentElement","element","getDelegationObject","delegateObject","isElementChange","gEvent","fromShape","toShape","isList","component","isSlider","isMask","getMaskedElements","maskPath","maskShape","getMaskPath","getElements","pathToPoints","el","shapePoints","shape","shapeBBox","getIntersectElements","getSiblingMaskElements","sibling","getSiblingPoint","geom","getElementsByState","stateName","getElementsBy","hasState","getElementValue","record","getModel","box1","box2","seg","getComponents","co","p1","p2","dx","dy","isInBox","getSilbings","parent","siblings","normalPoint","getCoordinate","point2Normalize","isInRecords","records","xFiled","yField","isIn","getScaleByField","Context","cacheMap","getAction","getCurrentPoint","HTMLElement","getCanvas","getPointByClient","clientX","clientY","getCurrentShape","isInPlot","isPointInPlot","isInShape","isInComponent","components","getBBox","Interaction","initEvents","clearEvents","parseAction","actionStr","createAction","methodName","executeAction","actionObject","STEP_NAMES","GrammarInteraction","callbackCaches","emitCaches","initContext","stepArr","stepName","getActionCallback","bindEvent","trigger","offEvent","subSteps","actionArr","argArr_1","isAllowStep","currentStepName","isAllowExecute","getKey","once","isEnable","enterStep","afterExecute","actionCallback","debounce","throttle","eventName","nameArr","addEventListener","on","removeEventListener","Interactions","registerInteraction","createInteraction","interaciton","getInteraction","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","autoRotate","position","axisTitleSpacing","axisTitleTextFillColor","axisTitleTextFontSize","lineHeight","axisTitleTextLineHeight","textBaseline","iconStyle","axisDescriptionIconFillColor","autoEllipsis","autoHide","minGap","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","transform","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","common","verticalLimitLength","layout","legendVerticalPadding","legendHorizontalPadding","continuous","track","rail","sliderRailHeight","defaultLength","sliderRailWidth","sliderRailFillColor","sliderRailBorderColor","sliderRailBorder","align","sliderLabelTextFillColor","sliderLabelTextFontSize","sliderLabelTextLineHeight","sliderHandlerWidth","sliderHandlerFillColor","sliderHandlerBorderColor","slidable","showContent","follow","showCrosshairs","showMarkers","shared","enterable","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","crosshairs","tooltipCrosshairsBorderColor","tooltipCrosshairsBorder","textBackground","domStyles","CONTAINER_CLASS","visibility","zIndex","transition","tooltipContainerFillColor","tooltipContainerFillOpacity","boxShadow","tooltipContainerShadow","borderRadius","tooltipContainerBorderRadius","color","tooltipTextFillColor","tooltipTextFontSize","tooltipTextLineHeight","TITLE_CLASS","marginBottom","marginTop","LIST_CLASS","listStyleType","LIST_ITEM_CLASS","marginLeft","marginRight","MARKER_CLASS","display","VALUE_CLASS","annotationArcBorderColor","annotationArcBorder","annotationLineBorderColor","annotationLineDash","annotationLineBorder","annotationTextFillColor","annotationTextBorderColor","annotationTextBorder","annotationTextFontSize","annotationRegionBorder","annotationRegionBorderColor","annotationRegionFillColor","annotationRegionFillOpacity","image","dataMarker","annotationDataMarkerLineLength","autoAdjust","dataRegion","backgroundStyle","cSliderBackgroundFillColor","cSliderBackgroundFillOpacity","foregroundStyle","cSliderForegroundFillColor","cSliderForegroundFillOpacity","handlerStyle","cSliderHandlerWidth","cSliderHandlerHeight","cSliderHandlerFillColor","cSliderHandlerFillOpacity","cSliderHandlerBorderColor","cSliderHandlerBorder","cSliderHandlerBorderRadius","highLightFill","cSliderHandlerHighlightFillColor","textStyle","cSliderTextFillColor","cSliderTextFillOpacity","cSliderTextFontSize","cSliderTextLineHeight","cSliderTextFontWeight","cSliderTextBorderColor","cSliderTextBorder","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","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","snapEqual","value1","value2","filterYValue","yScale","getYScale","yValue","originData","getXDistance","scaleValues","numericValue","getTooltipValueScale","attributes","attribute","getAttributesForLegend","attributes_1","attributes_1_1","tmpScale","scaleDefs","xScale","getXScale","findDataByPoint","xField","xValue","rangeMax","rangeMin","getXValueByPoint","firstXValue","firstYValue","lastXValue","isYArray","firstIdx","lastIdx","middleIdx","getTooltipItems","showNil","e_2","tooltipTitle","titleField","titleScale","getText","getTooltipTitle","tooltipOption","items","addItem","itemValue","mappingData","callbackParams","itemCfg","fields_1","fields_1_1","e_2_1","valueScale","eachValue","getTooltipValue","nameScale","groupScales","getGroupScales","getTooltipName","getTooltipItemsByFindData","tooltipCfg","e_3","dataArray","dataArray_1","dataArray_1_1","elementId","getElementId","elementsMap","e_3_1","getTooltipItemsByHitShape","getShape","findItemsFromView","e_4","reversed","geometries_1","geometries_1_1","tooltipItems","reverse","e_4_1","parsePadding","paddingArray","LOAD_COMPONENT_CONTROLLERS","registerComponentController","plugin","CoordinateController","wrapperOption","hasAction","isTheta","props","C","execActions","adjust","sx","sy","getOption","includeActions","Event","fromData","originalEvent","defaultLayout","controller","ScalePool","syncScales","createScale","finalScaleDef","cacheScaleMeta","getScaleMeta","cacheScale","cacheScaleDef","sync","scaleKeys","syncKey","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","isContinuous","change","sm","newScale","syncScale","getSyncKey","removeFromSyncScales","scaleMeta","deleteScale","PaddingCal","instance","inc","getPadding","calculatePadding","isAutoPadding","paddingCal","axisComponents","paddingComponents","otherComponents","AXIS","LEGEND","SLIDER","SCROLLBAR","GRID","TOOLTIP","bboxObject","getLayoutBBox","componentPadding","componentBBox","defaultSyncViewPadding","PC","syncPadding","autoPadding","View","controllers","usedControllers","scalePool","layoutFunc","isPreMouseInPlot","isDataChanged","isCoordinateChanged","createdScaleKeys","onCanvasEvent","evt","createViewEvent","doPlotEvent","emit","onDelegateEvents","id","canvas","backgroundGroup","middleGroup","foregroundGroup","appendPadding","syncViewPadding","setLayout","calculateViewBBox","initComponentController","initOptions","isUpdate","payload","BEFORE_RENDER","paint","AFTER_RENDER","BEFORE_CLEAR","filteredData","coordinateInstance","labelsContainer","getRootView","AFTER_CLEAR","BEFORE_DESTROY","draw","console","warn","filters","legendOption","scaleOption","guide","coordinateCfg","coordinateController","facetInstance","status","updateOptions","coordinateBBox","opt","existInteraction","changeData","BEFORE_CHANGE_DATA","AFTER_CHANGE_DATA","sharedOptions","legends","removedView","getYScales","yScales","getScalesByDim","dimType","defaultKey","getScaleKey","getOriginalData","getGeometries","layer","BG","MID","isPointInCoordinate","getLegendAttributes","getGroupAttributes","getXY","xScales","showTooltip","hideTooltip","lockTooltip","unlockTooltip","isTooltipLocked","getSnapRecords","dataLen","snapRecords","filterData","every","filterFieldData","adjustCoordinate","curStart","curEnd","bl","tr","renderDataRecursive","BEFORE_PAINT","renderPaddingRecursive","renderLayoutRecursive","renderBackgroundStyleShape","renderPaintRecursive","AFTER_PAINT","backgroundStyleRectShape","addShape","capture","toBack","initComponents","syncViewPaddingFn","doLayout","setClip","paintGeometries","renderComponents","currentScaleDef","mergedScaleDef","doFilterData","createCoordinate","initGeometries","renderFacet","controllerName","currentInPlot","newEvent","TYPE","MOUSE_LEAVE","LEAVE","MOUSE_ENTER","ENTER","createOrUpdateScales","getGeometryScales","adjustScales","getScaleFields","groupedFields","getGroupedFields","getGroupFields","adjustCategoryScaleRange","xyScales","scaleOptions","isIdentity","doAnimation","canvasRegion","events","geometryOption","createGeometry","interactionOption","viewOption","annotationComponent","eventCallback","rest","geometry_1","registerGeometry","Chart","renderer","pixelRatio","localRefresh","supportCSSTransform","_f","defaultInteractions","getElementById","wrapperElement","appendChild","G","getEngine","Canvas","onResize","forceFit","updateCanvasStyle","bindAutoFit","initDefaultInteractions","aria","ariaOption","ATTR","removeAttribute","setAttribute","changeSize","BEFORE_CHANGE_SIZE","AFTER_CHANGE_SIZE","dom","unbindAutoFit","parentNode","removeChild","verticalAlign","Controller","includeOption","Tooltip","isLocked","isVisible","getTitle","dataPoint","getTooltipCfg","lastItems","lastTitle","tooltipMarkersGroup","renderTooltip","getItemsAfterProcess","renderTooltipMarkers","isCrosshairsFollowCursor","renderCrosshairs","xCrosshair","yCrosshair","setCapture","guideGroup","reset","tooltipCrosshairsGroup","items_1","items_1_1","itemArr","itemArr_1","itemArr_1_1","snapItem","items_2","items_2_1","aItem","yDistance","uniqItems","_loop_1","subItem","isCursorEntered","getContainer","getBoundingClientRect","processOption","processCustomContent","defaultCfg","currentCustomContent","customContent","getTooltipMarkersGroup","rootView","items_3","items_3_1","getClip","attrs_1","markerDefaultCfg","crosshairsType","renderXCrosshairs","renderYCrosshairs","getViewWithGeometry","getTooltipCrosshairsGroup","getCrosshairsText","textCfg","firstItem","getGuideGroup","toFront","e_5","childView","e_5_1","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","BACKGROUND_SHAPE","labelShape","states","shapeFactory","offscreenGroup","elementIndex","model","shapeType","getShapeType","drawShape","setShapeInfo","getOffscreenGroup","newShape","origin","syncShapeStyle","getStates","getAnimateCfg","statesStyle","setState","stateStatus","sortZIndex","zIndexReversed","setZIndex","offscreenShape","eventObject","clearStates","labelBBox","getStatesStyle","stateOption","defaultShapeType","stateTheme","getStateStyle","shapeKey","stateCfg","shapeStyle","cfg_1","AFTER_DRAW_ANIMATE","name_1","BEFORE_DRAW_ANIMATE","GroupCtor","getGroupBase","isGroup","clip","newClip","children","newChildren","name_2","stopAnimate","GEOMETRY_LABELS_MAP","GEOMETRY_LABELS_LAYOUT_MAP","registerGeometryLabel","registerGeometryLabelLayout","layoutFn","ShapeFactoryBase","getShapePoints","shapePoint","getPoints","getDefaultPoints","getDefaultStyle","geometryTheme","getMarker","markerCfg","parsePath","parsedPath","convertNormalPath","parsePoint","parsePoints","ShapeFactoryMap","registerShapeFactory","factoryName","className","geomObj","registerShape","factory","shapeObj","getShapeFactory","isModelChange","currentModel","preModel","parseFields","keyItem","added","updated","removed","keyIncluded","Geometry","animateOption","attributeOption","lastElementsMap","generatePoints","beforeMappingData","adjusts","idFields","hasSorted","sortable","intervalPadding","dodgePadding","useDeferredLabel","userTheme","positionCfg","createAttrOption","adjustCfg","adjustOption","styleFunc","styleOption","secondParam","thirdParam","labelOption","customInfo","customOption","setCfg","initAttributes","processData","adjustScale","lastAttributeOption","defaultSize","beforeMapping","updateElements","canDoGroupAnimation","yMinPoint","getYMinValue","minYPoint","doGroupAppearAnimate","deferred","renderLabels","requestIdleCallback","geometryLabel","getDefaultValue","attrName","getAttributeValues","getAdjust","adjustType","getShapeMarker","shapeName","xVal","yVal","length_2","dodgeAdjust","dodgeBy","attributeType","eachOpt","length_3","uniqMap","groupFields","length_4","attributeName","getXField","getYField","getShapes","mappingArray","xScale_1","xField_1","obj1","obj2","updateStackRange","createShapePointsCfg","normalizeValues","y0","mappingDatum","shapeCfg","getDrawCfg","defaultStyle","getStyleCfg","nextPoints","mappingDataArray","keyDatum","keyIndex","finalKey","added_1","added_1_1","updated_1","updated_1_1","currentShapeCfg","preShapeCfg","removed_1","removed_1_1","getLabelType","labelType","attrCfg","AttributeCtor","state_1","categoryScales","groupedArray","groupData","beforeAdjust","subData","subLen","categoryScales_1","categoryScales_1_1","adjustData","xScale_2","xDimensionLength","groupNum","sizeAttr","adjustNames","dodgeRatio","reverseOrder","adjustCtor","dimValuesMap","adjustInstance","process","appendConditions","values_1","values_1_1","eachGroup","mergeArray","tmpMin","tmpMax","length_5","currentData","generateShapePoints","nextData","shapeAttr","newRecord","_origin","mappingRecord","rstX","rstY","xLen","yLen","GeometryLabelsCtor","labelsMap","elementLabels","BEFORE_RENDER_LABEL","labelsRenderer","shapesMap","labelGroup","labelGroupId","labelChildren","getChildren","entries","AFTER_RENDER_LABEL","getMatrix","setMatrix","rotateRadian","getRotateMatrix","findLabelTextShape","getLabelBackgroundInfo","labelItem","boxPadding","rotation","checkShapeOverlap","dones","updateLabel","updateAnimateCfg","fromChild","toChild","getChildByIndex","getCount","Labels","lastShapesMap","createOffscreenGroup","renderLabel","renderLabelLine","renderLabelBackground","adjustLabel","origin_1","currentAnimateCfg","currentShape","deleteShape","shapeAppendCfg","isShape","layouts","all","labelShapes","geometryShapes","labelItems","labelLineCfg","labelContentShape","backgroundShape","findAll","offsetX","offsetY","avg","GeometryLabel","getLabelItems","mapppingArray","labelCfgs","getLabelCfgs","labelCfg","labelContent","total","subIndex","getLabelPoint","getLabelAlign","getLabelsRenderer","getGeometryShapes","getDefaultLabelCfg","getThemedLabelCfg","defaultLabelCfg","setLabelPosition","labelPointCfg","getLabelOffset","getOffsetVector","getLabelOffsetPoint","factor","offsetPoint","getDimValue","isAvg","isFunnel","centroid","former","current","getPolygonCentroid","point1","point2","getLabelId","labelId","labelScales","callbackCfg","originText","getLabelText","originValues","labelTexts","subVal","actualOffset","getMappingValue","restArgs","MarkerSymbols","diffX","diffY","STROKES_SYMBOLS","setMarkerSymbol","getLegendLayout","startsWith","getLegendItems","themeMarker","userMarker","field_1","colorAttr_1","shapeAttr_1","defaultColor_1","isInPolar_1","getTicks","scaleValue","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","Util","zoom","applyToMatrix","antvDark","legendSpacing","overflowLabelFillColorDark","overflowLabelFillColorLight","x1","y1","x2","y2","inBox","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","rad","arrowShape","isArrowShape","rotateAtPoint","_addCustomizedArrow","startArrow","endArrow","arrowAttrs","arrowFill","arrowStroke","arrowLineWidth","restAttrs","getShortenOffset","addStartArrow","addEndArrow","SHAPE_ATTRS_MAP","applyAttrsToContext","setLineDash","globalAlpha","drawChildren","skipDraw","checkRefresh","refreshElements","parent_1","refresh","setChildrenRefresh","checkChildrenRefresh","hasChanged","checkElementRefresh","clearChanged","cacheCanvasBBox","isInView","drawPath","arcParamsCache","currentPoint","startMovePoint","beginPath","command","tangent","getStartTangent","getEndTangent","moveTo","lineTo","quadraticCurveTo","bezierCurveTo","arcParams","ellipse","closePath","refreshElement","changeType","_cacheCanvasBBox","getRefreshRegion","region1","region2","cacheBox","validCache","validBBox","Group","onCanvasChange","getShapeBase","_applyClip","save","createPath","restore","_afterDraw","xArr","yArr","viewRange","getViewRange","allowDraw","ShapeBase","getDefaultAttrs","calculateBBox","getHitLineWidth","bboxMethod","halfLineWidth","isClipShape","clipShape","getCanvasViewBox","canvasBBox","strokeAndFill","afterDrawPath","refX","refY","isInStrokeOrPath","absDistance","ellipseDistance","squareX","squareY","Ellipse","halfLineWith","isCanvas","nodeName","ImageShape","initAttrs","_setImage","isOnlyHitBox","_afterLoading","image_1","onAttrChange","originValue","swidth","sheight","drawImage","inLine","halfWidth","pointToLine","setArrow","startArrowDistance","endArrowDistance","startArrowShape","endArrowShape","getTotalLength","getPoint","pointAt","Symbols","Marker","_resetParamsCache","_getR","_getPath","method","isPointInPath","dcmp","onSegment","q","isInPolygon","isHit","hasArc","cmd","extractPolygons","polygons","polylines","isPointInStroke","segments","segment","pointDistance","vec3","isInPolygons","Path","_setPathArr","getSegments","extractResutl","totalLength","_calculateCurve","_setTcache","subt","tCache","curve","nextSeg","pathToCurve","segmentT","segmentL","segmentN","tempLength","endPoint","startTangent","endTangent","inPolyline","isClose","Polygon","PolyLine","_resetCache","Rect","inRect","r1","r2","r3","r4","parseRadius","Text","_assembleFont","_setText","textArr","_getSpaceingY","_drawTextArr","subY","spaceingY","subText","fillText","strokeText","_drawText","getRefXY","totalMatrix","getTotalMatrix","invertFromMatrix","preTest","isClipped","curShape","getPixelRatio","devicePixelRatio","ceil","createDom","setDOMSize","_clearFrame","clearRect","_getRefreshRegion","viewRegion","minXArr","minYArr","maxXArr","maxYArr","getMergedRegion","mergeView","drawFrame","_startDraw","_drawAll","_drawRegion","removeDom","version","SHAPE_TO_TAGS","polyline","SVG_ATTR_MAP","fillStyle","strokeStyle","lineDashOffset","miterLimit","preserveAspectRatio","createSVGElement","createElementNS","getParent","sortDom","sorter","childList","fragment","createDocumentFragment","setTransform","hasAttribute","addClip","parentChildren","clipPathEl","defsEl","targetIndex","childNodes","node","nodeType","currentIndex","insertBefore","targetNext","children_1","innerHTML","isEntityGroup","afterAttrsChange","targetAttrs","canFill","canStroke","shadow","_setColor","trim","addGradient","addPattern","blur","addShadow","setShadow","elementFromPoint","isEqualNode","Dom","setAttr","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","baseline","textLen_1","arr_1","stops","Gradient","self","ATTR_MAP","shadowOpacity","SHADOW_DIMENSION","Shadow","_parseShadow","config","Arrow","_setDefaultPath","_setMarker","Clip","shapeEl","Pattern","Defs","defaultArrow","findById","arrow","autoDraw","ev","srcElement","tagName","keyData","getShapeInfo","getPointsAndData","registeredShape","topLinePoints_1","bottomLinePoints_1","pointsData","parsedPoints","pathPoints","eachPoints","getConstraint","pointInfo","yItem","Area","startOnZero","Edge","Heatmap","paletteCache","prepareRange","prepareSize","blur_1","prepareGreyScaleBlurredCircle","drawWithRange","clearShadowCanvasCtx","getDefaultSize","grayScaleBlurredCanvas","getGrayScaleBlurredCanvas","valueField","getShadowCanvasCtx","data_1","data_1_1","alpha","drawGrayScaleBlurredCircle","colored","getImageData","colorize","imageShape","getImageShape","ticks","shadowCanvas","colorAttr","pixels","palette","rgb2arr","getRectPoints","yMin","yMax","xMin","xMax","getRectPath","isClosed","firstPoint","minLength","getBackgroundRectPath","p0","isReflectYTransposed_1","bump","opposite","getFunnelPath","isPyramid","swap","group","backgroundCfg","backgroundPath","_g","_h","p3","_j","getRectWithCornerRadius","coor","getIntervalRectPath","xValues","sourceArr","findMinDistance","normalizedSize","wr","dodgeCount","mergeData","getDodgeCount","normalizedMaxColumnWidth","normalizedMinColumnWidth","Interval","nice","SHAPES","drawPoints","pointPosition","points_1","points_1_1","Point","subX","temp","xOffset","yOffset","Schema","sizeArr","maxValue","num","normalizeSize","_size","isMin","isMax","Violin","_sizeField","sizeField","getCPath","getQPath","getArcShapePath","arc1","arc2","getArcShapeWeightPath","c1","c2","getSmoothPath","CORNER_PERCENT","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","getLabelValueDir","dir","point0","nextP0","nextP1","HALF_PI","PolarLabel","labelEmit","arcPoint","isToMiddle","getMiddlePoint","getArcPoint","getPointAngle","isLabelEmit","labelPositionCfg","getCirclePoint","getLabelRotate","labelAngle","asin","PieLabel","isLabelLimit","plotRange","invisible","overlapping","startY","endY","totalHeight","MIN_VALUE","boxes","targets","pos","previousBox","posInCompositeBox","Greedy","bitmap","xGap","yGap","hasGap","fillGap","adjustLabelPosition","getAxes","deg","getProjection","scalars","isProjectionOverlap","projection1","projection2","isValidBox","intersect","isIntersectRect","rect1Points","rect2Points","MyWorker","url","queue","worker","Worker","onmessage","onmessageerror","post","onError","postMessage","terminate","code","generateUtils","methods","eventData","JSON","parse","blob","Blob","BlobBuilder","append","getBlob","URL","createObjectURL","createWorker","preset","shouldInShape","textShape","textBBox","shouldInShapeSingle","hasSome","compare","rightText","measureTextWidth","doScaleAnimate","endMatrix","direct","scaledMatrix","transformShape","arcPath","getArcStartPoint","getArcInfo","arcPaths","firstArcPathCommand","lastArcPathCommand","firstIndex","lastIndex","firstStartPoint","lastStartPoint","firstStartAngle","firstEndAngle","lastStartAngle","lastEndAngle","doShapeZoom","getFactTitleConfig","getAnglePoint","renderTitle","avgAngle","facetR","facetData","columnValue","columnField","columnIndex","columnValuesLength","rowValue","rowField","rowIndex","rowValuesLength","List","colValues","getPageCount","getRowCol","col","pageSize","Matrix","columnTitle","rowTitle","facetIndex","Mirror","columnValues","rowValues","Tree","afterChartRender","drawLines","rootFacet","getRows","getChildFacets","setRegion","forceColIndex","xWidth","yWidth","leafs","isLeaf","levelFacets","getFacetsByLevel","levelFacets_1","levelFacets_1_1","originColIndex","getRegionIndex","addFacetLines","subFacet","subRegion","middle1","middle2","drawLine","getMedian","getNormalizedValue","scaled","ANNOTATIONS_AFTER_RENDER","Annotation","foregroundContainer","backgroundContainer","onAfterRender","updateOrCreate","getCacheKey","syncCache","updateCache","clearComponents","doWhat","createAnnotation","getAnnotationTheme","getAnnotationCfg","isTop","NONE","ANNOTATION","extra","regionFilter","html","parsePosition","xPos","yPos","parsePercentPosition","getRegionPoints","startIndex","viewData","startXValue","endXValue","topLeft","getCoordinateBBox","sp","ep","textPoint","textContent","start_5","end_5","lineLength","apply_1","shapes_1","addShapes_1","elem","render_1","restOptions","_k","html_1","getComponentContainer","newCache","getGridThemeCfg","getLineGridItems","tickValue","preTick","currentTick","currentValue","middleValue","getCircleGridItems","preValue","showGrid","userGrid","themeGrid","OMIT_CFG","AXIS_DEFAULT_ANIMATE_CFG","Axis","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","Legend","layoutBBox","maxWidthRatio","maxHeightRatio","maxSize","getCategoryLegendSizeCfg","maxHeight","setLocation","existCo","getComponentById","customCfg","getCategoryCfg","createCustomLegend","loopLegends","getContinuousCfg","createFieldLegend","doEach","looped","createContinuousLegend","createCategoryLegend","containMin","containMax","attrValue","attrLegendCfg","mergeLegendCfg","custom","themePageNavigator","userPageNavigator","itemMarker","getCustomLegendItems","baseCfg","categoryCfg","vw","Slider","onChangeFn","resetMeasure","onValueChange","changeViewData","getSliderCfg","updateSlider","createSlider","measureSlider","getMinMaxText","minText","maxText","trendCfg","getThemeOptions","ticks_1","dataSize","xTickCount","minIndex","maxIndex","xScaleValues","Scrollbar","getValidScrollbarCfg","originalAnimate","getScrollRange","trackLen","thumbLen","updateScrollbar","createScrollbar","measureScrollbar","getScrollbarComponentCfg","isHorizontal","thumbOffset","cnt","xScaleCfg","yScalesCfg","setValue","getValue","getScrollbarTheme","thumbHighlightColor","restStyles","getScrollbarData","getStep","getCnt","startIdx","endIdx","tickMethod","realConfig","categorySize","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","timeStamp","lastTimeStamp","preLoc","location","curLoc","SiblingTooltip","siblingPoint","EllipsisText","tipContent","tooltipStyles","StateBase","setElementState","setStateEnable","clearViewState","getItem","ElementState","ignoreListItemStates","isItemIgnore","list","setStateByComponent","setElementsStateByItem","setStateByElement","isMathItem","event_1","toggle","ElementActive","LinkByColor","getColorScale","getLinkPath","nextElement","nextBBox","addLinkShape","activeStyle","linkByElement","getElementsByField","group_1","linkGroup","count_1","nextEl","removeLink","link","unlink","ElementRangeState","isStarted","effectSiblings","effectByRecord","setSiblingsState","allElements","setSiblingsStateByRecord","setElementsState","effectElements","ElementRangeActive","ElementSingleState","ElementSingleActive","STATUS_UNACTIVE","STATUS_ACTIVE","clearHighlight","setHighlightBy","INACTIVE","ACTIVE","ElementHighlight","setElementHighlight","activeElements","allCancel_1","highlight","HighlightColor","highlightElements","HighlightX","EVENTS","ElementRangeHighlight","BEFORE_HIGHLIGHT","AFTER_HIGHLIGHT","ElementSingleHighlight","ElementRangeSelected","ElementMultipleSelected","ElementSingleSelected","ListState","ignoreItemStates","getTriggerListInfo","info","getAllowComponents","allowSetStateByElement","clearAllComponentsState","clearItemsState","componentNames","allowSetStateByItem","ignoreStates","setItemsState","setItemState","getItems","triggerInfo","ListActive","ListHighlight","activeItems","getItemsByState","ListSelected","ListUnchecked","STATUS_UNCHECKED","STATUS_CHECKED","ListChecked","setCheckedBy","list_1","checked","ListFocus","clickedItem","checkedItems","uncheckedItems","checkedItem","items_4","items_4_1","STATUS_SHOW","TIP_ID","ListRadio","showTip","hideTip","containerId","MaskBase","starting","moving","preMovePoint","emitEvent","createMask","maskAttrs","getMaskAttrs","draggable","updateMask","maskStyle","moveStart","move","moveEnd","resize","CircleMask","RectMask","clampPoint","DimRect","inPlot","normalStart","normalEnd","PathMask","addPoint","SmoothPathMask","getSpline","CursorAction","setCursor","cursor","pointer","crosshair","help","eResize","wResize","nResize","sResize","neResize","nwResize","seResize","swResize","nsResize","ewResize","zoomIn","zoomOut","DataFilter","filterView","unCheckedItems","scale_1","names_1","min_1","max_1","getFilter","minValue","RangeFilter","dims","hasDim","BEFORE_FILTER","normalCurrent","reRender","FILTER","AFTER_FILTER","BEFORE_RESET","RESET","AFTER_RESET","SiblingFilter","ElementFilter","maskElements_1","byRecord","filterByRecord","filterByBBox","maskElements","ButtonAction","buttonGroup","buttonCfg","getButtonCfg","drawButton","buttonShape","resetPosition","Drag","dragStart","drag","Move","isMoving","startMatrix","ScaleTranslate","cfgFields","cacheScaleDefs","resetDim","startCache","noramlCurrent","translateDim","translateLinear","zoomRatio","zoomDim","dRatio","zoomLinear","toMin","toMax","MousewheelScroll","scroll","wheelDelta","scrollbarController","currentRatio","nextStart","deltaY","isWheelDown","correction","nextRatio","AxisDescription","description","descriptionTooltipStyle","isPointInView","preventDefault","greedy","totalHeight_1","lineHeight_1","plotRange_1","halves_1","maxLabelsCountForOneSide","isRight","labelShapes_1","labelShapes_1_1","rPow2","dyPow2","antiCollision","innerPoint","itemX","itemY","maxTimes","dxdy","maxDelta","nt","times","accessedCache","spiralFill","memoKey","cb","res","stringify","regionMinX","regionMinY","regionMaxX","regionMaxY","finalX","finalY","translateX_1","textBox","DOT_WIDTH","labels_1","labels_1_1","labelOffset","RIGHT_HALF_KEY","separateLabels","totalR","labelsContainerRange","dxPow2","dx_offset","smoothConnector","atan","breakPoint","breakPoint3","xSign","slope1","slope2","E","drawLabelline","overflow","fillWhite","rgb","toRGB","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","showEnable","processing","rollback","out","transMat","fromTranslation","multiply","rotateMat","fromRotation","scaleMat","fromScaling","a1","ang","angleLargeThanPI","vertical","SOURCE_ATTRIBUTE_NAME","PLOT_CONTAINER_OPTIONS","Plot","getDefaultOptions","createG2","bindEvents","xAxis","chartSize","execAdaptor","bindSizeSensor","updateOption","stateObjects","addAnnotations","incoming","findIndex","removeAnnotations","_loop_2","unbindSizeSensor","adaptor","getSchemaAdaptor","triggerResize","unbind","BracketPeriod","freeze","Closed","Preview","Open","SecondChance","RootContext","createContext","bracketPeriod","getBracketPeriod","OPEN_DATE","computer","CLOSE_DATE","SECOND_OPEN_DATE","SECOND_CLOSE_DATE","RootContextProvider","initialized","setInitialized","useState","setBracketPeriod","pool","setPool","bracketsLoadError","setBracketsLoadError","bracketsLoaded","setBracketsLoaded","bracketsLoading","setBracketsLoading","primaryBrackets","setPrimaryBrackets","primaryPagy","setPrimaryPagy","secondChanceBrackets","setSecondChanceBrackets","secondChancePagy","setSecondChancePagy","authorizationHeaders","isAdmin","poolToken","userState","useAuthContext","navigate","useNavigate","useLayoutEffect","newPool","search","href","userPool","pools","fetch","encodeURI","credentials","headers","response","ok","json","catch","poolName","localStorage","removeItem","fetchLeaderboard","secondChance","page","order","pagination","WC_NAME","primary","second_chance","primary_pagy","second_chance_pagy","handlePoolChange","poolObject","setItem","Provider","useRootContext","useContext","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","tooltipFields","stepType","columnBackground","ext","marginRatio","widthRatio","groupField","otherAdaptor","KeyCode","MAC_ENTER","BACKSPACE","TAB","NUM_CENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","UP","DOWN","PRINT_SCREEN","INSERT","DELETE","ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","QUESTION_MARK","A","B","D","F","H","I","J","K","L","M","N","O","Q","R","S","T","U","V","W","X","Y","Z","META","WIN_KEY_RIGHT","CONTEXT_MENU","NUM_ZERO","NUM_ONE","NUM_TWO","NUM_THREE","NUM_FOUR","NUM_FIVE","NUM_SIX","NUM_SEVEN","NUM_EIGHT","NUM_NINE","NUM_MULTIPLY","NUM_PLUS","NUM_MINUS","NUM_PERIOD","NUM_DIVISION","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","NUMLOCK","SEMICOLON","DASH","EQUALS","COMMA","PERIOD","SLASH","APOSTROPHE","SINGLE_QUOTE","OPEN_SQUARE_BRACKET","BACKSLASH","CLOSE_SQUARE_BRACKET","WIN_KEY","MAC_FF_META","WIN_IME","isTextModifyingKeyEvent","keyCode","altKey","ctrlKey","metaKey","isCharacterKey","navigator","userAgent","isIconDefinition","icon","normalizeAttrs","acc","generate","rootProps","getSecondaryColor","primaryColor","normalizeTwoToneColors","twoToneColor","iconStyles","_excluded","twoToneColorPalette","secondaryColor","calculated","valid","message","onClick","restProps","styleStr","csp","prepend","displayName","getTwoToneColors","setTwoToneColors","_ref","setTwoToneColor","_normalizeTwoToneColo","_normalizeTwoToneColo2","Icon","ref","_classNames","spin","tabIndex","_React$useContext$pre","prefixCls","classString","iconTabIndex","svgStyle","msTransform","role","getTwoToneColor","formatPadding","clearDom","hasClass","cName","regionToBBox","pointsToBBox","createBBox","getValueByPercent","near","EPSILON","getBBoxWithClip","clipBBox","minX_1","maxX_1","minY_1","maxY_1","leftTop","leftBottom","rightTop","rightBottom","boxMinX","boxMaxX","boxMinY","boxMaxY","updateClip","newElement","newClipShape","clipCfg","toPx","number","getTextPoint","offsetPercent","human","TIME_ZONE","ABBREV_TIME_ZONE","warned","warning","note","noteOnce","textColor","activeTextColor","uncheckedColor","lineColor","regionColor","verticalAxisRotate","horizontalAxisRotate","descriptionIconStroke","descriptionIconFill","safeIsNaN","areInputsEqual","newInputs","lastInputs","second","_React$Component","LocaleProvider","getMemoizedContextValue","resultFn","newArgs","lastThis","lastArgs","lastResult","memoizeOne","localeValue","exist","locale","Modal","prevProps","_this$props","contextValue","defaultProps","defaultGetContainer","defaultCloseIcon","maxCount","notificationInstance","defaultDuration","defaultTop","defaultBottom","defaultPrefixCls","defaultPlacement","rtl","getPlacementStyle","placement","_args$placement","_args$getContainer","customizePrefixCls","_globalConfig","globalConfig","getPrefixCls","getIconPrefixCls","iconPrefixCls","cacheKey","cacheInstance","notificationClass","newInstance","notification","typeToIcon","success","CheckCircleOutlined","InfoCircleOutlined","CloseCircleOutlined","ExclamationCircleOutlined","durationArg","btn","onClose","_args$closeIcon","closeIcon","iconNode","closeIconToRender","CloseOutlined","autoMarginTag","closable","getNotificationInstance","getRCNoticeProps","api","open","notice","close","removeNotice","useNotification","innerInstance","proxy","noticeProps","holderCallback","_useRCNotification","_useRCNotification2","hookNotify","holder","hookApiRef","mergedPrefixCls","TinyColor","opts","originalInput","roundA","format","gradientType","isValid","isDark","getBrightness","isLight","toRgb","getLuminance","RsRGB","GsRGB","BsRGB","getAlpha","setAlpha","toHsv","hsv","toHsvString","toHsl","hsl","toHslString","toHex","allow3Char","toHexString","toHex8","allow4Char","toHex8String","toRgbString","toPercentageRgb","fmt","toPercentageRgbString","rnd","toName","hex","formatSet","Boolean","formattedString","hasAlpha","toNumber","lighten","amount","brighten","darken","tint","shade","desaturate","saturate","greyscale","hue","rgb1","rgb2","analogous","results","slices","part","complement","monochromatic","modification","splitcomplement","onBackground","fg","bg","triad","polyad","tetrad","increment","equals","dynamicStyleMark","random","registerTheme","globalPrefixCls","variables","formatColor","updater","fillColor","colorVal","baseColor","colorPalettes","primaryColors","primaryActiveColor","successColor","warningColor","errorColor","infoColor","cssList","canUseDom","globalIconPrefixCls","PASSED_PROPS","getGlobalPrefixCls","getGlobalIconPrefixCls","suffixCls","getRootPrefixCls","rootPrefixCls","autoInsertSpaceInButton","form","componentSize","space","virtual","dropdownMatchSelectWidth","legacyLocale","parentContext","componentDisabled","propName","propValue","memoedConfig","useMemo","prevConfig","currentConfig","prevKeys","currentKeys","memoIconContextValue","childNode","validateMessages","Form","defaultValidateMessages","_ANT_MARK__","SizeContext","DisabledContext","disabled","LocaleReceiver","ConfigContext","raf","caf","handle","rafUUID","rafIds","cleanup","wrapperRaf","callRef","leftTimes","realId","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_getPrototypeOf","_possibleConstructorReturn","assertThisInitialized","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","valueOf","Super","NewTarget","_setPrototypeOf","_inherits","subClass","superClass","FormContext","labelAlign","itemRef","NoStyleItemContext","FormProvider","providerProps","FormItemPrefixContext","FormItemInputContext","NoFormStyle","override","formItemInputContext","newFormItemInputContext","newContext","isFormItemInput","hasFeedback","feedbackIcon","FUNNEL_PERCENT","FUNNEL_MAPPING_VALUE","FUNNEL_CONVERSATION","FUNNEL_TOTAL_PERCENT","PLOYGON_X","PLOYGON_Y","DEFAULT_OPTIONS","minSize","conversionTag","_arrayWithHoles","_iterableToArrayLimit","minLen","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","arr2","NavigationContext","LocationContext","RouteContext","outlet","matches","invariant","cond","matchRoutes","routes","locationArg","basename","pathname","stripBasename","branches","flattenRoutes","score","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","matchRouteBranch","parentsMeta","parentPath","route","relativePath","caseSensitive","joinPaths","computeScore","paramRe","isSplat","initialScore","branch","matchedParams","matchedPathname","remainingPathname","matchPath","pathnameBase","normalizePathname","_compilePath","paramNames","regexpSource","paramName","endsWith","compilePath","_compilePath2","matcher","captureGroups","memo","splatValue","decodeURIComponent","safelyDecodeURIComponent","resolveTo","toArg","routePathnames","locationPathname","toPathname","routePathnameIndex","toSegments","fromPathname","_ref5","_ref5$search","_ref5$hash","hash","resolvePathname","normalizeSearch","normalizeHash","resolvePath","nextChar","paths","useHref","useInRouterContext","_useContext","_useResolvedPath","useResolvedPath","joinedPathname","getToPathname","endsWithSlash","createHref","useLocation","_useContext2","routePathnamesJson","activeRef","go","useParams","routeMatch","_renderMatches","parentMatches","reduceRight","Navigate","_ref2","Route","_props","Router","_ref3","_ref3$basename","basenameProp","_ref3$children","locationProp","_ref3$navigationType","navigationType","Pop","_ref3$static","staticProp","navigationContext","_locationProp","_locationProp$pathnam","_locationProp$search","_locationProp$hash","_locationProp$state","_locationProp$key","trailingPathname","Routes","_ref4","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","useRoutes","createRoutesFromChildren","fillFieldNames","fieldNames","mergedTitle","_title","convertTreeToData","rootNodes","dig","treeNode","_treeNode$props","dataNode","parsedChildren","flattenTreeData","treeNodeList","expandedKeys","_fillFieldNames","fieldTitles","fieldKey","fieldChildren","expandedKeySet","flattenList","mergedKey","fieldTitle","flattenNode","isEnd","traverseDataNodes","dataNodes","syntheticGetKey","_mergedConfig","externalGetKey","childrenPropName","_fillFieldNames2","mergeChildrenPropName","processNode","pathNodes","connectNodes","parentPos","nodes","subNode","convertDataToEntities","initWrapper","processEntity","onProcessFinished","legacyExternalGetKey","mergedExternalGetKey","posEntities","keyEntities","wrapper","entity","getTreeNodeProps","selectedKeys","loadedKeys","loadingKeys","checkedKeys","halfCheckedKeys","dragOverNodeKey","dropPosition","eventKey","expanded","loaded","loading","halfChecked","dragOver","dragOverGapTop","dragOverGapBottom","convertNodePropsToEventData","bound01","isOnePointZero","isPercent","isPercentage","clamp01","boundAlpha","convertToPercentage","pad2","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","_13","_23","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","qx","qy","attrs2","pcoms1","pcoms2","pfirst","pcom","processPath","nx","ny","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","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","bubbles","currentTarget","delegateTarget","defaultPrevented","propagationStopped","propagationPath","stopPropagation","removeFromArray","isBrowser","isParent","isAllowCapture","multiplyMatrix","a00","a01","a02","a10","a11","a12","a20","a21","a22","b00","b01","b02","b10","b11","b12","b20","b21","b22","multiplyVec2","det","MATRIX","CLONE_CFGS","RESERVED_PORPS","getFormatFromAttrs","fromAttrs","getFormatToAttrs","checkExistedAttrs","animations","onFrame","startTime","initAnimate","getDefaultMatrix","applyTo","currentMatrix","parentMatrix","Cons","_cloneArrayAttr","cons","cfgName","isAnimatePaused","isPaused","timeline","timer","initTimer","pauseCallback","resumeCallback","formatToAttrs","getTime","pathFormatted","addAnimator","toEnd","pauseAnimate","pauseTime","_paused","_pauseTime","resumeAnimate","emitDelegation","eventObj","relativeShape","getEvents","subName","emitDelegateEvent","this_1","translateX","translateY","newMatrix","targetX","targetY","ratioX","ratioY","rotateAtStart","SHAPE_MAP","setCanvas","setTimeline","Container","_applyChildrenMarix","preTotalMatrix","groupClass","tmpCfg","TmpGroupClass","_findShape","preParent","_applyElementMatrix","getFirst","getLast","contain","findByClassName","findAllByName","taskHead","taskTail","clockLast","clockNow","clockSkew","clock","performance","setFrame","clearNow","Timer","_call","_time","_next","time","restart","wake","timerFlush","t0","sleep","nap","poke","clearInterval","setInterval","stop","extend","definition","_darker","_brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","rgba","hsla","NaN","rgbConvert","rgb_formatHex","rgb_formatRgb","Hsl","hslConvert","hsl2rgb","basis","v0","v3","define","copy","channels","displayable","formatHsl","brighter","darker","gamma","nogamma","exponential","constant","rgbGamma","rgbSpline","spline","isNumberArray","ArrayBuffer","isView","DataView","genericArray","nb","na","setTime","reA","reB","am","bm","bs","bi","one","zero","string","date","numberArray","quadIn","quadOut","quadInOut","cubicIn","cubicOut","cubicInOut","polyIn","exponent","polyOut","polyInOut","halfPi","sinIn","sinOut","sinInOut","tpmt","expIn","expOut","expInOut","circleIn","circleOut","circleInOut","b1","b0","bounceIn","bounceOut","bounceInOut","overshoot","backIn","backOut","backInOut","tau","elasticIn","amplitude","period","elasticOut","elasticInOut","EASING_MAP","registerEasing","easeFn","IDENTITY_MATRIX","elapsed","cProps","interf","toPathPoint","fromPathPoint","cPathPoint","_update","Timeline","animators","removeAnimator","isAnimating","stopAllAnimations","animator","emitTargetEvent","bubbleEvent","isOverEvent","EventController","draggingShape","dragging","mousedownShape","mousedownPoint","_eventCallback","_triggerEvent","_onDocumentMove","_getPointInfo","_emitEvent","_onDocumentMouseUp","_afterDrag","_bindEvents","_clearEvents","_getEventObj","_getShape","clientPoint","getClientByEvent","getPointByEvent","leaveCanvas","preShape","_onmousedown","button","mousedownTimeStamp","_emitMouseoverEvents","_emitDragoverEvents","isCanvasEmit","_onmouseup","_ondragover","_onmousemove","timeWindow","isFirefox","initContainer","initDom","initTimeline","eventController","getRenderer","getCursor","layerX","layerY","clientInfo","touches","changedTouches","getClientByPoint","AbstractGroup","AbstractShape","_isInBBox","clearCacheBBox","calculateCanvasBBox","topRight","bottomLeft","bottomRight","shadowLeft","shadowRight","shadowTop","shadowBottom","vec","inBBox","getMethod","mergeBBox","mergeArrowBBox","offScreenCtx","getOffScreenContext","getTextHeight","lineCount","getLineSpaceing","assembleFont","getExtraFromSegmentWithAngle","currentAndPre","currentAndNext","preAndNext","currentAngle","xExtra","yExtra","xAngle","yAngle","getBBoxByArray","measureWidth","getTextWidth","segmentsWithAngle","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","modifyCSS","css","arrDel","arrAdd","posToArr","getPosition","isTreeNode","getDragChildrenKeys","dragNodeKey","dragChildrenKeys","isLastChild","treeNodeEntity","posArr","calcDropPosition","dragNode","targetNode","indent","startMousePosition","allowDrop","flattenedNodes","expandKeys","_abstractDropNodeEnti","_event$target$getBoun","rawDropLevelOffset","abstractDropNodeEntity","nodeIndex","flattenedNode","prevNodeKey","initialAbstractDropNodeKey","abstractDragOverEntity","dropLevelOffset","abstractDragDataNode","abstractDropDataNode","dropAllowed","dropNode","dropTargetKey","dropTargetPos","dropContainerKey","calcSelectedKeys","multiple","parseCheckedKeys","keyProps","conductExpandParent","keyList","conductUp","removeWhiteSpace","replaceAll","saveLocalBracket","ids","savedBrackets","existingIds","fetchLocalBrackets","savedIds","copyToClipboard","async","setCopied","clipboard","writeText","isValidElement","cloneElement","replacement","replaceElement","STATUS_UPDATE","COPY_PROPERTIES","COPY_PROPERTIES_EXCLUDES","GroupComponent","isRegister","isUpdating","isInit","clearOffScreenCache","getChildComponentById","getElementByLocalId","localId","getElementsByName","updateInner","offScreenRender","offScreenGroup","deleteElements","applyOffset","initEvent","removeEvent","getInnerLayoutBBox","initGroup","delegateEmit","createOffScreenGroup","getDelegateObject","moveElementTo","isComponent","renderInner","appendDelegateObject","registerElement","addComponent","restCfg","inst","updateAutoRender","unregisterElement","addAnimation","elmentName","originOpacity","removeAnimation","originElement","updateAnimation","newGroup","originGroup","preElement","childComponent","origChildComponent","newCfg","replaceAttrs","registerNewGroup","clearUpdateStatus","parentObject","deleteArray","callbackAnimCfg","removeElement","adminToken","initialHeaders","initLogRocket","appName","LogRocket","network","requestSanitizer","request","AuthContext","AuthContextProvider","setIsAdmin","URLSearchParams","fetchPoolToken","setAuthorizationHeaders","setUserState","getAccessTokenSilently","isAuthenticated","isLoading","user","logout","useAuth0","errorToast","useToast","identify","newHeaders","brackets","fetchToken","buttonWrapperClasses","_objectWithoutPropertiesLoose","BrowserRouter","historyRef","history","_useState2","listen","Link","reloadDocument","_ref4$replace","internalOnClick","_temp","_ref6","replaceProp","shiftKey","isModifiedEvent","useLinkClickHandler","minNum","maxNum","getBBoxRange","piMod","vec2","tangentAngle","tCallback","segNum","increaseRate","_t","d2","quadraticAt","onet","extrema","derivativeAt","divideQuadratic","xt","yt","controlPoint1","controlPoint2","quadraticLength","iterationCount","quadratics","xExtrema","yExtrema","nearestPoint","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","yDim","relativeVector","relativePoint","derivativeXAt","derivativeYAt","analyzePoints","lengthOfSegment","pointAtSegments","startRatio","localRatio","angleAtSegments","distanceAtSegment","minDistance","distance_1","ARRAY_TYPE","Float32Array","RANDOM","fillRef","composeRef","_len","refs","_key","refList","useComposeRef","_len2","_key2","supportRef","nodeOrComponent","_type$prototype","_nodeOrComponent$prot","getMappingField","shapeField","styleField","rawFields","mappingFields","tileMappingField","getMappingFunction","rgbToRgb","rgbToHsl","hue2rgb","hslToRgb","rgbToHsv","hsvToRgb","mod","rgbToHex","rgbaToHex","convertDecimalToHex","convertHexToDecimal","parseIntFromHex","numberInputToObject","findViewById","getViews","getSiblingViews","Source","hasValue","useMergedState","defaultStateValue","onChange","postState","_useState","finalValue","PROP","INNER","mergedValue","setMergedValue","chosenValue","postMergedValue","prevValue","changeEventPrevRef","triggerChange","ignoreDestroy","_prev","prevSource","prevPrevValue","nextValue","overridePrevValue","_mergedValue","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","a0","a3","a4","a5","a6","a7","a8","b2","b3","b4","b5","b6","b7","b8","mul","identityMatrix","getMatrixByAngle","getMatrixByTranslate","getAngleByMatrix","applyMatrix2BBox","applyRotate","applyTranslate","translateMatrix","NAME_CLASS","CROSSHAIR_X","CROSSHAIR_Y","getTooltipMapping","defaultFields","SizeContextProvider","Consumer","originSize","AdSlots","BracketFooter","HomeHeader","LeaderboardHeader","LeaderboardFooter1","LeaderboardFooter2","LeaderboardFooter3","AdSense","slot","useEffect","getElementsByClassName","tuple","AXIS_META_CONFIG_KEYS","RANGE_VALUE","RANGE_TYPE","PERCENT","DEFAULT_COLOR","INDICATEOR_VIEW_ID","RANGE_VIEW_ID","indicator","pin","statistic","tickCount","tickInterval","PageLoading","makePrefixMap","styleProp","prefixes","domSupport","win","vendorPrefixes","animationend","transitionend","_document$createEleme","prefixedEventNames","getVendorPrefixedEventName","prefixMap","stylePropList","internalAnimationEndName","internalTransitionEndName","supportTransition","animationEndName","transitionEndName","getTransitionName","transitionName","transitionType","STATUS_NONE","STATUS_APPEAR","STATUS_ENTER","STATUS_LEAVE","STEP_NONE","STEP_PREPARE","STEP_START","STEP_ACTIVE","STEP_ACTIVATED","STEP_QUEUE","isActive","setStep","_useNextFrame","nextFrameRef","cancelNextFrame","nextFrame","nextFrameId","isCanceled","useNextFrame","_useNextFrame2","nextStep","doNext","useStatus","supportMotion","getElement","_ref$motionEnter","motionEnter","_ref$motionAppear","motionAppear","_ref$motionLeave","motionLeave","motionDeadline","motionLeaveImmediately","onAppearPrepare","onEnterPrepare","onLeavePrepare","onAppearStart","onEnterStart","onLeaveStart","onAppearActive","onEnterActive","onLeaveActive","onAppearEnd","onEnterEnd","onLeaveEnd","onVisibleChanged","asyncVisible","setAsyncVisible","_useState3","_useState4","setStatus","_useState5","_useState6","setStyle","mountedRef","deadlineRef","getDomElement","onInternalMotionEnd","deadline","canEnd","currentActive","_useDomMotionEvents","cacheElementRef","callbackRef","removeMotionEvents","useDomMotionEvents","patchMotionEvents","eventHandlers","_useStepQueue","useStepQueue","newStep","onPrepare","_eventHandlers$step","_useStepQueue2","startStep","nextStatus","isMounted","firstMountChangeRef","mergedStyle","DomWrapper","transitionSupport","isSupportTransition","motionName","CSSMotion","_props$visible","_props$removeOnLeave","removeOnLeave","forceRender","leavedClassName","eventProps","nodeRef","wrapperNodeRef","_useStatus","findDOMNode","_useStatus2","statusStep","statusStyle","mergedVisible","renderedRef","motionChildren","setNodeRef","mergedProps","statusSuffix","STATUS_ADD","STATUS_KEEP","STATUS_REMOVE","STATUS_REMOVED","wrapKeyToObject","keyObj","parseKeys","diffKeys","currentLen","prevKeyObjects","currentKeyObjects","hit","currentKeyObj","duplicatedKeys","matchKey","_excluded2","MOTION_PROP_NAMES","CSSMotionList","removeKey","nextKeyEntities","_this2","_onVisibleChanged","onAllRemoved","Component","motionProps","changedVisible","parsedKeyObjects","prevEntity","readOnly","BeforeUnloadEventType","PopStateEventType","createBrowserHistory","_options$window","defaultView","globalHistory","getIndexAndLocation","_window$location","usr","blockedPopTx","blockers","nextAction","_getIndexAndLocation","nextIndex","nextLocation","delta","retry","applyTx","_getIndexAndLocation2","listeners","createEvents","getNextLocation","createKey","getHistoryStateAndUrl","allowTx","_getIndexAndLocation3","replaceState","Push","_getHistoryStateAndUr","historyState","pushState","Replace","_getHistoryStateAndUr2","back","forward","listener","block","blocker","unblock","promptBeforeUnload","createHashHistory","_options2$window","_parsePath","_parsePath$pathname","_parsePath$search","_parsePath$hash","handlePop","_getIndexAndLocation4","_getIndexAndLocation6","querySelector","hashIndex","getBaseHref","_getIndexAndLocation7","_getHistoryStateAndUr3","_getHistoryStateAndUr4","createMemoryHistory","_options3","_options3$initialEntr","initialEntries","initialIndex","entry","clamp","lowerBound","upperBound","returnValue","handlers","_ref$pathname","_ref$search","_ref$hash","searchIndex","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","useLayoutUpdateEffect","deps","firstMountRef","_regeneratorRuntime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","mark","awrap","iter","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","toArray","Children","keepEmpty","messageArray","valueObject","successToast","infoToast","warningToast","ToastContext","ToastProvider","getCollapsedHeight","getRealHeight","scrollHeight","skipOpacityTransition","propertyName","collapseMotion","getTransitionDirection","motion","_assertThisInitialized","ReferenceError","X_FIELD","Y_FIELD","DEFAULT_TOOLTIP_OPTIONS","containerTpl","itemTpl","DisabledContextProvider","originDisabled","elementListeners","resizeObserver","entities","_elementListeners$get","CollectionContext","SingleObserver","elementRef","wrapperRef","onCollectionResize","isRenderProps","mergedChildren","sizeRef","canRef","originRef","mergedRef","propsRef","onInternalResize","_propsRef$current","_target$getBoundingCl","fixedWidth","fixedHeight","mergedOffsetWidth","mergedOffsetHeight","sizeInfo","currentElement","observe","unobserve","ResizeObserver","Collection","onBatchResize","resizeIdRef","resizeInfosRef","currentId","TREND_FIELD","TREND_UP","TREND_DOWN","defaultContent","risingFill","fallingFill","HOOK_MARK","getFieldValue","getFieldsValue","getFieldError","getFieldWarning","getFieldsError","isFieldsTouched","isFieldTouched","isFieldValidating","isFieldsValidating","resetFields","setFields","setFieldValue","setFieldsValue","validateFields","submit","getInternalHooks","dispatch","initEntityValue","registerField","useSubscribe","setInitialValues","destroyForm","setCallbacks","registerWatch","setValidateMessages","setPreserve","getInitialValue","typeTemplate","required","whitespace","invalid","types","integer","regexp","email","mismatch","internalSet","removeIfUndefined","_paths","restPath","cloneDeep","cloneArrayDeep","cloneObjectDeep","getNamePath","store","namePath","newStore","cloneByNamePathList","namePathList","containsNamePath","matchNamePath","isObject","internalSetValues","setValues","restValues","changedNamePath","nameUnit","defaultGetValueFromEvent","valuePropName","moveIndex","toIndex","AsyncValidator","replaceMessage","kv","CODE_LOGIC_ERROR","validateRule","_x","_x2","_x3","_x4","_x5","_validateRule","_callee2","rule","messageVariables","cloneRule","originValidator","subRuleField","validator","messages","subResults","fillVariableResult","_context2","ruleIndex","defaultField","validate","errors","mergedMessage","subValue","validateRules","rules","validateFirst","summaryPromise","filledRules","currentRule","originValidatorFunc","hasPromise","promise","w1","warningOnly","i1","w2","i2","_callee","_context","_x6","_x7","rulePromises","_x9","_finishOnFirstFailed","finishOnFirstFailed","_x8","_finishOnAllFailed","finishOnAllFailed","_callee3","_context3","errorsList","_callee4","_context4","ruleError","EMPTY_ERRORS","requireUpdate","shouldUpdate","Field","resetCount","cancelRegisterFunc","mounted","touched","dirty","validatePromise","prevValidating","warnings","cancelRegister","preserve","isListField","_this$props2","_fieldContext$prefixN","fieldContext","prefixName","getRules","_this$props3","_this$props3$rules","triggerMetaEvent","onMetaChange","getMeta","onStoreChange","prevStore","_this$props4","_this$props4$dependen","dependencies","onReset","curValue","namePathMatch","validating","dependency","relatedFields","rootPromise","_this$props5","_this$props5$validate","triggerName","filteredRules","validateTrigger","ruleErrors","_ruleErrors$forEach","nextErrors","nextWarnings","_ref3$errors","isFieldDirty","initialValue","getErrors","getWarnings","isPreserve","getOnlyChild","getControlled","isFunction","childProps","_this$props6","getValueFromEvent","normalize","getValueProps","mergedValidateTrigger","_getInternalHooks","mergedGetValueProps","originTriggerFunc","control","validateTriggerList","originTrigger","_this$props7","forceUpdate","returnChildNode","_this$getOnlyChild","contextType","FieldContext","keyManager","parentPrefixName","listContext","pathName","_ref3$value","getNewValue","operations","indexSet","keysIndex","valueIndex","listValue","SPLIT","cell","NameMap","kvs","cells","_cell$match","_cell$match2","unit","FormStore","forceRootUpdate","formHooked","subscribable","fieldEntities","initialValues","callbacks","lastValidatePromise","getForm","_init","prevWithoutPreserves","_this$prevWithoutPres","nextStore","updateStore","getFieldEntities","isMergedPreserve","initValue","watchList","notifyWatch","timeoutId","warningUnhooked","pure","getFieldsMap","getFieldEntitiesForNamePathList","nameList","INVALIDATE_NAME_PATH","filterFunc","filteredNameList","_entity$isListField","arg0","arg1","isAllFieldsTouched","shortNamePath","fieldNamePath","isNamePathListTouched","namePathListEntities","testField","resetWithFieldInitialValue","requiredFieldEntities","resetWithFields","skipExist","_requiredFieldEntitie","notifyObservers","fieldData","fieldPreserve","mergedPreserve","subNamePath","_prevStore","triggerDependenciesUpdate","updateValue","_namePath","mergedInfo","childrenFields","getDependencyChildrenFields","onValuesChange","triggerOnFieldsChange","rootNamePath","dependencies2fields","dependencyNamePath","fillChildren","filedErrors","onFieldsChange","fieldName","provideNameList","promiseList","mergedErrors","mergedWarnings","hasError","allPromiseFinish","resultNamePathList","_ref7","returnPromise","errorList","errorFields","outOfDate","onFinish","onFinishFailed","formRef","_React$useState","formStore","triggerFormChange","triggerFormFinish","registerForm","unregisterForm","onFormChange","onFormFinish","formContext","formsRef","changedFields","forms","newForms","_ref$component","_ref$validateTrigger","_onFieldsChange","_onFinish","_useForm","formInstance","_formInstance$getInte","childrenNode","mountRef","childrenRenderProps","prevFieldsRef","targetKeys","sourceValue","targetValue","isSimilar","formContextValue","wrapperNode","onSubmit","_restProps$onReset","valueStr","valueStrRef","isValidForm","namePathRef","nextValueStr","RefForm","useForm","useWatch","useSafeState","destroyRef","_React$useState2","propList","ariaPrefix","dataPrefix","pickAttrs","mergedConfig","ariaOnly","regexTags","regexDot","smoothBezier","parsePathString","REGEX_MD","toSymmetry","needProcess","preParams","upCmd","symetricT","symetricS","nextParams","lastStartMovePointIndex","cp","preSegment","dx1","dy1","dx2","dy2","parseToLines","lines","lineIntersectPolygon","isIntersect","D0","D1","kross","getLineIntersect","isPolygonsIntersect","points1","points2","lines1","lines2","MenuContext","InheritableContextProvider","locked","inheritableContext","useActive","onMouseEnter","onMouseLeave","_React$useContext","activeKey","onActive","onInactive","domEvent","warnItemProp","restInfo","useDirectionStyle","inlineIndent","EmptyList","PathRegisterContext","useMeasure","PathTrackerContext","useFullPath","parentKeyPath","PathUserContext","IdContext","getMenuId","uuid","useMenuId","_excluded3","LegacyMenuItem","passedProps","Item","warnKey","itemIcon","onKeyDown","onFocus","domDataId","onItemClick","contextDisabled","overflowDisabled","contextItemIcon","_internalRenderMenuItem","itemCls","legacyMenuItemRef","mergedDisabled","connectedKeys","getEventInfo","keyPath","mergedItemIcon","_useActive","activeProps","directionStyle","optionRoleProps","renderNode","which","isSelected","measure","connectedKeyPath","registerPath","unregisterPath","parseChildren","_child$props$eventKey","_child$props","cloneProps","convertItemsToNodes","MenuItemGroup","SubMenu","Divider","parseItems","useMemoCallback","funRef","_funRef$current","SubMenuList","autoAdjustOverflow","adjustX","adjustY","placements","placementsRtl","getMotion","defaultMotions","popupPlacementMap","horizontal","PopupTrigger","popup","popupClassName","popupOffset","onVisibleChange","getPopupContainer","subMenuOpenDelay","subMenuCloseDelay","builtinPlacements","triggerSubMenuAction","forceSubMenuRender","rootClassName","innerVisible","setInnerVisible","popupPlacement","targetMotion","mergedMotion","visibleRef","stretch","popupVisible","popupAlign","mouseEnterDelay","mouseLeaveDelay","onPopupVisibleChange","popupMotion","InlineSubMenuList","fixedMode","sameModeRef","setDestroy","mergedOpen","originOnVisibleChanged","newVisible","motionClassName","motionStyle","internalPopupClose","expandIcon","onTitleClick","onTitleMouseEnter","onTitleMouseLeave","openKeys","contextExpandIcon","onOpenChange","_internalRenderSubMenuItem","isSubPathKey","connectedPath","subMenuPrefixCls","popupRef","mergedExpandIcon","originOpen","childrenSelected","childrenActive","setChildrenActive","triggerChildrenActive","newActive","mergedActive","onMergedItemClick","popupId","titleNode","isOpen","isSubMenu","triggerModeRef","triggerMode","listNode","ArrowKeys","getFocusableElements","getNextFocusElement","parentQueryContainer","focusMenuElement","sameLevelFocusableMenuElementList","focusIndex","useAccessibility","isRtl","containerRef","getKeys","getKeyPath","triggerActiveKey","triggerAccessibilityOpen","originOnKeyDown","rafRef","cleanRaf","key2element","element2key","activeElement","parentElement","getFocusElement","focusMenuKey","offsetObj","isRootLevel","_inline","_horizontal","_vertical","_offsets","inlineTrigger","inline","inlineSub","horizontalSub","verticalSub","getOffset","tryFocus","menuElement","focusTargetElement","targetKey","focus","targetElement","focusableElements","findContainerUL","controlId","parentKey","parentMenuElement","uniquePrefix","internalId","PATH_SPLIT","getPathStr","OVERFLOW_KEY","useKeyRecords","internalForceUpdate","key2pathRef","path2keyRef","_React$useState3","_React$useState4","overflowKeys","setOverflowKeys","updateRef","refreshOverflowKeys","includeOverflow","fullPath","pathKeys","pathKey","getSubPathKeys","EMPTY_LIST","groupPrefixCls","ExportMenu","_childList$","_props$prefixCls","_props$tabIndex","_props$mode","inlineCollapsed","disabledOverflow","_props$subMenuOpenDel","_props$subMenuCloseDe","defaultOpenKeys","defaultActiveFirst","_props$selectable","selectable","_props$multiple","defaultSelectedKeys","onSelect","onDeselect","_props$inlineIndent","_props$triggerSubMenu","_props$overflowedIndi","overflowedIndicator","overflowedIndicatorPopupClassName","openAnimation","openTransitionName","setMounted","_useMergedState","_useMergedState2","setUUID","newId","useUUID","_React$useMemo","_React$useMemo2","mergedMode","mergedInlineCollapsed","lastVisibleIndex","setLastVisibleIndex","allVisible","mergedOpenKeys","setMergedOpenKeys","triggerOpenKeys","_React$useState5","_React$useState6","inlineCacheOpenKeys","setInlineCacheOpenKeys","isInlineMode","_useKeyRecords","registerPathContext","pathUserContext","_useMergedState3","_useMergedState4","mergedActiveKey","setMergedActiveKey","_childList$find","_containerRef$current","_containerRef$current2","_containerRef$current3","shouldFocusKey","_useMergedState5","_useMergedState6","mergedSelectKeys","setMergedSelectKeys","onInternalClick","newSelectKeys","selectInfo","triggerSelection","onInternalOpenChange","newOpenKeys","subPathKeys","getInternalPopupContainer","onInternalKeyDown","nextOpen","privateContext","wrappedChildList","itemComponent","renderRawItem","renderRawRest","omitItems","originOmitItems","INVALIDATE","RESPONSIVE","ssr","newLastIndex","ItemGroup","NODE_INDEX_FIELD","CHILD_NODE_COUNT","NODE_ANCESTORS_FIELD","INVALID_FIELD_ERR_MSG","getField","getAllNodes","root","index_1","each","ancestors","depth","eachNode","getStatusClassNames","getMergedStatus","contextStatus","customStatus","constantZero","_e2","_n2","globalThis","global","Function","isPrototypeOf","Deno","versions","v8","$","ee","te","ne","re","oe","ie","ae","ce","se","ue","copyright","license","le","fe","de","he","pe","ye","ve","me","be","ge","we","Se","withoutSetter","ke","Ie","Oe","Te","xe","Ce","Re","Ee","je","Ke","Ue","Fe","We","Ze","Le","Ge","Pe","Ae","Xe","Ve","Ne","Je","Ye","EXISTS","PROPER","CONFIGURABLE","He","inspectSource","De","Be","ze","Me","qe","WeakMap","Qe","$e","et","tt","rt","ot","it","at","facade","st","ut","enforce","getterFor","lt","setter","arity","ft","unsafe","noTargetGet","dt","ht","pt","vt","bt","gt","wt","St","kt","It","Tt","Ot","Ct","getOwnPropertyNames","Rt","Et","jt","Kt","Ut","Ft","Zt","Wt","Gt","Lt","NATIVE","POLYFILL","Pt","At","Xt","stat","forced","Vt","Nt","Jt","Yt","Ht","Dt","Bt","callee","zt","Mt","qt","Qt","$t","en","tn","nn","rn","an","cn","sn","un","ln","dn","hn","pn","yn","vn","mn","bn","gn","Sn","kn","In","Tn","On","xn","Cn","Rn","foo","En","jn","Kn","Un","Fn","Wn","Zn","Ln","Gn","Pn","An","write","parentWindow","_Xn","ActiveXObject","domain","contentWindow","Vn","Nn","Jn","Yn","Hn","Bn","Dn","zn","Mn","qn","Qn","$n","er","nr","rr","or","ir","cr","sr","ur","lr","dr","hr","pr","yr","QObject","vr","mr","gr","Sr","kr","_r","Ir","findChild","Tr","Or","xr","Cr","Kr","Rr","Er","jr","useSetter","useSimple","Ur","keyFor","Fr","Wr","Zr","Lr","Gr","Pr","Ar","Xr","Vr","Nr","Jr","Yr","charCodeAt","Hr","Dr","Br","zr","Mr","qr","Qr","$r","_t2","eo","no","ro","oo","io","ao","so","uo","lo","fo","ho","po","yo","vo","mo","bo","wo","So","codeAt","ko","_o","Io","To","Oo","xo","Co","Eo","BUGGY_SAFARI_ITERATORS","jo","Ko","Uo","Fo","Wo","Zo","Lo","Go","Po","Ao","Xo","Vo","No","Jo","Yo","Ho","Do","Bo","zo","Mo","qo","Qo","$o","ei","ti","ni","ri","oi","ai","si","ui","li","fi","hi","Int8Array","vi","Uint8ClampedArray","mi","gi","wi","Si","ki","Ii","Ti","opera","Oi","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float64Array","Ci","BigInt64Array","BigUint64Array","Ri","Ei","NATIVE_ARRAY_BUFFER_VIEWS","TYPED_ARRAY_CONSTRUCTOR","TYPED_ARRAY_TAG","aTypedArray","aTypedArrayConstructor","exportTypedArrayMethod","exportTypedArrayStaticMethod","isTypedArray","TypedArray","TypedArrayPrototype","ji","Ki","Fi","Wi","Zi","Ui","Li","Gi","Pi","Ai","Xi","Vi","Ni","Ji","Yi","kind","Hi","Arguments","Di","isExtensible","Bi","zi","Mi","preventExtensions","qi","objectID","weakData","fastKey","getWeakData","onFreeze","Qi","$i","stopped","ea","ta","that","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","ra","oa","ia","aa","ca","sa","ua","la","getConstructor","setStrong","fa","da","reason","ha","ya","va","_state","_handled","_value","_deferreds","ka","ma","_immediateFn","onFulfilled","onRejected","ga","ba","wa","_unhandledRejectionFn","Sa","allSettled","race","setImmediate","fatal","RangeError","fromCharCode","subarray","TextEncoder","TextDecoder","encode","stream","Buffer","buffer","byteOffset","byteLength","XMLHttpRequest","send","responseText","revokeObjectURL","decode","aborted","onabort","createEvent","createEventObject","cancelable","signal","dispatchEvent","__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL","log","Request","AbortController","AbortSignal","Ia","addToLocked","lock","unlock","getInstance","Ta","acquiredIatSet","acquireLock","releaseLock","releaseLock__private__","waitForSomethingToChange","refreshLockWhileAcquired","waiters","iat","timeoutKey","timeAcquired","timeRefreshed","lockCorrector","removeFromWaiting","addToWaiting","notifyWaiters","Oa","xa","timeoutInSeconds","Ca","Ra","Ea","ja","error_description","fromPayload","Ka","appState","Ua","Fa","Wa","Za","mfa_token","La","Da","audience","scope","Ga","_r2","closed","Pa","crypto","msCrypto","Aa","subtle","webkitSubtle","Xa","getRandomValues","Va","btoa","Na","encodeURIComponent","Ja","digest","oncomplete","onerror","Ya","atob","Ha","Ba","statusText","responseURL","getAllResponseHeaders","withCredentials","setRequestHeader","za","abort","Ma","auth","fetchUrl","fetchOptions","useFormData","MessageChannel","port1","port2","qa","Qa","$a","baseUrl","auth0Client","ec","tc","nc","client_id","toKey","fromKey","fromCacheEntry","rc","allKeys","oc","enclosedCache","ic","keyManifest","nowProvider","getCacheKeys","matchExistingCacheKey","expiresAt","refresh_token","wrapCacheEntry","clearSync","expires_in","decodedToken","claims","exp","ac","storage","clientId","storageKey","transaction","daysUntilExpire","cc","sc","uc","id_token","__raw","encoded","header","signature","iss","alg","aud","azp","nonce","max_age","auth_time","leeway","setUTCSeconds","nbf","organizationId","org_id","lc","__assign","expires","setMilliseconds","getMilliseconds","toUTCString","secure","sameSite","cookie","fc","dc","hc","pc","protocol","cookieDomain","yc","vc","sessionStorage","Sc","kc","mc","Ic","manifestKey","createManifestKeyFrom","Tc","Oc","memory","localstorage","xc","Rc","cacheLocation","httpTimeoutMs","httpTimeoutInSeconds","cookieStorage","legacySameSiteCookie","orgHintCookieName","isAuthenticatedCookieName","sessionCheckExpiryDays","useCookiesForTransactions","transactionManager","cacheManager","domainUrl","tokenIssuer","issuer","defaultScope","advancedOptions","useRefreshTokens","customOptions","authorizeTimeoutInSeconds","redirect_uri","useRefreshTokensFallback","_url","_getParams","detailedResponse","response_type","response_mode","code_challenge","code_challenge_method","_authorizeUrl","_verifyIdToken","_parseNumber","_processOrgIdHint","buildAuthorizeUrl","organization","code_verifier","loginWithPopup","screenX","innerWidth","screenY","innerHeight","grant_type","getUser","getIdTokenClaims","loginWithRedirect","redirectMethod","handleRedirectCallback","oauthTokenScope","checkSession","getTokenSilently","ignoreCache","_getTokenSilently","_getEntryFromCache","getDetailedEntry","_getTokenUsingRefreshToken","_getTokenFromIFrame","access_token","getTokenWithPopup","buildLogoutUrl","federated","localOnly","prompt","crossOriginIsolated","_r3","initialAuthState","stub","initialContext","getAccessTokenWithPopup","Auth0Context","OAuthError","CODE_RE","STATE_RE","ERROR_RE","normalizeErrorFn","fallbackMessage","loginError","tokenError","reducer","updated_at","toAuth0LoginRedirectOptions","redirectUri","validOpts","defaultOnRedirectCallback","returnTo","Auth0Provider","skipRedirectCallback","onRedirectCallback","clientOpts","client","maxAge","toAuth0ClientOptions","didInitialise","error_1","searchParams","error_2","maybePromise","error_3","error_4","error_5","normalPadding","getAdjustAppendPadding","currentAppendPadding","PADDING","resolveAllPadding","paddings","normalPaddings","finalPadding","ServerError","subTitle","Forbidden","NotFound","Unavailable","ConfigConsumer","as","sumMap","groupValue","percentage","getDeepPercent","getDataWhetherPercentage","asField","getTinyData","today","backToToday","month","year","timeSelect","dateSelect","weekSelect","monthSelect","yearSelect","decadeSelect","yearFormat","dateFormat","dayFormat","dateTimeFormat","monthBeforeYear","previousMonth","nextMonth","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","placeholder","rangePlaceholder","lang","yearPlaceholder","quarterPlaceholder","monthPlaceholder","weekPlaceholder","rangeYearPlaceholder","rangeQuarterPlaceholder","rangeMonthPlaceholder","rangeWeekPlaceholder","timePickerLocale","localeValues","Pagination","DatePicker","TimePicker","Calendar","Table","filterTitle","filterConfirm","filterReset","filterEmptyText","filterCheckall","filterSearchPlaceholder","emptyText","selectAll","selectInvert","selectNone","selectionAll","sortTitle","collapse","triggerDesc","triggerAsc","cancelSort","okText","cancelText","justOkText","Popconfirm","Transfer","titles","searchPlaceholder","itemUnit","itemsUnit","selectCurrent","removeCurrent","removeAll","Upload","uploading","removeFile","uploadError","previewFile","downloadFile","Empty","edit","copied","PageHeader","optional","preview","RGB_REG","arr2rgb","iEl","x16Value","getPropertyValue","colorArray","fixedPercent","calColor","toCSSGradient","gradientColor","cssColor_1","colorStops_1","charAtLength","getMaxLabelWidth","texts","maxLen","maxIdx","getMaxLabelWidthOptimized","ellipsisLabel","limitLength","ellipsisText","labelLength","getLabelLength","codeLength","strLen","ellipsisFlag","reserveLength","newText","reseveLength","startStr","endStr","endIndex","startCodeLen","hasAdd","endCodeLen","ellipsisString","columns","dataIndex","defaultSortOrder","rank","localeCompare","_bracket","_idx","possible_points","alt","Leaderboard","fetchThe18Leaderboard","the18","pagy","archive","localBrackets","setSearch","disableLink","bracket","ub","paginationProps","defaultPageSize","pageSizeOptions","hideOnSinglePage","handleSearch","input","rowKey","rowClassName","onRow","handleClick","Search","allowClear","onPressEnter","onSearch","dataSource","Adjust","isAdjust","getAdjustRange","dimValue","groupedDataArray","mergedData","getDimValues","adjustDim","patternOption","colorAttribute","seriesValue","objA","objB","compareContext","keysA","keysB","bHasOwnProperty","valueA","valueB","componentName","defaultLocale","antLocale","localeFromContext","localeCode","getLocale","getLocaleCode","useLocaleReceiver","AntdIcon","addEventListenerWrap","unstable_batchedUpdates","HISTOGRAM_X_FIELD","HISTOGRAM_Y_FIELD","columnStyle","zeros","norm2","weightedSum","wolfeLineSearch","pk","phi0","phiPrime0","fxprime","phi","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","simplex","updateSimplex","sortOrder","reflected","contracted","sortedSimplex","worst","shouldReduce","conjugateGradient","yk","delta_k","gradientDescent","learnRate","gradientDescentLineSearch","functionCalls","zerosM","areaStyle","pointOptions","lineOptions","pointState","seriesData","pointParams","getConversionTagOptionsWithDefaults","headSize","conversion","renderTag","elemPrev","elemNext","pointPrev","pointNext","totalWidth","renderArrowTag","textWidth","cWidth","cEnd","textAdjusted","renderTextTag","INTERACTION_MAP","click","getStartStages","defaultOptions","percentData","chartData","stackedItem","tooltipOptions","percentYMeta","minLimit","maxLimit","isRange","columnTooltip","tooltipFormatter_1","isBar","disable","brush","connectedArea","LocaleMap","registerLocale","localeObj","freeGlobal","freeSelf","methodCache","registerTickMethod","Scale","__cfg__","initCfg","getConfig","setDomain","calculateTicks","calcPercent","calcValue","buildIndexMap","translateIndexMap","scaledValue","domainRange","twoDigitsOptional","twoDigits","literal","shorten","sLen","newArr","monthUpdate","arrName","i18n","lowerCaseArr","origObj","args_1","dayNames","monthNames","monthNamesShort","defaultI18n","dayNamesShort","amPm","DoFn","dayOfMonth","globalI18n","setGlobalDateI18n","regexEscape","pad","formatFlags","dateObj","getDate","DD","getDay","dd","ddd","dddd","getMonth","MM","MMM","MMMM","YY","getFullYear","YYYY","getHours","hh","HH","getMinutes","mm","getSeconds","ss","SS","SSS","ZZ","getTimezoneOffset","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","day","hour","minute","millisecond","isPm","parseInfo","newFormat","specifiedFields","requiredFields","regex","requiredField","dateTZ","parser","UTC","timeFormat","toTimeStamp","SECOND","MINUTE","HOUR","DAY","MONTH","YEAR","intervals","getTickInterval","_lo","_hi","TimeCat","tickIndex","getScalePercent","firstTick","lastTick","getInvertPercent","Linear","calBase","getLogPositiveMin","positiveMin","Log","appendPercent","Pow","Time","numberValue","minConfig","maxConfig","timeStamps_1","secondMin_1","minTickInterval","Quantize","minTick","minIndexPercent","Quantile","getClass","registerClass","cls","Identity","calculateCatTicks","showLast","lastValue","e10","e5","e2","D3Linear","_domain","i0","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","densityMax","coverage","coverageMax","span","extended","onlyLoose","step_1","best","dm","log10","cm","minStart","maxStart","i_1","lStep","pretty","nu","quantileSorted","getYear","createYear","creatMonth","minYear","maxYear","yearInterval","monthInterval","mmMoth","dMonths","minMonth","diffMonth","mday","ddays","diffDay","hours","dHours","diffHour","dMinus","diffMinus","minSecond","dSeconds","seconds","d3Linear","isRealNumber","cached","getScrollBarSize","fresh","outer","outerStyle","pointerEvents","widthContained","widthScroll","ensureSize","getTargetScrollBarSize","_getComputedStyle","lineStyle","lineShape","pointMapping","areaMapping","areaState","areaParams","lineGeometry","UNDEFINED","InternalItem","invalidate","renderItem","responsive","responsiveDisabled","registerSize","itemKey","_props$component","mergedHidden","internalRegisterSize","overflowStyle","overflowY","overflowProps","itemNode","OverflowContext","_restProps","contextClassName","restContext","RawItem","defaultRenderRest","omittedItems","Overflow","_props$data","_props$itemWidth","itemWidth","renderRest","suffix","createUseState","statesRef","walkingIndex","beforeFrameId","myIndex","useBatchFrameState","fullySSR","_createUseState","_createUseState2","containerWidth","setContainerWidth","mergedContainerWidth","_createUseState3","_createUseState4","itemWidths","setItemWidths","_createUseState5","_createUseState6","prevRestWidth","setPrevRestWidth","_createUseState7","_createUseState8","restWidth","setRestWidth","_createUseState9","_createUseState10","suffixWidth","setSuffixWidth","suffixFixedStart","setSuffixFixedStart","displayCount","setDisplayCount","mergedDisplayCount","restReady","setRestReady","itemPrefixCls","mergedRestWidth","isResponsive","shouldResponsive","showRest","mergedRenderItem","updateDisplayCount","suffixFixedStartVal","notReady","getItemWidth","currentItemWidth","displayRest","suffixStyle","restNode","itemSharedProps","internalRenderItemNode","restContextProps","mergedRenderRest","overflowNode","ForwardOverflow","asyncGeneratorStep","gen","_throw","_asyncToGenerator","baseClassName","ICON_OPEN","ICON_CLOSE","InternalTreeNode","dragNodeHighlight","selectHandle","onSelectorClick","onNodeClick","isSelectable","onCheck","onSelectorDoubleClick","onNodeDoubleClick","isDisabled","onNodeSelect","disableCheckbox","onNodeCheck","isCheckable","targetChecked","onNodeMouseEnter","onNodeMouseLeave","onContextMenu","onNodeContextMenu","onDragStart","onNodeDragStart","dataTransfer","setData","onDragEnter","onNodeDragEnter","onDragOver","onNodeDragOver","onDragLeave","onNodeDragLeave","onDragEnd","onNodeDragEnd","onDrop","onNodeDrop","onExpand","onNodeExpand","setSelectHandle","getNodeState","hasChildren","loadData","checkable","treeCheckable","syncLoadData","_this$props$context","onNodeLoad","isDraggable","nodeDraggable","renderDragHandler","_this$props$context2","renderSwitcherIconDom","switcherIconFromProps","switcherIcon","switcherIconFromCtx","renderSwitcher","_switcherIconDom","switcherCls","switcherIconDom","renderCheckbox","$custom","renderIcon","renderSelector","$icon","_this$props$context3","showIcon","treeIcon","titleRender","wrapClass","currentIcon","$title","onDoubleClick","renderDropIndicator","_this$props$context4","dropIndicatorRender","treeSelectable","_this$props8","domRef","onMouseMove","otherProps","_this$props$context5","filterTreeNode","draggingNodeKey","dataOrAriaAttributeProps","isEndNode","mergedDraggable","draggableWithoutDisabled","ariaSelected","useEvent","fnRef","memoFn","_fnRef$current","runtimeLocale","changeConfirmLocale","newLocale","getConfirmLocale","viewBox","xmlns","fillRule","defaultEmptyImg","simpleEmptyImg","_a$image","imageStyle","des","imageNode","PRESENTED_IMAGE_DEFAULT","PRESENTED_IMAGE_SIMPLE","HtmlComponent","containerClassName","resetStyles","applyStyles","initCapture","initVisible","defaultStyles","applyChildrenStyles","containerCss","styles","applyStyle","cssName","adjustYMetaByZero","numberData","gtZero","ltZero","transformDataToNodeLinkData","sourceField","targetField","weightField","links","nodesMap","nodesIndex","weight","rawData","processIllegalData","WARN","cacheRef","BREAD_CRUMB_NAME","DEFAULT_BREAD_CRUMB_CONFIG","dividerText","activeTextStyle","HIERARCHY_DATA_TRANSFORM_PARAMS","DrillDownAction","historyCache","breadCrumbGroup","breadCrumbCfg","drill","drawBreadCrumb","PADDING_TOP","backTo","hideCrumbGroup","nodeInfo","transformData","drillData","nodeData","drillDownConfig","breadCrumb","drawBreadCrumbGroup","rootText","textShapeBox","targetId","newHistoryCache","dividerBox","isPointsEq","isAlignPoint","Mask","maskMotion","maskAnimation","maskTransitionName","vendorPrefix","jsCssMap","Webkit","Moz","ms","getVendorPrefix","getTransformName","setTransitionProperty","transitionProperty","getComputedStyleX","matrix2d","matrix3d","forceRelayout","originalStyle","getScroll","documentElement","getScrollLeft","getScrollTop","doc","ownerDocument","docElem","clientLeft","clientTop","getClientPosition","isWindow","_RE_NUM_NO_PX","RE_POS","getOffsetDirection","useCssRight","useCssBottom","oppositeOffsetDirection","setLeftTop","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","old","_dir","_off","setTransform$1","originalXY","getTransformXY","resultXY","match2d","setTransformXY","isBorderBoxFn","cs","computedStyle","rsLeft","pixelLeft","BOX_MODELS","getPBMWidth","cssProp","domUtils","host","getWH","viewportWidth","viewportHeight","docWidth","docHeight","borderBoxValue","isBorderBox","cssBoxValue","borderBoxValueOrIsBorderBox","refWin","documentElementProp","compatMode","cssShow","getWHIgnoreDisplay","includeMargin","utils","getWindow","getDocument","ignoreShake","oriOffset","oLeft","oTop","tLeft","tTop","useCssTransform","setOffset","getWindowScrollLeft","getWindowScrollTop","getOffsetParent","positionStyle","getParent$1","getVisibleRectForElement","alwaysByViewport","visibleRect","originalPosition","scrollX","scrollY","documentWidth","scrollWidth","documentHeight","bodyStyle","overflowX","isAncestorFixed","maxVisibleWidth","maxVisibleHeight","outerWidth","outerHeight","getAlignOffset","getElFuturePos","elRegion","refNodeRegion","targetOffset","isFailX","elFuturePos","isFailY","flip","reg","flipOffset","convertOffset","offsetLen","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","fail","newElRegion","newPoints","newOffset","newTargetOffset","isCompleteFailX","_newPoints","_newOffset","_newTargetOffset","isCompleteFailY","isStillFailX","isStillFailY","_newPoints2","resizeWidth","resizeHeight","adjustForViewport","alignElement","refNode","isTargetNotOutOfVisible","targetRegion","isOutOfVisibleRect","__getOffsetParent","__getVisibleRectForElement","monitorResize","prevWidth","prevHeight","disconnect","onAlign","monitorWindowResize","_ref$monitorBufferTim","monitorBufferTime","useRef","only","forceAlignPropsRef","_useBuffer","calledRef","timeoutRef","cancelTrigger","force","useBuffer","_forceAlignPropsRef$c","latestDisabled","latestTarget","latestAlign","latestOnAlign","tgtPoint","pageX","pageY","pointInView","restoreFocus","_useBuffer2","_forceAlign","cancelForceAlign","resizeMonitor","sourceResizeMonitor","winResizeRef","useImperativeHandle","forceAlign","RcAlign","forwardRef","StatusQueue","PopupInner","destroyPopupOnHide","getRootDomNode","getClassNameFromAlign","onMouseDown","onTouchStart","alignRef","alignedClassName","setAlignedClassName","_useStretchStyle","targetSize","setTargetSize","sizeStyle","minHeight","minWidth","useStretchStyle","_useStretchStyle2","stretchStyle","measureStretchStyle","_useVisibleStatus","setInternalStatus","cancelRaf","doMeasure","useVisibleStatus","_useVisibleStatus2","goNextStatus","alignTimes","setAlignTimes","prepareResolveRef","_alignRef$current","onInternalAlign","popupDomNode","matchAlign","nextAlignedClassName","_prepareResolveRef$cu","onShowPrepare","originHandler","alignDisabled","motionRef","mergedClassName","onMouseDownCapture","onTouchStartCapture","MobilePopupInner","_props$mobile","mobile","popupStyle","_props$mobile$popupMo","popupRender","Popup","serInnerVisible","inMobile","setInMobile","isMobile","popupNode","noop","returnEmptyString","returnDocument","ALL_HANDLERS","PortalComponent","Trigger","Portal","_popupVisible","triggerRef","portalContainer","attachId","clickOutsideHandler","touchOutsideHandler","contextMenuOutsideHandler1","contextMenuOutsideHandler2","mouseDownTimeout","focusTime","preClickTime","preTouchTime","delayTimer","hasPopupMouseDown","fireEvents","delaySetPopupVisible","setPoint","onPopupMouseEnter","clearDelayTimer","onPopupMouseLeave","_this$popupRef$curren","relatedTarget","isFocusToShow","focusDelay","onBlur","isBlurToHide","blurDelay","setPopupVisible","onContextMenuClose","isContextMenuToShow","preTime","isClickToShow","isClickToHide","nextVisible","onPopupMouseDown","_this$context","onDocumentClick","maskClosable","getPopupDomNode","isContextMenuOnly","getTriggerDOMNode","domNode","getPopupClassNameFromAlign","alignPoint","getAlignPopupClassName","getComponent","onPopupAlign","popupAnimation","popupTransitionName","onPopupClick","_this$state","getPopupAlign","mouseProps","isMouseEnterToShow","isMouseLeaveToHide","attachParent","popupContainer","mountNode","handlePortalUpdate","prevPopupVisible","afterPopupVisibleChange","triggerContextValue","defaultPopupVisible","componentDidUpdate","currentDocument","clearOutsideHandler","_this$popupRef$curren2","placementStr","baseAlign","getAlignFromPlacement","delayS","childPros","showAction","hideAction","_this$props9","_this$props10","_this$popupRef$curren3","childCallback","_this$props11","autoDestroy","newChildProps","createTwoChains","childrenClassName","portal","didUpdate","prevState","newState","_createForOfIteratorHelper","allowArrayLike","normalCompletion","didErr","_marked","hierarchy","mapChildren","objectChildren","childs","Node","eachBefore","computeHeight","copyData","eachAfter","_step","_iterator","ancestor","aNodes","bNodes","leastCommonAncestor","descendants","leaves","DEFAULT_Y","MARGIN_RATIO","DODGE_RATIO","GAP","responsiveArray","responsiveMap","md","lg","xl","xxl","subscribers","subUid","screens","responsiveObserve","matchHandlers","pointMap","subscribe","unsubscribe","unregister","screen","matchMediaQuery","mql","removeListener","matchMedia","addListener","removeFromCheckedKeys","filteredKeys","isCheckDisabled","conductCheck","getCheckDisabled","syntheticGetCheckDisabled","warningMissKeys","hasEntity","levelEntities","levelSet","_entity$children","childEntity","visitedKeys","_level","allChecked","partialChecked","fillConductCheck","halfKeys","_entity$children2","_level2","cleanConductCheck","getTotalValue","adaptOffset","defaultOffset","isAllZero","angleField","REGRESSION_MAP","loess","poly","quad","pathData","regressionLine","algorithm","xScaleView","yScaleView","transformOptions","isOneX","isOneY","meta_1","xFieldValue","yFieldValue","xIsPositiveNumber","yIsPositiveNumber","getMetaMinMax","fieldMeta","getCustomValue","pointStyle","newOptions","shapeLegend","sizeLegend","showLegend","scatterGeometry","scatterAnnotation","quadrant","xBaseline","yBaseline","regionStyle_1","regionStyle","defaultConfig_1","textOffset","labelStyle","getQuadrantDefaultConfig","style_1","top_1","defaultStyle_1","xv","yv","ux","uy","visitPoints","iterations","determination","uY","predict","SSE","SST","sse","sst","interpose","xmin","xmax","LOG10E","found","mp","ols","uX","uXY","uX2","slope","XY","X2","_ols2","intercept","rSquared","tricube","updateInterval","quadratic","_points2","X3","X4","X2Y","n0","X2X2","regressionExp","YL","XYL","ly","regressionLinear","regressionLoess","bandwidth","bw","yhat","residuals","robustWeights","denom","xk","xkw","medianResidual","_w","output","regressionLog","logarithmic","lb","lx","regressionPoly","polynomial","coefficients","lhs","rhs","coef","gaussianElimination","uncenter","regressionPow","YS","regressionQuad","LEVEL","BRAND","getMessage","argIndex","squarifyRatio","nodeValue","sumValue","newRatio","minRatio","beta","dice","squarify","OverrideContext","OverrideProvider","ADJUST_MAP","registerAdjust","stateStyles","styleName","inputToRGB","matchers","hsva","hex8","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","baseIsNative","multiView","viewOfG2","multiPlot","plots","plot","Association","getAssociationItems","linkField","dataValue","Mix","LOCATION_FIELD_MAP","none","locationType","afterUpdate","getLocationType","getLocation","createdRef","setElements","firstMount","div","noticeEle","originElements","cloneList","_toArray","MARK_KEY","getMark","attachTo","injectCSS","_option$csp","_option$csp2","styleNode","firstChild","containerCache","findExistNode","updateCSS","placeholderStyle","existNode","_option$csp3","_option$csp4","_option$csp5","newNode","IconContext","agent","vendor","offsetParent","_box","TreeContext","EventEmitter","_events","wildcardEvents","doEmit","es","scaleAndAdd","squaredDistance","squaredLength","negate","inverse","lerp","transformMat2","transformMat2d","transformMat4","sinC","cosC","mag","cosine","sqrDist","sqrLen","stride","progressStyle","barWidthRatio","getProgressData","clampPercent","showArrow","arrowContent","overlayInnerStyle","overlayClassName","_props$trigger","_props$mouseEnterDela","_props$mouseLeaveDela","overlayStyle","afterVisibleChange","_props$placement","_props$align","_props$destroyTooltip","destroyTooltipOnHide","defaultVisible","getTooltipContainer","overlay","extraProps","destroyTooltip","keepParent","PresetColorTypes","PresetColorRegex","getDisabledCompatibleChildren","elementType","__ANT_BUTTON","__ANT_SWITCH","__ANT_RADIO","_splitObject","picked","omitted","spanStyle","buttonStyle","_classNames2","getContextPopupContainer","setVisible","isNoTitle","getTooltipPlacements","arrowPointAtCenter","openClassName","tempVisible","arrowContentStyle","childCls","customOverlayClassName","formattedOverlayInnerStyle","vis","transformOrigin","styleForPseudo","delayFrames","myId","restFrames","internalCallback","isHidden","hidden","isNotGrey","pid","InternalWave","animationStart","waveColor","insertExtraNode","extraNode","getAttributeName","borderColor","nodeRoot","getRootNode","nodeBody","Document","onTransitionStart","onTransitionEnd","resetEffect","animationName","bindAnimationEvent","clickWaveTimeoutId","animationStartId","renderWave","GroupSizeContext","others","sizeCls","getCollapsedWidth","getRealWidth","existIcon","LoadingOutlined","rxTwoCNChar","isTwoCNChar","isUnBorderedButtonType","insertSpace","needInserted","convertLegacyProps","danger","_props$loading","_props$type","_props$shape","customizeSize","customDisabled","_props$ghost","ghost","_props$block","_props$htmlType","htmlType","groupSize","innerLoading","setLoading","hasTwoCNChar","setHasTwoCNChar","buttonRef","isNeedInserted","loadingOrDelay","buttonText","autoInsertSpace","sizeFullname","large","small","iconType","linkButtonRestProps","kids","isPrevChildPure","isCurrentChildPure","lastChild","spaceChildren","buttonNode","Button","createRoot","fullClone","reactRender","unmountComponentAtNode","toggleWarning","skip","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","usingClientEntryPoint","MARK","modernRender","legacyRender","modernUnmount","_modernUnmount","_container$MARK","unmount","legacyUnmount","_unmount","getIndicatorData","getRangeData","processRangeData","webpackPolyfill","deprecate","_Symbol","getRawTag","objectToString","symToStringTag","adapteStyle","styleObject","justifyContent","alignItems","shapeStyleKeys","setStatisticContainerStyle","renderStatistic","plotType","titleOpt","contentOpt","containerW","liquidShape","customHtml","renderGaugeStatistic","polarCoord","polarCenter","polarMaxY","Funnel","CONVERSATION_FIELD","PERCENT_FIELD","TOTAL_PERCENT_FIELD","defaultSeparation","meanXReduce","maxYReduce","separation","nodeSize","cluster","previousNode","meanX","leafLeft","leafRight","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","sums","partition","valueOffset","valueTarget","valueLeft","valueRight","resquarify","_squarify","darkColorMap","getHue","light","getSaturation","saturation","patterns","pColor","colorString","_hsv","_colorString","presetPrimaryColors","volcano","geekblue","presetPalettes","presetDarkPalettes","LocaleContext","baseIsEqual","lineMapping","lineParams","areaGeometry","verticalAxis","horizontalAxis","coordinateOptions","barStyle","minBarWidth","maxBarWidth","barBackground","pieStyle","percentageField_1","content_1","dataum","angleScale","labelLayoutType","spider","labelLayoutCfg","transformStatisticOptions","titleOpt_1","contentOpt_1","metaFormatter","pieAnnotation","startStages_1","stage","ORIGIN_MATRIX","ulMatrix","gaugeStyle","meter","rangeWidth","indicatorData","rangeData","rangeColor","contentOption","transformContent","PLOT_ADAPTORS","pie","column","bar","gauge","progress","scatter","histogram","stock","PLOT_CONSTRUCTOR","DEFAULT_OPTIONS_MAP","execPlotAdaptor","SECRET_COMBOBOX_MODE_DO_NOT_USE","mergedNotFound","_a$bordered","bordered","dropdownClassName","_a$listHeight","listHeight","_a$listItemHeight","listItemHeight","notFoundContent","renderEmpty","isMultiple","mergedShowArrow","mergedStatus","defaultRenderEmpty","_getIcons","suffixIcon","clearIcon","menuItemSelectedIcon","removeIcon","mergedClearIcon","CloseCircleFilled","getSuffixIconNode","arrowIcon","mergedSuffixIcon","iconCls","showSearch","SearchOutlined","DownOutlined","getIcons","selectProps","rcSelectRtlDropdownClassName","mergedSize","inputIcon","Select","Option","OptGroup","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","runClearTimeout","nextTick","env","argv","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","umask","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","eq","nativeCreate","getNative","isKeyable","__data__","isStyleNameSupport","styleNameList","isStyleSupport","styleValue","isStyleValueSupport","az","bz","hermite","factorTimes2","factor1","factor2","factor3","factor4","bezier","inverseFactor","inverseFactorTimesTwo","zScale","transformQuat","qz","qw","uvx","uvy","uvz","uuvx","uuvy","uuvz","rotateX","rotateY","rotateZ","propagationDelegate","pick","isType","isPlainObject","isObjectLike","deep","deepAssign","GLOBAL","Pie","prevOptions","prevData","curData","TinyLine","Histogram","binField","binNumber","binWidth","stackField","Progress","Stock","place","intersects","ab","packEnclose","circles","sj","sk","extendBasis","enclosesWeakAll","enclosesNot","encloseBasis2","encloseBasis3","enclosesWeak","encloseBasis","x21","y21","r21","d3","xb","yb","initCanvas","drawBackground","fillRect","getUnitPatternSize","isStagger","unitSize","getSymbolsPosition","transformMatrix","dpr","defaultDotPatternCfg","drawDot","defaultLinePatternCfg","createLinePattern","lineCfg","Path2D","defaultSquarePatternCfg","drawSquare","strokeRect","getCanvasPattern","dotCfg","dots_1","createDotPattern","squareCfg","squares","squares_1","createSquarePattern","radio","MarkerActiveAction","getView","Scatter","STEP","stepRatio","STEP_RATIO","COORD_START_ANGLE","COORD_END_ANGLE","INTERVAL","START_ANGLE","END_ANGLE","Gauge","indicatorView","rangeView","Column","Bar","switchedFieldOptions","TinyColumn","TinyArea","RingProgress","PolicyLinks","Notice","_Component","closeTimer","clearCloseTimer","noticeKey","startCloseTimer","updateMark","restartCloseTimer","componentClass","createPortal","_iterableToArray","items_per_page","jump_to","jump_to_confirm","prev_page","next_page","prev_5","next_5","prev_3","next_3","page_size","parentRef","initRef","MapShim","getIndex","class_1","__entries__","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","leadingCall","trailingCall","lastCallTime","resolvePending","timeoutCallback","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","characterData","subtree","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","positions","getHTMLElementContentRect","positions_1","getPaddings","horizPad","vertPad","boxSizing","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getContentRect","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","Constr","contentRect","DOMRectReadOnly","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","clearActive","observation","flexGapSupported","canUseDocElement","detectFlexGapSupported","flex","flexDirection","rowGap","autoAdjustOverflowEnabled","autoAdjustOverflowDisabled","getOverflowOptions","getPlacements","_config$arrowWidth","arrowWidth","_config$horizontalArr","horizontalArrowShift","_config$verticalArrow","verticalArrowShift","placementMap","focusable","includePositive","isFocusableElement","isContentEditable","tabIndexAttr","tabIndexNum","getFocusNodeList","querySelectorAll","CreateButton","Leaderboards","Home","image_url","BrowserInfo","os","NodeInfo","platform","SearchBotDeviceInfo","bot","BotInfo","ReactNativeInfo","SEARCHBOT_OS_REGEX","userAgentRules","operatingSystemRules","detect","parseUserAgent","product","matchUserAgent","matched","uaMatch","matchedRule","versionParts","createVersionParts","detectOS","searchBotMatch","conversionTagFormatter","getBinKey","binHistogram","originData_copy","_binWidth","_defaultBinNumber","LN2","sturges","bins","bin","binKey","groupKey","groupKeyBinKey","plotData","stockStyle","baseMeta","getStockData","open_1","close_1","high","low","tile","ignoreParentValue","paddingInner","paddingOuter","treemap","tileMethod","shuffle","AssertionError","assert","objectToGetParams","isPromise","getBoxPositionOnWindowCenter","screenLeft","screenTop","getBoxPositionOnScreenCenter","windowOpen","configRest","toolbar","directories","menubar","scrollbars","resizable","centerscreen","chrome","shareDialog","interval_1","ShareButton","openShareDialog","onShareWindowClose","windowHeight","windowPosition","windowWidth","beforeOnClick","networkLink","openShareDialogOnClick","returnVal","disabledStyle","forwardedRef","networkName","resetButtonStyle","newClassName","border","optsMap","CreatedButton","quote","hashtag","createIcon","iconConfig","bgStyle","iconFillColor","caption","tags","posttype","canonicalUrl","via","hashtags","related","separator","subject","ShareButtons","the18Direct","_objectSpread","Filler","onInnerResize","innerStyle","_isNativeReflectConstruct","getPageY","ScrollBar","moveRaf","scrollbarRef","thumbRef","visibleTimeout","startTop","delayHidden","onScrollbarTouchStart","onContainerMouseDown","patchEvents","onMouseUp","removeEvents","_this$scrollbarRef$cu","onStartMove","getTop","onScroll","newTop","enableScrollRange","getEnableScrollRange","enableHeightRange","getEnableHeightRange","ptg","newScrollTop","onStopMove","getSpinHeight","baseHeight","scrollTop","showScroll","_this$state2","spinHeight","canScroll","userSelect","setRef","refFunc","CacheMap","maps","useDiffItem","onDiff","setPrevData","diffItem","setDiffItem","originList","targetList","shortList","longList","originLen","notExistKey","__EMPTY_ITEM__","getItemKey","diffIndex","shortKey","findListDiffIndex","lockRef","lockTimeoutRef","lockScroll","scrollPingRef","isScrollAtTop","isScrollAtBottom","smoothOffset","originScroll","EMPTY_DATA","ScrollStyle","overflowAnchor","RawList","itemHeight","_props$fullHeight","fullHeight","useVirtual","inVirtual","setScrollTop","scrollMoving","setScrollMoving","componentRef","fillerInnerRef","scrollBarRef","sharedConfig","syncScrollTop","alignedTop","maxScrollHeightRef","keepInRange","rangeRef","diffItemRef","_useHeights","onItemAdd","onItemRemove","updatedMark","setUpdatedMark","instanceRef","heightsRef","collectRafRef","collectHeight","htmlElement","useHeights","_useHeights2","setInstanceRef","heights","heightUpdatedMark","_fillerInnerRef$curre","startOffset","itemTop","cacheHeight","currentItemBottom","maxScrollHeight","useOriginScroll","_useFrameWheel","onWheelDelta","offsetRef","wheelValueRef","isMouseScrollRef","patchMultiple","detail","useFrameWheel","_useFrameWheel2","onRawWheel","onFireFoxScroll","listRef","cleanUpEvents","touchedRef","touchYRef","intervalRef","onTouchMove","currentY","onTouchEnd","_listRef$current","useMobileTouchMove","onMozMousePixelScroll","scrollTo","triggerFlash","scrollRef","_arg$offset","syncScroll","targetAlign","needCollectHeight","newTargetAlign","mergedAlign","stackTop","itemBottom","targetTop","useScrollTo","_scrollBarRef$current","renderList","listChildren","renderFunc","useChildren","componentStyle","LayoutContext","siderHook","addSider","removeSider","BasicComponent","Basic","BasicLayout","siders","setSiders","hasSider","Tag","SiderContext","dashed","firstLevel","MenuItem","siderCollapsed","disableMenuItemTitleTooltip","tooltipProps","childrenLength","returnNode","renderItemChildren","_this$context2","wrapNode","antdMenuTheme","titleIsSpan","useItems","InternalMenu","_props$theme","_internalDisableMenuItemTitleTooltip","mergedSelectable","menuClassName","EllipsisOutlined","Menu","menu","maxYFieldValue","conversionTagComponent","getLineCoordinate","formatter_1","lineOption","formatData","funnelStyle","datumIndex","initLineOption","basicFunnel","compareField","showFacetTitle","formatterData","defaultFacetLabel","viewIndex","preItemX","preItemY","defaultOption","dynamicHeight","facetFunnel","compareFunnel","dynamicHeightFunnel","topCenter","bottomCenter","Dropdown","_props$arrow","_props$placements","autoFocus","triggerVisible","setTriggerVisible","focusMenuRef","handleCloseMenuAndReturnFocus","_triggerRef$current","_triggerRef$current$t","_triggerRef$current$t2","_triggerRef$current$t3","focusMenu","_triggerRef$current2","_triggerRef$current2$","_triggerRef$current2$2","_triggerRef$current2$3","handleKeyDown","focusResult","childrenProps","childClassName","minOverlayWidthMatchTrigger","getMenuElement","overlayElement","triggerHideAction","onVisibleChangeProp","onOverlayClick","BUTTON_ACTION_CONFIG","drawText","getInteractionCfg","interactionType","brushType","isStartEnable","maskType","BRUSH_TYPES","brushInteraction","enabled","buttonConfig","InviteModal","onCancel","footer","TextArea","Input","LeaderboardDescription","defaultDescription","buildDefaultDescription","editing","setEditing","showInvite","setShowInvite","setDescription","isOwner","owner","handleCancel","handleSave","userPools","Buttons","autoSize","showCount","maxLength","seed","getUuid","Notification","notices","hookRefs","originNotice","previousState","noticeIndex","updatedNotices","userPassKey","_ref2$notice","noticePropsMap","noticeKeys","_notice$onClose","_this2$noticePropsMap","properties","called","childrenAsData","injectPropsWithOption","newOption","popupElement","dropdownStyle","_props$direction","dropdownRender","dropdownAlign","empty","dropdownPrefixCls","builtInPlacements","getBuiltInPlacements","mergedTransitionName","getPopupElement","RefSelectTrigger","customizeIcon","customizeIconProps","_onMouseDown","WebkitUserSelect","unselectable","_inputNode2","_inputNode2$props","inputElement","autoComplete","editable","activeDescendantId","_onKeyDown","_onChange","onPaste","_onCompositionStart","onCompositionStart","_onCompositionEnd","onCompositionEnd","inputNode","_inputNode","originProps","onOriginKeyDown","onOriginChange","onOriginMouseDown","onOriginCompositionStart","onOriginCompositionEnd","RefInput","isBrowserClient","_value$key","onPreventMouseDown","effect","searchValue","inputRef","maxTagCount","maxTagTextLength","_props$maxTagPlacehol","maxTagPlaceholder","omittedValues","tagRender","onToggleOpen","onRemove","onInputChange","onInputPaste","onInputKeyDown","onInputMouseDown","onInputCompositionStart","onInputCompositionEnd","measureRef","inputWidth","setInputWidth","focused","setFocused","selectionPrefixCls","inputValue","inputEditable","defaultRenderSelector","itemDisabled","selectionNode","valueItem","displayLabel","strLabel","customizeRenderSelector","activeValue","inputChanged","setInputChanged","combobox","hasTextInput","hiddenStyle","renderPlaceholder","useLock","doLock","compositionStatusRef","tokenWithEnter","onSearchSubmit","_useLock","_useLock2","getInputMouseDown","setInputMouseDown","pastedTextRef","triggerOnSearch","sharedProps","currentKeyCode","replacedText","clipboardData","selectNode","MultipleSelector","msTouchAction","inputMouseDown","ForwardSelector","BaseSelectContext","DEFAULT_OMIT_PROPS","BaseSelect","_customizeRawInputEle","omitDomProps","displayValues","onDisplayValuesChange","emptyOptions","_props$notFoundConten","onClear","getInputElement","getRawInputElement","defaultOpen","onDropdownVisibleChange","onActiveValueChange","onSearchSplit","tokenSeparators","OptionList","_props$showAction","onKeyUp","mergedShowSearch","domProps","setMobile","selectorDomRef","selectorRef","_useDelayReset","bool","setBool","delayRef","cancelLatest","useDelayReset","_useDelayReset2","mockFocused","setMockFocused","cancelSetMockFocused","_selectorRef$current","_selectorRef$current2","mergedSearchValue","_displayValues$","customizeInputElement","customizeRawInputElement","customizeRawInputRef","innerOpen","setInnerOpen","emptyListContent","triggerOpen","newOpen","tokenSeparator","onInternalSearch","searchText","fromTyping","isCompositing","newSearchText","patchLabels","tokens","separate","restTokens","prevList","unitStr","getSeparatedContent","getClearLock","setClearLock","focusRef","activeTimeoutIds","onTriggerVisibleChange","newWidth","customizedTrigger","onGlobalMouseDown","shadowRoot","composed","composedPath","useSelectTriggerControl","arrowNode","clearNode","baseSelectContext","toggleOpen","optionList","selectorNode","newValues","_selectorRef$current3","_len3","_key3","_listRef$current2","clearLock","cloneDisplayValues","removedDisplayValue","_listRef$current3","convertNodeToOption","_node$props","convertChildrenToData","optionOnly","isSelectOptGroup","_node$props2","useRefFunc","funcRef","cacheFn","isSelectOption","isTitleType","_useBaseProps","onPopupScroll","flattenOptions","onActiveValue","defaultActiveFirstOption","rawValues","memoFlattenOptions","onListMouseDown","scrollIntoView","getEnabledActiveIndex","_memoFlattenOptions$c","activeIndex","setActiveIndex","setActive","fromKeyboard","flattenItem","onSelectValue","appVersion","nextActiveIndex","omitFieldNameList","getLabel","itemData","mergedLabel","itemIndex","groupOption","_data$title","groupTitle","optionPrefixCls","optionClassName","iconVisible","optionTitle","RefOptionList","OMIT_DOM_PROPS","backfill","_props$autoClearSearc","autoClearSearchValue","_props$dropdownMatchS","filterOption","filterSort","optionFilterProp","optionLabelProp","_props$listHeight","_props$listItemHeight","labelInValue","mergedId","useId","mergedFilterOption","mergedFieldNames","setSearchValue","parsedOptions","mergedOptions","valueOptions","setLabelOptions","labelOptionsMap","isChildren","useOptions","convert2LabelValues","draftValues","rawValue","rawLabel","rawKey","rawDisabled","_val$value","isRawValue","_option$key","internalValue","setInternalValue","_useCache","_cacheRef$current","prevValueCache","prevOptionCache","patchedValues","labeledValues","_prevValueCache$get","valueCache","optionCache","useCache","_values$","_useCache2","mergedValues","getMixedOption","firstValue","_item$label","_mergedValues$","strValue","createTagOption","filteredOptions","fieldOptions","fieldLabel","fieldValue","customizeFilter","upperSearch","wrapOption","subOptions","useFilterOptions","cloneOptions","existOptions","filledSearchOptions","orderedFilteredOptions","displayOptions","isGroupOption","grpLabel","newVal","_mergedValues$index","returnValues","returnOptions","setActiveValue","accessibilityIndex","setAccessibilityIndex","mergedDefaultActiveFirstOption","_ref2$source","triggerSelect","getSelectEnt","_option$key2","_getSelectEnt","_getSelectEnt2","wrappedValue","_getSelectEnt3","_getSelectEnt4","_wrappedValue","_option","onInternalSelect","cloneValues","mergedSelect","selectContext","realVirtual","nextValues","formatted","newRawValues","words","patchValues","newRawValue","TypedSelect","messageInstance","localPrefixCls","hasTransitionName","getKeyThenIncreaseKey","getRCNotificationInstance","instanceConfig","CheckCircleFilled","ExclamationCircleFilled","typeList","IconComponent","messageClass","getRcNotificationInstance","closePromise","messageKey","attachTypeApi","originalApi","isArgsProps","useMessage","strokeWidth","strokeLinecap","strokeLinejoin","IconMap","ExceptionMap","noFound","serverError","unauthorized","ExceptionStatus","SVGComponent","customizeClassName","_ref3$status","PRESENTED_IMAGE_403","PRESENTED_IMAGE_404","PRESENTED_IMAGE_500","propIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","isParentNode","inCenter","getLiquidData","liquidStyle","outline","wave","getWaterWavePositions","waveLength","getWaterWavePath","waterLevel","phase","curves","_phase","waveRight","builtInShapeByName","cpX","cpY","waveCount","minXPoint","waveAttrs","getFillAttrs","outlineAttrs","getLineAttrs","shapePath","waves","clipPath","addWaterWave","Liquid","paddingStack","positionNode","PieLegendAction","getActiveElements","item_1","getActiveElementLabels","transfrom","StatisticAction","getAnnotations","_view","getInitialAnnotation","initialAnnotation","colorField_1","initialStatistic","PIE_STATISTIC","defaultIndicator","Spin","debouncifyUpdateSpinning","cancelExistingSpin","updateSpinning","originalUpdateSpinning","spinning","renderSpin","spinPrefixCls","tip","wrapperClassName","spinClassName","divProps","spinElement","dotClassName","renderIndicator","isNestedPattern","shouldBeDelayed","shouldDelay","SpinFC","spinClassProps","setDefaultIndicator","_typeof3","_getRequireWildcardCache","nodeInterop","cacheBabelInterop","cacheNodeInterop","newObj","hasPropertyDescriptor","desc","objectWithoutPropertiesLoose","arrayWithoutHoles","nonIterableSpread","_interopRequireDefault","_default","logger","unsubFunctions","_enhanceFunc","addEvent","consoleOptions","isEnabled","_typeof2","shouldAggregateConsoleErrors","_exceptions","Capture","captureMessage","logLevel","unsubFunction","messageArgs","isConsole","exceptionType","browserHref","scrub","captureException","preppedTrace","trace","_TraceKit","computeStackTrace","errorType","addEventOptions","_stackTrace","_stackTraceFromError","isScalar","_optionalScalars","_i2","_optionalMaps","_field","scrubbed","_i3","_Object$keys","_interopRequireWildcard","_registerExceptions","_classCallCheck2","_createClass2","objectPrototype","isUndefined","what","hasKey","orig","_window","Handler","_errorHandler","_ignoreOnError","_wrappedBuiltIns","report","_instrumentTryCatch","builtin","_before","__lr__","__lr_wrapper__","wrapped","_ignoreNextOnError","__inner__","wrappedBuiltIns","wrapTimeFn","originalCallback","wrapEventTarget","evtName","handleEvent","before","eventTargets","jQuery","ready","raven","_raven","errorReport","rejectionHandler","uninstall","makeNotNull","stack","frame","lineNumber","columnNumber","fileName","functionName","_toConsumableArray2","_registerXHR","interceptors","makeInterceptor","fetchId","reversedInterceptors","interceptor","requestError","_err","responseError","didAttach","isPolyfill","polyfill","attach","isReactNative","shouldAugmentNPS","shouldParseXHRBlob","ignoredNetwork","truncate","beginning","addRequest","reqId","_ref$isEnabled","_ref$requestSanitizer","sanitized","_mapValues","headerValue","referrer","addResponse","_ref2$isEnabled","_ref2$responseSanitiz","responseSanitizer","isIgnored","unsubFetch","_registerFetch","unsubXHR","unsubNetworkInformation","_registerNetworkInformation","_defineProperty2","LOGROCKET_FETCH_LABEL","fetchMethodMap","_fetchIntercept","clonedText","pluckFetchFields","req","_response","responseClone","responseTextPromise","responseHash","stringifyHeaders","reader","getReader","utf8Decoder","bodyContents","read","readResponseBody","chunk","DOMException","makeObjectFromHeaders","lastStatus","sendNetworkInformation","newStatus","online","onLine","effectiveType","connection","EFFECTIVE_TYPE_VALS","shouldBeActive","_ref$shouldAugmentNPS","_ref$shouldParseXHRBl","_XHR","xhrMap","unsubscribedFromXhr","LOGROCKET_XHR_LABEL","_lrXMLHttpRequest","mozAnon","mozSystem","xhrObject","xhrId","currentXHRId","openOriginal","sendOriginal","_nps","WOOTRIC_RESPONSES_REGEX","logrocketSessionURL","recordingURL","urlObj","feedback","currentXHR","DELIGHTED_RESPONSES_REGEX","DELIGHTED_FEEDBACK_PREFIX","dataString","_startsWith","isEmpty","headerValues","xhrListeners","readystatechange","readyState","headerParts","responseType","_shouldCloneResponse","responseXML","blobReader","FileReader","readAsText","_unused","variable","dateNow","loadTime","_ref$stateSanitizer","stateSanitizer","_ref$actionSanitizer","actionSanitizer","createStore","initialState","enhancer","originalDispatch","storeId","storeIdCounter","sanitizedState","getState","_now","sanitizedAction","stateDelta","_createEnhancer","_createMiddleware","TraceKit","collectWindowErrors","debug","_slice","UNKNOWN_FUNCTION","ERROR_TYPES_RE","getLocationHref","_oldOnerrorHandler","_onErrorHandlerInstalled","lastException","lastExceptionStack","notifyHandlers","isWindowError","traceKitWindowOnError","lineNo","colNo","augmentStackTraceWithInitialElement","processLastException","msg","_lastExceptionStack","_lastArgs","rethrow","incomplete","computeStackTraceFromStackProp","gecko","winjs","isNative","stackInfo","partial","computeStackTraceByWalkingCallerChain","funcs","recursion","caller","sourceURL","original","MAX_QUEUE_SIZE","_objectWithoutProperties2","_network","_console","_redux","considerIngestServerOption","ingestServer","serverURL","statsURL","_buffer","shouldCaptureStackTrace","_isInitialized","_installed","_lr_surl_cb","getSessionURL","_run","timeOverride","_logger","_isDisabled","appID","_opts$shouldAugmentNP","_opts$shouldParseXHRB","registerExceptions","startNewSession","customEventName","eventProperties","recordingID","threadID","tabID","createEnhancer","createMiddleware","getLogger","REACT_NATIVE_NOTICE","_disableLogRocket","makeNoopPolyfill","_lrMutationObserver","_LogRocket","reduxEnhancer","reduxMiddleware","getVersion","onLogger","setClock","scriptIngest","enterpriseServer","_ref$sdkVersion","sdkVersion","scriptOrigin","scriptTag","currentScript","scriptHostname","CDN_SERVER_MAP","sdkServer","_makeLogRocket","script","__SDKCONFIG__","loggerURL","_lrAsyncScript","_LRLogger","pageXOffset","scrollLeft","pageYOffset","_props$className","compact","formItemContext","groupFormItemContext","hasAddon","addonBefore","addonAfter","hasPrefixSuffix","resolveOnChange","cloneNode","fixControlledValue","affixWrapperClassName","groupClassName","triggerFocus","handleReset","affixWrapperPrefixCls","affixWrapperCls","suffixNode","needClear","clearIconCls","getClearIcon","wrapperCls","addonCls","mergedWrapperClassName","mergedGroupClassName","htmlSize","inputClassName","setSelectionRange","_inputRef$current","_inputRef$current2","select","_inputRef$current3","handleChange","handleFocus","handleBlur","hasMaxLength","valueLength","dataCount","Fragment","getSuffix","_classNames4","_props$bordered","customSize","inputHasPrefixSuffix","prevHasPrefixSuffix","removePasswordTimeoutRef","removePasswordTimeout","mergedAllowClear","ActionMap","Password","renderPassword","customizeInputPrefixCls","inputPrefixCls","visibilityToggle","_iconProps","_props$iconRender","iconRender","iconTrigger","iconProps","getIcon","omittedProps","_props$enterButton","enterButton","customOnSearch","customOnChange","contextSize","composedRef","searchIcon","btnClassName","enterButtonAsElement","isAntdButton","ClearableInputType","ClearableLabeledInput","statusContext","renderClearIcon","inputType","renderTextAreaWithClearIcon","fixEmojiLength","setTriggerValue","isCursorInEnd","triggerValue","newTriggerValue","_a$showCount","_React$useContext2","innerRef","clearableInputRef","compositing","setCompositing","oldCompositionValueRef","oldSelectionStartRef","handleSetValue","resizableTextArea","textArea","selectionStart","textareaNode","motionNodes","motionType","onOriginMotionStart","onMotionStart","onOriginMotionEnd","onMotionEnd","treeNodeRequiredProps","motionedRef","treeNodeProps","getExpandRange","shorter","longer","shorterStartIndex","shorterEndNode","longerStartIndex","longerEndIndex","HIDDEN_STYLE","MOTION_KEY","MotionNode","MotionEntity","MotionFlattenData","getMinimumRangeTransitionRange","NodeList","activeItem","onActiveChange","onListChangeStart","onListChangeEnd","indentMeasurerRef","getIndentWidth","prevExpandedKeys","setPrevExpandedKeys","transitionData","setTransitionData","_React$useState7","_React$useState8","transitionRange","setTransitionRange","_React$useState9","_React$useState10","setMotionType","dataRef","latestData","diffExpanded","prevLen","nextLen","findExpandedKeys","rangeNodes","newTransitionData","_keyIndex","_rangeNodes","_newTransitionData","getAccessibilityPath","fullList","originSet","_args","delayedDragEnterLogic","loadingRetryTimes","treeData","flattenNodes","listChanging","dragStartMousePosition","currentMouseOverDroppableNodeKey","newExpandedKeys","setExpandedKeys","onWindowDragEnd","_calcDropPosition","persist","nativeEvent","resetDragState","_this$state3","_calcDropPosition2","cleanDragState","_this$getActiveItem","outsideTree","_this$state4","abstractDropNodeProps","getTreeNodeRequiredProps","getActiveItem","dropToChild","dropResult","dragNodesKeys","dropToGap","triggerExpandActionExpand","_this$state5","nodeItem","eventNode","expandAction","_this$state6","targetSelected","selectedNodes","selectedKey","setUncontrolledState","checkedObj","_this$state7","oriCheckedKeys","oriHalfCheckedKeys","checkStrictly","checkedNodes","checkedKey","_conductCheck","_checkedKeys","_halfCheckedKeys","keySet","_conductCheck2","checkedNodesPositions","loadPromise","_ref$loadedKeys","_ref$loadingKeys","onLoad","currentLoadedKeys","newLoadedKeys","onRightClick","_this$state8","_this$state9","_this$state10","targetExpanded","newFlattenTreeData","currentExpandedKeys","expandedKeysToRestore","newActiveKey","_this$state11","offsetActiveKey","_this$state12","_this$state13","expandable","atomic","forceState","needSync","allPassed","onUpdated","draggableConfig","_this$state14","showLine","_this$props10$tabInde","rootStyle","entitiesMap","checkedKeyEntity","autoExpandParent","defaultExpandParent","defaultExpandAll","cloneKeyEntities","defaultExpandedKeys","defaultCheckedKeys","_checkedKeyEntity","_checkedKeyEntity$che","_checkedKeyEntity$hal","conductKeys","__webpack_amd_options__","baseGetTag","funcToString","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","SetCache","arraySome","cacheHas","bitmask","customizer","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","stubFalse","freeExports","freeModule","isBuffer","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isSafari","isJsons","isArrays","jsonsHeaders","jsons2arrays","jsons","headerLabels","headerKeys","getHeaderValue","foundValue","elementOrEmpty","joiner","enclosingCharacter","arrays2csv","jsons2csv","string2csv","toCSV","buildURI","uFEFF","csv","dataURI","webkitURL","PropsNotForwarded","propTypes","_react","_propTypes","oneOfType","isRequired","filename","asyncOnClick","SensorTabIndex","SensorClassName","SizeSensorId","defaultRadius","radiusLeaf","packChildren","translateChild","Stage","Lab","STABLE","DEV","BETA","blendObject","normal","dodge","burn","blend","c0","blendRgbArr","innerBlend","colorToArr","g0","g1","rgbaArr","SMALL","intersectionArea","stats","intersectionPoints","circleCircleIntersection","parentIndex","getIntersectionPoints","innerPoints","containedInCircles","arcArea","polygonArea","arcs","midPoint","angleDiff","circleArea","smallest","disjoint","circleOverlap","distanceFromIntersectArea","overlap","bestInitialLayout","areas","loss","lossFunction","setOverlaps","sets","rowid","mostOverlapped","positioned","isPositioned","positionSet","setIndex","extraPoints","bestLoss","bestPoint","localLoss","greedyLayout","constrained","restarts","setids","matrices","distances","constraints","getDistanceMatrices","norm","xj","yj","dij","constrainedMDSGradient","constrainedMDSLayout","overlaps","getBoundingBox","minMax","xRange","yRange","circleMargin","interior","exterior","computeTextCentre","solution","areaStats","computeTextCentres","overlapped","circleids","circleid","getOverlappingCircles","areaids","exclude","setid","centre","ID_FIELD","blendMode","getColorMap","colorPalette","setsField","colorMap","colorPaletteLen","colorArr","layoutVennData","vennData","initialLayout","pairs","addMissingAreas","setid_1","venn","xScaling","yScaling","scaling","scaleSolution","textCenters","circlePath","wide","intersectionAreaPath","fillAttrs","VennLabel","customLabelInfo","placeElementsOrdered","VennElementActive","syncElementsPos","VennElementHighlight","ElementSelectedAction","ElementSingleSelectedAction","VennElementSelected","VennElementSingleSelected","tempPadding","currSets","filterSets","legalArr","testArr","islegalSets","colorOptions","map_1","transformColor","vennInteraction","MAP_1","Venn","targetDepth","justify","sourceLinks","sumBy","maxValueBy","ascendingSourceBreadth","ascendingBreadth","ascendingTargetBreadth","defaultNodes","graph","defaultLinks","nodeById","computeLinkBreadths","nodes_1","targetLinks","linkSort","sankey","nodes_2","computeNodeLinks","nodes_3","fixedValue","computeNodeValues","maxDepth","computeNodeDepths","computeNodeHeights","nodes_4","columns_1","computeNodeLayers","minValueBy","columns_2","nodes_6","nodes_5","reorderLinks","initializeNodeBreadths","relaxRightToLeft","relaxLeftToRight","computeNodeBreadths","column_1","dy_1","reorderNodeLinks","resolveCollisions","column_2","sourceTop","dy_2","resolveCollisionsBottomToTop","resolveCollisionsTopToBottom","dy_3","dy_4","targetLinks_1","sourceLinks_1","nodes_7","nodeAlign","nodeDepth","nodeSort","nodeWidth","nodePadding","extent","ALIGN_METHOD","sankeyLayout","sankeyLayoutOptions","sankeyProcessor","getNodeAlignFunction","layoutData","cutoffCircle","edges","removedData","getNodes","graphMatrix","visited","DFS","dfsNode","getNodeWidthRatio","nodeWidthRatio","getNodePaddingRatio","nodePaddingRatio","transformToViewsData","sankeyLayoutInputData","dataType","isNodeLink","isNode","COLOR_FIELD","NODES_VIEW_ID","EDGES_VIEW_ID","nodeStyle","edgeStyle","nodeState","edgeState","edgeView","nodeView","DRAG_INTERACTION","nodeInteractions","edgeInteractions","SankeyNodeDragAction","isDragging","isNodeElement","getNodeView","getEdgeView","getCurrentDatumIdx","currentElementIdx","prevNodeAnimateCfg","prevEdgeAnimateCfg","prevDatum","datumGap_1","nextDatum","newData","edgeData","Sankey","isLast","nodesView","edgesView","tagCfg","ellipsisPosition","tagGroup","maxTextLength","LineAnnotation","renderLine","TextAnnotation","resetLocation","textGroup","ArcAnnotation","renderArc","largeFlag","RegionAnnotation","renderRegion","ImageAnnotation","renderImage","getImageAttrs","DataMarkerAnnotation","renderText","renderPoint","textAttrs","isVertival","lineDisplay","DataRegionAnnotation","RegionFilterAnnotation","shapeIdx","adjustShapeAttrs","ShapeAnnotation","HtmlAnnotation","alignX","alignY","domWidth","domHeight","AxisType","DualAxesGeometry","LEFT_AXES_VIEW","RIGHT_AXES_VIEW","DEFAULT_YAXIS_CONFIG","DEFAULT_LEFT_YAXIS_CONFIG","DEFAULT_RIGHT_YAXIS_CONFIG","isLine","isColumn","getGeometryOption","transformObjectToArray","transformAttribute","getYAxisWithDefault","axisType","Left","Right","getViewLegendItems","legendItemName","isGeometry","viewId","attrItems","sliderValue","geometryOptions","allLine","createViews","SORT_MAP","FIELD_KEY","adjust_1","customOffset","drawSingleGeometry","themeColor","groupScale","leftView","rightView","leftLegend_1","rightLegend_1","leftItems","rightItems","yF","legendItem_1","DualAxes","AxisBase","overlapOrder","tickStates","optimize","displayWithLabel","tickLineStyle","threshold","drawTicks","drawTitle","setItems","updateItem","clearItems","itemGroup","updateTickStates","getItemStates","getSidePoint","getSideVector","getTextAnchor","getTextBaseline","processOverlap","getTickLineItems","tickLineItems","tickLineLength","tickSegment","getTickPoint","tickId","getSubTickLineItems","subTickLineItems","subCount","tickLineCount","getTickLineAttrs","tickItem","tickItems","defaultTickLineStyle","drawTick","tickLineGroup","drawTickLines","tickCfg","subTickLineItems_1","processTicks","optimizeTicks","drawLabels","applyTickStates","page_1","optimizedTicks","getLabelAttrs","defaultLabelStyle","afterProcessTicks_1","getTitleAttrs","titleCfg","titleHeight","titlePoint","getAxisVector","titleAttrs","titleShape","drawDescriptionIcon","descriptionShape","startX","x5","y5","x6","y6","x7","y7","labelStateStyle","tickLineId","tickLineShape","tickLineStateStyle","tickLineCfg","ellipseLabels","getDefault","ellipsisTail","ellipsisHead","ellipsisMiddle","getRotateAngle","isRotate","prevBBox","reserveOne","labelsGroup","autoHideCfg","hasHide","parityHide","firstBBox","equidistance","reserveFirst","reserveLast","reserveBoth","preLabel","equidistanceWithReverseBoth","labelRotate","isOverlap","setLabelsAngle","fixedAngle","customRotate","unfixedAngle","regionX","regionY","axisVector","verticalVector","titleSpacing","canProcessOverlap","autoProcessOverlap","hasAdjusted","util","overlapCfg","verticalFactor_1","newAlign","sweep","vecLen","CrosshairBase","renderBackground","textId","LineCrosshair","CROSSHAIR_LINE","CROSSHAIR_TEXT","HtmlCrosshair","crosshairTpl","textTpl","resetText","initCrossHair","crosshairEl","textEl","alignText","BACKGROUND_STYLE","LINE_STYLE","AREA_STYLE","pointsToPath","dataToPath","getSmoothLinePath","linePathToAreaPath","areaPath","lineYPx","lineY","getAreaLineY","Trend","isArea","DEFAULT_HANDLER_STYLE","FOREGROUND_STYLE","HANDLER_STYLE","TEXT_STYLE","SLIDER_CHANGE","prevX","prevY","containerDOM","getContainerDOM","offsetXRange","adjustOffsetRange","updateStartEnd","updateUI","setRange","oldStart","oldEnd","newStart","newEnd","getRange","validCfg","minHandler","maxHandler","trend","silent","handlerWidth","handlerHeight","foregroundShape","minTextShape","maxTextShape","_dodgeText","minAttrs","maxAttrs","foreground","offsetRange","minBBox","maxBBox","spiral","timeInterval","wordCloud","cloudFont","cloudFontSize","cloudFontNormal","cloudRotate","cloudPadding","archimedeanSpiral","cloudText","cloudCanvas","cloud","ch","board","cloudCollide","collideRects","sprite","sw","msx","contextAndRatio","zeroArray","cloudSprite","hasText","hasImage","cloudBounds","_tags","_bounds","can","w32","cxt","imageData","functor","spirals","tagCloud","imageMask","cloudRadians","maxh","wcr","wsr","hcr","hsr","cw","xoff","yoff","seenRow","archimedean","rectangular","sign","rawOptions","chartPadding","wordField","wordStyle","placementStrategy","numbers","getSingleKeyValues","getFontSizeMapping","getSize","getRotate","containerSize","resolvePadding","fMin_1","fMax_1","rotationSteps","resolveRotate","perSize","WORD_CLOUD_COLOR_FIELD","rotateRatio","getTextAttrs","WordCloud","rej","HTMLImageElement","ERROR","SUNBURST_ANCESTOR_FIELD","SUNBURST_Y_FIELD","SUNBURST_PATH_FIELD","RAW_FIELDS","hierarchyConfig","sunburstStyle","drilldown","activeDepth","ancestorNode","pathFormatter","valueFormatter","adaptorInteraction","Sunburst","enableDrillDown","packLayout","resolvePaddingForCircle","wSize","hSize","restWidthPadding","restHeightPadding","finalSize","diameter","tempAppendPadding","appendPaddingByDrilldown","circleSize","nameFormatter","CirclePacking","sizeRatio","heatmapStyle","checkedSizeRatio","dautm","maxSideLength","sideLength","quickselect","sd","quantile","indices","quantileIndex","quantileSelect","multiQuantileSelect","q1","q3","pdfOptions","pdfResults","violinSize","violinY","kde","sampleSize","resultList","seriesGroup","series","VIOLIN_Y_FIELD","MIN_MAX_FIELD","QUANTILE_FIELD","MEDIAN_FIELD","VIOLIN_VIEW_ID","violinStyle","TOOLTIP_FIELDS","boxView","minMaxView","quantileView","medianView","legendField_1","legendOptions","violinView","DIFF_FIELD","ABSOLUTE_FIELD","IS_TOTAL","leaderLine","waterfallStyle","processed","newYField","dIdx","localeTotalLabel","colorMapping","Y_FIELD_META","labelMode","leaderLineCfg","linkPath","Waterfall","findInteraction","enableInteraction","enableDrillInteraction","curPath","rectStyle","viewZoomInteraction","Treemap","drillDownInteraction","transData","areaOptions","RadarTooltipController","cfgTitle","hintItems","title_1","result_1","displayTitle","RadarTooltipAction","getTooltipController","Radar","BOX_RANGE","OUTLIERS_VIEW_ID","boxStyle","low_1","q1_1","median_1","q3_1","high_1","yFieldName","outliersPoint","outliersField","outliersStyle","outliersView","outliersViewData","syncName","Box","getSeriesFieldKey","measureField","rangeField","ds","rangeValues","flat","rKey","measureValues","mKey","targetValues","tKey","bulletStyle","extData","rangeGeometry","measureGeometry","targetGeometry","Bullet","getScaleMax","maxAngle","yData","formatRadian","actualData","stackedData","getStackedData","intervalGeometry","RadialBar","FIRST_AXES_VIEW","SECOND_AXES_VIEW","SERIES_FIELD_KEY","hopeData","data1","data2","__axisPosition","firstView","secondView","firstViewData","secondViewData","aliasMap","leftGeometry","rightGeometry","leftLabelCfg","positionMap_1","BidirectionalBar","sourceWeight","targetWeight","sortBy","chordLayout","chordLayoutOptions","chordLayoutInputData","inEdges","outEdges","frequency","processGraph","sortNodes","outputNodes","nodePaddingRatio_1","margin_1","nodeWidthRatio_1","totalValue_1","deltaX","deltaX_1","layoutNodes","outputLinks","valueById_1","sId","tId","sNode","tNode","sValue","currentSValue","sStart","sEnd","tValue","currentTValue","tStart","tEnd","locatingEdges","NODE_COLOR_FIELD","EDGE_COLOR_FIELD","nodesData","edgesData","chordData","nodeGeometry","edgeGeometry","edgeOptions","Chord","facetAdaptor","facetType","_eachView","restFacetCfg","viewOptions","execViewAdaptor","plotOptions","GridBase","alternateColor","getLineType","drawGrid","getAlternatePath","prePoints","getGridPath","reversePoints","nextPath","getPathStyle","preItem","lineId","gridPath","regionId","isEven","drawAlternateRegion","lineType","sweepFlag_1","LegendBase","getDrawPoint","setDrawPoint","resetDraw","drawLegendContent","DEFAULT_PAGE_NAVIGATOR","RIGHT_ARROW_NAME","LEFT_ARROW_NAME","ROTATE_MAP","up","down","currentPageIndex","totalPagesCnt","pageWidth","pageHeight","onNavigationBack","updateNavigation","getCurrentNavigationMatrix","onNavigationAfter","itemBackground","alignRight","itemElement","offsetGroup","drawItem","getItemHeight","processItems","drawItems","itemContainerGroup","subGroup","adjustNavigation","drawMarker","markerAttrs","drawItemText","textName","xPosition","drawRadio","radioCfg","showRadio","radioShape","groupId","subContainer","getLimitItemWidth","curX","markerShape","itemMarkerSpacing","nameShape","valueShape","applyItemStates","subGroups","navigation","drawNavigation","navigationBBox","widthLimit","maxRow","maxRowHeight_1","cntPerPage_1","styleCfg","arrowStyle","leftArrow","drawArrow","leftArrowBBox","rightArrow","cursorX","updateArrowPath","itemStates_1","elName","ContinueLegend","getCurrentValue","resetTrackClip","resetHandlers","bindSliderEvent","bindRailEvent","bindTrackEvent","drawRail","fixedElements","resetTrack","bindHandlersEvent","getValueByCanvasPoint","curDiff","dValue","drawLabel","labelFormatter","alignAttrs","getLabelAlignAttrs","getRailPath","railCfg","getTrackColor","getTrackPath","getRailShape","getClipTrackAttrs","railBBox","getRailBBox","getPointByValue","getTrackAttrs","trackCfg","trackId","trackShape","trackAttrs","getRailCanvasBBox","isVertcal","resetHandler","getHandlerPath","handlerCfg","oneSixthWidth","triangleX","triangleY","handlerShape","railShape","minLabel","maxLabel","fixedVertail","fixedHorizontal","fitRailLength","minLabelBBox","maxLabelBBox","lengthField","changeRailLength","changeRailPosition","railHeight","maxLabelWidth","xCrosshairTpl","yCrosshairTpl","crosshairsRegion","renderCustomContent","resetTitle","renderItems","clearCrosshairs","setTitle","clearItemDoms","setCrossHairsVisible","xCrosshairDom","yCrosshairDom","getHtmlContentNode","cacheDoms","limitBox","getPointByPosition","outSides","getOutSides","getAlignPoint","resetCrosshairs","newContainer","oldContainer","newChild","titleDom","listDom","innerText","crosshairBox","resetCrosshair","croshairDom","checkCrosshair","domName","tplName","constName","substituteObj","domStr","itemDom","sectorStyle","Rose","DEFAULT_THEME","onStartEvent","startPos","bindLaterEvent","endPos","updateThumbOffset","onTrackClick","validateRange","onThumbMouseOver","onThumbMouseOut","originalValue","minThumbLen","renderTrackShape","renderThumbShape","themeSize","thumbShape","emitOffsetChange","defaults","escape","getJSON","withConverter","resetWarningCache","any","arrayOf","instanceOf","objectOf","oneOf","exact","checkPropTypes","PropTypes","Cookies","OPTIONS","SAME_SITE_OPTIONS","VISIBLE_OPTIONS","getCookieConsentValue","resetCookieConsentValue","STRICT","LAX","HIDDEN","SHOW","BY_COOKIE_VALUE","acceptOnScrollPercentage","accept","acceptOnScroll","handleScroll","flexWrap","declineButtonStyle","contentStyle","getCookieValue","passive","removeScrollListener","cookieName","cookieValue","hideOnAccept","onAccept","setCookie","acceptOnOverlayClick","declineCookieValue","hideOnDecline","onDecline","setDeclineCookie","extraCookieOptions","cookieSecurity","disableStyles","declineButtonText","containerClasses","contentClasses","buttonClasses","declineButtonClasses","buttonId","declineButtonId","disableButtonStyles","enableDeclineButton","flipButtons","ButtonComponent","overlayClasses","ariaAcceptLabel","ariaDeclineLabel","customContainerAttributes","customContentAttributes","customButtonProps","customDeclineButtonProps","customButtonWrapperAttributes","decline","overlayClick","nativeMax","nativeMin","maxWait","timerId","lastInvokeTime","maxing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","flush","_construct","Parent","Class","_wrapNativeSuper","_cache","Wrapper","formatRegExp","convertFieldsError","isEmptyValue","isNativeStringType","asyncSerialArray","AsyncValidationError","_Error","asyncMap","objArr","_pending","flattenArr","flattenObjArr","firstFields","objArrKeys","objArrLength","pending","asyncParallelArray","complementError","fullFields","fullField","deepMerge","urlReg","required$1","pattern$2","includeBoundaries","v4","v6seg","v6","v46Exact","v4exact","v6exact","ip","ipv4","ipv6","getUrlRegex","ruleType","validators","dateObject","newMessages","cloned","_messages","_proto","source_","messages$1","getValidationMethod","getType","doIt","addFullField","suppressWarning","filledErrors","fieldsSchema","paredFieldsSchema","fieldSchema","fieldSchemaList","errs","finalErrors","asyncValidator","suppressValidatorError","_errors","messageIndex","innerId","setInnerId","retId","LeaderboardAlert","Dodge","adjustDataArray","xDimensionLegenth","groupDataArray","frameIndex","getDistribution","valueArr","valIndex","getDodgeOffset","tickLength","getIntervalOnlyOffset","getDodgeOnlyOffset","getIntervalAndDodgeOffset","normalizedIntervalPadding","normalizedDodgePadding","geomWidth","normalizedMaxWidht","normalizedMinWidht","Jitter","adjustGroup","getAdjustOffset","Cache","Stack","processStack","processOneDimStack","positive","negative","xKey","newXValue","stackHeight","stackValue","Symmetric","getXValuesMaxMap","off_1","getDimMaxValue","dimValues","flattenValues","EN_US_LOCALE","general","increase","decrease","waterfall","ZH_CN_LOCALE","ver","_sensorPool","sensor","getSensor","removeSensor","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","__RewireAPI__","__ResetDependency__","__set__","__Rewire__","__GetDependency__","__get__","RedBoxError","sliceIterator","_propTypes2","_react2","_reactDom2","_style2","_errorStackParser2","_objectAssign2","_lib","_sourcemappedStacktrace","_get__2","mapped","mapOnConstruction","mapError","stackLines","fixedLines","_iteratorNormalCompletion","_didIteratorError","_iteratorError","stackLine","evalStackLine","_evalStackLine","atSomething","file","rowColumn","_get__","mappedStack","frames","editorScheme","useLines","useColumns","_get__3","linkToFile","_get__4","redbox","parseError","renderFrames","RedBox","_get__5","renderRedBoxError","_RewiredData__","INTENTIONAL_UNDEFINED","_RewireAPI__","variableName","mapStackTrace","isFilenameAbsolute","makeUrl","makeLinkText","_get_original__","_set__","_reset__","_with__","rewiredVariableNames","previousValues","addPropertyToAPIObject","_typeOfOriginalExport","addNonEnumerableProperty","useOriginId","reactNativeId","nextId","maskProps","getMotionName","sentinelStyle","ariaId","bodyProps","modalRender","holderRef","sentinelStartRef","sentinelEndRef","_sentinelStartRef$cur","changeActive","footerNode","headerNode","closer","MemoChildren","Content","destroyOnClose","mousePosition","dialogRef","setTransformOrigin","elementOffset","Dialog","_props$keyboard","keyboard","_props$focusTriggerAf","focusTriggerAfterClose","scrollLocker","wrapStyle","wrapClassName","wrapProps","afterClose","_props$closable","_props$mask","_props$maskClosable","lastOutSideActiveElementRef","contentRef","animatedVisible","setAnimatedVisible","onInternalClose","contentClickRef","contentTimeoutRef","onWrapperClick","unLock","_contentRef$current","preventScroll","_props$destroyOnClose","_afterClose","getOpenCount","_options$element","oldStyle","styleKeys","cacheStyle","scrollingEffectClassName","scrollingEffectClassNameReg","bodyClassName","scrollBarSize","addClassName","locks","ScrollLocker","_options","lockTarget","_this$options","reLock","findLock","_this$options3","_this$options2","_this$options4","_this$options5","_findLock$options","openCount","supportDom","cacheOverflow","PortalWrapper","rafId","renderComponent","updateScrollLocker","prevVisible","updateOpenCount","prevGetContainer","removeCurrentContainer","attachToParent","setWrapperClassName","_this$container","_this$container$paren","switchScrollingEffect","hiddenTextarea","HIDDEN_TEXTAREA_STYLE","SIZING_STYLE","computedStyleCache","calculateNodeStyling","paddingSize","borderSize","sizingStyle","RESIZE_STATUS","ResizableTextArea","nextFrameActionId","resizeFrameId","saveTextArea","handleResize","resizeStatus","resizeOnNextFrame","resizeTextarea","minRows","maxRows","textareaStyles","uiTextNode","_calculateNodeStyling","singleRowHeight","calculateNodeHeight","RESIZING","RESIZED","fixFirefoxAutoScroll","renderTextArea","_this$props2$prefixCl","currentStart","currentEnd","selectionEnd","nextProps","Timeout","clearFn","_id","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","onreadystatechange","task","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","encodingOrOffset","allocUnsafe","fromArrayLike","fromArrayBuffer","encoding","isEncoding","actual","fromString","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","lastIndexOf","indexSize","valLength","buf","readUInt16BE","foundIndex","hexWrite","parsed","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","inspect","thisStart","thisEnd","thisCopy","targetCopy","toJSON","bytes","checkOffset","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","dst","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","lookup","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","StrictMode","Profiler","Suspense","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","isReactComponent","isPureReactComponent","__self","__source","$$typeof","_owner","_status","_result","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","IsSomeRendererActing","PureComponent","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","createFactory","createRef","lazy","_payload","useCallback","useDebugValue","useReducer","baseTrim","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","trimmedEndIndex","reTrimStart","reWhitespace","nativeObjectToString","isOwn","unmasked","acceptsBooleans","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","setAttributeNS","xlinkHref","prepareStackTrace","_render","_valueTracker","stopTracking","defaultChecked","_wrapperState","initialChecked","controlled","bb","eb","db","fb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","mb","ob","namespaceURI","MSApp","execUnsafeLocalFunction","pb","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","orphans","tabSize","widows","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","rb","sb","tb","setProperty","menuitem","embed","keygen","wbr","wb","correspondingUseElement","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","flags","$b","memoizedState","dehydrated","bc","gc","jc","qc","blockedOn","domEventName","eventSystemFlags","targetContainers","pointerId","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationiteration","animationstart","Fc","Gc","Hc","Jc","Kc","Lc","Mc","Nc","Pc","Qc","unstable_now","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","unstable_UserBlockingPriority","ed","fd","gd","hd","jd","kd","ld","nd","od","charCode","pd","qd","rd","_reactName","_targetInst","isDefaultPrevented","isPropagationStopped","cancelBubble","isPersistent","wd","xd","yd","eventPhase","isTrusted","ud","vd","Ad","getModifierState","zd","buttons","fromElement","toElement","movementX","movementY","Bd","Dd","Fd","Hd","elapsedTime","pseudoElement","Id","Jd","Ld","Md","Esc","Spacebar","Up","Down","Del","Win","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","targetTouches","Xd","Yd","wheelDeltaX","wheelDeltaY","deltaZ","deltaMode","Zd","$d","documentMode","datetime","password","tel","week","oninput","nextSibling","compareDocumentPosition","HTMLIFrameElement","contentEditable","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","Yb","af","bf","cf","Nb","ef","ff","gf","hf","jf","kf","lf","mf","nf","__html","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","childContextTypes","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","cg","dg","eg","gg","hg","ig","jg","kg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","effects","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","dh","eh","fh","gh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","uh","_workInProgressVersionPrimary","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","getSnapshot","setSnapshot","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","baseLanes","UNSAFE_componentWillUpdate","componentWillUpdate","getDerivedStateFromError","pendingContext","retryLane","fallback","unstable_avoidThisFallback","unstable_expectedLoadTime","isBackwards","rendering","renderingStartTime","tail","tailMode","wasMultiple","onclick","createTextNode","componentDidCatch","componentStack","WeakSet","__reactInternalSnapshotBeforeUpdate","aj","bj","onCommitFiberUnmount","componentWillUnmount","ej","fj","gj","hj","_reactRootContainer","ij","kj","lj","mj","nj","oj","qj","rj","tj","uj","vj","wj","ck","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","createRange","setStart","removeAllRanges","addRange","setEnd","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","uk","hk","unstable_observedBits","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","supportsFiber","inject","flushSync","unstable_createPortal","unstable_renderSubtreeIntoContainer","unstable_forceFrameRate","sortIndex","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","ForwardRef","Lazy","Memo","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","baseIsEqualDeep","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","stackClear","stackDelete","stackGet","stackHas","stackSet","assocIndexOf","LARGE_ARRAY_SIZE","isMasked","toSource","reIsHostCtor","funcProto","reIsNative","uid","coreJsData","maskSrcKey","IE_PROTO","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","getMapData","setCacheAdd","setCacheHas","mapToArray","setToArray","symbolProto","symbolValueOf","stacked","getAllKeys","objProps","objLength","objStacked","skipCtor","objValue","objCtor","othCtor","baseGetAllKeys","getSymbols","arrayPush","keysFunc","symbolsFunc","arrayFilter","stubArray","nativeGetSymbols","resIndex","arrayLikeKeys","baseKeys","isArrayLike","baseTimes","isArguments","isIndex","inherited","isArr","isArg","isBuff","skipIndexes","iteratee","baseIsArguments","reIsUint","isLength","typedArrayTags","freeProcess","require","isPrototype","nativeKeys","overArg","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ctorString","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","shim","propFullName","secret","getShim","ReactPropTypes","bigint","CSVLink","CSVDownload","_Download2","_Link2","_core","_metaProps","specs","isAsync","msSaveOrOpenBlob","csvData","msSaveBlob","proceed","handleLegacy","_this3","handleAsyncClick","handleSyncClick","_this4","_props2","download","_sensors","_constant","Sensors","sensorId","createSensor","_object","_resizeObserver","_debounce","resizeListener","contentDocument","newSensor","findMin","findMax","textDecoration","StackFrame","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","_map","_filter","_indexOf","stacktrace","parseOpera","parseV8OrIE","parseFFOrSafari","extractLocation","urlLike","locationParts","parseOpera9","parseOpera11","parseOpera10","lineRE","argsRaw","functionCall","_isNumber","setFunctionName","setArgs","setFileName","setLineNumber","setColumnNumber","setSource","getFunctionName","getArgs","getFileName","getLineNumber","getColumnNumber","getSource","filenameWithoutLoaders","filenameHasSchema","filenameHasLoaders","scheme","actualFilename","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","source_map_consumer","global_mapForUri","isChromeOrEdge","isIE11Plus","Semaphore","incr","decr","whenReady","Fetcher","sem","mapForUri","cacheGlobally","ajax","uri","xhr","xmlhttp","XMLHttpFactories","createXMLHTTPObject","fetchScript","onScriptLoad","absUrlRegex","mapUri","embeddedSourceMap","SourceMapConsumer","lastSlash","processSourceMaps","traceFormat","origName","origNameChrome","origNameFirefox","origPos","originalPositionFor","formatOriginalPosition","origLine","expected_fields","skip_lines","fetcher","binarySearch","ArraySet","base64VLQ","quickSort","aSourceMap","sourceMap","sections","IndexedSourceMapConsumer","BasicSourceMapConsumer","getArg","sources","sourceRoot","sourcesContent","mappings","_version","isAbsolute","relative","_names","fromArray","_sources","_mappings","Mapping","generatedLine","generatedColumn","originalLine","originalColumn","lastOffset","_sections","offsetLine","offsetColumn","generatedOffset","consumer","fromSourceMap","__generatedMappings","_parseMappings","__originalMappings","_charIsMappingSeparator","aStr","aSourceRoot","GENERATED_ORDER","ORIGINAL_ORDER","GREATEST_LOWER_BOUND","LEAST_UPPER_BOUND","eachMapping","aCallback","aContext","aOrder","_generatedMappings","_originalMappings","allGeneratedPositionsFor","aArgs","needle","_findMapping","compareByOriginalPositions","lastColumn","smc","_sourceRoot","_generateSourcesContent","_file","generatedMappings","destGeneratedMappings","destOriginalMappings","srcMapping","destMapping","previousGeneratedColumn","previousOriginalLine","previousOriginalColumn","previousSource","previousName","cachedSegments","originalMappings","compareByGeneratedPositionsDeflated","aNeedle","aMappings","aLineName","aColumnName","aComparator","aBias","computeColumnSpans","nextMapping","lastGeneratedColumn","hasContentsOfAllSources","sourceContentFor","aSource","nullOnMissing","urlParse","fileUriAbsPath","generatedPositionFor","sectionIndex","section","cmp","bias","generatedPosition","sectionMappings","adjustedMapping","aName","aDefaultValue","urlRegexp","dataUrlRegexp","aUrl","port","urlGenerate","aParsedUrl","aPath","aRoot","aPathUrl","aRootUrl","joined","supportsNullProto","isProtoString","strcmp","aStr1","aStr2","toSetString","fromSetString","mappingA","mappingB","onlyCompareOriginal","onlyCompareGenerated","compareByGeneratedPositionsInflated","recursiveSearch","aLow","aHigh","aHaystack","aCompare","_array","_set","aArray","aAllowDuplicates","sStr","isDuplicate","aIdx","aValue","digit","vlq","toVLQSigned","VLQ_BASE","aIndex","aOutParam","continuation","shifted","intToCharMap","ary","doQuickSort","comparator","pivot","BackButton","FormTile","mobileRight","selectOptions","MatchupForm","team1","team2","championship","flagPath","winner","WinnerFlag","useDebounce","cacheValue","setCacheValue","toErrorEntity","errorStatus","ErrorList","helpStatus","_ref$errors","_ref$warnings","debounceErrors","debounceWarnings","fullKeyList","holderProps","holderClassName","holderStyle","itemProps","itemClassName","itemStyle","frameElement","scrollMode","boundary","skipOverflowHiddenElements","scrollingElement","visualViewport","borderLeftWidth","borderTopWidth","borderRightWidth","borderBottomWidth","isOptionsObject","isTargetAttached","isConnected","behavior","computeOptions","canSmoothScroll","defaultBehavior","formItemNameBlackList","candidate","getFieldId","formName","toNamePathStr","_useRcForm","rcForm","itemsRef","wrapForm","__INTERNAL__","namePathStr","scrollToField","fieldId","getFieldInstance","contextForm","_props$size","_props$disabled","colon","labelWrap","labelCol","wrapperCol","hideRequiredMark","_props$layout","scrollToFirstError","requiredMark","restFormProps","mergedRequiredMark","mergedColon","formClassName","errorInfo","defaultScrollToFirstError","_props$gutter","gutter","setScreens","supportFlexGap","flexible","setFlexible","useFlexGapSupport","gutterRef","currentGutter","gutters","breakpoint","rowStyle","horizontalGutter","verticalGutter","_gutters","_gutters2","gutterH","gutterV","rowContext","pull","sizeClassObj","_extends2","sizeProps","propSize","parseFlex","htmlFor","_useLocaleReceiver","formLocale","contextLabelAlign","contextLabelCol","contextColon","mergedLabelCol","mergedLabelAlign","labelClsBasic","labelColClassName","computedColon","toTooltipProps","_tooltipProps$icon","restTooltipProps","tooltipNode","labelClassName","formItemRender","_internalItemRender","onErrorVisibleChanged","mergedWrapperCol","subFormContext","inputDom","errorListDom","extraDom","iconMap","ItemHolder","_itemClassName","validateStatus","onSubItemMetaChange","hasHelp","setMarginBottom","mergedValidateStatus","formItemStatusContext","IconNode","MemoInput","FormItem","frameRef","batchRef","noStyle","notifyParentMetaChange","contextValidateTrigger","hasName","hasValidName","fieldKeyPathRef","_useFrameState","_useFrameState2","subFieldErrors","setSubFieldErrors","setMeta","subMeta","uniqueKeys","prevSubFieldErrors","mergedNameKey","warningList","subFieldError","getItemRef","childrenRef","nameStr","renderLayout","baseChildren","nextMeta","keyInfo","_keyInfo","renderMeta","mergedName","ruleEntity","mergedControl","_a2","_c2","operation","useFormInstance","PickScore","readonly","setValidScore","winner_score","loser_score","setError","saveValidScores","allFields","BracketFormBracket","handleSubmit","rankings","scorecard","validateBracket","updateBracket","roundDetails","dates","knockoutOptions","rankedOptions","sixteen","quarter","pick_1","pick_2","pick_3","pick_4","pick_5","pick_6","pick_7","pick_8","semi","pick_q1","pick_q2","pick_q3","pick_q4","final","pick_f1","pick_f2","pick_winner","pick_s1","pick_s2","pick_s3","pick_s4","third","thirdPlacePicks","pick_q5","pick_q6","pick_q7","pick_q8","pick_9","pick_10","pick_11","pick_12","pick_13","pick_14","pick_15","pick_16","BracketSavedModal","shareUrl","onOk","fa2","iconName","faAnglesRight","faCheck","faDownload","faFutbol","faPenToSquare","faPeopleRoof","faRankingStar","faTowerBroadcast","faTrashCan","_arrayWithoutHoles","_nonIterableSpread","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","_ref$userAgent","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_DOM","IS_IE","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","DATA_PREFIX","DATA_ICON","HTML_CLASS_I2SVG_BASE_CLASS","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","PREFIX_TO_STYLE","STYLE_TO_PREFIX","PREFIX_TO_LONG_STYLE","LONG_STYLE_TO_PREFIX","ICON_SELECTION_SYNTAX_PATTERN","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","FONT_WEIGHT_TO_PREFIX","oneToTen","oneToTwenty","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","RESERVED_CLASSES","FontAwesomeConfig","coerce","getAttrConfig","_config","familyPrefix","styleDefault","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","_onChangeCb","meaninglessTransform","flipX","flipY","nextUniqueId","classArray","classList","htmlEscape","joinStyles","transformIsMeaningful","dfp","drc","fp","dPatt","customPropPatt","rPatt","_cssInserted","ensureCss","headChildren","beforeChild","insertCss","InjectCSS","mixout","hooks","beforeDOMElementCreation","beforeI2svg","shims","namespace","functions","domready","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","joinAttributes","iconFromMapping","doScroll","thisContext","bindInternal4","unicode","decoded","counter","ucs2decode","normalizeIcons","icons","defineIcons","_params$skipHooks","skipHooks","normalized","addPack","LONG_STYLE","_defaultUsablePrefix","_byUnicode","_byLigature","_byOldName","_byOldUnicode","_byAlias","PREFIXES","getIconName","build","aliases","hasRegular","autoFetchSvg","shimLookups","maybeNameMaybeUnicode","unicodes","getCanonicalPrefix","byUnicode","byAlias","byOldName","getDefaultUsablePrefix","styleOrPrefix","defined","getCanonicalIcon","_params$skipLookups","skipLookups","givenPrefix","canonical","aliasIconName","Library","definitions","additions","_pullDefinitions","longPrefix","_normalized$key","_plugins","_hooks","providers","defaultProviderKeys","chainHooks","hook","hookFns","hookFn","callHooks","callProvided","findIconDefinition","iconLookup","library","i2svg","watch","autoReplaceSvgRoot","autoReplace","noAuto","_icon","canonicalIcon","_prefix","_params$autoReplaceSv","domVariants","abstractCreator","makeInlineSvgAbstract","_params$icons","main","maskId","titleId","_params$watchable","watchable","isUploadedIcon","attrClass","uploadedIconWidthStyle","asSymbol","asIcon","makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","transformForCss","styleString","makeLayersCounterAbstract","styles$1","asFoundIcon","vectorData","missingIconResolutionMixin","findIcon","maybeNotifyMissing","noop$1","preamble","perf","noop$2","isWatched","convertSVG","abstractObj","_params$ceFn","ceFn","mutators","mutation","_abstract","comment","createComment","outerHTML","nodeAsComment","replaceChild","nest","_abstract2","forSvg","splitClasses","toSvg","toNode","newInnerHTML","performOperationSync","perform","mutations","callbackFunction","mutator","disableObservation","enableObservation","_options$treeCallback","treeCallback","_options$nodeCallback","nodeCallback","_options$pseudoElemen","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","objects","defaultPrefix","mutationRecord","addedNodes","hasPrefixAndIcon","_getCanonicalIcon","styleParser","classParser","ligature","existingPrefix","existingIconName","TEXT_NODE","attributesParser","extraAttributes","parseMeta","_classParser","extraClasses","pluginMeta","extraStyles","styles$2","generateMutation","nodeMeta","onTree","htmlClassList","hclAdd","hclRemove","prefixesDomQuery","candidates","resolvedMutations","onNode","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","ReplaceElements","maybeIconDefinition","mutationObserverCallbacks","provides","providers$$1","_params$node","_params$callback","generateSvgReplacementMutation","generateAbstractIcon","nextChild","iconWidth","Layers","assembler","LayersCounter","LayersText","generateLayersText","computedFontSize","boundingClientRect","CLEAN_CONTENT_PATTERN","SECONDARY_UNICODE_RANGE","replaceForPosition","pendingAttribute","oldUnicode","newUnicode","alreadyProcessedPseudoElement","_content","_hexValueFromContent","cleaned","isPrependTen","isDoubled","isSecondary","hexValueFromContent","hexValue","isV4","iconIdentifier","iconName4","_abstract3","processable","_unwatched","parseTransformString","transformString","PowerTransforms","parseNodeAttributes","generateAbstractTransformGrouping","innerTranslate","innerScale","innerRotate","ALL_SPACE","fillBlack","_abstract4","Masks","maskData","generateAbstractMask","_abstract5","explicitMaskId","mainWidth","mainPath","maskWidth","trans","transformForSvg","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","MissingIconIndicator","reduceMotion","missingIconAbstract","gChildren","FILL","ANIMATION_BASE","repeatCount","dur","OPACITY_ANIMATE","mixoutsTo","pseudoElements2svg","unwatch","bootstrap","symbolData","parse$1","camelize","_isNumerical","chr","styleToObject","pair","normalizeIconArgs","objectWithKey","FontAwesomeIcon","iconArgs","maskArgs","_classes","beat","fade","beatFade","bounce","shake","flash","spinPulse","spinReverse","pulse","listItem","swapOpacity","renderedIcon","convertCurry","mixins","_extraProps$style","existingStyle","TeamTile","team","isFirst","isSecond","buildClass","shapeCls","_props$rows","rowList","getComponentProps","avatar","paragraph","avatarNode","contentNode","hasAvatar","hasTitle","hasParagraph","avatarProps","getAvatarBasicProps","paragraphNode","titleProps","getTitleBasicProps","paragraphProps","basicProps","getParagraphBasicProps","Avatar","useRaf","removedRef","TabNode","_ref$tab","tab","renderWrapper","removeAriaLabel","tabPrefix","removable","onEdit","DEFAULT_SIZE","AddButton","showAdd","addAriaLabel","addIcon","OperationNode","tabs","_ref$moreIcon","moreIcon","moreTransitionName","tabBarGutter","onTabClick","setOpen","setSelectedKey","dropdownPrefix","selectedItemId","dropdownAriaLabel","selectOffset","enabledTabs","selectedIndex","moreStyle","moreNode","SPEED_OFF_MULTIPLE","useSyncState","defaultState","stateRef","assertExtra","TabNavList","cacheRefs","TabContext","animated","tabPosition","onTabScroll","tabsWrapperRef","tabListRef","operationsRef","innerAddButtonRef","_useRefs","_useRefs2","getBtnRef","removeBtnRef","tabPositionTopOrBottom","_useSyncState","_useSyncState2","transformLeft","setTransformLeft","_useSyncState3","_useSyncState4","transformTop","setTransformTop","wrapperScrollWidth","setWrapperScrollWidth","wrapperScrollHeight","setWrapperScrollHeight","wrapperWidth","setWrapperWidth","_useState7","_useState8","wrapperHeight","setWrapperHeight","_useState9","_useState10","addWidth","setAddWidth","_useState11","_useState12","addHeight","setAddHeight","_useRafState","flushUpdate","useRafState","_useRafState2","tabSizes","setTabSizes","tabOffsets","holderScrollWidth","_tabs$","rightOffset","_tabs","useOffsets","operationsHiddenClassName","transformMin","transformMax","alignInRange","touchMovingRef","_useState13","_useState14","lockAnimation","setLockAnimation","doLockAnimation","clearTouchMoving","scrollToTab","tabOffset","newTransform","_newTransform","onOffset","touchPosition","setTouchPosition","lastTimestamp","setLastTimestamp","lastTimeDiff","setLastTimeDiff","setLastOffset","lastWheelDirectionRef","touchEventsRef","_e$touches$","_e$touches$2","distanceX","distanceY","absX","absY","currentX","onWheel","mixed","onProxyTouchMove","onProxyTouchEnd","useTouchMove","doMove","_useVisibleRange","tabContentNodeSize","addNodeSize","transformSize","basicSize","tabContentSize","addSize","mergedBasicSize","useVisibleRange","_useVisibleRange2","visibleStart","visibleEnd","tabNodeStyle","tabNodes","onListHolderResize","_tabsWrapperRef$curre","_tabsWrapperRef$curre2","_innerAddButtonRef$cu","_innerAddButtonRef$cu2","_tabListRef$current","_tabListRef$current2","newAddWidth","newAddHeight","newWrapperScrollWidth","newWrapperScrollHeight","newSizes","btnNode","offsetLeft","offsetTop","startHiddenTabs","endHiddenTabs","hiddenTabs","_useState15","_useState16","inkStyle","setInkStyle","activeTabOffset","inkBarRafRef","cleanInkBarRaf","newInkStyle","pingLeft","pingRight","pingTop","pingBottom","hasDropdown","wrapPrefix","inkBar","tabMoving","TabPanelList","destroyInactiveTabPane","tabPaneAnimated","tabPane","tabKey","TabPane","setVisited","Tabs","mergedAnimated","_ref$prefixCls","defaultActiveKey","_ref$animated","_ref$tabPosition","tabBarStyle","tabBarExtraContent","renderTabBar","parseTabList","_tabs$newActiveIndex","newActiveIndex","setMergedId","mergedTabPosition","tabNavBar","tabNavBarProps","isActiveChanged","panes","ForwardTabs","_onEdit","hideAdd","centered","_props$moreIcon","editType","_a$hoverable","hoverable","avatarDom","descriptionDom","MetaDetail","_props$headStyle","headStyle","_props$bodyStyle","cover","tabList","activeTabKey","defaultActiveTabKey","_props$tabProps","tabProps","loadingBlock","hasActiveTabKey","onTabChange","containGrid","coverDom","actionDom","Grid","GroupCard","setBracket","firstPick","pickName","secondPick","handleRemoval","newBracket","handleSelection","pickMap","e1","g2","h1","h2","groupName","GroupForm","teams","country","firstTeam","secondTeam","secondIdx","the18AuthHeaders","validateUniqueEmail","_rule","setLoginRedirect","Callback","SignInMessage","signInOnly","handleLogin","screen_hint","NameForm","phone","setEmail","setName","setPhone","validateUniqueName","requiredArgs","toDate","argument","argStr","compareAsc","dirtyDateLeft","dirtyDateRight","dateLeft","dateRight","toInteger","dirtyNumber","addDays","dirtyDate","dirtyAmount","setDate","addMonths","endOfDesiredMonth","setMonth","daysInMonth","setFullYear","years","months","weeks","days","dateWithMonths","dateWithDays","minutesToAdd","secondsToAdd","msToAdd","finalDate","getTimezoneOffsetInMilliseconds","utcDate","setUTCFullYear","startOfDay","setHours","MILLISECONDS_IN_DAY","differenceInCalendarDays","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","compareLocalAsc","differenceInDays","difference","isLastDayNotFull","millisecondsInHour","differenceInMilliseconds","roundingMap","trunc","getRoundingMethod","differenceInHours","roundingMethod","differenceInMinutes","differenceInCalendarMonths","yearDiff","monthDiff","endOfDay","endOfMonth","isLastDayOfMonth","differenceInMonths","isLastMonthNotFull","differenceInSeconds","differenceInCalendarYears","differenceInYears","isLastYearNotFull","formatDistanceLocale","lessThanXSeconds","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","tokenValue","addSuffix","comparison","buildFormatLongFn","defaultWidth","formats","full","medium","dateTime","formatRelativeLocale","lastWeek","yesterday","tomorrow","nextWeek","_date","_baseDate","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","ordinalNumber","rem100","era","narrow","abbreviated","dayPeriod","pm","midnight","noon","morning","afternoon","evening","night","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","findKey","valueCallback","parseResult","formatDistance","formatLong","formatRelative","localize","weekStartsOn","firstWeekContainsDate","defaultFormat","Countdown","endDate","remainingMonths","remainingDays","remainingHours","remainingMinutes","remainingSeconds","intervalToDuration","_options$locale","_options$format","_options$zero","_options$delimiter","delimiter","formatDuration","BRACKET_KEY","NAME_KEY","EMAIL_KEY","PHONE_KEY","STEP_KEY","BracketForm","poolId","existingBracketNames","setExistingBracketNames","initializeBracket","secondChanceReady","setSecondChanceReady","setScorecard","submitted","setSubmitted","setRankings","validScore","secondChanceConfirm","setSecondChanceConfirm","initSecondChanceBracket","finalizeSubmit","CurrentStep","picks","BracketFormContainer","MailSupport","TermsAndConditions","rel","BracketEditForm","canEdit","The18Redirects","hasBracket","PrivacyPolicy","The18Logging","getElementsByTagName","preventIndexing","setIndexing","indexing","robots","Seo","countries","getTeamName","Matchup","eliminated","checkClass","side","finals","checkPoints","standings","Bracket","showBackButton","isThe18","buildSide","pick_third","ShowBracket","setStandings","The18Create","ScrollToTop","isDate","addMilliseconds","timestamp","subMilliseconds","startOfUTCISOWeek","getUTCDay","setUTCDate","getUTCDate","setUTCHours","getUTCISOWeekYear","getUTCFullYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","startOfUTCWeek","_options$weekStartsOn","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","getUTCWeekYear","_options$firstWeekCon","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","addLeadingZeros","signedYear","getUTCMonth","dayPeriodEnumValue","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","dayPeriodEnum","lightFormatters","signedWeekYear","weekYear","getUTCWeek","isoWeek","getUTCISOWeek","dayOfYear","setUTCMonth","startOfYearTimestamp","getUTCDayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","_localize","_originalDate","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","originalDate","dirtyDelimiter","absOffset","dateLongFormatter","timeLongFormatter","longFormatters","datePattern","timePattern","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_options$locale2","_options$locale2$opti","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","formatterOptions","firstCharacter","longFormatter","cleanEscapedString","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","showSizeChanger","ManagePool","downloaded","setDownloaded","deletion","setDeletion","setBrackets","ellipsis","user_email","created_at","Contents","newBrackets","okButtonProps","The18Home","tournament","setPagy","setSecondChance","Archive","France","cdhBrackets","setCdhBrackets","productionBrackets","setProductionBrackets","adapters","WebSocket","_adapters$logger","secondsSince","ConnectionMonitor","visibilityDidChange","reconnectAttempts","isRunning","startedAt","stoppedAt","startPolling","staleThreshold","stopPolling","pingedAt","recordPing","disconnectedAt","poll","pollTimeout","reconnectIfStale","getPollInterval","_this$constructor","reconnectionBackoffRate","connectionIsStale","refreshedAt","disconnectedRecently","reopen","visibilityState","INTERNAL","message_types","welcome","ping","confirmation","rejection","protocols","supportedProtocols","Connection","subscriptions","monitor","disconnected","webSocket","uninstallEventHandlers","installEventHandlers","allowReconnect","reopenDelay","isState","getProtocol","isProtocolSupported","_JSON$parse","identifier","reconnect","recordConnect","reload","confirmSubscription","notify","recordDisconnect","notifyAll","willAttemptReconnect","Subscription","mixin","SubscriptionGuarantor","pendingSubscriptions","subscription","startGuaranteeing","stopGuaranteeing","retrySubscribing","retryTimeout","Subscriptions","guarantor","channelName","ensureActiveConnection","forget","sendCommand","_this5","callbackName","_this6","_len4","_key4","guarantee","_this7","createWebSocketURL","createConsumer","mountPoint","deepClone","hasPath","useInit","ChartClass","chartOptions","onReady","onEvent","reactDomToString","statisticCustomHtml","setPath","statisticDom","processConfig","inputConfig","changeType_1","currentKeys_1","chartInstance","encoderOptions","downloadImage","imageName","chartRef","ErrorBoundary","renderError","errorTemplate","backgroundOpacity","foregroundColor","foregroundOpacity","gradientRatio","uniqueKey","speed","fixedId","idClip","idGradient","idAria","rtlStyle","keyTimes","stopColor","loadingTemplate","getChart","formatDate","GroupedColumnStats","colorIdx","LineTotalStats","resources","ago","dirtyDateToCompare","dateToCompare","isAfter","subDays","buildStats","dailyAverage","weeklyAverage","thirtyDayAverage","lastDay","lastThirty","buildDiff","percentClass","TotalsTable","users","buildSeries","ordered","dateLabel","todayTotal","Metrics","setPools","setUsers","setReload","isReloading","setIsReloading","received","MetricsChannel","bracketSeries","poolSeries","userSeries","allDates","dirtyInterval","_options$step","startDate","endTime","currentDate","eachDayOfInterval","totalObjects","PoolPasswordModal","createBracketMessage","statsMessage","getPathKey","MainMenu","isPoolOwner","setCurrent","showPoolPassword","setShowPoolPassword","createOption","myPools","Pools","setTab","buttonDisabled","setButtonDisabled","poolNames","setPoolNames","newTab","validatePool","login","createPool","SelectionTable","setSize","updateSize","useWindowWidth","smallScreen","calcWidth","cellClass","onCell","knockout","win_group","quarters","semis","sticky","WinnerTree","treeConfig","Stats","secondChanceData","setSecondChanceData","setCount","secondChanceCount","setSecondChanceCount","canView","second_chance_count","second_chance_data","Tile","Welcome","Footer","Admin","ExternalLink","UnsplashCredit","photo","secondary","ScoringTable","FaqListItem","question","answer","Faq","The18App","MainApp","App","Application","reactElement","railsEnv","getPathValue","pathList","getColumnsKey","columnKeys","validateValue","valueRef","renderWithProps","Cell","renderIndex","_ref2$component","colSpan","rowSpan","fixLeft","fixRight","firstFixLeft","lastFixLeft","firstFixRight","lastFixRight","appendNode","_ref2$additionalProps","additionalProps","rowType","isSticky","hovering","onHover","cellPrefixCls","perfRecord","supportSticky","allColumnsFixedLeft","returnCellProps","renderData","legacyCellProps","mergedChildNode","cellColSpan","cellRowSpan","cellStyle","cellClassName","restCellProps","mergedColSpan","mergedRowSpan","fixedStyle","isFixLeft","isFixRight","alignStyle","ellipsisConfig","componentProps","_additionalProps$onMo","_additionalProps$onMo2","RefCell","comparePropList","MemoCell","shouldCellUpdate","WrappedCell","selector","eventSelector","_props$additionalProp","_useContextSelector","isHovering","cellStartRow","startRow","endRow","inHoverRange","selectedValue","getCellFixedInfo","colStart","colEnd","stickyOffsets","startColumn","endColumn","fixed","nextColumn","prevColumn","HeaderRow","rowProps","flattenColumns","RowComponent","rowComponent","CellComponent","cellComponent","onHeaderRow","columnsKey","cellIndex","fixedInfo","onHeaderCell","rootColumns","fillRowCells","colIndex","currentColIndex","subColumns","hasSubColumns","rowCount","_loop","parseHeaderRows","WrapperComponent","trComponent","thComponent","scrollbarSize","fixHeader","fixColumn","componentWidth","horizonScroll","BodyRow","rowExpandable","_props$indent","childrenColumnName","fixedInfoList","expandableType","expandRowByClick","onTriggerExpand","expandedRowClassName","indentSize","expandedRowRender","expandIconColumnIndex","expandRended","setExpandRended","recordKey","rowSupportExpand","nestExpandable","hasNestChildren","mergedExpandable","onExpandRef","computeRowClassName","onInternalTriggerExpand","expandRowNode","baseRowNode","_additionalProps$onCl","appendCellNode","additionalCellProps","columnClassName","expandContent","computedExpandedRowClassName","flatRecord","getRowKey","tempArr","MeasureCell","columnKey","onColumnResize","cellRef","MeasureRow","infoList","Body","measureColumnWidth","emptyNode","flattenData","useFlattenRecords","perfRef","setStartRow","setEndRow","bodyNode","tdComponent","MemoBody","INTERNAL_COL_DEFINE","EXPAND_COLUMN","convertChildrenToColumns","nodeChildren","flatColumns","parsedFixed","subColum","transformColumns","columnWidth","baseColumns","withExpandColumns","_expandColumn","cloneColumns","expandColIndex","expandColumnIndex","fixedColumn","expandColumn","columnType","recordExpandable","mergedColumns","finalColumns","revertForRtl","useLayoutState","lastPromiseRef","updateBatchRef","prevBatch","batchUpdater","colWidths","leftOffsets","rightOffsets","_end","mustInsert","columCount","restAdditionalProps","Summary","Row","_ref$colSpan","scrollColumnIndex","lastColumnIndex","scrollColumn","summaryContext","FooterComponents","renderExpandIcon","expandClassName","_scrollBodyRef$curren","_scrollBodyRef$curren2","scrollBodyRef","offsetScroll","bodyScrollWidth","bodyWidth","scrollBarWidth","_useLayoutState","isHiddenScrollBar","_useLayoutState2","scrollState","setScrollState","refState","onContainerScroll","tableOffsetTop","tableBottomOffset","currentClientOffset","setScrollLeft","onMouseUpListener","onMouseMoveListener","onScrollListener","onResizeListener","defaultContainer","FixedHolder","noData","stickyTopOffset","stickyBottomOffset","stickyClassName","maxContentScroll","combinationScrollBarSize","setScrollRef","_scrollRef$current","_scrollRef$current2","allFlattenColumnsWithWidth","ScrollBarColumn","columnsWithScrollbar","flattenColumnsWithScrollbar","headerStickyOffsets","mergedColumnWidth","useColumnWidth","tableLayout","EMPTY_SCROLL_TARGET","INTERNAL_HOOKS","MemoTableContent","summary","showHeader","internalHooks","internalRefs","hasData","defaultComponent","expandableConfig","legacyExpandableConfig","showExpandColumn","getExpandableProps","expandedRowKeys","defaultExpandedRowKeys","defaultExpandAllRows","onExpandedRowsChange","mergedChildrenColumnName","__PARENT_RENDER_ICON__","findAllChildrenKeys","innerExpandedKeys","setInnerExpandedKeys","mergedExpandedKeys","scrollXStyle","scrollYStyle","scrollTableStyle","setComponentWidth","_useColumns","_useColumns2","columnContext","fullTableRef","scrollHeaderRef","scrollBodyContainerRef","scrollSummaryRef","pingedLeft","setPingedLeft","pingedRight","setPingedRight","colsWidths","updateColsWidths","pureColWidths","stickyRef","_useSticky","_ref$offsetHeader","offsetHeader","_ref$offsetSummary","offsetSummary","_ref$offsetScroll","_ref$getContainer","useSticky","summaryNode","fixFooter","widths","newWidths","_useTimeoutLock","cleanUp","useTimeoutLock","_useTimeoutLock2","setScrollTarget","getScrollTarget","forceScroll","_stickyRef$current","isRTL","mergedScrollLeft","compareTarget","triggerOnScroll","setScrollbarSize","_React$useState11","_React$useState12","setSupportSticky","groupTableNode","TableComponent","mergedTableLayout","headerProps","bodyTable","bodyColGroup","customizeScrollBody","bodyContent","colWidth","fixedHolderProps","fixedHolderPassProps","ariaProps","fullTable","TableContextValue","BodyContextValue","ExpandedRowContextValue","ResizeContextValue","ColumnGroup","useForceUpdate","_React$useReducer","refreshOnChange","screensRef","supportScreens","onKeyPress","itemRender","Options","goInputText","buildOptionText","goButton","quickGo","getValidValue","selectComponentClass","selectPrefixCls","changeSelect","goInput","gotoButton","getPageSizeOptions","triggerNode","calculatePage","getJumpPrevPage","showLessItems","getJumpNextPage","getItemIcon","savePaginationNode","paginationNode","shouldDisplayQuickJumper","showQuickJumper","handleKeyUp","currentInputValue","changePageSize","newCurrent","onShowSizeChange","currentPage","newPage","hasPrev","hasNext","jumpPrev","jumpNext","runIfEnter","restParams","runIfEnterPrev","runIfEnterNext","runIfEnterJumpPrev","runIfEnterJumpNext","handleGoTO","hasOnChange","_current","defaultCurrent","_pageSize","lastCurrentNode","allPages","totalBoundaryShowSizeChanger","prevPage","prevIcon","prevButton","nextPage","nextIcon","nextButton","showTotal","simple","showPrevNextJumpers","jumpPrevIcon","jumpNextIcon","pagerList","firstPager","lastPager","pageBufferSize","renderPrev","renderNext","pagerProps","prevItemTitle","nextItemTitle","_active","totalText","prevDisabled","nextDisabled","getShowSizeChanger","customizeSelectPrefixCls","customLocale","_React$useContext$pag","mergedShowSizeChanger","renderPagination","contextLocale","isSmall","extendedClassName","LeftOutlined","RightOutlined","getIconsProps","easeInOutCubic","_options$getContainer","_options$duration","frameFunc","nextScrollTop","iconPrefix","getColumnKey","getColumnPos","renderColumnTitle","Checkbox","saveInput","globalProps","GroupContext","_a$options","registeredValues","setRegisteredValues","toggleOption","optionIndex","registerValue","prevValues","cancelValue","CheckboxGroup","_a$indeterminate","indeterminate","_a$skipGroup","skipGroup","checkboxGroup","checkboxProps","checkboxClass","ariaChecked","__ANT_CHECKBOX","ButtonGroup","_props$icon","_props$buttonsRender","buttonsRender","dropdownProps","_buttonsRender","_buttonsRender2","leftButtonToRender","rightButtonToRender","dropdownTrigger","triggerActions","onInnerVisibleChange","overlayClassNameCustomized","pointAtCenter","onMenuClick","overlayNode","getPlacement","RadioGroupContext","RadioGroupContextProvider","RadioOptionTypeContext","RadioOptionTypeContextProvider","groupContext","radioOptionTypeContext","radioPrefixCls","optionType","radioProps","wrapperClassString","RadioGroup","_props$buttonStyle","childrenToRender","getDataOrAriaProps","Record","traverseNodesKey","calcRangeKeys","startKey","endKey","None","End","Start","convertDirectoryKeysToNodes","restKeys","lastSelectedKey","cachedSelectedKeys","treeRef","setSelectedKeys","connectClassName","blockNode","newSelectedKeys","_node$key","ctrlPick","shiftPick","ForwardDirectoryTree","_style","startPosition","endPosition","_switcherIcon","newProps","nodeProps","showLeafIcon","switcher","renderSwitcherIcon","DirectoryTree","filterSearch","tablePrefixCls","searchValueMatched","renderFilterItems","filterMultiple","_props$filterMode","filterMode","_props$filterSearch","filterState","triggerFilter","filterDropdownVisible","onFilterDropdownVisibleChange","filterResetToDefaultFilteredValue","defaultFilteredValue","forceFiltered","propFilteredKeys","getFilteredKeysSync","setFilteredKeysSync","onSelectKeys","setOpenKeys","dropdownContent","internalTriggerFilter","mergedKeys","onConfirm","confirm","closeDropdown","dropdownMenuClass","onCheckAll","allFilterKeys","flattenKeys","getTreeData","filterDropdown","clearFilters","filterIcon","collectFilterStates","filterStates","columnPos","filteredValues","filteredValue","injectFilter","_column$filterMultipl","newColumn","renderProps","generateFilterInfo","currentFilters","originKey","getFilterData","_filterState$column","onFilter","realKey","onFilterChange","tableLocale","setFilterStates","mergedFilterStates","collectedStates","filteredKeysIsAllNotControlled","getFilters","newFilterStates","innerColumns","usePagination","_a$total","paginationTotal","paginationObj","innerPagination","setInnerPagination","mergedPagination","extendsObject","maxPage","refreshPagination","SELECTION_COLUMN","SELECTION_ALL","SELECTION_INVERT","SELECTION_NONE","useSelection","rowSelection","preserveSelectedRowKeys","selectedRowKeys","defaultSelectedRowKeys","getCheckboxProps","onSelectionChange","onSelectAll","onSelectInvert","onSelectNone","onSelectMultiple","selectionColWidth","selectionType","selections","customizeRenderCell","renderCell","hideSelectAll","_ref$checkStrictly","pageData","getRecordByKey","expandType","mergedSelectedKeys","setMergedSelectedKeys","preserveRecordsRef","updatePreserveRecordsCache","flattedData","checkboxPropsMap","isCheckboxDisabled","_useMemo2","_useMemo3","derivedSelectedKeys","derivedHalfSelectedKeys","derivedSelectedKeySet","derivedHalfSelectedKeySet","setLastSelectedKey","availableKeys","triggerSingleSelection","mergedSelections","selection","checkProps","recordKeys","checkedCurrentAll","checkedCurrentSome","customizeSelections","onSelectionClick","allDisabledData","allDisabled","allDisabledAndChecked","allDisabledSomeChecked","changeKeys","mergedIndeterminate","pointKeys","recordIndex","rangeKeys","changedKeys","originCheckedKeys","nextCheckedKeys","tempKeySet","_cloneColumns","_cloneColumns2","restColumns","selectionColumnIndex","prevCol","nextCol","mergedFixed","selectionColumn","_renderCell","ASCEND","DESCEND","getMultiplePriority","getSortFunction","collectSortStates","sortStates","multiplePriority","injectSorter","sorterStates","triggerSorter","defaultSortDirections","tableShowSorterTooltip","sortDirections","showSorterTooltip","sorterState","sorterOrder","nextSortOrder","nextSortDirection","upNode","downNode","sortTip","renderSortTitle","originOnClick","originOKeyDown","stateToInfo","generateSorterInfo","getSortData","innerSorterStates","cloneData","runningSorters","record1","record2","compareFn","compareResult","subRecords","useFilterSorter","onSorterChange","setSortStates","mergedSorterStates","validateStates","patchStates","multipleMode","columnTitleSorterProps","sortColumns","sortColumn","sortState","newSorterStates","fillTitle","columnTitleProps","cloneColumn","useTitleColumns","InternalTable","_classNames3","customizeDropdownPrefixCls","legacyChildrenColumnName","_props$showSorterTool","needResponsive","tableProps","_React$useContext$loc","_mergedExpandable$chi","_useLazyKVMap","mapCacheRef","kvMap","useLazyKVMap","changeEventInfo","triggerOnChange","changeInfo","resetPagination","scrollToFirstRowOnChange","currentDataSource","_useSorter","_useSorter2","transformSorterColumns","sorterTitleProps","getSorters","sortedData","_useFilter","_useFilter2","transformFilterColumns","_useTitleColumns","transformTitleColumns","_usePagination","_usePagination2","pageProp","getPaginationParam","_mergedPagination$cur","_mergedPagination$pag","_useSelection","_useSelection2","transformSelectionColumns","selectedKeySet","topPaginationNode","bottomPaginationNode","spinProps","paginationSize","defaultPosition","topPos","bottomPos","isDisable","wrapperClassNames","mergedRowClassName","isThenable","thing","clickedRef","$this","buttonProps","actionFn","returnValueOfOnOk","quitOnNullishReturnValue","handlePromiseOnOk","handleOk","renderFooter","okType","confirmLoading","cancelButtonProps","defaultFooter","wrapClassNameExtended","contentPrefixCls","okCancel","autoFocusButton","cancelButton","triggerCancel","defaultRootPrefixCls","configUpdate","withWarn","withInfo","withSuccess","withError","withConfirm","innerConfig","setInnerConfig","newConfig","originConfig","modalLocale","ElementsHolder","_usePatchElement","usePatchElement","_usePatchElement2","patchElement","modalWarn","useModal","actionQueue","setActionQueue","getConfirmFunc","withFunc","closeFunc","modalRef","modal","destroyAction","updateAction","destroyAll"],"mappings":"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PACA,+GACA,yMACA,4BACE,4BACE,uDAEF,4BACE,8JAEF,4BACE,uFAGJ,+WACA,iTACA,4DACA,meACA,2XACA,6IACA,4BACE,4BACE,uDAEF,4BACE,8JAEF,4BACE,uFAGJ,6DACA,wJACA,4BACE,4BACE,iDAEF,4BACE,8CAEF,4BACE,qDAEF,4BACE,4LAGJ,4FACA,8cACA,miBACA,kOACA,0DACA,oMACA,4BACE,4BAAI,wDAAJ,wJACA,4BAAI,yDAAJ,yPACE,4BACE,6FACA,6GACA,sHACA,4GACA,kGACA,2JACE,4BACE,sFACA,+FAKR,4BAAI,+FAAJ,2HACA,4BAAI,sEAAJ,mYACE,4BACE,ySACA,qLACA,yHACA,+KACA,sIACA,gWACA,sJACA,+DACA,wJAGJ,4BAAI,8EAAJ,kHACE,4BACE,gEACA,gKACA,kGACA,wKAIN,2EACA,gJACA,4BACE,yEAEF,oNACA,uDACA,4BACE,kMACA,gJAEF,2HACA,4BACE,qFACA,yFAEF,2SACA,yIACA,uPACA,mEACA,gRACA,saACA,sJACA,uCACA,gLACA,4BACE,2DAAgC,uBAAGo6F,KAAK,6CAA6C85U,IAAI,6BAA6Bl0a,OAAO,UAA7F,+CAChC,2DAAgC,uBAAGo6F,KAAK,oCAAoC85U,IAAI,6BAA6Bl0a,OAAO,UAApF,sCAChC,2DAAgC,uBAAGo6F,KAAK,2CAA+C85U,IAAI,6BAA6Bl0a,OAAO,UAA/F,8CAElC,qOACA,8CACA,qMACA,4BACE,sHACA,mEAEF,kKACA,uHACA,oFACA,uVACA,kDACA,8eACA,+OACA,iGACA,6TACA,yNACA,kIACA,2RACA,kOACA,mOACA,uDACA,6QACA,wKACA,8DACA,oKACA,oNACA,0LACA,0CACA,uGACA,4BACE,yEAIP,CChfc,SAASw0a,KAKtB,OAJAltR,qBAAU,KACRjQ,YAAc,gBATM,MACtB,MAAMt0I,EAAOzL,SAASC,cAAc,QACpCwL,EAAK5X,KAAO,SACZ4X,EAAKzF,QAAU,oBACfhG,SAASm9a,qBAAqB,QAAQ,GAAG9nY,YAAY5pC,EAArD,EAME2xa,EAAiB,GAChB,IACI,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","file":"js/application-130bb8c736aa7d1fc9ea.js","sourcesContent":[" \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 = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 479);\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}","var isArrayLike = function isArrayLike(value) {\n /**\n * isArrayLike([1, 2, 3]) => true\n * isArrayLike(document.body.children) => true\n * isArrayLike('abc') => true\n * isArrayLike(Function) => false\n */\n return value !== null && typeof value !== 'function' && isFinite(value.length);\n};\n\nexport default isArrayLike;","import isArrayLike from './is-array-like';\n\nvar contains = function contains(arr, value) {\n if (!isArrayLike(arr)) {\n return false;\n }\n\n return arr.indexOf(value) > -1;\n};\n\nexport default contains;","import isArrayLike from './is-array-like';\n\nvar filter = function filter(arr, func) {\n if (!isArrayLike(arr)) {\n return arr;\n }\n\n var result = [];\n\n for (var index = 0; index < arr.length; index++) {\n var value = arr[index];\n\n if (func(value, index)) {\n result.push(value);\n }\n }\n\n return result;\n};\n\nexport default filter;","import filter from './filter';\nimport contains from './contains';\n/**\n * Flattens `array` a single level deep.\n *\n * @param {Array} arr The array to inspect.\n * @param {Array} values The values to exclude.\n * @return {Array} Returns the new array of filtered values.\n * @example\n * difference([2, 1], [2, 3]); // => [1]\n */\n\nvar difference = function difference(arr, values) {\n if (values === void 0) {\n values = [];\n }\n\n return filter(arr, function (value) {\n return !contains(values, value);\n });\n};\n\nexport default difference;","var toString = {}.toString;\n\nvar isType = function isType(value, type) {\n return toString.call(value) === '[object ' + type + ']';\n};\n\nexport default isType;","/**\n * 是否为函数\n * @param {*} fn 对象\n * @return {Boolean} 是否函数\n */\nimport isType from './is-type';\nexport default (function (value) {\n return isType(value, 'Function');\n});","// isFinite,\nvar isNil = function isNil(value) {\n /**\n * isNil(null) => true\n * isNil() => true\n */\n return value === null || value === undefined;\n};\n\nexport default isNil;","import isType from './is-type';\nexport default (function (value) {\n return Array.isArray ? Array.isArray(value) : isType(value, 'Array');\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nexport default (function (value) {\n /**\n * isObject({}) => true\n * isObject([1, 2, 3]) => true\n * isObject(Function) => true\n * isObject(null) => false\n */\n var type = _typeof(value);\n\n return value !== null && type === 'object' || type === 'function';\n});","import isArray from './is-array';\nimport isObject from './is-object';\n\nfunction each(elements, func) {\n if (!elements) {\n return;\n }\n\n var rst;\n\n if (isArray(elements)) {\n for (var i = 0, len = elements.length; i < len; i++) {\n rst = func(elements[i], i);\n\n if (rst === false) {\n break;\n }\n }\n } else if (isObject(elements)) {\n for (var k in elements) {\n if (elements.hasOwnProperty(k)) {\n rst = func(elements[k], k);\n\n if (rst === false) {\n break;\n }\n }\n }\n }\n}\n\nexport default each;","import each from './each';\nimport isFunction from './is-function';\nvar keys = Object.keys ? function (obj) {\n return Object.keys(obj);\n} : function (obj) {\n var result = [];\n each(obj, function (value, key) {\n if (!(isFunction(obj) && key === 'prototype')) {\n result.push(key);\n }\n });\n return result;\n};\nexport default keys;","import isNil from './is-nil';\nimport keys from './keys';\n\nfunction isMatch(obj, attrs) {\n var _keys = keys(attrs);\n\n var length = _keys.length;\n if (isNil(obj)) return !length;\n\n for (var i = 0; i < length; i += 1) {\n var key = _keys[i];\n\n if (attrs[key] !== obj[key] || !(key in obj)) {\n return false;\n }\n }\n\n return true;\n}\n\nexport default isMatch;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar isObjectLike = function isObjectLike(value) {\n /**\n * isObjectLike({}) => true\n * isObjectLike([1, 2, 3]) => true\n * isObjectLike(Function) => false\n * isObjectLike(null) => false\n */\n return _typeof(value) === 'object' && value !== null;\n};\n\nexport default isObjectLike;","import isObjectLike from './is-object-like';\nimport isType from './is-type';\n\nvar isPlainObject = function isPlainObject(value) {\n /**\n * isObjectLike(new Foo) => false\n * isObjectLike([1, 2, 3]) => false\n * isObjectLike({ x: 0, y: 0 }) => true\n * isObjectLike(Object.create(null)) => true\n */\n if (!isObjectLike(value) || !isType(value, 'Object')) {\n return false;\n }\n\n if (Object.getPrototypeOf(value) === null) {\n return true;\n }\n\n var proto = value;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(value) === proto;\n};\n\nexport default isPlainObject;","import isFunction from './is-function';\nimport isMatch from './is-match';\nimport isArray from './is-array';\nimport isPlainObject from './is-plain-object';\n\nfunction find(arr, predicate) {\n if (!isArray(arr)) return null;\n\n var _predicate;\n\n if (isFunction(predicate)) {\n _predicate = predicate;\n }\n\n if (isPlainObject(predicate)) {\n _predicate = function _predicate(a) {\n return isMatch(a, predicate);\n };\n }\n\n if (_predicate) {\n for (var i = 0; i < arr.length; i += 1) {\n if (_predicate(arr[i])) {\n return arr[i];\n }\n }\n }\n\n return null;\n}\n\nexport default find;","function findIndex(arr, predicate, fromIndex) {\n if (fromIndex === void 0) {\n fromIndex = 0;\n }\n\n for (var i = fromIndex; i < arr.length; i++) {\n if (predicate(arr[i], i)) {\n // 找到终止循环\n return i;\n }\n }\n\n return -1;\n}\n\nexport default findIndex;","import isNil from './is-nil';\nimport isArray from './is-array';\n\nvar firstValue = function firstValue(data, name) {\n var rst = null;\n\n for (var i = 0; i < data.length; i++) {\n var obj = data[i];\n var value = obj[name];\n\n if (!isNil(value)) {\n if (isArray(value)) {\n rst = value[0]; // todo 这里是否应该使用递归,调用 firstValue @绝云\n } else {\n rst = value;\n }\n\n break;\n }\n }\n\n return rst;\n};\n\nexport default firstValue;","import isArray from './is-array';\n/**\n * Flattens `array` a single level deep.\n *\n * @param {Array} arr The array to flatten.\n * @return {Array} Returns the new flattened array.\n * @example\n *\n * flatten([1, [2, [3, [4]], 5]]); // => [1, 2, [3, [4]], 5]\n */\n\nvar flatten = function flatten(arr) {\n if (!isArray(arr)) {\n return [];\n }\n\n var rst = [];\n\n for (var i = 0; i < arr.length; i++) {\n rst = rst.concat(arr[i]);\n }\n\n return rst;\n};\n\nexport default flatten;","import isArray from './is-array';\n/**\n * @param {Array} arr The array to iterate over.\n * @return {*} Returns the maximum value.\n * @example\n *\n * max([1, 2]);\n * // => 2\n *\n * max([]);\n * // => undefined\n *\n * const data = new Array(1250010).fill(1).map((d,idx) => idx);\n *\n * max(data);\n * // => 1250010\n * // Math.max(...data) will encounter \"Maximum call stack size exceeded\" error\n */\n\nexport default (function (arr) {\n if (!isArray(arr)) {\n return undefined;\n }\n\n return arr.reduce(function (prev, curr) {\n return Math.max(prev, curr);\n }, arr[0]);\n});","import isArray from './is-array';\n/**\n * @param {Array} arr The array to iterate over.\n * @return {*} Returns the minimum value.\n * @example\n *\n * min([1, 2]);\n * // => 1\n *\n * min([]);\n * // => undefined\n *\n * const data = new Array(1250010).fill(1).map((d,idx) => idx);\n *\n * min(data);\n * // => 1250010\n * // Math.min(...data) will encounter \"Maximum call stack size exceeded\" error\n */\n\nexport default (function (arr) {\n if (!isArray(arr)) {\n return undefined;\n }\n\n return arr.reduce(function (prev, curr) {\n return Math.min(prev, curr);\n }, arr[0]);\n});","import isArray from './is-array';\nimport { default as getMax } from './max';\nimport { default as getMin } from './min';\n\nvar getRange = function getRange(values) {\n // 存在 NaN 时,min,max 判定会出问题\n var filterValues = values.filter(function (v) {\n return !isNaN(v);\n });\n\n if (!filterValues.length) {\n // 如果没有数值则直接返回0\n return {\n min: 0,\n max: 0\n };\n }\n\n if (isArray(values[0])) {\n var tmp = [];\n\n for (var i = 0; i < values.length; i++) {\n tmp = tmp.concat(values[i]);\n }\n\n filterValues = tmp;\n }\n\n var max = getMax(filterValues);\n var min = getMin(filterValues);\n return {\n min: min,\n max: max\n };\n};\n\nexport default getRange;","var arrPrototype = Array.prototype;\nvar splice = arrPrototype.splice;\nvar indexOf = arrPrototype.indexOf;\n\nvar pull = function pull(arr) {\n var values = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n var fromIndex = -1;\n\n while ((fromIndex = indexOf.call(arr, value)) > -1) {\n splice.call(arr, fromIndex, 1);\n }\n }\n\n return arr;\n};\n\nexport default pull;","import isArrayLike from './is-array-like';\nvar splice = Array.prototype.splice;\n\nvar pullAt = function pullAt(arr, indexes) {\n if (!isArrayLike(arr)) {\n return [];\n }\n\n var length = arr ? indexes.length : 0;\n var last = length - 1;\n\n while (length--) {\n var previous = void 0;\n var index = indexes[length];\n\n if (length === last || index !== previous) {\n previous = index;\n splice.call(arr, index, 1);\n }\n }\n\n return arr;\n};\n\nexport default pullAt;","import each from './each';\nimport isArray from './is-array';\nimport isPlainObject from './is-plain-object';\n\nvar reduce = function reduce(arr, fn, init) {\n if (!isArray(arr) && !isPlainObject(arr)) {\n return arr;\n }\n\n var result = init;\n each(arr, function (data, i) {\n result = fn(result, data, i);\n });\n return result;\n};\n\nexport default reduce;","import isArrayLike from './is-array-like';\nimport pullAt from './pull-at';\n\nvar remove = function remove(arr, predicate) {\n /**\n * const arr = [1, 2, 3, 4]\n * const evens = remove(arr, n => n % 2 == 0)\n * console.log(arr) // => [1, 3]\n * console.log(evens) // => [2, 4]\n */\n var result = [];\n\n if (!isArrayLike(arr)) {\n return result;\n }\n\n var i = -1;\n var indexes = [];\n var length = arr.length;\n\n while (++i < length) {\n var value = arr[i];\n\n if (predicate(value, i, arr)) {\n result.push(value);\n indexes.push(i);\n }\n }\n\n pullAt(arr, indexes);\n return result;\n};\n\nexport default remove;","import isType from './is-type';\nexport default (function (str) {\n return isType(str, 'String');\n});","import isArray from './is-array';\nimport isString from './is-string';\nimport isFunction from './is-function';\n\nfunction sortBy(arr, key) {\n var comparer;\n\n if (isFunction(key)) {\n comparer = function comparer(a, b) {\n return key(a) - key(b);\n };\n } else {\n var keys_1 = [];\n\n if (isString(key)) {\n keys_1.push(key);\n } else if (isArray(key)) {\n keys_1 = key;\n }\n\n comparer = function comparer(a, b) {\n for (var i = 0; i < keys_1.length; i += 1) {\n var prop = keys_1[i];\n\n if (a[prop] > b[prop]) {\n return 1;\n }\n\n if (a[prop] < b[prop]) {\n return -1;\n }\n }\n\n return 0;\n };\n }\n\n arr.sort(comparer);\n return arr;\n}\n\nexport default sortBy;","export default function uniq(arr, cache) {\n if (cache === void 0) {\n cache = new Map();\n }\n\n var r = [];\n\n if (Array.isArray(arr)) {\n for (var i = 0, len = arr.length; i < len; i++) {\n var item = arr[i]; // 加一个 cache,提升性能\n\n if (!cache.has(item)) {\n r.push(item);\n cache.set(item, true);\n }\n }\n }\n\n return r;\n}","import uniq from './uniq';\n\nvar union = function union() {\n var sources = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n\n return uniq([].concat.apply([], sources));\n};\n\nexport default union;","import isArray from './is-array';\nimport isNil from './is-nil';\nexport default (function (data, name) {\n var rst = [];\n var tmpMap = {};\n\n for (var i = 0; i < data.length; i++) {\n var obj = data[i];\n var value = obj[name];\n\n if (!isNil(value)) {\n // flatten\n if (!isArray(value)) {\n value = [value];\n }\n\n for (var j = 0; j < value.length; j++) {\n var val = value[j]; // unique\n\n if (!tmpMap[val]) {\n rst.push(val);\n tmpMap[val] = true;\n }\n }\n }\n }\n\n return rst;\n});","import isArrayLike from './is-array-like';\nexport default function head(o) {\n if (isArrayLike(o)) {\n return o[0];\n }\n\n return undefined;\n}","import isArrayLike from './is-array-like';\nexport default function last(o) {\n if (isArrayLike(o)) {\n var arr = o;\n return arr[arr.length - 1];\n }\n\n return undefined;\n}","import isArray from './is-array';\nimport isString from './is-string';\n\nfunction endsWith(arr, e) {\n return isArray(arr) || isString(arr) ? arr[arr.length - 1] === e : false;\n}\n\nexport default endsWith;","/**\n * 只要有一个不满足条件就返回 false\n * @param arr\n * @param func\n */\nvar every = function every(arr, func) {\n for (var i = 0; i < arr.length; i++) {\n if (!func(arr[i], i)) return false;\n }\n\n return true;\n};\n\nexport default every;","/**\n * 只要有一个满足条件就返回 true\n * @param arr\n * @param func\n */\nvar some = function some(arr, func) {\n for (var i = 0; i < arr.length; i++) {\n if (func(arr[i], i)) return true;\n }\n\n return false;\n};\n\nexport default some;","import isArray from './is-array';\nimport isFunction from './is-function';\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction groupBy(data, condition) {\n if (!condition || !isArray(data)) {\n return {};\n }\n\n var result = {}; // 兼容方法和 字符串的写法\n\n var predicate = isFunction(condition) ? condition : function (item) {\n return item[condition];\n };\n var key;\n\n for (var i = 0; i < data.length; i++) {\n var item = data[i];\n key = predicate(item);\n\n if (hasOwnProperty.call(result, key)) {\n result[key].push(item);\n } else {\n result[key] = [item];\n }\n }\n\n return result;\n}\n\nexport default groupBy;","import isArray from './is-array';\nimport isFunction from './is-function';\nimport groupBy from './group-by';\n/**\n * 将数据分组成 map\n * @param data\n * @param condition\n */\n\nexport default function groupToMap(data, condition) {\n if (!condition) {\n return {\n 0: data\n };\n }\n\n if (!isFunction(condition)) {\n // 如果是字符串,则按照 a*b 风格成数组\n var paramscondition_1 = isArray(condition) ? condition : condition.replace(/\\s+/g, '').split('*');\n\n condition = function condition(row) {\n var unique = '_'; // 避免出现数字作为Key的情况,会进行按照数字的排序\n // 根据字段列表的值,拼接成 key\n\n for (var i = 0, l = paramscondition_1.length; i < l; i++) {\n unique += row[paramscondition_1[i]] && row[paramscondition_1[i]].toString();\n }\n\n return unique;\n };\n }\n\n return groupBy(data, condition);\n}","import groupToMap from './group-to-map';\nexport default (function (data, condition) {\n if (!condition) {\n // 没有条件,则自身改成数组\n return [data];\n }\n\n var groups = groupToMap(data, condition);\n var array = [];\n\n for (var i in groups) {\n array.push(groups[i]);\n }\n\n return array;\n});","import isArray from './is-array';\n\nfunction parseRadius(radius) {\n var r1 = 0,\n r2 = 0,\n r3 = 0,\n r4 = 0;\n\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 return {\n r1: r1,\n r2: r2,\n r3: r3,\n r4: r4\n };\n}\n\nexport default parseRadius;","var clamp = function clamp(a, min, max) {\n if (a < min) {\n return min;\n } else if (a > max) {\n return max;\n }\n\n return a;\n};\n\nexport default clamp;","var fixedBase = function fixedBase(v, base) {\n var str = base.toString();\n var index = str.indexOf('.');\n\n if (index === -1) {\n return Math.round(v);\n }\n\n var length = str.substr(index + 1).length;\n\n if (length > 20) {\n length = 20;\n }\n\n return parseFloat(v.toFixed(length));\n};\n\nexport default fixedBase;","/**\n * 判断是否数字\n * @return {Boolean} 是否数字\n */\nimport isType from './is-type';\n\nvar isNumber = function isNumber(value) {\n return isType(value, 'Number');\n};\n\nexport default isNumber;","import isNumber from './is-number';\nvar isInteger = Number.isInteger ? Number.isInteger : function (num) {\n return isNumber(num) && num % 1 === 0;\n};\nexport default isInteger;","var PRECISION = 0.00001; // numbers less than this is considered as 0\n\nexport default function isNumberEqual(a, b, precision) {\n if (precision === void 0) {\n precision = PRECISION;\n }\n\n return Math.abs(a - b) < precision;\n}\n;","import isNumber from './is-number';\n\nvar isOdd = function isOdd(num) {\n return isNumber(num) && num % 2 !== 0;\n};\n\nexport default isOdd;","import isArray from './is-array';\nimport isFunction from './is-function';\n/**\n * @param {Array} arr The array to iterate over.\n * @param {Function} [fn] The iteratee invoked per element.\n * @return {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\n\nexport default (function (arr, fn) {\n if (!isArray(arr)) {\n return undefined;\n }\n\n var maxItem;\n var max = -Infinity;\n\n for (var i = 0; i < arr.length; i++) {\n var item = arr[i];\n var v = isFunction(fn) ? fn(item) : item[fn];\n\n if (v > max) {\n maxItem = item;\n max = v;\n }\n }\n\n return maxItem;\n});","import isArray from './is-array';\nimport isFunction from './is-function';\n/**\n * @param {Array} arr The array to iterate over.\n * @param {Function} [fn] The iteratee invoked per element.\n * @return {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * minBy(objects, 'n');\n * // => { 'n': 1 }\n */\n\nexport default (function (arr, fn) {\n if (!isArray(arr)) {\n return undefined;\n }\n\n var minItem;\n var min = Infinity;\n\n for (var i = 0; i < arr.length; i++) {\n var item = arr[i];\n var v = isFunction(fn) ? fn(item) : item[fn];\n\n if (v < min) {\n minItem = item;\n min = v;\n }\n }\n\n return minItem;\n});","var mod = function mod(n, m) {\n return (n % m + m) % m;\n};\n\nexport default mod;","var RADIAN = Math.PI / 180;\n\nvar toRadian = function toRadian(degree) {\n return RADIAN * degree;\n};\n\nexport default toRadian;","var DEGREE = 180 / Math.PI;\n\nvar toDegree = function toDegree(radian) {\n return DEGREE * radian;\n};\n\nexport default toDegree;","export default parseInt;","import each from './each';\nexport default each;","import has from './has';\nexport default has;","export default (function (obj, key) {\n return obj.hasOwnProperty(key);\n});","import each from './each';\nimport isFunction from './is-function'; // @ts-ignore\n\nvar values = Object.values ? function (obj) {\n return Object.values(obj);\n} : function (obj) {\n var result = [];\n each(obj, function (value, key) {\n if (!(isFunction(obj) && key === 'prototype')) {\n result.push(value);\n }\n });\n return result;\n};\nexport default values;","import isNil from './is-nil';\nexport default (function (value) {\n if (isNil(value)) return '';\n return value.toString();\n});","import toString from './to-string';\n\nvar lowerCase = function lowerCase(str) {\n return toString(str).toLowerCase();\n};\n\nexport default lowerCase;","function substitute(str, o) {\n if (!str || !o) {\n return str;\n }\n\n return str.replace(/\\\\?\\{([^{}]+)\\}/g, function (match, name) {\n if (match.charAt(0) === '\\\\') {\n return match.slice(1);\n }\n\n return o[name] === undefined ? '' : o[name];\n });\n}\n\nexport default substitute;","import toString from './to-string';\n\nvar upperFirst = function upperFirst(value) {\n var str = toString(value);\n return str.charAt(0).toUpperCase() + str.substring(1);\n};\n\nexport default upperFirst;","var toString = {}.toString;\n\nvar getType = function getType(value) {\n return toString.call(value).replace(/^\\[object /, '').replace(/]$/, '');\n};\n\nexport default getType;","/**\n * 是否是布尔类型\n *\n * @param {Object} value 测试的值\n * @return {Boolean}\n */\nimport isType from './is-type';\n\nvar isBoolean = function isBoolean(value) {\n return isType(value, 'Boolean');\n};\n\nexport default isBoolean;","import isType from './is-type';\n\nvar isDate = function isDate(value) {\n return isType(value, 'Date');\n};\n\nexport default isDate;","var isNull = function isNull(value) {\n return value === null;\n};\n\nexport default isNull;","var objectProto = Object.prototype;\n\nvar isPrototype = function isPrototype(value) {\n var Ctor = value && value.constructor;\n var proto = typeof Ctor === 'function' && Ctor.prototype || objectProto;\n return value === proto;\n};\n\nexport default isPrototype;","var isUndefined = function isUndefined(value) {\n return value === undefined;\n};\n\nexport default isUndefined;","/**\n * 判断是否HTML元素\n * @return {Boolean} 是否HTML元素\n */\nvar isElement = function isElement(o) {\n return o instanceof Element || o instanceof HTMLDocument;\n};\n\nexport default isElement;","export default function requestAnimationFrame(fn) {\n var method = window.requestAnimationFrame || window.webkitRequestAnimationFrame || // @ts-ignore\n window.mozRequestAnimationFrame || // @ts-ignore\n window.msRequestAnimationFrame || function (f) {\n return setTimeout(f, 16);\n };\n\n return method(fn);\n}\n;","export default function cancelAnimationFrame(handler) {\n var method = window.cancelAnimationFrame || window.webkitCancelAnimationFrame || // @ts-ignore\n window.mozCancelAnimationFrame || // @ts-ignore\n window.msCancelAnimationFrame || clearTimeout;\n method(handler);\n}\n;","// FIXME: Mutable param should be forbidden in static lang.\nfunction _mix(dist, obj) {\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && key !== 'constructor' && obj[key] !== undefined) {\n dist[key] = obj[key];\n }\n }\n}\n\nexport default function mix(dist, src1, src2, src3) {\n if (src1) _mix(dist, src1);\n if (src2) _mix(dist, src2);\n if (src3) _mix(dist, src3);\n return dist;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport isArray from './is-array';\n\nvar clone = function clone(obj) {\n if (_typeof(obj) !== 'object' || obj === null) {\n return obj;\n }\n\n var rst;\n\n if (isArray(obj)) {\n rst = [];\n\n for (var i = 0, l = obj.length; i < l; i++) {\n if (_typeof(obj[i]) === 'object' && obj[i] != null) {\n rst[i] = clone(obj[i]);\n } else {\n rst[i] = obj[i];\n }\n }\n } else {\n rst = {};\n\n for (var k in obj) {\n if (_typeof(obj[k]) === 'object' && obj[k] != null) {\n rst[k] = clone(obj[k]);\n } else {\n rst[k] = obj[k];\n }\n }\n }\n\n return rst;\n};\n\nexport default clone;","function debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this,\n args = arguments;\n\n var later = function later() {\n timeout = null;\n\n if (!immediate) {\n func.apply(context, args);\n }\n };\n\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n\n if (callNow) {\n func.apply(context, args);\n }\n };\n}\n\nexport default debounce;","import isFunction from './is-function';\n/**\n * _.memoize(calColor);\n * _.memoize(calColor, (...args) => args[0]);\n * @param f\n * @param resolver\n */\n\nexport default (function (f, resolver) {\n if (!isFunction(f)) {\n throw new TypeError('Expected a function');\n }\n\n var memoized = function memoized() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n } // 使用方法构造 key,如果不存在 resolver,则直接取第一个参数作为 key\n\n\n var key = resolver ? resolver.apply(this, args) : args[0];\n var cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n\n var result = f.apply(this, args); // 缓存起来\n\n cache.set(key, result);\n return result;\n };\n\n memoized.cache = new Map();\n return memoized;\n});","import isArray from './is-array';\nimport isPlainObject from './is-plain-object';\nvar MAX_MIX_LEVEL = 5;\n\nfunction _deepMix(dist, src, level, maxLevel) {\n level = level || 0;\n maxLevel = maxLevel || MAX_MIX_LEVEL;\n\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n var value = src[key];\n\n if (value !== null && isPlainObject(value)) {\n if (!isPlainObject(dist[key])) {\n dist[key] = {};\n }\n\n if (level < maxLevel) {\n _deepMix(dist[key], value, level + 1, maxLevel);\n } else {\n dist[key] = src[key];\n }\n } else if (isArray(value)) {\n dist[key] = [];\n dist[key] = dist[key].concat(value);\n } else if (value !== undefined) {\n dist[key] = value;\n }\n }\n }\n} // todo 重写\n\n\nvar deepMix = function deepMix(rst) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n for (var i = 0; i < args.length; i += 1) {\n _deepMix(rst, args[i]);\n }\n\n return rst;\n};\n\nexport default deepMix;","import isArrayLike from './is-array-like';\n\nvar indexOf = function indexOf(arr, obj) {\n if (!isArrayLike(arr)) {\n return -1;\n }\n\n var m = Array.prototype.indexOf;\n\n if (m) {\n return m.call(arr, obj);\n }\n\n var index = -1;\n\n for (var i = 0; i < arr.length; i++) {\n if (arr[i] === obj) {\n index = i;\n break;\n }\n }\n\n return index;\n};\n\nexport default indexOf;","import isNil from './is-nil';\nimport isArrayLike from './is-array-like';\nimport getType from './get-type';\nimport isPrototype from './is-prototype';\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction isEmpty(value) {\n /**\n * isEmpty(null) => true\n * isEmpty() => true\n * isEmpty(true) => true\n * isEmpty(1) => true\n * isEmpty([1, 2, 3]) => false\n * isEmpty('abc') => false\n * isEmpty({ a: 1 }) => false\n */\n if (isNil(value)) {\n return true;\n }\n\n if (isArrayLike(value)) {\n return !value.length;\n }\n\n var type = getType(value);\n\n if (type === 'Map' || type === 'Set') {\n return !value.size;\n }\n\n if (isPrototype(value)) {\n return !Object.keys(value).length;\n }\n\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n\n return true;\n}\n\nexport default isEmpty;","import isObjectLike from './is-object-like';\nimport isArrayLike from './is-array-like';\nimport isString from './is-string';\n\nvar isEqual = function isEqual(value, other) {\n if (value === other) {\n return true;\n }\n\n if (!value || !other) {\n return false;\n }\n\n if (isString(value) || isString(other)) {\n return false;\n }\n\n if (isArrayLike(value) || isArrayLike(other)) {\n if (value.length !== other.length) {\n return false;\n }\n\n var rst = true;\n\n for (var i = 0; i < value.length; i++) {\n rst = isEqual(value[i], other[i]);\n\n if (!rst) {\n break;\n }\n }\n\n return rst;\n }\n\n if (isObjectLike(value) || isObjectLike(other)) {\n var valueKeys = Object.keys(value);\n var otherKeys = Object.keys(other);\n\n if (valueKeys.length !== otherKeys.length) {\n return false;\n }\n\n var rst = true;\n\n for (var i = 0; i < valueKeys.length; i++) {\n rst = isEqual(value[valueKeys[i]], other[valueKeys[i]]);\n\n if (!rst) {\n break;\n }\n }\n\n return rst;\n }\n\n return false;\n};\n\nexport default isEqual;","import isArrayLike from './is-array-like';\n\nvar map = function map(arr, func) {\n if (!isArrayLike(arr)) {\n // @ts-ignore\n return arr;\n }\n\n var result = [];\n\n for (var index = 0; index < arr.length; index++) {\n var value = arr[index];\n result.push(func(value, index));\n }\n\n return result;\n};\n\nexport default map;","import isNil from './is-nil';\nimport isObject from './is-object';\n\nvar identity = function identity(v) {\n return v;\n};\n\nexport default (function (object, func) {\n if (func === void 0) {\n func = identity;\n }\n\n var r = {};\n\n if (isObject(object) && !isNil(object)) {\n Object.keys(object).forEach(function (key) {\n // @ts-ignore\n r[key] = func(object[key], key);\n });\n }\n\n return r;\n});","import isString from './is-string';\n/**\n * https://github.com/developit/dlv/blob/master/index.js\n * @param obj\n * @param key\n * @param defaultValue\n */\n\nexport default (function (obj, key, defaultValue) {\n var p = 0;\n var keyArr = isString(key) ? key.split('.') : key;\n\n while (obj && p < keyArr.length) {\n obj = obj[keyArr[p++]];\n }\n\n return obj === undefined || p < keyArr.length ? defaultValue : obj;\n});","import isObject from './is-object';\nimport isString from './is-string';\nimport isNumber from './is-number';\n/**\n * https://github.com/developit/dlv/blob/master/index.js\n * @param obj\n * @param path\n * @param value\n */\n\nexport default (function (obj, path, value) {\n var o = obj;\n var keyArr = isString(path) ? path.split('.') : path;\n keyArr.forEach(function (key, idx) {\n // 不是最后一个\n if (idx < keyArr.length - 1) {\n if (!isObject(o[key])) {\n o[key] = isNumber(keyArr[idx + 1]) ? [] : {};\n }\n\n o = o[key];\n } else {\n o[key] = value;\n }\n });\n return obj;\n});","import each from './each';\nimport isPlainObject from './is-plain-object';\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport default (function (object, keys) {\n if (object === null || !isPlainObject(object)) {\n return {};\n }\n\n var result = {};\n each(keys, function (key) {\n if (hasOwnProperty.call(object, key)) {\n result[key] = object[key];\n }\n });\n return result;\n});","import reduce from './reduce';\nexport default (function (obj, keys) {\n return reduce(obj, function (r, curr, key) {\n if (!keys.includes(key)) {\n r[key] = curr;\n }\n\n return r;\n }, {});\n});","export default (function (func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function later() {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function throttled() {\n var now = Date.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n\n return result;\n };\n\n throttled.cancel = function () {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n});","import isArrayLike from './is-array-like';\nexport default (function (value) {\n return isArrayLike(value) ? Array.prototype.slice.call(value) : [];\n});","var map = {};\nexport default (function (prefix) {\n prefix = prefix || 'g';\n\n if (!map[prefix]) {\n map[prefix] = 1;\n } else {\n map[prefix] += 1;\n }\n\n return prefix + map[prefix];\n});","export default (function () {});","import isNil from './is-nil';\nimport isArraylike from './is-array-like';\nexport default function size(o) {\n if (isNil(o)) {\n return 0;\n }\n\n if (isArraylike(o)) {\n return o.length;\n }\n\n return Object.keys(o).length;\n}","import { __spreadArrays } from \"tslib\";\nimport values from './values';\nimport memoize from './memoize';\nimport isString from './is-string';\nvar ctx;\n/**\n * 计算文本的宽度\n */\n\nexport default memoize(function (text, font) {\n if (font === void 0) {\n font = {};\n }\n\n var fontSize = font.fontSize,\n fontFamily = font.fontFamily,\n fontWeight = font.fontWeight,\n fontStyle = font.fontStyle,\n fontVariant = font.fontVariant;\n\n if (!ctx) {\n ctx = document.createElement('canvas').getContext('2d');\n }\n\n ctx.font = [fontStyle, fontVariant, fontWeight, fontSize + \"px\", fontFamily].join(' ');\n return ctx.measureText(isString(text) ? text : '').width;\n}, function (text, font) {\n if (font === void 0) {\n font = {};\n }\n\n return __spreadArrays([text], values(font)).join('');\n});","import isString from './is-string';\nimport toString from './to-string';\nimport { default as measureTextWidth } from './measure-text-width';\n/**\n * 获取文本的 ... 文本。\n * 算法(减少每次 measureText 的长度,measureText 的性能跟字符串时间相关):\n * 1. 先通过 STEP 逐步计算,找到最后一个小于 maxWidth 的字符串\n * 2. 然后对最后这个字符串二分计算\n * @param text 需要计算的文本, 由于历史原因 除了支持string,还支持空值,number和数组等\n * @param maxWidth 最大宽度\n * @param font 字体\n * @param str 要替换的文本\n */\n\nexport default (function (text, maxWidth, font, str) {\n if (str === void 0) {\n str = '...';\n }\n\n var STEP = 16; // 每次 16,调参工程师\n\n var PLACEHOLDER_WIDTH = measureTextWidth(str, font);\n var leftText = !isString(text) ? toString(text) : text;\n var leftWidth = maxWidth;\n var r = []; // 最终的分段字符串\n\n var currentText;\n var currentWidth;\n\n if (measureTextWidth(text, font) <= maxWidth) {\n return text;\n } // 首先通过 step 计算,找出最大的未超出长度的\n // eslint-disable-next-line no-constant-condition\n\n\n while (true) {\n // 更新字符串\n currentText = leftText.substr(0, STEP); // 计算宽度\n\n currentWidth = measureTextWidth(currentText, font); // 超出剩余宽度,则停止\n\n if (currentWidth + PLACEHOLDER_WIDTH > leftWidth) {\n if (currentWidth > leftWidth) {\n break;\n }\n }\n\n r.push(currentText); // 没有超出,则计算剩余宽度\n\n leftWidth -= currentWidth;\n leftText = leftText.substr(STEP); // 字符串整体没有超出\n\n if (!leftText) {\n return r.join('');\n }\n } // 最下的最后一个 STEP,使用 1 递增(用二分效果更高)\n // eslint-disable-next-line no-constant-condition\n\n\n while (true) {\n // 更新字符串\n currentText = leftText.substr(0, 1); // 计算宽度\n\n currentWidth = measureTextWidth(currentText, font); // 超出剩余宽度,则停止\n\n if (currentWidth + PLACEHOLDER_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('') + str;\n});","/**\n * k-v 存储\n */\nvar default_1 =\n/** @class */\nfunction () {\n function default_1() {\n this.map = {};\n }\n\n default_1.prototype.has = function (key) {\n return this.map[key] !== undefined;\n };\n\n default_1.prototype.get = function (key, def) {\n var v = this.map[key];\n return v === undefined ? def : v;\n };\n\n default_1.prototype.set = function (key, value) {\n this.map[key] = value;\n };\n\n default_1.prototype.clear = function () {\n this.map = {};\n };\n\n default_1.prototype[\"delete\"] = function (key) {\n delete this.map[key];\n };\n\n default_1.prototype.size = function () {\n return Object.keys(this.map).length;\n };\n\n return default_1;\n}();\n\nexport default default_1;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/******************************************************************************\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***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n };\n }\n\n Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\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 () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || _typeof(receiver) !== \"object\" && typeof receiver !== \"function\") throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}","/**\n * 类似 lodash.flow 的方法\n * @param flows\n */\nexport function flow() {\n var flows = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n flows[_i] = arguments[_i];\n }\n\n return function (param) {\n return flows.reduce(function (result, f) {\n return f(result);\n }, param);\n };\n}","import { reduce } from '@antv/util';\n/**\n * 简单的模板引擎,使用方式如下(空格自动忽略):\n * template('hello, {name}', { name: 'AntV' }); // hello, AntV\n * @param string\n * @param options\n */\n\nexport function template(source, data) {\n if (!data) {\n return source;\n }\n\n return reduce( // @ts-ignore\n data, function (r, v, k) {\n return r.replace(new RegExp(\"{\\\\s*\" + k + \"\\\\s*}\", 'g'), v);\n }, source);\n}","/**\n * get the element's bounding size\n * @param ele dom element\n * @returns the element width and height\n */\nexport function getContainerSize(ele) {\n if (!ele) {\n return {\n width: 0,\n height: 0\n };\n }\n\n var style = getComputedStyle(ele);\n return {\n width: (ele.clientWidth || parseInt(style.width, 10)) - parseInt(style.paddingLeft, 10) - parseInt(style.paddingRight, 10),\n height: (ele.clientHeight || parseInt(style.height, 10)) - parseInt(style.paddingTop, 10) - parseInt(style.paddingBottom, 10)\n };\n}","import { reduce, get } from '@antv/util';\n/**\n * 在 View 中查找第一个指定 type 类型的 geometry\n * @param view\n * @param type\n */\n\nexport function findGeometry(view, type) {\n return view.geometries.find(function (g) {\n return g.type === type;\n });\n}\n/**\n * 获取 View 的 所有 elements\n */\n\nexport function getAllElements(view) {\n return reduce(view.geometries, function (r, geometry) {\n return r.concat(geometry.elements);\n }, []);\n}\n/**\n * 递归获取 View 的 所有 elements, 包括 View 的子 View\n */\n\nexport function getAllElementsRecursively(view) {\n if (get(view, ['views', 'length'], 0) <= 0) {\n return getAllElements(view);\n }\n\n return reduce(view.views, function (ele, subView) {\n return ele.concat(getAllElementsRecursively(subView));\n }, getAllElements(view));\n}\n/**\n * 递归获取 View 的 所有 geometries, 包括 View 的子 View\n */\n\nexport function getAllGeometriesRecursively(view) {\n if (get(view, ['views', 'length'], 0) <= 0) {\n return view.geometries;\n }\n\n return reduce(view.views, function (ele, subView) {\n return ele.concat(subView.geometries);\n }, view.geometries);\n}","import { __assign } from \"tslib\";\nimport { isType } from '@antv/util';\n/**\n * 兼容 v1 label formatter\n * @param labelOptions\n */\n\nexport function transformLabel(labelOptions) {\n if (!isType(labelOptions, 'Object')) {\n return labelOptions;\n }\n\n var label = __assign({}, labelOptions);\n\n if (label.formatter && !label.content) {\n label.content = label.formatter;\n }\n\n return label;\n}","import { vec2 } from '@antv/matrix-util';\nexport function points2Path(points, isInCircle) {\n var path = [];\n\n if (points.length) {\n path.push(['M', points[0].x, points[0].y]);\n\n for (var i = 1, length_1 = points.length; i < length_1; i += 1) {\n var 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/**\n * @ignore\n * 计算光滑的贝塞尔曲线\n */\n\nexport var smoothBezier = function smoothBezier(points, smooth, isLoop, constraint) {\n var cps = [];\n var prevPoint;\n var nextPoint;\n var hasConstraint = !!constraint;\n var min;\n var max;\n\n if (hasConstraint) {\n min = [Infinity, Infinity];\n max = [-Infinity, -Infinity];\n\n for (var i = 0, l = points.length; i < l; i++) {\n var point = points[i];\n min = vec2.min([0, 0], min, point);\n max = vec2.max([0, 0], max, point);\n }\n\n min = vec2.min([0, 0], min, constraint[0]);\n max = vec2.max([0, 0], max, constraint[1]);\n }\n\n for (var i = 0, len = points.length; i < len; i++) {\n var point = points[i];\n\n if (isLoop) {\n prevPoint = points[i ? i - 1 : len - 1];\n nextPoint = points[(i + 1) % len];\n } else {\n if (i === 0 || i === len - 1) {\n cps.push(point);\n continue;\n } else {\n prevPoint = points[i - 1];\n nextPoint = points[i + 1];\n }\n }\n\n var v = [0, 0];\n v = vec2.sub(v, nextPoint, prevPoint);\n v = vec2.scale(v, v, smooth);\n var d0 = vec2.distance(point, prevPoint);\n var d1 = vec2.distance(point, nextPoint);\n var sum = d0 + d1;\n\n if (sum !== 0) {\n d0 /= sum;\n d1 /= sum;\n }\n\n var v1 = vec2.scale([0, 0], v, -d0);\n var v2 = vec2.scale([0, 0], v, d1);\n var cp0 = vec2.add([0, 0], point, v1);\n var cp1 = vec2.add([0, 0], point, v2);\n\n if (hasConstraint) {\n cp0 = vec2.max([0, 0], cp0, min);\n cp0 = vec2.min([0, 0], cp0, max);\n cp1 = vec2.max([0, 0], cp1, min);\n cp1 = vec2.min([0, 0], cp1, max);\n }\n\n cps.push(cp0);\n cps.push(cp1);\n }\n\n if (isLoop) {\n cps.push(cps.shift());\n }\n\n return cps;\n};\n/**\n * @ignore\n * 贝塞尔曲线\n */\n\nexport function catmullRom2bezier(crp, z, constraint) {\n var isLoop = !!z;\n var pointList = [];\n\n for (var i = 0, l = crp.length; i < l; i += 2) {\n pointList.push([crp[i], crp[i + 1]]);\n }\n\n var controlPointList = smoothBezier(pointList, 0.4, isLoop, constraint);\n var len = pointList.length;\n var d1 = [];\n var cp1;\n var cp2;\n var p;\n\n for (var i = 0; i < len - 1; i++) {\n cp1 = controlPointList[i * 2];\n cp2 = controlPointList[i * 2 + 1];\n p = pointList[i + 1];\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 d1.push(['C', cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]]);\n }\n\n return d1;\n}\n/**\n * @ignore\n * 根据关键点获取限定了范围的平滑线\n */\n\nexport function getSplinePath(points, isInCircle, constaint) {\n var data = [];\n var first = points[0];\n var prePoint = null;\n\n if (points.length <= 2) {\n // 两点以内直接绘制成路径\n return points2Path(points, isInCircle);\n }\n\n for (var i = 0, len = points.length; i < len; i++) {\n var point = points[i];\n\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\n var constraint = constaint || [// 范围\n [0, 0], [1, 1]];\n var splinePath = catmullRom2bezier(data, isInCircle, constraint);\n splinePath.unshift(['M', first.x, first.y]);\n return splinePath;\n}","/**\n * @desc simple kebabCase like lodash\n *\n * kebabCase('fooBar'); => 'foo-bar'\n */\nexport function kebabCase(word) {\n if (!word) {\n return word;\n }\n\n var result = word.match(/(([A-Z]{0,1}[a-z]*[^A-Z])|([A-Z]{1}))/g);\n return result.map(function (s) {\n return s.toLowerCase();\n }).join('-');\n}","var ctx;\n/**\n * 获取 canvas context\n */\n\nexport function getCanvasContext() {\n if (!ctx) {\n ctx = document.createElement('canvas').getContext('2d');\n }\n\n return ctx;\n}","import { __spreadArrays } from \"tslib\";\nimport { isString, memoize, values } from '@antv/util';\nimport { getCanvasContext } from './context';\n/**\n * 计算文本在画布中的宽度\n * @param text 文本\n * @param font 字体\n */\n\nexport var measureTextWidth = memoize(function (text, font) {\n if (font === void 0) {\n font = {};\n }\n\n var fontSize = font.fontSize,\n _a = font.fontFamily,\n fontFamily = _a === void 0 ? 'sans-serif' : _a,\n fontWeight = font.fontWeight,\n fontStyle = font.fontStyle,\n fontVariant = font.fontVariant;\n var ctx = getCanvasContext(); // @see https://developer.mozilla.org/zh-CN/docs/Web/CSS/font\n\n ctx.font = [fontStyle, fontWeight, fontVariant, fontSize + \"px\", fontFamily].join(' ');\n var metrics = ctx.measureText(isString(text) ? text : '');\n return metrics.width;\n}, function (text, font) {\n if (font === void 0) {\n font = {};\n }\n\n return __spreadArrays([text], values(font)).join('');\n});","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n\n function classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n\n var argType = _typeof(arg);\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n var inner = classNames.apply(null, arg);\n\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === 'object') {\n if (arg.toString === Object.prototype.toString) {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n } else {\n classes.push(arg.toString());\n }\n }\n }\n\n return classes.join(' ');\n }\n\n if (typeof module !== 'undefined' && module.exports) {\n classNames[\"default\"] = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && _typeof(define.amd) === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import { __spreadArrays } from \"tslib\";\nimport { each, isNil, isObject } from '@antv/util';\nimport { AXIS_META_CONFIG_KEYS } from '../constant';\nimport { pick, deepAssign } from '../utils';\n/**\n * 通用 legend 配置, 适用于带 colorField 或 seriesField 的图表\n * @param params\n */\n\nexport function legend(params) {\n var chart = params.chart,\n options = params.options;\n var legend = options.legend,\n colorField = options.colorField,\n seriesField = options.seriesField;\n\n if (legend === false) {\n chart.legend(false);\n } else if (colorField || seriesField) {\n chart.legend(colorField || seriesField, legend);\n }\n\n return params;\n}\n/**\n * 通用 tooltip 配置\n * @param params\n */\n\nexport function tooltip(params) {\n var chart = params.chart,\n options = params.options;\n var tooltip = options.tooltip;\n\n if (tooltip !== undefined) {\n chart.tooltip(tooltip);\n }\n\n return params;\n}\n/**\n * Interaction 配置\n * @param params\n */\n\nexport function interaction(params) {\n var chart = params.chart,\n options = params.options;\n var interactions = options.interactions;\n each(interactions, function (i) {\n if (i.enable === false) {\n chart.removeInteraction(i.type);\n } else {\n chart.interaction(i.type, i.cfg || {});\n }\n });\n return params;\n}\n/**\n * 动画\n * @param params\n */\n\nexport function animation(params) {\n var chart = params.chart,\n options = params.options;\n var animation = options.animation; // 同时设置整个 view 动画选项\n\n if (typeof animation === 'boolean') {\n chart.animate(animation);\n } else {\n chart.animate(true);\n } // 所有的 Geometry 都使用同一动画(各个图形如有区别,自行覆盖)\n\n\n each(chart.geometries, function (g) {\n g.animate(animation);\n });\n return params;\n}\n/**\n * 设置全局主题配置\n * @param params\n */\n\nexport function theme(params) {\n var chart = params.chart,\n options = params.options;\n var theme = options.theme; // 存在主题才设置主题\n\n if (theme) {\n chart.theme(theme);\n }\n\n return params;\n}\n/**\n * 状态 state 配置\n * @param params\n */\n\nexport function state(params) {\n var chart = params.chart,\n options = params.options;\n var state = options.state;\n\n if (state) {\n each(chart.geometries, function (geometry) {\n geometry.state(state);\n });\n }\n\n return params;\n}\n/**\n * 处理缩略轴的 adaptor\n * @param params\n */\n\nexport function slider(params) {\n var chart = params.chart,\n options = params.options;\n var slider = options.slider;\n chart.option('slider', slider);\n return params;\n}\n/**\n * 处理缩略轴的 adaptor\n * @param params\n */\n\nexport function scrollbar(params) {\n var chart = params.chart,\n options = params.options;\n var scrollbar = options.scrollbar;\n chart.option('scrollbar', scrollbar);\n return params;\n}\n/**\n * scale 的 adaptor\n * @param axes\n */\n\nexport function scale(axes, meta) {\n return function (params) {\n var chart = params.chart,\n options = params.options; // 1. 轴配置中的 scale 信息\n\n var scales = {};\n each(axes, function (axis, field) {\n scales[field] = pick(axis, AXIS_META_CONFIG_KEYS);\n }); // 2. meta 直接是 scale 的信息\n\n scales = deepAssign({}, meta, options.meta, scales);\n chart.scale(scales);\n return params;\n };\n}\n/**\n * annotation 配置\n * @param params\n */\n\nexport function annotation(annotationOptions) {\n return function (params) {\n var chart = params.chart,\n options = params.options;\n var annotationController = chart.getController('annotation');\n /** 自定义 annotation */\n\n each(__spreadArrays(options.annotations || [], annotationOptions || []), function (annotationOption) {\n // @ts-ignore\n annotationController.annotation(annotationOption);\n });\n return params;\n };\n}\n/**\n * 自动设置 limitInPlot\n * @param params\n */\n\nexport function limitInPlot(params) {\n var chart = params.chart,\n options = params.options;\n var yAxis = options.yAxis,\n limitInPlot = options.limitInPlot;\n var value = limitInPlot; // 用户没有设置 limitInPlot,则自动根据 yAxis 是否有 min/max 来设置 limitInPlot\n\n if (isObject(yAxis) && isNil(limitInPlot)) {\n if (Object.values(pick(yAxis, ['min', 'max', 'minLimit', 'maxLimit'])).some(function (value) {\n return !isNil(value);\n })) {\n value = true;\n } else {\n value = false;\n }\n }\n\n chart.limitInPlot = value;\n return params;\n}\n/**\n * 坐标系转换\n */\n\nexport function transformations(coordinateType) {\n if (coordinateType === void 0) {\n coordinateType = 'rect';\n }\n\n return function (params) {\n var chart = params.chart,\n options = params.options;\n var coordinate = options.coordinate;\n var actions = Array.from(coordinate || []).map(function (cfg) {\n if (cfg.type === 'reflectX') return ['reflect', 'x'];\n if (cfg.type === 'reflectY') return ['reflect', 'y'];\n if (cfg.type === 'transpose') return ['transpose'];\n return null;\n }).filter(function (d) {\n return !!d;\n });\n\n if (actions.length !== 0) {\n chart.coordinate({\n type: coordinateType,\n actions: actions\n });\n }\n\n return params;\n };\n}\nexport { pattern } from './pattern';","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","/**\n * view 中三层 group 分层 key\n */\nexport var LAYER;\n\n(function (LAYER) {\n /** 前景层 */\n LAYER[\"FORE\"] = \"fore\";\n /** 中间层 */\n\n LAYER[\"MID\"] = \"mid\";\n /** 背景层 */\n\n LAYER[\"BG\"] = \"bg\";\n})(LAYER || (LAYER = {}));\n/**\n * 组件在画布的布局方位 12 方位\n */\n\n\nexport var DIRECTION;\n\n(function (DIRECTION) {\n DIRECTION[\"TOP\"] = \"top\";\n DIRECTION[\"TOP_LEFT\"] = \"top-left\";\n DIRECTION[\"TOP_RIGHT\"] = \"top-right\";\n DIRECTION[\"RIGHT\"] = \"right\";\n DIRECTION[\"RIGHT_TOP\"] = \"right-top\";\n DIRECTION[\"RIGHT_BOTTOM\"] = \"right-bottom\";\n DIRECTION[\"LEFT\"] = \"left\";\n DIRECTION[\"LEFT_TOP\"] = \"left-top\";\n DIRECTION[\"LEFT_BOTTOM\"] = \"left-bottom\";\n DIRECTION[\"BOTTOM\"] = \"bottom\";\n DIRECTION[\"BOTTOM_LEFT\"] = \"bottom-left\";\n DIRECTION[\"BOTTOM_RIGHT\"] = \"bottom-right\";\n DIRECTION[\"RADIUS\"] = \"radius\";\n DIRECTION[\"CIRCLE\"] = \"circle\"; // no direction information\n\n DIRECTION[\"NONE\"] = \"none\";\n})(DIRECTION || (DIRECTION = {}));\n/**\n * 组件的类型,可能会影响到布局算法\n */\n\n\nexport var COMPONENT_TYPE;\n\n(function (COMPONENT_TYPE) {\n /** axis 组件 */\n COMPONENT_TYPE[\"AXIS\"] = \"axis\";\n /** grid 组件 */\n\n COMPONENT_TYPE[\"GRID\"] = \"grid\";\n /** legend 组件 */\n\n COMPONENT_TYPE[\"LEGEND\"] = \"legend\";\n /** tooltip 组件 */\n\n COMPONENT_TYPE[\"TOOLTIP\"] = \"tooltip\";\n /** annotation 组件 */\n\n COMPONENT_TYPE[\"ANNOTATION\"] = \"annotation\";\n /** 缩略轴组件 */\n\n COMPONENT_TYPE[\"SLIDER\"] = \"slider\";\n /** 滚动条组件 */\n\n COMPONENT_TYPE[\"SCROLLBAR\"] = \"scrollbar\";\n /** 其他组件,自定义组件 */\n\n COMPONENT_TYPE[\"OTHER\"] = \"other\";\n})(COMPONENT_TYPE || (COMPONENT_TYPE = {}));\n/**\n * 三层 group 的 z index\n */\n\n\nexport var GROUP_Z_INDEX = {\n FORE: 3,\n MID: 2,\n BG: 1\n};\n/**\n * View 的生命周期阶段(和 3.x 的生命周期略有不同)\n * 我们需要先确定在那写场景需要用到生命周期,如果只是为了在生命周期插入一下什么组件之类的,那么在现有架构就是不需要的\n */\n\nexport var VIEW_LIFE_CIRCLE;\n\n(function (VIEW_LIFE_CIRCLE) {\n VIEW_LIFE_CIRCLE[\"BEFORE_RENDER\"] = \"beforerender\";\n VIEW_LIFE_CIRCLE[\"AFTER_RENDER\"] = \"afterrender\";\n VIEW_LIFE_CIRCLE[\"BEFORE_PAINT\"] = \"beforepaint\";\n VIEW_LIFE_CIRCLE[\"AFTER_PAINT\"] = \"afterpaint\";\n VIEW_LIFE_CIRCLE[\"BEFORE_CHANGE_DATA\"] = \"beforechangedata\";\n VIEW_LIFE_CIRCLE[\"AFTER_CHANGE_DATA\"] = \"afterchangedata\";\n VIEW_LIFE_CIRCLE[\"BEFORE_CLEAR\"] = \"beforeclear\";\n VIEW_LIFE_CIRCLE[\"AFTER_CLEAR\"] = \"afterclear\";\n VIEW_LIFE_CIRCLE[\"BEFORE_DESTROY\"] = \"beforedestroy\";\n VIEW_LIFE_CIRCLE[\"BEFORE_CHANGE_SIZE\"] = \"beforechangesize\";\n VIEW_LIFE_CIRCLE[\"AFTER_CHANGE_SIZE\"] = \"afterchangesize\";\n})(VIEW_LIFE_CIRCLE || (VIEW_LIFE_CIRCLE = {}));\n/**\n * geometry 的生命周期\n */\n\n\nexport var GEOMETRY_LIFE_CIRCLE;\n\n(function (GEOMETRY_LIFE_CIRCLE) {\n GEOMETRY_LIFE_CIRCLE[\"BEFORE_DRAW_ANIMATE\"] = \"beforeanimate\";\n GEOMETRY_LIFE_CIRCLE[\"AFTER_DRAW_ANIMATE\"] = \"afteranimate\";\n GEOMETRY_LIFE_CIRCLE[\"BEFORE_RENDER_LABEL\"] = \"beforerenderlabel\";\n GEOMETRY_LIFE_CIRCLE[\"AFTER_RENDER_LABEL\"] = \"afterrenderlabel\";\n})(GEOMETRY_LIFE_CIRCLE || (GEOMETRY_LIFE_CIRCLE = {}));\n/**\n * 绘图区的事件列表\n */\n\n\nexport var PLOT_EVENTS;\n\n(function (PLOT_EVENTS) {\n // mouse 事件\n PLOT_EVENTS[\"MOUSE_ENTER\"] = \"plot:mouseenter\";\n PLOT_EVENTS[\"MOUSE_DOWN\"] = \"plot:mousedown\";\n PLOT_EVENTS[\"MOUSE_MOVE\"] = \"plot:mousemove\";\n PLOT_EVENTS[\"MOUSE_UP\"] = \"plot:mouseup\";\n PLOT_EVENTS[\"MOUSE_LEAVE\"] = \"plot:mouseleave\"; // 移动端事件\n\n PLOT_EVENTS[\"TOUCH_START\"] = \"plot:touchstart\";\n PLOT_EVENTS[\"TOUCH_MOVE\"] = \"plot:touchmove\";\n PLOT_EVENTS[\"TOUCH_END\"] = \"plot:touchend\";\n PLOT_EVENTS[\"TOUCH_CANCEL\"] = \"plot:touchcancel\"; // click 事件\n\n PLOT_EVENTS[\"CLICK\"] = \"plot:click\";\n PLOT_EVENTS[\"DBLCLICK\"] = \"plot:dblclick\";\n PLOT_EVENTS[\"CONTEXTMENU\"] = \"plot:contextmenu\";\n PLOT_EVENTS[\"LEAVE\"] = \"plot:leave\";\n PLOT_EVENTS[\"ENTER\"] = \"plot:enter\";\n})(PLOT_EVENTS || (PLOT_EVENTS = {}));\n/**\n * Element 图形交互状态\n */\n\n\nexport var ELEMENT_STATE;\n\n(function (ELEMENT_STATE) {\n ELEMENT_STATE[\"ACTIVE\"] = \"active\";\n ELEMENT_STATE[\"INACTIVE\"] = \"inactive\";\n ELEMENT_STATE[\"SELECTED\"] = \"selected\";\n ELEMENT_STATE[\"DEFAULT\"] = \"default\";\n})(ELEMENT_STATE || (ELEMENT_STATE = {}));\n/** 参与分组的图形属性名 */\n\n\nexport var GROUP_ATTRS = ['color', 'shape', 'size'];\n/** 存储原始数据的字段名 */\n\nexport var FIELD_ORIGIN = '_origin';\n/** 最小的图表宽度 */\n\nexport var MIN_CHART_WIDTH = 1;\n/** 最小的图表高度 */\n\nexport var MIN_CHART_HEIGHT = 1;\n/** 辅助组件占图表的尺寸的最大比例:如图表上方的图例最多占图表高度的25% */\n\nexport var COMPONENT_MAX_VIEW_PERCENTAGE = 0.25;","var ENGINES = {};\n/**\n * 通过名字获取渲染 engine\n * @param name 渲染引擎名字\n * @returns G engine\n */\n\nexport function getEngine(name) {\n var G = ENGINES[name];\n\n if (!G) {\n throw new Error(\"G engine '\".concat(name, \"' is not exist, please register it at first.\"));\n }\n\n return G;\n}\n/**\n * 注册渲染引擎\n * @param name\n * @param engine\n */\n\nexport function registerEngine(name, engine) {\n ENGINES[name] = engine;\n}","import { MIN_CHART_HEIGHT, MIN_CHART_WIDTH } from '../constant';\n/**\n * get the element's bounding size\n * @param ele dom element\n * @returns the element width and height\n */\n\nfunction getElementSize(ele) {\n var style = getComputedStyle(ele);\n return {\n width: (ele.clientWidth || parseInt(style.width, 10)) - parseInt(style.paddingLeft, 10) - parseInt(style.paddingRight, 10),\n height: (ele.clientHeight || parseInt(style.height, 10)) - parseInt(style.paddingTop, 10) - parseInt(style.paddingBottom, 10)\n };\n}\n/**\n * is value a valid number\n * @param v the input value\n * @returns whether it is a number\n */\n\n\nfunction isNumber(v) {\n return typeof v === 'number' && !isNaN(v);\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 */\n\n\nexport function getChartSize(ele, autoFit, width, height) {\n var w = width;\n var h = height;\n\n if (autoFit) {\n var size = getElementSize(ele);\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 * @ignore\n * remove html element from its parent\n * @param dom\n */\n\nexport function removeDom(dom) {\n var parent = dom.parentNode;\n\n if (parent) {\n parent.removeChild(dom);\n }\n}\n/** @ignore */\n\nexport { createDom, modifyCSS } from '@antv/dom-util';","import { __extends } from \"tslib\";\nimport EE from '@antv/event-emitter';\n/**\n * G2 Chart、View、Geometry 以及 Element 等的基类,提供事件以及一些通用的方法。\n */\n\nvar Base =\n/** @class */\nfunction (_super) {\n __extends(Base, _super);\n\n function Base(cfg) {\n var _this = _super.call(this) || this;\n /** 标识对象是否已销毁 */\n\n\n _this.destroyed = false;\n var _a = cfg.visible,\n visible = _a === void 0 ? true : _a;\n _this.visible = visible;\n return _this;\n }\n /**\n * 显示。\n */\n\n\n Base.prototype.show = function () {\n var visible = this.visible;\n\n if (!visible) {\n this.changeVisible(true);\n }\n };\n /**\n * 隐藏。\n */\n\n\n Base.prototype.hide = function () {\n var visible = this.visible;\n\n if (visible) {\n this.changeVisible(false);\n }\n };\n /**\n * 销毁。\n */\n\n\n Base.prototype.destroy = function () {\n this.off();\n this.destroyed = true;\n };\n /**\n * 显示或者隐藏。\n * @param visible\n * @returns\n */\n\n\n Base.prototype.changeVisible = function (visible) {\n if (this.visible === visible) {\n return;\n }\n\n this.visible = visible;\n };\n\n return Base;\n}(EE);\n\nexport default Base;","import { isArray, isNil, isString } from '@antv/util'; // todo 这个到底目的是什么?\n\nvar toScaleString = function toScaleString(scale, value) {\n if (isString(value)) {\n return value;\n }\n\n return scale.invert(scale.scale(value));\n};\n/**\n * 所有视觉通道属性的基类\n * @class Base\n */\n\n\nvar Attribute =\n/** @class */\nfunction () {\n function Attribute(cfg) {\n this.names = [];\n this.scales = [];\n this.linear = false;\n this.values = [];\n\n this.callback = function () {\n return [];\n }; // 解析配置\n\n\n this._parseCfg(cfg);\n }\n /**\n * 映射的值组成的数组\n * @param params 对应 scale 顺序的值传入\n */\n\n\n Attribute.prototype.mapping = function () {\n var _this = this;\n\n var params = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n\n var values = params.map(function (param, idx) {\n return _this._toOriginParam(param, _this.scales[idx]);\n });\n return this.callback.apply(this, values);\n };\n /**\n * 如果进行线性映射,返回对应的映射值\n * @param percent\n */\n\n\n Attribute.prototype.getLinearValue = function (percent) {\n // 分段数量\n var steps = this.values.length - 1;\n var step = Math.floor(steps * percent);\n var leftPercent = steps * percent - step; // todo 不懂这个逻辑\n\n var start = this.values[step];\n var end = step === steps ? start : this.values[step + 1]; // 线性方程\n\n return start + (end - start) * leftPercent;\n };\n /**\n * 根据度量获取属性名\n */\n\n\n Attribute.prototype.getNames = function () {\n var scales = this.scales;\n var names = this.names;\n var length = Math.min(scales.length, names.length);\n var rst = [];\n\n for (var i = 0; i < length; i += 1) {\n rst.push(names[i]);\n }\n\n return rst;\n };\n /**\n * 获取所有的维度名\n */\n\n\n Attribute.prototype.getFields = function () {\n return this.scales.map(function (scale) {\n return scale.field;\n });\n };\n /**\n * 根据名称获取度量\n * @param name\n */\n\n\n Attribute.prototype.getScale = function (name) {\n return this.scales[this.names.indexOf(name)];\n };\n /**\n * 默认的回调函数(用户没有自定义 callback,或者用户自定义 callback 返回空的时候,使用 values 映射)\n * @param params\n */\n\n\n Attribute.prototype.defaultCallback = function () {\n var _this = this;\n\n var params = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n } // 没有 params 的情况,是指没有指定 fields,直接返回配置的 values 常量\n\n\n if (params.length === 0) {\n return this.values;\n }\n\n return params.map(function (param, idx) {\n var scale = _this.scales[idx];\n return scale.type === 'identity' ? scale.values[0] : _this._getAttributeValue(scale, param);\n });\n }; // 解析配置\n\n\n Attribute.prototype._parseCfg = function (cfg) {\n var _this = this;\n\n var _a = cfg.type,\n type = _a === void 0 ? 'base' : _a,\n _b = cfg.names,\n names = _b === void 0 ? [] : _b,\n _c = cfg.scales,\n scales = _c === void 0 ? [] : _c,\n _d = cfg.values,\n values = _d === void 0 ? [] : _d,\n callback = cfg.callback;\n this.type = type;\n this.scales = scales;\n this.values = values;\n this.names = names; // 构造 callback 方法\n\n this.callback = function () {\n var params = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n /**\n * 当用户设置的 callback 返回 null 时, 应该返回默认 callback 中的值\n */\n\n\n if (callback) {\n // 使用用户返回的值处理\n var ret = callback.apply(void 0, params);\n\n if (!isNil(ret)) {\n return [ret];\n }\n } // 没有 callback 或者用户 callback 返回值为空,则使用默认的逻辑处理\n\n\n return _this.defaultCallback.apply(_this, params);\n };\n }; // 获取属性值,将值映射到视觉通道\n\n\n Attribute.prototype._getAttributeValue = function (scale, value) {\n // 如果是非线性的字段,直接从 values 中取值即可\n if (scale.isCategory && !this.linear) {\n // 离散 scale 变换成索引\n var idx = scale.translate(value);\n return this.values[idx % this.values.length];\n } // 线性则使用线性值\n\n\n var percent = scale.scale(value);\n return this.getLinearValue(percent);\n };\n /**\n * 通过 scale 拿到数据对应的原始的参数\n * @param param\n * @param scale\n * @private\n */\n\n\n Attribute.prototype._toOriginParam = function (param, scale) {\n // 是线性,直接返回\n // 非线性,使用 scale 变换\n return !scale.isLinear ? isArray(param) ? param.map(function (p) {\n return toScaleString(scale, p);\n }) : toScaleString(scale, param) : param;\n };\n\n return Attribute;\n}();\n\nexport default Attribute;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*! *****************************************************************************\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***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\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 () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result[\"default\"] = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","import { __extends } from \"tslib\";\nimport colorUtil from '@antv/color-util';\nimport { isString } from '@antv/util';\nimport Attribute from './base';\n\nvar Color =\n/** @class */\nfunction (_super) {\n __extends(Color, _super);\n\n function Color(cfg) {\n var _this = _super.call(this, cfg) || this;\n\n _this.type = 'color';\n _this.names = ['color'];\n\n if (isString(_this.values)) {\n _this.linear = true;\n }\n\n _this.gradient = colorUtil.gradient(_this.values);\n return _this;\n }\n /**\n * @override\n */\n\n\n Color.prototype.getLinearValue = function (percent) {\n return this.gradient(percent);\n };\n\n return Color;\n}(Attribute);\n\nexport default Color;","import { __extends } from \"tslib\";\nimport Attribute from './base';\n\nvar Opacity =\n/** @class */\nfunction (_super) {\n __extends(Opacity, _super);\n\n function Opacity(cfg) {\n var _this = _super.call(this, cfg) || this;\n\n _this.type = 'opacity';\n _this.names = ['opacity'];\n return _this;\n }\n\n return Opacity;\n}(Attribute);\n\nexport default Opacity;","import { __extends } from \"tslib\";\nimport { isArray, isNil } from '@antv/util';\nimport Attribute from './base';\n\nvar Position =\n/** @class */\nfunction (_super) {\n __extends(Position, _super);\n\n function Position(cfg) {\n var _this = _super.call(this, cfg) || this;\n\n _this.names = ['x', 'y'];\n _this.type = 'position';\n return _this;\n }\n\n Position.prototype.mapping = function (x, y) {\n var _a = this.scales,\n scaleX = _a[0],\n scaleY = _a[1];\n\n if (isNil(x) || isNil(y)) {\n return [];\n }\n\n return [isArray(x) ? x.map(function (xi) {\n return scaleX.scale(xi);\n }) : scaleX.scale(x), isArray(y) ? y.map(function (yi) {\n return scaleY.scale(yi);\n }) : scaleY.scale(y)];\n };\n\n return Position;\n}(Attribute);\n\nexport default Position;","import { __extends } from \"tslib\";\nimport Attribute from './base';\n\nvar Shape =\n/** @class */\nfunction (_super) {\n __extends(Shape, _super);\n\n function Shape(cfg) {\n var _this = _super.call(this, cfg) || this;\n\n _this.type = 'shape';\n _this.names = ['shape'];\n return _this;\n }\n /**\n * @override\n */\n\n\n Shape.prototype.getLinearValue = function (percent) {\n var idx = Math.round((this.values.length - 1) * percent);\n return this.values[idx];\n };\n\n return Shape;\n}(Attribute);\n\nexport default Shape;","import { __extends } from \"tslib\";\nimport Attribute from './base';\n\nvar Size =\n/** @class */\nfunction (_super) {\n __extends(Size, _super);\n\n function Size(cfg) {\n var _this = _super.call(this, cfg) || this;\n\n _this.type = 'size';\n _this.names = ['size'];\n return _this;\n }\n\n return Size;\n}(Attribute);\n\nexport default Size;","import Attribute from './attributes/base'; // 所有的 attribute map\n\nvar ATTRIBUTE_MAP = {};\n/**\n * 通过类型获得 Attribute 类\n * @param type\n */\n\nvar getAttribute = function getAttribute(type) {\n return ATTRIBUTE_MAP[type.toLowerCase()];\n};\n\nvar registerAttribute = function registerAttribute(type, ctor) {\n // 注册的时候,需要校验 type 重名,不区分大小写\n if (getAttribute(type)) {\n throw new Error(\"Attribute type '\" + type + \"' existed.\");\n } // 存储到 map 中\n\n\n ATTRIBUTE_MAP[type.toLowerCase()] = ctor;\n};\n\nexport { getAttribute, registerAttribute, Attribute };\nexport * from './interface';","import Attribute from './attributes/base';\nimport Color from './attributes/color';\nimport Opacity from './attributes/opacity';\nimport Position from './attributes/position';\nimport Shape from './attributes/shape';\nimport Size from './attributes/size';\nimport { getAttribute, registerAttribute } from './factory';\nregisterAttribute('Color', Color);\nregisterAttribute('Opacity', Opacity);\nregisterAttribute('Position', Position);\nregisterAttribute('Shape', Shape);\nregisterAttribute('Size', Size);\nexport { registerAttribute, getAttribute, Attribute, // 以下 export 是为了兼容,理论上是不需要的\nColor, Opacity, Position, Shape, Size };\nexport * from './interface';","import { __spreadArray } from \"tslib\";\nimport { ext, mat3, vec3 } from '@antv/matrix-util';\nimport { assign } from '@antv/util';\n/**\n * Coordinate Base Class\n */\n\nvar Coordinate =\n/** @class */\nfunction () {\n function Coordinate(cfg) {\n // 自身属性\n this.type = 'coordinate';\n this.isRect = false;\n this.isHelix = false;\n this.isPolar = false;\n this.isReflectX = false;\n this.isReflectY = false;\n var start = cfg.start,\n end = cfg.end,\n _a = cfg.matrix,\n matrix = _a === void 0 ? [1, 0, 0, 0, 1, 0, 0, 0, 1] : _a,\n _b = cfg.isTransposed,\n isTransposed = _b === void 0 ? false : _b;\n this.start = start;\n this.end = end;\n this.matrix = matrix;\n this.originalMatrix = __spreadArray([], matrix); // 去除引用\n\n this.isTransposed = isTransposed;\n }\n /**\n * 初始化流程\n */\n\n\n Coordinate.prototype.initial = function () {\n // center、width、height\n this.center = {\n x: (this.start.x + this.end.x) / 2,\n y: (this.start.y + this.end.y) / 2\n };\n this.width = Math.abs(this.end.x - this.start.x);\n this.height = Math.abs(this.end.y - this.start.y);\n };\n /**\n * 更新配置\n * @param cfg\n */\n\n\n Coordinate.prototype.update = function (cfg) {\n assign(this, cfg);\n this.initial();\n };\n\n Coordinate.prototype.convertDim = function (percent, dim) {\n var _a;\n\n var _b = this[dim],\n start = _b.start,\n end = _b.end; // 交换\n\n if (this.isReflect(dim)) {\n _a = [end, start], start = _a[0], end = _a[1];\n }\n\n return start + percent * (end - start);\n };\n\n Coordinate.prototype.invertDim = function (value, dim) {\n var _a;\n\n var _b = this[dim],\n start = _b.start,\n end = _b.end; // 交换\n\n if (this.isReflect(dim)) {\n _a = [end, start], start = _a[0], end = _a[1];\n }\n\n return (value - start) / (end - start);\n };\n /**\n * 将坐标点进行矩阵变换\n * @param x 对应 x 轴画布坐标\n * @param y 对应 y 轴画布坐标\n * @param tag 默认为 0,可取值 0, 1\n * @return 返回变换后的三阶向量 [x, y, z]\n */\n\n\n Coordinate.prototype.applyMatrix = function (x, y, tag) {\n if (tag === void 0) {\n tag = 0;\n }\n\n var matrix = this.matrix;\n var vector = [x, y, tag];\n vec3.transformMat3(vector, vector, matrix);\n return vector;\n };\n /**\n * 将坐标点进行矩阵逆变换\n * @param x 对应 x 轴画布坐标\n * @param y 对应 y 轴画布坐标\n * @param tag 默认为 0,可取值 0, 1\n * @return 返回矩阵逆变换后的三阶向量 [x, y, z]\n */\n\n\n Coordinate.prototype.invertMatrix = function (x, y, tag) {\n if (tag === void 0) {\n tag = 0;\n }\n\n var matrix = this.matrix;\n var inverted = mat3.invert([0, 0, 0, 0, 0, 0, 0, 0, 0], matrix);\n var vector = [x, y, tag];\n\n if (inverted) {\n // 如果为空则不进行矩阵变化,防止报错\n vec3.transformMat3(vector, vector, inverted);\n }\n\n return vector;\n };\n /**\n * 将归一化的坐标点数据转换为画布坐标,并根据坐标系当前矩阵进行变换\n * @param point 归一化的坐标点\n * @return 返回进行矩阵变换后的画布坐标\n */\n\n\n Coordinate.prototype.convert = function (point) {\n var _a = this.convertPoint(point),\n x = _a.x,\n y = _a.y;\n\n var vector = this.applyMatrix(x, y, 1);\n return {\n x: vector[0],\n y: vector[1]\n };\n };\n /**\n * 将进行过矩阵变换画布坐标转换为归一化坐标\n * @param point 画布坐标\n * @return 返回归一化的坐标点\n */\n\n\n Coordinate.prototype.invert = function (point) {\n var vector = this.invertMatrix(point.x, point.y, 1);\n return this.invertPoint({\n x: vector[0],\n y: vector[1]\n });\n };\n /**\n * 坐标系旋转变换\n * @param radian 旋转弧度\n * @return 返回坐标系对象\n */\n\n\n Coordinate.prototype.rotate = function (radian) {\n var matrix = this.matrix;\n var center = this.center;\n ext.leftTranslate(matrix, matrix, [-center.x, -center.y]);\n ext.leftRotate(matrix, matrix, radian);\n ext.leftTranslate(matrix, matrix, [center.x, center.y]);\n return this;\n };\n /**\n * 坐标系反射变换\n * @param dim 反射维度\n * @return 返回坐标系对象\n */\n\n\n Coordinate.prototype.reflect = function (dim) {\n if (dim === 'x') {\n this.isReflectX = !this.isReflectX;\n } else {\n this.isReflectY = !this.isReflectY;\n }\n\n return this;\n };\n /**\n * 坐标系比例变换\n * @param s1 x 方向缩放比例\n * @param s2 y 方向缩放比例\n * @return 返回坐标系对象\n */\n\n\n Coordinate.prototype.scale = function (s1, s2) {\n var matrix = this.matrix;\n var center = this.center;\n ext.leftTranslate(matrix, matrix, [-center.x, -center.y]);\n ext.leftScale(matrix, matrix, [s1, s2]);\n ext.leftTranslate(matrix, matrix, [center.x, center.y]);\n return this;\n };\n /**\n * 坐标系平移变换\n * @param x x 方向平移像素\n * @param y y 方向平移像素\n * @return 返回坐标系对象\n */\n\n\n Coordinate.prototype.translate = function (x, y) {\n var matrix = this.matrix;\n ext.leftTranslate(matrix, matrix, [x, y]);\n return this;\n };\n /**\n * 将坐标系 x y 两个轴进行转置\n * @return 返回坐标系对象\n */\n\n\n Coordinate.prototype.transpose = function () {\n this.isTransposed = !this.isTransposed;\n return this;\n };\n\n Coordinate.prototype.getCenter = function () {\n return this.center;\n };\n\n Coordinate.prototype.getWidth = function () {\n return this.width;\n };\n\n Coordinate.prototype.getHeight = function () {\n return this.height;\n };\n\n Coordinate.prototype.getRadius = function () {\n return this.radius;\n };\n /**\n * whether has reflect\n * @param dim\n */\n\n\n Coordinate.prototype.isReflect = function (dim) {\n return dim === 'x' ? this.isReflectX : this.isReflectY;\n };\n /**\n * 重置 matrix\n * @param matrix 如果传入,则使用,否则使用构造函数中传入的默认 matrix\n */\n\n\n Coordinate.prototype.resetMatrix = function (matrix) {\n // 去除引用关系\n this.matrix = matrix ? matrix : __spreadArray([], this.originalMatrix);\n };\n\n return Coordinate;\n}();\n\nexport default Coordinate;","import { __extends } from \"tslib\";\nimport Coordinate from './base';\n/**\n * 笛卡尔坐标系\n * https://www.zhihu.com/question/20665303\n */\n\nvar Cartesian =\n/** @class */\nfunction (_super) {\n __extends(Cartesian, _super);\n\n function Cartesian(cfg) {\n var _this = _super.call(this, cfg) || this;\n\n _this.isRect = true;\n _this.type = 'cartesian';\n\n _this.initial();\n\n return _this;\n }\n\n Cartesian.prototype.initial = function () {\n _super.prototype.initial.call(this);\n\n var start = this.start;\n var end = this.end;\n this.x = {\n start: start.x,\n end: end.x\n };\n this.y = {\n start: start.y,\n end: end.y\n };\n };\n\n Cartesian.prototype.convertPoint = function (point) {\n var _a;\n\n var x = point.x,\n y = point.y; // 交换\n\n if (this.isTransposed) {\n _a = [y, x], x = _a[0], y = _a[1];\n }\n\n return {\n x: this.convertDim(x, 'x'),\n y: this.convertDim(y, 'y')\n };\n };\n\n Cartesian.prototype.invertPoint = function (point) {\n var _a;\n\n var x = this.invertDim(point.x, 'x');\n var y = this.invertDim(point.y, 'y');\n\n if (this.isTransposed) {\n _a = [y, x], x = _a[0], y = _a[1];\n }\n\n return {\n x: x,\n y: y\n };\n };\n\n return Cartesian;\n}(Coordinate);\n\nexport default Cartesian;","import { __extends } from \"tslib\";\nimport { ext, vec2 } from '@antv/matrix-util';\nimport { isNumberEqual } from '@antv/util';\nimport Coordinate from './base';\n/**\n * 螺旋坐标系\n */\n\nvar Helix =\n/** @class */\nfunction (_super) {\n __extends(Helix, _super);\n\n function Helix(cfg) {\n var _this = _super.call(this, cfg) || this;\n\n _this.isHelix = true;\n _this.type = 'helix';\n var _a = cfg.startAngle,\n startAngle = _a === void 0 ? 1.25 * Math.PI : _a,\n _b = cfg.endAngle,\n endAngle = _b === void 0 ? 7.25 * Math.PI : _b,\n _c = cfg.innerRadius,\n innerRadius = _c === void 0 ? 0 : _c,\n radius = cfg.radius;\n _this.startAngle = startAngle;\n _this.endAngle = endAngle;\n _this.innerRadius = innerRadius;\n _this.radius = radius;\n\n _this.initial();\n\n return _this;\n }\n\n Helix.prototype.initial = function () {\n _super.prototype.initial.call(this);\n\n var index = (this.endAngle - this.startAngle) / (2 * Math.PI) + 1; // 螺线圈数\n\n var maxRadius = Math.min(this.width, this.height) / 2;\n\n if (this.radius && this.radius >= 0 && this.radius <= 1) {\n maxRadius = maxRadius * this.radius;\n }\n\n this.d = Math.floor(maxRadius * (1 - this.innerRadius) / index);\n this.a = this.d / (Math.PI * 2); // 螺线系数\n\n this.x = {\n start: this.startAngle,\n end: this.endAngle\n };\n this.y = {\n start: this.innerRadius * maxRadius,\n end: this.innerRadius * maxRadius + this.d * 0.99\n };\n };\n /**\n * 将百分比数据变成屏幕坐标\n * @param point 归一化的点坐标\n * @return 返回对应的屏幕坐标\n */\n\n\n Helix.prototype.convertPoint = function (point) {\n var _a;\n\n var x = point.x,\n y = point.y;\n\n if (this.isTransposed) {\n _a = [y, x], x = _a[0], y = _a[1];\n }\n\n var thi = this.convertDim(x, 'x');\n var r = this.a * thi;\n var newY = this.convertDim(y, 'y');\n return {\n x: this.center.x + Math.cos(thi) * (r + newY),\n y: this.center.y + Math.sin(thi) * (r + newY)\n };\n };\n /**\n * 将屏幕坐标点还原成百分比数据\n * @param point 屏幕坐标\n * @return 返回对应的归一化后的数据\n */\n\n\n Helix.prototype.invertPoint = function (point) {\n var _a;\n\n var d = this.d + this.y.start;\n var v = vec2.subtract([0, 0], [point.x, point.y], [this.center.x, this.center.y]);\n var thi = ext.angleTo(v, [1, 0], true);\n var rMin = thi * this.a; // 坐标与原点的连线在第一圈上的交点,最小r值\n\n if (vec2.length(v) < rMin) {\n // 坐标与原点的连线不可能小于最小r值,但不排除因小数计算产生的略小于rMin的情况\n rMin = vec2.length(v);\n }\n\n var index = Math.floor((vec2.length(v) - rMin) / d); // 当前点位于第index圈\n\n thi = 2 * index * Math.PI + thi;\n var r = this.a * thi;\n var newY = vec2.length(v) - r;\n newY = isNumberEqual(newY, 0) ? 0 : newY;\n var x = this.invertDim(thi, 'x');\n var y = this.invertDim(newY, 'y');\n x = isNumberEqual(x, 0) ? 0 : x;\n y = isNumberEqual(y, 0) ? 0 : y;\n\n if (this.isTransposed) {\n _a = [y, x], x = _a[0], y = _a[1];\n }\n\n return {\n x: x,\n y: y\n };\n };\n\n return Helix;\n}(Coordinate);\n\nexport default Helix;","import { __extends } from \"tslib\";\nimport { ext, vec2, vec3 } from '@antv/matrix-util';\nimport { isNumberEqual } from '@antv/util';\nimport Coordinate from './base';\n\nvar Polar =\n/** @class */\nfunction (_super) {\n __extends(Polar, _super);\n\n function Polar(cfg) {\n var _this = _super.call(this, cfg) || this;\n\n _this.isPolar = true;\n _this.type = 'polar';\n var _a = cfg.startAngle,\n startAngle = _a === void 0 ? -Math.PI / 2 : _a,\n _b = cfg.endAngle,\n endAngle = _b === void 0 ? Math.PI * 3 / 2 : _b,\n _c = cfg.innerRadius,\n innerRadius = _c === void 0 ? 0 : _c,\n radius = cfg.radius;\n _this.startAngle = startAngle;\n _this.endAngle = endAngle;\n _this.innerRadius = innerRadius;\n _this.radius = radius;\n\n _this.initial();\n\n return _this;\n }\n\n Polar.prototype.initial = function () {\n _super.prototype.initial.call(this);\n\n while (this.endAngle < this.startAngle) {\n this.endAngle += Math.PI * 2;\n }\n\n var oneBox = this.getOneBox();\n var oneWidth = oneBox.maxX - oneBox.minX;\n var oneHeight = oneBox.maxY - oneBox.minY;\n var left = Math.abs(oneBox.minX) / oneWidth;\n var top = Math.abs(oneBox.minY) / oneHeight;\n var maxRadius;\n\n if (this.height / oneHeight > this.width / oneWidth) {\n // width 为主\n maxRadius = this.width / oneWidth;\n this.circleCenter = {\n x: this.center.x - (0.5 - left) * this.width,\n y: this.center.y - (0.5 - top) * maxRadius * oneHeight\n };\n } else {\n // height 为主\n maxRadius = this.height / oneHeight;\n this.circleCenter = {\n x: this.center.x - (0.5 - left) * maxRadius * oneWidth,\n y: this.center.y - (0.5 - top) * this.height\n };\n }\n\n this.polarRadius = this.radius;\n\n if (!this.radius) {\n this.polarRadius = maxRadius;\n } else if (this.radius > 0 && this.radius <= 1) {\n this.polarRadius = maxRadius * this.radius;\n } else if (this.radius <= 0 || this.radius > maxRadius) {\n this.polarRadius = maxRadius;\n }\n\n this.x = {\n start: this.startAngle,\n end: this.endAngle\n };\n this.y = {\n start: this.innerRadius * this.polarRadius,\n end: this.polarRadius\n };\n };\n\n Polar.prototype.getRadius = function () {\n return this.polarRadius;\n };\n\n Polar.prototype.convertPoint = function (point) {\n var _a;\n\n var center = this.getCenter();\n var x = point.x,\n y = point.y;\n\n if (this.isTransposed) {\n _a = [y, x], x = _a[0], y = _a[1];\n }\n\n x = this.convertDim(x, 'x');\n y = this.convertDim(y, 'y');\n return {\n x: center.x + Math.cos(x) * y,\n y: center.y + Math.sin(x) * y\n };\n };\n\n Polar.prototype.invertPoint = function (point) {\n var _a;\n\n var center = this.getCenter();\n var vPoint = [point.x - center.x, point.y - center.y];\n\n var _b = this,\n startAngle = _b.startAngle,\n endAngle = _b.endAngle;\n\n if (this.isReflect('x')) {\n _a = [endAngle, startAngle], startAngle = _a[0], endAngle = _a[1];\n }\n\n var m = [1, 0, 0, 0, 1, 0, 0, 0, 1];\n ext.leftRotate(m, m, startAngle);\n var vStart3 = [1, 0, 0];\n vec3.transformMat3(vStart3, vStart3, m);\n var vStart2 = [vStart3[0], vStart3[1]];\n var angle = ext.angleTo(vStart2, vPoint, endAngle < startAngle);\n\n if (isNumberEqual(angle, Math.PI * 2)) {\n angle = 0;\n }\n\n var radius = vec2.length(vPoint);\n var xPercent = angle / (endAngle - startAngle);\n xPercent = endAngle - startAngle > 0 ? xPercent : -xPercent;\n var yPercent = this.invertDim(radius, 'y');\n var rst = {\n x: 0,\n y: 0\n };\n rst.x = this.isTransposed ? yPercent : xPercent;\n rst.y = this.isTransposed ? xPercent : yPercent;\n return rst;\n };\n\n Polar.prototype.getCenter = function () {\n return this.circleCenter;\n };\n\n Polar.prototype.getOneBox = function () {\n var startAngle = this.startAngle;\n var endAngle = this.endAngle;\n\n if (Math.abs(endAngle - startAngle) >= Math.PI * 2) {\n return {\n minX: -1,\n maxX: 1,\n minY: -1,\n maxY: 1\n };\n }\n\n var xs = [0, Math.cos(startAngle), Math.cos(endAngle)];\n var ys = [0, Math.sin(startAngle), Math.sin(endAngle)];\n\n for (var i = Math.min(startAngle, endAngle); i < Math.max(startAngle, endAngle); i += Math.PI / 18) {\n xs.push(Math.cos(i));\n ys.push(Math.sin(i));\n }\n\n return {\n minX: Math.min.apply(Math, xs),\n maxX: Math.max.apply(Math, xs),\n minY: Math.min.apply(Math, ys),\n maxY: Math.max.apply(Math, ys)\n };\n };\n\n return Polar;\n}(Coordinate);\n\nexport default Polar;","// 所有的 Coordinate map\nvar COORDINATE_MAP = {};\n/**\n * 通过类型获得 coordinate 类\n * @param type\n */\n\nexport var getCoordinate = function getCoordinate(type) {\n return COORDINATE_MAP[type.toLowerCase()];\n};\n/**\n * 注册 coordinate 类\n * @param type\n * @param ctor\n */\n\nexport var registerCoordinate = function registerCoordinate(type, ctor) {\n // 存储到 map 中\n COORDINATE_MAP[type.toLowerCase()] = ctor;\n};\nexport * from './interface';","import Coordinate from './coord/base';\nimport Cartesian from './coord/cartesian';\nimport Helix from './coord/helix';\nimport Polar from './coord/polar';\nimport { getCoordinate, registerCoordinate } from './factory';\nregisterCoordinate('rect', Cartesian);\nregisterCoordinate('cartesian', Cartesian);\nregisterCoordinate('polar', Polar);\nregisterCoordinate('helix', Helix);\nexport { getCoordinate, registerCoordinate, Coordinate };","/* 依赖的模块,在这里统一引入,方便打包优化 */\n// G\nexport { Event, AbstractGroup, AbstractShape } from '@antv/g-base'; // adjust\n\nexport { registerAdjust, getAdjust, Adjust } from '@antv/adjust'; // attr\n\nexport { getAttribute, Attribute } from '@antv/attr';\nexport { Color } from '@antv/attr'; // coordinate\n\nexport { getCoordinate, registerCoordinate, Coordinate } from '@antv/coord'; // scale\n\nexport { getScale, registerScale, Scale } from '@antv/scale'; // component\n\nimport { Annotation, Axis, Component, Crosshair, Grid, GroupComponent, HtmlComponent, Legend, Slider, Tooltip, Scrollbar } from '@antv/component';\nexport { HtmlComponent, GroupComponent, Component, Crosshair };\nexport { Annotation }; // axis\n\nvar LineAxis = Axis.Line,\n CircleAxis = Axis.Circle;\nexport { LineAxis, CircleAxis }; // grid\n\nvar LineGrid = Grid.Line,\n CircleGrid = Grid.Circle;\nexport { LineGrid, CircleGrid }; // legend\n\nvar CategoryLegend = Legend.Category,\n ContinuousLegend = Legend.Continuous;\nexport { CategoryLegend, ContinuousLegend }; // Tooltip\n\nvar HtmlTooltip = Tooltip.Html;\nexport { HtmlTooltip }; // Slider\n\nexport { Slider }; // Scrollbar\n\nexport { Scrollbar };","import { each, isEmpty, isNumber, isNumberEqual, max, min } from '@antv/util'; // 获取图形的包围盒\n\nfunction getPointsBox(points) {\n if (isEmpty(points)) {\n return null;\n }\n\n var minX = points[0].x;\n var maxX = points[0].x;\n var minY = points[0].y;\n var maxY = points[0].y;\n each(points, function (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 return {\n minX: minX,\n maxX: maxX,\n minY: minY,\n maxY: maxY,\n centerX: (minX + maxX) / 2,\n centerY: (minY + maxY) / 2\n };\n}\n\nfunction uniqueValues(array) {\n return Array.from(new Set(array)).length === 1;\n}\n\nfunction mid(array) {\n return (min(array) + max(array)) / 2;\n}\n/**\n * @ignore\n * 根据弧度计算极坐标系下的坐标点\n * @param centerX\n * @param centerY\n * @param radius\n * @param angleInRadian\n * @returns\n */\n\n\nexport function polarToCartesian(centerX, centerY, radius, angleInRadian) {\n return {\n x: centerX + radius * Math.cos(angleInRadian),\n y: centerY + radius * Math.sin(angleInRadian)\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 */\n\nexport function getSectorPath(centerX, centerY, radius, startAngleInRadian, endAngleInRadian, innerRadius) {\n if (innerRadius === void 0) {\n innerRadius = 0;\n }\n\n var start = polarToCartesian(centerX, centerY, radius, startAngleInRadian);\n var end = polarToCartesian(centerX, centerY, radius, endAngleInRadian);\n var innerStart = polarToCartesian(centerX, centerY, innerRadius, startAngleInRadian);\n var innerEnd = polarToCartesian(centerX, centerY, innerRadius, endAngleInRadian);\n\n if (endAngleInRadian - startAngleInRadian === Math.PI * 2) {\n // 整个圆是分割成两个圆\n var middlePoint = polarToCartesian(centerX, centerY, radius, startAngleInRadian + Math.PI);\n var innerMiddlePoint = polarToCartesian(centerX, centerY, innerRadius, startAngleInRadian + Math.PI);\n var circlePathCommands = [['M', start.x, start.y], ['A', radius, radius, 0, 1, 1, middlePoint.x, middlePoint.y], ['A', radius, radius, 0, 1, 1, end.x, end.y], ['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 return circlePathCommands;\n }\n\n var arcSweep = endAngleInRadian - startAngleInRadian <= Math.PI ? 0 : 1;\n var sectorPathCommands = [['M', start.x, start.y], ['A', radius, radius, 0, arcSweep, 1, end.x, end.y], ['L', innerEnd.x, innerEnd.y]];\n\n if (innerRadius) {\n sectorPathCommands.push(['A', innerRadius, innerRadius, 0, arcSweep, 0, innerStart.x, innerStart.y]);\n }\n\n sectorPathCommands.push(['L', start.x, start.y]);\n sectorPathCommands.push(['Z']);\n return sectorPathCommands;\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 */\n\nexport function getArcPath(centerX, centerY, radius, startAngleInRadian, endAngleInRadian) {\n var start = polarToCartesian(centerX, centerY, radius, startAngleInRadian);\n var end = polarToCartesian(centerX, centerY, radius, endAngleInRadian);\n\n if (isNumberEqual(endAngleInRadian - startAngleInRadian, Math.PI * 2)) {\n var middlePoint = polarToCartesian(centerX, centerY, radius, startAngleInRadian + Math.PI);\n return [['M', start.x, start.y], ['A', radius, radius, 0, 1, 1, middlePoint.x, middlePoint.y], ['A', radius, radius, 0, 1, 1, start.x, start.y], ['A', radius, radius, 0, 1, 0, middlePoint.x, middlePoint.y], ['A', radius, radius, 0, 1, 0, start.x, start.y], ['Z']];\n }\n\n var arcSweep = endAngleInRadian - startAngleInRadian <= Math.PI ? 0 : 1;\n return [['M', start.x, start.y], ['A', radius, radius, 0, arcSweep, 1, end.x, end.y]];\n}\n/**\n * @ignore\n * 从数据模型中的 points 换算角度\n * @param shapeModel\n * @param coordinate\n * @returns\n */\n\nexport function getAngle(shapeModel, coordinate) {\n var points = shapeModel.points;\n var box = getPointsBox(points);\n var endAngle;\n var startAngle;\n var coordStartAngle = coordinate.startAngle,\n coordEndAngle = coordinate.endAngle;\n var 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\n endAngle += coordStartAngle;\n startAngle += coordStartAngle;\n return {\n startAngle: startAngle,\n endAngle: endAngle\n };\n}\n/**\n * @ignore\n * 计算多边形重心: https://en.wikipedia.org/wiki/Centroid#Of_a_polygon\n */\n\nexport function getPolygonCentroid(xs, ys) {\n if (isNumber(xs) && isNumber(ys)) {\n // 普通色块图,xs 和 ys 是数值\n return [xs, ys];\n }\n\n xs = xs;\n ys = ys; // 当这个 polygon 的点在一条线上的时候\n // 也就是说 xs 里面的值都相同,比如:[1, 1, 1, 1]\n // 或者说 ys 里面的值都相同,比如:[0, 0, 0, 0]\n // 下面计算得到的 k = 0\n // 导致返回的值是 [NaN, NaN]\n // 所以这里做相应的处理\n\n if (uniqueValues(xs) || uniqueValues(ys)) return [mid(xs), mid(ys)];\n var i = -1;\n var x = 0;\n var y = 0;\n var former;\n var current = xs.length - 1;\n var diff;\n var k = 0;\n\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\n k *= 3;\n return [x / k, y / k];\n}\n/**\n * @ignore\n * 获取需要替换的属性,如果原先图形元素存在,而新图形不存在,则设置 undefined\n */\n\nexport function getReplaceAttrs(sourceShape, targetShape) {\n var originAttrs = sourceShape.attr();\n var newAttrs = targetShape.attr();\n each(originAttrs, function (v, k) {\n if (newAttrs[k] === undefined) {\n newAttrs[k] = undefined;\n }\n });\n return newAttrs;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport { __values } from \"tslib\";\nimport { isArray, isString } from '@antv/util';\n/**\n * @ignore\n * Determines whether between is\n * @param value\n * @param start\n * @param end\n * @returns true if between\n */\n\nexport function isBetween(value, start, end) {\n var min = Math.min(start, end);\n var max = Math.max(start, end);\n return value >= min && value <= max;\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 */\n\nexport function padEnd(source, targetLength, padValue) {\n if (isString(source)) {\n return source.padEnd(targetLength, padValue);\n } else if (isArray(source)) {\n var sourceLength = source.length;\n\n if (sourceLength < targetLength) {\n var diff = targetLength - sourceLength;\n\n for (var i = 0; i < diff; i++) {\n source.push(padValue);\n }\n }\n }\n\n return source;\n}\n/**\n * @ignore\n * omit keys of an object.\n * @param obj\n * @param keys\n */\n\nexport function omit(obj, keys) {\n if (_typeof(obj) === 'object') {\n keys.forEach(function (key) {\n delete obj[key];\n });\n }\n\n return obj;\n}\n/**\n * @ignore\n * @param sourceArray\n * @param targetArray\n * @param map\n */\n\nexport function uniq(sourceArray, targetArray, map) {\n var e_1, _a;\n\n if (targetArray === void 0) {\n targetArray = [];\n }\n\n if (map === void 0) {\n map = new Map();\n }\n\n try {\n for (var sourceArray_1 = __values(sourceArray), sourceArray_1_1 = sourceArray_1.next(); !sourceArray_1_1.done; sourceArray_1_1 = sourceArray_1.next()) {\n var source = sourceArray_1_1.value;\n\n if (!map.has(source)) {\n targetArray.push(source);\n map.set(source, true);\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (sourceArray_1_1 && !sourceArray_1_1.done && (_a = sourceArray_1[\"return\"])) _a.call(sourceArray_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return targetArray;\n}","import { __read } from \"tslib\";\nimport { each } from '@antv/util';\nimport { DIRECTION } from '../constant';\n/**\n * 用于包围盒计算。\n */\n\nvar BBox =\n/** @class */\nfunction () {\n function BBox(x, y, width, height) {\n if (x === void 0) {\n x = 0;\n }\n\n if (y === void 0) {\n y = 0;\n }\n\n if (width === void 0) {\n width = 0;\n }\n\n if (height === void 0) {\n height = 0;\n }\n\n this.x = x;\n this.y = y;\n this.height = height;\n this.width = width;\n }\n\n BBox.fromRange = function (minX, minY, maxX, maxY) {\n return new BBox(minX, minY, maxX - minX, maxY - minY);\n };\n\n BBox.fromObject = function (bbox) {\n return new BBox(bbox.minX, bbox.minY, bbox.width, bbox.height);\n };\n\n Object.defineProperty(BBox.prototype, \"minX\", {\n get: function get() {\n return this.x;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BBox.prototype, \"maxX\", {\n get: function get() {\n return this.x + this.width;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BBox.prototype, \"minY\", {\n get: function get() {\n return this.y;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BBox.prototype, \"maxY\", {\n get: function get() {\n return this.y + this.height;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BBox.prototype, \"tl\", {\n get: function get() {\n return {\n x: this.x,\n y: this.y\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BBox.prototype, \"tr\", {\n get: function get() {\n return {\n x: this.maxX,\n y: this.y\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BBox.prototype, \"bl\", {\n get: function get() {\n return {\n x: this.x,\n y: this.maxY\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BBox.prototype, \"br\", {\n get: function get() {\n return {\n x: this.maxX,\n y: this.maxY\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BBox.prototype, \"top\", {\n get: function get() {\n return {\n x: this.x + this.width / 2,\n y: this.minY\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BBox.prototype, \"right\", {\n get: function get() {\n return {\n x: this.maxX,\n y: this.y + this.height / 2\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BBox.prototype, \"bottom\", {\n get: function get() {\n return {\n x: this.x + this.width / 2,\n y: this.maxY\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BBox.prototype, \"left\", {\n get: function get() {\n return {\n x: this.minX,\n y: this.y + this.height / 2\n };\n },\n enumerable: false,\n configurable: true\n }); // end 计算属性\n\n /**\n * 包围盒是否相等\n * @param {BBox} bbox 包围盒\n * @returns 包围盒是否相等\n */\n\n BBox.prototype.isEqual = function (bbox) {\n return this.x === bbox.x && this.y === bbox.y && this.width === bbox.width && this.height === bbox.height;\n };\n /**\n * 是否包含了另一个包围盒\n * @param child\n */\n\n\n BBox.prototype.contains = function (child) {\n return child.minX >= this.minX && child.maxX <= this.maxX && child.minY >= this.minY && child.maxY <= this.maxY;\n };\n /**\n * 克隆包围盒\n * @returns 包围盒\n */\n\n\n BBox.prototype.clone = function () {\n return new BBox(this.x, this.y, this.width, this.height);\n };\n /**\n * 取并集\n * @param subBBox\n */\n\n\n BBox.prototype.add = function () {\n var subBBox = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n subBBox[_i] = arguments[_i];\n }\n\n var bbox = this.clone();\n each(subBBox, function (b) {\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 return bbox;\n };\n /**\n * 取交集\n * @param subBBox\n */\n\n\n BBox.prototype.merge = function () {\n var subBBox = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n subBBox[_i] = arguments[_i];\n }\n\n var bbox = this.clone();\n each(subBBox, function (b) {\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 return bbox;\n };\n /**\n * bbox 剪裁\n * @param subBBox\n * @param direction\n */\n\n\n BBox.prototype.cut = function (subBBox, direction) {\n var width = subBBox.width;\n var 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\n default:\n // 其他情况不裁剪,原样返回\n return this;\n }\n };\n /**\n * 收缩形成新的\n * @param gap\n */\n\n\n BBox.prototype.shrink = function (gap) {\n var _a = __read(gap, 4),\n top = _a[0],\n right = _a[1],\n bottom = _a[2],\n left = _a[3];\n\n return new BBox(this.x + left, this.y + top, this.width - left - right, this.height - top - bottom);\n };\n /**\n * 扩张形成新的\n * @param gap\n */\n\n\n BBox.prototype.expand = function (gap) {\n var _a = __read(gap, 4),\n top = _a[0],\n right = _a[1],\n bottom = _a[2],\n left = _a[3];\n\n return new BBox(this.x - left, this.y - top, this.width + left + right, this.height + top + bottom);\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\n\n BBox.prototype.exceed = function (bbox) {\n return [Math.max(-this.minY + bbox.minY, 0), Math.max(this.maxX - bbox.maxX, 0), Math.max(this.maxY - bbox.maxY, 0), Math.max(-this.minX + bbox.minX, 0)];\n };\n /**\n * 是否碰撞\n * @param bbox\n */\n\n\n BBox.prototype.collide = function (bbox) {\n return this.minX < bbox.maxX && this.maxX > bbox.minX && this.minY < bbox.maxY && this.maxY > bbox.minY;\n };\n /**\n * 获取包围盒大小\n * @returns 包围盒大小\n */\n\n\n BBox.prototype.size = function () {\n return this.width * this.height;\n };\n /**\n * 点是否在 bbox 中\n * @param p\n */\n\n\n BBox.prototype.isPointIn = function (p) {\n return p.x >= this.minX && p.x <= this.maxX && p.y >= this.minY && p.y <= this.maxY;\n };\n\n return BBox;\n}();\n\nexport { BBox };\n/**\n * 从一个 bbox 的 region 获取 bbox\n * @param bbox\n * @param region\n */\n\nexport var getRegionBBox = function getRegionBBox(bbox, region) {\n var start = region.start,\n end = region.end;\n return new BBox(bbox.x + bbox.width * start.x, bbox.y + bbox.height * start.y, bbox.width * Math.abs(end.x - start.x), bbox.height * Math.abs(end.y - start.y));\n};\n/**\n * 将 bbox 转换成 points\n * @param bbox\n */\n\nexport function toPoints(bbox) {\n return [[bbox.minX, bbox.minY], [bbox.maxX, bbox.minY], [bbox.maxX, bbox.maxY], [bbox.minX, bbox.maxY]];\n}","import { getSectorPath } from './graphics';\nimport { isBetween } from './helper';\nimport { BBox } from './bbox';\n/**\n * @ignore\n * Gets x dimension length\n * @param coordinate\n * @returns x dimension length\n */\n\nexport function getXDimensionLength(coordinate) {\n if (coordinate.isPolar && !coordinate.isTransposed) {\n // 极坐标系下 width 为弧长\n return (coordinate.endAngle - coordinate.startAngle) * coordinate.getRadius();\n } // 直角坐标系\n\n\n var start = coordinate.convert({\n x: 0,\n y: 0\n });\n var end = coordinate.convert({\n x: 1,\n y: 0\n }); // 坐标系有可能发生 transpose 等变换,所有通过两点之间的距离进行计算\n\n return Math.sqrt(Math.pow(end.x - start.x, 2) + Math.pow(end.y - start.y, 2));\n}\n/**\n * @ignore\n * Determines whether full circle is\n * @param coordinate\n * @returns true if full circle\n */\n\nexport function isFullCircle(coordinate) {\n if (coordinate.isPolar) {\n var startAngle = coordinate.startAngle,\n endAngle = coordinate.endAngle;\n return endAngle - startAngle === Math.PI * 2;\n }\n\n return false;\n}\n/**\n * @ignore\n * 获取当前点到坐标系圆心的距离\n * @param coordinate 坐标系\n * @param point 当前点\n * @returns distance to center\n */\n\nexport function getDistanceToCenter(coordinate, point) {\n var center = coordinate.getCenter();\n return Math.sqrt(Math.pow(point.x - center.x, 2) + Math.pow(point.y - center.y, 2));\n}\n/**\n * @ignore\n * 坐标点是否在坐标系中\n * @param coordinate\n * @param point\n */\n\nexport function isPointInCoordinate(coordinate, point) {\n var result = false;\n\n if (coordinate) {\n if (coordinate.type === 'theta') {\n var start = coordinate.start,\n end = coordinate.end;\n result = isBetween(point.x, start.x, end.x) && isBetween(point.y, start.y, end.y);\n } else {\n var invertPoint = coordinate.invert(point);\n result = isBetween(invertPoint.x, 0, 1) && isBetween(invertPoint.y, 0, 1);\n }\n }\n\n return result;\n}\n/**\n * @ignore\n * 获取点到圆心的连线与水平方向的夹角\n */\n\nexport function getAngleByPoint(coordinate, point) {\n var center = coordinate.getCenter();\n return Math.atan2(point.y - center.y, point.x - center.x);\n}\n/**\n * @ignore\n * 获取同坐标系范围相同的剪切区域\n * @param coordinate\n * @returns\n */\n\nexport function getCoordinateClipCfg(coordinate, margin) {\n if (margin === void 0) {\n margin = 0;\n }\n\n var start = coordinate.start,\n end = coordinate.end;\n var width = coordinate.getWidth();\n var height = coordinate.getHeight();\n\n if (coordinate.isPolar) {\n var startAngle_1 = coordinate.startAngle,\n endAngle_1 = coordinate.endAngle;\n var center_1 = coordinate.getCenter();\n var radius_1 = coordinate.getRadius();\n return {\n type: 'path',\n startState: {\n path: getSectorPath(center_1.x, center_1.y, radius_1 + margin, startAngle_1, startAngle_1)\n },\n endState: function endState(ratio) {\n var diff = (endAngle_1 - startAngle_1) * ratio + startAngle_1;\n var path = getSectorPath(center_1.x, center_1.y, radius_1 + margin, startAngle_1, diff);\n return {\n path: path\n };\n },\n attrs: {\n path: getSectorPath(center_1.x, center_1.y, radius_1 + margin, startAngle_1, endAngle_1)\n }\n };\n }\n\n var endState;\n\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: 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 * 获取坐标系范围的 BBox\n * @param coordinate\n * @param margin\n */\n\nexport function getCoordinateBBox(coordinate, margin) {\n if (margin === void 0) {\n margin = 0;\n }\n\n var start = coordinate.start,\n end = coordinate.end;\n var width = coordinate.getWidth();\n var height = coordinate.getHeight();\n var minX = Math.min(start.x, end.x);\n var minY = Math.min(start.y, end.y);\n return BBox.fromRange(minX - margin, minY - margin, minX + width + margin, minY + height + margin);\n}","import { __assign, __read, __spreadArray } from \"tslib\";\nimport { firstValue, get, isEmpty, isNil, isNumber, isString, valuesOfKey } from '@antv/util';\nimport { GROUP_ATTRS } from '../constant';\nimport { getScale } from '../dependents';\nimport { isFullCircle } from './coordinate';\nvar dateRegex = /^(?:(?!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 * @param field 数据字段名\n * @param data 数据源\n * @returns default type 返回对应的数据类型\n */\n\nfunction getDefaultType(value) {\n var type = 'linear';\n\n if (dateRegex.test(value)) {\n type = 'timeCat';\n } else if (isString(value)) {\n type = 'cat';\n }\n\n return type;\n}\n/**\n * using the scale type if user specified, otherwise infer the type\n */\n\n\nexport function inferScaleType(scale, scaleDef, attrType, geometryType) {\n if (scaleDef === void 0) {\n scaleDef = {};\n }\n\n if (scaleDef.type) return scaleDef.type; // identity scale 直接返回\n // geometry 类型有: edge,heatmap,interval,line,path,point,polygon,schema,voilin等;理论上,interval 下,可以用 linear scale 作为分组字段\n\n if (scale.type !== 'identity' && GROUP_ATTRS.includes(attrType) && ['interval'].includes(geometryType)) {\n return 'cat';\n }\n\n return scale.isCategory ? 'cat' : scale.type;\n}\n/**\n * @ignore\n * 为指定的 `field` 字段数据创建 scale\n * @param field 字段名\n * @param [data] 数据集,可为空\n * @param [scaleDef] 列定义,可为空\n * @returns scale 返回创建的 Scale 实例\n */\n\nexport function createScaleByField(field, data, scaleDef) {\n var validData = data || [];\n\n if (isNumber(field) || isNil(firstValue(validData, field)) && isEmpty(scaleDef)) {\n var Identity = getScale('identity');\n return new Identity({\n field: field.toString(),\n values: [field]\n });\n }\n\n var values = valuesOfKey(validData, field); // 如果已经定义过这个度量 (fix-later 单纯从数据中,推断 scale type 是不精确的)\n\n var type = get(scaleDef, 'type', getDefaultType(values[0]));\n var ScaleCtor = getScale(type);\n return new ScaleCtor(__assign({\n field: field,\n values: values\n }, scaleDef));\n}\n/**\n * @ignore\n * 同步 scale\n * @todo 是否可以通过 scale.update() 方法进行更新\n * @param scale 需要同步的 scale 实例\n * @param newScale 同步源 Scale\n */\n\nexport function syncScale(scale, newScale) {\n if (scale.type !== 'identity' && newScale.type !== 'identity') {\n var obj = {};\n\n for (var 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 * @ignore\n * get the scale name, if alias exist, return alias, or else field\n * @param scale\n * @returns the name of field\n */\n\nexport function getName(scale) {\n return scale.alias || scale.field;\n}\n/**\n * 根据 scale values 和 coordinate 获取分类默认 range\n * @param scale 需要获取的 scale 实例\n * @param coordinate coordinate 实例\n * @param theme theme\n */\n\nexport function getDefaultCategoryScaleRange(scale, coordinate, theme) {\n var values = scale.values;\n var count = values.length;\n var range;\n\n if (count === 1) {\n range = [0.5, 1]; // 只有一个分类时,防止计算出现 [0.5,0.5] 的状态\n } else {\n var widthRatio = 1;\n var 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\n range = [offset, 1 - offset]; // 坐标轴最前面和最后面留下空白防止绘制柱状图时\n }\n }\n\n return range;\n}\n/**\n * @function y轴scale的max\n * @param {yScale}\n */\n\nexport function getMaxScale(scale) {\n // 过滤values[]中 NaN/undefined/null 等\n var values = scale.values.filter(function (item) {\n return !isNil(item) && !isNaN(item);\n });\n return Math.max.apply(Math, __spreadArray(__spreadArray([], __read(values), false), [isNil(scale.max) ? -Infinity : scale.max], false));\n}","import { deepMix, get, isBoolean } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { getName } from './scale';\nimport { vec2 } from '@antv/matrix-util';\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 */\n\nexport function getLineAxisRelativeRegion(direction) {\n var start;\n var end;\n\n switch (direction) {\n case DIRECTION.TOP:\n start = {\n x: 0,\n y: 1\n };\n end = {\n x: 1,\n y: 1\n };\n break;\n\n case DIRECTION.RIGHT:\n start = {\n x: 1,\n y: 0\n };\n end = {\n x: 1,\n y: 1\n };\n break;\n\n case DIRECTION.BOTTOM:\n start = {\n x: 0,\n y: 0\n };\n end = {\n x: 1,\n y: 0\n };\n break;\n\n case DIRECTION.LEFT:\n start = {\n x: 0,\n y: 0\n };\n end = {\n x: 0,\n y: 1\n };\n break;\n\n default:\n start = end = {\n x: 0,\n y: 0\n };\n }\n\n return {\n start: start,\n end: 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 */\n\nexport function getCircleAxisRelativeRegion(coordinate) {\n var start;\n var end;\n\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 {\n start: start,\n end: 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 */\n\nexport function getAxisRegion(coordinate, direction) {\n var region = {\n start: {\n x: 0,\n y: 0\n },\n end: {\n x: 0,\n y: 0\n }\n };\n\n if (coordinate.isRect) {\n region = getLineAxisRelativeRegion(direction);\n } else if (coordinate.isPolar) {\n region = getCircleAxisRelativeRegion(coordinate);\n }\n\n var start = region.start,\n end = region.end;\n return {\n start: coordinate.convert(start),\n end: coordinate.convert(end)\n };\n}\n/**\n * @ignore\n * get axis factor\n * @param coordinate\n * @param direction\n * @returns factor\n */\n\nexport function getAxisFactor(coordinate, direction) {\n // rect coordinate, by direction\n if (coordinate.isRect) {\n return coordinate.isTransposed ? [DIRECTION.RIGHT, DIRECTION.BOTTOM].includes(direction) ? 1 : -1 : [DIRECTION.BOTTOM, DIRECTION.RIGHT].includes(direction) ? -1 : 1;\n } // polar y axis, by angle\n\n\n if (coordinate.isPolar) {\n var startAngle = coordinate.x.start;\n return startAngle < 0 ? -1 : 1;\n }\n\n return 1;\n}\n/**\n * @ignore\n * whether the axis isVertical\n * @param region\n * @returns isVertical\n */\n\nexport function isVertical(region) {\n var start = region.start,\n end = region.end;\n return start.x === end.x;\n}\n/**\n * @ignore\n * get factor by region (real position)\n * @param region\n * @param center\n * @returns factor\n */\n\nexport function getAxisFactorByRegion(region, center) {\n var start = region.start,\n end = region.end;\n var isAxisVertical = isVertical(region); // 垂直\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 * @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 */\n\nexport function getAxisThemeCfg(theme, direction) {\n var axisTheme = get(theme, ['components', 'axis'], {});\n return deepMix({}, get(axisTheme, ['common'], {}), deepMix({}, get(axisTheme, [direction], {})));\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 */\n\nexport function getAxisTitleOptions(theme, direction, axisOptions) {\n var axisTheme = get(theme, ['components', 'axis'], {});\n return deepMix({}, get(axisTheme, ['common', 'title'], {}), deepMix({}, get(axisTheme, [direction, 'title'], {})), axisOptions);\n}\n/**\n * @ignore\n * get circle axis center and radius\n * @param coordinate\n */\n\nexport function getCircleAxisCenterRadius(coordinate) {\n // @ts-ignore\n var x = coordinate.x,\n y = coordinate.y,\n center = coordinate.circleCenter;\n var isReflectY = y.start > y.end;\n var start = coordinate.isTransposed ? coordinate.convert({\n x: isReflectY ? 0 : 1,\n y: 0\n }) : coordinate.convert({\n x: 0,\n y: isReflectY ? 0 : 1\n });\n var startVector = [start.x - center.x, start.y - center.y];\n var normalVector = [1, 0];\n var startAngle = start.y > center.y ? vec2.angle(startVector, normalVector) : vec2.angle(startVector, normalVector) * -1;\n var endAngle = startAngle + (x.end - x.start);\n var radius = Math.sqrt(Math.pow(start.x - center.x, 2) + Math.pow(start.y - center.y, 2));\n return {\n center: center,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n}\n/**\n * @ignore\n * 从配置中获取单个字段的 axis 配置\n * @param axes\n * @param field\n * @returns the axis option of field\n */\n\nexport function getAxisOption(axes, field) {\n if (isBoolean(axes)) {\n return axes === false ? false : {};\n }\n\n return get(axes, [field]);\n}\n/**\n * @ignore\n * 如果配置了 position,则使用配置\n * @param axisOption\n * @param def\n */\n\nexport function getAxisDirection(axisOption, def) {\n return get(axisOption, 'position', def);\n}\n/**\n * 获取 axis 的 title 文本\n * @param scale\n * @param axisOption\n */\n\nexport function getAxisTitleText(scale, axisOption) {\n return get(axisOption, ['title', 'text'], getName(scale));\n}","import { __read } from \"tslib\";\nimport { deepMix, each, every, get, isNil, isNumber } from '@antv/util';\nimport { LAYER } from '../constant';\nimport { getAxisOption } from '../util/axis';\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 */\n\nvar Facet =\n/** @class */\nfunction () {\n function Facet(view, cfg) {\n /** 是否销毁 */\n this.destroyed = false;\n /** 分面之后的所有分面数据结构 */\n\n this.facets = [];\n this.view = view;\n this.cfg = deepMix({}, this.getDefaultCfg(), cfg);\n }\n /**\n * 初始化过程\n */\n\n\n Facet.prototype.init = function () {\n // 初始化容器\n if (!this.container) {\n this.container = this.createContainer();\n } // 生成分面布局信息\n\n\n var data = this.view.getData();\n this.facets = this.generateFacets(data);\n };\n /**\n * 渲染分面,由上层 view 调用。包括:\n * - 分面 view\n * - 轴\n * - title\n *\n * 子类可以复写,添加一些其他组件,比如滚动条等\n */\n\n\n Facet.prototype.render = function () {\n this.renderViews();\n };\n /**\n * 更新 facet\n */\n\n\n Facet.prototype.update = function () {// 其实不用做任何事情,因为 facet 最终生成的 View 和 Geometry 都在父 view 的更新中处理了\n };\n /**\n * 清空,clear 之后如果还需要使用,需要重新调用 init 初始化过程\n * 一般在数据有变更的时候调用,重新进行数据的分面逻辑\n */\n\n\n Facet.prototype.clear = function () {\n this.clearFacetViews();\n };\n /**\n * 销毁\n */\n\n\n Facet.prototype.destroy = function () {\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 * 根据 facet 生成 view,可以给上层自定义使用\n * @param facet\n */\n\n\n Facet.prototype.facetToView = function (facet) {\n var region = facet.region,\n data = facet.data,\n _a = facet.padding,\n padding = _a === void 0 ? this.cfg.padding : _a;\n var view = this.view.createView({\n region: region,\n padding: padding\n }); // 设置分面的数据\n\n view.data(data || []);\n facet.view = view; // 前置钩子\n\n this.beforeEachView(view, facet);\n var eachView = this.cfg.eachView;\n\n if (eachView) {\n eachView(view, facet);\n } // 后置钩子\n\n\n this.afterEachView(view, facet);\n return view;\n }; // 创建容器\n\n\n Facet.prototype.createContainer = function () {\n var foregroundGroup = this.view.getLayer(LAYER.FORE);\n return foregroundGroup.addGroup();\n };\n /**\n * 初始化 view\n */\n\n\n Facet.prototype.renderViews = function () {\n this.createFacetViews();\n };\n /**\n * 创建 分面 view\n */\n\n\n Facet.prototype.createFacetViews = function () {\n var _this = this; // 使用分面数据 创建分面 view\n\n\n return this.facets.map(function (facet) {\n return _this.facetToView(facet);\n });\n };\n /**\n * 从 view 中清除 facetView\n */\n\n\n Facet.prototype.clearFacetViews = function () {\n var _this = this; // 从 view 中移除分面 view\n\n\n each(this.facets, function (facet) {\n if (facet.view) {\n _this.view.removeView(facet.view);\n\n facet.view = undefined;\n }\n });\n };\n /**\n * 解析 spacing\n */\n\n\n Facet.prototype.parseSpacing = function () {\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 var _a = this.view.viewBBox,\n width = _a.width,\n height = _a.height;\n var spacing = this.cfg.spacing;\n return spacing.map(function (s, idx) {\n if (isNumber(s)) return s / (idx === 0 ? width : height);else return parseFloat(s) / 100;\n });\n }; // 其他一些提供给子类使用的方法\n\n /**\n * 获取这个字段对应的所有值,数组\n * @protected\n * @param data 数据\n * @param field 字段名\n * @return 字段对应的值\n */\n\n\n Facet.prototype.getFieldValues = function (data, field) {\n var rst = [];\n var cache = {}; // 去重、去除 Nil 值\n\n each(data, function (d) {\n var value = d[field];\n\n if (!isNil(value) && !cache[value]) {\n rst.push(value);\n cache[value] = true;\n }\n });\n return rst;\n };\n /**\n * 获得每个分面的 region,平分区域\n * @param rows row 总数\n * @param cols col 总数\n * @param xIndex x 方向 index\n * @param yIndex y 方向 index\n */\n\n\n Facet.prototype.getRegion = function (rows, cols, xIndex, yIndex) {\n var _a = __read(this.parseSpacing(), 2),\n xSpacing = _a[0],\n ySpacing = _a[1]; // 每两个分面区域横向间隔xSPacing, 纵向间隔ySpacing\n // 每个分面区域的横纵占比\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\n\n var xRatio = (1 + xSpacing) / (cols === 0 ? 1 : cols) - xSpacing;\n var yRatio = (1 + ySpacing) / (rows === 0 ? 1 : rows) - ySpacing; // 得到第 index 个分面区域百分比位置\n\n var start = {\n x: (xRatio + xSpacing) * xIndex,\n y: (yRatio + ySpacing) * yIndex\n };\n var end = {\n x: start.x + xRatio,\n y: start.y + yRatio\n };\n return {\n start: start,\n end: end\n };\n };\n\n Facet.prototype.getDefaultCfg = function () {\n return {\n eachView: undefined,\n showTitle: true,\n spacing: [0, 0],\n padding: 10,\n fields: []\n };\n };\n /**\n * 默认的 title 样式,因为有的分面是 title,有的分面配置是 columnTitle、rowTitle\n */\n\n\n Facet.prototype.getDefaultTitleCfg = function () {\n // @ts-ignore\n var fontFamily = this.view.getTheme().fontFamily;\n return {\n style: {\n fontSize: 14,\n fill: '#666',\n fontFamily: fontFamily\n }\n };\n };\n /**\n * 处理 axis 的默认配置\n * @param view\n * @param facet\n */\n\n\n Facet.prototype.processAxis = function (view, facet) {\n var options = view.getOptions();\n var coordinateOption = options.coordinate;\n var geometries = view.geometries;\n var 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\n var axes = options.axes;\n\n var _a = __read(geometries[0].getXYFields(), 2),\n x = _a[0],\n y = _a[1];\n\n var xOption = getAxisOption(axes, x);\n var 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 * @param conditions\n */\n\n\n Facet.prototype.getFacetDataFilter = function (conditions) {\n return function (datum) {\n // 过滤出全部满足条件的数据\n return every(conditions, function (condition) {\n var field = condition.field,\n value = condition.value;\n\n if (!isNil(value) && field) {\n return datum[field] === value;\n }\n\n return true;\n });\n };\n };\n\n return Facet;\n}();\n\nexport { Facet };","import { lowerCase } from '@antv/util';\nexport { Facet } from './facet';\n/**\n * 所有的 Facet 类\n */\n\nvar Facets = {};\n/**\n * 根据 type 获取 facet 类\n * @param type 分面类型\n */\n\nexport var getFacet = function getFacet(type) {\n return Facets[lowerCase(type)];\n};\n/**\n * 注册一个 Facet 类\n * @param type 分面类型\n * @param ctor 分面类\n */\n\nexport var registerFacet = function registerFacet(type, ctor) {\n Facets[lowerCase(type)] = ctor;\n};","import { assign } from '@antv/util';\n/**\n * Action 的基类\n */\n\nvar Action =\n/** @class */\nfunction () {\n function Action(context, cfg) {\n this.context = context;\n this.cfg = cfg;\n context.addAction(this);\n }\n /**\n * 设置配置项传入的值\n * @param cfg\n */\n\n\n Action.prototype.applyCfg = function (cfg) {\n assign(this, cfg);\n };\n /**\n * Inits action,提供给子类用于继承\n */\n\n\n Action.prototype.init = function () {\n this.applyCfg(this.cfg);\n };\n /**\n * Destroys action\n */\n\n\n Action.prototype.destroy = function () {\n // 移除 action\n this.context.removeAction(this); // 清空\n\n this.context = null;\n };\n\n return Action;\n}();\n\nexport default Action;","import { __extends } from \"tslib\";\nimport Action from './base';\n/** 回调函数构建的 Action */\n\nvar CallbackAction =\n/** @class */\nfunction (_super) {\n __extends(CallbackAction, _super);\n\n function CallbackAction() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * 执行\n */\n\n\n CallbackAction.prototype.execute = function () {\n if (this.callback) {\n this.callback(this.context);\n }\n };\n /**\n * 销毁\n */\n\n\n CallbackAction.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n\n this.callback = null;\n };\n\n return CallbackAction;\n}(Action);\n\nexport default CallbackAction;","import CallbackAction from './callback';\nimport { get } from '@antv/util'; // Action 类的缓存\n\nvar ActionCache = {};\n/**\n * 根据名称获取 Action 实例\n * @param actionName - action 的名称\n * @param context 上下文\n * @returns Action 实例\n */\n\nexport function createAction(actionName, context) {\n var actionOption = ActionCache[actionName];\n var action = null;\n\n if (actionOption) {\n var ActionClass = actionOption.ActionClass,\n cfg = actionOption.cfg;\n action = new ActionClass(context, cfg);\n action.name = actionName;\n action.init();\n }\n\n return action;\n}\n/**\n * 根据 action 的 name 获取定义的类\n * @param actionName action 的 name\n */\n\nexport function getActionClass(actionName) {\n var actionOption = ActionCache[actionName];\n return get(actionOption, 'ActionClass');\n}\n/**\n * 注册 Action\n * @param actionName - action 的名称\n * @param ActionClass - 继承自 action 的类\n */\n\nexport function registerAction(actionName, ActionClass, cfg) {\n ActionCache[actionName] = {\n ActionClass: ActionClass,\n cfg: cfg\n };\n}\n/**\n * 取消注册 Action\n * @param actionName action 名称\n */\n\nexport function unregisterAction(actionName) {\n delete ActionCache[actionName];\n}\n/**\n * 根据回调函数获取 Action 实例\n * @param callback - action 的回调函数\n * @param context 上下文\n * @returns Action 实例\n */\n\nexport function createCallbackAction(callback, context) {\n var action = new CallbackAction(context);\n action.callback = callback;\n action.name = 'callback';\n return action;\n}","import { __read } from \"tslib\";\nimport { vec2 } from '@antv/matrix-util';\nimport { each } from '@antv/util';\nimport { getDistanceToCenter } from '../../../util/coordinate';\n\nfunction _points2path(points, isInCircle) {\n var path = [];\n\n if (points.length) {\n path.push(['M', points[0].x, points[0].y]);\n\n for (var i = 1, length_1 = points.length; i < length_1; i += 1) {\n var 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, coord) {\n var tmp = [arr[0]];\n\n for (var i = 1, len = arr.length; i < len; i = i + 2) {\n var point = coord.convert({\n x: arr[i],\n y: arr[i + 1]\n });\n tmp.push(point.x, point.y);\n }\n\n return tmp;\n}\n\nfunction _convertArcPath(path, coord) {\n var isTransposed = coord.isTransposed;\n var r = path[1];\n var x = path[6];\n var y = path[7];\n var point = coord.convert({\n x: x,\n y: y\n });\n var direction = isTransposed ? 0 : 1;\n return ['A', r, r, 0, 0, direction, point.x, point.y];\n}\n\nfunction _convertPolarPath(pre, cur, coord) {\n var isTransposed = coord.isTransposed,\n startAngle = coord.startAngle,\n endAngle = coord.endAngle;\n var prePoint = pre[0].toLowerCase() === 'a' ? {\n x: pre[6],\n y: pre[7]\n } : {\n x: pre[1],\n y: pre[2]\n };\n var curPoint = {\n x: cur[1],\n y: cur[2]\n };\n var rst = [];\n var xDim = isTransposed ? 'y' : 'x';\n var angleRange = Math.abs(curPoint[xDim] - prePoint[xDim]) * (endAngle - startAngle);\n var direction = curPoint[xDim] >= prePoint[xDim] ? 1 : 0; // 圆弧的方向\n\n var flag = angleRange > Math.PI ? 1 : 0; // 大弧还是小弧标志位\n\n var convertPoint = coord.convert(curPoint);\n var r = getDistanceToCenter(coord, convertPoint);\n\n if (r >= 0.5) {\n // 小于1像素的圆在图像上无法识别\n if (angleRange === Math.PI * 2) {\n var middlePoint = {\n x: (curPoint.x + prePoint.x) / 2,\n y: (curPoint.y + prePoint.y) / 2\n };\n var 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\n return rst;\n} // 当存在整体的圆时,去除圆前面和后面的线,防止出现直线穿过整个圆的情形\n\n\nfunction _filterFullCirleLine(path) {\n each(path, function (subPath, index) {\n var cur = subPath;\n\n if (cur[0].toLowerCase() === 'a') {\n var pre = path[index - 1];\n var next = path[index + 1];\n\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 * @ignore\n * 计算光滑的贝塞尔曲线\n */\n\n\nexport var smoothBezier = function smoothBezier(points, smooth, isLoop, constraint) {\n var _a;\n\n var cps = [];\n var hasConstraint = !!constraint;\n var prevPoint;\n var nextPoint;\n var min;\n var max;\n var nextCp0;\n var cp1;\n var cp0;\n\n if (hasConstraint) {\n _a = __read(constraint, 2), min = _a[0], max = _a[1];\n\n for (var i = 0, l = points.length; i < l; i++) {\n var point = points[i];\n min = vec2.min([0, 0], min, point);\n max = vec2.max([0, 0], max, point);\n }\n }\n\n for (var i = 0, len = points.length; i < len; i++) {\n var point = points[i];\n\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 var v = [0, 0];\n v = vec2.sub(v, nextPoint, prevPoint);\n v = vec2.scale(v, v, smooth);\n var d0 = vec2.distance(point, prevPoint);\n var d1 = vec2.distance(point, nextPoint);\n var sum = d0 + d1;\n\n if (sum !== 0) {\n d0 /= sum;\n d1 /= sum;\n }\n\n var v1 = vec2.scale([0, 0], v, -d0);\n var v2 = vec2.scale([0, 0], v, d1);\n cp1 = vec2.add([0, 0], point, v1);\n nextCp0 = vec2.add([0, 0], point, v2); // 下一个控制点必须在这个点和下一个点之间\n\n nextCp0 = vec2.min([0, 0], nextCp0, vec2.max([0, 0], nextPoint, point));\n nextCp0 = vec2.max([0, 0], nextCp0, vec2.min([0, 0], nextPoint, point)); // 重新计算 cp1 的值\n\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); // 上一个控制点必须要在上一个点和这一个点之间\n\n cp1 = vec2.min([0, 0], cp1, vec2.max([0, 0], prevPoint, point));\n cp1 = vec2.max([0, 0], cp1, vec2.min([0, 0], prevPoint, point)); // 重新计算 nextCp0 的值\n\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);\n\n if (hasConstraint) {\n cp1 = vec2.max([0, 0], cp1, min);\n cp1 = vec2.min([0, 0], cp1, max);\n nextCp0 = vec2.max([0, 0], nextCp0, min);\n nextCp0 = vec2.min([0, 0], nextCp0, max);\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 * @ignore\n * 贝塞尔曲线\n */\n\nexport function catmullRom2bezier(crp, z, constraint) {\n var isLoop = !!z;\n var pointList = [];\n\n for (var i = 0, l = crp.length; i < l; i += 2) {\n pointList.push([crp[i], crp[i + 1]]);\n }\n\n var controlPointList = smoothBezier(pointList, 0.4, isLoop, constraint);\n var len = pointList.length;\n var d1 = [];\n var cp1;\n var cp2;\n var p;\n\n for (var i = 0; i < len - 1; i++) {\n cp1 = controlPointList[i * 2];\n cp2 = controlPointList[i * 2 + 1];\n p = pointList[i + 1];\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 d1.push(['C', cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]]);\n }\n\n return d1;\n}\n/**\n * @ignore\n * 将点连接成路径 path\n */\n\nexport function getLinePath(points, isInCircle) {\n return _points2path(points, isInCircle);\n}\n/**\n * @ignore\n * 根据关键点获取限定了范围的平滑线\n */\n\nexport function getSplinePath(points, isInCircle, constaint) {\n var data = [];\n var first = points[0];\n var prePoint = null;\n\n if (points.length <= 2) {\n // 两点以内直接绘制成路径\n return getLinePath(points, isInCircle);\n }\n\n for (var i = 0, len = points.length; i < len; i++) {\n var point = points[i];\n\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\n var constraint = constaint || [// 范围\n [0, 0], [1, 1]];\n var splinePath = catmullRom2bezier(data, isInCircle, constraint);\n splinePath.unshift(['M', first.x, first.y]);\n return splinePath;\n}\n/**\n * @ignore\n * 将归一化后的路径数据转换成坐标\n */\n\nexport function convertNormalPath(coord, path) {\n var tmp = [];\n each(path, function (subPath) {\n var action = subPath[0];\n\n switch (action.toLowerCase()) {\n case 'm':\n case 'l':\n case 'c':\n tmp.push(_convertArr(subPath, coord));\n break;\n\n case 'a':\n tmp.push(_convertArcPath(subPath, coord));\n break;\n\n case 'z':\n default:\n tmp.push(subPath);\n break;\n }\n });\n return tmp;\n}\n/**\n * @ignore\n * 将路径转换为极坐标下的真实路径\n */\n\nexport function convertPolarPath(coord, path) {\n var tmp = [];\n var pre;\n var cur;\n var transposed;\n var equals;\n each(path, function (subPath, index) {\n var 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\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\n if (equals) {\n tmp = tmp.concat(_convertPolarPath(pre, cur, coord));\n } else {\n // y 不相等,所以直接转换\n tmp.push(_convertArr(subPath, coord));\n }\n\n break;\n\n case 'a':\n tmp.push(_convertArcPath(subPath, coord));\n break;\n\n case 'z':\n default:\n tmp.push(subPath);\n break;\n }\n });\n\n _filterFullCirleLine(tmp); // 过滤多余的直线\n\n\n return tmp;\n}","import { each, isArray } from '@antv/util';\nimport { catmullRom2bezier, getLinePath } from '../../geometry/shape/util/path';\nimport { toPoints } from '../../util/bbox';\nimport { isPolygonsIntersect } from '@antv/path-util';\n\nfunction getMaskBBox(context, tolerance) {\n var event = context.event;\n var maskShape = event.target;\n var maskBBox = maskShape.getCanvasBBox(); // 如果 bbox 过小则不返回\n\n if (!(maskBBox.width >= tolerance || maskBBox.height >= tolerance)) {\n return null;\n }\n\n return maskBBox;\n}\n\nfunction getMaskPath(context, tolerance) {\n var event = context.event;\n var maskShape = event.target;\n var maskBBox = maskShape.getCanvasBBox(); // 如果 bbox 过小则不返回\n\n if (!(maskBBox.width >= tolerance || maskBBox.height >= tolerance)) {\n return null;\n }\n\n return maskShape.attr('path');\n}\n/**\n * 获取当前事件相关的图表元素\n * @param context 交互的上下文\n * @ignore\n */\n\n\nexport function getCurrentElement(context) {\n var event = context.event;\n var element;\n var target = event.target;\n\n if (target) {\n element = target.get('element');\n }\n\n return element;\n}\n/**\n * 获取委托对象\n * @param context 上下文\n * @ignore\n */\n\nexport function getDelegationObject(context) {\n var event = context.event;\n var target = event.target;\n var delegateObject;\n\n if (target) {\n delegateObject = target.get('delegateObject');\n }\n\n return delegateObject;\n}\nexport function isElementChange(context) {\n var event = context.event.gEvent; // 在同一个 element 内部移动,label 和 shape 之间\n\n if (event && event.fromShape && event.toShape && event.fromShape.get('element') === event.toShape.get('element')) {\n return false;\n }\n\n return true;\n}\n/**\n * 是否是列表组件\n * @param delegateObject 委托对象\n * @ignore\n */\n\nexport function isList(delegateObject) {\n return delegateObject && delegateObject.component && delegateObject.component.isList();\n}\n/**\n * 是否是滑块组件\n * @param delegateObject 委托对象\n * @ignore\n */\n\nexport function isSlider(delegateObject) {\n return delegateObject && delegateObject.component && delegateObject.component.isSlider();\n}\n/**\n * 是否由 mask 触发\n * @param context 上下文\n * @ignore\n */\n\nexport function isMask(context) {\n var event = context.event;\n var target = event.target;\n return target && target.get('name') === 'mask';\n}\n/**\n * 获取被遮挡的 elements\n * @param context 上下文\n * @ignore\n */\n\nexport function getMaskedElements(context, tolerance) {\n var target = context.event.target;\n\n if (target.get('type') === 'path') {\n var maskPath = getMaskPath(context, tolerance);\n\n if (!maskPath) {\n return;\n }\n\n return getElementsByPath(context.view, maskPath);\n }\n\n var maskBBox = getMaskBBox(context, tolerance); // 如果 bbox 过小则不返回\n\n if (!maskBBox) {\n return null;\n }\n\n return getIntersectElements(context.view, maskBBox);\n}\n/**\n * @ignore\n */\n\nexport function getSiblingMaskElements(context, sibling, tolerance) {\n var maskBBox = getMaskBBox(context, tolerance); // 如果 bbox 过小则不返回\n\n if (!maskBBox) {\n return null;\n }\n\n var view = context.view;\n var start = getSiblingPoint(view, sibling, {\n x: maskBBox.x,\n y: maskBBox.y\n });\n var end = getSiblingPoint(view, sibling, {\n x: maskBBox.maxX,\n y: maskBBox.maxY\n });\n var 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 * @param view View/Chart\n * @ignore\n */\n\nexport function getElements(view) {\n var geometries = view.geometries;\n var rst = [];\n each(geometries, function (geom) {\n var elements = geom.elements;\n rst = rst.concat(elements);\n });\n\n if (view.views && view.views.length) {\n each(view.views, function (subView) {\n rst = rst.concat(getElements(subView));\n });\n }\n\n return rst;\n}\n/**\n * 获取所有的图表元素\n * @param view View/Chart\n * @param field 字段名\n * @param value 字段值\n * @ignore\n */\n\nexport function getElementsByField(view, field, value) {\n var elements = getElements(view);\n return elements.filter(function (el) {\n return getElementValue(el, field) === value;\n });\n}\n/**\n * 根据状态名获取图表元素\n * @param view View/Chart\n * @param stateName 状态名\n * @ignore\n */\n\nexport function getElementsByState(view, stateName) {\n var geometries = view.geometries;\n var rst = [];\n each(geometries, function (geom) {\n var elements = geom.getElementsBy(function (el) {\n return el.hasState(stateName);\n });\n rst = rst.concat(elements);\n });\n return rst;\n}\n/**\n * 获取图表元素对应字段的值\n * @param element 图表元素\n * @param field 字段名\n * @ignore\n */\n\nexport function getElementValue(element, field) {\n var model = element.getModel();\n var record = model.data;\n var value;\n\n if (isArray(record)) {\n value = record[0][field];\n } else {\n value = record[field];\n }\n\n return value;\n}\n/**\n * 两个包围盒是否相交\n * @param box1 包围盒1\n * @param box2 包围盒2\n * @ignore\n */\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 * @param view View/Chart\n * @param box 包围盒\n * @ignore\n */\n\nexport function getIntersectElements(view, box) {\n var elements = getElements(view);\n var rst = [];\n each(elements, function (el) {\n var shape = el.shape;\n var shapeBBox = shape.getCanvasBBox();\n\n if (intersectRect(box, shapeBBox)) {\n rst.push(el);\n }\n });\n return rst;\n}\n\nfunction pathToPoints(path) {\n var points = [];\n each(path, function (seg) {\n var command = seg[0];\n\n if (command !== 'A') {\n for (var i = 1; i < seg.length; i = i + 2) {\n points.push([seg[i], seg[i + 1]]);\n }\n } else {\n var length_1 = seg.length;\n points.push([seg[length_1 - 2], seg[length_1 - 1]]);\n }\n });\n return points;\n}\n/**\n * 获取包围盒内的图表元素\n * @param view View/Chart\n * @param path 路径\n * @ignore\n */\n\n\nexport function getElementsByPath(view, path) {\n var elements = getElements(view);\n var points = pathToPoints(path);\n var rst = elements.filter(function (el) {\n var shape = el.shape;\n var shapePoints;\n\n if (shape.get('type') === 'path') {\n shapePoints = pathToPoints(shape.attr('path'));\n } else {\n var shapeBBox = shape.getCanvasBBox();\n shapePoints = toPoints(shapeBBox);\n }\n\n return isPolygonsIntersect(points, shapePoints);\n });\n return rst;\n}\n/**\n * 获取当前 View 的所有组件\n * @param view View/Chart\n * @ignore\n */\n\nexport function getComponents(view) {\n return view.getComponents().map(function (co) {\n return co.component;\n });\n}\n/** @ignore */\n\nexport function distance(p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n return Math.sqrt(dx * dx + dy * dy);\n}\n/** @ignore */\n\nexport function getSpline(points, z) {\n if (points.length <= 2) {\n return getLinePath(points, false);\n }\n\n var first = points[0];\n var arr = [];\n each(points, function (point) {\n arr.push(point.x);\n arr.push(point.y);\n });\n var path = catmullRom2bezier(arr, z, null);\n path.unshift(['M', first.x, first.y]);\n return path;\n}\n/**\n * 检测点是否在包围盒内\n * @param box 包围盒\n * @param point 点\n * @ignore\n */\n\nexport function isInBox(box, point) {\n return box.x <= point.x && box.maxX >= point.x && box.y <= point.y && box.maxY > point.y;\n}\n/**\n * 获取同 view 同一级的 views\n * @param view 当前 view\n * @returns 同一级的 views\n * @ignore\n */\n\nexport function getSilbings(view) {\n var parent = view.parent;\n var siblings = null;\n\n if (parent) {\n siblings = parent.views.filter(function (sub) {\n return sub !== view;\n });\n }\n\n return siblings;\n}\n\nfunction point2Normalize(view, point) {\n var 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 */\n\n\nexport function getSiblingPoint(view, sibling, point) {\n var normalPoint = point2Normalize(view, point);\n return sibling.getCoordinate().convert(normalPoint);\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 */\n\nexport function isInRecords(records, record, xFiled, yField) {\n var isIn = false;\n each(records, function (r) {\n if (r[xFiled] === record[xFiled] && r[yField] === record[yField]) {\n isIn = true;\n return false;\n }\n });\n return isIn;\n} // 级联获取 field 对应的 scale,如果 view 上没有,遍历子 view\n\nexport function getScaleByField(view, field) {\n var scale = view.getScaleByField(field);\n\n if (!scale && view.views) {\n each(view.views, function (subView) {\n scale = getScaleByField(subView, field);\n\n if (scale) {\n return false; // 终止循环\n }\n });\n }\n\n return scale;\n}","import { each, get } from '@antv/util';\nimport { getComponents, isInBox } from './action/util';\n/**\n * 交互的上下文\n */\n\nvar Context =\n/** @class */\nfunction () {\n function Context(view) {\n /** 当前所有的 Action */\n this.actions = [];\n /** 当前事件对象 */\n\n this.event = null;\n this.cacheMap = {};\n this.view = view;\n }\n /**\n * 缓存信息\n * @param params 缓存的字段\n * - 如果一个字段则获取缓存\n * - 两个字段则设置缓存\n */\n\n\n Context.prototype.cache = function () {\n var params = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n\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 * 获取 Action\n * @param name Action 的名称\n */\n\n\n Context.prototype.getAction = function (name) {\n return this.actions.find(function (action) {\n return action.name === name;\n });\n };\n /**\n * 获取 Action\n * @param action Action 对象\n */\n\n\n Context.prototype.addAction = function (action) {\n this.actions.push(action);\n };\n /**\n * 移除 Action\n * @param action Action 对象\n */\n\n\n Context.prototype.removeAction = function (action) {\n var actions = this.actions;\n var index = this.actions.indexOf(action);\n\n if (index >= 0) {\n actions.splice(index, 1);\n }\n };\n /**\n * 获取当前的点\n */\n\n\n Context.prototype.getCurrentPoint = function () {\n var event = this.event;\n\n if (event) {\n if (event.target instanceof HTMLElement) {\n var canvas = this.view.getCanvas();\n var 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\n return null;\n };\n /**\n * 获取当前 shape\n * @returns current shape\n */\n\n\n Context.prototype.getCurrentShape = function () {\n return get(this.event, ['gEvent', 'shape']);\n };\n /**\n * 当前的触发是否在 View 内\n */\n\n\n Context.prototype.isInPlot = function () {\n var point = this.getCurrentPoint();\n\n if (point) {\n return this.view.isPointInPlot(point);\n }\n\n return false;\n };\n /**\n * 是否在指定的图形内\n * @param name shape 的 name\n */\n\n\n Context.prototype.isInShape = function (name) {\n var shape = this.getCurrentShape(); // 不再考虑在 shape 的 parent 内的情况\n\n if (shape) {\n return shape.get('name') === name;\n }\n\n return false;\n };\n /**\n * 当前的触发是组件内部\n * @param name 组件名,可以为空\n */\n\n\n Context.prototype.isInComponent = function (name) {\n var components = getComponents(this.view);\n var point = this.getCurrentPoint();\n\n if (point) {\n return !!components.find(function (component) {\n var bbox = component.getBBox();\n\n if (name) {\n return component.get('name') === name && isInBox(bbox, point);\n } else {\n return isInBox(bbox, point);\n }\n });\n }\n\n return false;\n };\n /**\n * 销毁\n */\n\n\n Context.prototype.destroy = function () {\n // 先销毁 action 再清空,一边遍历,一边删除,所以数组需要更新引用\n each(this.actions.slice(), function (action) {\n action.destroy();\n });\n this.view = null;\n this.event = null;\n this.actions = null;\n this.cacheMap = null;\n };\n\n return Context;\n}();\n\nexport default Context;","/**\n * 交互的基类。\n */\nvar Interaction =\n/** @class */\nfunction () {\n function Interaction(view, cfg) {\n this.view = view;\n this.cfg = cfg;\n }\n /**\n * 初始化。\n */\n\n\n Interaction.prototype.init = function () {\n this.initEvents();\n };\n /**\n * 绑定事件\n */\n\n\n Interaction.prototype.initEvents = function () {};\n /**\n * 销毁事件\n */\n\n\n Interaction.prototype.clearEvents = function () {};\n /**\n * 销毁。\n */\n\n\n Interaction.prototype.destroy = function () {\n this.clearEvents();\n };\n\n return Interaction;\n}();\n\nexport default Interaction;","import { __extends } from \"tslib\";\nimport { each, isArray, isFunction, isString, debounce, throttle } from '@antv/util';\nimport { createAction, createCallbackAction } from './action/register';\nimport InteractionContext from './context';\nimport Interaction from './interaction'; // 将字符串转换成 action\n\nexport function parseAction(actionStr, context, arg) {\n var arr = actionStr.split(':');\n var actionName = arr[0]; // 如果已经初始化过 action ,则直接引用之前的 action\n\n var action = context.getAction(actionName) || createAction(actionName, context);\n\n if (!action) {\n throw new Error(\"There is no action named \".concat(actionName));\n }\n\n var methodName = arr[1];\n return {\n action: action,\n methodName: methodName,\n arg: arg\n };\n} // 执行 Action\n\nfunction executeAction(actionObject) {\n var action = actionObject.action,\n methodName = actionObject.methodName,\n arg = actionObject.arg;\n\n if (action[methodName]) {\n action[methodName](arg);\n } else {\n throw new Error(\"Action(\".concat(action.name, \") doesn't have a method called \").concat(methodName));\n }\n}\n\nvar STEP_NAMES = {\n START: 'start',\n SHOW_ENABLE: 'showEnable',\n END: 'end',\n ROLLBACK: 'rollback',\n PROCESSING: 'processing'\n};\n/**\n * 支持语法的交互类\n */\n\nvar GrammarInteraction =\n/** @class */\nfunction (_super) {\n __extends(GrammarInteraction, _super);\n\n function GrammarInteraction(view, steps) {\n var _this = _super.call(this, view, steps) || this;\n\n _this.callbackCaches = {}; // 某个触发和反馈在本环节是否执行或\n\n _this.emitCaches = {};\n _this.steps = steps;\n return _this;\n }\n /**\n * 初始化\n */\n\n\n GrammarInteraction.prototype.init = function () {\n this.initContext();\n\n _super.prototype.init.call(this);\n };\n /**\n * 清理资源\n */\n\n\n GrammarInteraction.prototype.destroy = function () {\n _super.prototype.destroy.call(this); // 先清理事件\n\n\n this.steps = null;\n\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\n GrammarInteraction.prototype.initEvents = function () {\n var _this = this;\n\n each(this.steps, function (stepArr, stepName) {\n each(stepArr, function (step) {\n var callback = _this.getActionCallback(stepName, step);\n\n if (callback) {\n // 如果存在 callback,才绑定,有时候会出现无 callback 的情况\n _this.bindEvent(step.trigger, callback);\n }\n });\n });\n };\n /**\n * 清理绑定的事件\n */\n\n\n GrammarInteraction.prototype.clearEvents = function () {\n var _this = this;\n\n each(this.steps, function (stepArr, stepName) {\n each(stepArr, function (step) {\n var callback = _this.getActionCallback(stepName, step);\n\n if (callback) {\n _this.offEvent(step.trigger, callback);\n }\n });\n });\n }; // 初始化上下文,并初始化 action\n\n\n GrammarInteraction.prototype.initContext = function () {\n var view = this.view;\n var context = new InteractionContext(view);\n this.context = context;\n var steps = this.steps; // 生成具体的 Action\n\n each(steps, function (subSteps) {\n each(subSteps, function (step) {\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 var actionArr = step.action;\n var argArr_1 = isArray(step.arg) ? step.arg : [step.arg];\n step.actionObject = [];\n each(actionArr, function (actionStr, idx) {\n step.actionObject.push(parseAction(actionStr, context, argArr_1[idx]));\n });\n } // 如果 action 既不是字符串,也不是函数,则不会生成 actionObject\n\n });\n });\n }; // 是否允许指定阶段名称执行\n\n\n GrammarInteraction.prototype.isAllowStep = function (stepName) {\n var currentStepName = this.currentStepName;\n var 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\n return false;\n }; // 具体的指定阶段是否允许执行\n\n\n GrammarInteraction.prototype.isAllowExecute = function (stepName, step) {\n if (this.isAllowStep(stepName)) {\n var key = this.getKey(stepName, step); // 如果是在本环节内仅允许触发一次,同时已经触发过,则不允许再触发\n\n if (step.once && this.emitCaches[key]) {\n return false;\n } // 如果是允许的阶段,则验证 isEnable 方法\n\n\n if (step.isEnable) {\n return step.isEnable(this.context);\n }\n\n return true; // 如果没有 isEnable 则允许执行\n }\n\n return false;\n };\n\n GrammarInteraction.prototype.enterStep = function (stepName) {\n this.currentStepName = stepName;\n this.emitCaches = {}; // 清除所有本环节触发的缓存\n }; // 执行完某个触发和反馈(子环节)\n\n\n GrammarInteraction.prototype.afterExecute = function (stepName, step) {\n // show enable 不计入正常的流程,其他情况则设置当前的 step\n if (stepName !== STEP_NAMES.SHOW_ENABLE && this.currentStepName !== stepName) {\n this.enterStep(stepName);\n }\n\n var key = this.getKey(stepName, step); // 一旦执行,则缓存标记为,一直保持到跳出改环节\n\n this.emitCaches[key] = true;\n }; // 获取某个环节的唯一的键值\n\n\n GrammarInteraction.prototype.getKey = function (stepName, step) {\n return stepName + step.trigger + step.action;\n }; // 获取 step 的回调函数,如果已经生成,则直接返回,如果未生成,则创建\n\n\n GrammarInteraction.prototype.getActionCallback = function (stepName, step) {\n var _this = this;\n\n var context = this.context;\n var callbackCaches = this.callbackCaches;\n var actionObject = step.actionObject;\n\n if (step.action && actionObject) {\n var key = this.getKey(stepName, step);\n\n if (!callbackCaches[key]) {\n // 动态生成执行的方法,执行对应 action 的名称\n var actionCallback = function actionCallback(event) {\n context.event = event; // 保证检测时的 event\n\n if (_this.isAllowExecute(stepName, step)) {\n // 如果是数组时,则依次执行\n if (isArray(actionObject)) {\n each(actionObject, function (obj) {\n context.event = event; // 可能触发新的事件,保证执行前的 context.event 是正确的\n\n executeAction(obj);\n });\n } else {\n context.event = event; // 保证执行前的 context.event 是正确的\n\n executeAction(actionObject);\n }\n\n _this.afterExecute(stepName, step);\n\n if (step.callback) {\n context.event = event; // 保证执行前的 context.event 是正确的\n\n step.callback(context);\n }\n } else {\n // 如果未通过验证,则事件不要绑定在上面\n context.event = null;\n }\n }; // 如果设置了 debounce\n\n\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\n return callbackCaches[key];\n }\n\n return null;\n };\n\n GrammarInteraction.prototype.bindEvent = function (eventName, callback) {\n var nameArr = eventName.split(':');\n\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 GrammarInteraction.prototype.offEvent = function (eventName, callback) {\n var nameArr = eventName.split(':');\n\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 return GrammarInteraction;\n}(Interaction);\n\nexport default GrammarInteraction;","import { clone, isPlainObject, lowerCase, mix } from '@antv/util';\nimport GrammarInteraction from './grammar-interaction';\nvar Interactions = {};\n/**\n * 根据交互行为名字获取对应的交互类\n * @param name 交互名字\n * @returns 交互类\n */\n\nexport function getInteraction(name) {\n return Interactions[lowerCase(name)];\n}\n/**\n * 注册交互行为\n * @param name 交互行为名字\n * @param interaction 交互类\n */\n\nexport function registerInteraction(name, interaction) {\n Interactions[lowerCase(name)] = interaction;\n}\n/**\n * 创建交互实例\n * @param name 交互名\n * @param view 交互应用的 View 实例\n * @param cfg 交互行为配置\n */\n\nexport function createInteraction(name, view, cfg) {\n var interaciton = getInteraction(name);\n\n if (!interaciton) {\n return null;\n }\n\n if (isPlainObject(interaciton)) {\n // 如果不 clone 则会多个 interaction 实例共享 step 的定义\n var steps = mix(clone(interaciton), cfg);\n return new GrammarInteraction(view, steps);\n } else {\n var cls = interaciton;\n return new cls(view, cfg);\n }\n}\nexport { default as Interaction } from './interaction';\nexport { Action, registerAction, getActionClass } from './action';","import { __assign } from \"tslib\";\nimport { TOOLTIP_CSS_CONST } from '@antv/component';\nimport { ext } from '@antv/matrix-util';\nimport { deepMix } from '@antv/util';\nimport { getAngle } from '../../util/graphics';\n/**\n * 根据样式表创建 axis 组件主题样式\n * @param styleSheet\n */\n\nfunction createAxisStyles(styleSheet) {\n return {\n title: {\n autoRotate: true,\n position: 'center',\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: {\n type: 'equidistance',\n cfg: {\n minGap: 6\n }\n },\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 * @param styleSheet\n */\n// export function\n\n/**\n * 根据样式表创建 legend 组件主题样式\n * @param styleSheet\n */\n\n\nfunction createLegendStyles(styleSheet) {\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,\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 */\n\n\nexport function createThemeByStyleSheet(styleSheet) {\n var _a;\n\n var 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 var axisStyles = createAxisStyles(styleSheet);\n var legendStyles = createLegendStyles(styleSheet);\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\n /** 一般柱状图宽度占比,geometry中已添加默认值,为了geometry配置生效默认值为null */\n columnWidthRatio: 1 / 2,\n\n /** 柱状图最大宽度 */\n maxColumnWidth: null,\n\n /** 柱状图最小宽度 */\n minColumnWidth: null,\n\n /** 玫瑰图占比 */\n roseWidthRatio: 0.9999999,\n\n /** 多层饼图/环图占比 */\n multiplePieWidthRatio: 1 / 1.3,\n colors10: styleSheet.paletteQualitative10,\n colors20: styleSheet.paletteQualitative20,\n sequenceColors: styleSheet.paletteSequence,\n shapes: {\n point: ['hollow-circle', 'hollow-square', 'hollow-bowtie', 'hollow-diamond', 'hollow-hexagon', 'hollow-triangle', 'hollow-triangle-down', 'circle', 'square', 'bowtie', 'diamond', 'hexagon', 'triangle', 'triangle-down', 'cross', 'tick', 'plus', 'hyphen', 'line'],\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: function style(element) {\n var coordinate = element.geometry.coordinate;\n\n if (coordinate.isPolar && coordinate.isTransposed) {\n var _a = getAngle(element.getModel(), coordinate),\n startAngle = _a.startAngle,\n endAngle = _a.endAngle;\n\n var middleAngle = (startAngle + endAngle) / 2;\n var r = 7.5;\n var x = r * Math.cos(middleAngle);\n var y = r * Math.sin(middleAngle);\n return {\n matrix: ext.transform(null, [['t', x, y]])\n };\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: __assign(__assign({}, shapeStyles.line[\"default\"]), {\n lineCap: null,\n lineDash: [1, 1]\n })\n },\n active: {\n style: __assign(__assign({}, shapeStyles.line.active), {\n lineCap: null,\n lineDash: [1, 1]\n })\n },\n inactive: {\n style: __assign(__assign({}, shapeStyles.line.inactive), {\n lineCap: null,\n lineDash: [1, 1]\n })\n },\n selected: {\n style: __assign(__assign({}, shapeStyles.line.selected), {\n lineCap: null,\n lineDash: [1, 1]\n })\n }\n },\n dash: {\n \"default\": {\n style: __assign(__assign({}, shapeStyles.line[\"default\"]), {\n lineCap: null,\n lineDash: [5.5, 1]\n })\n },\n active: {\n style: __assign(__assign({}, shapeStyles.line.active), {\n lineCap: null,\n lineDash: [5.5, 1]\n })\n },\n inactive: {\n style: __assign(__assign({}, shapeStyles.line.inactive), {\n lineCap: null,\n lineDash: [5.5, 1]\n })\n },\n selected: {\n style: __assign(__assign({}, 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, {\n line: {\n type: 'line'\n }\n })\n },\n radius: {\n title: null,\n grid: deepMix({}, axisStyles.grid, {\n line: {\n type: 'circle'\n }\n })\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,\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: (_a = {}, _a[\"\".concat(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: \"\".concat(styleSheet.tooltipContainerBorderRadius, \"px\"),\n color: styleSheet.tooltipTextFillColor,\n fontSize: \"\".concat(styleSheet.tooltipTextFontSize, \"px\"),\n fontFamily: styleSheet.fontFamily,\n lineHeight: \"\".concat(styleSheet.tooltipTextLineHeight, \"px\"),\n padding: '0 12px 0 12px'\n }, _a[\"\".concat(TOOLTIP_CSS_CONST.TITLE_CLASS)] = {\n marginBottom: '12px',\n marginTop: '12px'\n }, _a[\"\".concat(TOOLTIP_CSS_CONST.LIST_CLASS)] = {\n margin: 0,\n listStyleType: 'none',\n padding: 0\n }, _a[\"\".concat(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 }, _a[\"\".concat(TOOLTIP_CSS_CONST.MARKER_CLASS)] = {\n width: '8px',\n height: '8px',\n borderRadius: '50%',\n display: 'inline-block',\n marginRight: '8px'\n }, _a[\"\".concat(TOOLTIP_CSS_CONST.VALUE_CLASS)] = {\n display: 'inline-block',\n \"float\": 'right',\n marginLeft: '30px'\n }, _a)\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}","import { __assign } from \"tslib\";\nvar 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};\nvar 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};\nvar QUALITATIVE_10 = ['#5B8FF9', '#5AD8A6', '#5D7092', '#F6BD16', '#6F5EF9', '#6DC8EC', '#945FB9', '#FF9845', '#1E9493', '#FF99C3'];\nvar QUALITATIVE_20 = ['#5B8FF9', '#CDDDFD', '#5AD8A6', '#CDF3E4', '#5D7092', '#CED4DE', '#F6BD16', '#FCEBB9', '#6F5EF9', '#D3CEFD', '#6DC8EC', '#D3EEF9', '#945FB9', '#DECFEA', '#FF9845', '#FFE0C7', '#1E9493', '#BBDEDE', '#FF99C3', '#FFE0ED'];\n/** 单色顺序色板 */\n\nvar SINGLE_SEQUENCE = ['#B8E1FF', '#9AC5FF', '#7DAAFF', '#5B8FF9', '#3D76DD', '#085EC0', '#0047A5', '#00318A', '#001D70'];\nexport var createLightStyleSheet = function createLightStyleSheet(cfg) {\n if (cfg === void 0) {\n cfg = {};\n }\n\n var _a = cfg.paletteQualitative10,\n paletteQualitative10 = _a === void 0 ? QUALITATIVE_10 : _a,\n _b = cfg.paletteQualitative20,\n paletteQualitative20 = _b === void 0 ? QUALITATIVE_20 : _b;\n var _c = cfg.brandColor,\n brandColor = _c === void 0 ? paletteQualitative10[0] : _c;\n var token = {\n /** 图表背景色 */\n backgroundColor: 'transparent',\n\n /** 主题色 */\n brandColor: brandColor,\n\n /** 图表辅助色 */\n subColor: 'rgba(0,0,0,0.05)',\n\n /** 分类色板 1,在数据量小于等于 10 时使用 */\n paletteQualitative10: paletteQualitative10,\n\n /** 分类色板 2,在数据量大于 10 时使用 */\n paletteQualitative20: paletteQualitative20,\n\n /** 语义色 */\n paletteSemanticRed: '#F4664A',\n\n /** 语义色 */\n paletteSemanticGreen: '#30BF78',\n\n /** 语义色 */\n paletteSemanticYellow: '#FAAD14',\n\n /** (单色)顺序色板 */\n paletteSequence: SINGLE_SEQUENCE,\n\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 /** 坐标轴线粗细 */\n axisLineBorder: 1,\n\n /** 坐标轴线 lineDash 设置 */\n axisLineDash: null,\n\n /** 坐标轴标题颜色 */\n axisTitleTextFillColor: BLACK_COLORS[65],\n\n /** 坐标轴标题文本字体大小 */\n axisTitleTextFontSize: 12,\n\n /** 坐标轴标题文本行高 */\n axisTitleTextLineHeight: 12,\n\n /** 坐标轴标题文本字体粗细 */\n axisTitleTextFontWeight: 'normal',\n\n /** 坐标轴标题距离坐标轴文本的间距 */\n axisTitleSpacing: 12,\n\n /** 坐标轴标题详细说明icon颜色 */\n axisDescriptionIconFillColor: WHITE_COLORS[85],\n\n /** 坐标轴刻度线颜色 */\n axisTickLineBorderColor: BLACK_COLORS[25],\n\n /** 坐标轴刻度线长度 */\n axisTickLineLength: 4,\n\n /** 坐标轴刻度线粗细 */\n axisTickLineBorder: 1,\n\n /** 坐标轴次刻度线颜色 */\n axisSubTickLineBorderColor: BLACK_COLORS[15],\n\n /** 坐标轴次刻度线长度 */\n axisSubTickLineLength: 2,\n\n /** 坐标轴次刻度线粗细 */\n axisSubTickLineBorder: 1,\n\n /** 坐标轴刻度文本颜色 */\n axisLabelFillColor: BLACK_COLORS[45],\n\n /** 坐标轴刻度文本字体大小 */\n axisLabelFontSize: 12,\n\n /** 坐标轴刻度文本行高 */\n axisLabelLineHeight: 12,\n\n /** 坐标轴刻度文本字体粗细 */\n axisLabelFontWeight: 'normal',\n\n /** 坐标轴刻度文本距离坐标轴线的间距 */\n axisLabelOffset: 8,\n\n /** 坐标轴网格线颜色 */\n axisGridBorderColor: BLACK_COLORS[15],\n\n /** 坐标轴网格线粗细 */\n axisGridBorder: 1,\n\n /** 坐标轴网格线虚线设置 */\n axisGridLineDash: null,\n // -------------------- 图例 --------------------\n\n /** 图例标题颜色 */\n legendTitleTextFillColor: BLACK_COLORS[45],\n\n /** 图例标题文本字体大小 */\n legendTitleTextFontSize: 12,\n\n /** 图例标题文本行高 */\n legendTitleTextLineHeight: 21,\n\n /** 图例标题文本字体粗细 */\n legendTitleTextFontWeight: 'normal',\n\n /** 图例 marker 颜色 */\n legendMarkerColor: brandColor,\n\n /** 图例 marker 距离图例文本的间距 */\n legendMarkerSpacing: 8,\n\n /** 图例 marker 默认半径大小 */\n legendMarkerSize: 4,\n\n /** 图例 'circle' marker 半径 */\n legendCircleMarkerSize: 4,\n\n /** 图例 'square' marker 半径 */\n legendSquareMarkerSize: 4,\n\n /** 图例 'line' marker 半径 */\n legendLineMarkerSize: 5,\n\n /** 图例项文本颜色 */\n legendItemNameFillColor: BLACK_COLORS[65],\n\n /** 图例项文本字体大小 */\n legendItemNameFontSize: 12,\n\n /** 图例项文本行高 */\n legendItemNameLineHeight: 12,\n\n /** 图例项粗细 */\n legendItemNameFontWeight: 'normal',\n\n /** 图例项之间的水平间距 */\n legendItemSpacing: 24,\n\n /** 图例项垂直方向的间隔 */\n legendItemMarginBottom: 12,\n\n /** 图例与图表绘图区域的偏移距离 */\n legendPadding: [8, 8, 8, 8],\n\n /** 水平布局的图例与绘图区域偏移距离 */\n legendHorizontalPadding: [8, 0, 8, 0],\n\n /** 垂直布局的图例与绘图区域偏移距离 */\n legendVerticalPadding: [0, 8, 0, 8],\n // 图例分页器\n\n /** 图例分页器 marker 大小 */\n legendPageNavigatorMarkerSize: 12,\n\n /** 图例分页器 marker 非激活状态填充色 */\n legendPageNavigatorMarkerInactiveFillColor: BLACK_COLORS[100],\n\n /** 图例分页器 marker 非激活状态填充色透明度 */\n legendPageNavigatorMarkerInactiveFillOpacity: 0.45,\n\n /** 图例分页器 marker 填充色 */\n legendPageNavigatorMarkerFillColor: BLACK_COLORS[100],\n\n /** 图例分页器 marker 填充色透明度 */\n legendPageNavigatorMarkerFillOpacity: 1,\n\n /** 图例分页器文本颜色 */\n legendPageNavigatorTextFillColor: BLACK_COLORS[45],\n\n /** 图例分页器文本字体大小 */\n legendPageNavigatorTextFontSize: 12,\n\n /** 连续图例滑块填充色 */\n sliderRailFillColor: BLACK_COLORS[15],\n\n /** 连续图例滑块边框粗细 */\n sliderRailBorder: 0,\n\n /** 连续图例滑块边框颜色 */\n sliderRailBorderColor: null,\n\n /** 连续图例滑块宽度 */\n sliderRailWidth: 100,\n\n /** 连续图例滑块高度 */\n sliderRailHeight: 12,\n\n /** 连续图例文本颜色 */\n sliderLabelTextFillColor: BLACK_COLORS[45],\n\n /** 连续图例文本字体大小 */\n sliderLabelTextFontSize: 12,\n\n /** 连续图例文本行高 */\n sliderLabelTextLineHeight: 12,\n\n /** 连续图例文本字体粗细 */\n sliderLabelTextFontWeight: 'normal',\n\n /** 连续图例滑块颜色 */\n sliderHandlerFillColor: BLACK_COLORS[6],\n\n /** 连续图例滑块宽度 */\n sliderHandlerWidth: 10,\n\n /** 连续图例滑块高度 */\n sliderHandlerHeight: 14,\n\n /** 连续图例滑块边框粗细 */\n sliderHandlerBorder: 1,\n\n /** 连续图例滑块边框颜色 */\n sliderHandlerBorderColor: BLACK_COLORS[25],\n // -------------------- Annotation,图形标注 --------------------\n\n /** arc 图形标注描边颜色 */\n annotationArcBorderColor: BLACK_COLORS[15],\n\n /** arc 图形标注粗细 */\n annotationArcBorder: 1,\n\n /** line 图形标注颜色 */\n annotationLineBorderColor: BLACK_COLORS[25],\n\n /** line 图形标注粗细 */\n annotationLineBorder: 1,\n\n /** lube 图形标注的虚线间隔 */\n annotationLineDash: null,\n\n /** text 图形标注文本颜色 */\n annotationTextFillColor: BLACK_COLORS[65],\n\n /** text 图形标注文本字体大小 */\n annotationTextFontSize: 12,\n\n /** text 图形标注文本行高 */\n annotationTextLineHeight: 12,\n\n /** text 图形标注文本字体粗细 */\n annotationTextFontWeight: 'normal',\n\n /** text 图形标注文本边框颜色 */\n annotationTextBorderColor: null,\n\n /** text 图形标注文本边框粗细 */\n annotationTextBorder: 0,\n\n /** region 图形标注填充颜色 */\n annotationRegionFillColor: BLACK_COLORS[100],\n\n /** region 图形标注填充颜色透明色 */\n annotationRegionFillOpacity: 0.06,\n\n /** region 图形标注描边粗细 */\n annotationRegionBorder: 0,\n\n /** region 图形标注描边颜色 */\n annotationRegionBorderColor: null,\n\n /** dataMarker 图形标注线的长度 */\n annotationDataMarkerLineLength: 16,\n // -------------------- Tooltip --------------------\n\n /** tooltip crosshairs 辅助线颜色 */\n tooltipCrosshairsBorderColor: BLACK_COLORS[25],\n\n /** tooltip crosshairs 辅助线粗细 */\n tooltipCrosshairsBorder: 1,\n\n /** tooltip crosshairs 辅助线虚线间隔 */\n tooltipCrosshairsLineDash: null,\n\n /** tooltip 内容框背景色 */\n tooltipContainerFillColor: 'rgb(255, 255, 255)',\n tooltipContainerFillOpacity: 0.95,\n\n /** tooltip 内容框阴影 */\n tooltipContainerShadow: '0px 0px 10px #aeaeae',\n\n /** tooltip 内容框圆角 */\n tooltipContainerBorderRadius: 3,\n\n /** tooltip 文本颜色 */\n tooltipTextFillColor: BLACK_COLORS[65],\n\n /** tooltip 文本字体大小 */\n tooltipTextFontSize: 12,\n\n /** tooltip 文本行高 */\n tooltipTextLineHeight: 12,\n\n /** tooltip 文本字体粗细 */\n tooltipTextFontWeight: 'bold',\n // -------------------- Geometry labels --------------------\n\n /** Geometry label 文本颜色 */\n labelFillColor: BLACK_COLORS[65],\n labelFillColorDark: '#2c3542',\n labelFillColorLight: '#ffffff',\n\n /** Geometry label 文本字体大小 */\n labelFontSize: 12,\n\n /** Geometry label 文本行高 */\n labelLineHeight: 12,\n\n /** Geometry label 文本字体粗细 */\n labelFontWeight: 'normal',\n\n /** Geometry label 文本描边颜色 */\n labelBorderColor: null,\n\n /** Geometry label 文本描边粗细 */\n labelBorder: 0,\n\n /** Geometry innerLabel 文本颜色 */\n innerLabelFillColor: WHITE_COLORS[100],\n\n /** Geometry innerLabel 文本字体大小 */\n innerLabelFontSize: 12,\n\n /** Geometry innerLabel 文本行高 */\n innerLabelLineHeight: 12,\n\n /** Geometry innerLabel 文本字体粗细 */\n innerLabelFontWeight: 'normal',\n\n /** Geometry innerLabel 文本描边颜色 */\n innerLabelBorderColor: null,\n\n /** Geometry innerLabel 文本描边粗细 */\n innerLabelBorder: 0,\n\n /** Geometry overflowLabel 文本颜色 */\n overflowLabelFillColor: BLACK_COLORS[65],\n\n /** Geometry overflowLabel 文本字体大小 */\n overflowLabelFontSize: 12,\n\n /** Geometry overflowLabel 文本行高 */\n overflowLabelLineHeight: 12,\n\n /** Geometry overflowLabel 文本字体粗细 */\n overflowLabelFontWeight: 'normal',\n\n /** Geometry overflowLabel 文本描边颜色 */\n overflowLabelBorderColor: WHITE_COLORS[100],\n\n /** Geometry overflowLabel 文本描边粗细 */\n overflowLabelBorder: 1,\n\n /** Geometry label 文本连接线粗细 */\n labelLineBorder: 1,\n\n /** Geometry label 文本连接线颜色 */\n labelLineBorderColor: BLACK_COLORS[25],\n // -------------------- Slider 组件样式--------------------\n\n /** slider 滑道高度 */\n cSliderRailHieght: 16,\n\n /** slider 滑道背景色 */\n cSliderBackgroundFillColor: '#416180',\n\n /** slider 滑道背景色透明度 */\n cSliderBackgroundFillOpacity: 0.05,\n\n /** slider 滑道前景色 */\n cSliderForegroundFillColor: '#5B8FF9',\n\n /** slider 滑道前景色透明度 */\n cSliderForegroundFillOpacity: 0.15,\n // slider handlerStyle 手柄样式\n\n /** slider 手柄高度 */\n cSliderHandlerHeight: 24,\n\n /** Slider 手柄宽度 */\n cSliderHandlerWidth: 10,\n\n /** Slider 手柄背景色 */\n cSliderHandlerFillColor: '#F7F7F7',\n\n /** Slider 手柄背景色透明度 */\n cSliderHandlerFillOpacity: 1,\n\n /** Slider 手柄高亮背景色 */\n cSliderHandlerHighlightFillColor: '#FFF',\n\n /** Slider 手柄边框色 */\n cSliderHandlerBorderColor: '#BFBFBF',\n\n /** Slider 手柄边框粗细 */\n cSliderHandlerBorder: 1,\n\n /** Slider 手柄边框圆角 */\n cSliderHandlerBorderRadius: 2,\n // slider textStyle 字体标签样式\n\n /** Slider 字体标签颜色 */\n cSliderTextFillColor: '#000',\n\n /** Slider 字体标签透明度 */\n cSliderTextFillOpacity: 0.45,\n\n /** Slider 字体标签大小 */\n cSliderTextFontSize: 12,\n\n /** Slider 字体标签行高 */\n cSliderTextLineHeight: 12,\n\n /** Slider 字体标签字重 */\n cSliderTextFontWeight: 'normal',\n\n /** Slider 字体标签描边色 */\n cSliderTextBorderColor: null,\n\n /** Slider 字体标签描边粗细 */\n cSliderTextBorder: 0,\n // -------------------- Scrollbar 组件样式--------------------\n\n /** 滚动条 滚道填充色 */\n scrollbarTrackFillColor: 'rgba(0,0,0,0)',\n\n /** 滚动条 滑块填充色 */\n scrollbarThumbFillColor: 'rgba(0,0,0,0.15)',\n\n /** 滚动条 滑块高亮填充色 */\n scrollbarThumbHighlightFillColor: 'rgba(0,0,0,0.2)',\n // -------------------- Geometry 图形样式--------------------\n\n /** 点图填充颜色 */\n pointFillColor: brandColor,\n\n /** 点图填充颜色透明度 */\n pointFillOpacity: 0.95,\n\n /** 点图大小 */\n pointSize: 4,\n\n /** 点图描边粗细 */\n pointBorder: 1,\n\n /** 点图描边颜色 */\n pointBorderColor: WHITE_COLORS[100],\n\n /** 点图描边透明度 */\n pointBorderOpacity: 1,\n\n /** 点图 active 状态下描边颜色 */\n pointActiveBorderColor: BLACK_COLORS[100],\n\n /** 点图 selected 状态下描边粗细 */\n pointSelectedBorder: 2,\n\n /** 点图 selected 状态下描边颜色 */\n pointSelectedBorderColor: BLACK_COLORS[100],\n\n /** 点图 inactive 状态下填充颜色透明度 */\n pointInactiveFillOpacity: 0.3,\n\n /** 点图 inactive 状态下描边透明度 */\n pointInactiveBorderOpacity: 0.3,\n\n /** 空心点图大小 */\n hollowPointSize: 4,\n\n /** 空心点图描边粗细 */\n hollowPointBorder: 1,\n\n /** 空心点图描边颜色 */\n hollowPointBorderColor: brandColor,\n\n /** 空心点图描边透明度 */\n hollowPointBorderOpacity: 0.95,\n hollowPointFillColor: WHITE_COLORS[100],\n\n /** 空心点图 active 状态下描边粗细 */\n hollowPointActiveBorder: 1,\n\n /** 空心点图 active 状态下描边颜色 */\n hollowPointActiveBorderColor: BLACK_COLORS[100],\n\n /** 空心点图 active 状态下描边透明度 */\n hollowPointActiveBorderOpacity: 1,\n\n /** 空心点图 selected 状态下描边粗细 */\n hollowPointSelectedBorder: 2,\n\n /** 空心点图 selected 状态下描边颜色 */\n hollowPointSelectedBorderColor: BLACK_COLORS[100],\n\n /** 空心点图 selected 状态下描边透明度 */\n hollowPointSelectedBorderOpacity: 1,\n\n /** 空心点图 inactive 状态下描边透明度 */\n hollowPointInactiveBorderOpacity: 0.3,\n\n /** 线图粗细 */\n lineBorder: 2,\n\n /** 线图颜色 */\n lineBorderColor: brandColor,\n\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\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\n /** hollowArea 边框粗细 */\n hollowAreaBorder: 2,\n\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\n /** interval 填充透明度 */\n intervalFillOpacity: 0.95,\n\n /** interval active 状态下边框粗细 */\n intervalActiveBorder: 1,\n\n /** interval active 状态下边框颜色 */\n intervalActiveBorderColor: BLACK_COLORS[100],\n intervalActiveBorderOpacity: 1,\n\n /** interval selected 状态下边框粗细 */\n intervalSelectedBorder: 2,\n\n /** interval selected 状态下边框颜色 */\n intervalSelectedBorderColor: BLACK_COLORS[100],\n\n /** interval selected 状态下边框透明度 */\n intervalSelectedBorderOpacity: 1,\n\n /** interval inactive 状态下边框透明度 */\n intervalInactiveBorderOpacity: 0.3,\n\n /** interval inactive 状态下填充透明度 */\n intervalInactiveFillOpacity: 0.3,\n\n /** interval 边框粗细 */\n hollowIntervalBorder: 2,\n\n /** hollowInterval 边框颜色 */\n hollowIntervalBorderColor: brandColor,\n\n /** hollowInterval 边框透明度 */\n hollowIntervalBorderOpacity: 1,\n hollowIntervalFillColor: WHITE_COLORS[100],\n\n /** hollowInterval active 状态下边框粗细 */\n hollowIntervalActiveBorder: 2,\n\n /** hollowInterval active 状态下边框颜色 */\n hollowIntervalActiveBorderColor: BLACK_COLORS[100],\n\n /** hollowInterval selected 状态下边框粗细 */\n hollowIntervalSelectedBorder: 3,\n\n /** hollowInterval selected 状态下边框颜色 */\n hollowIntervalSelectedBorderColor: BLACK_COLORS[100],\n\n /** hollowInterval selected 状态下边框透明度 */\n hollowIntervalSelectedBorderOpacity: 1,\n\n /** hollowInterval inactive 状态下边框透明度 */\n hollowIntervalInactiveBorderOpacity: 0.3\n };\n return __assign(__assign({}, token), cfg);\n};\nexport var antvLight = createLightStyleSheet();","import { __rest } from \"tslib\";\nimport { deepMix } from '@antv/util';\nimport { createThemeByStyleSheet } from './create-by-style-sheet';\nimport { createLightStyleSheet } from '../style-sheet/light';\nexport function createTheme(themeCfg) {\n var _a = themeCfg.styleSheet,\n styleSheetCfg = _a === void 0 ? {} : _a,\n themeObject = __rest(themeCfg, [\"styleSheet\"]); // ① 创建样式表 (默认创建 light 的样式表)\n\n\n var styleSheet = createLightStyleSheet(styleSheetCfg); // ② 创建主题\n\n return deepMix({}, createThemeByStyleSheet(styleSheet), themeObject);\n}","import { get, lowerCase } from '@antv/util';\nimport { createTheme } from './util';\nvar defaultTheme = createTheme({}); // 所有已经存在的主题\n\nvar Themes = {\n \"default\": defaultTheme\n};\n/**\n * 获取主题配置信息。\n * @param theme 主题名\n */\n\nexport function getTheme(theme) {\n return get(Themes, lowerCase(theme), Themes[\"default\"]);\n}\n/**\n * 注册新的主题配置信息。\n * @param theme 主题名。\n * @param value 具体的主题配置。\n */\n\nexport function registerTheme(theme, value) {\n Themes[lowerCase(theme)] = createTheme(value);\n}","import { __assign, __read, __spreadArray, __values } from \"tslib\";\nimport { contains, filter, find, isArray, isEmpty, isFunction, isNil, isNumberEqual, isObject, memoize, get, values } from '@antv/util';\nimport { FIELD_ORIGIN, GROUP_ATTRS } from '../constant';\nimport { getName, inferScaleType } from './scale';\n\nfunction snapEqual(v1, v2, scale) {\n var value1 = scale.translate(v1);\n var value2 = scale.translate(v2);\n return isNumberEqual(value1, value2);\n}\n\nfunction getXValueByPoint(point, geometry) {\n var coordinate = geometry.coordinate;\n var xScale = geometry.getXScale();\n var range = xScale.range;\n var rangeMax = range[range.length - 1];\n var rangeMin = range[0];\n var invertPoint = coordinate.invert(point);\n var xValue = invertPoint.x;\n\n if (coordinate.isPolar && xValue > (1 + rangeMax) / 2) {\n xValue = rangeMin; // 极坐标下,scale 的 range 被做过特殊处理\n }\n\n return xScale.translate(xScale.invert(xValue));\n}\n\nfunction filterYValue(data, point, geometry) {\n var coordinate = geometry.coordinate;\n var yScale = geometry.getYScale();\n var yField = yScale.field;\n var invertPoint = coordinate.invert(point);\n var yValue = yScale.invert(invertPoint.y);\n var result = find(data, function (obj) {\n var originData = obj[FIELD_ORIGIN];\n return originData[yField][0] <= yValue && originData[yField][1] >= yValue;\n });\n return result || data[data.length - 1];\n}\n\nvar getXDistance = memoize(function (scale) {\n if (scale.isCategory) {\n return 1;\n }\n\n var scaleValues = scale.values; // values 是无序的\n\n var length = scaleValues.length;\n var min = scale.translate(scaleValues[0]);\n var max = min;\n\n for (var index = 0; index < length; index++) {\n var value = scaleValues[index]; // 时间类型需要 translate\n\n var numericValue = scale.translate(value);\n\n if (numericValue < min) {\n min = numericValue;\n }\n\n if (numericValue > max) {\n max = numericValue;\n }\n }\n\n return (max - min) / (length - 1);\n});\n/**\n * 获得 tooltip 的 title\n * @param originData\n * @param geometry\n * @param title\n */\n\nfunction getTooltipTitle(originData, geometry, title) {\n var positionAttr = geometry.getAttribute('position');\n var fields = positionAttr.getFields();\n var scales = geometry.scales;\n var titleField = isFunction(title) || !title ? fields[0] : title;\n var titleScale = scales[titleField]; // 如果创建了该字段对应的 scale,则通过 scale.getText() 方式取值,因为用户可能对数据进行了格式化\n // 如果没有对应的 scale,则从原始数据中取值,如果原始数据中仍不存在,则直接放回 title 值\n\n var tooltipTitle = titleScale ? titleScale.getText(originData[titleField]) : originData[titleField] || titleField;\n return isFunction(title) ? title(tooltipTitle, originData) : tooltipTitle;\n}\n\nfunction getAttributesForLegend(geometry) {\n var attributes = values(geometry.attributes);\n return filter(attributes, function (attribute) {\n return contains(GROUP_ATTRS, attribute.type);\n });\n}\n\nfunction getTooltipValueScale(geometry) {\n var e_1, _a;\n\n var attributes = getAttributesForLegend(geometry);\n var scale;\n\n try {\n for (var attributes_1 = __values(attributes), attributes_1_1 = attributes_1.next(); !attributes_1_1.done; attributes_1_1 = attributes_1.next()) {\n var attribute = attributes_1_1.value;\n var tmpScale = attribute.getScale(attribute.type);\n\n if (tmpScale && tmpScale.isLinear) {\n var tmpScaleDef = get(geometry.scaleDefs, tmpScale.field);\n var inferedScaleType = inferScaleType(tmpScale, tmpScaleDef, attribute.type, geometry.type);\n\n if (inferedScaleType !== 'cat') {\n // 如果指定字段是非 position 的,同时是连续的\n scale = tmpScale;\n break;\n }\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (attributes_1_1 && !attributes_1_1.done && (_a = attributes_1[\"return\"])) _a.call(attributes_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n var xScale = geometry.getXScale();\n var yScale = geometry.getYScale();\n return scale || yScale || xScale;\n}\n\nfunction getTooltipValue(originData, valueScale) {\n var field = valueScale.field;\n var value = originData[field];\n\n if (isArray(value)) {\n var texts = value.map(function (eachValue) {\n return valueScale.getText(eachValue);\n });\n return texts.join('-');\n }\n\n return valueScale.getText(value);\n} // 根据原始数据获取 tooltip item 中 name 值\n\n\nfunction getTooltipName(originData, geometry) {\n var nameScale;\n var groupScales = geometry.getGroupScales();\n\n if (groupScales.length) {\n // 如果存在分组类型,取第一个分组类型\n nameScale = groupScales[0];\n }\n\n if (nameScale) {\n var field = nameScale.field;\n return nameScale.getText(originData[field]);\n }\n\n var valueScale = getTooltipValueScale(geometry);\n return getName(valueScale);\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 */\n\n\nexport function findDataByPoint(point, data, geometry) {\n if (data.length === 0) {\n return null;\n }\n\n var geometryType = geometry.type;\n var xScale = geometry.getXScale();\n var yScale = geometry.getYScale();\n var xField = xScale.field;\n var yField = yScale.field;\n var rst = null; // 热力图采用最小逼近策略查找 point 击中的数据\n\n if (geometryType === 'heatmap' || geometryType === 'point') {\n // 将 point 画布坐标转换为原始数据值\n var coordinate = geometry.coordinate;\n var invertPoint = coordinate.invert(point); // 转换成归一化的数据\n\n var x = xScale.invert(invertPoint.x); // 转换为原始值\n\n var y = yScale.invert(invertPoint.y); // 转换为原始值\n\n var min = Infinity;\n\n for (var index = 0; index < data.length; index++) {\n var obj = data[index];\n var originData = obj[FIELD_ORIGIN];\n var range = Math.pow(originData[xField] - x, 2) + Math.pow(originData[yField] - y, 2);\n\n if (range < min) {\n min = range;\n rst = obj;\n }\n }\n\n return rst;\n } // 其他 Geometry 类型按照 x 字段数据进行查找\n\n\n var first = data[0];\n var last = data[data.length - 1];\n var xValue = getXValueByPoint(point, geometry);\n var firstXValue = first[FIELD_ORIGIN][xField];\n var firstYValue = first[FIELD_ORIGIN][yField];\n var lastXValue = last[FIELD_ORIGIN][xField];\n var isYArray = yScale.isLinear && isArray(firstYValue); // 考虑 x 维度相同,y 是数组区间的情况\n // 如果 x 的值是数组\n\n if (isArray(firstXValue)) {\n for (var index = 0; index < data.length; index++) {\n var record = data[index];\n var originData = record[FIELD_ORIGIN]; // xValue 在 originData[xField] 的数值区间内\n\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\n rst.push(record);\n } else {\n rst = record;\n break;\n }\n }\n }\n\n if (isArray(rst)) {\n rst = filterYValue(rst, point, geometry);\n }\n } else {\n var next = void 0;\n\n if (!xScale.isLinear && xScale.type !== 'timeCat') {\n // x 轴对应的数据为非线性以及非时间类型的数据采用遍历查找\n for (var index = 0; index < data.length; index++) {\n var record = data[index];\n var originData = record[FIELD_ORIGIN];\n\n if (snapEqual(originData[xField], xValue, xScale)) {\n if (isYArray) {\n if (!isArray(rst)) {\n rst = [];\n }\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 ((xValue > xScale.translate(lastXValue) || xValue < xScale.translate(firstXValue)) && (xValue > xScale.max || xValue < xScale.min)) {\n // 不在数据范围内\n return null;\n }\n\n var firstIdx = 0;\n var lastIdx = data.length - 1;\n var middleIdx = void 0;\n\n while (firstIdx <= lastIdx) {\n middleIdx = Math.floor((firstIdx + lastIdx) / 2);\n var item = data[middleIdx][FIELD_ORIGIN][xField];\n\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\n lastIdx = middleIdx - 1;\n }\n }\n }\n\n if (last && next) {\n // 计算最逼近的\n if (Math.abs(xScale.translate(last[FIELD_ORIGIN][xField]) - xValue) > Math.abs(xScale.translate(next[FIELD_ORIGIN][xField]) - xValue)) {\n last = next;\n }\n }\n }\n\n var distance = getXDistance(geometry.getXScale()); // 每个分类间的平均间距\n\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 * @ignore\n * Gets tooltip items\n * @param data\n * @param geometry\n * @param [title]\n * @returns\n */\n\nexport function getTooltipItems(data, geometry, title, showNil) {\n var e_2, _a;\n\n if (title === void 0) {\n title = '';\n }\n\n if (showNil === void 0) {\n showNil = false;\n }\n\n var originData = data[FIELD_ORIGIN];\n var tooltipTitle = getTooltipTitle(originData, geometry, title);\n var tooltipOption = geometry.tooltipOption;\n var defaultColor = geometry.theme.defaultColor;\n var items = [];\n var name;\n var value;\n\n function addItem(itemName, itemValue) {\n if (showNil || !isNil(itemValue) && itemValue !== '') {\n // 值为 null的时候,忽视\n var 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 items.push(item);\n }\n }\n\n if (isObject(tooltipOption)) {\n var fields = tooltipOption.fields,\n callback = tooltipOption.callback;\n\n if (callback) {\n // 用户定义了回调函数\n var callbackParams = fields.map(function (field) {\n return data[FIELD_ORIGIN][field];\n });\n var cfg = callback.apply(void 0, __spreadArray([], __read(callbackParams), false));\n\n var itemCfg = __assign({\n data: data[FIELD_ORIGIN],\n mappingData: data,\n title: tooltipTitle,\n color: data.color || defaultColor,\n marker: true\n }, cfg);\n\n items.push(itemCfg);\n } else {\n var scales = geometry.scales;\n\n try {\n for (var fields_1 = __values(fields), fields_1_1 = fields_1.next(); !fields_1_1.done; fields_1_1 = fields_1.next()) {\n var field = fields_1_1.value;\n\n if (!isNil(originData[field])) {\n // 字段数据为null, undefined 时不显示\n var scale = scales[field];\n name = getName(scale);\n value = scale.getText(originData[field]);\n addItem(name, value);\n }\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (fields_1_1 && !fields_1_1.done && (_a = fields_1[\"return\"])) _a.call(fields_1);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n }\n } else {\n var valueScale = getTooltipValueScale(geometry); // 字段数据为null ,undefined时不显示\n\n value = getTooltipValue(originData, valueScale);\n name = getTooltipName(originData, geometry);\n addItem(name, value);\n }\n\n return items;\n}\n\nfunction getTooltipItemsByFindData(geometry, point, title, tooltipCfg) {\n var e_3, _a;\n\n var showNil = tooltipCfg.showNil;\n var result = [];\n var dataArray = geometry.dataArray;\n\n if (!isEmpty(dataArray)) {\n geometry.sort(dataArray); // 先进行排序,便于 tooltip 查找\n\n try {\n for (var dataArray_1 = __values(dataArray), dataArray_1_1 = dataArray_1.next(); !dataArray_1_1.done; dataArray_1_1 = dataArray_1.next()) {\n var data = dataArray_1_1.value;\n var record = findDataByPoint(point, data, geometry);\n\n if (record) {\n var elementId = geometry.getElementId(record);\n var element = geometry.elementsMap[elementId];\n\n if (geometry.type === 'heatmap' || element.visible) {\n // Heatmap 没有 Element\n // 如果图形元素隐藏了,怎不再 tooltip 上展示相关数据\n var items = getTooltipItems(record, geometry, title, showNil);\n\n if (items.length) {\n result.push(items);\n }\n }\n }\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (dataArray_1_1 && !dataArray_1_1.done && (_a = dataArray_1[\"return\"])) _a.call(dataArray_1);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n }\n\n return result;\n}\n\nfunction getTooltipItemsByHitShape(geometry, point, title, tooltipCfg) {\n var showNil = tooltipCfg.showNil;\n var result = [];\n var container = geometry.container;\n var shape = container.getShape(point.x, point.y);\n\n if (shape && shape.get('visible') && shape.get('origin')) {\n var mappingData = shape.get('origin').mappingData;\n var items = getTooltipItems(mappingData, geometry, title, showNil);\n\n if (items.length) {\n result.push(items);\n }\n }\n\n return result;\n}\n/**\n * 不进行递归查找\n */\n\n\nexport function findItemsFromView(view, point, tooltipCfg) {\n var e_4, _a;\n\n var result = []; // 先从 view 本身查找\n\n var geometries = view.geometries;\n var shared = tooltipCfg.shared,\n title = tooltipCfg.title,\n reversed = tooltipCfg.reversed;\n\n try {\n for (var geometries_1 = __values(geometries), geometries_1_1 = geometries_1.next(); !geometries_1_1.done; geometries_1_1 = geometries_1.next()) {\n var geometry = geometries_1_1.value;\n\n if (geometry.visible && geometry.tooltipOption !== false) {\n // geometry 可见同时未关闭 tooltip\n var geometryType = geometry.type;\n var tooltipItems = void 0;\n\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\n if (tooltipItems.length) {\n if (reversed) {\n tooltipItems.reverse();\n } // geometry 有可能会有多个 item,因为用户可以设置 geometry.tooltip('x*y*z')\n\n\n result.push(tooltipItems);\n }\n }\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (geometries_1_1 && !geometries_1_1.done && (_a = geometries_1[\"return\"])) _a.call(geometries_1);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n\n return result;\n}\nexport function findItemsFromViewRecurisive(view, point, tooltipCfg) {\n var e_5, _a;\n\n var result = findItemsFromView(view, point, tooltipCfg);\n\n try {\n // 递归查找,并合并结果\n for (var _b = __values(view.views), _c = _b.next(); !_c.done; _c = _b.next()) {\n var childView = _c.value;\n result = result.concat(findItemsFromView(childView, point, tooltipCfg));\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n return result;\n}","import { __read, __spreadArray } from \"tslib\";\nimport { isArray, isNumber } from '@antv/util';\n/**\n * @ignore\n * 是否是自动 padding\n * @param padding\n */\n\nexport function isAutoPadding(padding) {\n return !isNumber(padding) && !isArray(padding);\n}\n/**\n * @ignore\n * padding 的解析逻辑\n * @param padding\n * @return [ top, right, bottom, left ]\n */\n\nexport function parsePadding(padding) {\n if (padding === void 0) {\n padding = 0;\n }\n\n var paddingArray = isArray(padding) ? padding : [padding];\n\n switch (paddingArray.length) {\n case 0:\n paddingArray = [0, 0, 0, 0];\n break;\n\n case 1:\n paddingArray = new Array(4).fill(paddingArray[0]);\n break;\n\n case 2:\n paddingArray = __spreadArray(__spreadArray([], __read(paddingArray), false), __read(paddingArray), false);\n break;\n\n case 3:\n paddingArray = __spreadArray(__spreadArray([], __read(paddingArray), false), [paddingArray[1]], false);\n break;\n\n default:\n // 其他情况,只去四个\n paddingArray = paddingArray.slice(0, 4);\n break;\n }\n\n return paddingArray;\n}","var LOAD_COMPONENT_CONTROLLERS = {};\n/**\n * 全局注册组件。\n * @param name 组件名称\n * @param plugin 注册的组件类\n * @returns void\n */\n\nexport function registerComponentController(name, plugin) {\n LOAD_COMPONENT_CONTROLLERS[name] = plugin;\n}\n/**\n * 删除全局组件。\n * @param name 组件名\n * @returns void\n */\n\nexport function unregisterComponentController(name) {\n delete LOAD_COMPONENT_CONTROLLERS[name];\n}\n/**\n * 获取以注册的组件名。\n * @returns string[] 返回已注册的组件名称\n */\n\nexport function getComponentControllerNames() {\n return Object.keys(LOAD_COMPONENT_CONTROLLERS);\n}\n/**\n * 根据组件名获取组件类。\n * @param name 组件名\n * @returns 返回组件类\n */\n\nexport function getComponentController(name) {\n return LOAD_COMPONENT_CONTROLLERS[name];\n}","import { __assign, __read, __spreadArray } from \"tslib\";\nimport { each, isNil, some } from '@antv/util';\nimport { getCoordinate } from '../../dependents';\n/**\n * coordinate controller,职责:\n * 1. 创建实例\n * 2. 暂存配置\n */\n\nvar CoordinateController =\n/** @class */\nfunction () {\n function CoordinateController(option) {\n // 设置默认值,并存储配置\n this.option = this.wrapperOption(option);\n }\n /**\n * 更新配置\n * @param option\n */\n\n\n CoordinateController.prototype.update = function (option) {\n this.option = this.wrapperOption(option);\n return this;\n };\n /**\n * 是否存在某一个 action\n * @param actionName\n */\n\n\n CoordinateController.prototype.hasAction = function (actionName) {\n var actions = this.option.actions;\n return some(actions, function (action) {\n return action[0] === actionName;\n });\n };\n /**\n * 创建坐标系对象\n * @param start 起始位置\n * @param end 结束位置\n * @return 坐标系实例\n */\n\n\n CoordinateController.prototype.create = function (start, end) {\n var _a = this.option,\n type = _a.type,\n cfg = _a.cfg;\n var isTheta = type === 'theta'; // 1. 起始位置\n\n var props = __assign({\n start: start,\n end: end\n }, cfg); // 2. 创建实例\n\n\n var C = getCoordinate(isTheta ? 'polar' : type);\n this.coordinate = new C(props); // @ts-ignore FIXME coordinate 包问题导致 type 不正确\n\n this.coordinate.type = type; // 3. 添加默认 action\n\n if (isTheta) {\n // 不存在 transpose,为其自动设置一个 action\n if (!this.hasAction('transpose')) {\n this.transpose();\n }\n } // 4. 执行 action\n\n\n this.execActions();\n return this.coordinate;\n };\n /**\n * 更新坐标系对象\n * @param start 起始位置\n * @param end 结束位置\n * @return 坐标系实例\n */\n\n\n CoordinateController.prototype.adjust = function (start, end) {\n this.coordinate.update({\n start: start,\n end: end\n }); // 更新坐标系大小的时候,需要:\n // 1. 重置 matrix\n // 2. 重新执行作用于 matrix 的 action\n\n this.coordinate.resetMatrix();\n this.execActions(['scale', 'rotate', 'translate']);\n return this.coordinate;\n };\n /**\n * 旋转弧度\n * @param angle\n */\n\n\n CoordinateController.prototype.rotate = function (angle) {\n this.option.actions.push(['rotate', angle]);\n return this;\n };\n /**\n * 镜像\n * @param dim\n */\n\n\n CoordinateController.prototype.reflect = function (dim) {\n this.option.actions.push(['reflect', dim]);\n return this;\n };\n /**\n * scale\n * @param sx\n * @param sy\n */\n\n\n CoordinateController.prototype.scale = function (sx, sy) {\n this.option.actions.push(['scale', sx, sy]);\n return this;\n };\n /**\n * 对角变换\n */\n\n\n CoordinateController.prototype.transpose = function () {\n this.option.actions.push(['transpose']);\n return this;\n };\n /**\n * 获取配置\n */\n\n\n CoordinateController.prototype.getOption = function () {\n return this.option;\n };\n /**\n * 获得 coordinate 实例\n */\n\n\n CoordinateController.prototype.getCoordinate = function () {\n return this.coordinate;\n };\n /**\n * 包装配置的默认值\n * @param option\n */\n\n\n CoordinateController.prototype.wrapperOption = function (option) {\n return __assign({\n type: 'rect',\n actions: [],\n cfg: {}\n }, option);\n };\n /**\n * coordinate 实例执行 actions\n * @params includeActions 如果没有指定,则执行全部,否则,执行指定的 action\n */\n\n\n CoordinateController.prototype.execActions = function (includeActions) {\n var _this = this;\n\n var actions = this.option.actions;\n each(actions, function (action) {\n var _a;\n\n var _b = __read(action),\n actionName = _b[0],\n args = _b.slice(1);\n\n var shouldExec = isNil(includeActions) ? true : includeActions.includes(actionName);\n\n if (shouldExec) {\n (_a = _this.coordinate)[actionName].apply(_a, __spreadArray([], __read(args), false));\n }\n });\n };\n\n return CoordinateController;\n}();\n\nexport default CoordinateController;","import { Event as GEvent } from '../dependents';\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 */\n\nvar Event =\n/** @class */\nfunction () {\n function Event(view, gEvent, data) {\n this.view = view;\n this.gEvent = gEvent;\n this.data = data;\n this.type = gEvent.type;\n }\n /**\n * 非交互产生的事件\n * @param view\n * @param type\n * @param data\n */\n\n\n Event.fromData = function (view, type, data) {\n return new Event(view, new GEvent(type, {}), data);\n };\n\n Object.defineProperty(Event.prototype, \"target\", {\n // below props are proxy props of G.event convenient\n\n /** the real trigger shape of the event */\n get: function get() {\n // @todo G 中事件定义为 object 不正确,这里先 ignore\n // @ts-ignore\n return this.gEvent.target;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Event.prototype, \"event\", {\n /** 获取对应的 dom 原生时间 */\n get: function get() {\n return this.gEvent.originalEvent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Event.prototype, \"x\", {\n /** x 画布坐标 */\n get: function get() {\n return this.gEvent.x;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Event.prototype, \"y\", {\n /** y 画布坐标 */\n get: function get() {\n return this.gEvent.y;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Event.prototype, \"clientX\", {\n /** x 窗口坐标 */\n get: function get() {\n return this.gEvent.clientX;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Event.prototype, \"clientY\", {\n /** y 窗口坐标 */\n get: function get() {\n return this.gEvent.clientY;\n },\n enumerable: false,\n configurable: true\n }); // end for proxy events\n\n /**\n * event string\n * @returns string\n */\n\n Event.prototype.toString = function () {\n return \"[Event (type=\".concat(this.type, \")]\");\n };\n /**\n * clone a new event with same attributes\n * @returns [[Event]]\n */\n\n\n Event.prototype.clone = function () {\n return new Event(this.view, this.gEvent, this.data);\n };\n\n return Event;\n}();\n\nexport default Event;","/**\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) {\n var axis = view.getController('axis');\n var legend = view.getController('legend');\n var annotation = view.getController('annotation');\n var slider = view.getController('slider');\n var scrollbar = view.getController('scrollbar'); // 根据最新的 coordinate 重新布局组件\n\n [axis, slider, scrollbar, legend, annotation].forEach(function (controller) {\n if (controller) {\n controller.layout();\n }\n });\n}","/**\n * view 中缓存 scale 的类\n */\nimport { deepMix, each, get, isNumber, last } from '@antv/util';\nimport { createScaleByField, syncScale, getDefaultCategoryScaleRange } from '../../util/scale';\n/** @ignore */\n\nvar ScalePool =\n/** @class */\nfunction () {\n function ScalePool() {\n /** 所有的 scales */\n this.scales = new Map();\n /** 需要同步的 scale 分组, key: scaleKeyArray */\n\n this.syncScales = new Map();\n }\n /**\n * 创建 scale\n * @param field\n * @param data\n * @param scaleDef\n * @param key\n */\n\n\n ScalePool.prototype.createScale = function (field, data, scaleDef, key) {\n var finalScaleDef = scaleDef;\n var cacheScaleMeta = this.getScaleMeta(key);\n\n if (data.length === 0 && cacheScaleMeta) {\n // 在更新过程中数据变为空,同时 key 对应的 scale 已存在则保持 scale 同类型\n var cacheScale = cacheScaleMeta.scale;\n var cacheScaleDef = {\n type: cacheScale.type\n };\n\n if (cacheScale.isCategory) {\n // 如果是分类类型,保持 values\n cacheScaleDef.values = cacheScale.values;\n }\n\n finalScaleDef = deepMix(cacheScaleDef, cacheScaleMeta.scaleDef, scaleDef);\n }\n\n var scale = createScaleByField(field, data, finalScaleDef); // 缓存起来\n\n this.cacheScale(scale, scaleDef, key);\n return scale;\n };\n /**\n * 同步 scale\n */\n\n\n ScalePool.prototype.sync = function (coordinate, theme) {\n var _this = this; // 对于 syncScales 中每一个 syncKey 下面的 scale 数组进行同步处理\n\n\n this.syncScales.forEach(function (scaleKeys, syncKey) {\n // min, max, values, ranges\n var min = Number.MAX_SAFE_INTEGER;\n var max = Number.MIN_SAFE_INTEGER;\n var values = []; // 1. 遍历求得最大最小值,values 等\n\n each(scaleKeys, function (key) {\n var 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 each(scale.values, function (v) {\n if (!values.includes(v)) {\n values.push(v);\n }\n });\n }); // 2. 同步\n\n each(scaleKeys, function (key) {\n var scale = _this.getScale(key);\n\n if (scale.isContinuous) {\n scale.change({\n min: min,\n max: max,\n values: values\n });\n } else if (scale.isCategory) {\n var range = scale.range;\n\n var cacheScaleMeta = _this.getScaleMeta(key); // 存在 value 值,且用户没有配置 range 配置 to fix https://github.com/antvis/G2/issues/2996\n\n\n if (values && !get(cacheScaleMeta, ['scaleDef', 'range'])) {\n // 更新 range\n range = getDefaultCategoryScaleRange(deepMix({}, scale, {\n values: values\n }), coordinate, theme);\n }\n\n scale.change({\n values: values,\n range: range\n });\n }\n });\n });\n };\n /**\n * 缓存一个 scale\n * @param scale\n * @param scaleDef\n * @param key\n */\n\n\n ScalePool.prototype.cacheScale = function (scale, scaleDef, key) {\n // 1. 缓存到 scales\n var sm = this.getScaleMeta(key); // 存在则更新,同时检测类型是否一致\n\n if (sm && sm.scale.type === scale.type) {\n syncScale(sm.scale, scale);\n sm.scaleDef = scaleDef; // 更新 scaleDef\n } else {\n sm = {\n key: key,\n scale: scale,\n scaleDef: scaleDef\n };\n this.scales.set(key, sm);\n } // 2. 缓存到 syncScales,构造 Record 数据结构\n\n\n var syncKey = this.getSyncKey(sm);\n sm.syncKey = syncKey; // 设置 sync 同步的 key\n // 因为存在更新 scale 机制,所以在缓存之前,先从原 syncScales 中去除 sync 的缓存引用\n\n this.removeFromSyncScales(key); // 存在 sync 标记才进行 sync\n\n if (syncKey) {\n // 不存在这个 syncKey,则创建一个空数组\n var scaleKeys = this.syncScales.get(syncKey);\n\n if (!scaleKeys) {\n scaleKeys = [];\n this.syncScales.set(syncKey, scaleKeys);\n }\n\n scaleKeys.push(key);\n }\n };\n /**\n * 通过 key 获取 scale\n * @param key\n */\n\n\n ScalePool.prototype.getScale = function (key) {\n var scaleMeta = this.getScaleMeta(key);\n\n if (!scaleMeta) {\n var field = last(key.split('-'));\n var scaleKeys = this.syncScales.get(field);\n\n if (scaleKeys && scaleKeys.length) {\n scaleMeta = this.getScaleMeta(scaleKeys[0]);\n }\n }\n\n return scaleMeta && scaleMeta.scale;\n };\n /**\n * 在 view 销毁的时候,删除 scale 实例,防止内存泄露\n * @param key\n */\n\n\n ScalePool.prototype.deleteScale = function (key) {\n var scaleMeta = this.getScaleMeta(key);\n\n if (scaleMeta) {\n var syncKey = scaleMeta.syncKey;\n var scaleKeys = this.syncScales.get(syncKey); // 移除同步的关系\n\n if (scaleKeys && scaleKeys.length) {\n var idx = scaleKeys.indexOf(key);\n\n if (idx !== -1) {\n scaleKeys.splice(idx, 1);\n }\n }\n } // 删除 scale 实例\n\n\n this.scales[\"delete\"](key);\n };\n /**\n * 清空\n */\n\n\n ScalePool.prototype.clear = function () {\n this.scales.clear();\n this.syncScales.clear();\n };\n /**\n * 删除 sync scale 引用\n * @param key\n */\n\n\n ScalePool.prototype.removeFromSyncScales = function (key) {\n var _this = this;\n\n this.syncScales.forEach(function (scaleKeys, syncKey) {\n var idx = scaleKeys.indexOf(key);\n\n if (idx !== -1) {\n scaleKeys.splice(idx, 1); // 删除空数组值\n\n if (scaleKeys.length === 0) {\n _this.syncScales[\"delete\"](syncKey);\n }\n\n return false; // 跳出循环\n }\n });\n };\n /**\n * get sync key\n * @param sm\n */\n\n\n ScalePool.prototype.getSyncKey = function (sm) {\n var scale = sm.scale,\n scaleDef = sm.scaleDef;\n var field = scale.field;\n var sync = get(scaleDef, ['sync']); // 如果 sync = true,则直接使用字段名作为 syncKey\n\n return sync === true ? field : sync === false ? undefined : sync;\n };\n /**\n * 通过 key 获取 scale\n * @param key\n */\n\n\n ScalePool.prototype.getScaleMeta = function (key) {\n return this.scales.get(key);\n };\n\n return ScalePool;\n}();\n\nexport { ScalePool };","import { __read, __spreadArray } from \"tslib\";\nimport { DIRECTION } from '../../constant';\n/** @ignore */\n\nvar PaddingCal =\n/** @class */\nfunction () {\n /**\n * 初始的 padding 数据\n * @param top\n * @param right\n * @param bottom\n * @param left\n */\n function PaddingCal(top, right, bottom, left) {\n if (top === void 0) {\n top = 0;\n }\n\n if (right === void 0) {\n right = 0;\n }\n\n if (bottom === void 0) {\n bottom = 0;\n }\n\n if (left === void 0) {\n left = 0;\n }\n\n this.top = top;\n this.right = right;\n this.bottom = bottom;\n this.left = left;\n }\n /**\n * 使用静态方法创建一个\n * @param top\n * @param right\n * @param bottom\n * @param left\n */\n\n\n PaddingCal.instance = function (top, right, bottom, left) {\n if (top === void 0) {\n top = 0;\n }\n\n if (right === void 0) {\n right = 0;\n }\n\n if (bottom === void 0) {\n bottom = 0;\n }\n\n if (left === void 0) {\n left = 0;\n }\n\n return new PaddingCal(top, right, bottom, left);\n };\n /**\n * 取最大区间\n * @param padding\n */\n\n\n PaddingCal.prototype.max = function (padding) {\n var _a = __read(padding, 4),\n top = _a[0],\n right = _a[1],\n bottom = _a[2],\n left = _a[3];\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 return this;\n };\n /**\n * 四周增加 padding\n * @param padding\n */\n\n\n PaddingCal.prototype.shrink = function (padding) {\n var _a = __read(padding, 4),\n top = _a[0],\n right = _a[1],\n bottom = _a[2],\n left = _a[3];\n\n this.top += top;\n this.right += right;\n this.bottom += bottom;\n this.left += left;\n return this;\n };\n /**\n * 在某一个方向增加 padding\n * @param bbox\n * @param direction\n */\n\n\n PaddingCal.prototype.inc = function (bbox, direction) {\n var width = bbox.width,\n height = bbox.height;\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\n default:\n break;\n }\n\n return this;\n };\n /**\n * 获得最终的 padding\n */\n\n\n PaddingCal.prototype.getPadding = function () {\n return [this.top, this.right, this.bottom, this.left];\n };\n /**\n * clone 一个 padding cal\n */\n\n\n PaddingCal.prototype.clone = function () {\n return new (PaddingCal.bind.apply(PaddingCal, __spreadArray([void 0], __read(this.getPadding()), false)))();\n };\n\n return PaddingCal;\n}();\n\nexport { PaddingCal };","import { __read, __spreadArray } from \"tslib\";\nimport { each } from '@antv/util';\nimport { COMPONENT_TYPE } from '../../constant';\nimport { BBox } from '../../util/bbox';\nimport { isAutoPadding, parsePadding } from '../../util/padding';\nimport { PaddingCal } from './padding-cal';\n/**\n * @ignore\n * 根据 view 中的组件,计算实际的 padding 数值\n * @param view\n */\n\nexport function calculatePadding(view) {\n var padding = view.padding; // 如果不是 auto padding,那么直接解析之后返回\n\n if (!isAutoPadding(padding)) {\n return new (PaddingCal.bind.apply(PaddingCal, __spreadArray([void 0], __read(parsePadding(padding)), false)))();\n } // 是 auto padding,根据组件的情况,来计算 padding\n\n\n var viewBBox = view.viewBBox;\n var paddingCal = new PaddingCal();\n var axisComponents = [];\n var paddingComponents = [];\n var otherComponents = [];\n each(view.getComponents(), function (co) {\n var type = co.type;\n\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 }); // 进行坐标轴布局,应该是取 padding 的并集,而不是进行相加\n\n each(axisComponents, function (co) {\n var component = co.component;\n var bboxObject = component.getLayoutBBox();\n var componentBBox = new BBox(bboxObject.x, bboxObject.y, bboxObject.width, bboxObject.height);\n var exceed = componentBBox.exceed(viewBBox); // 在对组件分组之后,先对 axis 进行处理,然后取最大的超出即可。\n\n paddingCal.max(exceed);\n }); // 有 padding 的组件布局\n\n each(paddingComponents, function (co) {\n var component = co.component,\n direction = co.direction;\n var bboxObject = component.getLayoutBBox();\n var componentPadding = component.get('padding');\n var componentBBox = new BBox(bboxObject.x, bboxObject.y, bboxObject.width, bboxObject.height).expand(componentPadding); // 按照方向计算 padding\n\n paddingCal.inc(componentBBox, direction);\n }); // 其他组件布局\n\n each(otherComponents, function (co) {\n var component = co.component,\n direction = co.direction;\n var bboxObject = component.getLayoutBBox();\n var componentBBox = new BBox(bboxObject.x, bboxObject.y, bboxObject.width, bboxObject.height); // 按照方向计算 padding\n\n paddingCal.inc(componentBBox, direction);\n });\n return paddingCal;\n}","/**\n * 默认的 syncViewPadding 逻辑\n * @param chart\n * @param views\n * @param PC: PaddingCalCtor\n */\nexport function defaultSyncViewPadding(chart, views, PC) {\n var syncPadding = PC.instance(); // 所有的 view 的 autoPadding 指向同一个引用\n\n views.forEach(function (v) {\n v.autoPadding = syncPadding.max(v.autoPadding.getPadding());\n });\n}","import { __assign, __extends, __read, __rest, __spreadArray } from \"tslib\";\nimport { clone, deepMix, each, filter, find, flatten, get, isBoolean, isFunction, isNil, isObject, isString, isUndefined, mix, remove, set, size, uniqueId, isEqual, isPlainObject, reduce } from '@antv/util';\nimport { GROUP_Z_INDEX, LAYER, PLOT_EVENTS, VIEW_LIFE_CIRCLE } from '../constant';\nimport Base from '../base';\nimport { getFacet } from '../facet';\nimport { createInteraction } 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 { getComponentController, getComponentControllerNames } from './controller';\nimport CoordinateController from './controller/coordinate';\nimport Event from './event';\nimport defaultLayout 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 * G2 视图 View 类\n */\n\nvar View =\n/** @class */\nfunction (_super) {\n __extends(View, _super);\n\n function View(props) {\n var _this = _super.call(this, {\n visible: props.visible\n }) || this;\n /** 所有的子 view。 */\n\n\n _this.views = [];\n /** 所有的 geometry 实例。 */\n\n _this.geometries = [];\n /** 所有的组件 controllers。 */\n\n _this.controllers = [];\n /** 所有的 Interaction 实例。 */\n\n _this.interactions = {};\n /** 是否对超出坐标系范围的 Geometry 进行剪切 */\n\n _this.limitInPlot = false; // 配置信息存储\n\n _this.options = {\n data: [],\n animate: true // 默认开启动画\n\n }; // 初始化为空\n\n /** 配置开启的组件插件,默认为全局配置的组件。 */\n\n _this.usedControllers = getComponentControllerNames();\n /** 所有的 scales */\n\n _this.scalePool = new ScalePool();\n /** 布局函数 */\n\n _this.layoutFunc = defaultLayout;\n /** 当前鼠标是否在 plot 内(CoordinateBBox) */\n\n _this.isPreMouseInPlot = false;\n /** 默认标识位,用于判定数据是否更新 */\n\n _this.isDataChanged = false;\n /** 用于判断坐标系范围是否发生变化的标志位 */\n\n _this.isCoordinateChanged = false;\n /** 从当前这个 view 创建的 scale key */\n\n _this.createdScaleKeys = new Map();\n\n _this.onCanvasEvent = function (evt) {\n var name = evt.name;\n\n if (!name.includes(':')) {\n // 非委托事件\n var e = _this.createViewEvent(evt); // 处理 plot 事件\n\n\n _this.doPlotEvent(e);\n\n _this.emit(name, e);\n }\n };\n /**\n * 触发事件之后\n * @param evt\n */\n\n\n _this.onDelegateEvents = function (evt) {\n // 阻止继续冒泡,防止重复事件触发\n // evt.preventDefault();\n var name = evt.name;\n\n if (!name.includes(':')) {\n return;\n } // 事件在 view 嵌套中冒泡(暂不提供阻止冒泡的机制)\n\n\n var e = _this.createViewEvent(evt); // 包含有基本事件、组合事件\n\n\n _this.emit(name, e); // 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 var _a = props.id,\n id = _a === void 0 ? uniqueId('view') : _a,\n parent = props.parent,\n canvas = props.canvas,\n backgroundGroup = props.backgroundGroup,\n middleGroup = props.middleGroup,\n foregroundGroup = props.foregroundGroup,\n _b = props.region,\n region = _b === void 0 ? {\n start: {\n x: 0,\n y: 0\n },\n end: {\n x: 1,\n y: 1\n }\n } : _b,\n padding = props.padding,\n appendPadding = props.appendPadding,\n theme = props.theme,\n options = props.options,\n limitInPlot = props.limitInPlot,\n syncViewPadding = props.syncViewPadding;\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; // 接受父 view 传入的参数\n\n _this.options = __assign(__assign({}, _this.options), options);\n _this.limitInPlot = limitInPlot;\n _this.id = id;\n _this.syncViewPadding = syncViewPadding; // 初始化 theme\n\n _this.themeObject = isObject(theme) ? deepMix({}, getTheme('default'), createTheme(theme)) : getTheme(theme);\n\n _this.init();\n\n return _this;\n }\n /**\n * 设置 layout 布局函数\n * @param layout 布局函数\n * @returns void\n */\n\n\n View.prototype.setLayout = function (layout) {\n this.layoutFunc = layout;\n };\n /**\n * 生命周期:初始化\n * @returns voids\n */\n\n\n View.prototype.init = function () {\n // 计算画布的 viewBBox\n this.calculateViewBBox(); // 事件委托机制\n\n this.initEvents(); // 初始化组件 controller\n\n this.initComponentController();\n this.initOptions();\n };\n /**\n * 生命周期:渲染流程,渲染过程需要处理数据更新的情况。\n * render 函数仅仅会处理 view 和子 view。\n * @param isUpdate 是否触发更新流程。\n * @param params render 事件参数\n */\n\n\n View.prototype.render = function (isUpdate, payload) {\n if (isUpdate === void 0) {\n isUpdate = false;\n }\n\n this.emit(VIEW_LIFE_CIRCLE.BEFORE_RENDER, Event.fromData(this, VIEW_LIFE_CIRCLE.BEFORE_RENDER, payload)); // 递归渲染\n\n this.paint(isUpdate);\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 * 生命周期:清空图表上所有的绘制内容,但是不销毁图表,chart 仍可使用。\n * @returns void\n */\n\n\n View.prototype.clear = function () {\n var _this = this;\n\n this.emit(VIEW_LIFE_CIRCLE.BEFORE_CLEAR); // 1. 清空缓存和计算数据\n\n this.filteredData = [];\n this.coordinateInstance = undefined;\n this.isDataChanged = false; // 复位\n\n this.isCoordinateChanged = false; // 复位\n // 2. 清空 geometries\n\n var geometries = this.geometries;\n\n for (var i = 0; i < geometries.length; i++) {\n geometries[i].clear(); // view 中使用 geometry 的时候,还需要清空它的容器,不然下一次 chart.geometry() 的时候,又创建了一个,导致泄露, #2799。\n\n geometries[i].container.remove(true);\n geometries[i].labelsContainer.remove(true);\n }\n\n this.geometries = []; // 3. 清空 controllers\n\n var controllers = this.controllers;\n\n for (var i = 0; i < controllers.length; i++) {\n if (controllers[i].name === 'annotation') {\n // 需要清空配置项\n controllers[i].clear(true);\n } else {\n controllers[i].clear();\n }\n } // 4. 删除 scale 缓存\n\n\n this.createdScaleKeys.forEach(function (v, k) {\n _this.getRootView().scalePool.deleteScale(k);\n });\n this.createdScaleKeys.clear(); // 递归处理子 view\n\n var views = this.views;\n\n for (var i = 0; i < views.length; i++) {\n views[i].clear();\n }\n\n this.emit(VIEW_LIFE_CIRCLE.AFTER_CLEAR);\n };\n /**\n * 生命周期:销毁,完全无法使用。\n * @returns void\n */\n\n\n View.prototype.destroy = function () {\n // 销毁前事件,销毁之后已经没有意义了,所以不抛出事件\n this.emit(VIEW_LIFE_CIRCLE.BEFORE_DESTROY);\n var interactions = this.interactions; // 销毁 interactions\n\n each(interactions, function (interaction) {\n if (interaction) {\n // 有可能已经销毁,设置了 undefined\n interaction.destroy();\n }\n });\n this.clear(); // 销毁 controller 中的组件\n\n var controllers = this.controllers;\n\n for (var i = 0, len = controllers.length; i < len; i++) {\n var 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.prototype.destroy.call(this);\n };\n /* end 生命周期函数 */\n\n /**\n * 显示或者隐藏整个 view。\n * @param visible 是否可见\n * @returns View\n */\n\n\n View.prototype.changeVisible = function (visible) {\n _super.prototype.changeVisible.call(this, visible);\n\n var geometries = this.geometries;\n\n for (var i = 0, len = geometries.length; i < len; i++) {\n var geometry = geometries[i];\n geometry.changeVisible(visible);\n }\n\n var controllers = this.controllers;\n\n for (var i = 0, len = controllers.length; i < len; i++) {\n var 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); // group.set('visible', visible) 不会触发自动刷新\n\n this.getCanvas().draw();\n return this;\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\n\n View.prototype.data = function (data) {\n set(this.options, 'data', data);\n this.isDataChanged = true;\n return this;\n };\n /**\n * @deprecated\n * This method will be removed at G2 V4.1. Replaced by {@link #data(data)}\n */\n\n\n View.prototype.source = function (data) {\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 * ```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\n\n View.prototype.filter = function (field, condition) {\n if (isFunction(condition)) {\n set(this.options, ['filters', field], condition);\n return this;\n } // condition 为空,则表示删除过滤条件\n\n\n if (!condition && get(this.options, ['filters', field])) {\n delete this.options.filters[field];\n }\n\n return this;\n };\n\n View.prototype.axis = function (field, axisOption) {\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 View.prototype.legend = function (field, legendOption) {\n if (isBoolean(field)) {\n set(this.options, ['legends'], field);\n } else if (isString(field)) {\n set(this.options, ['legends', field], legendOption);\n\n if (isPlainObject(legendOption) && (legendOption === null || legendOption === void 0 ? void 0 : legendOption.selected)) {\n set(this.options, ['filters', field], function (name) {\n var _a;\n\n return (_a = legendOption === null || legendOption === void 0 ? void 0 : legendOption.selected[name]) !== null && _a !== void 0 ? _a : true;\n });\n }\n } else {\n // 设置全局的 legend 配置\n set(this.options, ['legends'], field);\n }\n\n return this;\n };\n\n View.prototype.scale = function (field, scaleOption) {\n var _this = this;\n\n if (isString(field)) {\n set(this.options, ['scales', field], scaleOption);\n } else if (isObject(field)) {\n each(field, function (v, k) {\n set(_this.options, ['scales', k], v);\n });\n }\n\n return this;\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\n\n View.prototype.tooltip = function (cfg) {\n set(this.options, 'tooltip', cfg);\n return this;\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\n\n View.prototype.annotation = function () {\n return this.getController('annotation');\n };\n /**\n * @deprecated\n * This method will be removed at G2 V4.1. Replaced by {@link #guide()}\n */\n\n\n View.prototype.guide = function () {\n console.warn('This method will be removed at G2 V4.1. Please use chart.annotation() instead.');\n return this.annotation();\n };\n\n View.prototype.coordinate = function (type, coordinateCfg) {\n // 提供语法糖,使用更简单\n if (isString(type)) {\n set(this.options, 'coordinate', {\n type: type,\n cfg: coordinateCfg\n });\n } else {\n set(this.options, 'coordinate', type);\n } // 更新 coordinate 配置\n\n\n this.coordinateController.update(this.options.coordinate);\n return this.coordinateController;\n };\n /**\n * @deprecated\n * This method will be removed at G2 V4.1. Replaced by {@link #coordinate()}\n */\n\n\n View.prototype.coord = function (type, coordinateCfg) {\n console.warn('This method will be removed at G2 V4.1. Please use chart.coordinate() instead.'); // @ts-ignore\n\n return this.coordinate(type, coordinateCfg);\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\n\n View.prototype.facet = function (type, cfg) {\n // 先销毁掉之前的分面\n if (this.facetInstance) {\n this.facetInstance.destroy();\n } // 创建新的分面\n\n\n var Ctor = getFacet(type);\n\n if (!Ctor) {\n throw new Error(\"facet '\".concat(type, \"' is not exist!\"));\n }\n\n this.facetInstance = new Ctor(this, __assign(__assign({}, cfg), {\n type: type\n }));\n return this;\n };\n /*\n * 开启或者关闭动画。\n *\n * ```ts\n * view.animate(false);\n * ```\n *\n * @param status 动画状态,true 表示开始,false 表示关闭\n * @returns View\n */\n\n\n View.prototype.animate = function (status) {\n set(this.options, 'animate', status);\n return this;\n };\n /**\n * 更新配置项,用于配置项式声明。\n * @param options 配置项\n */\n\n\n View.prototype.updateOptions = function (options) {\n this.clear(); // 清空\n\n mix(this.options, options); // 需要把已存在的 view 销毁,否则会重复创建\n // 目前针对配置项还没有特别好的 view 更新机制,为了不影响主流流程,所以在这里直接销毁\n\n this.views.forEach(function (view) {\n return view.destroy();\n });\n this.views = [];\n this.initOptions(); // 初始化坐标系大小,保证 padding 计算正确\n\n this.coordinateBBox = this.viewBBox;\n return this;\n };\n /**\n * 往 `view.options` 属性中存储配置项。\n * @param name 属性名称\n * @param opt 属性值\n * @returns view\n */\n\n\n View.prototype.option = function (name, opt) {\n // 对于内置的 option,避免覆盖。\n // name 在原型上,说明可能是内置 API,存在 option 被覆盖的风险,不处理\n if (View.prototype[name]) {\n throw new Error(\"Can't use built in variable name \\\"\".concat(name, \"\\\", please change another one.\"));\n } // 存入到 option 中\n\n\n set(this.options, name, opt);\n return this;\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\n\n View.prototype.theme = function (theme) {\n this.themeObject = isObject(theme) ? deepMix({}, this.themeObject, createTheme(theme)) : getTheme(theme);\n return this;\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\n\n View.prototype.interaction = function (name, cfg) {\n var existInteraction = this.interactions[name]; // 存在则先销毁已有的\n\n if (existInteraction) {\n existInteraction.destroy();\n } // 新建交互实例\n\n\n var interaction = createInteraction(name, this, cfg);\n\n if (interaction) {\n interaction.init();\n this.interactions[name] = interaction;\n }\n\n return this;\n };\n /**\n * 移除当前 View 的 interaction\n * ```ts\n * view.removeInteraction('my-interaction');\n * ```\n * @param name interaction name\n */\n\n\n View.prototype.removeInteraction = function (name) {\n var existInteraction = this.interactions[name]; // 存在则先销毁已有的\n\n if (existInteraction) {\n existInteraction.destroy();\n this.interactions[name] = undefined;\n }\n };\n /**\n * 修改数据,数据更新逻辑,数据更新仅仅影响当前这一层的 view\n *\n * ```ts\n * view.changeData([{ city: '北京', sale: '200' }]);\n * ```\n *\n * @param data\n * @returns void\n */\n\n\n View.prototype.changeData = function (data) {\n this.isDataChanged = true;\n this.emit(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, Event.fromData(this, VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, null)); // 1. 保存数据\n\n this.data(data); // 2. 渲染\n\n this.paint(true); // 3. 遍历子 view 进行 change data\n\n var views = this.views;\n\n for (var i = 0, len = views.length; i < len; i++) {\n var view = views[i]; // FIXME 子 view 有自己的数据的情况,该如何处理?\n\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 /* 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\n\n View.prototype.createView = function (cfg) {\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 } // 子 view 共享 options 配置数据\n\n\n var 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 var v = new View(__assign(__assign({\n parent: this,\n canvas: this.canvas,\n // 子 view 共用三层 group\n backgroundGroup: this.backgroundGroup.addGroup({\n zIndex: GROUP_Z_INDEX.BG\n }),\n middleGroup: this.middleGroup.addGroup({\n zIndex: GROUP_Z_INDEX.MID\n }),\n foregroundGroup: this.foregroundGroup.addGroup({\n zIndex: GROUP_Z_INDEX.FORE\n }),\n theme: this.themeObject,\n padding: this.padding\n }, cfg), {\n options: __assign(__assign({}, sharedOptions), get(cfg, 'options', {}))\n }));\n this.views.push(v);\n return v;\n };\n /**\n * @deprecated\n * This method will be removed at G2 V4.1. Replaced by {@link #createView()}\n */\n\n\n View.prototype.view = function (cfg) {\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 * 删除一个子 view\n * @param view\n * @return removedView\n */\n\n\n View.prototype.removeView = function (view) {\n var removedView = remove(this.views, function (v) {\n return v === view;\n })[0];\n\n if (removedView) {\n removedView.destroy();\n }\n\n return removedView;\n };\n /* end View 管理相关的 API */\n // 一些 get 方法\n\n /**\n * 获取当前坐标系实例。\n * @returns [[Coordinate]]\n */\n\n\n View.prototype.getCoordinate = function () {\n return this.coordinateInstance;\n };\n /**\n * 获取当前 view 的主题配置。\n * @returns themeObject\n */\n\n\n View.prototype.getTheme = function () {\n return this.themeObject;\n };\n /**\n * 获得 x 轴字段的 scale 实例。\n * @returns view 中 Geometry 对于的 x scale\n */\n\n\n View.prototype.getXScale = function () {\n // 拿第一个 Geometry 的 X scale\n // 隐藏逻辑:一个 view 中的 Geometry 必须 x 字段一致\n var g = this.geometries[0];\n return g ? g.getXScale() : null;\n };\n /**\n * 获取 y 轴字段的 scales 实例。\n * @returns view 中 Geometry 对于的 y scale 数组\n */\n\n\n View.prototype.getYScales = function () {\n // 拿到所有的 Geometry 的 Y scale,然后去重\n var tmpMap = {};\n var yScales = [];\n this.geometries.forEach(function (g) {\n var yScale = g.getYScale();\n var field = yScale.field;\n\n if (!tmpMap[field]) {\n tmpMap[field] = true;\n yScales.push(yScale);\n }\n });\n return yScales;\n };\n /**\n * 获取 x 轴或者 y 轴对应的所有 scale 实例。\n * @param dimType x | y\n * @returns x 轴或者 y 轴对应的所有 scale 实例。\n */\n\n\n View.prototype.getScalesByDim = function (dimType) {\n var geometries = this.geometries;\n var scales = {};\n\n for (var i = 0, len = geometries.length; i < len; i++) {\n var geometry = geometries[i];\n var scale = dimType === 'x' ? geometry.getXScale() : geometry.getYScale();\n\n if (scale && !scales[scale.field]) {\n scales[scale.field] = scale;\n }\n }\n\n return scales;\n };\n /**\n * 根据字段名去获取 scale 实例。\n * @param field 数据字段名称\n * @param key id\n */\n\n\n View.prototype.getScale = function (field, key) {\n var defaultKey = key ? key : this.getScaleKey(field); // 调用根节点 view 的方法获取\n\n return this.getRootView().scalePool.getScale(defaultKey);\n };\n /**\n * @deprecated\n * This method will be removed at G2 V4.1. Please use `getScale`.\n */\n\n\n View.prototype.getScaleByField = function (field, key) {\n return this.getScale(field, key);\n };\n /**\n * 返回所有配置信息。\n * @returns 所有的 view API 配置。\n */\n\n\n View.prototype.getOptions = function () {\n return this.options;\n };\n /**\n * 获取 view 的数据(过滤后的数据)。\n * @returns 处理过滤器之后的数据。\n */\n\n\n View.prototype.getData = function () {\n return this.filteredData;\n };\n /**\n * 获取原始数据\n * @returns 传入 G2 的原始数据\n */\n\n\n View.prototype.getOriginalData = function () {\n return this.options.data;\n };\n /**\n * 获取布局后的边距 padding\n * @returns\n */\n\n\n View.prototype.getPadding = function () {\n return this.autoPadding.getPadding();\n };\n /**\n * 获取当前 view 有的 geometries\n * @returns\n */\n\n\n View.prototype.getGeometries = function () {\n return this.geometries;\n };\n /**\n * 获取 view 中的所有 geome\n */\n\n\n View.prototype.getElements = function () {\n return reduce(this.geometries, function (elements, geometry) {\n return elements.concat(geometry.getElements());\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\n\n View.prototype.getElementsBy = function (condition) {\n return this.getElements().filter(function (el) {\n return condition(el);\n });\n };\n /**\n * 获得绘制的层级 group。\n * @param layer 层级名称。\n * @returns 对应层级的 Group。\n */\n\n\n View.prototype.getLayer = function (layer) {\n return layer === LAYER.BG ? this.backgroundGroup : layer === LAYER.MID ? this.middleGroup : layer === LAYER.FORE ? this.foregroundGroup : this.foregroundGroup;\n };\n /**\n * 对外暴露方法,判断一个点是否在绘图区域(即坐标系范围)内部。\n * @param point 坐标点\n */\n\n\n View.prototype.isPointInPlot = function (point) {\n return isPointInCoordinate(this.getCoordinate(), point);\n };\n /**\n * 获得所有的 legend 对应的 attribute 实例。\n * @returns 维度字段的 Attribute 数组\n */\n\n\n View.prototype.getLegendAttributes = function () {\n return flatten(this.geometries.map(function (g) {\n return g.getGroupAttributes();\n }));\n };\n /**\n * 获取所有的分组字段的 scale 实例。\n * @returns 获得分组字段的 scale 实例数组。\n */\n\n\n View.prototype.getGroupScales = function () {\n // 拿到所有的 Geometry 的 分组字段 scale,然后打平去重\n var scales = this.geometries.map(function (g) {\n return g.getGroupScales();\n });\n return uniq(flatten(scales));\n };\n /**\n * 获取 G.Canvas 实例。\n * @returns G.Canvas 画布实例。\n */\n\n\n View.prototype.getCanvas = function () {\n return this.getRootView().canvas;\n };\n /**\n * 获得根节点 view。\n */\n\n\n View.prototype.getRootView = function () {\n var v = this;\n\n while (true) {\n if (v.parent) {\n v = v.parent;\n continue;\n }\n\n break;\n }\n\n return v;\n };\n /**\n * 获取该数据在可视化后,对应的画布坐标点。\n * @param data 原始数据记录\n * @returns 对应的画布坐标点\n */\n\n\n View.prototype.getXY = function (data) {\n var coordinate = this.getCoordinate();\n var xScales = this.getScalesByDim('x');\n var yScales = this.getScalesByDim('y');\n var x;\n var y;\n each(data, function (value, key) {\n if (xScales[key]) {\n x = xScales[key].scale(value);\n }\n\n if (yScales[key]) {\n y = yScales[key].scale(value);\n }\n });\n\n if (!isNil(x) && !isNil(y)) {\n return coordinate.convert({\n x: x,\n y: y\n });\n }\n };\n /**\n * 获取 name 对应的 controller 实例\n * @param name\n */\n\n\n View.prototype.getController = function (name) {\n return find(this.controllers, function (c) {\n return c.name === name;\n });\n };\n /**\n * 显示 point 坐标点对应的 tooltip。\n * @param point 画布坐标点\n * @returns View\n */\n\n\n View.prototype.showTooltip = function (point) {\n var tooltip = this.getController('tooltip');\n\n if (tooltip) {\n tooltip.showTooltip(point);\n }\n\n return this;\n };\n /**\n * 隐藏 tooltip。\n * @returns View\n */\n\n\n View.prototype.hideTooltip = function () {\n var tooltip = this.getController('tooltip');\n\n if (tooltip) {\n tooltip.hideTooltip();\n }\n\n return this;\n };\n /**\n * 将 tooltip 锁定到当前位置不能移动。\n * @returns View\n */\n\n\n View.prototype.lockTooltip = function () {\n var tooltip = this.getController('tooltip');\n\n if (tooltip) {\n tooltip.lockTooltip();\n }\n\n return this;\n };\n /**\n * 将 tooltip 锁定解除。\n * @returns View\n */\n\n\n View.prototype.unlockTooltip = function () {\n var tooltip = this.getController('tooltip');\n\n if (tooltip) {\n tooltip.unlockTooltip();\n }\n\n return this;\n };\n /**\n * 是否锁定 tooltip。\n * @returns 是否锁定\n */\n\n\n View.prototype.isTooltipLocked = function () {\n var tooltip = this.getController('tooltip');\n return tooltip && tooltip.isTooltipLocked();\n };\n /**\n * 获取当前 point 对应的 tooltip 数据项。\n * @param point 坐标点\n * @returns tooltip 数据项\n */\n\n\n View.prototype.getTooltipItems = function (point) {\n var tooltip = this.getController('tooltip');\n return tooltip ? tooltip.getTooltipItems(point) : [];\n };\n /**\n * 获取逼近的点的数据集合\n * @param point 当前坐标点\n * @returns 数据\n */\n\n\n View.prototype.getSnapRecords = function (point) {\n var geometries = this.geometries;\n var rst = [];\n\n for (var i = 0, len = geometries.length; i < len; i++) {\n var geom = geometries[i];\n var dataArray = geom.dataArray;\n geom.sort(dataArray); // 先进行排序,便于 tooltip 查找\n\n var record = void 0;\n\n for (var j = 0, dataLen = dataArray.length; j < dataLen; j++) {\n var data = dataArray[j];\n record = findDataByPoint(point, data, geom);\n\n if (record) {\n rst.push(record);\n }\n }\n } // 同样递归处理子 views\n\n\n var views = this.views;\n\n for (var i = 0, len = views.length; i < len; i++) {\n var view = views[i];\n var snapRecords = view.getSnapRecords(point);\n rst = rst.concat(snapRecords);\n }\n\n return rst;\n };\n /**\n * 获取所有的 pure component 组件,用于布局。\n */\n\n\n View.prototype.getComponents = function () {\n var components = [];\n var controllers = this.controllers;\n\n for (var i = 0, len = controllers.length; i < len; i++) {\n var controller = controllers[i];\n components = components.concat(controller.getComponents());\n }\n\n return components;\n };\n /**\n * 将 data 数据进行过滤。\n * @param data\n * @returns 过滤之后的数据\n */\n\n\n View.prototype.filterData = function (data) {\n var filters = this.options.filters; // 不存在 filters,则不需要进行数据过滤\n\n if (size(filters) === 0) {\n return data;\n } // 存在过滤器,则逐个执行过滤,过滤器之间是 与 的关系\n\n\n return filter(data, function (datum, idx) {\n // 所有的 filter 字段\n var fields = Object.keys(filters); // 所有的条件都通过,才算通过\n\n return fields.every(function (field) {\n var condition = filters[field]; // condition 返回 true,则保留\n\n return condition(datum[field], datum, idx);\n });\n });\n };\n /**\n * 对某一个字段进行过滤\n * @param field\n * @param data\n */\n\n\n View.prototype.filterFieldData = function (field, data) {\n var filters = this.options.filters;\n var condition = get(filters, field);\n\n if (isUndefined(condition)) {\n return data;\n }\n\n return data.filter(function (datum, idx) {\n return condition(datum[field], datum, idx);\n });\n };\n /**\n * 调整 coordinate 的坐标范围。\n */\n\n\n View.prototype.adjustCoordinate = function () {\n var _a = this.getCoordinate(),\n curStart = _a.start,\n curEnd = _a.end;\n\n var start = this.coordinateBBox.bl;\n var end = this.coordinateBBox.tr; // 在 defaultLayoutFn 中只会在 coordinateBBox 发生变化的时候会调用 adjustCoordinate(),所以不用担心被置位\n\n if (isEqual(curStart, start) && isEqual(curEnd, end)) {\n this.isCoordinateChanged = false; // 如果大小没有变化则不更新\n\n return;\n }\n\n this.isCoordinateChanged = true;\n this.coordinateInstance = this.coordinateController.adjust(start, end);\n };\n\n View.prototype.paint = function (isUpdate) {\n this.renderDataRecursive(isUpdate); // 处理 sync scale 的逻辑\n\n this.syncScale();\n this.emit(VIEW_LIFE_CIRCLE.BEFORE_PAINT); // 初始化图形、组件位置,计算 padding\n\n this.renderPaddingRecursive(isUpdate); // 布局图形、组件\n\n this.renderLayoutRecursive(isUpdate); // 背景色 shape\n\n this.renderBackgroundStyleShape(); // 最终的绘制 render\n\n this.renderPaintRecursive(isUpdate);\n this.emit(VIEW_LIFE_CIRCLE.AFTER_PAINT);\n this.isDataChanged = false; // 渲染完毕复位\n };\n /**\n * 渲染背景样式的 shape。\n * 放到 view 中创建的原因是让使用 view 绘制图形的时候,也能够处理背景色\n */\n\n\n View.prototype.renderBackgroundStyleShape = function () {\n // 只有根节点才处理\n if (this.parent) {\n return;\n }\n\n var 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 } // 2. 有了 shape 之后设置背景,位置(更新的时候)\n\n\n var _a = this.viewBBox,\n x = _a.x,\n y = _a.y,\n width = _a.width,\n height = _a.height;\n this.backgroundStyleRectShape.attr({\n fill: background,\n x: x,\n y: y,\n width: width,\n height: height\n });\n } else {\n // 没有配置背景色\n if (this.backgroundStyleRectShape) {\n this.backgroundStyleRectShape.remove(true);\n this.backgroundStyleRectShape = undefined;\n }\n }\n };\n /**\n * 递归计算每个 view 的 padding 值,coordinateBBox 和 coordinateInstance\n * @param isUpdate\n */\n\n\n View.prototype.renderPaddingRecursive = function (isUpdate) {\n // 1. 子 view 大小相对 coordinateBBox,changeSize 的时候需要重新计算\n this.calculateViewBBox(); // 2. 更新 coordinate\n\n this.adjustCoordinate(); // 3. 初始化组件 component\n\n this.initComponents(isUpdate); // 4. 布局计算每隔 view 的 padding 值\n // 4.1. 自动加 auto padding -> absolute padding,并且增加 appendPadding\n\n this.autoPadding = calculatePadding(this).shrink(parsePadding(this.appendPadding)); // 4.2. 计算出新的 coordinateBBox,更新 Coordinate\n // 这里必须保留,原因是后面子 view 的 viewBBox 或根据 parent 的 coordinateBBox\n\n this.coordinateBBox = this.viewBBox.shrink(this.autoPadding.getPadding());\n this.adjustCoordinate(); // 刷新 tooltip (tooltip crosshairs 依赖 coordinate 位置)\n\n var tooltipController = this.controllers.find(function (c) {\n return c.name === 'tooltip';\n });\n tooltipController.update(); // 同样递归处理子 views\n\n var views = this.views;\n\n for (var i = 0, len = views.length; i < len; i++) {\n var view = views[i];\n view.renderPaddingRecursive(isUpdate);\n }\n };\n /**\n * 递归处理 view 的布局,最终是计算各个 view 的 coordinateBBox 和 coordinateInstance\n * @param isUpdate\n */\n\n\n View.prototype.renderLayoutRecursive = function (isUpdate) {\n // 1. 同步子 view padding\n // 根据配置获取 padding\n var syncViewPaddingFn = this.syncViewPadding === true ? defaultSyncViewPadding : isFunction(this.syncViewPadding) ? this.syncViewPadding : undefined;\n\n if (syncViewPaddingFn) {\n syncViewPaddingFn(this, this.views, PaddingCal); // 同步 padding 之后,更新 coordinate\n\n this.views.forEach(function (v) {\n v.coordinateBBox = v.viewBBox.shrink(v.autoPadding.getPadding());\n v.adjustCoordinate();\n });\n } // 3. 将 view 中的组件按照 view padding 移动到对应的位置\n\n\n this.doLayout(); // 同样递归处理子 views\n\n var views = this.views;\n\n for (var i = 0, len = views.length; i < len; i++) {\n var view = views[i];\n view.renderLayoutRecursive(isUpdate);\n }\n };\n /**\n * 最终递归绘制组件和图形\n * @param isUpdate\n */\n\n\n View.prototype.renderPaintRecursive = function (isUpdate) {\n var middleGroup = this.middleGroup;\n\n if (this.limitInPlot) {\n var _a = getCoordinateClipCfg(this.coordinateInstance),\n type = _a.type,\n attrs = _a.attrs;\n\n middleGroup.setClip({\n type: type,\n attrs: attrs\n });\n } else {\n // 清除已有的 clip\n middleGroup.setClip(undefined);\n } // 1. 渲染几何标记\n\n\n this.paintGeometries(isUpdate); // 2. 绘制组件\n\n this.renderComponents(isUpdate); // 同样递归处理子 views\n\n var views = this.views;\n\n for (var i = 0, len = views.length; i < len; i++) {\n var view = views[i];\n view.renderPaintRecursive(isUpdate);\n }\n }; // end Get 方法\n\n /**\n * 创建 scale,递归到顶层 view 去创建和缓存 scale\n * @param field\n * @param data\n * @param scaleDef\n * @param key\n */\n\n\n View.prototype.createScale = function (field, data, scaleDef, key) {\n // 1. 合并 field 对应的 scaleDef,合并原则是底层覆盖顶层(就近原则)\n var currentScaleDef = get(this.options.scales, [field]);\n\n var mergedScaleDef = __assign(__assign({}, currentScaleDef), scaleDef); // 2. 是否存在父 view,在则递归,否则创建\n\n\n if (this.parent) {\n return this.parent.createScale(field, data, mergedScaleDef, key);\n } // 3. 在根节点 view 通过 scalePool 创建\n\n\n return this.scalePool.createScale(field, data, mergedScaleDef, key);\n };\n /**\n * 递归渲染中的数据处理\n * @param isUpdate\n */\n\n\n View.prototype.renderDataRecursive = function (isUpdate) {\n // 1. 处理数据\n this.doFilterData(); // 2. 创建实例\n\n this.createCoordinate(); // 3. 初始化 Geometry\n\n this.initGeometries(isUpdate); // 4. 处理分面逻辑,最终都是生成子 view 和 geometry\n\n this.renderFacet(isUpdate); // 同样递归处理子 views\n\n var views = this.views;\n\n for (var i = 0, len = views.length; i < len; i++) {\n var view = views[i];\n view.renderDataRecursive(isUpdate);\n }\n };\n /**\n * 计算 region,计算实际的像素范围坐标\n * @private\n */\n\n\n View.prototype.calculateViewBBox = function () {\n var x;\n var y;\n var width;\n var height;\n\n if (this.parent) {\n var bbox = this.parent.coordinateBBox; // 存在 parent, 那么就是通过父容器大小计算\n\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 var _a = this.region,\n start = _a.start,\n end = _a.end; // 根据 region 计算当前 view 的 bbox 大小。\n\n var viewBBox = new BBox(x + width * start.x, y + height * start.y, width * (end.x - start.x), height * (end.y - start.y));\n\n if (!this.viewBBox || !this.viewBBox.isEqual(viewBBox)) {\n // viewBBox 发生变化的时候进行更新\n this.viewBBox = new BBox(x + width * start.x, y + height * start.y, width * (end.x - start.x), height * (end.y - start.y));\n } // 初始的 coordinate bbox 大小\n\n\n this.coordinateBBox = this.viewBBox;\n };\n /**\n * 初始化事件机制:G 4.0 底层内置支持 name:event 的机制,那么只要所有组件都有自己的 name 即可。\n *\n * G2 的事件只是获取事件委托,然后在 view 嵌套结构中,形成事件冒泡机制。\n * 当前 view 只委托自己 view 中的 Component 和 Geometry 事件,并向上冒泡\n * @private\n */\n\n\n View.prototype.initEvents = function () {\n // 三层 group 中的 shape 事件都会通过 G 冒泡上来的\n this.foregroundGroup.on('*', this.onDelegateEvents);\n this.middleGroup.on('*', this.onDelegateEvents);\n this.backgroundGroup.on('*', this.onDelegateEvents);\n this.canvas.on('*', this.onCanvasEvent);\n };\n /**\n * 初始化插件\n */\n\n\n View.prototype.initComponentController = function () {\n var usedControllers = this.usedControllers;\n\n for (var i = 0, len = usedControllers.length; i < len; i++) {\n var controllerName = usedControllers[i];\n var Ctor = getComponentController(controllerName);\n\n if (Ctor) {\n this.controllers.push(new Ctor(this));\n }\n }\n };\n\n View.prototype.createViewEvent = function (evt) {\n var shape = evt.shape,\n name = evt.name;\n var data = shape ? shape.get('origin') : null; // 事件在 view 嵌套中冒泡(暂不提供阻止冒泡的机制)\n\n var e = new Event(this, evt, data);\n e.type = name;\n return e;\n };\n /**\n * 处理 PLOT_EVENTS\n * plot event 需要处理所有的基础事件,并判断是否在画布中,然后再决定是否要 emit。\n * 对于 mouseenter、mouseleave 比较特殊,需要做一下数学比较。\n * @param e\n */\n\n\n View.prototype.doPlotEvent = function (e) {\n var type = e.type,\n x = e.x,\n y = e.y;\n var point = {\n x: x,\n y: y\n };\n var ALL_EVENTS = ['mousedown', 'mouseup', 'mousemove', 'mouseleave', 'mousewheel', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'click', 'dblclick', 'contextmenu'];\n\n if (ALL_EVENTS.includes(type)) {\n var currentInPlot = this.isPointInPlot(point);\n var newEvent = e.clone();\n\n if (currentInPlot) {\n var TYPE = \"plot:\".concat(type); // 组合 plot 事件\n\n newEvent.type = TYPE;\n this.emit(TYPE, newEvent);\n\n if (type === 'mouseleave' || type === 'touchend') {\n // 在plot 内部却离开画布\n this.isPreMouseInPlot = false;\n }\n } // 对于 mouseenter, mouseleave 的计算处理\n\n\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\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\n newEvent.type = PLOT_EVENTS.ENTER;\n this.emit(PLOT_EVENTS.ENTER, newEvent);\n } // 赋新的状态值\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\n newEvent.type = PLOT_EVENTS.LEAVE;\n this.emit(PLOT_EVENTS.LEAVE, newEvent);\n this.isPreMouseInPlot = false;\n }\n }\n }\n }; // view 生命周期 —— 渲染流程\n\n /**\n * 处理筛选器,筛选数据\n * @private\n */\n\n\n View.prototype.doFilterData = function () {\n var data = this.options.data;\n this.filteredData = this.filterData(data);\n };\n /**\n * 初始化 Geometries\n * @private\n */\n\n\n View.prototype.initGeometries = function (isUpdate) {\n // 初始化图形的之前,先创建 / 更新 scales\n this.createOrUpdateScales(); // 实例化 Geometry,然后 view 将所有的 scale 管理起来\n\n var coordinate = this.getCoordinate();\n var scaleDefs = get(this.options, 'scales', {});\n var geometries = this.geometries;\n\n for (var i = 0, len = geometries.length; i < len; i++) {\n var geometry = geometries[i]; // 保持 scales 引用不要变化\n\n geometry.scales = this.getGeometryScales();\n var cfg = {\n coordinate: coordinate,\n scaleDefs: 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 } // Geometry 初始化之后,生成了 scale,然后进行调整 scale 配置\n\n\n this.adjustScales();\n };\n /**\n * 根据 Geometry 的所有字段创建 scales\n * 如果存在,则更新,不存在则创建\n */\n\n\n View.prototype.createOrUpdateScales = function () {\n var fields = this.getScaleFields();\n var groupedFields = this.getGroupedFields();\n\n var _a = this.getOptions(),\n data = _a.data,\n _b = _a.scales,\n scales = _b === void 0 ? {} : _b;\n\n var filteredData = this.filteredData;\n\n for (var i = 0, len = fields.length; i < len; i++) {\n var field = fields[i];\n var scaleDef = scales[field]; // 调用方法,递归去创建\n\n var key = this.getScaleKey(field);\n this.createScale(field, // 分组字段的 scale 使用未过滤的数据创建\n groupedFields.includes(field) ? data : filteredData, scaleDef, key); // 缓存从当前 view 创建的 scale key\n\n this.createdScaleKeys.set(key, true);\n }\n };\n /**\n * 处理 scale 同步逻辑\n */\n\n\n View.prototype.syncScale = function () {\n // 最终调用 root view 的\n this.getRootView().scalePool.sync(this.getCoordinate(), this.theme);\n };\n /**\n * 获得 Geometry 中的 scale 对象\n */\n\n\n View.prototype.getGeometryScales = function () {\n var fields = this.getScaleFields();\n var scales = {};\n\n for (var i = 0; i < fields.length; i++) {\n var field = fields[i];\n scales[field] = this.getScaleByField(field);\n }\n\n return scales;\n };\n\n View.prototype.getScaleFields = function () {\n var fields = [];\n var tmpMap = new Map();\n var geometries = this.geometries;\n\n for (var i = 0; i < geometries.length; i++) {\n var geometry = geometries[i];\n var geometryScales = geometry.getScaleFields();\n uniq(geometryScales, fields, tmpMap);\n }\n\n return fields;\n };\n\n View.prototype.getGroupedFields = function () {\n var fields = [];\n var tmpMap = new Map();\n var geometries = this.geometries;\n\n for (var i = 0; i < geometries.length; i++) {\n var geometry = geometries[i];\n var groupFields = geometry.getGroupFields();\n uniq(groupFields, fields, tmpMap);\n }\n\n return fields;\n };\n /**\n * 调整 scale 配置\n * @private\n */\n\n\n View.prototype.adjustScales = function () {\n // 调整目前包括:\n // 分类 scale,调整 range 范围\n this.adjustCategoryScaleRange();\n };\n /**\n * 调整分类 scale 的 range,防止超出坐标系外面\n * @private\n */\n\n\n View.prototype.adjustCategoryScaleRange = function () {\n var _this = this;\n\n var xyScales = __spreadArray([this.getXScale()], __read(this.getYScales()), false).filter(function (e) {\n return !!e;\n });\n\n var coordinate = this.getCoordinate();\n var scaleOptions = this.options.scales;\n each(xyScales, function (scale) {\n var field = scale.field,\n values = scale.values,\n isCategory = scale.isCategory,\n isIdentity = scale.isIdentity; // 分类或者 identity 的 scale 才进行处理\n\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 * 根据 options 配置、Geometry 字段配置,自动生成 components\n * @param isUpdate 是否是更新\n * @private\n */\n\n\n View.prototype.initComponents = function (isUpdate) {\n // 先全部清空,然后 render\n var controllers = this.controllers;\n\n for (var i = 0; i < controllers.length; i++) {\n var controller = controllers[i]; // 更新则走更新逻辑;否则清空载重绘\n\n if (isUpdate) {\n controller.update();\n } else {\n controller.clear();\n controller.render();\n }\n }\n };\n\n View.prototype.doLayout = function () {\n this.layoutFunc(this);\n };\n /**\n * 创建坐标系\n * @private\n */\n\n\n View.prototype.createCoordinate = function () {\n var start = this.coordinateBBox.bl;\n var end = this.coordinateBBox.tr;\n this.coordinateInstance = this.coordinateController.create(start, end);\n };\n /**\n * 根据 options 配置自动渲染 geometry\n * @private\n */\n\n\n View.prototype.paintGeometries = function (isUpdate) {\n var doAnimation = this.options.animate; // geometry 的 paint 阶段\n\n var coordinate = this.getCoordinate();\n var 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 var geometries = this.geometries;\n\n for (var i = 0; i < geometries.length; i++) {\n var geometry = geometries[i];\n geometry.coordinate = coordinate;\n geometry.canvasRegion = canvasRegion;\n\n if (!doAnimation) {\n // 如果 view 不执行动画,那么 view 下所有的 geometry 都不执行动画\n geometry.animate(false);\n }\n\n geometry.paint(isUpdate);\n }\n };\n /**\n * 最后的绘制组件\n * @param isUpdate\n */\n\n\n View.prototype.renderComponents = function (isUpdate) {\n // 先全部清空,然后 render\n for (var i = 0; i < this.getComponents().length; i++) {\n var co = this.getComponents()[i];\n co.component.render();\n }\n };\n /**\n * 渲染分面,会在其中进行数据分面,然后进行子 view 创建\n * @param isUpdate\n */\n\n\n View.prototype.renderFacet = function (isUpdate) {\n if (this.facetInstance) {\n if (isUpdate) {\n this.facetInstance.update();\n } else {\n this.facetInstance.clear(); // 计算分面数据\n\n this.facetInstance.init(); // 渲染组件和 views\n\n this.facetInstance.render();\n }\n }\n };\n\n View.prototype.initOptions = function () {\n var _this = this;\n\n var _a = this.options,\n _b = _a.geometries,\n geometries = _b === void 0 ? [] : _b,\n _c = _a.interactions,\n interactions = _c === void 0 ? [] : _c,\n _d = _a.views,\n views = _d === void 0 ? [] : _d,\n _e = _a.annotations,\n annotations = _e === void 0 ? [] : _e,\n coordinate = _a.coordinate,\n events = _a.events,\n facets = _a.facets; // 设置坐标系\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 } // 创建 geometry 实例\n\n\n for (var i = 0; i < geometries.length; i++) {\n var geometryOption = geometries[i];\n this.createGeometry(geometryOption);\n } // 创建 interactions 实例\n\n\n for (var j = 0; j < interactions.length; j++) {\n var interactionOption = interactions[j];\n var type = interactionOption.type,\n cfg = interactionOption.cfg;\n this.interaction(type, cfg);\n } // 创建 view 实例\n\n\n for (var k = 0; k < views.length; k++) {\n var viewOption = views[k];\n this.createView(viewOption);\n } // 设置 annotation\n\n\n var annotationComponent = this.getController('annotation');\n\n for (var l = 0; l < annotations.length; l++) {\n var annotationOption = annotations[l];\n annotationComponent.annotation(annotationOption);\n } // 设置 events\n\n\n if (events) {\n each(events, function (eventCallback, eventName) {\n _this.on(eventName, eventCallback);\n });\n }\n\n if (facets) {\n each(facets, function (facet) {\n var type = facet.type,\n rest = __rest(facet, [\"type\"]);\n\n _this.facet(type, rest);\n });\n }\n };\n\n View.prototype.createGeometry = function (geometryOption) {\n var type = geometryOption.type,\n _a = geometryOption.cfg,\n cfg = _a === void 0 ? {} : _a;\n\n if (this[type]) {\n var geometry_1 = this[type](cfg);\n each(geometryOption, function (v, k) {\n if (isFunction(geometry_1[k])) {\n geometry_1[k](v);\n }\n });\n }\n };\n /**\n * scale key 的创建方式\n * @param field\n */\n\n\n View.prototype.getScaleKey = function (field) {\n return \"\".concat(this.id, \"-\").concat(field);\n };\n\n return View;\n}(Base);\n\nexport { View };\n/**\n * 注册 geometry 组件\n * @param name\n * @param Ctor\n * @returns Geometry\n */\n\nexport function registerGeometry(name, Ctor) {\n // 语法糖,在 view API 上增加原型方法\n View.prototype[name.toLowerCase()] = function (cfg) {\n if (cfg === void 0) {\n cfg = {};\n }\n\n var props = __assign({\n /** 图形容器 */\n container: this.middleGroup.addGroup(),\n labelsContainer: this.foregroundGroup.addGroup()\n }, cfg);\n\n var geometry = new Ctor(props);\n this.geometries.push(geometry);\n return geometry;\n };\n}\nexport default View;","import { __assign, __extends } from \"tslib\";\nimport { debounce, each, isString } from '@antv/util';\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';\n/**\n * Chart 类,是使用 G2 进行绘图的入口。\n */\n\nvar Chart =\n/** @class */\nfunction (_super) {\n __extends(Chart, _super); // @ts-ignore\n\n\n function Chart(props) {\n var _this = this;\n\n var container = props.container,\n width = props.width,\n height = props.height,\n _a = props.autoFit,\n autoFit = _a === void 0 ? false : _a,\n padding = props.padding,\n appendPadding = props.appendPadding,\n _b = props.renderer,\n renderer = _b === void 0 ? 'canvas' : _b,\n pixelRatio = props.pixelRatio,\n _c = props.localRefresh,\n localRefresh = _c === void 0 ? true : _c,\n _d = props.visible,\n visible = _d === void 0 ? true : _d,\n _e = props.supportCSSTransform,\n supportCSSTransform = _e === void 0 ? false : _e,\n _f = props.defaultInteractions,\n defaultInteractions = _f === void 0 ? ['tooltip', 'legend-filter', 'legend-active', 'continuous-filter', 'ellipsis-text', 'axis-description'] : _f,\n options = props.options,\n limitInPlot = props.limitInPlot,\n theme = props.theme,\n syncViewPadding = props.syncViewPadding;\n var ele = isString(container) ? document.getElementById(container) : container; // 生成内部正式绘制的 div 元素\n\n var wrapperElement = createDom('
');\n ele.appendChild(wrapperElement); // if autoFit, use the container size, to avoid the graph render twice.\n\n var size = getChartSize(ele, autoFit, width, height);\n var G = getEngine(renderer);\n var canvas = new G.Canvas(__assign({\n container: wrapperElement,\n pixelRatio: pixelRatio,\n localRefresh: localRefresh,\n supportCSSTransform: supportCSSTransform\n }, size)); // 调用 view 的创建\n\n _this = _super.call(this, {\n parent: null,\n canvas: canvas,\n // create 3 group layers for views.\n backgroundGroup: canvas.addGroup({\n zIndex: GROUP_Z_INDEX.BG\n }),\n middleGroup: canvas.addGroup({\n zIndex: GROUP_Z_INDEX.MID\n }),\n foregroundGroup: canvas.addGroup({\n zIndex: GROUP_Z_INDEX.FORE\n }),\n padding: padding,\n appendPadding: appendPadding,\n visible: visible,\n options: options,\n limitInPlot: limitInPlot,\n theme: theme,\n syncViewPadding: syncViewPadding\n }) || this;\n /**\n * when container size changed, change chart size props, and re-render.\n */\n\n _this.onResize = debounce(function () {\n _this.forceFit();\n }, 300);\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 _this.updateCanvasStyle();\n\n _this.bindAutoFit();\n\n _this.initDefaultInteractions(defaultInteractions);\n\n return _this;\n }\n\n Chart.prototype.initDefaultInteractions = function (interactions) {\n var _this = this;\n\n each(interactions, function (interaction) {\n _this.interaction(interaction);\n });\n };\n /**\n * 设置 WAI-ARIA 无障碍标签。如何根据图形语法自动生成 arial 内容?\n * @param ariaOption\n */\n\n\n Chart.prototype.aria = function (ariaOption) {\n var ATTR = 'aria-label';\n\n if (ariaOption === false) {\n this.ele.removeAttribute(ATTR);\n } else {\n this.ele.setAttribute(ATTR, ariaOption.label);\n }\n };\n /**\n * 改变图表大小,同时重新渲染。\n * @param width 图表宽度\n * @param height 图表高度\n * @returns\n */\n\n\n Chart.prototype.changeSize = function (width, height) {\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 this.width = width;\n this.height = height;\n this.canvas.changeSize(width, height); // 重新渲染\n\n this.render(true);\n this.emit(VIEW_LIFE_CIRCLE.AFTER_CHANGE_SIZE);\n return this;\n };\n /**\n * 清空图表,同时清除掉 aria 配置\n */\n\n\n Chart.prototype.clear = function () {\n _super.prototype.clear.call(this);\n\n this.aria(false);\n };\n /**\n * 销毁图表,同时解绑事件,销毁创建的 G.Canvas 实例。\n * @returns void\n */\n\n\n Chart.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n\n this.unbindAutoFit();\n this.canvas.destroy();\n removeDom(this.wrapperElement);\n this.wrapperElement = null;\n };\n /**\n * 显示或隐藏图表\n * @param visible 是否可见,true 表示显示,false 表示隐藏\n * @returns\n */\n\n\n Chart.prototype.changeVisible = function (visible) {\n _super.prototype.changeVisible.call(this, visible); // 需要更新 visible 变量\n\n\n this.wrapperElement.style.display = visible ? '' : 'none';\n return this;\n };\n /**\n * 自动根据容器大小 resize 画布\n */\n\n\n Chart.prototype.forceFit = function () {\n // skip if already destroyed\n if (!this.destroyed) {\n // 注意第二参数用 true,意思是即时 autoFit = false,forceFit() 调用之后一样是适配容器\n var _a = getChartSize(this.ele, true, this.width, this.height),\n width = _a.width,\n height = _a.height;\n\n this.changeSize(width, height);\n }\n };\n\n Chart.prototype.updateCanvasStyle = function () {\n modifyCSS(this.canvas.get('el'), {\n display: 'inline-block',\n verticalAlign: 'middle'\n });\n };\n\n Chart.prototype.bindAutoFit = function () {\n if (this.autoFit) {\n window.addEventListener('resize', this.onResize);\n }\n };\n\n Chart.prototype.unbindAutoFit = function () {\n if (this.autoFit) {\n window.removeEventListener('resize', this.onResize);\n }\n };\n\n return Chart;\n}(View);\n\nexport default Chart;","import { each } from '@antv/util';\n/**\n * Component Controller 规范需要定义的基类\n * 1. 规范的 option 输入\n * 2. 统一的信息获取 API\n * 3. 明确定义的组件事件(名称、数据)\n */\n\nvar Controller =\n/** @class */\nfunction () {\n function Controller(view) {\n /** 是否可见 */\n this.visible = true;\n /** 所有的 component */\n\n this.components = [];\n this.view = view;\n }\n /**\n * clear\n * @param includeOption 是否清空 option 配置项(used in annotation)\n */\n\n\n Controller.prototype.clear = function (includeOption) {\n // destroy all components\n each(this.components, function (co) {\n co.component.destroy();\n }); // clear all component instance\n\n this.components = [];\n };\n /**\n * destroy the component\n */\n\n\n Controller.prototype.destroy = function () {\n this.clear();\n };\n /**\n * get all components\n * @returns components array\n */\n\n\n Controller.prototype.getComponents = function () {\n return this.components;\n };\n /**\n * change visibility of component\n * @param visible\n */\n\n\n Controller.prototype.changeVisible = function (visible) {\n if (this.visible === visible) {\n return;\n }\n\n this.components.forEach(function (co) {\n if (visible) {\n co.component.show();\n } else {\n co.component.hide();\n }\n });\n this.visible = visible;\n };\n\n return Controller;\n}();\n\nexport { Controller };","import { __assign, __extends, __values } from \"tslib\";\nimport { deepMix, find, get, isEqual, isFunction, mix, isString, isBoolean, flatten, isArray } from '@antv/util';\nimport { Crosshair, HtmlTooltip } from '../../dependents';\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'; // Filter duplicates, use `name`, `color`, `value` and `title` property values as condition\n\nfunction uniq(items) {\n var uniqItems = [];\n\n var _loop_1 = function _loop_1(index) {\n var item = items[index];\n var result = find(uniqItems, function (subItem) {\n return subItem.color === item.color && subItem.name === item.name && subItem.value === item.value && subItem.title === item.title;\n });\n\n if (!result) {\n uniqItems.push(item);\n }\n };\n\n for (var index = 0; index < items.length; index++) {\n _loop_1(index);\n }\n\n return uniqItems;\n}\n/** @ignore */\n\n\nvar Tooltip =\n/** @class */\nfunction (_super) {\n __extends(Tooltip, _super);\n\n function Tooltip() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.isLocked = false;\n return _this;\n }\n\n Object.defineProperty(Tooltip.prototype, \"name\", {\n get: function get() {\n return 'tooltip';\n },\n enumerable: false,\n configurable: true\n });\n\n Tooltip.prototype.init = function () {};\n\n Tooltip.prototype.isVisible = function () {\n var option = this.view.getOptions().tooltip;\n return option !== false;\n };\n\n Tooltip.prototype.render = function () {};\n /**\n * Shows tooltip\n * @param point\n */\n\n\n Tooltip.prototype.showTooltip = function (point) {\n this.point = point;\n\n if (!this.isVisible()) {\n // 如果设置 tooltip(false) 则始终不显示\n return;\n }\n\n var view = this.view;\n var items = this.getTooltipItems(point);\n\n if (!items.length) {\n // 无内容则不展示,同时 tooltip 需要隐藏\n this.hideTooltip();\n return;\n }\n\n var title = this.getTitle(items);\n var dataPoint = {\n x: items[0].x,\n y: items[0].y\n }; // 数据点位置\n\n view.emit('tooltip:show', Event.fromData(view, 'tooltip:show', __assign({\n items: items,\n title: title\n }, point)));\n var cfg = this.getTooltipCfg();\n var follow = cfg.follow,\n showMarkers = cfg.showMarkers,\n showCrosshairs = cfg.showCrosshairs,\n showContent = cfg.showContent,\n marker = cfg.marker;\n var lastItems = this.items;\n var lastTitle = this.title;\n\n if (!isEqual(lastTitle, title) || !isEqual(lastItems, items)) {\n // 内容发生变化了更新 tooltip\n view.emit('tooltip:change', Event.fromData(view, 'tooltip:change', __assign({\n items: items,\n title: title\n }, point)));\n\n if (isFunction(showContent) ? showContent(items) : showContent) {\n // 展示 tooltip 内容框才渲染 tooltip\n if (!this.tooltip) {\n // 延迟生成\n this.renderTooltip();\n }\n\n this.tooltip.update(mix({}, cfg, {\n items: this.getItemsAfterProcess(items),\n title: title\n }, follow ? point : {}));\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 var isCrosshairsFollowCursor = get(cfg, ['crosshairs', 'follow'], false); // 辅助线是否要跟随鼠标\n\n this.renderCrosshairs(isCrosshairsFollowCursor ? point : dataPoint, cfg);\n }\n };\n\n Tooltip.prototype.hideTooltip = function () {\n var follow = this.getTooltipCfg().follow;\n\n if (!follow) {\n this.point = null;\n return;\n } // hide the tooltipMarkers\n\n\n var tooltipMarkersGroup = this.tooltipMarkersGroup;\n\n if (tooltipMarkersGroup) {\n tooltipMarkersGroup.hide();\n } // hide crosshairs\n\n\n var xCrosshair = this.xCrosshair;\n var yCrosshair = this.yCrosshair;\n\n if (xCrosshair) {\n xCrosshair.hide();\n }\n\n if (yCrosshair) {\n yCrosshair.hide();\n }\n\n var tooltip = this.tooltip;\n\n if (tooltip) {\n tooltip.hide();\n }\n\n this.view.emit('tooltip:hide', Event.fromData(this.view, 'tooltip:hide', {}));\n this.point = null;\n };\n /**\n * lockTooltip\n */\n\n\n Tooltip.prototype.lockTooltip = function () {\n this.isLocked = true;\n\n if (this.tooltip) {\n // tooltip contianer 可捕获事件\n this.tooltip.setCapture(true);\n }\n };\n /**\n * unlockTooltip\n */\n\n\n Tooltip.prototype.unlockTooltip = function () {\n this.isLocked = false;\n var cfg = this.getTooltipCfg();\n\n if (this.tooltip) {\n // 重置 capture 属性\n this.tooltip.setCapture(cfg.capture);\n }\n };\n /**\n * isTooltipLocked\n */\n\n\n Tooltip.prototype.isTooltipLocked = function () {\n return this.isLocked;\n };\n\n Tooltip.prototype.clear = function () {\n var _a = this,\n tooltip = _a.tooltip,\n xCrosshair = _a.xCrosshair,\n yCrosshair = _a.yCrosshair,\n tooltipMarkersGroup = _a.tooltipMarkersGroup;\n\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 } // 如果 customContent 不为空,就重新生成 tooltip\n\n\n if (tooltip === null || tooltip === void 0 ? void 0 : tooltip.get('customContent')) {\n this.tooltip.destroy();\n this.tooltip = null;\n } // title 和 items 需要清空, 否则 tooltip 内容会出现置空的情况\n // 即:需要走进 !isEqual(lastTitle, title) || !isEqual(lastItems, items) 的逻辑,更新 tooltip 的内容\n\n\n this.title = null;\n this.items = null;\n };\n\n Tooltip.prototype.destroy = function () {\n if (this.tooltip) {\n this.tooltip.destroy();\n }\n\n if (this.xCrosshair) {\n this.xCrosshair.destroy();\n }\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 Tooltip.prototype.reset = function () {\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 Tooltip.prototype.changeVisible = function (visible) {\n if (this.visible === visible) {\n return;\n }\n\n var _a = this,\n tooltip = _a.tooltip,\n tooltipMarkersGroup = _a.tooltipMarkersGroup,\n xCrosshair = _a.xCrosshair,\n yCrosshair = _a.yCrosshair;\n\n if (visible) {\n if (tooltip) {\n tooltip.show();\n }\n\n if (tooltipMarkersGroup) {\n tooltipMarkersGroup.show();\n }\n\n if (xCrosshair) {\n xCrosshair.show();\n }\n\n if (yCrosshair) {\n yCrosshair.show();\n }\n } else {\n if (tooltip) {\n tooltip.hide();\n }\n\n if (tooltipMarkersGroup) {\n tooltipMarkersGroup.hide();\n }\n\n if (xCrosshair) {\n xCrosshair.hide();\n }\n\n if (yCrosshair) {\n yCrosshair.hide();\n }\n }\n\n this.visible = visible;\n };\n\n Tooltip.prototype.getTooltipItems = function (point) {\n var e_1, _a, e_2, _b, e_3, _c;\n\n var items = this.findItemsFromView(this.view, point);\n\n if (items.length) {\n // 三层\n items = flatten(items);\n\n try {\n for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {\n var itemArr = items_1_1.value;\n\n try {\n for (var itemArr_1 = (e_2 = void 0, __values(itemArr)), itemArr_1_1 = itemArr_1.next(); !itemArr_1_1.done; itemArr_1_1 = itemArr_1.next()) {\n var item = itemArr_1_1.value;\n var _d = item.mappingData,\n x = _d.x,\n y = _d.y;\n item.x = isArray(x) ? x[x.length - 1] : x;\n item.y = isArray(y) ? y[y.length - 1] : y;\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (itemArr_1_1 && !itemArr_1_1.done && (_b = itemArr_1[\"return\"])) _b.call(itemArr_1);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1[\"return\"])) _a.call(items_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n var shared = this.getTooltipCfg().shared; // shared: false 代表只显示当前拾取到的 shape 的数据,但是一个 view 会有多个 Geometry,所以有可能会拾取到多个 shape\n\n if (shared === false && items.length > 1) {\n var snapItem = items[0];\n var min = Math.abs(point.y - snapItem[0].y);\n\n try {\n for (var items_2 = __values(items), items_2_1 = items_2.next(); !items_2_1.done; items_2_1 = items_2.next()) {\n var aItem = items_2_1.value;\n var yDistance = Math.abs(point.y - aItem[0].y);\n\n if (yDistance <= min) {\n snapItem = aItem;\n min = yDistance;\n }\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (items_2_1 && !items_2_1.done && (_c = items_2[\"return\"])) _c.call(items_2);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n\n items = [snapItem];\n }\n\n return uniq(flatten(items));\n }\n\n return [];\n };\n\n Tooltip.prototype.layout = function () {};\n\n Tooltip.prototype.update = function () {\n if (this.point) {\n this.showTooltip(this.point);\n }\n\n if (this.tooltip) {\n // #2279 修复resize之后tooltip越界的问题\n // 确保tooltip已经创建的情况下\n var canvas = this.view.getCanvas(); // TODO 逍为 tooltip 的区域不应该是 canvas,而应该是整个 特别是在图比较小的时候\n // 更新 region\n\n this.tooltip.set('region', {\n start: {\n x: 0,\n y: 0\n },\n end: {\n x: canvas.get('width'),\n y: canvas.get('height')\n }\n });\n }\n };\n /**\n * 当前鼠标点是在 enter tooltip 中\n * @param point\n */\n\n\n Tooltip.prototype.isCursorEntered = function (point) {\n // 是可捕获的,并且点在 tooltip dom 上\n if (this.tooltip) {\n var el = this.tooltip.getContainer();\n var capture = this.tooltip.get('capture');\n\n if (el && capture) {\n var _a = el.getBoundingClientRect(),\n x = _a.x,\n y = _a.y,\n width = _a.width,\n height = _a.height;\n\n return new BBox(x, y, width, height).isPointIn(point);\n }\n }\n\n return false;\n }; // 获取 tooltip 配置,因为用户可能会通过 view.tooltip() 重新配置 tooltip,所以就不做缓存,每次直接读取\n\n\n Tooltip.prototype.getTooltipCfg = function () {\n var view = this.view;\n var option = view.getOptions().tooltip;\n var processOption = this.processCustomContent(option);\n var theme = view.getTheme();\n var defaultCfg = get(theme, ['components', 'tooltip'], {});\n var enterable = get(processOption, 'enterable', defaultCfg.enterable);\n return deepMix({}, defaultCfg, processOption, {\n capture: enterable || this.isLocked ? true : false\n });\n }; // process customContent\n\n\n Tooltip.prototype.processCustomContent = function (option) {\n if (isBoolean(option) || !get(option, 'customContent')) {\n return option;\n }\n\n var currentCustomContent = option.customContent;\n\n var customContent = function customContent(title, items) {\n var content = currentCustomContent(title, items) || '';\n return isString(content) ? '
' + content + '
' : content;\n };\n\n return __assign(__assign({}, option), {\n customContent: customContent\n });\n };\n\n Tooltip.prototype.getTitle = function (items) {\n var title = items[0].title || items[0].name;\n this.title = title;\n return title;\n };\n\n Tooltip.prototype.renderTooltip = function () {\n var canvas = this.view.getCanvas();\n var region = {\n start: {\n x: 0,\n y: 0\n },\n end: {\n x: canvas.get('width'),\n y: canvas.get('height')\n }\n };\n var cfg = this.getTooltipCfg();\n var tooltip = new HtmlTooltip(__assign(__assign({\n parent: canvas.get('el').parentNode,\n region: region\n }, cfg), {\n visible: false,\n crosshairs: null\n }));\n tooltip.init();\n this.tooltip = tooltip;\n };\n\n Tooltip.prototype.renderTooltipMarkers = function (items, marker) {\n var e_4, _a;\n\n var tooltipMarkersGroup = this.getTooltipMarkersGroup();\n var rootView = this.view.getRootView();\n var limitInPlot = rootView.limitInPlot;\n\n try {\n for (var items_3 = __values(items), items_3_1 = items_3.next(); !items_3_1.done; items_3_1 = items_3.next()) {\n var item = items_3_1.value;\n var x = item.x,\n y = item.y; // 有裁剪就剪切\n\n if (limitInPlot || (tooltipMarkersGroup === null || tooltipMarkersGroup === void 0 ? void 0 : tooltipMarkersGroup.getClip())) {\n var _b = getCoordinateClipCfg(rootView.getCoordinate()),\n type = _b.type,\n attrs_1 = _b.attrs;\n\n tooltipMarkersGroup === null || tooltipMarkersGroup === void 0 ? void 0 : tooltipMarkersGroup.setClip({\n type: type,\n attrs: attrs_1\n });\n } else {\n // 清除已有的 clip\n tooltipMarkersGroup === null || tooltipMarkersGroup === void 0 ? void 0 : tooltipMarkersGroup.setClip(undefined);\n }\n\n var theme = this.view.getTheme();\n var markerDefaultCfg = get(theme, ['components', 'tooltip', 'marker'], {});\n\n var attrs = __assign(__assign({\n fill: item.color,\n symbol: 'circle',\n shadowColor: item.color\n }, isFunction(marker) ? __assign(__assign({}, markerDefaultCfg), marker(item)) : marker), {\n x: x,\n y: y\n });\n\n tooltipMarkersGroup.addShape('marker', {\n attrs: attrs\n });\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (items_3_1 && !items_3_1.done && (_a = items_3[\"return\"])) _a.call(items_3);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n };\n\n Tooltip.prototype.renderCrosshairs = function (point, cfg) {\n var crosshairsType = get(cfg, ['crosshairs', 'type'], 'x'); // 默认展示 x 轴上的辅助线\n\n if (crosshairsType === 'x') {\n if (this.yCrosshair) {\n this.yCrosshair.hide();\n }\n\n this.renderXCrosshairs(point, cfg);\n } else if (crosshairsType === 'y') {\n if (this.xCrosshair) {\n this.xCrosshair.hide();\n }\n\n this.renderYCrosshairs(point, cfg);\n } else if (crosshairsType === 'xy') {\n this.renderXCrosshairs(point, cfg);\n this.renderYCrosshairs(point, cfg);\n }\n }; // 渲染 x 轴上的 tooltip 辅助线\n\n\n Tooltip.prototype.renderXCrosshairs = function (point, tooltipCfg) {\n var coordinate = this.getViewWithGeometry(this.view).getCoordinate();\n var start;\n var end;\n\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 var angle = getAngleByPoint(coordinate, point);\n var center = coordinate.getCenter();\n var radius = coordinate.getRadius();\n end = polarToCartesian(center.x, center.y, radius, angle);\n start = center;\n }\n\n var cfg = deepMix({\n start: start,\n end: end,\n container: this.getTooltipCrosshairsGroup()\n }, get(tooltipCfg, 'crosshairs', {}), this.getCrosshairsText('x', point, tooltipCfg));\n delete cfg.type; // 与 Crosshairs 组件的 type 冲突故删除\n\n var xCrosshair = this.xCrosshair;\n\n if (xCrosshair) {\n xCrosshair.update(cfg);\n } else {\n xCrosshair = new Crosshair.Line(cfg);\n xCrosshair.init();\n }\n\n xCrosshair.render();\n xCrosshair.show();\n this.xCrosshair = xCrosshair;\n }; // 渲染 y 轴上的辅助线\n\n\n Tooltip.prototype.renderYCrosshairs = function (point, tooltipCfg) {\n var coordinate = this.getViewWithGeometry(this.view).getCoordinate();\n var cfg;\n var type;\n\n if (coordinate.isRect) {\n var start = void 0;\n var end = void 0;\n\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\n cfg = {\n start: start,\n end: 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 container: this.getTooltipCrosshairsGroup()\n }, cfg, get(tooltipCfg, 'crosshairs', {}), this.getCrosshairsText('y', point, tooltipCfg));\n delete cfg.type; // 与 Crosshairs 组件的 type 冲突故删除\n\n var yCrosshair = this.yCrosshair;\n\n if (yCrosshair) {\n // 如果坐标系发生直角坐标系与极坐标的切换操作\n if (coordinate.isRect && yCrosshair.get('type') === 'circle' || !coordinate.isRect && yCrosshair.get('type') === 'line') {\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\n yCrosshair.render();\n yCrosshair.show();\n this.yCrosshair = yCrosshair;\n };\n\n Tooltip.prototype.getCrosshairsText = function (type, point, tooltipCfg) {\n var textCfg = get(tooltipCfg, ['crosshairs', 'text']);\n var follow = get(tooltipCfg, ['crosshairs', 'follow']);\n var items = this.items;\n\n if (textCfg) {\n var view = this.getViewWithGeometry(this.view); // 需要展示文本\n\n var firstItem = items[0];\n var xScale = view.getXScale();\n var yScale = view.getYScales()[0];\n var xValue = void 0;\n var yValue = void 0;\n\n if (follow) {\n // 如果需要跟随鼠标移动,就需要将当前鼠标坐标点转换为对应的数值\n var invertPoint = this.view.getCoordinate().invert(point);\n xValue = xScale.invert(invertPoint.x); // 转换为原始值\n\n yValue = yScale.invert(invertPoint.y); // 转换为原始值\n } else {\n xValue = firstItem.data[xScale.field];\n yValue = firstItem.data[yScale.field];\n }\n\n var content = type === 'x' ? xValue : yValue;\n\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 }; // 获取存储 tooltipMarkers 和 crosshairs 的容器\n\n\n Tooltip.prototype.getGuideGroup = function () {\n if (!this.guideGroup) {\n var foregroundGroup = this.view.foregroundGroup;\n this.guideGroup = foregroundGroup.addGroup({\n name: 'tooltipGuide',\n capture: false\n });\n }\n\n return this.guideGroup;\n }; // 获取 tooltipMarkers 存储的容器\n\n\n Tooltip.prototype.getTooltipMarkersGroup = function () {\n var tooltipMarkersGroup = this.tooltipMarkersGroup;\n\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\n return tooltipMarkersGroup;\n }; // 获取 tooltip crosshairs 存储的容器\n\n\n Tooltip.prototype.getTooltipCrosshairsGroup = function () {\n var tooltipCrosshairsGroup = this.tooltipCrosshairsGroup;\n\n if (!tooltipCrosshairsGroup) {\n tooltipCrosshairsGroup = this.getGuideGroup().addGroup({\n name: 'tooltipCrosshairsGroup',\n capture: false\n });\n tooltipCrosshairsGroup.toBack();\n this.tooltipCrosshairsGroup = tooltipCrosshairsGroup;\n }\n\n return tooltipCrosshairsGroup;\n };\n\n Tooltip.prototype.findItemsFromView = function (view, point) {\n var e_5, _a;\n\n if (view.getOptions().tooltip === false) {\n // 如果 view 关闭了 tooltip\n return [];\n }\n\n var tooltipCfg = this.getTooltipCfg();\n var result = findItemsFromView(view, point, tooltipCfg);\n\n try {\n // 递归查找,并合并结果\n for (var _b = __values(view.views), _c = _b.next(); !_c.done; _c = _b.next()) {\n var childView = _c.value;\n result = result.concat(this.findItemsFromView(childView, point));\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n return result;\n }; // FIXME: hack 方法\n // 因为 tooltip 的交互是挂载在 Chart 上,所以当chart 上没有绘制 Geometry 的时候,就查找不到数据,并且绘图区域同子 View 的区域不同\n\n\n Tooltip.prototype.getViewWithGeometry = function (view) {\n var _this = this;\n\n if (view.geometries.length) {\n return view;\n }\n\n return find(view.views, function (childView) {\n return _this.getViewWithGeometry(childView);\n });\n };\n /**\n * 根据用户配置的 items 配置,来进行用户自定义的处理,并返回最终的 items\n * 默认不做任何处理\n */\n\n\n Tooltip.prototype.getItemsAfterProcess = function (originalItems) {\n var customItems = this.getTooltipCfg().customItems;\n var fn = customItems ? customItems : function (v) {\n return v;\n };\n return fn(originalItems);\n };\n\n return Tooltip;\n}(Controller);\n\nexport default Tooltip;","var ANIMATIONS_MAP = {};\n/**\n * 根据名称获取对应的动画执行函数\n * @param type 动画函数名称\n */\n\nexport function getAnimation(type) {\n return ANIMATIONS_MAP[type.toLowerCase()];\n}\n/**\n * 注册动画执行函数\n * @param type 动画执行函数名称\n * @param animation 动画执行函数\n */\n\nexport function registerAnimation(type, animation) {\n ANIMATIONS_MAP[type.toLowerCase()] = animation;\n}","import { __assign } from \"tslib\";\nimport { deepMix, get, isFunction } from '@antv/util';\nimport { FIELD_ORIGIN } from '../constant';\nimport { getAnimation } from './animation'; // 默认的动画参数配置\n\nexport var 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}; // 各个 Geometry 默认的动画执行函数\n\nvar GEOMETRY_ANIMATE_CFG = {\n interval: function interval(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}; // 各个 Geometry 默认的群组出场动画\n\nvar GEOMETRY_GROUP_APPEAR_ANIMATION = {\n line: function line() {\n return {\n animation: 'wave-in'\n };\n },\n area: function area() {\n return {\n animation: 'wave-in'\n };\n },\n path: function path() {\n return {\n animation: 'fade-in'\n };\n },\n interval: function interval(coordinate) {\n var animation;\n\n if (coordinate.isRect) {\n animation = coordinate.isTransposed ? 'grow-in-x' : 'grow-in-y';\n } else {\n animation = 'grow-in-xy';\n\n if (coordinate.isPolar && coordinate.isTransposed) {\n // pie chart\n animation = 'wave-in';\n }\n }\n\n return {\n animation: animation\n };\n },\n schema: function schema(coordinate) {\n var animation;\n\n if (coordinate.isRect) {\n animation = coordinate.isTransposed ? 'grow-in-x' : 'grow-in-y';\n } else {\n animation = 'grow-in-xy';\n }\n\n return {\n animation: animation\n };\n },\n polygon: function polygon() {\n return {\n animation: 'fade-in',\n duration: 500\n };\n },\n edge: function edge() {\n return {\n animation: 'fade-in'\n };\n }\n}; // 解析用户的动画配置\n\nfunction parseAnimateConfig(animateCfg, data) {\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 * @ignore\n * 获取 elementName 对应的动画配置,当声明了 `animateType`,则返回 `animateType` 对应的动画配置\n * @param elementName 元素名称\n * @param coordinate 做表弟类型\n * @param animateType 可选,动画类型\n */\n\n\nexport function getDefaultAnimateCfg(elementName, coordinate, animateType) {\n var animateCfg = GEOMETRY_ANIMATE_CFG[elementName];\n\n if (animateCfg) {\n if (isFunction(animateCfg)) {\n animateCfg = animateCfg(coordinate);\n }\n\n animateCfg = deepMix({}, DEFAULT_ANIMATE_CFG, animateCfg);\n\n if (animateType) {\n return animateCfg[animateType];\n }\n }\n\n return animateCfg;\n}\n/**\n * @ignore\n * 工具函数\n * 根据用户传入的配置为 shape 执行动画\n * @param shape 执行动画的图形元素\n * @param animateCfg 动画配置\n * @param cfg 额外的信息\n */\n\nexport function doAnimate(shape, animateCfg, cfg) {\n var data = get(shape.get('origin'), 'data', FIELD_ORIGIN);\n var animation = animateCfg.animation; // 获取动画执行函数\n\n var parsedAnimateCfg = parseAnimateConfig(animateCfg, data);\n\n if (animation) {\n // 用户声明了动画执行函数\n var animateFunction = getAnimation(animation);\n\n if (animateFunction) {\n animateFunction(shape, parsedAnimateCfg, cfg);\n }\n } else {\n // 没有声明,则根据 toAttrs 做差值动画\n shape.animate(cfg.toAttrs, parsedAnimateCfg);\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 */\n\nexport function doGroupAppearAnimate(container, animateCfg, geometryType, coordinate, minYPoint) {\n if (GEOMETRY_GROUP_APPEAR_ANIMATION[geometryType]) {\n var defaultCfg = GEOMETRY_GROUP_APPEAR_ANIMATION[geometryType](coordinate);\n var animation = getAnimation(get(defaultCfg, 'animation', ''));\n\n if (animation) {\n var cfg = __assign(__assign(__assign({}, DEFAULT_ANIMATE_CFG.appear), defaultCfg), animateCfg);\n\n container.stopAnimate(); // 先结束当前 container 动画\n\n animation(container, cfg, {\n coordinate: coordinate,\n minYPoint: minYPoint,\n toAttrs: null\n });\n }\n }\n}","/**\n * Name of Background Shape\n */\nexport var BACKGROUND_SHAPE = 'element-background';","import { __assign, __extends } from \"tslib\";\nimport { deepMix, each, get, isArray, isEmpty, isEqual, isFunction, isString } from '@antv/util'; // 暂未发包\n// @ts-ignore\n\nimport { propagationDelegate } from '@antv/component';\nimport { doAnimate } from '../../animate';\nimport Base from '../../base';\nimport { getReplaceAttrs } from '../../util/graphics';\nimport { GEOMETRY_LIFE_CIRCLE } from '../../constant';\nimport { BACKGROUND_SHAPE } from '../shape/constant';\n/**\n * Element 图形元素。\n * 定义:在 G2 中,我们会将数据通过图形语法映射成不同的图形,比如点图,数据集中的每条数据会对应一个点,柱状图每条数据对应一个柱子,线图则是一组数据对应一条折线,Element 即一条/一组数据对应的图形元素,它代表一条数据或者一个数据集,在图形层面,它可以是单个 Shape 也可以是多个 Shape,我们称之为图形元素。\n */\n\nvar Element =\n/** @class */\nfunction (_super) {\n __extends(Element, _super);\n\n function Element(cfg) {\n var _this = _super.call(this, cfg) || this;\n /** 保存 shape 对应的 label */\n\n\n _this.labelShape = []; // 存储当前开启的状态\n\n _this.states = [];\n var shapeFactory = cfg.shapeFactory,\n container = cfg.container,\n offscreenGroup = cfg.offscreenGroup,\n elementIndex = cfg.elementIndex,\n _a = cfg.visible,\n visible = _a === void 0 ? true : _a;\n _this.shapeFactory = shapeFactory;\n _this.container = container;\n _this.offscreenGroup = offscreenGroup;\n _this.visible = visible;\n _this.elementIndex = elementIndex;\n return _this;\n }\n /**\n * 绘制图形。\n * @param model 绘制数据。\n * @param isUpdate 可选,是否是更新发生后的绘制。\n */\n\n\n Element.prototype.draw = function (model, isUpdate) {\n if (isUpdate === void 0) {\n isUpdate = false;\n }\n\n this.model = model;\n this.data = model.data; // 存储原始数据\n\n this.shapeType = this.getShapeType(model); // 绘制图形\n\n this.drawShape(model, isUpdate);\n\n if (this.visible === false) {\n // 用户在初始化的时候声明 visible: false\n this.changeVisible(false);\n }\n };\n /**\n * 更新图形。\n * @param model 更新的绘制数据。\n */\n\n\n Element.prototype.update = function (model) {\n var _a = this,\n shapeFactory = _a.shapeFactory,\n shape = _a.shape;\n\n if (!shape) {\n return;\n } // 更新数据\n\n\n this.model = model;\n this.data = model.data;\n this.shapeType = this.getShapeType(model); // step 1: 更新 shape 携带的信息\n\n this.setShapeInfo(shape, model); // step 2: 使用虚拟 Group 重新绘制 shape,然后更新当前 shape\n\n var offscreenGroup = this.getOffscreenGroup();\n var newShape = shapeFactory.drawShape(this.shapeType, model, offscreenGroup); // @ts-ignore\n\n newShape.cfg.data = this.data; // @ts-ignore\n\n newShape.cfg.origin = model; // label 需要使用\n\n newShape.cfg.element = this; // step 3: 同步 shape 样式\n\n this.syncShapeStyle(shape, newShape, this.getStates(), this.getAnimateCfg('update'));\n };\n /**\n * 销毁 element 实例。\n */\n\n\n Element.prototype.destroy = function () {\n var _a = this,\n shapeFactory = _a.shapeFactory,\n shape = _a.shape;\n\n if (shape) {\n var animateCfg = this.getAnimateCfg('leave');\n\n if (animateCfg) {\n // 指定了动画配置则执行销毁动画\n doAnimate(shape, animateCfg, {\n coordinate: shapeFactory.coordinate,\n toAttrs: __assign({}, shape.attr())\n });\n } else {\n // 否则直接销毁\n shape.remove(true);\n }\n } // reset\n\n\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.prototype.destroy.call(this);\n };\n /**\n * 显示或者隐藏 element。\n * @param visible 是否可见。\n */\n\n\n Element.prototype.changeVisible = function (visible) {\n _super.prototype.changeVisible.call(this, visible);\n\n if (visible) {\n if (this.shape) {\n this.shape.show();\n }\n\n if (this.labelShape) {\n this.labelShape.forEach(function (label) {\n label.show();\n });\n }\n } else {\n if (this.shape) {\n this.shape.hide();\n }\n\n if (this.labelShape) {\n this.labelShape.forEach(function (label) {\n label.hide();\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\n\n Element.prototype.setState = function (stateName, stateStatus) {\n var _a = this,\n states = _a.states,\n shapeFactory = _a.shapeFactory,\n model = _a.model,\n shape = _a.shape,\n shapeType = _a.shapeType;\n\n var index = states.indexOf(stateName);\n\n if (stateStatus) {\n // 开启状态\n if (index > -1) {\n // 该状态已经开启,则返回\n return;\n }\n\n states.push(stateName);\n\n if (stateName === 'active' || stateName === 'selected') {\n shape === null || shape === void 0 ? void 0 : shape.toFront();\n }\n } else {\n if (index === -1) {\n // 关闭状态,但是状态未设置过\n return;\n }\n\n states.splice(index, 1);\n\n if (stateName === 'active' || stateName === 'selected') {\n var _b = this.geometry,\n sortZIndex = _b.sortZIndex,\n zIndexReversed = _b.zIndexReversed;\n var idx = zIndexReversed ? this.geometry.elements.length - this.elementIndex : this.elementIndex;\n sortZIndex ? shape.setZIndex(idx) : shape.set('zIndex', idx);\n }\n } // 使用虚拟 group 重新绘制 shape,然后对这个 shape 应用状态样式后,更新当前 shape。\n\n\n var offscreenShape = shapeFactory.drawShape(shapeType, model, this.getOffscreenGroup());\n\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 var eventObject = {\n state: stateName,\n stateStatus: stateStatus,\n element: this,\n target: this.container\n };\n this.container.emit('statechange', eventObject); // @ts-ignore\n\n propagationDelegate(this.shape, 'statechange', eventObject);\n };\n /**\n * 清空状量态,恢复至初始状态。\n */\n\n\n Element.prototype.clearStates = function () {\n var _this = this;\n\n var states = this.states;\n each(states, function (state) {\n _this.setState(state, false);\n });\n this.states = [];\n };\n /**\n * 查询当前 Element 上是否已设置 `stateName` 对应的状态。\n * @param stateName 状态名称。\n * @returns true 表示存在,false 表示不存在。\n */\n\n\n Element.prototype.hasState = function (stateName) {\n return this.states.includes(stateName);\n };\n /**\n * 获取当前 Element 上所有的状态。\n * @returns 当前 Element 上所有的状态数组。\n */\n\n\n Element.prototype.getStates = function () {\n return this.states;\n };\n /**\n * 获取 Element 对应的原始数据。\n * @returns 原始数据。\n */\n\n\n Element.prototype.getData = function () {\n return this.data;\n };\n /**\n * 获取 Element 对应的图形绘制数据。\n * @returns 图形绘制数据。\n */\n\n\n Element.prototype.getModel = function () {\n return this.model;\n };\n /**\n * 返回 Element 元素整体的 bbox,包含文本及文本连线(有的话)。\n * @returns 整体包围盒。\n */\n\n\n Element.prototype.getBBox = function () {\n var _a = this,\n shape = _a.shape,\n labelShape = _a.labelShape;\n\n var 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\n if (shape) {\n bbox = shape.getCanvasBBox();\n }\n\n if (labelShape) {\n labelShape.forEach(function (label) {\n var 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 return bbox;\n };\n\n Element.prototype.getStatesStyle = function () {\n if (!this.statesStyle) {\n var _a = this,\n shapeType = _a.shapeType,\n geometry = _a.geometry,\n shapeFactory = _a.shapeFactory;\n\n var stateOption = geometry.stateOption;\n var defaultShapeType = shapeFactory.defaultShapeType;\n var stateTheme = shapeFactory.theme[shapeType] || shapeFactory.theme[defaultShapeType];\n this.statesStyle = deepMix({}, stateTheme, stateOption);\n }\n\n return this.statesStyle;\n }; // 从主题中获取对应状态量的样式\n\n\n Element.prototype.getStateStyle = function (stateName, shapeKey) {\n var statesStyle = this.getStatesStyle();\n var stateCfg = get(statesStyle, [stateName, 'style'], {});\n var shapeStyle = stateCfg[shapeKey] || stateCfg;\n\n if (isFunction(shapeStyle)) {\n return shapeStyle(this);\n }\n\n return shapeStyle;\n }; // 获取动画配置\n\n\n Element.prototype.getAnimateCfg = function (animateType) {\n var _this = this;\n\n var animate = this.animate;\n\n if (animate) {\n var cfg_1 = animate[animateType];\n\n if (cfg_1) {\n // 增加动画的回调函数,如果外部传入了,则先执行外部,然后发射 geometry 的 animate 事件\n return __assign(__assign({}, cfg_1), {\n callback: function callback() {\n var _a;\n\n isFunction(cfg_1.callback) && cfg_1.callback();\n (_a = _this.geometry) === null || _a === void 0 ? void 0 : _a.emit(GEOMETRY_LIFE_CIRCLE.AFTER_DRAW_ANIMATE);\n }\n });\n }\n\n return cfg_1;\n }\n\n return null;\n }; // 绘制图形\n\n\n Element.prototype.drawShape = function (model, isUpdate) {\n var _a;\n\n if (isUpdate === void 0) {\n isUpdate = false;\n }\n\n var _b = this,\n shapeFactory = _b.shapeFactory,\n container = _b.container,\n shapeType = _b.shapeType; // 自定义 shape 有可能返回空 shape\n\n\n this.shape = shapeFactory.drawShape(shapeType, model, container);\n\n if (this.shape) {\n this.setShapeInfo(this.shape, model); // 存储绘图数据\n // @ts-ignore\n\n var name_1 = this.shape.cfg.name; // 附加 element 的 name, name 现在支持数组了,很好用了\n\n if (!name_1) {\n // 这个地方如果用户添加了 name, 则附加 name ,否则就添加自己的 name\n // @ts-ignore\n this.shape.cfg.name = ['element', this.shapeFactory.geometryType];\n } else if (isString(name_1)) {\n // @ts-ignore\n this.shape.cfg.name = ['element', name_1];\n } // 执行入场动画\n\n\n var animateType = isUpdate ? 'enter' : 'appear';\n var animateCfg = this.getAnimateCfg(animateType);\n\n if (animateCfg) {\n // 开始执行动画的生命周期\n (_a = this.geometry) === null || _a === void 0 ? void 0 : _a.emit(GEOMETRY_LIFE_CIRCLE.BEFORE_DRAW_ANIMATE);\n doAnimate(this.shape, animateCfg, {\n coordinate: shapeFactory.coordinate,\n toAttrs: __assign({}, this.shape.attr())\n });\n }\n }\n }; // 获取虚拟 Group\n\n\n Element.prototype.getOffscreenGroup = function () {\n if (!this.offscreenGroup) {\n var GroupCtor = this.container.getGroupBase(); // 获取分组的构造函数\n\n this.offscreenGroup = new GroupCtor({});\n }\n\n return this.offscreenGroup;\n }; // 设置 shape 上需要携带的信息\n\n\n Element.prototype.setShapeInfo = function (shape, data) {\n var _this = this; // @ts-ignore\n\n\n shape.cfg.origin = data; // @ts-ignore\n\n shape.cfg.element = this;\n\n if (shape.isGroup()) {\n var children = shape.get('children');\n children.forEach(function (child) {\n _this.setShapeInfo(child, data);\n });\n }\n }; // 更新当前 shape 的样式\n\n\n Element.prototype.syncShapeStyle = function (sourceShape, targetShape, states, animateCfg, index) {\n var _this = this;\n\n var _a;\n\n if (states === void 0) {\n states = [];\n }\n\n if (index === void 0) {\n index = 0;\n }\n\n if (!sourceShape || !targetShape) {\n return;\n } // 所有的 shape 都需要同步 clip\n\n\n var clip = sourceShape.get('clipShape');\n var newClip = targetShape.get('clipShape');\n this.syncShapeStyle(clip, newClip, states, animateCfg);\n\n if (sourceShape.isGroup()) {\n var children = sourceShape.get('children');\n var newChildren = targetShape.get('children');\n\n for (var 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 var name_2 = sourceShape.get('name');\n\n if (isArray(name_2)) {\n // 会附加 element 的 name\n name_2 = name_2[1];\n }\n\n each(states, function (state) {\n // background shape 不进行状态样式设置\n if (targetShape.get('name') !== BACKGROUND_SHAPE) {\n var style = _this.getStateStyle(state, name_2 || index); // 如果用户没有设置 name,则默认根据索引值\n\n\n targetShape.attr(style);\n }\n });\n }\n\n var newAttrs = getReplaceAttrs(sourceShape, targetShape);\n\n if (this.animate) {\n if (animateCfg) {\n (_a = this.geometry) === null || _a === void 0 ? void 0 : _a.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 Element.prototype.getShapeType = function (model) {\n var shape = get(model, 'shape');\n return isArray(shape) ? shape[0] : shape;\n };\n\n return Element;\n}(Base);\n\nexport default Element;","var GEOMETRY_LABELS_MAP = {};\nvar GEOMETRY_LABELS_LAYOUT_MAP = {};\n/**\n * 获取 `type` 对应的 [[GeometryLabel]] 类\n * @param type\n * @returns\n */\n\nexport function getGeometryLabel(type) {\n return GEOMETRY_LABELS_MAP[type.toLowerCase()];\n}\n/**\n * 注册定义的 GeometryLabel 类\n * @param type GeometryLabel 类型名称\n * @param ctor GeometryLabel 类\n */\n\nexport function registerGeometryLabel(type, ctor) {\n GEOMETRY_LABELS_MAP[type.toLowerCase()] = ctor;\n}\n/**\n * 获取 `type` 对应的 [[GeometryLabelsLayoutFn]] label 布局函数\n * @param type 布局函数名称\n * @returns\n */\n\nexport function getGeometryLabelLayout(type) {\n return GEOMETRY_LABELS_LAYOUT_MAP[type.toLowerCase()];\n}\n/**\n * 注册定义的 label 布局函数\n * @param type label 布局函数名称\n * @param layoutFn label 布局函数\n */\n\nexport function registerGeometryLabelLayout(type, layoutFn) {\n GEOMETRY_LABELS_LAYOUT_MAP[type.toLowerCase()] = layoutFn;\n}","import { __assign } from \"tslib\";\nimport { parsePathString } from '@antv/path-util';\nimport { deepMix, get, upperFirst } from '@antv/util';\nimport { convertNormalPath, convertPolarPath } from './util/path';\n/** ShapeFactory 基类 */\n\nvar ShapeFactoryBase = {\n /** 坐标系对象 */\n coordinate: null,\n\n /** 默认绘制的 Shape 类型 */\n defaultShapeType: null,\n\n /** 主题样式 */\n theme: null,\n\n /**\n * 获取 shape 绘制需要的关键点\n * @param shapeType shape 类型\n * @param shapePoint 每条数据映射后的坐标点以及 size 数值\n * @returns 图形关键点信息\n */\n getShapePoints: function getShapePoints(shapeType, shapePoint) {\n var shape = this.getShape(shapeType);\n\n if (shape.getPoints) {\n return shape.getPoints(shapePoint);\n }\n\n return this.getDefaultPoints(shapePoint);\n },\n\n /**\n * 根据 shape 类型获取具体的 shape 实例\n * @param shapeType string shape 的类型\n * @returns\n */\n getShape: function getShape(shapeType) {\n var shape = this[shapeType] || this[this.defaultShapeType];\n shape.coordinate = this.coordinate;\n return shape;\n },\n\n /**\n * 获取 shape 的默认关键点\n * @override\n */\n getDefaultPoints: function getDefaultPoints() {\n return [];\n },\n\n /**\n * 获取 shape 的默认绘制样式 (内置的 shapeFactory 均有注册默认样式)\n */\n getDefaultStyle: function getDefaultStyle(geometryTheme) {\n return get(geometryTheme, [this.defaultShapeType, 'default', 'style'], {});\n },\n\n /**\n * 获取 shape 对应的缩略图配置信息。\n * @param shapeType shape 类型\n * @param color 颜色\n * @param isInPolar 是否在极坐标系下\n * @returns 返回缩略图 marker 配置。\n */\n getMarker: function getMarker(shapeType, markerCfg) {\n var shape = this.getShape(shapeType);\n\n if (!shape.getMarker) {\n var defaultShapeType = this.defaultShapeType;\n shape = this.getShape(defaultShapeType);\n }\n\n var theme = this.theme;\n var shapeStyle = get(theme, [shapeType, 'default'], {});\n var markerStyle = shape.getMarker(markerCfg);\n return deepMix({}, shapeStyle, markerStyle);\n },\n\n /**\n * 绘制 shape\n * @override\n * @param shapeType 绘制的 shape 类型\n * @param cfg 绘制 shape 需要的信息\n * @param element Element 实例\n * @returns\n */\n drawShape: function drawShape(shapeType, cfg, container) {\n var shape = this.getShape(shapeType);\n return shape.draw(cfg, container);\n }\n};\n/** Shape 基类 */\n\nvar ShapeBase = {\n /** 坐标系对象 */\n coordinate: null,\n\n /**\n * 将归一化的 path 转换成坐标系下的 path\n * @param path 归一化的路径\n * @returns\n */\n parsePath: function parsePath(path) {\n var coordinate = this.coordinate;\n var parsedPath = parsePathString(path);\n\n if (coordinate.isPolar) {\n parsedPath = convertPolarPath(coordinate, parsedPath);\n } else {\n parsedPath = convertNormalPath(coordinate, parsedPath);\n }\n\n return parsedPath;\n },\n\n /**\n * 将归一化的坐标转换成画布坐标\n * @param point 归一化的坐标点数据\n * @returns\n */\n parsePoint: function parsePoint(point) {\n var coordinate = this.coordinate;\n return coordinate.convert(point);\n },\n\n /**\n * 0~1 points 转 画布 points\n * @param points 节点集合\n * @returns\n */\n parsePoints: function parsePoints(points) {\n var coordinate = this.coordinate;\n return points.map(function (point) {\n return coordinate.convert(point);\n });\n },\n\n /**\n * 绘制 shape\n * @override\n */\n draw: function draw(cfg, container) {}\n};\nvar ShapeFactoryMap = {};\n/**\n * 注册 ShapeFactory。\n * @param factoryName ShapeFactory 名称,对应 Geometry 几何标记名称。\n * @param cfg 注册 ShapeFactory 需要覆写定义的属性。\n * @returns 返回 ShapeFactory 对象。\n */\n\nexport function registerShapeFactory(factoryName, cfg) {\n var className = upperFirst(factoryName);\n\n var geomObj = __assign(__assign(__assign({}, ShapeFactoryBase), cfg), {\n geometryType: factoryName\n });\n\n ShapeFactoryMap[className] = geomObj;\n return geomObj;\n}\n/**\n * 注册 Shape。\n * @param factoryName 对应的 ShapeFactory 名称。\n * @param shapeType 注册的 shape 名称。\n * @param cfg 注册 Shape 需要覆写定义的属性。\n * @returns shape 返回注册的 shape 对象。\n */\n\nexport function registerShape(factoryName, shapeType, cfg) {\n var className = upperFirst(factoryName);\n var factory = ShapeFactoryMap[className];\n\n var shapeObj = __assign(__assign({}, ShapeBase), cfg);\n\n factory[shapeType] = shapeObj;\n return shapeObj;\n}\n/**\n * 获取 factoryName 对应的 shapeFactory\n * @param factoryName\n * @returns shape factory\n */\n\nexport function getShapeFactory(factoryName) {\n var className = upperFirst(factoryName);\n return ShapeFactoryMap[className];\n}","import { isEqual, some } from '@antv/util';\n/**\n * @ignore\n * Determines whether model is change\n * @param currentModel\n * @param preModel\n * @returns\n */\n\nexport function isModelChange(currentModel, preModel) {\n return some(['color', 'shape', 'size', 'x', 'y', 'isInCircle', 'data', 'style', 'defaultStyle', 'points', 'mappingData'], function (key) {\n return !isEqual(currentModel[key], preModel[key]);\n });\n}","import { isArray } from '@antv/util';\n/** @ignore */\n\nexport function parseFields(field) {\n if (isArray(field)) {\n return field;\n }\n\n return field.split('*');\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, keys) {\n var added = [];\n var updated = [];\n var removed = [];\n var keyIncluded = new Map();\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (keyItem[key]) updated.push(key);else added.push(key);\n keyIncluded.set(key, true);\n }\n\n Object.keys(keyItem).forEach(function (key) {\n if (!keyIncluded.has(key)) removed.push(key);\n });\n return {\n added: added,\n updated: updated,\n removed: removed\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport { __assign, __awaiter, __extends, __generator, __read, __spreadArray, __values } from \"tslib\";\nimport { getAdjust as getAdjustClass } from '@antv/adjust';\nimport { getAttribute as getAttributeClass } from '@antv/attr';\nimport { clone, deepMix, each, flatten, get, isArray, isEmpty, isEqual, isFunction, isNil, isNumber, isObject, isPlainObject, isString, set } from '@antv/util';\nimport { doGroupAppearAnimate, getDefaultAnimateCfg } from '../animate';\nimport Base from '../base';\nimport { FIELD_ORIGIN, GEOMETRY_LIFE_CIRCLE, GROUP_ATTRS } from '../constant';\nimport { uniq } from '../util/helper';\nimport Element from './element';\nimport { getGeometryLabel } from './label';\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 * Geometry 几何标记基类,主要负责数据到图形属性的映射以及绘制逻辑。\n */\n\nvar Geometry =\n/** @class */\nfunction (_super) {\n __extends(Geometry, _super);\n /**\n * 创建 Geometry 实例。\n * @param cfg\n */\n\n\n function Geometry(cfg) {\n var _this = _super.call(this, cfg) || this;\n /** Geometry 几何标记类型。 */\n\n\n _this.type = 'base'; // 内部产生的属性\n\n /** Attribute map */\n\n _this.attributes = {};\n /** Element map */\n\n _this.elements = [];\n /** 使用 key-value 结构存储 Element,key 为每个 Element 实例对应的唯一 ID */\n\n _this.elementsMap = {};\n /** animate 配置项 */\n\n _this.animateOption = true;\n /** 图形属性映射配置 */\n\n _this.attributeOption = {};\n /** 存储上一次渲染时的 element 映射表,用于更新逻辑 */\n\n _this.lastElementsMap = {};\n /** 是否生成多个点来绘制图形。 */\n\n _this.generatePoints = false;\n /** 存储发生图形属性映射前的数据 */\n\n _this.beforeMappingData = null;\n _this.adjusts = {};\n _this.idFields = [];\n _this.hasSorted = false;\n _this.isCoordinateChanged = false;\n var container = cfg.container,\n labelsContainer = cfg.labelsContainer,\n coordinate = cfg.coordinate,\n data = cfg.data,\n _a = cfg.sortable,\n sortable = _a === void 0 ? false : _a,\n _b = cfg.visible,\n visible = _b === void 0 ? true : _b,\n theme = cfg.theme,\n _c = cfg.scales,\n scales = _c === void 0 ? {} : _c,\n _d = cfg.scaleDefs,\n scaleDefs = _d === void 0 ? {} : _d,\n // 柱状图间隔与宽度相关配置\n intervalPadding = cfg.intervalPadding,\n dodgePadding = cfg.dodgePadding,\n maxColumnWidth = cfg.maxColumnWidth,\n minColumnWidth = cfg.minColumnWidth,\n columnWidthRatio = cfg.columnWidthRatio,\n roseWidthRatio = cfg.roseWidthRatio,\n multiplePieWidthRatio = cfg.multiplePieWidthRatio,\n zIndexReversed = cfg.zIndexReversed,\n sortZIndex = cfg.sortZIndex,\n useDeferredLabel = cfg.useDeferredLabel;\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 return _this;\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\n\n Geometry.prototype.position = function (cfg) {\n var positionCfg = cfg;\n\n if (!isPlainObject(cfg)) {\n // 字符串字段或者数组字段\n positionCfg = {\n fields: parseFields(cfg)\n };\n }\n\n var fields = get(positionCfg, 'fields');\n\n if (fields.length === 1) {\n // 默认填充一维 1*xx\n fields.unshift('1');\n set(positionCfg, 'fields', fields);\n }\n\n set(this.attributeOption, 'position', positionCfg);\n return this;\n };\n\n Geometry.prototype.color = function (field, cfg) {\n this.createAttrOption('color', field, cfg);\n return this;\n };\n\n Geometry.prototype.shape = function (field, cfg) {\n this.createAttrOption('shape', field, cfg);\n return this;\n };\n\n Geometry.prototype.size = function (field, cfg) {\n this.createAttrOption('size', field, cfg);\n return this;\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\n\n Geometry.prototype.adjust = function (adjustCfg) {\n var adjusts = adjustCfg;\n\n if (isString(adjustCfg) || isPlainObject(adjustCfg)) {\n adjusts = [adjustCfg];\n }\n\n each(adjusts, function (adjust, index) {\n if (!isObject(adjust)) {\n adjusts[index] = {\n type: adjust\n };\n }\n });\n this.adjustOption = adjusts;\n return this;\n };\n\n Geometry.prototype.style = function (field, styleFunc) {\n if (isString(field)) {\n var fields = parseFields(field);\n this.styleOption = {\n fields: fields,\n callback: styleFunc\n };\n } else {\n var _a = field,\n fields = _a.fields,\n callback = _a.callback,\n cfg = _a.cfg;\n\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 Geometry.prototype.tooltip = function (field, cfg) {\n if (isString(field)) {\n var fields = parseFields(field);\n this.tooltipOption = {\n fields: fields,\n callback: cfg\n };\n } else {\n this.tooltipOption = field;\n }\n\n return this;\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\n\n Geometry.prototype.animate = function (cfg) {\n this.animateOption = cfg;\n return this;\n };\n\n Geometry.prototype.label = function (field, secondParam, thirdParam) {\n if (isString(field)) {\n var labelOption = {};\n var fields = parseFields(field);\n labelOption.fields = fields;\n\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\n this.labelOption = labelOption;\n } else {\n this.labelOption = field;\n }\n\n return this;\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\n\n Geometry.prototype.state = function (cfg) {\n this.stateOption = cfg;\n return this;\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\n\n Geometry.prototype.customInfo = function (cfg) {\n this.customOption = cfg;\n return this;\n };\n /**\n * 初始化 Geomtry 实例:\n * 创建 [[Attribute]] and [[Scale]] 实例,进行数据处理,包括分组、数值化以及数据调整。\n */\n\n\n Geometry.prototype.init = function (cfg) {\n if (cfg === void 0) {\n cfg = {};\n }\n\n this.setCfg(cfg);\n this.initAttributes(); // 创建图形属性\n // 数据加工:分组 -> 数字化 -> adjust\n\n this.processData(this.data); // 调整 scale\n\n this.adjustScale();\n };\n /**\n * Geometry 更新。\n * @param [cfg] 更新的配置\n */\n\n\n Geometry.prototype.update = function (cfg) {\n if (cfg === void 0) {\n cfg = {};\n }\n\n var data = cfg.data,\n isDataChanged = cfg.isDataChanged,\n isCoordinateChanged = cfg.isCoordinateChanged;\n\n var _a = this,\n attributeOption = _a.attributeOption,\n lastAttributeOption = _a.lastAttributeOption;\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\n this.processData(data); // 数据加工:分组 -> 数字化 -> adjust\n } else {\n // 有可能 coordinate 变化\n this.setCfg(cfg);\n } // 调整 scale\n\n\n this.adjustScale();\n this.isCoordinateChanged = isCoordinateChanged;\n };\n /**\n * 将原始数据映射至图形空间,同时创建图形对象。\n */\n\n\n Geometry.prototype.paint = function (isUpdate) {\n var _this = this;\n\n if (isUpdate === void 0) {\n isUpdate = false;\n }\n\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 var offscreenGroup = this.getOffscreenGroup();\n offscreenGroup.clear();\n var beforeMappingData = this.beforeMappingData;\n var dataArray = this.beforeMapping(beforeMappingData);\n this.dataArray = new Array(dataArray.length);\n\n for (var i = 0; i < dataArray.length; i++) {\n var data = dataArray[i];\n this.dataArray[i] = this.mapping(data);\n }\n\n this.updateElements(this.dataArray, isUpdate);\n this.lastElementsMap = this.elementsMap;\n\n if (this.canDoGroupAnimation(isUpdate)) {\n // 如果用户没有配置 appear.animation,就默认走整体动画\n var container = this.container;\n var type = this.type;\n var coordinate = this.coordinate;\n var animateCfg = get(this.animateOption, 'appear');\n var yScale = this.getYScale();\n var yMinPoint = coordinate.convert({\n x: 0,\n y: yScale.scale(this.getYMinValue())\n });\n doGroupAppearAnimate(container, animateCfg, type, coordinate, yMinPoint);\n } // 添加 label\n\n\n if (this.labelOption) {\n var deferred = this.useDeferredLabel;\n\n var callback = function () {\n return _this.renderLabels(flatten(_this.dataArray), isUpdate);\n }.bind(this);\n\n if (typeof deferred === 'number') {\n // Use `requestIdleCallback` to render labels in idle time (like react fiber)\n var timeout = typeof deferred === 'number' && deferred !== Infinity ? deferred : 0;\n\n if (!window.requestIdleCallback) {\n setTimeout(callback, timeout);\n } else {\n var options = timeout && timeout !== Infinity ? {\n timeout: timeout\n } : undefined;\n window.requestIdleCallback(callback, options);\n }\n } else {\n callback();\n }\n } // 缓存,用于更新\n\n\n this.lastAttributeOption = __assign({}, this.attributeOption);\n\n if (this.visible === false) {\n // 用户在初始化的时候声明 visible: false\n this.changeVisible(false);\n }\n };\n /**\n * 清空当前 Geometry,配置项仍保留,但是内部创建的对象全部清空。\n * @override\n */\n\n\n Geometry.prototype.clear = function () {\n var _a = this,\n container = _a.container,\n geometryLabel = _a.geometryLabel,\n offscreenGroup = _a.offscreenGroup;\n\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 * 销毁 Geometry 实例。\n */\n\n\n Geometry.prototype.destroy = function () {\n this.clear();\n var 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\n this.theme = undefined;\n this.shapeFactory = undefined;\n\n _super.prototype.destroy.call(this);\n };\n /**\n * 获取决定分组的图形属性对应的 scale 实例。\n * @returns\n */\n\n\n Geometry.prototype.getGroupScales = function () {\n return this.groupScales;\n };\n /**\n * 根据名字获取图形属性实例。\n */\n\n\n Geometry.prototype.getAttribute = function (name) {\n return this.attributes[name];\n };\n /** 获取 x 轴对应的 scale 实例。 */\n\n\n Geometry.prototype.getXScale = function () {\n return this.getAttribute('position').scales[0];\n };\n /** 获取 y 轴对应的 scale 实例。 */\n\n\n Geometry.prototype.getYScale = function () {\n return this.getAttribute('position').scales[1];\n };\n /**\n * 获取决定分组的图形属性实例。\n */\n\n\n Geometry.prototype.getGroupAttributes = function () {\n var rst = [];\n each(this.attributes, function (attr) {\n if (GROUP_ATTRS.includes(attr.type)) {\n rst.push(attr);\n }\n });\n return rst;\n };\n /** 获取图形属性默认的映射值。 */\n\n\n Geometry.prototype.getDefaultValue = function (attrName) {\n var value;\n var attr = this.getAttribute(attrName);\n\n if (attr && isEmpty(attr.scales)) {\n // 获取映射至常量的值\n value = attr.values[0];\n }\n\n return value;\n };\n /**\n * 获取该数据发生图形映射后对应的 Attribute 图形空间数据。\n * @param attr Attribute 图形属性实例。\n * @param obj 需要进行映射的原始数据。\n * @returns\n */\n\n\n Geometry.prototype.getAttributeValues = function (attr, obj) {\n var params = [];\n var scales = attr.scales;\n\n for (var index = 0, length_1 = scales.length; index < length_1; index++) {\n var scale = scales[index];\n var field = scale.field;\n\n if (scale.isIdentity) {\n params.push(scale.values);\n } else {\n params.push(obj[field]);\n }\n }\n\n return attr.mapping.apply(attr, __spreadArray([], __read(params), false));\n };\n /**\n * 获取对应的 adjust 实例\n * @param adjustType\n * @returns\n */\n\n\n Geometry.prototype.getAdjust = function (adjustType) {\n return this.adjusts[adjustType];\n };\n /**\n * 获得 coordinate 实例\n * @returns\n */\n\n\n Geometry.prototype.getCoordinate = function () {\n return this.coordinate;\n };\n\n Geometry.prototype.getData = function () {\n return this.data;\n };\n /**\n * 获取 shape 对应的 marker 样式。\n * @param shapeName shape 具体名字\n * @param cfg marker 信息\n * @returns\n */\n\n\n Geometry.prototype.getShapeMarker = function (shapeName, cfg) {\n var shapeFactory = this.getShapeFactory();\n return shapeFactory.getMarker(shapeName, cfg);\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\n\n Geometry.prototype.getElementsBy = function (condition) {\n return this.elements.filter(function (element) {\n return condition(element);\n });\n };\n /**\n * 获取 Geometry 的所有 Elements。\n *\n * ```typescript\n * getElements();\n * ```\n */\n\n\n Geometry.prototype.getElements = function () {\n return this.elements;\n };\n /**\n * 获取数据对应的唯一 id。\n * @param data Element 对应的绘制数据\n * @returns\n */\n\n\n Geometry.prototype.getElementId = function (data) {\n data = isArray(data) ? data[0] : data;\n var originData = data[FIELD_ORIGIN]; // 如果用户声明了使用哪些字段作为 id 值\n\n if (this.idFields.length) {\n var elementId = originData[this.idFields[0]];\n\n for (var index = 1; index < this.idFields.length; index++) {\n elementId += '-' + originData[this.idFields[index]];\n }\n\n return elementId;\n }\n\n var type = this.type;\n var xScale = this.getXScale();\n var yScale = this.getYScale();\n var xField = xScale.field || 'x';\n var yField = yScale.field || 'y';\n var yVal = originData[yField];\n var xVal;\n\n if (xScale.type === 'identity') {\n xVal = xScale.values[0];\n } else {\n xVal = originData[xField];\n }\n\n var id;\n\n if (type === 'interval' || type === 'schema') {\n id = \"\".concat(xVal);\n } else if (type === 'line' || type === 'area' || type === 'path') {\n id = type;\n } else {\n id = \"\".concat(xVal, \"-\").concat(yVal);\n }\n\n var groupScales = this.groupScales;\n\n for (var index = 0, length_2 = groupScales.length; index < length_2; index++) {\n var groupScale = groupScales[index];\n var field = groupScale.field;\n id = \"\".concat(id, \"-\").concat(originData[field]);\n } // 用户在进行 dodge 类型的 adjust 调整的时候设置了 dodgeBy 属性\n\n\n var dodgeAdjust = this.getAdjust('dodge');\n\n if (dodgeAdjust) {\n var dodgeBy = dodgeAdjust.dodgeBy;\n\n if (dodgeBy) {\n id = \"\".concat(id, \"-\").concat(originData[dodgeBy]);\n }\n }\n\n if (this.getAdjust('jitter')) {\n id = \"\".concat(id, \"-\").concat(data.x, \"-\").concat(data.y);\n }\n\n return id;\n };\n /**\n * 获取所有需要创建 scale 的字段名称。\n */\n\n\n Geometry.prototype.getScaleFields = function () {\n var fields = [];\n var tmpMap = new Map();\n\n var _a = this,\n attributeOption = _a.attributeOption,\n labelOption = _a.labelOption,\n tooltipOption = _a.tooltipOption; // 获取图形属性上的 fields\n\n\n for (var attributeType in attributeOption) {\n if (attributeOption.hasOwnProperty(attributeType)) {\n var eachOpt = attributeOption[attributeType];\n\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 } // 获取 label 上的字段\n\n\n if (labelOption && labelOption.fields) {\n uniq(labelOption.fields, fields, tmpMap);\n } // 获取 tooltip 上的字段\n\n\n if (isObject(tooltipOption) && tooltipOption.fields) {\n uniq(tooltipOption.fields, fields, tmpMap);\n }\n\n return fields;\n };\n /**\n * 显示或者隐藏 geometry。\n * @param visible\n */\n\n\n Geometry.prototype.changeVisible = function (visible) {\n _super.prototype.changeVisible.call(this, visible);\n\n var elements = this.elements;\n\n for (var index = 0, length_3 = elements.length; index < length_3; index++) {\n var element = elements[index];\n element.changeVisible(visible);\n }\n\n if (visible) {\n if (this.container) {\n this.container.show();\n }\n\n if (this.labelsContainer) {\n this.labelsContainer.show();\n }\n } else {\n if (this.container) {\n this.container.hide();\n }\n\n if (this.labelsContainer) {\n this.labelsContainer.hide();\n }\n }\n };\n /**\n * 获得所有的字段\n */\n\n\n Geometry.prototype.getFields = function () {\n var uniqMap = new Map();\n var fields = [];\n Object.values(this.attributeOption).forEach(function (cfg) {\n var fs = (cfg === null || cfg === void 0 ? void 0 : cfg.fields) || [];\n fs.forEach(function (f) {\n if (!uniqMap.has(f)) {\n fields.push(f);\n }\n\n uniqMap.set(f, true);\n });\n }, []);\n return fields;\n };\n /**\n * 获取当前配置中的所有分组 & 分类的字段。\n * @return fields string[]\n */\n\n\n Geometry.prototype.getGroupFields = function () {\n var groupFields = [];\n var tmpMap = new Map(); // 用于去重过滤\n\n for (var index = 0, length_4 = GROUP_ATTRS.length; index < length_4; index++) {\n var attributeName = GROUP_ATTRS[index];\n var cfg = this.attributeOption[attributeName];\n\n if (cfg && cfg.fields) {\n uniq(cfg.fields, groupFields, tmpMap);\n }\n }\n\n return groupFields;\n };\n /**\n * 获得图形的 x y 字段。\n */\n\n\n Geometry.prototype.getXYFields = function () {\n var _a = __read(this.attributeOption.position.fields, 2),\n x = _a[0],\n y = _a[1];\n\n return [x, y];\n };\n /**\n * x 字段\n * @returns\n */\n\n\n Geometry.prototype.getXField = function () {\n return get(this.getXYFields(), [0]);\n };\n /**\n * y 字段\n * @returns\n */\n\n\n Geometry.prototype.getYField = function () {\n return get(this.getXYFields(), [1]);\n };\n /**\n * 获取该 Geometry 下所有生成的 shapes。\n * @returns shapes\n */\n\n\n Geometry.prototype.getShapes = function () {\n return this.elements.map(function (element) {\n return element.shape;\n });\n };\n /**\n * 获取虚拟 Group。\n * @returns\n */\n\n\n Geometry.prototype.getOffscreenGroup = function () {\n if (!this.offscreenGroup) {\n var GroupCtor = this.container.getGroupBase(); // 获取分组的构造函数\n\n this.offscreenGroup = new GroupCtor({});\n }\n\n return this.offscreenGroup;\n }; // 对数据进行排序\n\n\n Geometry.prototype.sort = function (mappingArray) {\n if (!this.hasSorted) {\n // 未发生过排序\n var xScale_1 = this.getXScale();\n var xField_1 = xScale_1.field;\n\n for (var index = 0; index < mappingArray.length; index++) {\n var itemArr = mappingArray[index];\n itemArr.sort(function (obj1, obj2) {\n return xScale_1.translate(obj1[FIELD_ORIGIN][xField_1]) - xScale_1.translate(obj2[FIELD_ORIGIN][xField_1]);\n });\n }\n }\n\n this.hasSorted = true;\n };\n /**\n * 调整度量范围。主要针对发生层叠以及一些特殊需求的 Geometry,比如 Interval 下的柱状图 Y 轴默认从 0 开始。\n */\n\n\n Geometry.prototype.adjustScale = function () {\n var yScale = this.getYScale(); // 如果数据发生过 stack adjust,需要调整下 yScale 的数据范围\n\n if (yScale && this.getAdjust('stack')) {\n this.updateStackRange(yScale, this.beforeMappingData);\n }\n };\n /**\n * 获取当前 Geometry 对应的 Shape 工厂实例。\n */\n\n\n Geometry.prototype.getShapeFactory = function () {\n var shapeType = this.shapeType;\n\n if (!getShapeFactory(shapeType)) {\n return;\n }\n\n if (!this.shapeFactory) {\n this.shapeFactory = clone(getShapeFactory(shapeType)); // 防止多个 view 共享一个 shapeFactory 实例,导致 coordinate 被篡改\n } // 因为这里缓存了 shapeFactory,但是外部可能会变更 coordinate,导致无法重新设置到 shapeFactory 中\n\n\n this.shapeFactory.coordinate = this.coordinate; // theme 原因同上\n\n this.shapeFactory.theme = this.theme.geometries[shapeType] || {};\n return this.shapeFactory;\n };\n /**\n * 获取每个 Shape 对应的关键点数据。\n * @param obj 经过分组 -> 数字化 -> adjust 调整后的数据记录\n * @returns\n */\n\n\n Geometry.prototype.createShapePointsCfg = function (obj) {\n var xScale = this.getXScale();\n var yScale = this.getYScale();\n var x = this.normalizeValues(obj[xScale.field], xScale);\n var 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: x,\n y: y,\n y0: yScale ? yScale.scale(this.getYMinValue()) : undefined\n };\n };\n /**\n * 创建 Element 实例。\n * @param mappingDatum Element 对应的绘制数据\n * @param [isUpdate] 是否处于更新阶段\n * @returns element 返回创建的 Element 实例\n */\n\n\n Geometry.prototype.createElement = function (mappingDatum, index, isUpdate) {\n if (isUpdate === void 0) {\n isUpdate = false;\n }\n\n var container = this.container;\n var shapeCfg = this.getDrawCfg(mappingDatum); // 获取绘制图形的配置信息\n\n var shapeFactory = this.getShapeFactory();\n var element = new Element({\n shapeFactory: shapeFactory,\n container: 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 * @param mappingDatum 映射后的数据\n * @returns draw cfg\n */\n\n\n Geometry.prototype.getDrawCfg = function (mappingDatum) {\n var originData = mappingDatum[FIELD_ORIGIN]; // 原始数据\n\n var cfg = {\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 var shapeName = mappingDatum.shape;\n\n if (!shapeName && this.getShapeFactory()) {\n shapeName = this.getShapeFactory().defaultShapeType;\n }\n\n cfg.shape = shapeName; // 获取默认样式\n\n var theme = this.theme.geometries[this.shapeType];\n cfg.defaultStyle = get(theme, [shapeName, 'default'], {}).style;\n\n if (!cfg.defaultStyle && this.getShapeFactory()) {\n cfg.defaultStyle = this.getShapeFactory().getDefaultStyle(theme);\n }\n\n var styleOption = this.styleOption;\n\n if (styleOption) {\n cfg.style = this.getStyleCfg(styleOption, originData);\n }\n\n if (this.generatePoints) {\n cfg.points = mappingDatum.points;\n cfg.nextPoints = mappingDatum.nextPoints;\n }\n\n return cfg;\n };\n\n Geometry.prototype.updateElements = function (mappingDataArray, isUpdate) {\n var e_1, _a, e_2, _b, e_3, _c;\n\n if (isUpdate === void 0) {\n isUpdate = false;\n }\n\n var keyDatum = new Map();\n var keys = []; // 用来保持 diff 元素之后 added, updated 的相对顺序\n\n var keyIndex = new Map();\n var index = 0; // 获得更新数据所有的 keys\n // 将更新的数据用 key 索引\n\n for (var i = 0; i < mappingDataArray.length; i++) {\n var mappingData = mappingDataArray[i];\n\n for (var j = 0; j < mappingData.length; j++) {\n var mappingDatum = mappingData[j];\n var key = this.getElementId(mappingDatum);\n var finalKey = keyDatum.has(key) ? \"\".concat(key, \"-\").concat(i, \"-\").concat(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 var _d = diff(this.lastElementsMap, keys),\n added = _d.added,\n updated = _d.updated,\n removed = _d.removed;\n\n try {\n // 新建 element\n for (var added_1 = __values(added), added_1_1 = added_1.next(); !added_1_1.done; added_1_1 = added_1.next()) {\n var key = added_1_1.value;\n var mappingDatum = keyDatum.get(key);\n var i = keyIndex.get(key);\n var element = this.createElement(mappingDatum, i, isUpdate);\n this.elements[i] = element;\n this.elementsMap[key] = element;\n\n if (element.shape) {\n element.shape.set('zIndex', this.zIndexReversed ? this.elements.length - i : i);\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (added_1_1 && !added_1_1.done && (_a = added_1[\"return\"])) _a.call(added_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n try {\n // 更新 element\n for (var updated_1 = __values(updated), updated_1_1 = updated_1.next(); !updated_1_1.done; updated_1_1 = updated_1.next()) {\n var key = updated_1_1.value;\n var element = this.lastElementsMap[key];\n var mappingDatum = keyDatum.get(key);\n var currentShapeCfg = this.getDrawCfg(mappingDatum);\n var preShapeCfg = element.getModel();\n var i = keyIndex.get(key);\n\n if (this.isCoordinateChanged || isModelChange(currentShapeCfg, preShapeCfg)) {\n element.animate = this.animateOption; // 通过绘制数据的变更来判断是否需要更新,因为用户有可能会修改图形属性映射\n\n element.update(currentShapeCfg); // 更新对应的 element\n }\n\n this.elements[i] = element;\n this.elementsMap[key] = element;\n\n if (element.shape) {\n element.shape.set('zIndex', this.zIndexReversed ? this.elements.length - i : i);\n }\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (updated_1_1 && !updated_1_1.done && (_b = updated_1[\"return\"])) _b.call(updated_1);\n } finally {\n if (e_2) throw e_2.error;\n }\n } // 全部 setZIndex 之后,再执行 sort\n\n\n if (this.container) {\n this.container.sort();\n }\n\n try {\n // 销毁被删除的 elements\n for (var removed_1 = __values(removed), removed_1_1 = removed_1.next(); !removed_1_1.done; removed_1_1 = removed_1.next()) {\n var key = removed_1_1.value;\n var element = this.lastElementsMap[key]; // 更新动画配置,用户有可能在更新之前有对动画进行配置操作\n\n element.animate = this.animateOption;\n element.destroy();\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (removed_1_1 && !removed_1_1.done && (_c = removed_1[\"return\"])) _c.call(removed_1);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n };\n /**\n * 获取渲染的 label 类型。\n */\n\n\n Geometry.prototype.getLabelType = function () {\n var _a = this,\n labelOption = _a.labelOption,\n coordinate = _a.coordinate,\n type = _a.type;\n\n var coordinateType = coordinate.type,\n isTransposed = coordinate.isTransposed;\n var labelType = get(labelOption, ['cfg', 'type']);\n\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 * 获取 Y 轴上的最小值。\n */\n\n\n Geometry.prototype.getYMinValue = function () {\n var yScale = this.getYScale();\n var min = yScale.min,\n max = yScale.max;\n var value;\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\n return value;\n }; // 创建图形属性相关的配置项\n\n\n Geometry.prototype.createAttrOption = function (attrName, field, 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 var attrCfg = {};\n\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 Geometry.prototype.initAttributes = function () {\n var _this = this;\n\n var _a = this,\n attributes = _a.attributes,\n attributeOption = _a.attributeOption,\n theme = _a.theme,\n shapeType = _a.shapeType;\n\n this.groupScales = [];\n var tmpMap = {};\n\n var _loop_1 = function _loop_1(attrType) {\n if (attributeOption.hasOwnProperty(attrType)) {\n var option = attributeOption[attrType];\n\n if (!option) {\n return {\n value: void 0\n };\n }\n\n var attrCfg = __assign({}, option);\n\n var callback = attrCfg.callback,\n values = attrCfg.values,\n _b = attrCfg.fields,\n fields = _b === void 0 ? [] : _b; // 获取每一个字段对应的 scale\n\n var scales = fields.map(function (field) {\n var scale = _this.scales[field];\n\n if (!tmpMap[field] && GROUP_ATTRS.includes(attrType)) {\n var inferedScaleType = inferScaleType(scale, get(_this.scaleDefs, field), attrType, _this.type);\n\n if (inferedScaleType === 'cat') {\n _this.groupScales.push(scale);\n\n tmpMap[field] = true;\n }\n }\n\n return scale;\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\n var AttributeCtor = getAttributeClass(attrType);\n attributes[attrType] = new AttributeCtor(attrCfg);\n }\n }; // 遍历每一个 attrOption,各自创建 Attribute 实例\n\n\n for (var attrType in attributeOption) {\n var state_1 = _loop_1(attrType);\n\n if (_typeof(state_1) === \"object\") return state_1.value;\n }\n }; // 处理数据:分组 -> 数字化 -> adjust 调整\n\n\n Geometry.prototype.processData = function (data) {\n var e_4, _a;\n\n this.hasSorted = false;\n var scales = this.getAttribute('position').scales;\n var categoryScales = scales.filter(function (scale) {\n return scale.isCategory;\n });\n var groupedArray = this.groupData(data); // 数据分组\n\n var beforeAdjust = [];\n\n for (var i = 0, len = groupedArray.length; i < len; i++) {\n var subData = groupedArray[i];\n var arr = [];\n\n for (var j = 0, subLen = subData.length; j < subLen; j++) {\n var originData = subData[j];\n var item = {}; // tslint:disable-next-line: forin\n\n for (var k in originData) {\n item[k] = originData[k];\n }\n\n item[FIELD_ORIGIN] = originData;\n\n try {\n // 将分类数据翻译成数据, 仅对位置相关的度量进行数字化处理\n for (var categoryScales_1 = (e_4 = void 0, __values(categoryScales)), categoryScales_1_1 = categoryScales_1.next(); !categoryScales_1_1.done; categoryScales_1_1 = categoryScales_1.next()) {\n var scale = categoryScales_1_1.value;\n var field = scale.field;\n item[field] = scale.translate(item[field]);\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (categoryScales_1_1 && !categoryScales_1_1.done && (_a = categoryScales_1[\"return\"])) _a.call(categoryScales_1);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n\n arr.push(item);\n }\n\n beforeAdjust.push(arr);\n }\n\n var dataArray = this.adjustData(beforeAdjust); // 进行 adjust 数据调整\n\n this.beforeMappingData = dataArray;\n return dataArray;\n }; // 调整数据\n\n\n Geometry.prototype.adjustData = function (dataArray) {\n var adjustOption = this.adjustOption;\n\n var _a = this,\n intervalPadding = _a.intervalPadding,\n dodgePadding = _a.dodgePadding,\n theme = _a.theme; // 兼容theme配置\n\n\n var maxColumnWidth = this.maxColumnWidth || theme.maxColumnWidth;\n var minColumnWidth = this.minColumnWidth || theme.minColumnWidth;\n var columnWidthRatio = this.columnWidthRatio || theme.columnWidthRatio;\n var result = dataArray;\n\n if (adjustOption) {\n var xScale_2 = this.getXScale();\n var yScale = this.getYScale();\n var xField = xScale_2.field;\n var yField = yScale ? yScale.field : null;\n var xDimensionLength = getXDimensionLength(this.coordinate);\n var groupNum = xScale_2.values.length; // 传入size计算相关参数,默认宽度、最大最小宽度约束\n\n var sizeAttr = this.getAttribute('size');\n var defaultSize = void 0;\n\n if (sizeAttr) {\n defaultSize = sizeAttr.values[0];\n }\n\n for (var i = 0, len = adjustOption.length; i < len; i++) {\n var adjust = adjustOption[i];\n\n var adjustCfg = __assign({\n xField: xField,\n yField: yField,\n intervalPadding: intervalPadding,\n dodgePadding: dodgePadding,\n xDimensionLength: xDimensionLength,\n groupNum: groupNum,\n defaultSize: defaultSize,\n maxColumnWidth: maxColumnWidth,\n minColumnWidth: minColumnWidth,\n columnWidthRatio: columnWidthRatio\n }, adjust);\n\n var type = adjust.type;\n\n if (type === 'dodge') {\n var adjustNames = [];\n\n if (xScale_2.isCategory || xScale_2.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\n adjustCfg.adjustNames = adjustNames; // 每个分组内每条柱子的宽度占比,用户不可指定,用户需要通过 columnWidthRatio 指定\n // 兼容theme配置\n\n adjustCfg.dodgeRatio = columnWidthRatio;\n } else if (type === 'stack') {\n var coordinate = this.coordinate;\n\n if (!yScale) {\n // 一维的情况下获取高度和默认size\n adjustCfg.height = coordinate.getHeight();\n var size = this.getDefaultValue('size') || 3;\n adjustCfg.size = size;\n } // 不进行 transpose 时,用户又没有设置这个参数时,默认从上向下\n\n\n if (!coordinate.isTransposed && isNil(adjustCfg.reverseOrder)) {\n adjustCfg.reverseOrder = true;\n }\n }\n\n var adjustCtor = getAdjustClass(type);\n adjustCfg.dimValuesMap = {}; //生成dimValuesMap\n\n if (xScale_2 && xScale_2.values) {\n adjustCfg.dimValuesMap[xScale_2.field] = xScale_2.values.map(function (v) {\n return xScale_2.translate(v);\n });\n }\n\n var adjustInstance = new adjustCtor(adjustCfg);\n result = adjustInstance.process(result);\n this.adjusts[type] = adjustInstance;\n }\n }\n\n return result;\n }; // 对数据进行分组\n\n\n Geometry.prototype.groupData = function (data) {\n var groupScales = this.getGroupScales();\n var scaleDefs = this.scaleDefs;\n var appendConditions = {};\n var groupFields = [];\n\n for (var index = 0; index < groupScales.length; index++) {\n var scale = groupScales[index];\n var field = scale.field;\n groupFields.push(field);\n\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 Geometry.prototype.updateStackRange = function (scale, dataArray) {\n var mergeArray = flatten(dataArray);\n var field = scale.field;\n var min = scale.min;\n var max = scale.max;\n\n for (var index = 0; index < mergeArray.length; index++) {\n var obj = mergeArray[index];\n var tmpMin = Math.min.apply(null, obj[field]);\n var tmpMax = Math.max.apply(null, obj[field]);\n\n if (tmpMin < min) {\n min = tmpMin;\n }\n\n if (tmpMax > max) {\n max = tmpMax;\n }\n }\n\n var scaleDefs = this.scaleDefs;\n var cfg = {};\n\n if (min < scale.min && !get(scaleDefs, [field, 'min'])) {\n // 用户如果在列定义中定义了 min,则以用户定义的为准\n cfg.min = min;\n }\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 Geometry.prototype.beforeMapping = function (beforeMappingData) {\n // 当初加 clone 是因为 points 的引用关系,导致更新失败,可是现在貌似复现不出来了,所以暂时不进行 clone\n // const source = clone(beforeMappingData);\n var source = beforeMappingData;\n\n if (this.sortable) {\n this.sort(source);\n }\n\n if (this.generatePoints) {\n // 需要生成关键点\n for (var index = 0, length_5 = source.length; index < length_5; index++) {\n var currentData = source[index];\n this.generateShapePoints(currentData);\n var nextData = source[index + 1];\n\n if (nextData) {\n this.generateShapePoints(nextData);\n currentData[0].nextPoints = nextData[0].points;\n }\n }\n }\n\n return source;\n }; // 生成 shape 的关键点\n\n\n Geometry.prototype.generateShapePoints = function (data) {\n var shapeFactory = this.getShapeFactory();\n var shapeAttr = this.getAttribute('shape');\n\n for (var index = 0; index < data.length; index++) {\n var obj = data[index];\n var cfg = this.createShapePointsCfg(obj);\n var shape = shapeAttr ? this.getAttributeValues(shapeAttr, obj) : null;\n var points = shapeFactory.getShapePoints(shape, cfg);\n obj.points = points;\n }\n }; // 将数据归一化\n\n\n Geometry.prototype.normalizeValues = function (values, scale) {\n var rst = [];\n\n if (isArray(values)) {\n for (var index = 0; index < values.length; index++) {\n var value = values[index];\n rst.push(scale.scale(value));\n }\n } else {\n rst = scale.scale(values);\n }\n\n return rst;\n }; // 将数据映射至图形空间\n\n\n Geometry.prototype.mapping = function (data) {\n var attributes = this.attributes;\n var mappingData = [];\n\n for (var index = 0; index < data.length; index++) {\n var record = data[index];\n var newRecord = {\n _origin: record[FIELD_ORIGIN],\n points: record.points,\n nextPoints: record.nextPoints\n };\n\n for (var k in attributes) {\n if (attributes.hasOwnProperty(k)) {\n var attr = attributes[k];\n var names = attr.names;\n var values = this.getAttributeValues(attr, record);\n\n if (names.length > 1) {\n // position 之类的生成多个字段的属性\n for (var j = 0; j < values.length; j += 1) {\n var val = values[j];\n var name_1 = names[j];\n newRecord[name_1] = 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\n mappingData.push(newRecord);\n }\n\n return mappingData;\n }; // 将归一化的坐标值转换成画布坐标\n\n\n Geometry.prototype.convertPoint = function (mappingRecord) {\n var x = mappingRecord.x,\n y = mappingRecord.y;\n var rstX;\n var rstY;\n var obj;\n var coordinate = this.coordinate;\n\n if (isArray(x) && isArray(y)) {\n rstX = [];\n rstY = [];\n\n for (var 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\n for (var index = 0; index < y.length; index++) {\n var yVal = y[index];\n obj = coordinate.convert({\n x: x,\n y: yVal\n });\n\n if (rstX && rstX !== obj.x) {\n if (!isArray(rstX)) {\n rstX = [rstX];\n }\n\n rstX.push(obj.x);\n } else {\n rstX = obj.x;\n }\n\n rstY.push(obj.y);\n }\n } else if (isArray(x)) {\n rstX = [];\n\n for (var index = 0; index < x.length; index++) {\n var xVal = x[index];\n obj = coordinate.convert({\n x: xVal,\n y: y\n });\n\n if (rstY && rstY !== obj.y) {\n if (!isArray(rstY)) {\n rstY = [rstY];\n }\n\n rstY.push(obj.y);\n } else {\n rstY = obj.y;\n }\n\n rstX.push(obj.x);\n }\n } else {\n var point = coordinate.convert({\n x: x,\n y: y\n });\n rstX = point.x;\n rstY = point.y;\n }\n\n mappingRecord.x = rstX;\n mappingRecord.y = rstY;\n }; // 获取 style 配置\n\n\n Geometry.prototype.getStyleCfg = function (styleOption, originData) {\n var _a = styleOption.fields,\n fields = _a === void 0 ? [] : _a,\n callback = styleOption.callback,\n cfg = styleOption.cfg;\n\n if (cfg) {\n // 用户直接配置样式属性\n return cfg;\n }\n\n var params = fields.map(function (field) {\n return originData[field];\n });\n return callback.apply(void 0, __spreadArray([], __read(params), false));\n };\n\n Geometry.prototype.setCfg = function (cfg) {\n var _this = this;\n\n var coordinate = cfg.coordinate,\n data = cfg.data,\n theme = cfg.theme,\n scaleDefs = cfg.scaleDefs;\n\n if (coordinate) {\n this.coordinate = coordinate;\n }\n\n if (data) {\n this.data = data;\n }\n\n if (scaleDefs) {\n this.scaleDefs = scaleDefs;\n this.idFields = [];\n each(scaleDefs, function (scaleDef, field) {\n if (scaleDef && scaleDef.key) {\n _this.idFields.push(field);\n }\n });\n }\n\n if (theme) {\n this.theme = this.userTheme ? deepMix({}, theme, this.userTheme) : theme; // 支持 geometry 层级的主题设置\n }\n };\n\n Geometry.prototype.renderLabels = function (mappingArray, isUpdate) {\n if (isUpdate === void 0) {\n isUpdate = false;\n }\n\n return __awaiter(this, void 0, void 0, function () {\n var geometryLabel, labelType, GeometryLabelsCtor, labelsMap, elementLabels, _a, _b, _c, element, labels;\n\n var e_5, _d;\n\n var _this = this;\n\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n geometryLabel = this.geometryLabel;\n this.emit(GEOMETRY_LIFE_CIRCLE.BEFORE_RENDER_LABEL);\n\n if (!geometryLabel) {\n labelType = this.getLabelType();\n GeometryLabelsCtor = getGeometryLabel(labelType);\n geometryLabel = new GeometryLabelsCtor(this);\n this.geometryLabel = geometryLabel;\n }\n\n return [4\n /*yield*/\n , geometryLabel.render(mappingArray, isUpdate)];\n\n case 1:\n _e.sent();\n\n labelsMap = geometryLabel.labelsRenderer.shapesMap;\n elementLabels = new Map();\n each(labelsMap, function (labelGroup, labelGroupId) {\n var labelChildren = labelGroup.getChildren() || [];\n\n for (var j = 0; j < labelChildren.length; j++) {\n var labelShape = labelChildren[j];\n\n var element = _this.elementsMap[labelShape.get('elementId') || labelGroupId.split(' ')[0]];\n\n if (element) {\n labelShape.cfg.name = ['element', 'label'];\n labelShape.cfg.element = element;\n var labels = elementLabels.get(element) || new Set();\n labels.add(labelGroup);\n elementLabels.set(element, labels);\n }\n }\n });\n\n try {\n for (_a = __values(elementLabels.entries()), _b = _a.next(); !_b.done; _b = _a.next()) {\n _c = __read(_b.value, 2), element = _c[0], labels = _c[1];\n element.labelShape = __spreadArray([], __read(labels), false);\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (_b && !_b.done && (_d = _a[\"return\"])) _d.call(_a);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n this.emit(GEOMETRY_LIFE_CIRCLE.AFTER_RENDER_LABEL);\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n /**\n * 是否需要进行群组入场动画\n * 规则:\n * 1. 如果发生更新,则不进行\n * 2. 如果用户关闭 geometry 动画,则不进行\n * 3. 如果用户关闭了 appear 动画,则不进行\n * 4. 如果用户配置了 appear.animation,则不进行\n */\n\n\n Geometry.prototype.canDoGroupAnimation = function (isUpdate) {\n return !isUpdate && this.animateOption && (get(this.animateOption, 'appear') === undefined || get(this.animateOption, 'appear') && get(this.animateOption, ['appear', 'animation']) === undefined);\n };\n\n return Geometry;\n}(Base);\n\nexport default Geometry;","import { __values } from \"tslib\";\nimport { groupToMap } from '@antv/util';\n/** @ignore */\n\nexport function group(data, fields, appendConditions) {\n var e_1, _a;\n\n if (appendConditions === void 0) {\n appendConditions = {};\n }\n\n if (!fields) {\n return [data];\n }\n\n var groups = groupToMap(data, fields);\n var array = [];\n\n if (fields.length === 1 && appendConditions[fields[0]]) {\n var values = appendConditions[fields[0]];\n\n try {\n for (var values_1 = __values(values), values_1_1 = values_1.next(); !values_1_1.done; values_1_1 = values_1.next()) {\n var value = values_1_1.value;\n var arr = groups[\"_\".concat(value)];\n\n if (arr) {\n // 可能存在用户设置 values ,但是数据中没有对应的字段,则这时候 arr 就为 null\n array.push(arr);\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (values_1_1 && !values_1_1.done && (_a = values_1[\"return\"])) _a.call(values_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n } else {\n for (var k in groups) {\n if (groups.hasOwnProperty(k)) {\n var eachGroup = groups[k];\n array.push(eachGroup);\n }\n }\n }\n\n return array;\n}","import { ext } from '@antv/matrix-util';\nvar transform = ext.transform;\nexport { transform };\n/**\n * 对元素进行平移操作。\n * @param element 进行变换的元素\n * @param x x 方向位移\n * @param y y 方向位移\n */\n\nexport function translate(element, x, y) {\n var matrix = transform(element.getMatrix(), [['t', x, y]]);\n element.setMatrix(matrix);\n}\n/**\n * 获取元素旋转矩阵 (以元素的左上角为旋转点)\n * @param element 进行变换的元素\n * @param rotateRadian 旋转弧度\n */\n\nexport function getRotateMatrix(element, rotateRadian) {\n var _a = element.attr(),\n x = _a.x,\n y = _a.y;\n\n var matrix = transform(element.getMatrix(), [['t', -x, -y], ['r', rotateRadian], ['t', x, y]]);\n return matrix;\n}\n/**\n * 对元素进行旋转操作。\n * @param element 进行变换的元素\n * @param rotateRadian 旋转弧度\n */\n\nexport function rotate(element, rotateRadian) {\n var matrix = getRotateMatrix(element, rotateRadian);\n element.setMatrix(matrix);\n}\n/**\n * 获取元矩阵。\n * @returns identity matrix\n */\n\nexport function getIdentityMatrix() {\n return [1, 0, 0, 0, 1, 0, 0, 0, 1];\n}\n/**\n * 围绕图形中心点进行缩放\n * @param element 进行缩放的图形元素\n * @param ratio 缩放比例\n */\n\nexport function zoom(element, ratio) {\n var bbox = element.getBBox();\n var x = (bbox.minX + bbox.maxX) / 2;\n var y = (bbox.minY + bbox.maxY) / 2;\n element.applyToMatrix([x, y, 1]);\n var matrix = transform(element.getMatrix(), [['t', -x, -y], ['s', ratio, ratio], ['t', x, y]]);\n element.setMatrix(matrix);\n}","/**\n * @file utils of label\n */\nimport { isNil, isNumber, some } from '@antv/util';\nimport { rotate } from '../../../util/transform';\n/**\n * 查找 Label Group 中的文本 shape 对象\n * @param label\n */\n\nexport function findLabelTextShape(label) {\n return label.find(function (el) {\n return el.get('type') === 'text';\n });\n}\n/**\n * 获取标签背景信息: box (无旋转) + rotation (旋转角度)\n */\n\nexport function getLabelBackgroundInfo(labelGroup, labelItem, padding) {\n if (padding === void 0) {\n padding = [0, 0, 0, 0];\n }\n\n var content = labelGroup && labelGroup.getChildren()[0];\n\n if (content) {\n var labelShape = content.clone(); // revert rotate\n\n if (labelItem === null || labelItem === void 0 ? void 0 : labelItem.rotate) {\n rotate(labelShape, -labelItem.rotate);\n } // use `getCanvasBBox`, because if Shape is been translated, `getBBox` is not the actual box position\n\n\n var _a = labelShape.getCanvasBBox(),\n x = _a.x,\n y = _a.y,\n width = _a.width,\n height = _a.height;\n\n labelShape.destroy();\n var boxPadding = padding;\n\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 === null || labelItem === void 0 ? void 0 : labelItem.rotate) || 0\n };\n }\n\n return {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n rotation: 0\n };\n}\n/**\n * 计算两个矩形之间的堆叠区域面积\n */\n\nexport function getOverlapArea(a, b, margin) {\n if (margin === void 0) {\n margin = 0;\n }\n\n var xOverlap = Math.max(0, Math.min(a.x + a.width + margin, b.x + b.width + margin) - Math.max(a.x - margin, b.x - margin));\n var yOverlap = Math.max(0, Math.min(a.y + a.height + margin, b.y + b.height + margin) - Math.max(a.y - margin, b.y - margin));\n return xOverlap * yOverlap;\n}\n/** 检测是否和已布局的堆叠 */\n\nexport function checkShapeOverlap(cur, dones) {\n var box = cur.getBBox();\n return some(dones, function (done) {\n var target = done.getBBox();\n return getOverlapArea(box, target, 2) > 0;\n });\n}","import { each, get } from '@antv/util';\nimport { doAnimate } from '../animate';\nimport { getReplaceAttrs } from '../util/graphics';\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 */\n\nexport function updateLabel(fromShape, toShape, cfg) {\n var data = cfg.data,\n origin = cfg.origin,\n animateCfg = cfg.animateCfg,\n coordinate = cfg.coordinate;\n var updateAnimateCfg = get(animateCfg, 'update');\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 (fromShape.getChildren() || []).forEach(function (fromChild, idx) {\n var toChild = toShape.getChildByIndex(idx);\n\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 var newAttrs = getReplaceAttrs(fromChild, toChild);\n\n if (updateAnimateCfg) {\n doAnimate(fromChild, updateAnimateCfg, {\n toAttrs: newAttrs,\n coordinate: coordinate\n });\n } else {\n fromChild.attr(newAttrs);\n }\n\n if (toChild.isGroup()) {\n updateLabel(fromChild, toChild, cfg);\n }\n }\n }); // append\n\n each(toShape.getChildren(), function (child, idx) {\n if (idx >= fromShape.getCount()) {\n if (!child.destroyed) {\n fromShape.add(child);\n }\n }\n });\n}","import { __assign, __awaiter, __generator, __rest, __values } from \"tslib\";\nimport { deepMix, each, get, isArray, isNull } from '@antv/util';\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 * Geometry labels 渲染组件\n */\n\nvar Labels =\n/** @class */\nfunction () {\n function Labels(cfg) {\n /** 存储当前 shape 的映射表,键值为 shape id */\n this.shapesMap = {};\n var layout = cfg.layout,\n container = cfg.container;\n this.layout = layout;\n this.container = container;\n }\n /**\n * 渲染文本\n */\n\n\n Labels.prototype.render = function (items, shapes, isUpdate) {\n if (isUpdate === void 0) {\n isUpdate = false;\n }\n\n return __awaiter(this, void 0, void 0, function () {\n var shapesMap, offscreenGroup, items_1, items_1_1, item, lastShapesMap;\n\n var e_1, _a;\n\n var _this = this;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n shapesMap = {};\n offscreenGroup = this.createOffscreenGroup();\n if (!items.length) return [3\n /*break*/\n , 2];\n\n try {\n // 如果 items 空的话就不进行绘制调整操作\n // step 1: 在虚拟 group 中创建 shapes\n for (items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {\n item = items_1_1.value;\n\n if (item) {\n shapesMap[item.id] = this.renderLabel(item, offscreenGroup);\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1[\"return\"])) _a.call(items_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n } // [todo] Move layout into Worker.\n // step 2: 根据布局,调整 labels\n\n\n return [4\n /*yield*/\n , this.doLayout(items, shapes, shapesMap)];\n\n case 1:\n // [todo] Move layout into Worker.\n // step 2: 根据布局,调整 labels\n _b.sent(); // step 3.1: 绘制 labelLine\n\n\n this.renderLabelLine(items, shapesMap); // step 3.2: 绘制 labelBackground\n\n this.renderLabelBackground(items, shapesMap); // step 4: 根据用户设置的偏移量调整 label\n\n this.adjustLabel(items, shapesMap);\n _b.label = 2;\n\n case 2:\n lastShapesMap = this.shapesMap;\n each(shapesMap, function (shape, id) {\n if (shape.destroyed) {\n // label 在布局调整环节被删除了(doLayout)\n delete shapesMap[id];\n } else {\n if (lastShapesMap[id]) {\n // 图形发生更新\n var data = shape.get('data');\n var origin_1 = shape.get('origin');\n var coordinate = shape.get('coordinate');\n var currentAnimateCfg = shape.get('animateCfg');\n var currentShape = lastShapesMap[id]; // 已经在渲染树上的 shape\n\n updateLabel(currentShape, shapesMap[id], {\n data: data,\n origin: origin_1,\n animateCfg: currentAnimateCfg,\n coordinate: coordinate\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\n _this.container.add(shape);\n\n var animateCfg = get(shape.get('animateCfg'), isUpdate ? 'enter' : 'appear');\n\n if (animateCfg) {\n doAnimate(shape, animateCfg, {\n toAttrs: __assign({}, shape.attr()),\n coordinate: shape.get('coordinate')\n });\n }\n }\n\n delete lastShapesMap[id];\n }\n }); // 移除\n\n each(lastShapesMap, function (deleteShape) {\n var animateCfg = get(deleteShape.get('animateCfg'), 'leave');\n\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 this.shapesMap = shapesMap;\n offscreenGroup.destroy();\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n /** 清除当前 labels */\n\n\n Labels.prototype.clear = function () {\n this.container.clear();\n this.shapesMap = {};\n };\n /** 销毁 */\n\n\n Labels.prototype.destroy = function () {\n this.container.destroy();\n this.shapesMap = null;\n };\n\n Labels.prototype.renderLabel = function (cfg, container) {\n var id = cfg.id,\n elementId = cfg.elementId,\n data = cfg.data,\n mappingData = cfg.mappingData,\n coordinate = cfg.coordinate,\n animate = cfg.animate,\n content = cfg.content,\n capture = cfg.capture;\n var shapeAppendCfg = {\n id: id,\n elementId: elementId,\n capture: capture,\n data: data,\n origin: __assign(__assign({}, mappingData), {\n data: mappingData[FIELD_ORIGIN]\n }),\n coordinate: coordinate\n };\n var labelGroup = container.addGroup(__assign({\n name: 'label',\n // 如果 this.animate === false 或者 cfg.animate === false/null 则不进行动画,否则进行动画配置的合并\n animateCfg: this.animate === false || animate === null || animate === false ? false : deepMix({}, this.animate, animate)\n }, shapeAppendCfg));\n var labelShape;\n\n if (content.isGroup && content.isGroup() || content.isShape && content.isShape()) {\n // 如果 content 是 Group 或者 Shape,根据 textAlign 调整位置后,直接将其加入 labelGroup\n var _a = content.getCanvasBBox(),\n width = _a.width,\n height = _a.height;\n\n var textAlign = get(cfg, 'textAlign', 'left');\n var x = cfg.x;\n var 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\n labelShape = content;\n labelGroup.add(content);\n } else {\n var fill = get(cfg, ['style', 'fill']);\n labelShape = labelGroup.addShape('text', __assign({\n attrs: __assign(__assign({\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 if (cfg.rotate) {\n rotate(labelShape, cfg.rotate);\n }\n\n return labelGroup;\n }; // 根据type对label布局\n\n\n Labels.prototype.doLayout = function (items, shapes, shapesMap) {\n return __awaiter(this, void 0, void 0, function () {\n var layouts;\n\n var _this = this;\n\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.layout) return [3\n /*break*/\n , 2];\n layouts = isArray(this.layout) ? this.layout : [this.layout];\n return [4\n /*yield*/\n , Promise.all(layouts.map(function (layout) {\n var layoutFn = getGeometryLabelLayout(get(layout, 'type', ''));\n if (!layoutFn) return;\n var labelShapes = [];\n var geometryShapes = [];\n each(shapesMap, function (labelShape, id) {\n labelShapes.push(labelShape);\n geometryShapes.push(shapes[labelShape.get('elementId')]);\n }); // [todo] Refactor more layout into Worker.\n\n return layoutFn(items, labelShapes, geometryShapes, _this.region, layout.cfg);\n }))];\n\n case 1:\n _a.sent();\n\n _a.label = 2;\n\n case 2:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Labels.prototype.renderLabelLine = function (labelItems, shapesMap) {\n each(labelItems, function (labelItem) {\n var coordinate = get(labelItem, 'coordinate');\n\n if (!labelItem || !coordinate) {\n return;\n }\n\n var center = coordinate.getCenter();\n var radius = coordinate.getRadius();\n\n if (!labelItem.labelLine) {\n // labelLine: null | false,关闭 label 对应的 labelLine\n return;\n }\n\n var labelLineCfg = get(labelItem, 'labelLine', {});\n var id = labelItem.id;\n var path = labelLineCfg.path;\n\n if (!path) {\n var start = polarToCartesian(center.x, center.y, radius, labelItem.angle);\n path = [['M', start.x, start.y], ['L', labelItem.x, labelItem.y]];\n }\n\n var labelGroup = shapesMap[id];\n\n if (!labelGroup.destroyed) {\n labelGroup.addShape('path', {\n capture: false,\n attrs: __assign({\n path: path,\n stroke: labelItem.color ? labelItem.color : get(labelItem, ['style', 'fill'], '#000'),\n fill: null\n }, labelLineCfg.style),\n id: id,\n origin: labelItem.mappingData,\n data: labelItem.data,\n coordinate: labelItem.coordinate\n });\n }\n });\n };\n /**\n * 绘制标签背景\n * @param labelItems\n */\n\n\n Labels.prototype.renderLabelBackground = function (labelItems, shapesMap) {\n each(labelItems, function (labelItem) {\n var coordinate = get(labelItem, 'coordinate');\n var background = get(labelItem, 'background');\n\n if (!background || !coordinate) {\n return;\n }\n\n var id = labelItem.id;\n var labelGroup = shapesMap[id];\n\n if (!labelGroup.destroyed) {\n var labelContentShape = labelGroup.getChildren()[0];\n\n if (labelContentShape) {\n var _a = getLabelBackgroundInfo(labelGroup, labelItem, background.padding),\n rotation = _a.rotation,\n box = __rest(_a, [\"rotation\"]);\n\n var backgroundShape = labelGroup.addShape('rect', {\n attrs: __assign(__assign({}, box), background.style || {}),\n id: id,\n origin: labelItem.mappingData,\n data: labelItem.data,\n coordinate: labelItem.coordinate\n });\n backgroundShape.setZIndex(-1);\n\n if (rotation) {\n var matrix = labelContentShape.getMatrix();\n backgroundShape.setMatrix(matrix);\n }\n }\n }\n });\n };\n\n Labels.prototype.createOffscreenGroup = function () {\n var container = this.container;\n var GroupClass = container.getGroupBase(); // 获取分组的构造函数\n\n var newGroup = new GroupClass({});\n return newGroup;\n };\n\n Labels.prototype.adjustLabel = function (items, shapesMap) {\n each(items, function (item) {\n if (item) {\n var id = item.id;\n var labelGroup = shapesMap[id];\n\n if (!labelGroup.destroyed) {\n // fix: 如果说开发者的 label content 是一个 group,此处的偏移无法对 整个 content group 生效;场景类似 饼图 spider label 是一个含 2 个 textShape 的 gorup\n var labelShapes = labelGroup.findAll(function (ele) {\n return ele.get('type') !== 'path';\n });\n each(labelShapes, function (labelShape) {\n if (labelShape) {\n if (item.offsetX) {\n labelShape.attr('x', labelShape.attr('x') + item.offsetX);\n }\n\n if (item.offsetY) {\n labelShape.attr('y', labelShape.attr('y') + item.offsetY);\n }\n }\n });\n }\n }\n });\n };\n\n return Labels;\n}();\n\nexport default Labels;","import { __assign, __awaiter, __generator, __read, __spreadArray } from \"tslib\";\nimport { deepMix, each, get, isArray, isFunction, isNil, isNumber, isUndefined } from '@antv/util';\nimport { FIELD_ORIGIN } from '../../constant';\nimport { getDefaultAnimateCfg } from '../../animate';\nimport { getPolygonCentroid } from '../../util/graphics';\nimport Labels from '../../component/labels';\n\nfunction avg(arr) {\n var sum = 0;\n each(arr, function (value) {\n sum += value;\n });\n return sum / arr.length;\n}\n/**\n * Geometry Label 基类,用于生成 Geometry 下所有 label 的配置项信息\n */\n\n\nvar GeometryLabel =\n/** @class */\nfunction () {\n function GeometryLabel(geometry) {\n this.geometry = geometry;\n }\n\n GeometryLabel.prototype.getLabelItems = function (mapppingArray) {\n var _this = this;\n\n var items = [];\n var labelCfgs = this.getLabelCfgs(mapppingArray); // 获取 label 相关的 x,y 的值,获取具体的 x, y,防止存在数组\n\n each(mapppingArray, function (mappingData, index) {\n var labelCfg = labelCfgs[index];\n\n if (!labelCfg || isNil(mappingData.x) || isNil(mappingData.y)) {\n items.push(null);\n return;\n }\n\n var labelContent = !isArray(labelCfg.content) ? [labelCfg.content] : labelCfg.content;\n labelCfg.content = labelContent;\n var total = labelContent.length;\n each(labelContent, function (content, subIndex) {\n if (isNil(content) || content === '') {\n items.push(null);\n return;\n }\n\n var item = __assign(__assign({}, labelCfg), _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 GeometryLabel.prototype.render = function (mappingArray, isUpdate) {\n if (isUpdate === void 0) {\n isUpdate = false;\n }\n\n return __awaiter(this, void 0, void 0, function () {\n var labelItems, labelsRenderer, shapes;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n labelItems = this.getLabelItems(mappingArray);\n labelsRenderer = this.getLabelsRenderer();\n shapes = this.getGeometryShapes(); // 渲染文本\n\n return [4\n /*yield*/\n , labelsRenderer.render(labelItems, shapes, isUpdate)];\n\n case 1:\n // 渲染文本\n _a.sent();\n\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n GeometryLabel.prototype.clear = function () {\n var labelsRenderer = this.labelsRenderer;\n\n if (labelsRenderer) {\n labelsRenderer.clear();\n }\n };\n\n GeometryLabel.prototype.destroy = function () {\n var labelsRenderer = this.labelsRenderer;\n\n if (labelsRenderer) {\n labelsRenderer.destroy();\n }\n\n this.labelsRenderer = null;\n }; // geometry 更新之后,对应的 Coordinate 也会更新,为了获取到最新鲜的 Coordinate,故使用方法获取\n\n\n GeometryLabel.prototype.getCoordinate = function () {\n return this.geometry.coordinate;\n };\n /**\n * 获取 label 的默认配置\n */\n\n\n GeometryLabel.prototype.getDefaultLabelCfg = function (offset, position) {\n var geometry = this.geometry;\n var type = geometry.type,\n theme = geometry.theme;\n\n if (type === 'polygon' || type === 'interval' && position === 'middle' || offset < 0 && !['line', 'point', 'path'].includes(type)) {\n // polygon 或者 (interval 且 middle) 或者 offset 小于 0 时,文本展示在图形内部,将其颜色设置为 白色\n return get(theme, 'innerLabels', {});\n }\n\n return get(theme, 'labels', {});\n };\n /**\n * 获取当前 label 的最终配置\n * @param labelCfg\n */\n\n\n GeometryLabel.prototype.getThemedLabelCfg = function (labelCfg) {\n var geometry = this.geometry;\n var defaultLabelCfg = this.getDefaultLabelCfg();\n var type = geometry.type,\n theme = geometry.theme;\n var 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 * 设置 label 位置\n * @param labelPointCfg\n * @param mappingData\n * @param index\n * @param position\n */\n\n\n GeometryLabel.prototype.setLabelPosition = function (labelPointCfg, mappingData, index, position) {};\n /**\n * @desc 获取 label offset\n */\n\n\n GeometryLabel.prototype.getLabelOffset = function (offset) {\n var coordinate = this.getCoordinate();\n var vector = this.getOffsetVector(offset);\n return coordinate.isTransposed ? vector[0] : vector[1];\n };\n /**\n * 获取每个 label 的偏移量 (矢量)\n * @param labelCfg\n * @param index\n * @param total\n * @return {Point} offsetPoint\n */\n\n\n GeometryLabel.prototype.getLabelOffsetPoint = function (labelCfg, index, total) {\n var offset = labelCfg.offset;\n var coordinate = this.getCoordinate();\n var transposed = coordinate.isTransposed;\n var dim = transposed ? 'x' : 'y';\n var factor = transposed ? 1 : -1; // y 方向上越大,像素的坐标越小,所以transposed时将系数变成\n\n var offsetPoint = {\n x: 0,\n y: 0\n };\n\n if (index > 0 || total === 1) {\n // 判断是否小于0\n offsetPoint[dim] = offset * factor;\n } else {\n offsetPoint[dim] = offset * factor * -1;\n }\n\n return offsetPoint;\n };\n /**\n * 获取每个 label 的位置\n * @param labelCfg\n * @param mappingData\n * @param index\n * @returns label point\n */\n\n\n GeometryLabel.prototype.getLabelPoint = function (labelCfg, mappingData, index) {\n var coordinate = this.getCoordinate();\n var total = labelCfg.content.length;\n\n function getDimValue(value, idx, isAvg) {\n if (isAvg === void 0) {\n isAvg = false;\n }\n\n var v = value;\n\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.length - 1];\n } else {\n v = avg(v);\n }\n }\n } else {\n v = v[idx];\n }\n }\n\n return v;\n }\n\n var label = {\n content: labelCfg.content[index],\n x: 0,\n y: 0,\n start: {\n x: 0,\n y: 0\n },\n color: '#fff'\n };\n var shape = isArray(mappingData.shape) ? mappingData.shape[0] : mappingData.shape;\n var isFunnel = shape === 'funnel' || shape === 'pyramid'; // 多边形场景,多用于地图\n\n if (this.geometry.type === 'polygon') {\n var 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 var nextPoints = get(mappingData, 'nextPoints');\n var points = get(mappingData, 'points');\n\n if (nextPoints) {\n // 非漏斗图底部\n var point1 = coordinate.convert(points[1]);\n var point2 = coordinate.convert(nextPoints[1]);\n label.x = (point1.x + point2.x) / 2;\n label.y = (point1.y + point2.y) / 2;\n } else if (shape === 'pyramid') {\n var point1 = coordinate.convert(points[1]);\n var point2 = coordinate.convert(points[2]);\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\n var offsetPoint = this.getLabelOffsetPoint(labelCfg, index, total);\n label.start = {\n x: label.x,\n y: label.y\n };\n label.x += offsetPoint.x;\n label.y += offsetPoint.y;\n label.color = mappingData.color;\n return label;\n };\n /**\n * 获取文本的对齐方式\n * @param item\n * @param index\n * @param total\n * @returns\n */\n\n\n GeometryLabel.prototype.getLabelAlign = function (item, index, total) {\n var align = 'center';\n var coordinate = this.getCoordinate();\n\n if (coordinate.isTransposed) {\n var offset = item.offset;\n\n if (offset < 0) {\n align = 'right';\n } else if (offset === 0) {\n align = 'center';\n } else {\n align = 'left';\n }\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\n return align;\n };\n /**\n * 获取每一个 label 的唯一 id\n * @param mappingData label 对应的图形的绘制数据\n */\n\n\n GeometryLabel.prototype.getLabelId = function (mappingData) {\n var geometry = this.geometry;\n var type = geometry.type;\n var xScale = geometry.getXScale();\n var yScale = geometry.getYScale();\n var origin = mappingData[FIELD_ORIGIN]; // 原始数据\n\n var labelId = geometry.getElementId(mappingData);\n\n if (type === 'line' || type === 'area') {\n // 折线图以及区域图,一条线会对应一组数据,即多个 labels,为了区分这些 labels,需要在 line id 的前提下加上 x 字段值\n labelId += \" \".concat(origin[xScale.field]);\n } else if (type === 'path') {\n // path 路径图,无序,有可能存在相同 x 不同 y 的情况,需要通过 x y 来确定唯一 id\n labelId += \" \".concat(origin[xScale.field], \"-\").concat(origin[yScale.field]);\n }\n\n return labelId;\n }; // 获取 labels 组件\n\n\n GeometryLabel.prototype.getLabelsRenderer = function () {\n var _a = this.geometry,\n labelsContainer = _a.labelsContainer,\n labelOption = _a.labelOption,\n canvasRegion = _a.canvasRegion,\n animateOption = _a.animateOption;\n var coordinate = this.geometry.coordinate;\n var labelsRenderer = this.labelsRenderer;\n\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\n labelsRenderer.region = canvasRegion; // 设置动画配置,如果 geometry 的动画关闭了,那么 label 的动画也会关闭\n\n labelsRenderer.animate = animateOption ? getDefaultAnimateCfg('label', coordinate) : false;\n return labelsRenderer;\n };\n\n GeometryLabel.prototype.getLabelCfgs = function (mapppingArray) {\n var _this = this;\n\n var geometry = this.geometry;\n var labelOption = geometry.labelOption,\n scales = geometry.scales,\n coordinate = geometry.coordinate;\n var _a = labelOption,\n fields = _a.fields,\n callback = _a.callback,\n cfg = _a.cfg;\n var labelScales = fields.map(function (field) {\n return scales[field];\n });\n var labelCfgs = [];\n each(mapppingArray, function (mappingData, index) {\n var origin = mappingData[FIELD_ORIGIN]; // 原始数据\n\n var originText = _this.getLabelText(origin, labelScales);\n\n var callbackCfg;\n\n if (callback) {\n // 当同时配置了 callback 和 cfg 时,以 callback 为准\n var originValues = fields.map(function (field) {\n return origin[field];\n });\n callbackCfg = callback.apply(void 0, __spreadArray([], __read(originValues), false));\n\n if (isNil(callbackCfg)) {\n labelCfgs.push(null);\n return;\n }\n }\n\n var labelCfg = __assign(__assign({\n id: _this.getLabelId(mappingData),\n elementId: _this.geometry.getElementId(mappingData),\n data: origin,\n // 存储原始数据\n mappingData: mappingData,\n // 存储映射后的数据,\n coordinate: coordinate\n }, cfg), callbackCfg);\n\n if (isFunction(labelCfg.position)) {\n labelCfg.position = labelCfg.position(origin, mappingData, index);\n }\n\n var offset = _this.getLabelOffset(labelCfg.offset || 0); // defaultCfg 需要判断 innerLabels & labels\n\n\n var defaultLabelCfg = _this.getDefaultLabelCfg(offset, labelCfg.position); // labelCfg priority: defaultCfg < cfg < callbackCfg\n\n\n labelCfg = deepMix({}, defaultLabelCfg, labelCfg); // 获取最终的 offset\n\n labelCfg.offset = _this.getLabelOffset(labelCfg.offset || 0);\n var content = labelCfg.content;\n\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 return labelCfgs;\n };\n\n GeometryLabel.prototype.getLabelText = function (origin, scales) {\n var labelTexts = [];\n each(scales, function (scale) {\n var value = origin[scale.field];\n\n if (isArray(value)) {\n value = value.map(function (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 GeometryLabel.prototype.getOffsetVector = function (offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n var coordinate = this.getCoordinate();\n var actualOffset = 0;\n\n if (isNumber(offset)) {\n actualOffset = offset;\n } // 如果 x,y 翻转,则偏移 x,否则偏移 y\n\n\n return coordinate.isTransposed ? coordinate.applyMatrix(actualOffset, 0) : coordinate.applyMatrix(0, actualOffset);\n };\n\n GeometryLabel.prototype.getGeometryShapes = function () {\n var geometry = this.geometry;\n var shapes = {};\n each(geometry.elementsMap, function (element, id) {\n shapes[id] = element.shape;\n }); // 因为有可能 shape 还在进行动画,导致 shape.getBBox() 获取到的值不是最终态,所以需要从 offscreenGroup 获取\n\n each(geometry.getOffscreenGroup().getChildren(), function (child) {\n var id = geometry.getElementId(child.get('origin').mappingData);\n shapes[id] = child;\n });\n return shapes;\n };\n\n return GeometryLabel;\n}();\n\nexport default GeometryLabel;","import { __read, __spreadArray } from \"tslib\";\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 */\n\nexport function getMappingValue(attr, value, def) {\n if (!attr) {\n return def;\n }\n\n var r; // 多参数映射,阻止程序报错\n\n if (attr.callback && attr.callback.length > 1) {\n var restArgs = Array(attr.callback.length - 1).fill('');\n r = attr.mapping.apply(attr, __spreadArray([value], __read(restArgs), false)).join('');\n } else {\n r = attr.mapping(value).join('');\n }\n\n return r || def;\n}","/** @ignore */\nexport var MarkerSymbols = {\n hexagon: function hexagon(x, y, r) {\n var diffX = r / 2 * Math.sqrt(3);\n return [['M', x, y - r], ['L', x + diffX, y - r / 2], ['L', x + diffX, y + r / 2], ['L', x, y + r], ['L', x - diffX, y + r / 2], ['L', x - diffX, y - r / 2], ['Z']];\n },\n bowtie: function bowtie(x, y, r) {\n var 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: function cross(x, y, r) {\n return [['M', x - r, y - r], ['L', x + r, y + r], ['M', x + r, y - r], ['L', x - r, y + r]];\n },\n tick: function tick(x, y, r) {\n return [['M', x - r / 2, y - r], ['L', x + r / 2, y - r], ['M', x, y - r], ['L', x, y + r], ['M', x - r / 2, y + r], ['L', x + r / 2, y + r]];\n },\n plus: function plus(x, y, r) {\n return [['M', x - r, y], ['L', x + r, y], ['M', x, y - r], ['L', x, y + r]];\n },\n hyphen: function hyphen(x, y, r) {\n return [['M', x - r, y], ['L', x + r, y]];\n },\n line: function line(x, y, r) {\n return [['M', x, y - r], ['L', x, y + r]];\n }\n};","import { __assign } from \"tslib\";\nimport { deepMix, isString, each, get, isFunction } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { getMappingValue } from './attr';\nimport { omit } from './helper';\nimport { MarkerSymbols } from './marker';\n/** 线条形 marker symbol */\n\nvar STROKES_SYMBOLS = ['line', 'cross', 'tick', 'plus', 'hyphen'];\n/**\n * 处理用户配置的 marker style\n * @param markerStyle\n * @param userMarker.style\n * @returns {ShapeAttrs} newStyle\n */\n\nfunction handleUserMarkerStyle(markerStyle, style) {\n if (isFunction(style)) {\n return style(markerStyle);\n }\n\n return deepMix({}, markerStyle, style);\n}\n/**\n * 根据 marker 是否为线条形 symbol, 来调整下样式\n * @param symbol\n * @param style\n * @param color\n */\n\n\nfunction adpatorMarkerStyle(marker, color) {\n var symbol = marker.symbol;\n\n if (isString(symbol) && STROKES_SYMBOLS.indexOf(symbol) !== -1) {\n var markerStyle = get(marker, 'style', {});\n var lineWidth = get(markerStyle, 'lineWidth', 1);\n var stroke = markerStyle.stroke || markerStyle.fill || color;\n marker.style = deepMix({}, marker.style, {\n lineWidth: lineWidth,\n stroke: stroke,\n fill: null\n });\n }\n}\n/**\n * 设置 marker 的 symbol,将 字符串的 symbol 转换为真正的绘制命令\n * @param marker\n */\n\n\nfunction setMarkerSymbol(marker) {\n var symbol = marker.symbol;\n\n if (isString(symbol) && MarkerSymbols[symbol]) {\n marker.symbol = MarkerSymbols[symbol];\n }\n}\n/**\n * @ignore\n * get the legend layout from direction\n * @param direction\n * @returns layout 'horizontal' | 'vertical'\n */\n\n\nexport function getLegendLayout(direction) {\n return direction.startsWith(DIRECTION.LEFT) || direction.startsWith(DIRECTION.RIGHT) ? 'vertical' : 'horizontal';\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 */\n\nexport function getLegendItems(view, geometry, attr, themeMarker, userMarker) {\n var scale = attr.getScale(attr.type);\n\n if (scale.isCategory) {\n var field_1 = scale.field;\n var colorAttr_1 = geometry.getAttribute('color');\n var shapeAttr_1 = geometry.getAttribute('shape');\n var defaultColor_1 = view.getTheme().defaultColor;\n var isInPolar_1 = geometry.coordinate.isPolar;\n return scale.getTicks().map(function (tick, index) {\n var _a;\n\n var text = tick.text,\n scaleValue = tick.value;\n var name = text;\n var value = scale.invert(scaleValue); // 通过过滤图例项的数据,来看是否 unchecked\n\n var unchecked = view.filterFieldData(field_1, [(_a = {}, _a[field_1] = value, _a)]).length === 0;\n each(view.views, function (subView) {\n var _a;\n\n if (!subView.filterFieldData(field_1, [(_a = {}, _a[field_1] = value, _a)]).length) {\n unchecked = true;\n }\n }); // @ts-ignore\n\n var color = getMappingValue(colorAttr_1, value, defaultColor_1);\n var shape = getMappingValue(shapeAttr_1, value, 'point');\n var marker = geometry.getShapeMarker(shape, {\n color: color,\n isInPolar: isInPolar_1\n });\n var markerCfg = userMarker;\n\n if (isFunction(markerCfg)) {\n markerCfg = markerCfg(name, index, __assign({\n name: name,\n value: value\n }, deepMix({}, themeMarker, marker)));\n } // the marker configure order should be ensure\n\n\n marker = deepMix({}, themeMarker, marker, omit(__assign({}, markerCfg), ['style']));\n adpatorMarkerStyle(marker, color);\n\n if (markerCfg && markerCfg.style) {\n // handle user's style settings\n marker.style = handleUserMarkerStyle(marker.style, markerCfg.style);\n }\n\n setMarkerSymbol(marker);\n return {\n id: value,\n name: name,\n value: value,\n marker: marker,\n unchecked: unchecked\n };\n });\n }\n\n return [];\n}\n/**\n *\n * @ignore\n * custom legend 的 items 获取\n * @param themeMarker\n * @param userMarker\n * @param customItems\n */\n\nexport function getCustomLegendItems(themeMarker, userMarker, customItems) {\n // 如果有自定义的 item,那么就直接使用,并合并主题的 marker 配置\n return customItems.map(function (item, index) {\n var markerCfg = userMarker;\n\n if (isFunction(markerCfg)) {\n markerCfg = markerCfg(item.name, index, deepMix({}, themeMarker, item));\n }\n\n var itemMarker = isFunction(item.marker) ? item.marker(item.name, index, deepMix({}, themeMarker, item)) : item.marker;\n var marker = deepMix({}, themeMarker, markerCfg, itemMarker);\n setMarkerSymbol(marker);\n item.marker = marker;\n return item;\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 */\n\nexport function getLegendThemeCfg(theme, direction) {\n var legendTheme = get(theme, ['components', 'legend'], {});\n return deepMix({}, get(legendTheme, ['common'], {}), deepMix({}, get(legendTheme, [direction], {})));\n}","import { isArray } from '@antv/util';\nimport { getSplinePath } from './path';\n\nfunction isValueEmpty(value) {\n if (value) {\n return false;\n }\n\n return value === null || value === undefined || isNaN(value);\n}\n\nfunction isYNil(point) {\n if (isArray(point)) {\n // 特殊处理 area 的关键点数据,其关键点结构为 [{x: 0, y: 1}, {x: 0, y: 2}]\n return isValueEmpty(point[1].y);\n }\n\n var value = point.y;\n return isArray(value) ? isValueEmpty(value[0]) : isValueEmpty(value);\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 */\n\n\nexport function getPathPoints(points, connectNulls, showSinglePoint) {\n if (connectNulls === void 0) {\n connectNulls = false;\n }\n\n if (showSinglePoint === void 0) {\n showSinglePoint = true;\n }\n\n if (!points.length || points.length === 1 && !showSinglePoint) {\n // 空或者只有一个点并配置不展示时\n return [];\n }\n\n if (connectNulls) {\n // 即 y 值为空的场景\n var filtered = [];\n\n for (var i = 0, len = points.length; i < len; i++) {\n var point = points[i];\n\n if (!isYNil(point)) {\n filtered.push(point);\n }\n }\n\n return [filtered];\n }\n\n var result = [];\n var tmp = [];\n\n for (var i = 0, len = points.length; i < len; i++) {\n var point = points[i];\n\n if (isYNil(point)) {\n if (tmp.length) {\n if (!(tmp.length === 1 && !showSinglePoint)) {\n // 如果前段数据只有一个字段并且不需要展示时则不加入\n result.push(tmp);\n }\n\n tmp = [];\n }\n } else {\n tmp.push(point);\n }\n }\n\n if (tmp.length) {\n result.push(tmp);\n }\n\n return result;\n}\n/**\n * 获取小提琴图的边界 path\n * @param points\n * @returns\n */\n\nexport function getViolinPath(points) {\n var path = [];\n\n for (var i = 0; i < points.length; i++) {\n var point = points[i];\n\n if (point) {\n var action = i === 0 ? 'M' : 'L';\n path.push([action, point.x, point.y]);\n }\n }\n\n var first = points[0];\n\n if (first) {\n path.push(['L', first.x, first.y]);\n path.push(['z']);\n }\n\n return path;\n}\n/**\n * 获取小提琴图 平滑的边界 path\n * @param points\n * @returns\n */\n\nexport function getSmoothViolinPath(points) {\n var half = points.length / 2;\n var leftPoints = [];\n var rightPoints = [];\n\n for (var 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\n var leftPath = getSplinePath(leftPoints, false);\n var rightPath = getSplinePath(rightPoints, false);\n\n if (rightPoints.length) {\n leftPath.push(['L', rightPoints[0].x, rightPoints[0].y]);\n }\n\n rightPath.shift();\n var path = leftPath.concat(rightPath);\n\n if (leftPoints.length) {\n path.push(['L', leftPoints[0].x, leftPoints[0].y]);\n }\n\n path.push(['z']);\n return path;\n}","import { __assign } from \"tslib\";\nimport { deepMix, isNil, get } from '@antv/util';\n/**\n * @ignore\n * 获取 Shape 的图形属性\n * @param cfg\n * @param isStroke 是否需要描边\n * @param isFill 是否需要填充\n * @param [sizeName] 可选,表示图形大小的属性,lineWidth 或者 r\n * @returns\n */\n\nexport function getStyle(cfg, isStroke, isFill, sizeName) {\n if (sizeName === void 0) {\n sizeName = '';\n }\n\n var _a = cfg.style,\n style = _a === void 0 ? {} : _a,\n defaultStyle = cfg.defaultStyle,\n color = cfg.color,\n size = cfg.size;\n\n var attrs = __assign(__assign({}, defaultStyle), 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\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 * @param cfg\n */\n\nexport function getBackgroundRectStyle(cfg) {\n return deepMix({}, {\n // 默认背景色,copy from active-region\n fill: '#CCD6EC',\n fillOpacity: 0.3\n }, get(cfg, ['background', 'style']));\n}","import { isArray } from '@antv/util';\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 */\n\nexport function splitPoints(obj) {\n // y 有可能是数组,对应原始数据中 y 为一个区间数据,如 [19, 30],为了统一也将 x 转换为数组\n var x = obj.x;\n var y = isArray(obj.y) ? obj.y : [obj.y];\n return y.map(function (eachY, index) {\n return {\n x: isArray(x) ? x[index] : x,\n y: eachY\n };\n });\n}","var LineSymbols = {\n line: function line(x, y, r) {\n return [['M', x - r, y], ['L', x + r, y]];\n },\n dot: function dot(x, y, r) {\n return [['M', x - r, y], ['L', x + r, y]];\n },\n dash: function dash(x, y, r) {\n return [['M', x - r, y], ['L', x + r, y]];\n },\n smooth: function smooth(x, y, r) {\n return [['M', x - r, y], ['A', r / 2, r / 2, 0, 1, 1, x, y], ['A', r / 2, r / 2, 0, 1, 0, x + r, y]];\n },\n hv: function hv(x, y, r) {\n return [['M', x - r - 1, y - 2.5], ['L', x, y - 2.5], ['L', x, y + 2.5], ['L', x + r + 1, y + 2.5]];\n },\n vh: function vh(x, y, r) {\n return [['M', x - r - 1, y + 2.5], ['L', x, y + 2.5], ['L', x, y - 2.5], ['L', x + r + 1, y - 2.5]];\n },\n hvh: function hvh(x, y, r) {\n return [['M', x - (r + 1), y + 2.5], ['L', x - r / 2, y + 2.5], ['L', x - r / 2, y - 2.5], ['L', x + r / 2, y - 2.5], ['L', x + r / 2, y + 2.5], ['L', x + r + 1, y + 2.5]];\n },\n vhv: function vhv(x, y) {\n // 宽 13px,高 8px\n return [['M', x - 5, y + 2.5], ['L', x - 5, y], ['L', x, y], ['L', x, y - 3], ['L', x, y + 3], ['L', x + 6.5, y + 3]];\n }\n};\n/**\n * Gets line marker\n * @ignore\n * @param markerCfg\n * @param shapeType\n * @returns 返回 Line 的 marker 配置\n */\n\nexport function getLineMarker(markerCfg, shapeType) {\n var color = markerCfg.color;\n return {\n symbol: LineSymbols[shapeType],\n style: {\n lineWidth: 2,\n r: 6,\n stroke: color\n }\n };\n}","import { each, isArray } from '@antv/util';\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, smooth, constraint) {\n var isStack = cfg.isStack,\n connectNulls = cfg.connectNulls,\n isInCircle = cfg.isInCircle,\n showSinglePoint = cfg.showSinglePoint;\n var shapeAttrs = getStyle(cfg, true, false, 'lineWidth');\n var points = getPathPoints(cfg.points, connectNulls, showSinglePoint); // 根据 connectNulls 值处理 points\n\n var path = [];\n\n for (var i = 0, len = points.length; i < len; i++) {\n var eachLinePoints = points[i];\n path = path.concat(getPath(eachLinePoints, isInCircle, isStack, smooth, constraint, shapeAttrs));\n }\n\n shapeAttrs.path = path;\n return shapeAttrs;\n} // 单条 path\n\n\nfunction getSinglePath(points, isInCircle, smooth, constraint, style) {\n if (points.length === 1) {\n // 只有一个点时\n return [['M', points[0].x, points[0].y - style.lineWidth / 2], ['L', points[0].x, points[0].y], ['L', points[0].x, points[0].y + style.lineWidth / 2]];\n }\n\n var path;\n\n if (!smooth) {\n path = getLinePath(points, false);\n\n if (isInCircle) {\n path.push(['Z']);\n }\n } else {\n // 直角坐标系下绘制曲线时限制最大值、最小值\n if (isInCircle && points.length) {\n points.push({\n x: points[0].x,\n y: points[0].y\n });\n }\n\n path = getSplinePath(points, false, constraint);\n }\n\n return path;\n}\n\nfunction getRangePath(points, isInCircle, isStack, smooth, constraint, style) {\n var topPoints = [];\n var bottomPoints = [];\n each(points, function (point) {\n var result = splitPoints(point);\n topPoints.push(result[1]); // 上边\n\n bottomPoints.push(result[0]); // 底边\n });\n var topPath = getSinglePath(topPoints, isInCircle, smooth, constraint, style);\n var bottomPath = getSinglePath(bottomPoints, isInCircle, smooth, constraint, style);\n\n if (isStack) {\n return topPath;\n }\n\n return topPath.concat(bottomPath);\n}\n/**\n * 获取折线图 path\n */\n\n\nexport function getPath(points, isInCircle, isStack, smooth, constraint, style) {\n if (points.length) {\n var first = points[0];\n return isArray(first.y) ? getRangePath(points, isInCircle, isStack, smooth, constraint, style) : getSinglePath(points, isInCircle, smooth, constraint, style);\n }\n\n return [];\n}\nvar LineShapeFactory = registerShapeFactory('line', {\n defaultShapeType: 'line'\n}); // 这里因为代码公用,所以直接全部注册\n// 'line' 默认折线;'dot' 点线 ···;'dash' 断线 - - -\n\neach(['line', 'dot', 'dash', 'smooth'], function (shapeType) {\n registerShape('line', shapeType, {\n draw: function draw(cfg, container) {\n var smooth = shapeType === 'smooth';\n var constraint;\n\n if (smooth) {\n var _a = this.coordinate,\n start = _a.start,\n end = _a.end;\n constraint = [[start.x, end.y], [end.x, start.y]];\n }\n\n var attrs = getShapeAttrs(cfg, smooth, constraint);\n var shape = container.addShape({\n type: 'path',\n attrs: attrs,\n name: 'line',\n capture: !smooth\n });\n return shape;\n },\n getMarker: function getMarker(markerCfg) {\n return getLineMarker(markerCfg, shapeType);\n }\n });\n});\nexport default LineShapeFactory;","/* G2 的一个壳子,不包含 Geometry,由开发者自己定义和引入 */\nexport var VERSION = '4.2.7'; // 核心基类导出\n\nexport { Chart, View, Event } from './chart'; // Chart, View 类\n\nexport { Controller as ComponentController } from './chart/controller/base'; // G2 组件基类\n\nexport { default as TooltipController } from './chart/controller/tooltip'; // G2 tooltip 组件基类\n\nexport { default as Geometry } from './geometry/base'; // Geometry 基类\n\nexport { default as Element } from './geometry/element'; // Element 类\n\nexport { default as GeometryLabel } from './geometry/label/base'; // Geometry Label 基类\n\nexport { Interaction, Action } from './interaction'; // Interaction, Action 基类\n\nexport { Facet } from './facet'; // Facet 基类\n\nexport { default as InteractionAction } from './interaction/action/base'; // Interaction Action 基类\n// 注册 ComponentController\n\nexport { registerComponentController } from './chart'; // 注册 Geometry\n\nexport { registerGeometry } from './chart'; // 注册 Geometry Shape\n\nexport { registerShape, registerShapeFactory, getShapeFactory } from './geometry/shape/base'; // 注册 Geometry label 以及 Geometry Label 布局函数\n\nexport { registerGeometryLabel, registerGeometryLabelLayout, getGeometryLabel, getGeometryLabelLayout } from './geometry/label'; // 注册 interaction\n\nexport { getInteraction, registerInteraction, registerAction, getActionClass } from './interaction'; // 注册 facet\n\nexport { getFacet, registerFacet } from './facet'; // 注册主题\n\nexport { getTheme, registerTheme } from './theme'; // G engine 管理相关\n\nexport { registerEngine, getEngine } from './engine'; // 注册动画函数\n\nexport { registerAnimation, getAnimation } from './animate/animation';\nexport { LAYER, DIRECTION } from './constant'; // 因为 typescript 部分版本不支持 export * as 语法。\n\nimport * as Types from './interface';\nexport { Coordinate, Scale } from './dependents'; // 一些工具方法导出\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';\nexport var Util = {\n getLegendItems: getLegendItems,\n translate: translate,\n rotate: rotate,\n zoom: zoom,\n transform: transform,\n getAngle: getAngle,\n getSectorPath: getSectorPath,\n polarToCartesian: polarToCartesian,\n getDelegationObject: getDelegationObject,\n getTooltipItems: getTooltipItems,\n getMappingValue: getMappingValue,\n // shape 的一些操作方法\n getPath: getPath,\n getPathPoints: getPathPoints\n};","import { __assign } from \"tslib\";\nvar 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};\nvar 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};\nvar QUALITATIVE_10 = ['#5B8FF9', '#5AD8A6', '#5D7092', '#F6BD16', '#E86452', '#6DC8EC', '#945FB9', '#FF9845', '#1E9493', '#FF99C3'];\nvar QUALITATIVE_20 = ['#5B8FF9', '#CDDDFD', '#5AD8A6', '#CDF3E4', '#5D7092', '#CED4DE', '#F6BD16', '#FCEBB9', '#E86452', '#F8D0CB', '#6DC8EC', '#D3EEF9', '#945FB9', '#DECFEA', '#FF9845', '#FFE0C7', '#1E9493', '#BBDEDE', '#FF99C3', '#FFE0ED'];\n/** 单色顺序色板 */\n\nvar SINGLE_SEQUENCE = ['#B8E1FF', '#9AC5FF', '#7DAAFF', '#5B8FF9', '#3D76DD', '#085EC0', '#0047A5', '#00318A', '#001D70'];\nexport var createDarkStyleSheet = function createDarkStyleSheet(cfg) {\n if (cfg === void 0) {\n cfg = {};\n }\n\n var _a = cfg.paletteQualitative10,\n paletteQualitative10 = _a === void 0 ? QUALITATIVE_10 : _a,\n _b = cfg.paletteQualitative20,\n paletteQualitative20 = _b === void 0 ? QUALITATIVE_20 : _b;\n var _c = cfg.brandColor,\n brandColor = _c === void 0 ? paletteQualitative10[0] : _c;\n var token = {\n /** 图表背景色 */\n backgroundColor: '#141414',\n\n /** 主题色 */\n brandColor: brandColor,\n\n /** 图表辅助色 */\n subColor: 'rgba(255,255,255,0.05)',\n\n /** 分类色板 1,在数据量小于等于 10 时使用 */\n paletteQualitative10: paletteQualitative10,\n\n /** 分类色板 2,在数据量大于 10 时使用 */\n paletteQualitative20: paletteQualitative20,\n\n /** 语义色 */\n paletteSemanticRed: '#F4664A',\n\n /** 语义色 */\n paletteSemanticGreen: '#30BF78',\n\n /** 语义色 */\n paletteSemanticYellow: '#FAAD14',\n\n /** (单色)顺序色板 */\n paletteSequence: SINGLE_SEQUENCE,\n\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 /** 坐标轴线粗细 */\n axisLineBorder: 1,\n\n /** 坐标轴线 lineDash 设置 */\n axisLineDash: null,\n\n /** 坐标轴标题颜色 */\n axisTitleTextFillColor: BLACK_COLORS[65],\n\n /** 坐标轴标题文本字体大小 */\n axisTitleTextFontSize: 12,\n\n /** 坐标轴标题文本行高 */\n axisTitleTextLineHeight: 12,\n\n /** 坐标轴标题文本字体粗细 */\n axisTitleTextFontWeight: 'normal',\n\n /** 坐标轴标题距离坐标轴文本的间距 */\n axisTitleSpacing: 12,\n\n /** 坐标轴标题详细说明icon颜色 */\n axisDescriptionIconFillColor: WHITE_COLORS[85],\n\n /** 坐标轴刻度线颜色 */\n axisTickLineBorderColor: BLACK_COLORS[25],\n\n /** 坐标轴刻度线长度 */\n axisTickLineLength: 4,\n\n /** 坐标轴刻度线粗细 */\n axisTickLineBorder: 1,\n\n /** 坐标轴次刻度线颜色 */\n axisSubTickLineBorderColor: BLACK_COLORS[15],\n\n /** 坐标轴次刻度线长度 */\n axisSubTickLineLength: 2,\n\n /** 坐标轴次刻度线粗细 */\n axisSubTickLineBorder: 1,\n\n /** 坐标轴刻度文本颜色 */\n axisLabelFillColor: BLACK_COLORS[45],\n\n /** 坐标轴刻度文本字体大小 */\n axisLabelFontSize: 12,\n\n /** 坐标轴刻度文本行高 */\n axisLabelLineHeight: 12,\n\n /** 坐标轴刻度文本字体粗细 */\n axisLabelFontWeight: 'normal',\n\n /** 坐标轴刻度文本距离坐标轴线的间距 */\n axisLabelOffset: 8,\n\n /** 坐标轴网格线颜色 */\n axisGridBorderColor: BLACK_COLORS[15],\n\n /** 坐标轴网格线粗细 */\n axisGridBorder: 1,\n\n /** 坐标轴网格线虚线设置 */\n axisGridLineDash: null,\n // -------------------- 图例 --------------------\n\n /** 图例标题颜色 */\n legendTitleTextFillColor: BLACK_COLORS[45],\n\n /** 图例标题文本字体大小 */\n legendTitleTextFontSize: 12,\n\n /** 图例标题文本行高 */\n legendTitleTextLineHeight: 21,\n\n /** 图例标题文本字体粗细 */\n legendTitleTextFontWeight: 'normal',\n\n /** 图例 marker 颜色 */\n legendMarkerColor: QUALITATIVE_10[0],\n\n /** 图例 marker 距离图例文本的间距 */\n legendMarkerSpacing: 8,\n\n /** 图例 marker 默认半径大小 */\n legendMarkerSize: 4,\n\n /** 图例 'circle' marker 半径 */\n legendCircleMarkerSize: 4,\n\n /** 图例 'square' marker 半径 */\n legendSquareMarkerSize: 4,\n\n /** 图例 'line' marker 半径 */\n legendLineMarkerSize: 5,\n\n /** 图例项文本颜色 */\n legendItemNameFillColor: BLACK_COLORS[65],\n\n /** 图例项文本字体大小 */\n legendItemNameFontSize: 12,\n\n /** 图例项文本行高 */\n legendItemNameLineHeight: 12,\n\n /** 图例项粗细 */\n legendItemNameFontWeight: 'normal',\n\n /** 图例项之间的水平间距 */\n legendItemSpacing: 24,\n\n /** 图例项垂直方向的间隔 */\n legendItemMarginBottom: 12,\n\n /** 图例与图表绘图区域的偏移距离 */\n legendSpacing: 16,\n\n /** 图例与图表绘图区域的偏移距离 */\n legendPadding: [8, 8, 8, 8],\n\n /** 水平布局的图例与绘图区域偏移距离 */\n legendHorizontalPadding: [8, 0, 8, 0],\n\n /** 垂直布局的图例与绘图区域偏移距离 */\n legendVerticalPadding: [0, 8, 0, 8],\n // 图例分页器\n\n /** 图例分页器 marker 大小 */\n legendPageNavigatorMarkerSize: 12,\n\n /** 图例分页器 marker 填充色 */\n legendPageNavigatorMarkerInactiveFillColor: BLACK_COLORS[45],\n\n /** 图例分页器 marker 填充色透明度 */\n legendPageNavigatorMarkerInactiveFillOpacity: 0.45,\n\n /** 图例分页器 marker 激活状态填充色 */\n legendPageNavigatorMarkerFillColor: BLACK_COLORS[45],\n\n /** 图例分页器 marker 激活状态填充色透明度 */\n legendPageNavigatorMarkerFillOpacity: 1,\n\n /** 图例分页器文本颜色 */\n legendPageNavigatorTextFillColor: BLACK_COLORS[65],\n\n /** 图例分页器文本字体大小 */\n legendPageNavigatorTextFontSize: 12,\n\n /** 连续图例滑块填充色 */\n sliderRailFillColor: BLACK_COLORS[15],\n\n /** 连续图例滑块边框粗细 */\n sliderRailBorder: 0,\n\n /** 连续图例滑块边框颜色 */\n sliderRailBorderColor: null,\n\n /** 连续图例滑块宽度 */\n sliderRailWidth: 100,\n\n /** 连续图例滑块高度 */\n sliderRailHeight: 12,\n\n /** 连续图例文本颜色 */\n sliderLabelTextFillColor: BLACK_COLORS[45],\n\n /** 连续图例文本字体大小 */\n sliderLabelTextFontSize: 12,\n\n /** 连续图例文本行高 */\n sliderLabelTextLineHeight: 12,\n\n /** 连续图例文本字体粗细 */\n sliderLabelTextFontWeight: 'normal',\n\n /** 连续图例滑块颜色 */\n sliderHandlerFillColor: WHITE_COLORS[6],\n\n /** 连续图例滑块宽度 */\n sliderHandlerWidth: 10,\n\n /** 连续图例滑块高度 */\n sliderHandlerHeight: 14,\n\n /** 连续图例滑块边框粗细 */\n sliderHandlerBorder: 1,\n\n /** 连续图例滑块边框颜色 */\n sliderHandlerBorderColor: WHITE_COLORS[25],\n // -------------------- Annotation,图形标注 --------------------\n\n /** arc 图形标注描边颜色 */\n annotationArcBorderColor: BLACK_COLORS[15],\n\n /** arc 图形标注粗细 */\n annotationArcBorder: 1,\n\n /** line 图形标注颜色 */\n annotationLineBorderColor: BLACK_COLORS[25],\n\n /** line 图形标注粗细 */\n annotationLineBorder: 1,\n\n /** lube 图形标注的虚线间隔 */\n annotationLineDash: null,\n\n /** text 图形标注文本颜色 */\n annotationTextFillColor: BLACK_COLORS[65],\n\n /** text 图形标注文本字体大小 */\n annotationTextFontSize: 12,\n\n /** text 图形标注文本行高 */\n annotationTextLineHeight: 12,\n\n /** text 图形标注文本字体粗细 */\n annotationTextFontWeight: 'normal',\n\n /** text 图形标注文本边框颜色 */\n annotationTextBorderColor: null,\n\n /** text 图形标注文本边框粗细 */\n annotationTextBorder: 0,\n\n /** region 图形标注填充颜色 */\n annotationRegionFillColor: BLACK_COLORS[100],\n\n /** region 图形标注填充颜色透明色 */\n annotationRegionFillOpacity: 0.06,\n\n /** region 图形标注描边粗细 */\n annotationRegionBorder: 0,\n\n /** region 图形标注描边颜色 */\n annotationRegionBorderColor: null,\n\n /** dataMarker 图形标注线的长度 */\n annotationDataMarkerLineLength: 16,\n // -------------------- Tooltip --------------------\n\n /** tooltip crosshairs 辅助线颜色 */\n tooltipCrosshairsBorderColor: BLACK_COLORS[25],\n\n /** tooltip crosshairs 辅助线粗细 */\n tooltipCrosshairsBorder: 1,\n\n /** tooltip crosshairs 辅助线虚线间隔 */\n tooltipCrosshairsLineDash: null,\n\n /** tooltip 内容框背景色 */\n tooltipContainerFillColor: '#1f1f1f',\n tooltipContainerFillOpacity: 0.95,\n\n /** tooltip 内容框阴影 */\n tooltipContainerShadow: '0px 2px 4px rgba(0,0,0,.5)',\n\n /** tooltip 内容框圆角 */\n tooltipContainerBorderRadius: 3,\n\n /** tooltip 文本颜色 */\n tooltipTextFillColor: BLACK_COLORS[65],\n\n /** tooltip 文本字体大小 */\n tooltipTextFontSize: 12,\n\n /** tooltip 文本行高 */\n tooltipTextLineHeight: 12,\n\n /** tooltip 文本字体粗细 */\n tooltipTextFontWeight: 'bold',\n // -------------------- Geometry labels --------------------\n\n /** Geometry label 文本颜色 */\n labelFillColor: BLACK_COLORS[65],\n labelFillColorDark: '#2c3542',\n labelFillColorLight: '#ffffff',\n\n /** Geometry label 文本字体大小 */\n labelFontSize: 12,\n\n /** Geometry label 文本行高 */\n labelLineHeight: 12,\n\n /** Geometry label 文本字体粗细 */\n labelFontWeight: 'normal',\n\n /** Geometry label 文本描边颜色 */\n labelBorderColor: null,\n\n /** Geometry label 文本描边粗细 */\n labelBorder: 0,\n\n /** Geometry innerLabel 文本颜色 */\n innerLabelFillColor: WHITE_COLORS[100],\n\n /** Geometry innerLabel 文本字体大小 */\n innerLabelFontSize: 12,\n\n /** Geometry innerLabel 文本行高 */\n innerLabelLineHeight: 12,\n\n /** Geometry innerLabel 文本字体粗细 */\n innerLabelFontWeight: 'normal',\n\n /** Geometry innerLabel 文本描边颜色 */\n innerLabelBorderColor: null,\n\n /** Geometry innerLabel 文本描边粗细 */\n innerLabelBorder: 0,\n\n /** Geometry label 文本颜色 */\n overflowLabelFillColor: BLACK_COLORS[65],\n overflowLabelFillColorDark: '#2c3542',\n overflowLabelFillColorLight: '#ffffff',\n\n /** Geometry label 文本字体大小 */\n overflowLabelFontSize: 12,\n\n /** Geometry label 文本行高 */\n overflowLabelLineHeight: 12,\n\n /** Geometry label 文本字体粗细 */\n overflowLabelFontWeight: 'normal',\n\n /** Geometry label 文本描边颜色 */\n overflowLabelBorderColor: WHITE_COLORS[100],\n\n /** Geometry label 文本描边粗细 */\n overflowLabelBorder: 1,\n\n /** Geometry label 文本连接线粗细 */\n labelLineBorder: 1,\n\n /** Geometry label 文本连接线颜色 */\n labelLineBorderColor: BLACK_COLORS[25],\n // -------------------- Slider 组件样式--------------------\n\n /** slider 滑道高度 */\n cSliderRailHieght: 16,\n\n /** slider 滑道背景色 */\n cSliderBackgroundFillColor: '#416180',\n\n /** slider 滑道背景色透明度 */\n cSliderBackgroundFillOpacity: 0.05,\n\n /** slider 滑道前景色 */\n cSliderForegroundFillColor: '#5B8FF9',\n\n /** slider 滑道前景色透明度 */\n cSliderForegroundFillOpacity: 0.15,\n // slider handlerStyle 手柄样式\n\n /** slider 手柄高度 */\n cSliderHandlerHeight: 24,\n\n /** Slider 手柄宽度 */\n cSliderHandlerWidth: 10,\n\n /** Slider 手柄背景色 */\n cSliderHandlerFillColor: '#F7F7F7',\n\n /** Slider 手柄背景色透明度 */\n cSliderHandlerFillOpacity: 1,\n\n /** Slider 手柄高亮背景色 */\n cSliderHandlerHighlightFillColor: '#FFF',\n\n /** Slider 手柄边框色 */\n cSliderHandlerBorderColor: '#BFBFBF',\n\n /** Slider 手柄边框粗细 */\n cSliderHandlerBorder: 1,\n\n /** Slider 手柄边框圆角 */\n cSliderHandlerBorderRadius: 2,\n // slider textStyle 字体标签样式\n\n /** Slider 字体标签颜色 */\n cSliderTextFillColor: '#fff',\n\n /** Slider 字体标签透明度 */\n cSliderTextFillOpacity: 0.45,\n\n /** Slider 字体标签大小 */\n cSliderTextFontSize: 12,\n\n /** Slider 字体标签行高 */\n cSliderTextLineHeight: 12,\n\n /** Slider 字体标签字重 */\n cSliderTextFontWeight: 'normal',\n\n /** Slider 字体标签描边色 */\n cSliderTextBorderColor: null,\n\n /** Slider 字体标签描边粗细 */\n cSliderTextBorder: 0,\n // -------------------- Scrollbar 组件样式--------------------\n\n /** 滚动条 滚道填充色 */\n scrollbarTrackFillColor: 'rgba(255,255,255,0.65)',\n\n /** 滚动条 滑块填充色 */\n scrollbarThumbFillColor: 'rgba(0,0,0,0.35)',\n\n /** 滚动条 滑块高亮填充色 */\n scrollbarThumbHighlightFillColor: 'rgba(0,0,0,0.45)',\n // -------------------- Geometry 图形样式--------------------\n\n /** 点图填充颜色 */\n pointFillColor: QUALITATIVE_10[0],\n\n /** 点图填充颜色透明度 */\n pointFillOpacity: 0.95,\n\n /** 点图大小 */\n pointSize: 4,\n\n /** 点图描边粗细 */\n pointBorder: 1,\n\n /** 点图描边颜色 */\n pointBorderColor: WHITE_COLORS[100],\n\n /** 点图描边透明度 */\n pointBorderOpacity: 1,\n\n /** 点图 active 状态下描边颜色 */\n pointActiveBorderColor: BLACK_COLORS[100],\n\n /** 点图 selected 状态下描边粗细 */\n pointSelectedBorder: 2,\n\n /** 点图 selected 状态下描边颜色 */\n pointSelectedBorderColor: BLACK_COLORS[100],\n\n /** 点图 inactive 状态下填充颜色透明度 */\n pointInactiveFillOpacity: 0.3,\n\n /** 点图 inactive 状态下描边透明度 */\n pointInactiveBorderOpacity: 0.3,\n\n /** 空心点图大小 */\n hollowPointSize: 4,\n\n /** 空心点图描边粗细 */\n hollowPointBorder: 1,\n\n /** 空心点图描边颜色 */\n hollowPointBorderColor: QUALITATIVE_10[0],\n\n /** 空心点图描边透明度 */\n hollowPointBorderOpacity: 0.95,\n hollowPointFillColor: WHITE_COLORS[100],\n\n /** 空心点图 active 状态下描边粗细 */\n hollowPointActiveBorder: 1,\n\n /** 空心点图 active 状态下描边颜色 */\n hollowPointActiveBorderColor: BLACK_COLORS[100],\n\n /** 空心点图 active 状态下描边透明度 */\n hollowPointActiveBorderOpacity: 1,\n\n /** 空心点图 selected 状态下描边粗细 */\n hollowPointSelectedBorder: 2,\n\n /** 空心点图 selected 状态下描边颜色 */\n hollowPointSelectedBorderColor: BLACK_COLORS[100],\n\n /** 空心点图 selected 状态下描边透明度 */\n hollowPointSelectedBorderOpacity: 1,\n\n /** 空心点图 inactive 状态下描边透明度 */\n hollowPointInactiveBorderOpacity: 0.3,\n\n /** 线图粗细 */\n lineBorder: 2,\n\n /** 线图颜色 */\n lineBorderColor: QUALITATIVE_10[0],\n\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\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\n /** hollowArea 边框粗细 */\n hollowAreaBorder: 2,\n\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\n /** interval 填充透明度 */\n intervalFillOpacity: 0.95,\n\n /** interval active 状态下边框粗细 */\n intervalActiveBorder: 1,\n\n /** interval active 状态下边框颜色 */\n intervalActiveBorderColor: BLACK_COLORS[100],\n intervalActiveBorderOpacity: 1,\n\n /** interval selected 状态下边框粗细 */\n intervalSelectedBorder: 2,\n\n /** interval selected 状态下边框颜色 */\n intervalSelectedBorderColor: BLACK_COLORS[100],\n\n /** interval selected 状态下边框透明度 */\n intervalSelectedBorderOpacity: 1,\n\n /** interval inactive 状态下边框透明度 */\n intervalInactiveBorderOpacity: 0.3,\n\n /** interval inactive 状态下填充透明度 */\n intervalInactiveFillOpacity: 0.3,\n\n /** interval 边框粗细 */\n hollowIntervalBorder: 2,\n\n /** hollowInterval 边框颜色 */\n hollowIntervalBorderColor: QUALITATIVE_10[0],\n\n /** hollowInterval 边框透明度 */\n hollowIntervalBorderOpacity: 1,\n hollowIntervalFillColor: WHITE_COLORS[100],\n\n /** hollowInterval active 状态下边框粗细 */\n hollowIntervalActiveBorder: 2,\n\n /** hollowInterval active 状态下边框颜色 */\n hollowIntervalActiveBorderColor: BLACK_COLORS[100],\n\n /** hollowInterval selected 状态下边框粗细 */\n hollowIntervalSelectedBorder: 3,\n\n /** hollowInterval selected 状态下边框颜色 */\n hollowIntervalSelectedBorderColor: BLACK_COLORS[100],\n\n /** hollowInterval selected 状态下边框透明度 */\n hollowIntervalSelectedBorderOpacity: 1,\n\n /** hollowInterval inactive 状态下边框透明度 */\n hollowIntervalInactiveBorderOpacity: 0.3\n };\n return __assign(__assign({}, token), cfg);\n};\nexport var antvDark = createDarkStyleSheet();","export function getPixelRatio() {\n return window ? window.devicePixelRatio : 1;\n}\n/**\n * 两点之间的距离\n * @param {number} x1 起始点 x\n * @param {number} y1 起始点 y\n * @param {number} x2 结束点 x\n * @param {number} y2 结束点 y\n */\n\nexport function distance(x1, y1, x2, y2) {\n var dx = x1 - x2;\n var dy = y1 - y2;\n return Math.sqrt(dx * dx + dy * dy);\n}\n/**\n * 是否在包围盒内\n * @param {number} minX 包围盒开始的点 x\n * @param {number} minY 包围盒开始的点 y\n * @param {number} width 宽度\n * @param {number} height 高度\n * @param {[type]} x 检测点的 x\n * @param {[type]} y 监测点的 y\n */\n\nexport function inBox(minX, minY, width, height, x, y) {\n return x >= minX && x <= minX + width && y >= minY && y <= minY + height;\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\nexport function mergeRegion(region1, region2) {\n if (!region1 || !region2) {\n return region1 || region2;\n }\n\n return {\n minX: Math.min(region1.minX, region2.minX),\n minY: Math.min(region1.minY, region2.minY),\n maxX: Math.max(region1.maxX, region2.maxX),\n maxY: Math.max(region1.maxY, region2.maxY)\n };\n}\n/**\n * 判断两个点是否重合,点坐标的格式为 [x, y]\n * @param {Array} point1 第一个点\n * @param {Array} point2 第二个点\n */\n\nexport function isSamePoint(point1, point2) {\n return point1[0] === point2[0] && point1[1] === point2[1];\n}\nexport { isNil, isString, isFunction, isArray, each, toRadian, mod, isNumberEqual, requestAnimationFrame, clearAnimationFrame } from '@antv/util';","import { isString, each, isArray } from './util';\nvar regexLG = /^l\\s*\\(\\s*([\\d.]+)\\s*\\)\\s*(.*)/i;\nvar regexRG = /^r\\s*\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*\\)\\s*(.*)/i;\nvar regexPR = /^p\\s*\\(\\s*([axyn])\\s*\\)\\s*(.*)/i;\nvar regexColorStop = /[\\d.]+:(#[^\\s]+|[^\\)]+\\))/gi;\n\nfunction addStop(steps, gradient) {\n var arr = steps.match(regexColorStop);\n each(arr, function (item) {\n var itemArr = item.split(':');\n gradient.addColorStop(itemArr[0], itemArr[1]);\n });\n}\n/**\n * 将边和填充设置的颜色转换成线性渐变对象\n * @param {CanvasRenderingContext2D} context canvas 上下文\n * @param {IElement} element 图形元素\n * @param {string} gradientStr 颜色\n * @returns {any} 渐变对象\n */\n\n\nexport function parseLineGradient(context, element, gradientStr) {\n var arr = regexLG.exec(gradientStr);\n var angle = parseFloat(arr[1]) % 360 * (Math.PI / 180);\n var steps = arr[2];\n var box = element.getBBox();\n var start;\n var end;\n\n if (angle >= 0 && angle < 1 / 2 * Math.PI) {\n start = {\n x: box.minX,\n y: box.minY\n };\n end = {\n x: box.maxX,\n y: box.maxY\n };\n } else if (1 / 2 * Math.PI <= angle && angle < Math.PI) {\n start = {\n x: box.maxX,\n y: box.minY\n };\n end = {\n x: box.minX,\n y: box.maxY\n };\n } else if (Math.PI <= angle && angle < 3 / 2 * Math.PI) {\n start = {\n x: box.maxX,\n y: box.maxY\n };\n end = {\n x: box.minX,\n y: box.minY\n };\n } else {\n start = {\n x: box.minX,\n y: box.maxY\n };\n end = {\n x: box.maxX,\n y: box.minY\n };\n }\n\n var tanTheta = Math.tan(angle);\n var tanTheta2 = tanTheta * tanTheta;\n var x = (end.x - start.x + tanTheta * (end.y - start.y)) / (tanTheta2 + 1) + start.x;\n var y = tanTheta * (end.x - start.x + tanTheta * (end.y - start.y)) / (tanTheta2 + 1) + start.y;\n var gradient = context.createLinearGradient(start.x, start.y, x, y);\n addStop(steps, gradient);\n return gradient;\n}\n/**\n * 将边和填充设置的颜色转换成圆形渐变对象\n * @param {CanvasRenderingContext2D} context canvas 上下文\n * @param {IElement} element 图形元素\n * @param {string} gradientStr 颜色\n * @returns {any} 渐变对象\n */\n\nexport function parseRadialGradient(context, element, gradientStr) {\n var arr = regexRG.exec(gradientStr);\n var fx = parseFloat(arr[1]);\n var fy = parseFloat(arr[2]);\n var fr = parseFloat(arr[3]);\n var steps = arr[4]; // 环半径为0时,默认无渐变,取渐变序列的最后一个颜色\n\n if (fr === 0) {\n var colors = steps.match(regexColorStop);\n return colors[colors.length - 1].split(':')[1];\n }\n\n var box = element.getBBox();\n var width = box.maxX - box.minX;\n var height = box.maxY - box.minY;\n var r = Math.sqrt(width * width + height * height) / 2;\n var gradient = context.createRadialGradient(box.minX + width * fx, box.minY + height * fy, 0, box.minX + width / 2, box.minY + height / 2, fr * r);\n addStop(steps, gradient);\n return gradient;\n}\n/**\n * 边和填充设置的颜色转换成 pattern\n * @param {CanvasRenderingContext2D} context canvas 上下文\n * @param {IElement} element 图形元素\n * @param {string} patternStr 生成 pattern 的字符串\n */\n\nexport function parsePattern(context, element, patternStr) {\n // 在转换过程中进行了缓存\n if (element.get('patternSource') && element.get('patternSource') === patternStr) {\n return element.get('pattern');\n }\n\n var pattern;\n var img;\n var arr = regexPR.exec(patternStr);\n var repeat = arr[1];\n var source = arr[2]; // Function to be called when pattern loads\n\n function onload() {\n // Create pattern\n pattern = context.createPattern(img, repeat);\n element.set('pattern', pattern); // be a cache\n\n element.set('patternSource', patternStr);\n }\n\n switch (repeat) {\n case 'a':\n repeat = 'repeat';\n break;\n\n case 'x':\n repeat = 'repeat-x';\n break;\n\n case 'y':\n repeat = 'repeat-y';\n break;\n\n case 'n':\n repeat = 'no-repeat';\n break;\n\n default:\n repeat = 'no-repeat';\n }\n\n img = new Image(); // If source URL is not a data URL\n\n if (!source.match(/^data:/i)) {\n // Set crossOrigin for this image\n img.crossOrigin = 'Anonymous';\n }\n\n img.src = source;\n\n if (img.complete) {\n onload();\n } else {\n img.onload = onload; // Fix onload() bug in IE9\n\n img.src = img.src;\n }\n\n return pattern;\n}\nexport function parseStyle(context, element, color) {\n var bbox = element.getBBox();\n\n if (isNaN(bbox.x) || isNaN(bbox.y) || isNaN(bbox.width) || isNaN(bbox.height)) {\n return color;\n }\n\n if (isString(color)) {\n if (color[1] === '(' || color[2] === '(') {\n if (color[0] === 'l') {\n // regexLG.test(color)\n return parseLineGradient(context, element, color);\n }\n\n if (color[0] === 'r') {\n // regexRG.test(color)\n return parseRadialGradient(context, element, color);\n }\n\n if (color[0] === 'p') {\n // regexPR.test(color)\n return parsePattern(context, element, color);\n }\n }\n\n return color;\n }\n\n if (color instanceof CanvasPattern) {\n return color;\n }\n}\nexport function parseRadius(radius) {\n var r1 = 0;\n var r2 = 0;\n var r3 = 0;\n var r4 = 0;\n\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 return [r1, r2, r3, r4];\n}","import { mod, toRadian, isSamePoint } from './util'; // 向量长度\n\nfunction vMag(v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n} // u.v/|u||v|,计算夹角的余弦值\n\n\nfunction vRatio(u, v) {\n // 当存在一个向量的长度为 0 时,夹角也为 0,即夹角的余弦值为 1\n return vMag(u) * vMag(v) ? (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v)) : 1;\n} // 向量角度\n\n\nfunction vAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v));\n} // A 0:rx 1:ry 2:x-axis-rotation 3:large-arc-flag 4:sweep-flag 5: x 6: y\n\n\nexport default function getArcParams(startPoint, params) {\n var rx = params[1];\n var ry = params[2];\n var xRotation = mod(toRadian(params[3]), Math.PI * 2);\n var arcFlag = params[4];\n var sweepFlag = params[5]; // 弧形起点坐标\n\n var x1 = startPoint[0];\n var y1 = startPoint[1]; // 弧形终点坐标\n\n var x2 = params[6];\n var y2 = params[7];\n var xp = Math.cos(xRotation) * (x1 - x2) / 2.0 + Math.sin(xRotation) * (y1 - y2) / 2.0;\n var yp = -1 * Math.sin(xRotation) * (x1 - x2) / 2.0 + Math.cos(xRotation) * (y1 - y2) / 2.0;\n var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry);\n\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n\n var diff = rx * rx * (yp * yp) + ry * ry * (xp * xp);\n var f = diff ? Math.sqrt((rx * rx * (ry * ry) - diff) / diff) : 1;\n\n if (arcFlag === sweepFlag) {\n f *= -1;\n }\n\n if (isNaN(f)) {\n f = 0;\n } // 旋转前的起点坐标,且当长半轴和短半轴的长度为 0 时,坐标按 (0, 0) 处理\n\n\n var cxp = ry ? f * rx * yp / ry : 0;\n var cyp = rx ? f * -ry * xp / rx : 0; // 椭圆圆心坐标\n\n var cx = (x1 + x2) / 2.0 + Math.cos(xRotation) * cxp - Math.sin(xRotation) * cyp;\n var cy = (y1 + y2) / 2.0 + Math.sin(xRotation) * cxp + Math.cos(xRotation) * cyp; // 起始点的单位向量\n\n var u = [(xp - cxp) / rx, (yp - cyp) / ry]; // 终止点的单位向量\n\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry]; // 计算起始点和圆心的连线,与 x 轴正方向的夹角\n\n var theta = vAngle([1, 0], u); // 计算圆弧起始点和终止点与椭圆圆心连线的夹角\n\n var dTheta = vAngle(u, v);\n\n if (vRatio(u, v) <= -1) {\n dTheta = Math.PI;\n }\n\n if (vRatio(u, v) >= 1) {\n dTheta = 0;\n }\n\n if (sweepFlag === 0 && dTheta > 0) {\n dTheta = dTheta - 2 * Math.PI;\n }\n\n if (sweepFlag === 1 && dTheta < 0) {\n dTheta = dTheta + 2 * Math.PI;\n }\n\n return {\n cx: cx,\n cy: cy,\n // 弧形的起点和终点相同时,长轴和短轴的长度按 0 处理\n rx: isSamePoint(startPoint, [x2, y2]) ? 0 : rx,\n ry: isSamePoint(startPoint, [x2, y2]) ? 0 : ry,\n startAngle: theta,\n endAngle: theta + dTheta,\n xRotation: xRotation,\n arcFlag: arcFlag,\n sweepFlag: sweepFlag\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport { __assign, __rest } from \"tslib\";\nimport { Path } from '../shape';\nvar sin = Math.sin,\n cos = Math.cos,\n atan2 = Math.atan2,\n PI = Math.PI;\n\nfunction _addDefaultArrow(shape, attrs, x1, y1, x2, y2, isStart) {\n var stroke = attrs.stroke,\n lineWidth = attrs.lineWidth;\n var x = x1 - x2;\n var y = y1 - y2;\n var rad = atan2(y, x);\n var arrowShape = new Path({\n type: 'path',\n canvas: shape.get('canvas'),\n isArrowShape: true,\n attrs: {\n // 默认箭头的边长为 10,夹角为 60 度\n path: \"M\" + 10 * cos(PI / 6) + \",\" + 10 * sin(PI / 6) + \" L0,0 L\" + 10 * cos(PI / 6) + \",-\" + 10 * sin(PI / 6),\n // 使用 shape stroke 值\n stroke: stroke,\n lineWidth: lineWidth\n }\n });\n arrowShape.translate(x2, y2);\n arrowShape.rotateAtPoint(x2, y2, rad);\n shape.set(isStart ? 'startArrowShape' : 'endArrowShape', arrowShape);\n}\n/**\n * 箭头 path 的设置要求\n * 1. 箭头顶点坐标需要为 (0, 0)\n * 2. 箭头夹角的中心分割线需要与 X 轴正方向对齐\n */\n\n\nfunction _addCustomizedArrow(shape, attrs, x1, y1, x2, y2, isStart) {\n var startArrow = attrs.startArrow,\n endArrow = attrs.endArrow,\n stroke = attrs.stroke,\n lineWidth = attrs.lineWidth;\n var arrowAttrs = isStart ? startArrow : endArrow;\n\n var d = arrowAttrs.d,\n arrowFill = arrowAttrs.fill,\n arrowStroke = arrowAttrs.stroke,\n arrowLineWidth = arrowAttrs.lineWidth,\n restAttrs = __rest(arrowAttrs, [\"d\", \"fill\", \"stroke\", \"lineWidth\"]);\n\n var x = x1 - x2;\n var y = y1 - y2;\n var rad = atan2(y, x);\n\n if (d) {\n x2 = x2 - cos(rad) * d;\n y2 = y2 - sin(rad) * d;\n }\n\n var arrowShape = new Path({\n type: 'path',\n canvas: shape.get('canvas'),\n isArrowShape: true,\n attrs: __assign(__assign({}, restAttrs), {\n // 支持单独设置箭头的 stroke 和 lineWidth,若为空则使用 shape 的值\n stroke: arrowStroke || stroke,\n lineWidth: arrowLineWidth || lineWidth,\n // 箭头是否填充需要手动设置,不会继承自 shape 的值\n fill: arrowFill\n })\n });\n arrowShape.translate(x2, y2);\n arrowShape.rotateAtPoint(x2, y2, rad);\n shape.set(isStart ? 'startArrowShape' : 'endArrowShape', arrowShape);\n}\n/**\n * 如果自定义箭头并且有 d 需要做偏移,如果直接画,线条会超出箭头尖端,因此需要根据箭头偏移 d, 返回线需要缩短的距离\n * |----------------\n * |<|--------------\n * |\n * @param {number} x1 起始点 x\n * @param {number} y1 起始点 y\n * @param {number} x2 箭头作用点 x\n * @param {number} y2 箭头作用点 y\n * @param {number} d 箭头沿线条方向的偏移距离\n * @return {{dx: number, dy: number}} 返回线条偏移距离\n */\n\n\nexport function getShortenOffset(x1, y1, x2, y2, d) {\n var rad = atan2(y2 - y1, x2 - x1);\n return {\n dx: cos(rad) * d,\n dy: sin(rad) * d\n };\n}\n/**\n * 绘制起始箭头\n * @param {IShape} shape 图形\n * @param {ShapeAttrs} attrs shape 的绘图属性\n * @param {number} x1 起始点 x\n * @param {number} y1 起始点 y\n * @param {number} x2 箭头作用点 x\n * @param {number} y2 箭头作用点 y\n */\n\nexport function addStartArrow(shape, attrs, x1, y1, x2, y2) {\n if (_typeof(attrs.startArrow) === 'object') {\n _addCustomizedArrow(shape, attrs, x1, y1, x2, y2, true);\n } else if (attrs.startArrow) {\n _addDefaultArrow(shape, attrs, x1, y1, x2, y2, true);\n } else {\n shape.set('startArrowShape', null);\n }\n}\n/**\n * 绘制结束箭头\n * @param {IShape} shape 图形\n * @param {ShapeAttrs} attrs shape 的绘图属性\n * @param {number} x1 起始点 x\n * @param {number} y1 起始点 y\n * @param {number} x2 箭头作用点 x\n * @param {number} y2 箭头作用点 y\n */\n\nexport function addEndArrow(shape, attrs, x1, y1, x2, y2) {\n if (_typeof(attrs.endArrow) === 'object') {\n _addCustomizedArrow(shape, attrs, x1, y1, x2, y2, false);\n } else if (attrs.endArrow) {\n _addDefaultArrow(shape, attrs, x1, y1, x2, y2, false);\n } else {\n shape.set('startArrowShape', null);\n }\n}","import { each, isArray, max, min } from '@antv/util';\nimport { parseStyle } from './parse';\nimport getArcParams from './arc-params';\nimport { mergeRegion, intersectRect } from './util';\nimport * as ArrowUtil from '../util/arrow';\nvar SHAPE_ATTRS_MAP = {\n fill: 'fillStyle',\n stroke: 'strokeStyle',\n opacity: 'globalAlpha'\n};\nexport function applyAttrsToContext(context, element) {\n var attrs = element.attr();\n\n for (var k in attrs) {\n var v = attrs[k]; // 转换一下不与 canvas 兼容的属性名\n\n var name_1 = SHAPE_ATTRS_MAP[k] ? SHAPE_ATTRS_MAP[k] : k;\n\n if (name_1 === 'matrix' && v) {\n // 设置矩阵\n context.transform(v[0], v[1], v[3], v[4], v[6], v[7]);\n } else if (name_1 === 'lineDash' && context.setLineDash) {\n // 设置虚线,只支持数组形式,非数组形式不做任何操作\n isArray(v) && context.setLineDash(v);\n } else {\n if (name_1 === 'strokeStyle' || name_1 === 'fillStyle') {\n // 如果存在渐变、pattern 这个开销有些大\n // 可以考虑缓存机制,通过 hasUpdate 来避免一些运算\n v = parseStyle(context, element, v);\n } else if (name_1 === 'globalAlpha') {\n // opacity 效果可以叠加,子元素的 opacity 需要与父元素 opacity 相乘\n v = v * context.globalAlpha;\n }\n\n context[name_1] = v;\n }\n }\n}\nexport function drawChildren(context, children, region) {\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n\n if (child.cfg.visible) {\n child.draw(context, region);\n } else {\n child.skipDraw();\n }\n }\n} // 这个地方的逻辑比较复杂,简单画了一张图:https://www.yuque.com/antv/ou292n/pcgt5g#OW1QE\n\nexport function checkRefresh(canvas, children, region) {\n var refreshElements = canvas.get('refreshElements'); // 先遍历需要刷新的元素,将这些元素的父元素也设置 refresh\n\n each(refreshElements, function (el) {\n if (el !== canvas) {\n var parent_1 = el.cfg.parent;\n\n while (parent_1 && parent_1 !== canvas && !parent_1.cfg.refresh) {\n parent_1.cfg.refresh = true;\n parent_1 = parent_1.cfg.parent;\n }\n }\n });\n\n if (refreshElements[0] === canvas) {\n setChildrenRefresh(children, region);\n } else {\n // 检查所有子元素是否可以刷新\n checkChildrenRefresh(children, region);\n }\n} // 检查所有的子元素是否应该更新\n\nexport function checkChildrenRefresh(children, region) {\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n\n if (child.cfg.visible) {\n // 先判断 hasChanged,因为它的优先级判断应该高于 refresh\n if (child.cfg.hasChanged) {\n // 如果节点发生了 change,则需要级联设置子元素的 refresh\n child.cfg.refresh = true;\n\n if (child.isGroup()) {\n setChildrenRefresh(child.cfg.children, region);\n }\n } else if (child.cfg.refresh) {\n // 如果当前图形/分组 refresh = true,说明其子节点存在 changed\n if (child.isGroup()) {\n checkChildrenRefresh(child.cfg.children, region);\n }\n } else {\n // 这个分支说明此次局部刷新,所有的节点和父元素没有发生变化,仅需要检查包围盒(缓存)是否相交即可\n var refresh = checkElementRefresh(child, region);\n child.cfg.refresh = refresh;\n\n if (refresh && child.isGroup()) {\n // 如果需要刷新,说明子元素也需要刷新,继续进行判定\n checkChildrenRefresh(child.cfg.children, region);\n }\n }\n }\n }\n} // 由于对改变的图形放入 refreshElements 时做了优化,判定父元素 changed 时不加入\n// 那么有可能会出现 elements 都为空,所以最终 group\n\nexport function clearChanged(elements) {\n for (var i = 0; i < elements.length; i++) {\n var el = elements[i];\n el.cfg.hasChanged = false; // 级联清理\n\n if (el.isGroup() && !el.destroyed) {\n clearChanged(el.cfg.children);\n }\n }\n} // 当某个父元素发生改变时,调用这个方法级联设置 refresh\n\nfunction setChildrenRefresh(children, region) {\n for (var i = 0; i < children.length; i++) {\n var child = children[i]; // let refresh = true;\n // 获取缓存的 bbox,如果这个 bbox 还存在则说明父元素不是矩阵发生了改变\n // const bbox = child.cfg.canvasBBox;\n // if (bbox) {\n // // 如果这时候\n // refresh = intersectRect(bbox, region);\n // }\n\n child.cfg.refresh = true; // 如果需要刷新当前节点,所有的子元素设置 refresh\n\n if (child.isGroup()) {\n setChildrenRefresh(child.get('children'), region);\n }\n }\n}\n\nfunction checkElementRefresh(shape, region) {\n var bbox = shape.cfg.cacheCanvasBBox;\n var isAllow = shape.cfg.isInView && bbox && intersectRect(bbox, region);\n return isAllow;\n} // 绘制 path\n\n\nexport function drawPath(shape, context, attrs, arcParamsCache) {\n var path = attrs.path,\n startArrow = attrs.startArrow,\n endArrow = attrs.endArrow;\n\n if (!path) {\n return;\n }\n\n var currentPoint = [0, 0]; // 当前图形\n\n var startMovePoint = [0, 0]; // 开始 M 的点,可能会有多个\n\n var distance = {\n dx: 0,\n dy: 0\n };\n context.beginPath();\n\n for (var i = 0; i < path.length; i++) {\n var params = path[i];\n var command = params[0];\n\n if (i === 0 && startArrow && startArrow.d) {\n var tangent = shape.getStartTangent();\n distance = ArrowUtil.getShortenOffset(tangent[0][0], tangent[0][1], tangent[1][0], tangent[1][1], startArrow.d);\n } else if (i === path.length - 2 && path[i + 1][0] === 'Z' && endArrow && endArrow.d) {\n // 为了防止结尾为 Z 的 segment 缩短不起效,需要取最后两个 segment 特殊处理\n var lastPath = path[i + 1];\n\n if (lastPath[0] === 'Z') {\n var tangent = shape.getEndTangent();\n distance = ArrowUtil.getShortenOffset(tangent[0][0], tangent[0][1], tangent[1][0], tangent[1][1], endArrow.d);\n }\n } else if (i === path.length - 1 && endArrow && endArrow.d) {\n if (path[0] !== 'Z') {\n var tangent = shape.getEndTangent();\n distance = ArrowUtil.getShortenOffset(tangent[0][0], tangent[0][1], tangent[1][0], tangent[1][1], endArrow.d);\n }\n }\n\n var dx = distance.dx,\n dy = distance.dy; // V,H,S,T 都在前面被转换成标准形式\n\n switch (command) {\n case 'M':\n context.moveTo(params[1] - dx, params[2] - dy);\n startMovePoint = [params[1], params[2]];\n break;\n\n case 'L':\n context.lineTo(params[1] - dx, params[2] - dy);\n break;\n\n case 'Q':\n context.quadraticCurveTo(params[1], params[2], params[3] - dx, params[4] - dy);\n break;\n\n case 'C':\n context.bezierCurveTo(params[1], params[2], params[3], params[4], params[5] - dx, params[6] - dy);\n break;\n\n case 'A':\n {\n var arcParams = void 0; // 为了加速绘制,可以提供参数的缓存,各个图形自己缓存\n\n if (arcParamsCache) {\n arcParams = arcParamsCache[i];\n\n if (!arcParams) {\n arcParams = getArcParams(currentPoint, params);\n arcParamsCache[i] = arcParams;\n }\n } else {\n arcParams = getArcParams(currentPoint, params);\n }\n\n var cx = arcParams.cx,\n cy = arcParams.cy,\n rx = arcParams.rx,\n ry = arcParams.ry,\n startAngle = arcParams.startAngle,\n endAngle = arcParams.endAngle,\n xRotation = arcParams.xRotation,\n sweepFlag = arcParams.sweepFlag; // 直接使用椭圆的 api\n\n if (context.ellipse) {\n context.ellipse(cx, cy, rx, ry, xRotation, startAngle, endAngle, 1 - sweepFlag);\n } else {\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n context.translate(cx, cy);\n context.rotate(xRotation);\n context.scale(scaleX, scaleY);\n context.arc(0, 0, r, startAngle, endAngle, 1 - sweepFlag);\n context.scale(1 / scaleX, 1 / scaleY);\n context.rotate(-xRotation);\n context.translate(-cx, -cy);\n }\n\n break;\n }\n\n case 'Z':\n context.closePath();\n break;\n\n default:\n break;\n } // 有了 Z 后,当前节点从开始 M 的点开始\n\n\n if (command === 'Z') {\n currentPoint = startMovePoint;\n } else {\n var len = params.length;\n currentPoint = [params[len - 2], params[len - 1]];\n }\n }\n} // 刷新图形元素(Shape 或者 Group)\n\nexport function refreshElement(element, changeType) {\n var canvas = element.get('canvas'); // 只有存在于 canvas 上时生效\n\n if (canvas) {\n if (changeType === 'remove') {\n // 一旦 remove,则无法在 element 上拿到包围盒\n // destroy 后所有属性都拿不到,所以需要暂存一下\n // 这是一段 hack 的代码\n element._cacheCanvasBBox = element.get('cacheCanvasBBox');\n } // 防止反复刷新\n\n\n if (!element.get('hasChanged')) {\n // 但是始终要标记为 hasChanged,便于后面进行局部渲染\n element.set('hasChanged', true); // 本来只有局部渲染模式下,才需要记录更新的元素队列\n // if (canvas.get('localRefresh')) {\n // canvas.refreshElement(element, changeType, canvas);\n // }\n // 但对于 https://github.com/antvis/g/issues/422 的场景,全局渲染的模式下也需要记录更新的元素队列\n // 如果当前元素的父元素发生了改变,可以不放入队列,这句话大概能够提升 15% 的初次渲染性能\n\n if (!(element.cfg.parent && element.cfg.parent.get('hasChanged'))) {\n canvas.refreshElement(element, changeType, canvas);\n\n if (canvas.get('autoDraw')) {\n canvas.draw();\n }\n }\n }\n }\n}\nexport function getRefreshRegion(element) {\n var region;\n\n if (!element.destroyed) {\n var cacheBox = element.get('cacheCanvasBBox');\n var validCache = cacheBox && !!(cacheBox.width && cacheBox.height);\n var bbox = element.getCanvasBBox();\n var validBBox = bbox && !!(bbox.width && bbox.height); // 是否是有效 bbox 判定,一些 NaN 或者 宽高为 0 的情况过滤掉\n\n if (validCache && validBBox) {\n region = mergeRegion(cacheBox, bbox);\n } else if (validCache) {\n region = cacheBox;\n } else if (validBBox) {\n region = bbox;\n }\n } else {\n // 因为元素已经销毁所以无法获取到缓存的包围盒\n region = element['_cacheCanvasBBox'];\n }\n\n return region;\n}\nexport function getMergedRegion(elements) {\n if (!elements.length) {\n return null;\n }\n\n var minXArr = [];\n var minYArr = [];\n var maxXArr = [];\n var maxYArr = [];\n each(elements, function (el) {\n var region = getRefreshRegion(el);\n\n if (region) {\n minXArr.push(region.minX);\n minYArr.push(region.minY);\n maxXArr.push(region.maxX);\n maxYArr.push(region.maxY);\n }\n });\n return {\n minX: min(minXArr),\n minY: min(minYArr),\n maxX: max(maxXArr),\n maxY: max(maxYArr)\n };\n}\nexport function mergeView(region, viewRegion) {\n if (!region || !viewRegion) {\n return null;\n } // 不相交,则直接返回 null\n\n\n if (!intersectRect(region, viewRegion)) {\n return null;\n }\n\n return {\n minX: Math.max(region.minX, viewRegion.minX),\n minY: Math.max(region.minY, viewRegion.minY),\n maxX: Math.min(region.maxX, viewRegion.maxX),\n maxY: Math.min(region.maxY, viewRegion.maxY)\n };\n}","import { __extends } from \"tslib\";\nimport { AbstractGroup } from '@antv/g-base';\nimport * as Shape from './shape';\nimport { applyAttrsToContext, drawChildren, refreshElement } from './util/draw';\nimport { each, max, min } from '@antv/util';\nimport { intersectRect } from './util/util';\n\nvar Group =\n/** @class */\nfunction (_super) {\n __extends(Group, _super);\n\n function Group() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * 一些方法调用会引起画布变化\n * @param {ChangeType} changeType 改变的类型\n */\n\n\n Group.prototype.onCanvasChange = function (changeType) {\n refreshElement(this, changeType);\n };\n\n Group.prototype.getShapeBase = function () {\n return Shape;\n };\n\n Group.prototype.getGroupBase = function () {\n return Group;\n }; // 同 shape 中的方法重复了\n\n\n Group.prototype._applyClip = function (context, clip) {\n if (clip) {\n context.save(); // 将 clip 的属性挂载到 context 上\n\n applyAttrsToContext(context, clip); // 绘制 clip 路径\n\n clip.createPath(context);\n context.restore(); // 裁剪\n\n context.clip();\n\n clip._afterDraw();\n }\n }; // 这个方法以前直接使用的 getCanvasBBox,由于 group 上没有缓存,所以每次重新计算,导致性能开销比较大\n // 大概能够节省全局渲染 15-20% 的性能,如果不在这里加缓存优化后 10W 个节点无法达到 5-6 ms,大概能够 30-40ms\n\n\n Group.prototype.cacheCanvasBBox = function () {\n var children = this.cfg.children;\n var xArr = [];\n var yArr = [];\n each(children, function (child) {\n var bbox = child.cfg.cacheCanvasBBox; // isInview 的判定是一旦图形或者分组渲染就要计算是否在视图内,\n // 这个判定 10W 个图形下差不多能够节省 5-6 ms 的开销\n\n if (bbox && child.cfg.isInView) {\n xArr.push(bbox.minX, bbox.maxX);\n yArr.push(bbox.minY, bbox.maxY);\n }\n });\n var bbox = null;\n\n if (xArr.length) {\n var minX = min(xArr);\n var maxX = max(xArr);\n var minY = min(yArr);\n var maxY = max(yArr);\n bbox = {\n minX: minX,\n minY: minY,\n x: minX,\n y: minY,\n maxX: maxX,\n maxY: maxY,\n width: maxX - minX,\n height: maxY - minY\n };\n var canvas = this.cfg.canvas;\n\n if (canvas) {\n var viewRange = canvas.getViewRange(); // 如果这个地方判定 isInView == false 设置 bbox 为 false 的话,拾取的性能会更高\n // 但是目前 10W 图形的拾取在 2-5ms 内,这个优化意义不大,可以后期观察再看\n\n this.set('isInView', intersectRect(bbox, viewRange));\n }\n } else {\n this.set('isInView', false);\n }\n\n this.set('cacheCanvasBBox', bbox);\n };\n\n Group.prototype.draw = function (context, region) {\n var children = this.cfg.children;\n var allowDraw = region ? this.cfg.refresh : true; // 局部刷新需要判定\n // 这个地方需要判定,在 G6 的场景每个 group 都有 transform 的场景下性能会开销非常大\n // 通过 refresh 的判定,可以不刷新没有发生过变化的分组,不在视窗内的分组等等\n // 如果想进一步提升局部渲染性能,可以进一步优化 refresh 的判定,依然有潜力\n\n if (children.length && allowDraw) {\n context.save(); // group 上的矩阵和属性也会应用到上下文上\n // 先将 attrs 应用到上下文中,再设置 clip。因为 clip 应该被当前元素的 matrix 所影响\n\n applyAttrsToContext(context, this);\n\n this._applyClip(context, this.getClip());\n\n drawChildren(context, children, region);\n context.restore();\n this.cacheCanvasBBox();\n } // 这里的成本比较大,如果不绘制则不再\n // this.set('cacheCanvasBBox', this.getCanvasBBox());\n\n\n this.cfg.refresh = null; // 绘制后,消除更新标记\n\n this.set('hasChanged', false);\n }; // 绘制时被跳过,一般发生在分组隐藏时\n\n\n Group.prototype.skipDraw = function () {\n this.set('cacheCanvasBBox', null);\n this.set('hasChanged', false);\n };\n\n return Group;\n}(AbstractGroup);\n\nexport default Group;","import { __assign, __extends } from \"tslib\";\nimport { AbstractShape } from '@antv/g-base';\nimport { isNil, intersectRect } from '../util/util';\nimport { applyAttrsToContext, refreshElement } from '../util/draw';\nimport { getBBoxMethod } from '@antv/g-base';\nimport * as Shape from './index';\nimport Group from '../group';\n\nvar ShapeBase =\n/** @class */\nfunction (_super) {\n __extends(ShapeBase, _super);\n\n function ShapeBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ShapeBase.prototype.getDefaultAttrs = function () {\n var attrs = _super.prototype.getDefaultAttrs.call(this); // 设置默认值\n\n\n return __assign(__assign({}, attrs), {\n lineWidth: 1,\n lineAppendWidth: 0,\n strokeOpacity: 1,\n fillOpacity: 1\n });\n };\n\n ShapeBase.prototype.getShapeBase = function () {\n return Shape;\n };\n\n ShapeBase.prototype.getGroupBase = function () {\n return Group;\n };\n /**\n * 一些方法调用会引起画布变化\n * @param {ChangeType} changeType 改变的类型\n */\n\n\n ShapeBase.prototype.onCanvasChange = function (changeType) {\n refreshElement(this, changeType);\n };\n\n ShapeBase.prototype.calculateBBox = function () {\n var type = this.get('type');\n var lineWidth = this.getHitLineWidth(); // const attrs = this.attr();\n\n var bboxMethod = getBBoxMethod(type);\n var box = bboxMethod(this);\n var halfLineWidth = lineWidth / 2;\n var minX = box.x - halfLineWidth;\n var minY = box.y - halfLineWidth;\n var maxX = box.x + box.width + halfLineWidth;\n var maxY = box.y + box.height + halfLineWidth;\n return {\n x: minX,\n minX: minX,\n y: minY,\n minY: minY,\n width: box.width + lineWidth,\n height: box.height + lineWidth,\n maxX: maxX,\n maxY: maxY\n };\n };\n\n ShapeBase.prototype.isFill = function () {\n return !!this.attrs['fill'] || this.isClipShape();\n };\n\n ShapeBase.prototype.isStroke = function () {\n return !!this.attrs['stroke'];\n }; // 同 shape 中的方法重复了\n\n\n ShapeBase.prototype._applyClip = function (context, clip) {\n if (clip) {\n context.save(); // 将 clip 的属性挂载到 context 上\n\n applyAttrsToContext(context, clip); // 绘制 clip 路径\n\n clip.createPath(context);\n context.restore(); // 裁剪\n\n context.clip();\n\n clip._afterDraw();\n }\n }; // 绘制图形时需要考虑 region 限制\n\n\n ShapeBase.prototype.draw = function (context, region) {\n var clip = this.cfg.clipShape; // 如果指定了 region,同时不允许刷新时,直接返回\n\n if (region) {\n if (this.cfg.refresh === false) {\n // this._afterDraw();\n this.set('hasChanged', false);\n return;\n } // 是否相交需要考虑 clip 的包围盒\n\n\n var bbox = this.getCanvasBBox();\n\n if (!intersectRect(region, bbox)) {\n // 图形的包围盒与重绘区域不相交时,也需要清除标记\n this.set('hasChanged', false); // 存在多种情形需要更新 cacheCanvasBBox 和 isInview 的判定\n // 1. 之前图形在视窗内,但是现在不再视窗内\n // 2. 如果当前的图形以及父元素都没有发生过变化,refresh = false 不会走到这里,所以这里的图形都是父元素发生变化,但是没有在视图内的元素\n\n if (this.cfg.isInView) {\n this._afterDraw();\n }\n\n return;\n }\n }\n\n context.save(); // 先将 attrs 应用到上下文中,再设置 clip。因为 clip 应该被当前元素的 matrix 所影响\n\n applyAttrsToContext(context, this);\n\n this._applyClip(context, clip);\n\n this.drawPath(context);\n context.restore();\n\n this._afterDraw();\n };\n\n ShapeBase.prototype.getCanvasViewBox = function () {\n var canvas = this.cfg.canvas;\n\n if (canvas) {\n // @ts-ignore\n return canvas.getViewRange();\n }\n\n return null;\n };\n\n ShapeBase.prototype.cacheCanvasBBox = function () {\n var canvasBBox = this.getCanvasViewBox(); // 绘制的时候缓存包围盒\n\n if (canvasBBox) {\n var bbox = this.getCanvasBBox();\n var isInView = intersectRect(bbox, canvasBBox);\n this.set('isInView', isInView); // 不再视窗内 cacheCanvasBBox 设置成 null,会提升局部渲染的性能,\n // 因为在局部渲染影响的包围盒计算时不考虑这个图形的包围盒\n // 父元素 cacheCanvasBBox 计算的时候也不计算\n\n if (isInView) {\n this.set('cacheCanvasBBox', bbox);\n } else {\n this.set('cacheCanvasBBox', null);\n }\n }\n };\n\n ShapeBase.prototype._afterDraw = function () {\n this.cacheCanvasBBox(); // 绘制后消除标记\n\n this.set('hasChanged', false);\n this.set('refresh', null);\n };\n\n ShapeBase.prototype.skipDraw = function () {\n this.set('cacheCanvasBBox', null);\n this.set('isInView', null);\n this.set('hasChanged', false);\n };\n /**\n * 绘制图形的路径\n * @param {CanvasRenderingContext2D} context 上下文\n */\n\n\n ShapeBase.prototype.drawPath = function (context) {\n this.createPath(context);\n this.strokeAndFill(context);\n this.afterDrawPath(context);\n };\n /**\n * @protected\n * 填充图形\n * @param {CanvasRenderingContext2D} context context 上下文\n */\n\n\n ShapeBase.prototype.fill = function (context) {\n context.fill();\n };\n /**\n * @protected\n * 绘制图形边框\n * @param {CanvasRenderingContext2D} context context 上下文\n */\n\n\n ShapeBase.prototype.stroke = function (context) {\n context.stroke();\n }; // 绘制或者填充\n\n\n ShapeBase.prototype.strokeAndFill = function (context) {\n var _a = this.attrs,\n lineWidth = _a.lineWidth,\n opacity = _a.opacity,\n strokeOpacity = _a.strokeOpacity,\n fillOpacity = _a.fillOpacity;\n\n if (this.isFill()) {\n if (!isNil(fillOpacity) && fillOpacity !== 1) {\n context.globalAlpha = fillOpacity;\n this.fill(context);\n context.globalAlpha = opacity;\n } else {\n this.fill(context);\n }\n }\n\n if (this.isStroke()) {\n if (lineWidth > 0) {\n if (!isNil(strokeOpacity) && strokeOpacity !== 1) {\n context.globalAlpha = strokeOpacity;\n }\n\n this.stroke(context);\n }\n }\n\n this.afterDrawPath(context);\n };\n /**\n * @protected\n * 绘制图形的路径\n * @param {CanvasRenderingContext2D} context 上下文\n */\n\n\n ShapeBase.prototype.createPath = function (context) {};\n /**\n * 绘制完成 path 后的操作\n * @param {CanvasRenderingContext2D} context 上下文\n */\n\n\n ShapeBase.prototype.afterDrawPath = function (context) {};\n\n ShapeBase.prototype.isInShape = function (refX, refY) {\n // return HitUtil.isHitShape(this, refX, refY);\n var isStroke = this.isStroke();\n var isFill = this.isFill();\n var lineWidth = this.getHitLineWidth();\n return this.isInStrokeOrPath(refX, refY, isStroke, isFill, lineWidth);\n }; // 之所以不拆成 isInStroke 和 isInPath 在于两者存在一些共同的计算\n\n\n ShapeBase.prototype.isInStrokeOrPath = function (x, y, isStroke, isFill, lineWidth) {\n return false;\n };\n /**\n * 获取线拾取的宽度\n * @returns {number} 线的拾取宽度\n */\n\n\n ShapeBase.prototype.getHitLineWidth = function () {\n if (!this.isStroke()) {\n return 0;\n }\n\n var attrs = this.attrs;\n return attrs['lineWidth'] + attrs['lineAppendWidth'];\n };\n\n return ShapeBase;\n}(AbstractShape);\n\nexport default ShapeBase;","/**\n * @fileoverview 圆\n * @author dxq613@gmail.com\n */\nimport { __assign, __extends } from \"tslib\";\nimport ShapeBase from './base';\nimport { distance } from '../util/util';\n\nvar Circle =\n/** @class */\nfunction (_super) {\n __extends(Circle, _super);\n\n function Circle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Circle.prototype.getDefaultAttrs = function () {\n var attrs = _super.prototype.getDefaultAttrs.call(this);\n\n return __assign(__assign({}, attrs), {\n x: 0,\n y: 0,\n r: 0\n });\n };\n\n Circle.prototype.isInStrokeOrPath = function (x, y, isStroke, isFill, lineWidth) {\n var attrs = this.attr();\n var cx = attrs.x;\n var cy = attrs.y;\n var r = attrs.r;\n var halfLineWidth = lineWidth / 2;\n var absDistance = distance(cx, cy, x, y); // 直接用距离,如果同时存在边和填充时,可以减少两次计算\n\n if (isFill && isStroke) {\n return absDistance <= r + halfLineWidth;\n }\n\n if (isFill) {\n return absDistance <= r;\n }\n\n if (isStroke) {\n return absDistance >= r - halfLineWidth && absDistance <= r + halfLineWidth;\n }\n\n return false;\n };\n\n Circle.prototype.createPath = function (context) {\n var attrs = this.attr();\n var cx = attrs.x;\n var cy = attrs.y;\n var r = attrs.r;\n context.beginPath();\n context.arc(cx, cy, r, 0, Math.PI * 2, false);\n context.closePath();\n };\n\n return Circle;\n}(ShapeBase);\n\nexport default Circle;","/**\n * @fileoverview 椭圆\n * @author dxq613@gmail.com\n */\nimport { __assign, __extends } from \"tslib\";\nimport ShapeBase from './base'; // 根据椭圆公式计算 x*x/rx*rx + y*y/ry*ry;\n\nfunction ellipseDistance(squareX, squareY, rx, ry) {\n return squareX / (rx * rx) + squareY / (ry * ry);\n}\n\nvar Ellipse =\n/** @class */\nfunction (_super) {\n __extends(Ellipse, _super);\n\n function Ellipse() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Ellipse.prototype.getDefaultAttrs = function () {\n var attrs = _super.prototype.getDefaultAttrs.call(this);\n\n return __assign(__assign({}, attrs), {\n x: 0,\n y: 0,\n rx: 0,\n ry: 0\n });\n };\n\n Ellipse.prototype.isInStrokeOrPath = function (x, y, isStroke, isFill, lineWidth) {\n var attrs = this.attr();\n var halfLineWith = lineWidth / 2;\n var cx = attrs.x;\n var cy = attrs.y;\n var rx = attrs.rx,\n ry = attrs.ry;\n var squareX = (x - cx) * (x - cx);\n var squareY = (y - cy) * (y - cy); // 使用椭圆的公式: x*x/rx*rx + y*y/ry*ry = 1;\n\n if (isFill && isStroke) {\n return ellipseDistance(squareX, squareY, rx + halfLineWith, ry + halfLineWith) <= 1;\n }\n\n if (isFill) {\n return ellipseDistance(squareX, squareY, rx, ry) <= 1;\n }\n\n if (isStroke) {\n return ellipseDistance(squareX, squareY, rx - halfLineWith, ry - halfLineWith) >= 1 && ellipseDistance(squareX, squareY, rx + halfLineWith, ry + halfLineWith) <= 1;\n }\n\n return false;\n };\n\n Ellipse.prototype.createPath = function (context) {\n var attrs = this.attr();\n var cx = attrs.x;\n var cy = attrs.y;\n var rx = attrs.rx;\n var ry = attrs.ry;\n context.beginPath(); // 兼容逻辑\n\n if (context.ellipse) {\n context.ellipse(cx, cy, rx, ry, 0, 0, Math.PI * 2, false);\n } else {\n // 如果不支持,则使用圆来绘制,进行变形\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n context.save();\n context.translate(cx, cy);\n context.scale(scaleX, scaleY);\n context.arc(0, 0, r, 0, Math.PI * 2);\n context.restore();\n context.closePath();\n }\n };\n\n return Ellipse;\n}(ShapeBase);\n\nexport default Ellipse;","/**\n * @fileoverview 图片\n * @author dxq613@gmail.com\n */\nimport { __assign, __extends } from \"tslib\";\nimport ShapeBase from './base';\nimport { isString, isNil } from '../util/util';\n\nfunction isCanvas(dom) {\n return dom instanceof HTMLElement && isString(dom.nodeName) && dom.nodeName.toUpperCase() === 'CANVAS';\n}\n\nvar ImageShape =\n/** @class */\nfunction (_super) {\n __extends(ImageShape, _super);\n\n function ImageShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ImageShape.prototype.getDefaultAttrs = function () {\n var attrs = _super.prototype.getDefaultAttrs.call(this);\n\n return __assign(__assign({}, attrs), {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n });\n };\n\n ImageShape.prototype.initAttrs = function (attrs) {\n this._setImage(attrs.img);\n }; // image 不计算 stroke\n\n\n ImageShape.prototype.isStroke = function () {\n return false;\n }; // 仅仅使用包围盒检测来进行拾取\n // 所以不需要复写 isInStrokeOrPath 的方法\n\n\n ImageShape.prototype.isOnlyHitBox = function () {\n return true;\n };\n\n ImageShape.prototype._afterLoading = function () {\n if (this.get('toDraw') === true) {\n var canvas = this.get('canvas');\n\n if (canvas) {\n // 这段应该改成局部渲染\n canvas.draw();\n } else {\n // 这种方式如果发生遮挡会出现问题\n this.createPath(this.get('context'));\n }\n }\n };\n\n ImageShape.prototype._setImage = function (img) {\n var _this = this;\n\n var attrs = this.attrs;\n\n if (isString(img)) {\n var image_1 = new Image();\n\n image_1.onload = function () {\n // 图片未加载完,则已经被销毁\n if (_this.destroyed) {\n return false;\n } // 缓存原始地址,可以做对比,防止重复加载图片\n // 如果考虑到在加载过程中可能替换 img 属性,则情况更加复杂\n // this.set('imgSrc', img);\n // 这里会循环调用 _setImage 方法,但不会再走这个分支\n\n\n _this.attr('img', image_1);\n\n _this.set('loading', false);\n\n _this._afterLoading();\n\n var callback = _this.get('callback');\n\n if (callback) {\n callback.call(_this);\n }\n }; // 设置跨域\n\n\n image_1.crossOrigin = 'Anonymous';\n image_1.src = img; // loading 过程中不绘制\n\n this.set('loading', true);\n } else if (img instanceof Image) {\n // 如果是一个 image 对象,则设置宽高\n if (!attrs.width) {\n attrs.width = img.width;\n }\n\n if (!attrs.height) {\n attrs.height = img.height;\n }\n } else if (isCanvas(img)) {\n // 如果设置了 canvas 对象\n if (!attrs.width) {\n attrs.width = Number(img.getAttribute('width'));\n }\n\n if (!attrs.height) {\n attrs.height, Number(img.getAttribute('height'));\n }\n }\n };\n\n ImageShape.prototype.onAttrChange = function (name, value, originValue) {\n _super.prototype.onAttrChange.call(this, name, value, originValue); // 如果加载的已经是当前图片,则不再处理\n\n\n if (name === 'img') {\n // 可以加缓冲,&& this.get('imgSrc') !== value\n this._setImage(value);\n }\n };\n\n ImageShape.prototype.createPath = function (context) {\n // 正在加载则不绘制\n if (this.get('loading')) {\n this.set('toDraw', true); // 加载完成后绘制\n\n this.set('context', context);\n return;\n }\n\n var attrs = this.attr();\n var x = attrs.x,\n y = attrs.y,\n width = attrs.width,\n height = attrs.height,\n sx = attrs.sx,\n sy = attrs.sy,\n swidth = attrs.swidth,\n sheight = attrs.sheight;\n var img = attrs.img;\n\n if (img instanceof Image || isCanvas(img)) {\n if (!isNil(sx) && !isNil(sy) && !isNil(swidth) && !isNil(sheight)) {\n context.drawImage(img, sx, sy, swidth, sheight, x, y, width, height);\n } else {\n context.drawImage(img, x, y, width, height);\n }\n }\n };\n\n return ImageShape;\n}(ShapeBase);\n\nexport default ImageShape;","import { Line as LineUtil } from '@antv/g-math';\nexport default function inLine(x1, y1, x2, y2, lineWidth, x, y) {\n var minX = Math.min(x1, x2);\n var maxX = Math.max(x1, x2);\n var minY = Math.min(y1, y2);\n var maxY = Math.max(y1, y2);\n var halfWidth = lineWidth / 2; // 因为目前的方案是计算点到直线的距离,而有可能会在延长线上,所以要先判断是否在包围盒内\n // 这种方案会在水平或者竖直的情况下载线的延长线上有半 lineWidth 的误差\n\n if (!(x >= minX - halfWidth && x <= maxX + halfWidth && y >= minY - halfWidth && y <= maxY + halfWidth)) {\n return false;\n } // 因为已经计算了包围盒,所以仅需要计算到直线的距离即可,可以显著提升性能\n\n\n return LineUtil.pointToLine(x1, y1, x2, y2, x, y) <= lineWidth / 2;\n}","import { __assign, __extends } from \"tslib\";\n/**\n * @fileoverview 线\n * @author dxq613@gmail.com\n */\n\nimport { Line as LineUtil } from '@antv/g-math';\nimport ShapeBase from './base';\nimport inLine from '../util/in-stroke/line';\nimport * as ArrowUtil from '../util/arrow';\n\nvar Line =\n/** @class */\nfunction (_super) {\n __extends(Line, _super);\n\n function Line() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Line.prototype.getDefaultAttrs = function () {\n var attrs = _super.prototype.getDefaultAttrs.call(this);\n\n return __assign(__assign({}, attrs), {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 0,\n startArrow: false,\n endArrow: false\n });\n };\n\n Line.prototype.initAttrs = function (attrs) {\n this.setArrow();\n }; // 更新属性时,检测是否更改了箭头\n\n\n Line.prototype.onAttrChange = function (name, value, originValue) {\n _super.prototype.onAttrChange.call(this, name, value, originValue); // 由于箭头的绘制依赖于 line 的诸多 attrs,因此这里不再对每个 attr 进行判断,attr 每次变化都会影响箭头的更新\n\n\n this.setArrow();\n };\n\n Line.prototype.setArrow = function () {\n var attrs = this.attr();\n var x1 = attrs.x1,\n y1 = attrs.y1,\n x2 = attrs.x2,\n y2 = attrs.y2,\n startArrow = attrs.startArrow,\n endArrow = attrs.endArrow;\n\n if (startArrow) {\n ArrowUtil.addStartArrow(this, attrs, x2, y2, x1, y1);\n }\n\n if (endArrow) {\n ArrowUtil.addEndArrow(this, attrs, x1, y1, x2, y2);\n }\n };\n\n Line.prototype.isInStrokeOrPath = function (x, y, isStroke, isFill, lineWidth) {\n if (!isStroke || !lineWidth) {\n return false;\n }\n\n var _a = this.attr(),\n x1 = _a.x1,\n y1 = _a.y1,\n x2 = _a.x2,\n y2 = _a.y2;\n\n return inLine(x1, y1, x2, y2, lineWidth, x, y);\n };\n\n Line.prototype.createPath = function (context) {\n var attrs = this.attr();\n var x1 = attrs.x1,\n y1 = attrs.y1,\n x2 = attrs.x2,\n y2 = attrs.y2,\n startArrow = attrs.startArrow,\n endArrow = attrs.endArrow;\n var startArrowDistance = {\n dx: 0,\n dy: 0\n };\n var endArrowDistance = {\n dx: 0,\n dy: 0\n };\n\n if (startArrow && startArrow.d) {\n startArrowDistance = ArrowUtil.getShortenOffset(x1, y1, x2, y2, attrs.startArrow.d);\n }\n\n if (endArrow && endArrow.d) {\n endArrowDistance = ArrowUtil.getShortenOffset(x1, y1, x2, y2, attrs.endArrow.d);\n }\n\n context.beginPath(); // 如果自定义箭头,线条相应缩进\n\n context.moveTo(x1 + startArrowDistance.dx, y1 + startArrowDistance.dy);\n context.lineTo(x2 - endArrowDistance.dx, y2 - endArrowDistance.dy);\n };\n\n Line.prototype.afterDrawPath = function (context) {\n var startArrowShape = this.get('startArrowShape');\n var endArrowShape = this.get('endArrowShape');\n\n if (startArrowShape) {\n startArrowShape.draw(context);\n }\n\n if (endArrowShape) {\n endArrowShape.draw(context);\n }\n };\n /**\n * Get length of line\n * @return {number} length\n */\n\n\n Line.prototype.getTotalLength = function () {\n var _a = this.attr(),\n x1 = _a.x1,\n y1 = _a.y1,\n x2 = _a.x2,\n y2 = _a.y2;\n\n return LineUtil.length(x1, y1, x2, y2);\n };\n /**\n * Get point according to ratio\n * @param {number} ratio\n * @return {Point} point\n */\n\n\n Line.prototype.getPoint = function (ratio) {\n var _a = this.attr(),\n x1 = _a.x1,\n y1 = _a.y1,\n x2 = _a.x2,\n y2 = _a.y2;\n\n return LineUtil.pointAt(x1, y1, x2, y2, ratio);\n };\n\n return Line;\n}(ShapeBase);\n\nexport default Line;","/**\n * @fileoverview Marker\n * @author dxq613@gmail.com\n */\nimport { __extends } from \"tslib\";\nimport { isNil } from '@antv/util';\nimport { path2Absolute } from '@antv/path-util';\nimport ShapeBase from './base';\nimport { isFunction } from '../util/util';\nimport { drawPath } from '../util/draw';\nvar Symbols = {\n // 圆\n circle: function circle(x, y, r) {\n return [['M', x - r, y], ['A', r, r, 0, 1, 0, x + r, y], ['A', r, r, 0, 1, 0, x - r, y]];\n },\n // 正方形\n square: function square(x, y, r) {\n return [['M', x - r, y - r], ['L', x + r, y - r], ['L', x + r, y + r], ['L', x - r, y + r], ['Z']];\n },\n // 菱形\n diamond: function diamond(x, y, r) {\n return [['M', x - r, y], ['L', x, y - r], ['L', x + r, y], ['L', x, y + r], ['Z']];\n },\n // 三角形\n triangle: function triangle(x, y, r) {\n var diffY = r * Math.sin(1 / 3 * Math.PI);\n return [['M', x - r, y + diffY], ['L', x, y - diffY], ['L', x + r, y + diffY], ['Z']];\n },\n // 倒三角形\n 'triangle-down': function triangleDown(x, y, r) {\n var diffY = r * Math.sin(1 / 3 * Math.PI);\n return [['M', x - r, y - diffY], ['L', x + r, y - diffY], ['L', x, y + diffY], ['Z']];\n }\n};\n\nvar Marker =\n/** @class */\nfunction (_super) {\n __extends(Marker, _super);\n\n function Marker() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Marker.prototype.initAttrs = function (attrs) {\n this._resetParamsCache();\n }; // 重置绘制 path 存储的缓存\n\n\n Marker.prototype._resetParamsCache = function () {\n // 为了加速 path 的绘制、拾取和计算,这个地方可以缓存很多东西\n // 这些缓存都是第一次需要时计算和存储,虽然增加了复杂度,但是频繁调用的方法,性能有很大提升\n this.set('paramsCache', {}); // 清理缓存\n }; // 更新属性时,检测是否更改了 path\n\n\n Marker.prototype.onAttrChange = function (name, value, originValue) {\n _super.prototype.onAttrChange.call(this, name, value, originValue);\n\n if (['symbol', 'x', 'y', 'r', 'radius'].indexOf(name) !== -1) {\n // path 相关属性更改时,清理缓存\n this._resetParamsCache();\n }\n }; // 仅仅使用包围盒检测来进行拾取\n // 所以不需要复写 isInStrokeOrPath 的方法\n\n\n Marker.prototype.isOnlyHitBox = function () {\n return true;\n };\n\n Marker.prototype._getR = function (attrs) {\n // 兼容 r 和 radius 两种写法,推荐使用 r\n return isNil(attrs.r) ? attrs.radius : attrs.r;\n };\n\n Marker.prototype._getPath = function () {\n var attrs = this.attr();\n var x = attrs.x,\n y = attrs.y;\n var symbol = attrs.symbol || 'circle';\n\n var r = this._getR(attrs);\n\n var method;\n var path;\n\n if (isFunction(symbol)) {\n method = symbol;\n path = method(x, y, r); // 将 path 转成绝对路径\n\n path = path2Absolute(path);\n } else {\n // 内置 symbol 的 path 都是绝对路径,直接绘制即可,不需要对 path 进行特殊处理\n method = Marker.Symbols[symbol];\n\n if (!method) {\n console.warn(symbol + \" marker is not supported.\");\n return null;\n }\n\n path = method(x, y, r);\n }\n\n return path;\n };\n\n Marker.prototype.createPath = function (context) {\n var path = this._getPath();\n\n var paramsCache = this.get('paramsCache');\n drawPath(this, context, {\n path: path\n }, paramsCache);\n };\n\n Marker.Symbols = Symbols;\n return Marker;\n}(ShapeBase);\n\nexport default Marker;","import { getOffScreenContext } from '@antv/g-base';\nexport default function isPointInPath(shape, x, y) {\n var ctx = getOffScreenContext();\n shape.createPath(ctx);\n return ctx.isPointInPath(x, y);\n}","/**\n * @fileoverview 判断点是否在多边形内\n * @author dxq613@gmail.com\n */\n// 多边形的射线检测,参考:https://blog.csdn.net/WilliamSun0122/article/details/77994526\nvar tolerance = 1e-6; // 三态函数,判断两个double在eps精度下的大小关系\n\nfunction dcmp(x) {\n if (Math.abs(x) < tolerance) {\n return 0;\n }\n\n return x < 0 ? -1 : 1;\n} // 判断点Q是否在p1和p2的线段上\n\n\nfunction onSegment(p1, p2, q) {\n if ((q[0] - p1[0]) * (p2[1] - p1[1]) === (p2[0] - p1[0]) * (q[1] - p1[1]) && Math.min(p1[0], p2[0]) <= q[0] && q[0] <= Math.max(p1[0], p2[0]) && Math.min(p1[1], p2[1]) <= q[1] && q[1] <= Math.max(p1[1], p2[1])) {\n return true;\n }\n\n return false;\n} // 判断点P在多边形内-射线法\n\n\nexport default function isInPolygon(points, x, y) {\n var isHit = false;\n var n = points.length;\n\n if (n <= 2) {\n // svg 中点小于 3 个时,不显示,也无法被拾取\n return false;\n }\n\n for (var i = 0; i < n; i++) {\n var p1 = points[i];\n var p2 = points[(i + 1) % n];\n\n if (onSegment(p1, p2, [x, y])) {\n // 点在多边形一条边上\n return true;\n } // 前一个判断min(p1[1],p2[1]) 0 !== dcmp(p2[1] - y) > 0 && dcmp(x - (y - p1[1]) * (p1[0] - p2[0]) / (p1[1] - p2[1]) - p1[0]) < 0) {\n isHit = !isHit;\n }\n }\n\n return isHit;\n}","import { distance } from '../util';\nexport default function arc(cx, cy, r, startAngle, endAngle, lineWidth, x, y) {\n var angle = (Math.atan2(y - cy, x - cx) + Math.PI * 2) % (Math.PI * 2); // 转换到 0 - 2 * Math.PI 之间\n\n if (angle < startAngle || angle > endAngle) {\n return false;\n }\n\n var point = {\n x: cx + r * Math.cos(angle),\n y: cy + r * Math.sin(angle)\n };\n return distance(point.x, point.y, x, y) <= lineWidth / 2;\n}","import { __assign } from \"tslib\";\n/**\n * @fileoverview path 的一些工具\n * @author dxq613@gmail.com\n */\n\nimport { PathUtil } from '@antv/g-base';\nimport { Quad as QuadUtil } from '@antv/g-math';\nimport { Cubic as CubicUtil } from '@antv/g-math';\nimport { ext } from '@antv/matrix-util';\nimport * as vec3 from 'gl-matrix/vec3';\nimport { inBox } from './util';\nimport inLine from './in-stroke/line';\nimport inArc from './in-stroke/arc';\nvar transform = ext.transform;\n\nfunction hasArc(path) {\n var hasArc = false;\n var count = path.length;\n\n for (var i = 0; i < count; i++) {\n var params = path[i];\n var cmd = params[0];\n\n if (cmd === 'C' || cmd === 'A' || cmd === 'Q') {\n hasArc = true;\n break;\n }\n }\n\n return hasArc;\n}\n\nfunction isPointInStroke(segments, lineWidth, x, y, length) {\n var isHit = false;\n var halfWidth = lineWidth / 2;\n\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n var currentPoint = segment.currentPoint,\n params = segment.params,\n prePoint = segment.prePoint,\n box = segment.box; // 如果在前面已经生成过包围盒,直接按照包围盒计算\n\n if (box && !inBox(box.x - halfWidth, box.y - halfWidth, box.width + lineWidth, box.height + lineWidth, x, y)) {\n continue;\n }\n\n switch (segment.command) {\n // L 和 Z 都是直线, M 不进行拾取\n case 'L':\n case 'Z':\n isHit = inLine(prePoint[0], prePoint[1], currentPoint[0], currentPoint[1], lineWidth, x, y);\n break;\n\n case 'Q':\n var qDistance = QuadUtil.pointDistance(prePoint[0], prePoint[1], params[1], params[2], params[3], params[4], x, y);\n isHit = qDistance <= lineWidth / 2;\n break;\n\n case 'C':\n var cDistance = CubicUtil.pointDistance(prePoint[0], // 上一段结束位置, 即 C 的起始点\n prePoint[1], params[1], // 'C' 的参数,1、2 为第一个控制点,3、4 为第二个控制点,5、6 为结束点\n params[2], params[3], params[4], params[5], params[6], x, y, length);\n isHit = cDistance <= lineWidth / 2;\n break;\n\n case 'A':\n // 计算点到椭圆圆弧的距离,暂时使用近似算法,后面可以改成切割法求最近距离\n var arcParams = segment.arcParams;\n var cx = arcParams.cx,\n cy = arcParams.cy,\n rx = arcParams.rx,\n ry = arcParams.ry,\n startAngle = arcParams.startAngle,\n endAngle = arcParams.endAngle,\n xRotation = arcParams.xRotation;\n var p = [x, y, 1];\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n var m = transform(null, [['t', -cx, -cy], ['r', -xRotation], ['s', 1 / scaleX, 1 / scaleY]]);\n vec3.transformMat3(p, p, m);\n isHit = inArc(0, 0, r, startAngle, endAngle, lineWidth, p[0], p[1]);\n break;\n\n default:\n break;\n }\n\n if (isHit) {\n break;\n }\n }\n\n return isHit;\n}\n/**\n * 提取出内部的闭合多边形和非闭合的多边形,假设 path 不存在圆弧\n * @param {Array} path 路径\n * @returns {Array} 点的集合\n */\n\n\nfunction extractPolygons(path) {\n var count = path.length;\n var polygons = [];\n var polylines = [];\n var points = []; // 防止第一个命令不是 'M'\n\n for (var i = 0; i < count; i++) {\n var params = path[i];\n var cmd = params[0];\n\n if (cmd === 'M') {\n // 遇到 'M' 判定是否是新数组,新数组中没有点\n if (points.length) {\n // 如果存在点,则说明没有遇到 'Z',开始了一个新的多边形\n polylines.push(points);\n points = []; // 创建新的点\n }\n\n points.push([params[1], params[2]]);\n } else if (cmd === 'Z') {\n if (points.length) {\n // 存在点\n polygons.push(points);\n points = []; // 开始新的点集合\n } // 如果不存在点,同时 'Z',则说明是错误,不处理\n\n } else {\n points.push([params[1], params[2]]);\n }\n } // 说明 points 未放入 polygons 或者 polyline\n // 仅当只有一个 M,没有 Z 时会发生这种情况\n\n\n if (points.length > 0) {\n polylines.push(points);\n }\n\n return {\n polygons: polygons,\n polylines: polylines\n };\n}\n\nexport default __assign({\n hasArc: hasArc,\n extractPolygons: extractPolygons,\n isPointInStroke: isPointInStroke\n}, PathUtil);","import { __assign, __extends } from \"tslib\";\nimport { Cubic as CubicUtil } from '@antv/g-math';\nimport { each, isNil } from '@antv/util';\nimport ShapeBase from './base';\nimport { path2Absolute, path2Segments } from '@antv/path-util';\nimport { drawPath } from '../util/draw';\nimport isPointInPath from '../util/in-path/point-in-path';\nimport isInPolygon from '../util/in-path/polygon';\nimport PathUtil from '../util/path';\nimport * as ArrowUtil from '../util/arrow'; // 是否在多个多边形内部\n\nfunction isInPolygons(polygons, x, y) {\n var isHit = false;\n\n for (var i = 0; i < polygons.length; i++) {\n var points = polygons[i];\n isHit = isInPolygon(points, x, y);\n\n if (isHit) {\n break;\n }\n }\n\n return isHit;\n}\n\nvar Path =\n/** @class */\nfunction (_super) {\n __extends(Path, _super);\n\n function Path() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Path.prototype.getDefaultAttrs = function () {\n var attrs = _super.prototype.getDefaultAttrs.call(this);\n\n return __assign(__assign({}, attrs), {\n startArrow: false,\n endArrow: false\n });\n };\n\n Path.prototype.initAttrs = function (attrs) {\n this._setPathArr(attrs.path);\n\n this.setArrow();\n }; // 更新属性时,检测是否更改了 path\n\n\n Path.prototype.onAttrChange = function (name, value, originValue) {\n _super.prototype.onAttrChange.call(this, name, value, originValue);\n\n if (name === 'path') {\n this._setPathArr(value);\n } // 由于箭头的绘制依赖于 line 的诸多 attrs,因此这里不再对每个 attr 进行判断,attr 每次变化都会影响箭头的更新\n\n\n this.setArrow();\n }; // 将 path 转换成绝对路径\n\n\n Path.prototype._setPathArr = function (path) {\n // 转换 path 的格式\n this.attrs.path = path2Absolute(path);\n var hasArc = PathUtil.hasArc(path); // 为了加速 path 的绘制、拾取和计算,这个地方可以缓存很多东西\n // 这些缓存都是第一次需要时计算和存储,虽然增加了复杂度,但是频繁调用的方法,性能有很大提升\n\n this.set('hasArc', hasArc);\n this.set('paramsCache', {}); // 清理缓存\n\n this.set('segments', null); // 延迟生成 path,在动画场景下可能不会有拾取\n\n this.set('curve', null);\n this.set('tCache', null);\n this.set('totalLength', null);\n };\n\n Path.prototype.getSegments = function () {\n var segments = this.get('segements');\n\n if (!segments) {\n segments = path2Segments(this.attr('path'));\n this.set('segments', segments);\n }\n\n return segments;\n };\n\n Path.prototype.setArrow = function () {\n var attrs = this.attr();\n var startArrow = attrs.startArrow,\n endArrow = attrs.endArrow;\n\n if (startArrow) {\n var tangent = this.getStartTangent();\n ArrowUtil.addStartArrow(this, attrs, tangent[0][0], tangent[0][1], tangent[1][0], tangent[1][1]);\n }\n\n if (endArrow) {\n var tangent = this.getEndTangent();\n ArrowUtil.addEndArrow(this, attrs, tangent[0][0], tangent[0][1], tangent[1][0], tangent[1][1]);\n }\n };\n\n Path.prototype.isInStrokeOrPath = function (x, y, isStroke, isFill, lineWidth) {\n var segments = this.getSegments();\n var hasArc = this.get('hasArc');\n var isHit = false;\n\n if (isStroke) {\n var length_1 = this.getTotalLength();\n isHit = PathUtil.isPointInStroke(segments, lineWidth, x, y, length_1);\n }\n\n if (!isHit && isFill) {\n if (hasArc) {\n // 存在曲线时,暂时使用 canvas 的 api 计算,后续可以进行多边形切割\n isHit = isPointInPath(this, x, y);\n } else {\n var path = this.attr('path');\n var extractResutl = PathUtil.extractPolygons(path); // 提取出来的多边形包含闭合的和非闭合的,在这里统一按照多边形处理\n\n isHit = isInPolygons(extractResutl.polygons, x, y) || isInPolygons(extractResutl.polylines, x, y);\n }\n }\n\n return isHit;\n };\n\n Path.prototype.createPath = function (context) {\n var attrs = this.attr();\n var paramsCache = this.get('paramsCache'); // 由于计算圆弧的参数成本很大,所以要缓存\n\n drawPath(this, context, attrs, paramsCache);\n };\n\n Path.prototype.afterDrawPath = function (context) {\n var startArrowShape = this.get('startArrowShape');\n var endArrowShape = this.get('endArrowShape');\n\n if (startArrowShape) {\n startArrowShape.draw(context);\n }\n\n if (endArrowShape) {\n endArrowShape.draw(context);\n }\n };\n /**\n * Get total length of path\n * @return {number} length\n */\n\n\n Path.prototype.getTotalLength = function () {\n var totalLength = this.get('totalLength');\n\n if (!isNil(totalLength)) {\n return totalLength;\n }\n\n this._calculateCurve();\n\n this._setTcache();\n\n return this.get('totalLength');\n };\n /**\n * Get point according to ratio\n * @param {number} ratio\n * @return {Point} point\n */\n\n\n Path.prototype.getPoint = function (ratio) {\n var tCache = this.get('tCache');\n\n if (!tCache) {\n this._calculateCurve();\n\n this._setTcache();\n\n tCache = this.get('tCache');\n }\n\n var subt;\n var index;\n var curve = this.get('curve');\n\n if (!tCache || tCache.length === 0) {\n if (curve) {\n return {\n x: curve[0][1],\n y: curve[0][2]\n };\n }\n\n return null;\n }\n\n each(tCache, function (v, i) {\n if (ratio >= v[0] && ratio <= v[1]) {\n subt = (ratio - v[0]) / (v[1] - v[0]);\n index = i;\n }\n });\n var seg = curve[index];\n\n if (isNil(seg) || isNil(index)) {\n return null;\n }\n\n var l = seg.length;\n var nextSeg = curve[index + 1];\n return CubicUtil.pointAt(seg[l - 2], seg[l - 1], nextSeg[1], nextSeg[2], nextSeg[3], nextSeg[4], nextSeg[5], nextSeg[6], subt);\n };\n\n Path.prototype._calculateCurve = function () {\n var path = this.attr().path;\n this.set('curve', PathUtil.pathToCurve(path));\n };\n\n Path.prototype._setTcache = function () {\n var totalLength = 0;\n var tempLength = 0; // 每段 curve 对应起止点的长度比例列表,形如: [[0, 0.25], [0.25, 0.6]. [0.6, 0.9], [0.9, 1]]\n\n var tCache = [];\n var segmentT;\n var segmentL;\n var segmentN;\n var l;\n var curve = this.get('curve');\n\n if (!curve) {\n return;\n }\n\n each(curve, function (segment, i) {\n segmentN = curve[i + 1];\n l = segment.length;\n\n if (segmentN) {\n totalLength += CubicUtil.length(segment[l - 2], segment[l - 1], segmentN[1], segmentN[2], segmentN[3], segmentN[4], segmentN[5], segmentN[6]) || 0;\n }\n });\n this.set('totalLength', totalLength);\n\n if (totalLength === 0) {\n this.set('tCache', []);\n return;\n }\n\n each(curve, function (segment, i) {\n segmentN = curve[i + 1];\n l = segment.length;\n\n if (segmentN) {\n segmentT = [];\n segmentT[0] = tempLength / totalLength;\n segmentL = CubicUtil.length(segment[l - 2], segment[l - 1], segmentN[1], segmentN[2], segmentN[3], segmentN[4], segmentN[5], segmentN[6]); // 当 path 不连续时,segmentL 可能为空,为空时需要作为 0 处理\n\n tempLength += segmentL || 0;\n segmentT[1] = tempLength / totalLength;\n tCache.push(segmentT);\n }\n });\n this.set('tCache', tCache);\n };\n /**\n * Get start tangent vector\n * @return {Array}\n */\n\n\n Path.prototype.getStartTangent = function () {\n var segments = this.getSegments();\n var result;\n\n if (segments.length > 1) {\n var startPoint = segments[0].currentPoint;\n var endPoint = segments[1].currentPoint;\n var tangent = segments[1].startTangent;\n result = [];\n\n if (tangent) {\n result.push([startPoint[0] - tangent[0], startPoint[1] - tangent[1]]);\n result.push([startPoint[0], startPoint[1]]);\n } else {\n result.push([endPoint[0], endPoint[1]]);\n result.push([startPoint[0], startPoint[1]]);\n }\n }\n\n return result;\n };\n /**\n * Get end tangent vector\n * @return {Array}\n */\n\n\n Path.prototype.getEndTangent = function () {\n var segments = this.getSegments();\n var length = segments.length;\n var result;\n\n if (length > 1) {\n var startPoint = segments[length - 2].currentPoint;\n var endPoint = segments[length - 1].currentPoint;\n var tangent = segments[length - 1].endTangent;\n result = [];\n\n if (tangent) {\n result.push([endPoint[0] - tangent[0], endPoint[1] - tangent[1]]);\n result.push([endPoint[0], endPoint[1]]);\n } else {\n result.push([startPoint[0], startPoint[1]]);\n result.push([endPoint[0], endPoint[1]]);\n }\n }\n\n return result;\n };\n\n return Path;\n}(ShapeBase);\n\nexport default Path;","import inLine from './line';\nexport default function inPolyline(points, lineWidth, x, y, isClose) {\n var count = points.length;\n\n if (count < 2) {\n return false;\n }\n\n for (var i = 0; i < count - 1; i++) {\n var x1 = points[i][0];\n var y1 = points[i][1];\n var x2 = points[i + 1][0];\n var y2 = points[i + 1][1];\n\n if (inLine(x1, y1, x2, y2, lineWidth, x, y)) {\n return true;\n }\n } // 如果封闭,则计算起始点和结束点的边\n\n\n if (isClose) {\n var first = points[0];\n var last = points[count - 1];\n\n if (inLine(first[0], first[1], last[0], last[1], lineWidth, x, y)) {\n return true;\n }\n }\n\n return false;\n}","/**\n * @fileoverview 多边形\n * @author dxq613@gmail.com\n */\nimport { __extends } from \"tslib\";\nimport ShapeBase from './base';\nimport inPolyline from '../util/in-stroke/polyline';\nimport isInPolygon from '../util/in-path/polygon';\n\nvar Polygon =\n/** @class */\nfunction (_super) {\n __extends(Polygon, _super);\n\n function Polygon() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Polygon.prototype.isInStrokeOrPath = function (x, y, isStroke, isFill, lineWidth) {\n var points = this.attr().points;\n var isHit = false;\n\n if (isStroke) {\n isHit = inPolyline(points, lineWidth, x, y, true);\n }\n\n if (!isHit && isFill) {\n isHit = isInPolygon(points, x, y); // isPointInPath(shape, x, y);\n }\n\n return isHit;\n };\n\n Polygon.prototype.createPath = function (context) {\n var attrs = this.attr();\n var points = attrs.points;\n\n if (points.length < 2) {\n return;\n }\n\n context.beginPath();\n\n for (var i = 0; i < points.length; i++) {\n var point = points[i];\n\n if (i === 0) {\n context.moveTo(point[0], point[1]);\n } else {\n context.lineTo(point[0], point[1]);\n }\n }\n\n context.closePath();\n };\n\n return Polygon;\n}(ShapeBase);\n\nexport default Polygon;","import { __assign, __extends } from \"tslib\";\nimport { Line as LineUtil } from '@antv/g-math';\nimport { Polyline as PolylineUtil } from '@antv/g-math';\nimport { each, isNil } from '@antv/util';\nimport ShapeBase from './base';\nimport inPolyline from '../util/in-stroke/polyline';\nimport * as ArrowUtil from '../util/arrow';\n\nvar PolyLine =\n/** @class */\nfunction (_super) {\n __extends(PolyLine, _super);\n\n function PolyLine() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n PolyLine.prototype.getDefaultAttrs = function () {\n var attrs = _super.prototype.getDefaultAttrs.call(this);\n\n return __assign(__assign({}, attrs), {\n startArrow: false,\n endArrow: false\n });\n };\n\n PolyLine.prototype.initAttrs = function (attrs) {\n this.setArrow();\n }; // 更新属性时,检测是否更改了 points\n\n\n PolyLine.prototype.onAttrChange = function (name, value, originValue) {\n _super.prototype.onAttrChange.call(this, name, value, originValue);\n\n this.setArrow();\n\n if (['points'].indexOf(name) !== -1) {\n this._resetCache();\n }\n };\n\n PolyLine.prototype._resetCache = function () {\n this.set('totalLength', null);\n this.set('tCache', null);\n };\n\n PolyLine.prototype.setArrow = function () {\n var attrs = this.attr();\n var _a = this.attrs,\n points = _a.points,\n startArrow = _a.startArrow,\n endArrow = _a.endArrow;\n var length = points.length;\n var x1 = points[0][0];\n var y1 = points[0][1];\n var x2 = points[length - 1][0];\n var y2 = points[length - 1][1];\n\n if (startArrow) {\n ArrowUtil.addStartArrow(this, attrs, points[1][0], points[1][1], x1, y1);\n }\n\n if (endArrow) {\n ArrowUtil.addEndArrow(this, attrs, points[length - 2][0], points[length - 2][1], x2, y2);\n }\n }; // 不允许 fill\n\n\n PolyLine.prototype.isFill = function () {\n return false;\n };\n\n PolyLine.prototype.isInStrokeOrPath = function (x, y, isStroke, isFill, lineWidth) {\n // 没有设置 stroke 不能被拾取, 没有线宽不能被拾取\n if (!isStroke || !lineWidth) {\n return false;\n }\n\n var points = this.attr().points;\n return inPolyline(points, lineWidth, x, y, false);\n }; // 始终填充\n\n\n PolyLine.prototype.isStroke = function () {\n return true;\n };\n\n PolyLine.prototype.createPath = function (context) {\n var _a = this.attr(),\n points = _a.points,\n startArrow = _a.startArrow,\n endArrow = _a.endArrow;\n\n var length = points.length;\n\n if (points.length < 2) {\n return;\n }\n\n var x1 = points[0][0];\n var y1 = points[0][1];\n var x2 = points[length - 1][0];\n var y2 = points[length - 1][1]; // 如果定义了箭头,并且是自定义箭头,线条相应缩进\n\n if (startArrow && startArrow.d) {\n var distance = ArrowUtil.getShortenOffset(x1, y1, points[1][0], points[1][1], startArrow.d);\n x1 += distance.dx;\n y1 += distance.dy;\n }\n\n if (endArrow && endArrow.d) {\n var distance = ArrowUtil.getShortenOffset(points[length - 2][0], points[length - 2][1], x2, y2, endArrow.d);\n x2 -= distance.dx;\n y2 -= distance.dy;\n }\n\n context.beginPath();\n context.moveTo(x1, y1);\n\n for (var i = 0; i < length - 1; i++) {\n var point = points[i];\n context.lineTo(point[0], point[1]);\n }\n\n context.lineTo(x2, y2);\n };\n\n PolyLine.prototype.afterDrawPath = function (context) {\n var startArrowShape = this.get('startArrowShape');\n var endArrowShape = this.get('endArrowShape');\n\n if (startArrowShape) {\n startArrowShape.draw(context);\n }\n\n if (endArrowShape) {\n endArrowShape.draw(context);\n }\n };\n /**\n * Get length of polyline\n * @return {number} length\n */\n\n\n PolyLine.prototype.getTotalLength = function () {\n var points = this.attr().points; // get totalLength from cache\n\n var totalLength = this.get('totalLength');\n\n if (!isNil(totalLength)) {\n return totalLength;\n }\n\n this.set('totalLength', PolylineUtil.length(points));\n return this.get('totalLength');\n };\n /**\n * Get point according to ratio\n * @param {number} ratio\n * @return {Point} point\n */\n\n\n PolyLine.prototype.getPoint = function (ratio) {\n var points = this.attr().points; // get tCache from cache\n\n var tCache = this.get('tCache');\n\n if (!tCache) {\n this._setTcache();\n\n tCache = this.get('tCache');\n }\n\n var subt;\n var index;\n each(tCache, function (v, i) {\n if (ratio >= v[0] && ratio <= v[1]) {\n subt = (ratio - v[0]) / (v[1] - v[0]);\n index = i;\n }\n });\n return LineUtil.pointAt(points[index][0], points[index][1], points[index + 1][0], points[index + 1][1], subt);\n };\n\n PolyLine.prototype._setTcache = function () {\n var points = this.attr().points;\n\n if (!points || points.length === 0) {\n return;\n }\n\n var totalLength = this.getTotalLength();\n\n if (totalLength <= 0) {\n return;\n }\n\n var tempLength = 0;\n var tCache = [];\n var segmentT;\n var segmentL;\n each(points, function (p, i) {\n if (points[i + 1]) {\n segmentT = [];\n segmentT[0] = tempLength / totalLength;\n segmentL = LineUtil.length(p[0], p[1], points[i + 1][0], points[i + 1][1]);\n tempLength += segmentL;\n segmentT[1] = tempLength / totalLength;\n tCache.push(segmentT);\n }\n });\n this.set('tCache', tCache);\n };\n /**\n * Get start tangent vector\n * @return {Array}\n */\n\n\n PolyLine.prototype.getStartTangent = function () {\n var points = this.attr().points;\n var result = [];\n result.push([points[1][0], points[1][1]]);\n result.push([points[0][0], points[0][1]]);\n return result;\n };\n /**\n * Get end tangent vector\n * @return {Array}\n */\n\n\n PolyLine.prototype.getEndTangent = function () {\n var points = this.attr().points;\n var l = points.length - 1;\n var result = [];\n result.push([points[l - 1][0], points[l - 1][1]]);\n result.push([points[l][0], points[l][1]]);\n return result;\n };\n\n return PolyLine;\n}(ShapeBase);\n\nexport default PolyLine;","/**\n * @fileoverview 矩形\n * @author dxq613@gmail.com\n */\nimport { __assign, __extends } from \"tslib\";\nimport ShapeBase from './base';\nimport { parseRadius } from '../util/parse';\nimport { inBox } from '../util/util';\nimport inRect from '../util/in-stroke/rect';\nimport inRectWithRadius from '../util/in-stroke/rect-radius';\nimport isPointInPath from '../util/in-path/point-in-path';\n\nvar Rect =\n/** @class */\nfunction (_super) {\n __extends(Rect, _super);\n\n function Rect() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Rect.prototype.getDefaultAttrs = function () {\n var attrs = _super.prototype.getDefaultAttrs.call(this);\n\n return __assign(__assign({}, attrs), {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n radius: 0\n });\n };\n\n Rect.prototype.isInStrokeOrPath = function (x, y, isStroke, isFill, lineWidth) {\n var attrs = this.attr();\n var minX = attrs.x;\n var minY = attrs.y;\n var width = attrs.width;\n var height = attrs.height;\n var radius = attrs.radius; // 无圆角时的策略\n\n if (!radius) {\n var halfWidth = lineWidth / 2; // 同时填充和带有边框\n\n if (isFill && isStroke) {\n return inBox(minX - halfWidth, minY - halfWidth, width + halfWidth, height + halfWidth, x, y);\n } // 仅填充\n\n\n if (isFill) {\n return inBox(minX, minY, width, height, x, y);\n }\n\n if (isStroke) {\n return inRect(minX, minY, width, height, lineWidth, x, y);\n }\n } else {\n var isHit = false;\n\n if (isStroke) {\n isHit = inRectWithRadius(minX, minY, width, height, radius, lineWidth, x, y);\n } // 仅填充时带有圆角的矩形直接通过图形拾取\n // 以后可以改成纯数学的近似拾取,将圆弧切割成多边形\n\n\n if (!isHit && isFill) {\n isHit = isPointInPath(this, x, y);\n }\n\n return isHit;\n }\n };\n\n Rect.prototype.createPath = function (context) {\n var attrs = this.attr();\n var x = attrs.x;\n var y = attrs.y;\n var width = attrs.width;\n var height = attrs.height;\n var radius = attrs.radius;\n context.beginPath();\n\n if (radius === 0) {\n // 改成原生的rect方法\n context.rect(x, y, width, height);\n } else {\n var _a = parseRadius(radius),\n r1 = _a[0],\n r2 = _a[1],\n r3 = _a[2],\n r4 = _a[3];\n\n context.moveTo(x + r1, y);\n context.lineTo(x + width - r2, y);\n r2 !== 0 && context.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\n context.lineTo(x + width, y + height - r3);\n r3 !== 0 && context.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\n context.lineTo(x + r4, y + height);\n r4 !== 0 && context.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\n context.lineTo(x, y + r1);\n r1 !== 0 && context.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\n context.closePath();\n }\n };\n\n return Rect;\n}(ShapeBase);\n\nexport default Rect;","import inLine from './line';\nimport inArc from './arc';\nexport default function rectWithRadius(minX, minY, width, height, radius, lineWidth, x, y) {\n var halfWidth = lineWidth / 2;\n return inLine(minX + radius, minY, minX + width - radius, minY, lineWidth, x, y) || inLine(minX + width, minY + radius, minX + width, minY + height - radius, lineWidth, x, y) || inLine(minX + width - radius, minY + height, minX + radius, minY + height, lineWidth, x, y) || inLine(minX, minY + height - radius, minX, minY + radius, lineWidth, x, y) || inArc(minX + width - radius, minY + radius, radius, 1.5 * Math.PI, 2 * Math.PI, lineWidth, x, y) || inArc(minX + width - radius, minY + height - radius, radius, 0, 0.5 * Math.PI, lineWidth, x, y) || inArc(minX + radius, minY + height - radius, radius, 0.5 * Math.PI, Math.PI, lineWidth, x, y) || inArc(minX + radius, minY + radius, radius, Math.PI, 1.5 * Math.PI, lineWidth, x, y);\n}","import { inBox } from '../util';\nexport default function inRect(minX, minY, width, height, lineWidth, x, y) {\n var halfWidth = lineWidth / 2; // 将四个边看做矩形来检测,比边的检测算法要快\n\n return inBox(minX - halfWidth, minY - halfWidth, width, lineWidth, x, y) || // 上边\n inBox(minX + width - halfWidth, minY - halfWidth, lineWidth, height, x, y) || // 右边\n inBox(minX + halfWidth, minY + height - halfWidth, width, lineWidth, x, y) || // 下边\n inBox(minX - halfWidth, minY + halfWidth, lineWidth, height, x, y); // 左边\n}","/**\n * @fileoverview 文本\n * @author dxq613@gmail.com\n */\nimport { __assign, __extends } from \"tslib\";\nimport ShapeBase from './base';\nimport { isNil, isString, each } from '../util/util';\nimport { getTextHeight, assembleFont } from '@antv/g-base';\n\nvar Text =\n/** @class */\nfunction (_super) {\n __extends(Text, _super);\n\n function Text() {\n return _super !== null && _super.apply(this, arguments) || this;\n } // 默认文本属性\n\n\n Text.prototype.getDefaultAttrs = function () {\n var attrs = _super.prototype.getDefaultAttrs.call(this);\n\n return __assign(__assign({}, attrs), {\n x: 0,\n y: 0,\n text: null,\n fontSize: 12,\n fontFamily: 'sans-serif',\n fontStyle: 'normal',\n fontWeight: 'normal',\n fontVariant: 'normal',\n textAlign: 'start',\n textBaseline: 'bottom'\n });\n }; // 仅仅使用包围盒检测来进行拾取\n\n\n Text.prototype.isOnlyHitBox = function () {\n return true;\n }; // 初始化时组合 font,同时判断 text 是否换行\n\n\n Text.prototype.initAttrs = function (attrs) {\n this._assembleFont();\n\n if (attrs.text) {\n this._setText(attrs.text);\n }\n }; // 组装字体\n\n\n Text.prototype._assembleFont = function () {\n var attrs = this.attrs;\n attrs.font = assembleFont(attrs);\n }; // 如果文本换行,则缓存数组\n\n\n Text.prototype._setText = function (text) {\n var textArr = null;\n\n if (isString(text) && text.indexOf('\\n') !== -1) {\n textArr = text.split('\\n');\n }\n\n this.set('textArr', textArr);\n }; // 更新属性时,检测是否更改了 font、text\n\n\n Text.prototype.onAttrChange = function (name, value, originValue) {\n _super.prototype.onAttrChange.call(this, name, value, originValue);\n\n if (name.startsWith('font')) {\n this._assembleFont();\n }\n\n if (name === 'text') {\n this._setText(value);\n }\n }; // 这个方法在 text 时没有可以做的事情,如果要支持文字背景时可以考虑\n // createPath(context) {\n // }\n // 如果文本多行,需要获取文本间距\n\n\n Text.prototype._getSpaceingY = function () {\n var attrs = this.attrs;\n var lineHeight = attrs.lineHeight;\n var fontSize = attrs.fontSize * 1;\n return lineHeight ? lineHeight - fontSize : fontSize * 0.14;\n }; // 绘制文本,考虑多行的场景\n\n\n Text.prototype._drawTextArr = function (context, textArr, isFill) {\n var attrs = this.attrs;\n var textBaseline = attrs.textBaseline;\n var x = attrs.x;\n var y = attrs.y;\n var fontSize = attrs.fontSize * 1;\n\n var spaceingY = this._getSpaceingY();\n\n var height = getTextHeight(attrs.text, attrs.fontSize, attrs.lineHeight);\n var subY;\n each(textArr, function (subText, index) {\n subY = y + index * (spaceingY + fontSize) - height + fontSize; // bottom;\n\n if (textBaseline === 'middle') subY += height - fontSize - (height - fontSize) / 2;\n if (textBaseline === 'top') subY += height - fontSize;\n\n if (!isNil(subText)) {\n if (isFill) {\n context.fillText(subText, x, subY);\n } else {\n context.strokeText(subText, x, subY);\n }\n }\n });\n }; // 绘制文本,同时考虑填充和绘制边框\n\n\n Text.prototype._drawText = function (context, isFill) {\n var attrs = this.attr();\n var x = attrs.x;\n var y = attrs.y;\n var textArr = this.get('textArr');\n\n if (textArr) {\n this._drawTextArr(context, textArr, isFill);\n } else {\n var text = attrs.text;\n\n if (!isNil(text)) {\n if (isFill) {\n context.fillText(text, x, y);\n } else {\n context.strokeText(text, x, y);\n }\n }\n }\n }; // 复写绘制和填充的逻辑:对于文本,应该先绘制边框,再进行填充\n\n\n Text.prototype.strokeAndFill = function (context) {\n var _a = this.attrs,\n lineWidth = _a.lineWidth,\n opacity = _a.opacity,\n strokeOpacity = _a.strokeOpacity,\n fillOpacity = _a.fillOpacity;\n\n if (this.isStroke()) {\n if (lineWidth > 0) {\n if (!isNil(strokeOpacity) && strokeOpacity !== 1) {\n context.globalAlpha = opacity;\n }\n\n this.stroke(context);\n }\n }\n\n if (this.isFill()) {\n if (!isNil(fillOpacity) && fillOpacity !== 1) {\n context.globalAlpha = fillOpacity;\n this.fill(context);\n context.globalAlpha = opacity;\n } else {\n this.fill(context);\n }\n }\n\n this.afterDrawPath(context);\n }; // 复写填充逻辑\n\n\n Text.prototype.fill = function (context) {\n this._drawText(context, true);\n }; // 复写绘制边框的逻辑\n\n\n Text.prototype.stroke = function (context) {\n this._drawText(context, false);\n };\n\n return Text;\n}(ShapeBase);\n\nexport default Text;","import { isAllowCapture, multiplyVec2, invert } from '@antv/g-base';\n\nfunction invertFromMatrix(v, matrix) {\n if (matrix) {\n var invertMatrix = invert(matrix);\n return multiplyVec2(invertMatrix, v);\n }\n\n return v;\n}\n\nfunction getRefXY(element, x, y) {\n // @ts-ignore\n var totalMatrix = element.getTotalMatrix();\n\n if (totalMatrix) {\n var _a = invertFromMatrix([x, y, 1], totalMatrix),\n refX = _a[0],\n refY = _a[1];\n\n return [refX, refY];\n }\n\n return [x, y];\n} // 拾取前的检测,只有通过检测才能继续拾取\n\n\nfunction preTest(element, x, y) {\n // @ts-ignore\n if (element.isCanvas && element.isCanvas()) {\n return true;\n } // 不允许被拾取,则返回 null\n // @ts-ignore\n\n\n if (!isAllowCapture(element) || element.cfg.isInView === false) {\n return false;\n }\n\n if (element.cfg.clipShape) {\n // 如果存在 clip\n var _a = getRefXY(element, x, y),\n refX = _a[0],\n refY = _a[1];\n\n if (element.isClipped(refX, refY)) {\n return false;\n }\n } // @ts-ignore ,这个地方调用过于频繁\n\n\n var bbox = element.cfg.cacheCanvasBBox || element.getCanvasBBox(); // 如果没有缓存 bbox,则说明不可见\n // 注释掉的这段可能会加速拾取,上面的语句改写成 const bbox = element.cfg.cacheCanvasBBox;\n // 这时候的拾取假设图形/分组在上一次绘制都在视窗内,但是上面已经判定了 isInView 所以意义不大\n // 现在还调用 element.getCanvasBBox(); 一个很大的原因是便于单元测试\n // if (!bbox) {\n // return false;\n // }\n\n if (!(x >= bbox.minX && x <= bbox.maxX && y >= bbox.minY && y <= bbox.maxY)) {\n return false;\n }\n\n return true;\n} // 这个方法复写了 g-base 的 getShape\n\n\nexport function getShape(container, x, y) {\n // 没有通过检测,则返回 null\n if (!preTest(container, x, y)) {\n return null;\n }\n\n var shape = null;\n var children = container.getChildren();\n var count = children.length;\n\n for (var i = count - 1; i >= 0; i--) {\n var child = children[i];\n\n if (child.isGroup()) {\n shape = getShape(child, x, y);\n } else if (preTest(child, x, y)) {\n var curShape = child;\n\n var _a = getRefXY(child, x, y),\n refX = _a[0],\n refY = _a[1]; // @ts-ignore\n\n\n if (curShape.isInShape(refX, refY)) {\n shape = child;\n }\n }\n\n if (shape) {\n break;\n }\n }\n\n return shape;\n}","import { __extends } from \"tslib\";\nimport { AbstractCanvas } from '@antv/g-base';\nimport { getShape } from './util/hit';\nimport * as Shape from './shape';\nimport Group from './group';\nimport { each, getPixelRatio, requestAnimationFrame, clearAnimationFrame } from './util/util';\nimport { applyAttrsToContext, drawChildren, getMergedRegion, mergeView, checkRefresh, clearChanged } from './util/draw';\n\nvar Canvas =\n/** @class */\nfunction (_super) {\n __extends(Canvas, _super);\n\n function Canvas() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Canvas.prototype.getDefaultCfg = function () {\n var cfg = _super.prototype.getDefaultCfg.call(this); // 设置渲染引擎为 canvas,只读属性\n\n\n cfg['renderer'] = 'canvas'; // 是否自动绘制,不需要用户调用 draw 方法\n\n cfg['autoDraw'] = true; // 是否允许局部刷新图表\n\n cfg['localRefresh'] = true;\n cfg['refreshElements'] = []; // 是否在视图内自动裁剪\n\n cfg['clipView'] = true; // 是否使用快速拾取的方案,默认为 false,上层可以打开\n\n cfg['quickHit'] = false;\n return cfg;\n };\n /**\n * 一些方法调用会引起画布变化\n * @param {ChangeType} changeType 改变的类型\n */\n\n\n Canvas.prototype.onCanvasChange = function (changeType) {\n /**\n * 触发画布更新的三种 changeType\n * 1. attr: 修改画布的绘图属性\n * 2. sort: 画布排序,图形的层次会发生变化\n * 3. changeSize: 改变画布大小\n */\n if (changeType === 'attr' || changeType === 'sort' || changeType === 'changeSize') {\n this.set('refreshElements', [this]);\n this.draw();\n }\n };\n\n Canvas.prototype.getShapeBase = function () {\n return Shape;\n };\n\n Canvas.prototype.getGroupBase = function () {\n return Group;\n };\n /**\n * 获取屏幕像素比\n */\n\n\n Canvas.prototype.getPixelRatio = function () {\n var pixelRatio = this.get('pixelRatio') || getPixelRatio(); // 不足 1 的取 1,超出 1 的取整\n\n return pixelRatio >= 1 ? Math.ceil(pixelRatio) : 1;\n };\n\n Canvas.prototype.getViewRange = function () {\n return {\n minX: 0,\n minY: 0,\n maxX: this.cfg.width,\n maxY: this.cfg.height\n };\n }; // 复写基类的方法生成标签\n\n\n Canvas.prototype.createDom = function () {\n var element = document.createElement('canvas');\n var context = element.getContext('2d'); // 缓存 context 对象\n\n this.set('context', context);\n return element;\n };\n\n Canvas.prototype.setDOMSize = function (width, height) {\n _super.prototype.setDOMSize.call(this, width, height);\n\n var context = this.get('context');\n var el = this.get('el');\n var pixelRatio = this.getPixelRatio();\n el.width = pixelRatio * width;\n el.height = pixelRatio * height; // 设置 canvas 元素的宽度和高度,会重置缩放,因此 context.scale 需要在每次设置宽、高后调用\n\n if (pixelRatio > 1) {\n context.scale(pixelRatio, pixelRatio);\n }\n }; // 复写基类方法\n\n\n Canvas.prototype.clear = function () {\n _super.prototype.clear.call(this);\n\n this._clearFrame(); // 需要清理掉延迟绘制的帧\n\n\n var context = this.get('context');\n var element = this.get('el');\n context.clearRect(0, 0, element.width, element.height);\n };\n\n Canvas.prototype.getShape = function (x, y) {\n var shape;\n\n if (this.get('quickHit')) {\n shape = getShape(this, x, y);\n } else {\n shape = _super.prototype.getShape.call(this, x, y, null);\n }\n\n return shape;\n }; // 对绘制区域边缘取整,避免浮点数问题\n\n\n Canvas.prototype._getRefreshRegion = function () {\n var elements = this.get('refreshElements');\n var viewRegion = this.getViewRange();\n var region; // 如果是当前画布整体发生了变化,则直接重绘整个画布\n\n if (elements.length && elements[0] === this) {\n region = viewRegion;\n } else {\n region = getMergedRegion(elements);\n\n if (region) {\n region.minX = Math.floor(region.minX);\n region.minY = Math.floor(region.minY);\n region.maxX = Math.ceil(region.maxX);\n region.maxY = Math.ceil(region.maxY);\n region.maxY += 1; // 在很多环境下字体的高低会不一致,附加一像素,避免残影\n\n var clipView = this.get('clipView'); // 自动裁剪不在 view 内的区域\n\n if (clipView) {\n region = mergeView(region, viewRegion);\n }\n }\n }\n\n return region;\n };\n /**\n * 刷新图形元素,这里仅仅是放入队列,下次绘制时进行绘制\n * @param {IElement} element 图形元素\n */\n\n\n Canvas.prototype.refreshElement = function (element) {\n var refreshElements = this.get('refreshElements');\n refreshElements.push(element); // if (this.get('autoDraw')) {\n // this._startDraw();\n // }\n }; // 清理还在进行的绘制\n\n\n Canvas.prototype._clearFrame = function () {\n var drawFrame = this.get('drawFrame');\n\n if (drawFrame) {\n // 如果全部渲染时,存在局部渲染,则抛弃掉局部渲染\n clearAnimationFrame(drawFrame);\n this.set('drawFrame', null);\n this.set('refreshElements', []);\n }\n }; // 手工调用绘制接口\n\n\n Canvas.prototype.draw = function () {\n var drawFrame = this.get('drawFrame');\n\n if (this.get('autoDraw') && drawFrame) {\n return;\n }\n\n this._startDraw();\n }; // 绘制所有图形\n\n\n Canvas.prototype._drawAll = function () {\n var context = this.get('context');\n var element = this.get('el');\n var children = this.getChildren();\n context.clearRect(0, 0, element.width, element.height);\n applyAttrsToContext(context, this);\n drawChildren(context, children); // 对于 https://github.com/antvis/g/issues/422 的场景,全局渲染的模式下也会记录更新的元素队列,因此全局渲染完后也需要置空\n\n this.set('refreshElements', []);\n }; // 绘制局部\n\n\n Canvas.prototype._drawRegion = function () {\n var context = this.get('context');\n var refreshElements = this.get('refreshElements');\n var children = this.getChildren();\n\n var region = this._getRefreshRegion(); // 需要注意可能没有 region 的场景\n // 一般发生在设置了 localRefresh ,在没有图形发生变化的情况下,用户调用了 draw\n\n\n if (region) {\n // 清理指定区域\n context.clearRect(region.minX, region.minY, region.maxX - region.minX, region.maxY - region.minY); // 保存上下文,设置 clip\n\n context.save();\n context.beginPath();\n context.rect(region.minX, region.minY, region.maxX - region.minX, region.maxY - region.minY);\n context.clip();\n applyAttrsToContext(context, this); // 确认更新的元素,这个优化可以提升 10 倍左右的性能,10W 个带有 group 的节点,局部渲染会从 90ms 下降到 5-6 ms\n\n checkRefresh(this, children, region); // 绘制子元素\n\n drawChildren(context, children, region);\n context.restore();\n } else if (refreshElements.length) {\n // 防止发生改变的 elements 没有 region 的场景,这会发生在多个情况下\n // 1. 空的 group\n // 2. 所有 elements 没有在绘图区域\n // 3. group 下面的 elements 隐藏掉\n // 如果不进行清理 hasChanged 的状态会不正确\n clearChanged(refreshElements);\n }\n\n each(refreshElements, function (element) {\n if (element.get('hasChanged')) {\n // 在视窗外的 Group 元素会加入到更新队列里,但实际却没有执行 draw() 逻辑,也就没有清除 hasChanged 标记\n // 即已经重绘完、但 hasChanged 标记没有清除的元素,需要统一清除掉。主要是 Group 存在问题,具体原因待排查\n element.set('hasChanged', false);\n }\n });\n this.set('refreshElements', []);\n }; // 触发绘制\n\n\n Canvas.prototype._startDraw = function () {\n var _this = this;\n\n var drawFrame = this.get('drawFrame');\n\n if (!drawFrame) {\n drawFrame = requestAnimationFrame(function () {\n if (_this.get('localRefresh')) {\n _this._drawRegion();\n } else {\n _this._drawAll();\n }\n\n _this.set('drawFrame', null);\n });\n this.set('drawFrame', drawFrame);\n }\n };\n\n Canvas.prototype.skipDraw = function () {};\n\n Canvas.prototype.removeDom = function () {\n var el = this.get('el'); // 需要清理 canvas 画布内容,否则ios下 创建的canvas垃圾未回收,导致Total canvas memory use exceeds问题\n // 相关问题列表\n // https://stackoverflow.com/questions/52532614/total-canvas-memory-use-exceeds-the-maximum-limit-safari-12\n // https://github.com/openlayers/openlayers/issues/9291\n\n el.width = 0;\n el.height = 0;\n el.parentNode.removeChild(el);\n };\n\n return Canvas;\n}(AbstractCanvas);\n\nexport default Canvas;","import * as Shape from './shape';\nexport * from '@antv/g-base';\nexport { default as Canvas } from './canvas';\nexport { default as Group } from './group';\nexport { Shape };\nexport { default as getArcParams } from './util/arc-params';\nexport var version = '0.5.12';","export var SHAPE_TO_TAGS = {\n rect: 'path',\n circle: 'circle',\n line: 'line',\n path: 'path',\n marker: 'path',\n text: 'text',\n polyline: 'polyline',\n polygon: 'polygon',\n image: 'image',\n ellipse: 'ellipse',\n dom: 'foreignObject'\n};\nexport var SVG_ATTR_MAP = {\n opacity: 'opacity',\n fillStyle: 'fill',\n fill: 'fill',\n fillOpacity: 'fill-opacity',\n strokeStyle: 'stroke',\n strokeOpacity: 'stroke-opacity',\n stroke: 'stroke',\n x: 'x',\n y: 'y',\n r: 'r',\n rx: 'rx',\n ry: 'ry',\n width: 'width',\n height: 'height',\n x1: 'x1',\n x2: 'x2',\n y1: 'y1',\n y2: 'y2',\n lineCap: 'stroke-linecap',\n lineJoin: 'stroke-linejoin',\n lineWidth: 'stroke-width',\n lineDash: 'stroke-dasharray',\n lineDashOffset: 'stroke-dashoffset',\n miterLimit: 'stroke-miterlimit',\n font: 'font',\n fontSize: 'font-size',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n fontFamily: 'font-family',\n startArrow: 'marker-start',\n endArrow: 'marker-end',\n path: 'd',\n \"class\": 'class',\n id: 'id',\n style: 'style',\n preserveAspectRatio: 'preserveAspectRatio'\n};\nexport var EVENTS = ['click', 'mousedown', 'mouseup', 'dblclick', 'contextmenu', 'mouseenter', 'mouseleave', 'mouseover', 'mouseout', 'mousemove', 'wheel'];","import { toArray } from '@antv/util';\nimport { SHAPE_TO_TAGS } from '../constant';\n/**\n * 创建并返回图形的 svg 元素\n * @param type svg类型\n */\n\nexport function createSVGElement(type) {\n return document.createElementNS('http://www.w3.org/2000/svg', type);\n}\n/**\n * 创建并返回图形的 dom 元素\n * @param {IShape} shape 图形\n * @return {SVGElement}\n */\n\nexport function createDom(shape) {\n var type = SHAPE_TO_TAGS[shape.type];\n var parent = shape.getParent();\n\n if (!type) {\n throw new Error(\"the type \" + shape.type + \" is not supported by svg\");\n }\n\n var element = createSVGElement(type);\n\n if (shape.get('id')) {\n element.id = shape.get('id');\n }\n\n shape.set('el', element);\n shape.set('attrs', {}); // 对于 defs 下的 dom 节点,parent 为空,通过 context 统一挂载到 defs 节点下\n\n if (parent) {\n var parentNode = parent.get('el');\n\n if (parentNode) {\n parentNode.appendChild(element);\n } else {\n // parentNode maybe null for group\n parentNode = parent.createDom();\n parent.set('el', parentNode);\n parentNode.appendChild(element);\n }\n }\n\n return element;\n}\n/**\n * 对 dom 元素进行排序\n * @param {IElement} element 元素\n * @param {sorter} function 排序函数\n */\n\nexport function sortDom(element, sorter) {\n var el = element.get('el');\n var childList = toArray(el.children).sort(sorter); // create empty fragment\n\n var fragment = document.createDocumentFragment();\n childList.forEach(function (child) {\n fragment.appendChild(child);\n });\n el.appendChild(fragment);\n}\n/**\n * 将 dom 元素移动到父元素下的指定位置\n * @param {SVGElement} element dom 元素\n * @param {number} targetIndex 目标位置(从 0 开始)\n */\n\nexport function moveTo(element, targetIndex) {\n var parentNode = element.parentNode;\n var siblings = Array.from(parentNode.childNodes).filter( // 要求为元素节点,且不能为 defs 节点\n function (node) {\n return node.nodeType === 1 && node.nodeName.toLowerCase() !== 'defs';\n }); // 获取目标节点\n\n var target = siblings[targetIndex];\n var currentIndex = siblings.indexOf(element); // 如果目标节点存在\n\n if (target) {\n // 当前索引 > 目标索引,直接插入到目标节点之前即可\n if (currentIndex > targetIndex) {\n parentNode.insertBefore(element, target);\n } else if (currentIndex < targetIndex) {\n // 当前索引 < 目标索引\n // 获取目标节点的下一个节点\n var targetNext = siblings[targetIndex + 1]; // 如果目标节点的下一个节点存在,插入到该节点之前\n\n if (targetNext) {\n parentNode.insertBefore(element, targetNext);\n } else {\n // 如果该节点不存在,则追加到末尾\n parentNode.appendChild(element);\n }\n }\n } else {\n parentNode.appendChild(element);\n }\n}","import { createDom } from './dom';\nexport function setShadow(model, context) {\n var el = model.cfg.el;\n var attrs = model.attr();\n var cfg = {\n dx: attrs.shadowOffsetX,\n dy: attrs.shadowOffsetY,\n blur: attrs.shadowBlur,\n color: attrs.shadowColor\n };\n\n if (!cfg.dx && !cfg.dy && !cfg.blur && !cfg.color) {\n el.removeAttribute('filter');\n } else {\n var id = context.find('filter', cfg);\n\n if (!id) {\n id = context.addShadow(cfg);\n }\n\n el.setAttribute('filter', \"url(#\" + id + \")\");\n }\n}\nexport function setTransform(model) {\n var matrix = model.attr().matrix;\n\n if (matrix) {\n var el = model.cfg.el;\n var transform = [];\n\n for (var i = 0; i < 9; i += 3) {\n transform.push(matrix[i] + \",\" + matrix[i + 1]);\n }\n\n transform = transform.join(',');\n\n if (transform.indexOf('NaN') === -1) {\n el.setAttribute('transform', \"matrix(\" + transform + \")\");\n } else {\n console.warn('invalid matrix:', matrix);\n }\n }\n}\nexport function setClip(model, context) {\n var clip = model.getClip();\n var el = model.get('el');\n\n if (!clip) {\n el.removeAttribute('clip-path');\n } else if (clip && !el.hasAttribute('clip-path')) {\n createDom(clip);\n clip.createPath(context);\n var id = context.addClip(clip);\n el.setAttribute('clip-path', \"url(#\" + id + \")\");\n }\n}","import { setTransform, setClip } from './svg';\nimport { sortDom, moveTo } from './dom';\nexport function drawChildren(context, children) {\n children.forEach(function (child) {\n child.draw(context);\n });\n}\n/**\n * 更新元素,包括 group 和 shape\n * @param {IElement} element SVG 元素\n * @param {ChangeType} changeType 更新类型\n */\n\nexport function refreshElement(element, changeType) {\n // 对于还没有挂载到画布下的元素,canvas 可能为空\n var canvas = element.get('canvas'); // 只有挂载到画布下,才对元素进行实际渲染\n\n if (canvas && canvas.get('autoDraw')) {\n var context = canvas.get('context');\n var parent_1 = element.getParent();\n var parentChildren = parent_1 ? parent_1.getChildren() : [canvas];\n var el = element.get('el');\n\n if (changeType === 'remove') {\n var isClipShape = element.get('isClipShape'); // 对于 clip,不仅需要将 clipShape 对于的 SVG 元素删除,还需要将上层的 clipPath 元素也删除\n\n if (isClipShape) {\n var clipPathEl = el && el.parentNode;\n var defsEl = clipPathEl && clipPathEl.parentNode;\n\n if (clipPathEl && defsEl) {\n defsEl.removeChild(clipPathEl);\n }\n } else if (el && el.parentNode) {\n el.parentNode.removeChild(el);\n }\n } else if (changeType === 'show') {\n el.setAttribute('visibility', 'visible');\n } else if (changeType === 'hide') {\n el.setAttribute('visibility', 'hidden');\n } else if (changeType === 'zIndex') {\n moveTo(el, parentChildren.indexOf(element));\n } else if (changeType === 'sort') {\n var children_1 = element.get('children');\n\n if (children_1 && children_1.length) {\n sortDom(element, function (a, b) {\n return children_1.indexOf(a) - children_1.indexOf(b) ? 1 : 0;\n });\n }\n } else if (changeType === 'clear') {\n // el maybe null for group\n if (el) {\n el.innerHTML = '';\n }\n } else if (changeType === 'matrix') {\n setTransform(element);\n } else if (changeType === 'clip') {\n setClip(element, context);\n } else if (changeType === 'attr') {// 已在 afterAttrsChange 进行了处理,此处 do nothing\n } else if (changeType === 'add') {\n element.draw(context);\n }\n }\n}","import { __extends } from \"tslib\";\nimport { AbstractGroup } from '@antv/g-base';\nimport { each } from '@antv/util';\nimport * as Shape from './shape';\nimport { drawChildren, refreshElement } from './util/draw';\nimport { setClip, setTransform } from './util/svg';\nimport { SVG_ATTR_MAP } from './constant';\nimport { createSVGElement } from './util/dom';\n\nvar Group =\n/** @class */\nfunction (_super) {\n __extends(Group, _super);\n\n function Group() {\n return _super !== null && _super.apply(this, arguments) || this;\n } // SVG 中分组对应实体标签 \n\n\n Group.prototype.isEntityGroup = function () {\n return true;\n };\n\n Group.prototype.createDom = function () {\n var element = createSVGElement('g');\n this.set('el', element);\n var parent = this.getParent();\n\n if (parent) {\n var parentNode = parent.get('el');\n\n if (parentNode) {\n parentNode.appendChild(element);\n } else {\n // parentNode maybe null for group\n parentNode = parent.createDom();\n parent.set('el', parentNode);\n parentNode.appendChild(element);\n }\n }\n\n return element;\n }; // 覆盖基类的 afterAttrsChange 方法\n\n\n Group.prototype.afterAttrsChange = function (targetAttrs) {\n _super.prototype.afterAttrsChange.call(this, targetAttrs);\n\n var canvas = this.get('canvas'); // 只有挂载到画布下,才对元素进行实际渲染\n\n if (canvas && canvas.get('autoDraw')) {\n var context = canvas.get('context');\n this.createPath(context, targetAttrs);\n }\n };\n /**\n * 一些方法调用会引起画布变化\n * @param {ChangeType} changeType 改变的类型\n */\n\n\n Group.prototype.onCanvasChange = function (changeType) {\n refreshElement(this, changeType);\n };\n\n Group.prototype.getShapeBase = function () {\n return Shape;\n };\n\n Group.prototype.getGroupBase = function () {\n return Group;\n };\n\n Group.prototype.draw = function (context) {\n var children = this.getChildren();\n var el = this.get('el');\n\n if (this.get('destroyed')) {\n if (el) {\n el.parentNode.removeChild(el);\n }\n } else {\n if (!el) {\n this.createDom();\n }\n\n setClip(this, context);\n this.createPath(context);\n\n if (children.length) {\n drawChildren(context, children);\n }\n }\n };\n /**\n * 绘制分组的路径\n * @param {Defs} context 上下文\n * @param {ShapeAttrs} targetAttrs 渲染的目标属性\n */\n\n\n Group.prototype.createPath = function (context, targetAttrs) {\n var attrs = this.attr();\n var el = this.get('el');\n each(targetAttrs || attrs, function (value, attr) {\n if (SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n setTransform(this);\n };\n\n return Group;\n}(AbstractGroup);\n\nexport default Group;","import { __assign, __extends } from \"tslib\";\nimport { AbstractShape } from '@antv/g-base';\nimport { setShadow, setTransform, setClip } from '../util/svg';\nimport { createDom } from '../util/dom';\nimport { refreshElement } from '../util/draw';\nimport { SVG_ATTR_MAP } from '../constant';\nimport * as Shape from './index';\nimport Group from '../group';\nimport { getBBoxMethod } from '@antv/g-base';\n\nvar ShapeBase =\n/** @class */\nfunction (_super) {\n __extends(ShapeBase, _super);\n\n function ShapeBase() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'svg';\n _this.canFill = false;\n _this.canStroke = false;\n return _this;\n }\n\n ShapeBase.prototype.getDefaultAttrs = function () {\n var attrs = _super.prototype.getDefaultAttrs.call(this); // 设置默认值\n\n\n return __assign(__assign({}, attrs), {\n lineWidth: 1,\n lineAppendWidth: 0,\n strokeOpacity: 1,\n fillOpacity: 1\n });\n }; // 覆盖基类的 afterAttrsChange 方法\n\n\n ShapeBase.prototype.afterAttrsChange = function (targetAttrs) {\n _super.prototype.afterAttrsChange.call(this, targetAttrs);\n\n var canvas = this.get('canvas'); // 只有挂载到画布下,才对元素进行实际渲染\n\n if (canvas && canvas.get('autoDraw')) {\n var context = canvas.get('context');\n this.draw(context, targetAttrs);\n }\n };\n\n ShapeBase.prototype.getShapeBase = function () {\n return Shape;\n };\n\n ShapeBase.prototype.getGroupBase = function () {\n return Group;\n };\n /**\n * 一些方法调用会引起画布变化\n * @param {ChangeType} changeType 改变的类型\n */\n\n\n ShapeBase.prototype.onCanvasChange = function (changeType) {\n refreshElement(this, changeType);\n };\n\n ShapeBase.prototype.calculateBBox = function () {\n var el = this.get('el');\n var bbox = null; // 包围盒计算依赖于绘制,如果还没有生成对应的 Dom 元素,则包围盒的长宽均为 0\n\n if (el) {\n bbox = el.getBBox();\n } else {\n var bboxMethod = getBBoxMethod(this.get('type'));\n\n if (bboxMethod) {\n bbox = bboxMethod(this);\n }\n }\n\n if (bbox) {\n var x = bbox.x,\n y = bbox.y,\n width = bbox.width,\n height = bbox.height;\n var lineWidth = this.getHitLineWidth();\n var halfWidth = lineWidth / 2;\n var minX = x - halfWidth;\n var minY = y - halfWidth;\n var maxX = x + width + halfWidth;\n var maxY = y + height + halfWidth;\n return {\n x: minX,\n y: minY,\n minX: minX,\n minY: minY,\n maxX: maxX,\n maxY: maxY,\n width: width + lineWidth,\n height: height + lineWidth\n };\n }\n\n return {\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 };\n\n ShapeBase.prototype.isFill = function () {\n var _a = this.attr(),\n fill = _a.fill,\n fillStyle = _a.fillStyle;\n\n return (fill || fillStyle || this.isClipShape()) && this.canFill;\n };\n\n ShapeBase.prototype.isStroke = function () {\n var _a = this.attr(),\n stroke = _a.stroke,\n strokeStyle = _a.strokeStyle;\n\n return (stroke || strokeStyle) && this.canStroke;\n };\n\n ShapeBase.prototype.draw = function (context, targetAttrs) {\n var el = this.get('el');\n\n if (this.get('destroyed')) {\n if (el) {\n el.parentNode.removeChild(el);\n }\n } else {\n if (!el) {\n createDom(this);\n }\n\n setClip(this, context);\n this.createPath(context, targetAttrs);\n this.shadow(context, targetAttrs);\n this.strokeAndFill(context, targetAttrs);\n this.transform(targetAttrs);\n }\n };\n /**\n * @protected\n * 绘制图形的路径\n * @param {Defs} context 上下文\n * @param {ShapeAttrs} targetAttrs 渲染的目标属性\n */\n\n\n ShapeBase.prototype.createPath = function (context, targetAttrs) {}; // stroke and fill\n\n\n ShapeBase.prototype.strokeAndFill = function (context, targetAttrs) {\n var attrs = targetAttrs || this.attr();\n var fill = attrs.fill,\n fillStyle = attrs.fillStyle,\n stroke = attrs.stroke,\n strokeStyle = attrs.strokeStyle,\n fillOpacity = attrs.fillOpacity,\n strokeOpacity = attrs.strokeOpacity,\n lineWidth = attrs.lineWidth;\n var el = this.get('el');\n\n if (this.canFill) {\n // 初次渲染和更新渲染的逻辑有所不同: 初次渲染值为空时,需要设置为 none,否则就会是黑色,而更新渲染则不需要\n if (!targetAttrs) {\n this._setColor(context, 'fill', fill || fillStyle);\n } else if ('fill' in attrs) {\n this._setColor(context, 'fill', fill);\n } else if ('fillStyle' in attrs) {\n // compatible with fillStyle\n this._setColor(context, 'fill', fillStyle);\n }\n\n if (fillOpacity) {\n el.setAttribute(SVG_ATTR_MAP['fillOpacity'], fillOpacity);\n }\n }\n\n if (this.canStroke && lineWidth > 0) {\n if (!targetAttrs) {\n this._setColor(context, 'stroke', stroke || strokeStyle);\n } else if ('stroke' in attrs) {\n this._setColor(context, 'stroke', stroke);\n } else if ('strokeStyle' in attrs) {\n // compatible with strokeStyle\n this._setColor(context, 'stroke', strokeStyle);\n }\n\n if (strokeOpacity) {\n el.setAttribute(SVG_ATTR_MAP['strokeOpacity'], strokeOpacity);\n }\n\n if (lineWidth) {\n el.setAttribute(SVG_ATTR_MAP['lineWidth'], lineWidth);\n }\n }\n };\n\n ShapeBase.prototype._setColor = function (context, attr, value) {\n var el = this.get('el');\n\n if (!value) {\n // need to set `none` to avoid default value\n el.setAttribute(SVG_ATTR_MAP[attr], 'none');\n return;\n }\n\n value = value.trim();\n\n if (/^[r,R,L,l]{1}[\\s]*\\(/.test(value)) {\n var id = context.find('gradient', value);\n\n if (!id) {\n id = context.addGradient(value);\n }\n\n el.setAttribute(SVG_ATTR_MAP[attr], \"url(#\" + id + \")\");\n } else if (/^[p,P]{1}[\\s]*\\(/.test(value)) {\n var id = context.find('pattern', value);\n\n if (!id) {\n id = context.addPattern(value);\n }\n\n el.setAttribute(SVG_ATTR_MAP[attr], \"url(#\" + id + \")\");\n } else {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n };\n\n ShapeBase.prototype.shadow = function (context, targetAttrs) {\n var attrs = this.attr();\n\n var _a = targetAttrs || attrs,\n shadowOffsetX = _a.shadowOffsetX,\n shadowOffsetY = _a.shadowOffsetY,\n shadowBlur = _a.shadowBlur,\n shadowColor = _a.shadowColor;\n\n if (shadowOffsetX || shadowOffsetY || shadowBlur || shadowColor) {\n setShadow(this, context);\n }\n };\n\n ShapeBase.prototype.transform = function (targetAttrs) {\n var attrs = this.attr();\n var matrix = (targetAttrs || attrs).matrix;\n\n if (matrix) {\n setTransform(this);\n }\n };\n\n ShapeBase.prototype.isInShape = function (refX, refY) {\n return this.isPointInPath(refX, refY);\n };\n\n ShapeBase.prototype.isPointInPath = function (refX, refY) {\n var el = this.get('el');\n var canvas = this.get('canvas');\n var bbox = canvas.get('el').getBoundingClientRect();\n var clientX = refX + bbox.left;\n var clientY = refY + bbox.top;\n var element = document.elementFromPoint(clientX, clientY);\n\n if (element && element.isEqualNode(el)) {\n return true;\n }\n\n return false;\n };\n /**\n * 获取线拾取的宽度\n * @returns {number} 线的拾取宽度\n */\n\n\n ShapeBase.prototype.getHitLineWidth = function () {\n var _a = this.attrs,\n lineWidth = _a.lineWidth,\n lineAppendWidth = _a.lineAppendWidth;\n\n if (this.isStroke()) {\n return lineWidth + lineAppendWidth;\n }\n\n return 0;\n };\n\n return ShapeBase;\n}(AbstractShape);\n\nexport default ShapeBase;","/**\n * @fileoverview circle\n * @author dengfuping_develop@163.com\n */\nimport { __assign, __extends } from \"tslib\";\nimport { each } from '@antv/util';\nimport { SVG_ATTR_MAP } from '../constant';\nimport ShapeBase from './base';\n\nvar Circle =\n/** @class */\nfunction (_super) {\n __extends(Circle, _super);\n\n function Circle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'circle';\n _this.canFill = true;\n _this.canStroke = true;\n return _this;\n }\n\n Circle.prototype.getDefaultAttrs = function () {\n var attrs = _super.prototype.getDefaultAttrs.call(this);\n\n return __assign(__assign({}, attrs), {\n x: 0,\n y: 0,\n r: 0\n });\n };\n\n Circle.prototype.createPath = function (context, targetAttrs) {\n var attrs = this.attr();\n var el = this.get('el');\n each(targetAttrs || attrs, function (value, attr) {\n // 圆和椭圆的点坐标属性不是 x, y,而是 cx, cy\n if (attr === 'x' || attr === 'y') {\n el.setAttribute(\"c\" + attr, value);\n } else if (SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n };\n\n return Circle;\n}(ShapeBase);\n\nexport default Circle;","/**\n * @fileoverview dom\n * @author dengfuping_develop@163.com\n */\nimport { __extends } from \"tslib\";\nimport { each } from '@antv/util';\nimport { SVG_ATTR_MAP } from '../constant';\nimport ShapeBase from './base';\n\nvar Dom =\n/** @class */\nfunction (_super) {\n __extends(Dom, _super);\n\n function Dom() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'dom';\n _this.canFill = false;\n _this.canStroke = false;\n return _this;\n }\n\n Dom.prototype.createPath = function (context, targetAttrs) {\n var attrs = this.attr();\n var el = this.get('el');\n each(targetAttrs || attrs, function (value, attr) {\n if (SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n\n if (typeof attrs['html'] === 'function') {\n var element = attrs['html'].call(this, attrs);\n\n if (element instanceof Element || element instanceof HTMLDocument) {\n var children = el.childNodes;\n\n for (var i = children.length - 1; i >= 0; i--) {\n el.removeChild(children[i]);\n }\n\n el.appendChild(element); // append to el if it's an element\n } else {\n el.innerHTML = element; // set innerHTML\n }\n } else {\n el.innerHTML = attrs['html']; // set innerHTML\n }\n };\n\n return Dom;\n}(ShapeBase);\n\nexport default Dom;","/**\n * @fileoverview ellipse\n * @author dengfuping_develop@163.com\n */\nimport { __assign, __extends } from \"tslib\";\nimport { each } from '@antv/util';\nimport { SVG_ATTR_MAP } from '../constant';\nimport ShapeBase from './base';\n\nvar Ellipse =\n/** @class */\nfunction (_super) {\n __extends(Ellipse, _super);\n\n function Ellipse() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'ellipse';\n _this.canFill = true;\n _this.canStroke = true;\n return _this;\n }\n\n Ellipse.prototype.getDefaultAttrs = function () {\n var attrs = _super.prototype.getDefaultAttrs.call(this);\n\n return __assign(__assign({}, attrs), {\n x: 0,\n y: 0,\n rx: 0,\n ry: 0\n });\n };\n\n Ellipse.prototype.createPath = function (context, targetAttrs) {\n var attrs = this.attr();\n var el = this.get('el');\n each(targetAttrs || attrs, function (value, attr) {\n // 圆和椭圆的点坐标属性不是 x, y,而是 cx, cy\n if (attr === 'x' || attr === 'y') {\n el.setAttribute(\"c\" + attr, value);\n } else if (SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n };\n\n return Ellipse;\n}(ShapeBase);\n\nexport default Ellipse;","/**\n * @fileoverview image\n * @author dengfuping_develop@163.com\n */\nimport { __assign, __extends } from \"tslib\";\nimport { each, isString } from '@antv/util';\nimport { SVG_ATTR_MAP } from '../constant';\nimport ShapeBase from './base';\n\nvar Image =\n/** @class */\nfunction (_super) {\n __extends(Image, _super);\n\n function Image() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'image';\n _this.canFill = false;\n _this.canStroke = false;\n return _this;\n }\n\n Image.prototype.getDefaultAttrs = function () {\n var attrs = _super.prototype.getDefaultAttrs.call(this);\n\n return __assign(__assign({}, attrs), {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n });\n };\n\n Image.prototype.createPath = function (context, targetAttrs) {\n var _this = this;\n\n var attrs = this.attr();\n var el = this.get('el');\n each(targetAttrs || attrs, function (value, attr) {\n if (attr === 'img') {\n _this._setImage(attrs.img);\n } else if (SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n };\n\n Image.prototype.setAttr = function (name, value) {\n this.attrs[name] = value;\n\n if (name === 'img') {\n this._setImage(value);\n }\n };\n\n Image.prototype._setImage = function (img) {\n var attrs = this.attr();\n var el = this.get('el');\n\n if (isString(img)) {\n el.setAttribute('href', img);\n } else if (img instanceof window.Image) {\n if (!attrs.width) {\n el.setAttribute('width', img.width);\n this.attr('width', img.width);\n }\n\n if (!attrs.height) {\n el.setAttribute('height', img.height);\n this.attr('height', img.height);\n }\n\n el.setAttribute('href', img.src);\n } else if (img instanceof HTMLElement && isString(img.nodeName) && img.nodeName.toUpperCase() === 'CANVAS') {\n // @ts-ignore\n el.setAttribute('href', img.toDataURL());\n } else if (img instanceof ImageData) {\n var canvas = document.createElement('canvas');\n canvas.setAttribute('width', \"\" + img.width);\n canvas.setAttribute('height', \"\" + img.height);\n canvas.getContext('2d').putImageData(img, 0, 0);\n\n if (!attrs.width) {\n el.setAttribute('width', \"\" + img.width);\n this.attr('width', img.width);\n }\n\n if (!attrs.height) {\n el.setAttribute('height', \"\" + img.height);\n this.attr('height', img.height);\n }\n\n el.setAttribute('href', canvas.toDataURL());\n }\n };\n\n return Image;\n}(ShapeBase);\n\nexport default Image;","import { __assign, __extends } from \"tslib\";\n/**\n * @fileoverview line\n * @author dengfuping_develop@163.com\n */\n\nimport { Line as LineUtil } from '@antv/g-math';\nimport { each, isObject } from '@antv/util';\nimport { SVG_ATTR_MAP } from '../constant';\nimport ShapeBase from './base';\n\nvar Line =\n/** @class */\nfunction (_super) {\n __extends(Line, _super);\n\n function Line() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'line';\n _this.canFill = false;\n _this.canStroke = true;\n return _this;\n }\n\n Line.prototype.getDefaultAttrs = function () {\n var attrs = _super.prototype.getDefaultAttrs.call(this);\n\n return __assign(__assign({}, attrs), {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 0,\n startArrow: false,\n endArrow: false\n });\n };\n\n Line.prototype.createPath = function (context, targetAttrs) {\n var attrs = this.attr();\n var el = this.get('el');\n each(targetAttrs || attrs, function (value, attr) {\n if (attr === 'startArrow' || attr === 'endArrow') {\n if (value) {\n var id = isObject(value) ? context.addArrow(attrs, SVG_ATTR_MAP[attr]) : context.getDefaultArrow(attrs, SVG_ATTR_MAP[attr]);\n el.setAttribute(SVG_ATTR_MAP[attr], \"url(#\" + id + \")\");\n } else {\n el.removeAttribute(SVG_ATTR_MAP[attr]);\n }\n } else if (SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n };\n /**\n * Use math calculation to get length of line\n * @return {number} length\n */\n\n\n Line.prototype.getTotalLength = function () {\n var _a = this.attr(),\n x1 = _a.x1,\n y1 = _a.y1,\n x2 = _a.x2,\n y2 = _a.y2;\n\n return LineUtil.length(x1, y1, x2, y2);\n };\n /**\n * Use math calculation to get point according to ratio as same sa Canvas version\n * @param {number} ratio\n * @return {Point} point\n */\n\n\n Line.prototype.getPoint = function (ratio) {\n var _a = this.attr(),\n x1 = _a.x1,\n y1 = _a.y1,\n x2 = _a.x2,\n y2 = _a.y2;\n\n return LineUtil.pointAt(x1, y1, x2, y2, ratio);\n };\n\n return Line;\n}(ShapeBase);\n\nexport default Line;","var Symbols = {\n // 圆\n circle: function circle(x, y, r) {\n return [['M', x, y], ['m', -r, 0], ['a', r, r, 0, 1, 0, r * 2, 0], ['a', r, r, 0, 1, 0, -r * 2, 0]];\n },\n // 正方形\n square: function square(x, y, r) {\n return [['M', x - r, y - r], ['L', x + r, y - r], ['L', x + r, y + r], ['L', x - r, y + r], ['Z']];\n },\n // 菱形\n diamond: function diamond(x, y, r) {\n return [['M', x - r, y], ['L', x, y - r], ['L', x + r, y], ['L', x, y + r], ['Z']];\n },\n // 三角形\n triangle: function triangle(x, y, r) {\n var diffY = r * Math.sin(1 / 3 * Math.PI);\n return [['M', x - r, y + diffY], ['L', x, y - diffY], ['L', x + r, y + diffY], ['z']];\n },\n // 倒三角形\n triangleDown: function triangleDown(x, y, r) {\n var diffY = r * Math.sin(1 / 3 * Math.PI);\n return [['M', x - r, y - diffY], ['L', x + r, y - diffY], ['L', x, y + diffY], ['Z']];\n }\n};\nexport default {\n get: function get(type) {\n return Symbols[type];\n },\n register: function register(type, func) {\n Symbols[type] = func;\n },\n remove: function remove(type) {\n delete Symbols[type];\n },\n getAll: function getAll() {\n return Symbols;\n }\n};","/**\n * @fileoverview marker\n * @author dengfuping_develop@163.com\n */\nimport { __extends } from \"tslib\";\nimport { isArray, isFunction } from '@antv/util';\nimport ShapeBase from '../base';\nimport symbolsFactory from './symbols';\n\nvar Marker =\n/** @class */\nfunction (_super) {\n __extends(Marker, _super);\n\n function Marker() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'marker';\n _this.canFill = true;\n _this.canStroke = true;\n return _this;\n }\n\n Marker.prototype.createPath = function (context) {\n var el = this.get('el');\n el.setAttribute('d', this._assembleMarker());\n };\n\n Marker.prototype._assembleMarker = function () {\n var d = this._getPath();\n\n if (isArray(d)) {\n return d.map(function (path) {\n return path.join(' ');\n }).join('');\n }\n\n return d;\n };\n\n Marker.prototype._getPath = function () {\n var attrs = this.attr();\n var x = attrs.x,\n y = attrs.y; // 兼容 r 和 radius 两种写法,推荐使用 r\n\n var r = attrs.r || attrs.radius;\n var symbol = attrs.symbol || 'circle';\n var method;\n\n if (isFunction(symbol)) {\n method = symbol;\n } else {\n method = symbolsFactory.get(symbol);\n }\n\n if (!method) {\n console.warn(method + \" symbol is not exist.\");\n return null;\n }\n\n return method(x, y, r);\n }; // 作为其静态属性\n\n\n Marker.symbolsFactory = symbolsFactory;\n return Marker;\n}(ShapeBase);\n\nexport default Marker;","import { __assign, __extends } from \"tslib\";\nimport { each, isArray, isObject } from '@antv/util';\nimport { SVG_ATTR_MAP } from '../constant';\nimport ShapeBase from './base';\n\nvar Path =\n/** @class */\nfunction (_super) {\n __extends(Path, _super);\n\n function Path() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'path';\n _this.canFill = true;\n _this.canStroke = true;\n return _this;\n }\n\n Path.prototype.getDefaultAttrs = function () {\n var attrs = _super.prototype.getDefaultAttrs.call(this);\n\n return __assign(__assign({}, attrs), {\n startArrow: false,\n endArrow: false\n });\n };\n\n Path.prototype.createPath = function (context, targetAttrs) {\n var _this = this;\n\n var attrs = this.attr();\n var el = this.get('el');\n each(targetAttrs || attrs, function (value, attr) {\n if (attr === 'path' && isArray(value)) {\n el.setAttribute('d', _this._formatPath(value));\n } else if (attr === 'startArrow' || attr === 'endArrow') {\n if (value) {\n var id = isObject(value) ? context.addArrow(attrs, SVG_ATTR_MAP[attr]) : context.getDefaultArrow(attrs, SVG_ATTR_MAP[attr]);\n el.setAttribute(SVG_ATTR_MAP[attr], \"url(#\" + id + \")\");\n } else {\n el.removeAttribute(SVG_ATTR_MAP[attr]);\n }\n } else if (SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n };\n\n Path.prototype._formatPath = function (value) {\n var newValue = value.map(function (path) {\n return path.join(' ');\n }).join('');\n\n if (~newValue.indexOf('NaN')) {\n return '';\n }\n\n return newValue;\n };\n /**\n * Get total length of path\n * 尽管通过浏览器的 SVGPathElement.getTotalLength() 接口获取的 path 长度,\n * 与 Canvas 版本通过数学计算的方式得到的长度有一些细微差异,但最大误差在个位数像素,精度上可以能接受\n * @return {number} length\n */\n\n\n Path.prototype.getTotalLength = function () {\n var el = this.get('el');\n return el ? el.getTotalLength() : null;\n };\n /**\n * Get point according to ratio\n * @param {number} ratio\n * @return {Point} point\n */\n\n\n Path.prototype.getPoint = function (ratio) {\n var el = this.get('el');\n var totalLength = this.getTotalLength(); // @see https://github.com/antvis/g/issues/634\n\n if (totalLength === 0) {\n return null;\n }\n\n var point = el ? el.getPointAtLength(ratio * totalLength) : null;\n return point ? {\n x: point.x,\n y: point.y\n } : null;\n };\n\n return Path;\n}(ShapeBase);\n\nexport default Path;","import { __extends } from \"tslib\";\n/**\n * @fileoverview polygon\n * @author dengfuping_develop@163.com\n */\n\nimport { each, isArray } from '@antv/util';\nimport { SVG_ATTR_MAP } from '../constant';\nimport ShapeBase from './base';\n\nvar Polygon =\n/** @class */\nfunction (_super) {\n __extends(Polygon, _super);\n\n function Polygon() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'polygon';\n _this.canFill = true;\n _this.canStroke = true;\n return _this;\n }\n\n Polygon.prototype.createPath = function (context, targetAttrs) {\n var attrs = this.attr();\n var el = this.get('el');\n each(targetAttrs || attrs, function (value, attr) {\n if (attr === 'points' && isArray(value) && value.length >= 2) {\n el.setAttribute('points', value.map(function (point) {\n return point[0] + \",\" + point[1];\n }).join(' '));\n } else if (SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n };\n\n return Polygon;\n}(ShapeBase);\n\nexport default Polygon;","import { __assign, __extends } from \"tslib\";\nimport { Polyline as PolylineUtil } from '@antv/g-math';\nimport { Line as LineUtil } from '@antv/g-math';\nimport { each, isArray, isNil } from '@antv/util';\nimport { SVG_ATTR_MAP } from '../constant';\nimport ShapeBase from './base';\n\nvar Polyline =\n/** @class */\nfunction (_super) {\n __extends(Polyline, _super);\n\n function Polyline() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'polyline';\n _this.canFill = true;\n _this.canStroke = true;\n return _this;\n }\n\n Polyline.prototype.getDefaultAttrs = function () {\n var attrs = _super.prototype.getDefaultAttrs.call(this);\n\n return __assign(__assign({}, attrs), {\n startArrow: false,\n endArrow: false\n });\n }; // 更新属性时,检测是否更改了 points\n\n\n Polyline.prototype.onAttrChange = function (name, value, originValue) {\n _super.prototype.onAttrChange.call(this, name, value, originValue);\n\n if (['points'].indexOf(name) !== -1) {\n this._resetCache();\n }\n };\n\n Polyline.prototype._resetCache = function () {\n this.set('totalLength', null);\n this.set('tCache', null);\n };\n\n Polyline.prototype.createPath = function (context, targetAttrs) {\n var attrs = this.attr();\n var el = this.get('el');\n each(targetAttrs || attrs, function (value, attr) {\n if (attr === 'points' && isArray(value) && value.length >= 2) {\n el.setAttribute('points', value.map(function (point) {\n return point[0] + \",\" + point[1];\n }).join(' '));\n } else if (SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n };\n /**\n * Get length of polyline\n * @return {number} length\n */\n\n\n Polyline.prototype.getTotalLength = function () {\n var points = this.attr().points; // get totalLength from cache\n\n var totalLength = this.get('totalLength');\n\n if (!isNil(totalLength)) {\n return totalLength;\n }\n\n this.set('totalLength', PolylineUtil.length(points));\n return this.get('totalLength');\n };\n /**\n * Get point according to ratio\n * @param {number} ratio\n * @return {Point} point\n */\n\n\n Polyline.prototype.getPoint = function (ratio) {\n var points = this.attr().points; // get tCache from cache\n\n var tCache = this.get('tCache');\n\n if (!tCache) {\n this._setTcache();\n\n tCache = this.get('tCache');\n }\n\n var subt;\n var index;\n each(tCache, function (v, i) {\n if (ratio >= v[0] && ratio <= v[1]) {\n subt = (ratio - v[0]) / (v[1] - v[0]);\n index = i;\n }\n });\n return LineUtil.pointAt(points[index][0], points[index][1], points[index + 1][0], points[index + 1][1], subt);\n };\n\n Polyline.prototype._setTcache = function () {\n var points = this.attr().points;\n\n if (!points || points.length === 0) {\n return;\n }\n\n var totalLength = this.getTotalLength();\n\n if (totalLength <= 0) {\n return;\n }\n\n var tempLength = 0;\n var tCache = [];\n var segmentT;\n var segmentL;\n each(points, function (p, i) {\n if (points[i + 1]) {\n segmentT = [];\n segmentT[0] = tempLength / totalLength;\n segmentL = LineUtil.length(p[0], p[1], points[i + 1][0], points[i + 1][1]);\n tempLength += segmentL;\n segmentT[1] = tempLength / totalLength;\n tCache.push(segmentT);\n }\n });\n this.set('tCache', tCache);\n };\n /**\n * Get start tangent vector\n * @return {Array}\n */\n\n\n Polyline.prototype.getStartTangent = function () {\n var points = this.attr().points;\n var result = [];\n result.push([points[1][0], points[1][1]]);\n result.push([points[0][0], points[0][1]]);\n return result;\n };\n /**\n * Get end tangent vector\n * @return {Array}\n */\n\n\n Polyline.prototype.getEndTangent = function () {\n var points = this.attr().points;\n var l = points.length - 1;\n var result = [];\n result.push([points[l - 1][0], points[l - 1][1]]);\n result.push([points[l][0], points[l][1]]);\n return result;\n };\n\n return Polyline;\n}(ShapeBase);\n\nexport default Polyline;","/**\n * @fileoverview rect\n * @author dengfuping_develop@163.com\n */\nimport { __assign, __extends } from \"tslib\";\nimport { each, isArray } from '@antv/util';\nimport ShapeBase from './base';\nimport { SVG_ATTR_MAP } from '../constant';\nimport { parseRadius } from '../util/format';\n\nvar Rect =\n/** @class */\nfunction (_super) {\n __extends(Rect, _super);\n\n function Rect() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'rect';\n _this.canFill = true;\n _this.canStroke = true;\n return _this;\n }\n\n Rect.prototype.getDefaultAttrs = function () {\n var attrs = _super.prototype.getDefaultAttrs.call(this);\n\n return __assign(__assign({}, attrs), {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n radius: 0\n });\n };\n\n Rect.prototype.createPath = function (context, targetAttrs) {\n var _this = this;\n\n var attrs = this.attr();\n var el = this.get('el'); // 加上状态量,用来标记 path 是否已组装\n\n var completed = false; // 和组装 path 相关的绘图属性\n\n var pathRelatedAttrs = ['x', 'y', 'width', 'height', 'radius'];\n each(targetAttrs || attrs, function (value, attr) {\n if (pathRelatedAttrs.indexOf(attr) !== -1 && !completed) {\n el.setAttribute('d', _this._assembleRect(attrs));\n completed = true;\n } else if (pathRelatedAttrs.indexOf(attr) === -1 && SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n };\n\n Rect.prototype._assembleRect = function (attrs) {\n var x = attrs.x;\n var y = attrs.y;\n var w = attrs.width;\n var h = attrs.height;\n var radius = attrs.radius;\n\n if (!radius) {\n return \"M \" + x + \",\" + y + \" l \" + w + \",0 l 0,\" + h + \" l\" + -w + \" 0 z\";\n }\n\n var r = parseRadius(radius);\n\n if (isArray(radius)) {\n if (radius.length === 1) {\n r.r1 = r.r2 = r.r3 = r.r4 = radius[0];\n } else if (radius.length === 2) {\n r.r1 = r.r3 = radius[0];\n r.r2 = r.r4 = radius[1];\n } else if (radius.length === 3) {\n r.r1 = radius[0];\n r.r2 = r.r4 = radius[1];\n r.r3 = radius[2];\n } else {\n r.r1 = radius[0];\n r.r2 = radius[1];\n r.r3 = radius[2];\n r.r4 = radius[3];\n }\n } else {\n r.r1 = r.r2 = r.r3 = r.r4 = radius;\n }\n\n var d = [[\"M \" + (x + r.r1) + \",\" + y], [\"l \" + (w - r.r1 - r.r2) + \",0\"], [\"a \" + r.r2 + \",\" + r.r2 + \",0,0,1,\" + r.r2 + \",\" + r.r2], [\"l 0,\" + (h - r.r2 - r.r3)], [\"a \" + r.r3 + \",\" + r.r3 + \",0,0,1,\" + -r.r3 + \",\" + r.r3], [\"l \" + (r.r3 + r.r4 - w) + \",0\"], [\"a \" + r.r4 + \",\" + r.r4 + \",0,0,1,\" + -r.r4 + \",\" + -r.r4], [\"l 0,\" + (r.r4 + r.r1 - h)], [\"a \" + r.r1 + \",\" + r.r1 + \",0,0,1,\" + r.r1 + \",\" + -r.r1], ['z']];\n return d.join(' ');\n };\n\n return Rect;\n}(ShapeBase);\n\nexport default Rect;","import { each, isArray, isString } from '@antv/util';\nvar regexTags = /[MLHVQTCSAZ]([^MLHVQTCSAZ]*)/gi;\nvar regexDot = /[^\\s,]+/gi;\nexport function parseRadius(radius) {\n var r1 = 0;\n var r2 = 0;\n var r3 = 0;\n var r4 = 0;\n\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 return {\n r1: r1,\n r2: r2,\n r3: r3,\n r4: r4\n };\n}\nexport function parsePath(path) {\n path = path || [];\n\n if (isArray(path)) {\n return path;\n }\n\n if (isString(path)) {\n path = path.match(regexTags);\n each(path, function (item, index) {\n item = item.match(regexDot);\n\n if (item[0].length > 1) {\n var tag = item[0].charAt(0);\n item.splice(1, 0, item[0].substr(1));\n item[0] = tag;\n }\n\n each(item, function (sub, i) {\n if (!isNaN(sub)) {\n item[i] = +sub;\n }\n });\n path[index] = item;\n });\n return path;\n }\n}","/**\n * @fileoverview text\n * @author dengfuping_develop@163.com\n */\nimport { __assign, __extends } from \"tslib\";\nimport { each } from '@antv/util';\nimport { detect } from 'detect-browser';\nimport { setTransform } from '../util/svg';\nimport { SVG_ATTR_MAP } from '../constant';\nimport ShapeBase from './base';\nvar LETTER_SPACING = 0.3;\nvar BASELINE_MAP = {\n top: 'before-edge',\n middle: 'central',\n bottom: 'after-edge',\n alphabetic: 'baseline',\n hanging: 'hanging'\n}; // for FireFox\n\nvar BASELINE_MAP_FOR_FIREFOX = {\n top: 'text-before-edge',\n middle: 'central',\n bottom: 'text-after-edge',\n alphabetic: 'alphabetic',\n hanging: 'hanging'\n};\nvar ANCHOR_MAP = {\n left: 'left',\n start: 'left',\n center: 'middle',\n right: 'end',\n end: 'end'\n};\n\nvar Text =\n/** @class */\nfunction (_super) {\n __extends(Text, _super);\n\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'text';\n _this.canFill = true;\n _this.canStroke = true;\n return _this;\n }\n\n Text.prototype.getDefaultAttrs = function () {\n var attrs = _super.prototype.getDefaultAttrs.call(this);\n\n return __assign(__assign({}, attrs), {\n x: 0,\n y: 0,\n text: null,\n fontSize: 12,\n fontFamily: 'sans-serif',\n fontStyle: 'normal',\n fontWeight: 'normal',\n fontVariant: 'normal',\n textAlign: 'start',\n textBaseline: 'bottom'\n });\n };\n\n Text.prototype.createPath = function (context, targetAttrs) {\n var _this = this;\n\n var attrs = this.attr();\n var el = this.get('el');\n\n this._setFont();\n\n each(targetAttrs || attrs, function (value, attr) {\n if (attr === 'text') {\n _this._setText(\"\" + value);\n } else if (attr === 'matrix' && value) {\n setTransform(_this);\n } else if (SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n el.setAttribute('paint-order', 'stroke');\n el.setAttribute('style', 'stroke-linecap:butt; stroke-linejoin:miter;');\n };\n\n Text.prototype._setFont = function () {\n var el = this.get('el');\n\n var _a = this.attr(),\n textBaseline = _a.textBaseline,\n textAlign = _a.textAlign;\n\n var browser = detect();\n\n if (browser && browser.name === 'firefox') {\n // compatible with FireFox browser, ref: https://github.com/antvis/g/issues/119\n el.setAttribute('dominant-baseline', BASELINE_MAP_FOR_FIREFOX[textBaseline] || 'alphabetic');\n } else {\n el.setAttribute('alignment-baseline', BASELINE_MAP[textBaseline] || 'baseline');\n }\n\n el.setAttribute('text-anchor', ANCHOR_MAP[textAlign] || 'left');\n };\n\n Text.prototype._setText = function (text) {\n var el = this.get('el');\n\n var _a = this.attr(),\n x = _a.x,\n _b = _a.textBaseline,\n baseline = _b === void 0 ? 'bottom' : _b;\n\n if (!text) {\n el.innerHTML = '';\n } else if (~text.indexOf('\\n')) {\n var textArr = text.split('\\n');\n var textLen_1 = textArr.length - 1;\n var arr_1 = '';\n each(textArr, function (segment, i) {\n if (i === 0) {\n if (baseline === 'alphabetic') {\n arr_1 += \"\" + segment + \"\";\n } else if (baseline === 'top') {\n arr_1 += \"\" + segment + \"\";\n } else if (baseline === 'middle') {\n arr_1 += \"\" + segment + \"\";\n } else if (baseline === 'bottom') {\n arr_1 += \"\" + segment + \"\";\n } else if (baseline === 'hanging') {\n arr_1 += \"\" + segment + \"\";\n }\n } else {\n arr_1 += \"\" + segment + \"\";\n }\n });\n el.innerHTML = arr_1;\n } else {\n el.innerHTML = text;\n }\n };\n\n return Text;\n}(ShapeBase);\n\nexport default Text;","/**\n * @fileoverview gradient\n * @author dengfuping_develop@163.com\n */\nimport { each, mod, toRadian, uniqueId } from '@antv/util';\nimport { createSVGElement } from '../util/dom';\nvar regexLG = /^l\\s*\\(\\s*([\\d.]+)\\s*\\)\\s*(.*)/i;\nvar regexRG = /^r\\s*\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*\\)\\s*(.*)/i;\nvar regexColorStop = /[\\d.]+:(#[^\\s]+|[^)]+\\))/gi;\n\nfunction addStop(steps) {\n var arr = steps.match(regexColorStop);\n\n if (!arr) {\n return '';\n }\n\n var stops = '';\n arr.sort(function (a, b) {\n a = a.split(':');\n b = b.split(':');\n return Number(a[0]) - Number(b[0]);\n });\n each(arr, function (item) {\n item = item.split(':');\n stops += \"\";\n });\n return stops;\n}\n\nfunction parseLineGradient(color, el) {\n var arr = regexLG.exec(color);\n var angle = mod(toRadian(parseFloat(arr[1])), Math.PI * 2);\n var steps = arr[2];\n var start;\n var end;\n\n if (angle >= 0 && angle < 0.5 * Math.PI) {\n start = {\n x: 0,\n y: 0\n };\n end = {\n x: 1,\n y: 1\n };\n } else if (0.5 * Math.PI <= angle && angle < Math.PI) {\n start = {\n x: 1,\n y: 0\n };\n end = {\n x: 0,\n y: 1\n };\n } else if (Math.PI <= angle && angle < 1.5 * Math.PI) {\n start = {\n x: 1,\n y: 1\n };\n end = {\n x: 0,\n y: 0\n };\n } else {\n start = {\n x: 0,\n y: 1\n };\n end = {\n x: 1,\n y: 0\n };\n }\n\n var tanTheta = Math.tan(angle);\n var tanTheta2 = tanTheta * tanTheta;\n var x = (end.x - start.x + tanTheta * (end.y - start.y)) / (tanTheta2 + 1) + start.x;\n var y = tanTheta * (end.x - start.x + tanTheta * (end.y - start.y)) / (tanTheta2 + 1) + start.y;\n el.setAttribute('x1', start.x);\n el.setAttribute('y1', start.y);\n el.setAttribute('x2', x);\n el.setAttribute('y2', y);\n el.innerHTML = addStop(steps);\n}\n\nfunction parseRadialGradient(color, self) {\n var arr = regexRG.exec(color);\n var cx = parseFloat(arr[1]);\n var cy = parseFloat(arr[2]);\n var r = parseFloat(arr[3]);\n var steps = arr[4];\n self.setAttribute('cx', cx);\n self.setAttribute('cy', cy);\n self.setAttribute('r', r);\n self.innerHTML = addStop(steps);\n}\n\nvar Gradient =\n/** @class */\nfunction () {\n function Gradient(cfg) {\n this.cfg = {};\n var el = null;\n var id = uniqueId('gradient_');\n\n if (cfg.toLowerCase()[0] === 'l') {\n el = createSVGElement('linearGradient');\n parseLineGradient(cfg, el);\n } else {\n el = createSVGElement('radialGradient');\n parseRadialGradient(cfg, el);\n }\n\n el.setAttribute('id', id);\n this.el = el;\n this.id = id;\n this.cfg = cfg;\n return this;\n }\n\n Gradient.prototype.match = function (type, attr) {\n return this.cfg === attr;\n };\n\n return Gradient;\n}();\n\nexport default Gradient;","/**\n * @fileoverview shadow\n * @author dengfuping_develop@163.com\n */\nimport { each, uniqueId } from '@antv/util';\nimport { createSVGElement } from '../util/dom';\nvar ATTR_MAP = {\n shadowColor: 'color',\n shadowOpacity: 'opacity',\n shadowBlur: 'blur',\n shadowOffsetX: 'dx',\n shadowOffsetY: 'dy'\n};\nvar SHADOW_DIMENSION = {\n x: '-40%',\n y: '-40%',\n width: '200%',\n height: '200%'\n};\n\nvar Shadow =\n/** @class */\nfunction () {\n function Shadow(cfg) {\n this.type = 'filter';\n this.cfg = {};\n this.type = 'filter';\n var el = createSVGElement('filter'); // expand the filter region to fill in shadows\n\n each(SHADOW_DIMENSION, function (v, k) {\n el.setAttribute(k, v);\n });\n this.el = el;\n this.id = uniqueId('filter_');\n this.el.id = this.id;\n this.cfg = cfg;\n\n this._parseShadow(cfg, el);\n\n return this;\n }\n\n Shadow.prototype.match = function (type, cfg) {\n if (this.type !== type) {\n return false;\n }\n\n var flag = true;\n var config = this.cfg;\n each(Object.keys(config), function (attr) {\n if (config[attr] !== cfg[attr]) {\n flag = false;\n return false;\n }\n });\n return flag;\n };\n\n Shadow.prototype.update = function (name, value) {\n var config = this.cfg;\n config[ATTR_MAP[name]] = value;\n\n this._parseShadow(config, this.el);\n\n return this;\n };\n\n Shadow.prototype._parseShadow = function (config, el) {\n var child = \"\";\n el.innerHTML = child;\n };\n\n return Shadow;\n}();\n\nexport default Shadow;","/**\n * @fileoverview arrow\n * @author dengfuping_develop@163.com\n */\nimport { isArray, uniqueId } from '@antv/util';\nimport { createSVGElement } from '../util/dom';\n\nvar Arrow =\n/** @class */\nfunction () {\n function Arrow(attrs, type) {\n this.cfg = {};\n var el = createSVGElement('marker');\n var id = uniqueId('marker_');\n el.setAttribute('id', id);\n var shape = createSVGElement('path');\n shape.setAttribute('stroke', attrs.stroke || 'none');\n shape.setAttribute('fill', attrs.fill || 'none');\n el.appendChild(shape);\n el.setAttribute('overflow', 'visible');\n el.setAttribute('orient', 'auto-start-reverse');\n this.el = el;\n this.child = shape;\n this.id = id;\n var cfg = attrs[type === 'marker-start' ? 'startArrow' : 'endArrow'];\n this.stroke = attrs.stroke || '#000';\n\n if (cfg === true) {\n this._setDefaultPath(type, shape);\n } else {\n this.cfg = cfg; // when arrow config exists\n\n this._setMarker(attrs.lineWidth, shape);\n }\n\n return this;\n }\n\n Arrow.prototype.match = function () {\n return false;\n };\n\n Arrow.prototype._setDefaultPath = function (type, el) {\n var parent = this.el; // 默认箭头的边长为 10,夹角为 60 度\n\n el.setAttribute('d', \"M0,0 L\" + 10 * Math.cos(Math.PI / 6) + \",5 L0,10\");\n parent.setAttribute('refX', \"\" + 10 * Math.cos(Math.PI / 6));\n parent.setAttribute('refY', \"\" + 5);\n };\n\n Arrow.prototype._setMarker = function (r, el) {\n var parent = this.el;\n var path = this.cfg.path;\n var d = this.cfg.d;\n\n if (isArray(path)) {\n path = path.map(function (segment) {\n return segment.join(' ');\n }).join('');\n }\n\n el.setAttribute('d', path);\n parent.appendChild(el);\n\n if (d) {\n parent.setAttribute('refX', \"\" + d / r);\n }\n };\n\n Arrow.prototype.update = function (fill) {\n var child = this.child;\n\n if (child.attr) {\n child.attr('fill', fill);\n } else {\n child.setAttribute('fill', fill);\n }\n };\n\n return Arrow;\n}();\n\nexport default Arrow;","/**\n * @fileoverview clip\n * @author dengfuping_develop@163.com\n */\nimport { uniqueId } from '@antv/util';\nimport { createSVGElement } from '../util/dom';\n\nvar Clip =\n/** @class */\nfunction () {\n function Clip(cfg) {\n this.type = 'clip';\n this.cfg = {};\n var el = createSVGElement('clipPath');\n this.el = el;\n this.id = uniqueId('clip_');\n el.id = this.id;\n var shapeEl = cfg.cfg.el;\n el.appendChild(shapeEl);\n this.cfg = cfg;\n return this;\n }\n\n Clip.prototype.match = function () {\n return false;\n };\n\n Clip.prototype.remove = function () {\n var el = this.el;\n el.parentNode.removeChild(el);\n };\n\n return Clip;\n}();\n\nexport default Clip;","/**\n * @fileoverview pattern\n * @author dengfuping_develop@163.com\n */\nimport { uniqueId } from '@antv/util';\nimport { createSVGElement } from '../util/dom';\nvar regexPR = /^p\\s*\\(\\s*([axyn])\\s*\\)\\s*(.*)/i;\n\nvar Pattern =\n/** @class */\nfunction () {\n function Pattern(cfg) {\n this.cfg = {};\n var el = createSVGElement('pattern');\n el.setAttribute('patternUnits', 'userSpaceOnUse');\n var child = createSVGElement('image');\n el.appendChild(child);\n var id = uniqueId('pattern_');\n el.id = id;\n this.el = el;\n this.id = id;\n this.cfg = cfg;\n var arr = regexPR.exec(cfg);\n var source = arr[2];\n child.setAttribute('href', source);\n var img = new Image();\n\n if (!source.match(/^data:/i)) {\n img.crossOrigin = 'Anonymous';\n }\n\n img.src = source;\n\n function onload() {\n el.setAttribute('width', \"\" + img.width);\n el.setAttribute('height', \"\" + img.height);\n }\n\n if (img.complete) {\n onload();\n } else {\n img.onload = onload; // Fix onload() bug in IE9\n\n img.src = img.src;\n }\n\n return this;\n }\n\n Pattern.prototype.match = function (type, attr) {\n return this.cfg === attr;\n };\n\n return Pattern;\n}();\n\nexport default Pattern;","/**\n * @fileoverview defs\n * @author dengfuping_develop@163.com\n */\nimport { uniqueId } from '@antv/util';\nimport Gradient from './gradient';\nimport Shadow from './shadow';\nimport Arrow from './arrow';\nimport Clip from './clip';\nimport Pattern from './pattern';\nimport { createSVGElement } from '../util/dom';\n\nvar Defs =\n/** @class */\nfunction () {\n function Defs(canvas) {\n var el = createSVGElement('defs');\n var id = uniqueId('defs_');\n el.id = id;\n canvas.appendChild(el);\n this.children = [];\n this.defaultArrow = {};\n this.el = el;\n this.canvas = canvas;\n }\n\n Defs.prototype.find = function (type, attr) {\n var children = this.children;\n var result = null;\n\n for (var i = 0; i < children.length; i++) {\n if (children[i].match(type, attr)) {\n result = children[i].id;\n break;\n }\n }\n\n return result;\n };\n\n Defs.prototype.findById = function (id) {\n var children = this.children;\n var flag = null;\n\n for (var i = 0; i < children.length; i++) {\n if (children[i].id === id) {\n flag = children[i];\n break;\n }\n }\n\n return flag;\n };\n\n Defs.prototype.add = function (item) {\n this.children.push(item);\n item.canvas = this.canvas;\n item.parent = this;\n };\n\n Defs.prototype.getDefaultArrow = function (attrs, name) {\n var stroke = attrs.stroke || attrs.strokeStyle;\n\n if (this.defaultArrow[stroke]) {\n return this.defaultArrow[stroke].id;\n }\n\n var arrow = new Arrow(attrs, name);\n this.defaultArrow[stroke] = arrow;\n this.el.appendChild(arrow.el);\n this.add(arrow);\n return arrow.id;\n };\n\n Defs.prototype.addGradient = function (cfg) {\n var gradient = new Gradient(cfg);\n this.el.appendChild(gradient.el);\n this.add(gradient);\n return gradient.id;\n };\n\n Defs.prototype.addArrow = function (attrs, name) {\n var arrow = new Arrow(attrs, name);\n this.el.appendChild(arrow.el);\n this.add(arrow);\n return arrow.id;\n };\n\n Defs.prototype.addShadow = function (cfg) {\n var shadow = new Shadow(cfg);\n this.el.appendChild(shadow.el);\n this.add(shadow);\n return shadow.id;\n };\n\n Defs.prototype.addPattern = function (cfg) {\n var pattern = new Pattern(cfg);\n this.el.appendChild(pattern.el);\n this.add(pattern);\n return pattern.id;\n };\n\n Defs.prototype.addClip = function (cfg) {\n var clip = new Clip(cfg);\n this.el.appendChild(clip.el);\n this.add(clip);\n return clip.id;\n };\n\n return Defs;\n}();\n\nexport default Defs;","import { __assign, __extends } from \"tslib\";\nimport { AbstractCanvas } from '@antv/g-base';\nimport { SHAPE_TO_TAGS } from './constant';\nimport { drawChildren } from './util/draw';\nimport { setTransform, setClip } from './util/svg';\nimport { sortDom, createSVGElement } from './util/dom';\nimport * as Shape from './shape';\nimport Group from './group';\nimport Defs from './defs';\n\nvar Canvas =\n/** @class */\nfunction (_super) {\n __extends(Canvas, _super);\n\n function Canvas(cfg) {\n return _super.call(this, __assign(__assign({}, cfg), {\n autoDraw: true,\n // 设置渲染引擎为 canvas,只读属性\n renderer: 'svg'\n })) || this;\n }\n\n Canvas.prototype.getShapeBase = function () {\n return Shape;\n };\n\n Canvas.prototype.getGroupBase = function () {\n return Group;\n }; // 覆盖 Container 中通过遍历的方式获取 shape 对象的逻辑,直接走 SVG 的 dom 拾取即可\n\n\n Canvas.prototype.getShape = function (x, y, ev) {\n var target = ev.target || ev.srcElement;\n\n if (!SHAPE_TO_TAGS[target.tagName]) {\n var parent_1 = target.parentNode;\n\n while (parent_1 && !SHAPE_TO_TAGS[parent_1.tagName]) {\n parent_1 = parent_1.parentNode;\n }\n\n target = parent_1;\n }\n\n return this.find(function (child) {\n return child.get('el') === target;\n });\n }; // 复写基类的方法生成标签\n\n\n Canvas.prototype.createDom = function () {\n var element = createSVGElement('svg');\n var context = new Defs(element);\n element.setAttribute('width', \"\" + this.get('width'));\n element.setAttribute('height', \"\" + this.get('height')); // 缓存 context 对象\n\n this.set('context', context);\n return element;\n };\n /**\n * 一些方法调用会引起画布变化\n * @param {ChangeType} changeType 改变的类型\n */\n\n\n Canvas.prototype.onCanvasChange = function (changeType) {\n var context = this.get('context');\n var el = this.get('el');\n\n if (changeType === 'sort') {\n var children_1 = this.get('children');\n\n if (children_1 && children_1.length) {\n sortDom(this, function (a, b) {\n return children_1.indexOf(a) - children_1.indexOf(b) ? 1 : 0;\n });\n }\n } else if (changeType === 'clear') {\n // el maybe null for canvas\n if (el) {\n // 清空 SVG 元素\n el.innerHTML = '';\n var defsEl = context.el; // 清空 defs 元素\n\n defsEl.innerHTML = ''; // 将清空后的 defs 元素挂载到 el 下\n\n el.appendChild(defsEl);\n }\n } else if (changeType === 'matrix') {\n setTransform(this);\n } else if (changeType === 'clip') {\n setClip(this, context);\n } else if (changeType === 'changeSize') {\n el.setAttribute('width', \"\" + this.get('width'));\n el.setAttribute('height', \"\" + this.get('height'));\n }\n }; // 复写基类的 draw 方法\n\n\n Canvas.prototype.draw = function () {\n var context = this.get('context');\n var children = this.getChildren();\n setClip(this, context);\n\n if (children.length) {\n drawChildren(context, children);\n }\n };\n\n return Canvas;\n}(AbstractCanvas);\n\nexport default Canvas;","import * as Shape from './shape';\nexport * from '@antv/g-base';\nexport { default as Canvas } from './canvas';\nexport { default as Group } from './group';\nexport { Shape };\nexport var version = '0.5.6';","import { __extends, __values } from \"tslib\";\nimport { FIELD_ORIGIN } from '../constant';\nimport Geometry from './base';\nimport Element from './element';\n/** 引入对应的 ShapeFactory */\n\nimport './shape/line';\nimport { isModelChange } from './util/is-model-change';\nimport { diff } from './util/diff';\n/**\n * Path 几何标记。\n * 用于绘制路径图等。\n */\n\nvar Path =\n/** @class */\nfunction (_super) {\n __extends(Path, _super);\n\n function Path(cfg) {\n var _this = _super.call(this, cfg) || this;\n\n _this.type = 'path';\n _this.shapeType = 'line';\n var _a = cfg.connectNulls,\n connectNulls = _a === void 0 ? false : _a,\n _b = cfg.showSinglePoint,\n showSinglePoint = _b === void 0 ? true : _b;\n _this.connectNulls = connectNulls;\n _this.showSinglePoint = showSinglePoint;\n return _this;\n }\n /**\n * 创建所有的 Element 实例,对于 Path、Line、Area,一组数据对应一个 Element。\n * @param mappingData\n * @param [isUpdate]\n * @returns elements\n */\n\n\n Path.prototype.updateElements = function (mappingDataArray, isUpdate) {\n var e_1, _a, e_2, _b, e_3, _c;\n\n if (isUpdate === void 0) {\n isUpdate = false;\n } // Path 的每个 element 对应一组数据\n\n\n var keyData = new Map();\n var keyIndex = new Map();\n var keys = [];\n var index = 0;\n\n for (var i = 0; i < mappingDataArray.length; i++) {\n var mappingData = mappingDataArray[i];\n var 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 var _d = diff(this.lastElementsMap, keys),\n added = _d.added,\n updated = _d.updated,\n removed = _d.removed;\n\n try {\n for (var added_1 = __values(added), added_1_1 = added_1.next(); !added_1_1.done; added_1_1 = added_1.next()) {\n var key = added_1_1.value;\n var mappingData = keyData.get(key);\n var shapeFactory = this.getShapeFactory();\n var shapeCfg = this.getShapeInfo(mappingData);\n var i = keyIndex.get(key);\n var element = new Element({\n shapeFactory: 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\n this.elementsMap[key] = element;\n this.elements[i] = element;\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (added_1_1 && !added_1_1.done && (_a = added_1[\"return\"])) _a.call(added_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n try {\n for (var updated_1 = __values(updated), updated_1_1 = updated_1.next(); !updated_1_1.done; updated_1_1 = updated_1.next()) {\n var key = updated_1_1.value;\n var mappingData = keyData.get(key);\n var element = this.lastElementsMap[key];\n var i = keyIndex.get(key);\n var shapeCfg = this.getShapeInfo(mappingData);\n var preShapeCfg = element.getModel();\n\n if (this.isCoordinateChanged || isModelChange(preShapeCfg, shapeCfg)) {\n element.animate = this.animateOption; // 通过绘制数据的变更来判断是否需要更新,因为用户有可能会修改图形属性映射\n\n element.update(shapeCfg); // 更新对应的 element\n }\n\n this.elementsMap[key] = element;\n this.elements[i] = element;\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (updated_1_1 && !updated_1_1.done && (_b = updated_1[\"return\"])) _b.call(updated_1);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n try {\n for (var removed_1 = __values(removed), removed_1_1 = removed_1.next(); !removed_1_1.done; removed_1_1 = removed_1.next()) {\n var key = removed_1_1.value;\n var element = this.lastElementsMap[key]; // 更新动画配置,用户有可能在更新之前有对动画进行配置操作\n\n element.animate = this.animateOption;\n element.destroy();\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (removed_1_1 && !removed_1_1.done && (_c = removed_1[\"return\"])) _c.call(removed_1);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n };\n /**\n * 获取组成一条线(一组数据)的所有点以及数据\n * @param mappingData 映射后的数组\n */\n\n\n Path.prototype.getPointsAndData = function (mappingData) {\n var points = [];\n var data = [];\n\n for (var i = 0, len = mappingData.length; i < len; i++) {\n var 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: points,\n data: data\n };\n };\n\n Path.prototype.getShapeInfo = function (mappingData) {\n var shapeCfg = this.getDrawCfg(mappingData[0]);\n\n var _a = this.getPointsAndData(mappingData),\n points = _a.points,\n data = _a.data;\n\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 return shapeCfg;\n };\n\n return Path;\n}(Geometry);\n\nexport default Path;","import { each } from '@antv/util';\nimport { getPathPoints } from '../util/get-path-points';\nimport { getStyle } from '../util/get-style';\nimport { getLinePath, getSplinePath } from '../util/path';\n\nfunction getPath(points, isInCircle, smooth, registeredShape, constraint) {\n var path = [];\n\n if (points.length) {\n var topLinePoints_1 = []; // area 区域上部分\n\n var bottomLinePoints_1 = []; // area 区域下部分\n\n for (var i = 0, len = points.length; i < len; i++) {\n var point = points[i];\n topLinePoints_1.push(point[1]);\n bottomLinePoints_1.push(point[0]);\n }\n\n bottomLinePoints_1 = bottomLinePoints_1.reverse();\n each([topLinePoints_1, bottomLinePoints_1], function (pointsData, index) {\n var subPath = [];\n var parsedPoints = registeredShape.parsePoints(pointsData);\n var p1 = parsedPoints[0];\n\n if (topLinePoints_1.length === 1 && bottomLinePoints_1.length === 1) {\n // 都只有一个点,绘制一条竖线\n subPath = index === 0 ? [['M', p1.x - 0.5, p1.y], ['L', p1.x + 0.5, p1.y]] : [['L', p1.x + 0.5, p1.y], ['L', p1.x - 0.5, p1.y]];\n } else {\n if (isInCircle) {\n parsedPoints.push({\n x: p1.x,\n y: p1.y\n });\n }\n\n if (smooth) {\n subPath = getSplinePath(parsedPoints, false, constraint);\n } else {\n subPath = getLinePath(parsedPoints, false);\n }\n\n if (index > 0) {\n subPath[0][0] = 'L';\n }\n }\n\n path = path.concat(subPath);\n });\n path.push(['Z']);\n }\n\n return path;\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 */\n\n\nexport function getShapeAttrs(cfg, isStroke, smooth, registeredShape, constraint) {\n var attrs = getStyle(cfg, isStroke, !isStroke, 'lineWidth');\n var connectNulls = cfg.connectNulls,\n isInCircle = cfg.isInCircle,\n points = cfg.points,\n showSinglePoint = cfg.showSinglePoint;\n var pathPoints = getPathPoints(points, connectNulls, showSinglePoint); // 根据 connectNulls 配置获取图形关键点\n\n var path = [];\n\n for (var i = 0, len = pathPoints.length; i < len; i++) {\n var eachPoints = pathPoints[i];\n path = path.concat(getPath(eachPoints, isInCircle, smooth, registeredShape, constraint));\n }\n\n attrs.path = path;\n return attrs;\n}\n/**\n * @ignore\n * Gets constraint\n * @param coordinate\n * @returns constraint\n */\n\nexport function getConstraint(coordinate) {\n var start = coordinate.start,\n end = coordinate.end;\n return [[start.x, end.y], [end.x, start.y]];\n}","import { isArray } from '@antv/util';\nimport { registerShape, registerShapeFactory } from '../base';\nimport { getShapeAttrs } from './util';\nvar AreaShapeFactory = registerShapeFactory('area', {\n defaultShapeType: 'area',\n getDefaultPoints: function getDefaultPoints(pointInfo) {\n // area 基本标记的绘制需要获取上下两边的顶点\n var x = pointInfo.x,\n y0 = pointInfo.y0;\n var y = isArray(pointInfo.y) ? pointInfo.y : [y0, pointInfo.y];\n return y.map(function (yItem) {\n return {\n x: x,\n y: yItem\n };\n });\n }\n}); // Area 几何标记默认的 shape:填充的区域图\n\nregisterShape('area', 'area', {\n draw: function draw(cfg, container) {\n var attrs = getShapeAttrs(cfg, false, false, this);\n var shape = container.addShape({\n type: 'path',\n attrs: attrs,\n name: 'area'\n });\n return shape;\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color;\n return {\n symbol: function symbol(x, y, r) {\n if (r === void 0) {\n r = 5.5;\n }\n\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});\nexport default AreaShapeFactory;","import { __extends } from \"tslib\";\nimport { FIELD_ORIGIN } from '../constant';\nimport Path from './path';\nimport './shape/area';\n/**\n * Area 几何标记类。\n * 常用于绘制面积图。\n */\n\nvar Area =\n/** @class */\nfunction (_super) {\n __extends(Area, _super);\n\n function Area(cfg) {\n var _this = _super.call(this, cfg) || this;\n\n _this.type = 'area';\n _this.shapeType = 'area';\n /** 生成图形关键点 */\n\n _this.generatePoints = 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\n _this.startOnZero = true;\n var _a = cfg.startOnZero,\n startOnZero = _a === void 0 ? true : _a,\n _b = cfg.sortable,\n sortable = _b === void 0 ? false : _b,\n _c = cfg.showSinglePoint,\n showSinglePoint = _c === void 0 ? false : _c;\n _this.startOnZero = startOnZero; // 默认为 true\n\n _this.sortable = sortable; // 关闭默认的 X 轴数据排序\n\n _this.showSinglePoint = showSinglePoint;\n return _this;\n }\n /**\n * 获取图形绘制的关键点以及数据\n * @param mappingData 映射后的数据\n */\n\n\n Area.prototype.getPointsAndData = function (mappingData) {\n var points = [];\n var data = [];\n\n for (var i = 0, len = mappingData.length; i < len; i++) {\n var obj = mappingData[i];\n points.push(obj.points);\n data.push(obj[FIELD_ORIGIN]);\n }\n\n return {\n points: points,\n data: data\n };\n };\n /**\n * 获取 Y 轴上的最小值\n * @returns y 字段最小值\n */\n\n\n Area.prototype.getYMinValue = function () {\n if (this.startOnZero) {\n return _super.prototype.getYMinValue.call(this);\n }\n\n var yScale = this.getYScale();\n return yScale.min;\n };\n\n return Area;\n}(Path);\n\nexport default Area;","import { __assign } from \"tslib\";\nimport { registerShape, registerShapeFactory } from '../base';\nimport { getStyle } from '../util/get-style';\nimport { getLinePath } from '../util/path';\nimport { splitPoints } from '../util/split-points';\nvar EdgeShapeFactory = registerShapeFactory('edge', {\n defaultShapeType: 'line',\n getDefaultPoints: function getDefaultPoints(pointInfo) {\n return splitPoints(pointInfo);\n }\n});\nregisterShape('edge', 'line', {\n draw: function draw(cfg, container) {\n var style = getStyle(cfg, true, false, 'lineWidth');\n var path = getLinePath(this.parsePoints(cfg.points), this.coordinate.isPolar);\n return container.addShape('path', {\n attrs: __assign(__assign({}, style), {\n path: path\n })\n });\n },\n getMarker: function getMarker(markerCfg) {\n return {\n symbol: 'circle',\n style: {\n r: 4.5,\n fill: markerCfg.color\n }\n };\n }\n});\nexport default EdgeShapeFactory;","import { __extends } from \"tslib\";\nimport Geometry from './base';\nimport './shape/edge';\n/**\n * Edge 几何标记,用于绘制关系图中的**边**图形,如:\n * 1. 流程图\n * 2. 树\n * 3. 弧长连接图\n * 4. 和弦图\n * 5. 桑基图\n */\n\nvar Edge =\n/** @class */\nfunction (_super) {\n __extends(Edge, _super);\n\n function Edge() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'edge';\n _this.shapeType = 'edge';\n _this.generatePoints = true;\n return _this;\n }\n\n return Edge;\n}(Geometry);\n\nexport default Edge;","import { __assign, __extends, __values } from \"tslib\";\nimport ColorUtil from '@antv/color-util';\nimport { get, isNumber } from '@antv/util';\nimport { FIELD_ORIGIN } from '../constant';\nimport Geometry from './base';\n/**\n * 用于绘制热力图。\n */\n\nvar Heatmap =\n/** @class */\nfunction (_super) {\n __extends(Heatmap, _super);\n\n function Heatmap() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'heatmap';\n _this.paletteCache = {};\n return _this;\n }\n\n Heatmap.prototype.updateElements = function (mappingDataArray, isUpdate) {\n if (isUpdate === void 0) {\n isUpdate = false;\n }\n\n for (var i = 0; i < mappingDataArray.length; i++) {\n var mappingData = mappingDataArray[i];\n var range = this.prepareRange(mappingData);\n var radius = this.prepareSize();\n var blur_1 = get(this.styleOption, ['cfg', 'shadowBlur']);\n\n if (!isNumber(blur_1)) {\n blur_1 = radius / 2;\n }\n\n this.prepareGreyScaleBlurredCircle(radius, blur_1);\n this.drawWithRange(mappingData, range, radius, blur_1);\n }\n };\n /** 热力图暂时不支持 callback 回调(文档需要说明下) */\n\n\n Heatmap.prototype.color = function (field, cfg) {\n this.createAttrOption('color', field, typeof cfg !== 'function' ? cfg : '');\n return this;\n };\n /**\n * clear\n */\n\n\n Heatmap.prototype.clear = function () {\n _super.prototype.clear.call(this);\n\n this.clearShadowCanvasCtx();\n this.paletteCache = {};\n };\n\n Heatmap.prototype.prepareRange = function (data) {\n var colorAttr = this.getAttribute('color');\n var colorField = colorAttr.getFields()[0];\n var min = Infinity;\n var max = -Infinity;\n data.forEach(function (row) {\n var value = row[FIELD_ORIGIN][colorField];\n\n if (value > max) {\n max = value;\n }\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 Heatmap.prototype.prepareSize = function () {\n var radius = this.getDefaultValue('size');\n\n if (!isNumber(radius)) {\n radius = this.getDefaultSize();\n }\n\n return radius;\n };\n\n Heatmap.prototype.prepareGreyScaleBlurredCircle = function (radius, blur) {\n var grayScaleBlurredCanvas = this.getGrayScaleBlurredCanvas();\n var r2 = radius + blur;\n var 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 ctx.beginPath();\n ctx.arc(-r2, -r2, radius, 0, Math.PI * 2, true);\n ctx.closePath();\n ctx.fill();\n };\n\n Heatmap.prototype.drawWithRange = function (data, range, radius, blur) {\n var e_1, _a; // canvas size\n\n\n var _b = this.coordinate,\n start = _b.start,\n end = _b.end;\n var width = this.coordinate.getWidth();\n var height = this.coordinate.getHeight(); // value, range, etc\n\n var colorAttr = this.getAttribute('color');\n var valueField = colorAttr.getFields()[0]; // prepare shadow canvas context\n\n this.clearShadowCanvasCtx();\n var ctx = this.getShadowCanvasCtx(); // filter data\n\n if (range) {\n data = data.filter(function (row) {\n return row[FIELD_ORIGIN][valueField] <= range[1] && row[FIELD_ORIGIN][valueField] >= range[0];\n });\n } // step1. draw points with shadow\n\n\n var scale = this.scales[valueField];\n\n try {\n for (var data_1 = __values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var obj = data_1_1.value;\n\n var _c = this.getDrawCfg(obj),\n x = _c.x,\n y = _c.y;\n\n var alpha = scale.scale(obj[FIELD_ORIGIN][valueField]);\n this.drawGrayScaleBlurredCircle(x - start.x, y - end.y, radius + blur, alpha, ctx);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1[\"return\"])) _a.call(data_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n } // step2. convert pixels\n\n\n var colored = ctx.getImageData(0, 0, width, height);\n this.clearShadowCanvasCtx();\n this.colorize(colored);\n ctx.putImageData(colored, 0, 0);\n var 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 Heatmap.prototype.getDefaultSize = function () {\n var position = this.getAttribute('position');\n var coordinate = this.coordinate;\n return Math.min(coordinate.getWidth() / (position.scales[0].ticks.length * 4), coordinate.getHeight() / (position.scales[1].ticks.length * 4));\n };\n\n Heatmap.prototype.clearShadowCanvasCtx = function () {\n var ctx = this.getShadowCanvasCtx();\n ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);\n };\n\n Heatmap.prototype.getShadowCanvasCtx = function () {\n var canvas = this.shadowCanvas;\n\n if (!canvas) {\n canvas = document.createElement('canvas');\n this.shadowCanvas = canvas;\n }\n\n canvas.width = this.coordinate.getWidth();\n canvas.height = this.coordinate.getHeight();\n return canvas.getContext('2d');\n };\n\n Heatmap.prototype.getGrayScaleBlurredCanvas = function () {\n if (!this.grayScaleBlurredCanvas) {\n this.grayScaleBlurredCanvas = document.createElement('canvas');\n }\n\n return this.grayScaleBlurredCanvas;\n };\n\n Heatmap.prototype.drawGrayScaleBlurredCircle = function (x, y, r, alpha, ctx) {\n var grayScaleBlurredCanvas = this.getGrayScaleBlurredCanvas();\n ctx.globalAlpha = alpha;\n ctx.drawImage(grayScaleBlurredCanvas, x - r, y - r);\n };\n\n Heatmap.prototype.colorize = function (img) {\n var colorAttr = this.getAttribute('color');\n var pixels = img.data;\n var paletteCache = this.paletteCache;\n\n for (var i = 3; i < pixels.length; i += 4) {\n var alpha = pixels[i]; // get gradient color from opacity value\n\n if (isNumber(alpha)) {\n var 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 Heatmap.prototype.getImageShape = function () {\n var imageShape = this.imageShape;\n\n if (imageShape) {\n return imageShape;\n }\n\n var container = this.container;\n imageShape = container.addShape({\n type: 'image',\n attrs: {}\n });\n this.imageShape = imageShape;\n return imageShape;\n };\n\n Heatmap.prototype.getShapeInfo = function (mappingData) {\n var shapeCfg = this.getDrawCfg(mappingData[0]);\n var data = mappingData.map(function (obj) {\n return obj[FIELD_ORIGIN];\n });\n return __assign(__assign({}, shapeCfg), {\n mappingData: mappingData,\n data: data\n });\n };\n\n return Heatmap;\n}(Geometry);\n\nexport default Heatmap;","import { __read, __spreadArray } from \"tslib\";\nimport { isArray, isNil, get } from '@antv/util';\nimport { getAngle, getSectorPath } from '../../../util/graphics';\n/**\n * @ignore\n * 根据数据点生成矩形的四个关键点\n * @param pointInfo 数据点信息\n * @param [isPyramid] 是否为尖底漏斗图\n * @returns rect points 返回矩形四个顶点信息\n */\n\nexport function getRectPoints(pointInfo) {\n var _a, _b;\n\n var x = pointInfo.x,\n y = pointInfo.y,\n y0 = pointInfo.y0,\n size = pointInfo.size; // 有 4 种情况,\n // 1. x, y 都不是数组\n // 2. y是数组,x不是\n // 3. x是数组,y不是\n // 4. x, y 都是数组\n\n var yMin;\n var yMax;\n\n if (isArray(y)) {\n _a = __read(y, 2), yMin = _a[0], yMax = _a[1];\n } else {\n yMin = y0;\n yMax = y;\n }\n\n var xMin;\n var xMax;\n\n if (isArray(x)) {\n _b = __read(x, 2), xMin = _b[0], xMax = _b[1];\n } else {\n xMin = x - size / 2;\n xMax = x + size / 2;\n }\n\n var points = [{\n x: xMin,\n y: yMin\n }, {\n x: xMin,\n y: yMax\n }]; // 矩形的四个关键点,结构如下(左下角顺时针连接)\n // 1 ---- 2\n // | |\n // 0 ---- 3\n\n points.push({\n x: xMax,\n y: yMax\n }, {\n x: xMax,\n y: yMin\n });\n return points;\n}\n/**\n * @ignore\n * 根据矩形关键点绘制 path\n * @param points 关键点数组\n * @param isClosed path 是否需要闭合\n * @returns 返回矩形的 path\n */\n\nexport function getRectPath(points, isClosed) {\n if (isClosed === void 0) {\n isClosed = true;\n }\n\n var path = [];\n var firstPoint = points[0];\n path.push(['M', firstPoint.x, firstPoint.y]);\n\n for (var i = 1, len = points.length; i < len; i++) {\n path.push(['L', points[i].x, points[i].y]);\n } // 对于 shape=\"line\" path 不应该闭合,否则会造成 lineCap 绘图属性失效\n\n\n if (isClosed) {\n path.push(['L', firstPoint.x, firstPoint.y]); // 需要闭合\n\n path.push(['z']);\n }\n\n return path;\n}\n/**\n * 处理 rect path 的 radius\n * @returns 返回矩形 path 的四个角的 arc 半径\n */\n\nexport function parseRadius(radius, minLength) {\n var r1 = 0;\n var r2 = 0;\n var r3 = 0;\n var r4 = 0;\n\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 * 获取 interval 矩形背景的 path\n * @param cfg 关键点的信息\n * @param points 已转化为画布坐标的 4 个关键点\n * @param coordinate 坐标系\n * @returns 返回矩形背景的 path\n */\n\nexport function getBackgroundRectPath(cfg, points, coordinate) {\n var path = [];\n\n if (coordinate.isRect) {\n var p0 = coordinate.isTransposed ? {\n x: coordinate.start.x,\n y: points[0].y\n } : {\n x: points[0].x,\n y: coordinate.start.y\n };\n var p1 = coordinate.isTransposed ? {\n x: coordinate.end.x,\n y: points[2].y\n } : {\n x: points[3].x,\n y: coordinate.end.y\n }; // corner radius of background shape works only in 笛卡尔坐标系\n\n var radius = get(cfg, ['background', 'style', 'radius']);\n\n if (radius) {\n var width = coordinate.isTransposed ? Math.abs(points[0].y - points[2].y) : points[2].x - points[1].x;\n var height = coordinate.isTransposed ? coordinate.getWidth() : coordinate.getHeight();\n\n var _a = __read(parseRadius(radius, Math.min(width, height)), 4),\n r1 = _a[0],\n r2 = _a[1],\n r3 = _a[2],\n r4 = _a[3]; // 同时存在 坐标系是否发生转置 和 y 镜像的时候\n\n\n var isReflectYTransposed_1 = coordinate.isTransposed && coordinate.isReflect('y');\n var bump = isReflectYTransposed_1 ? 0 : 1;\n\n var opposite = function opposite(r) {\n return isReflectYTransposed_1 ? -r : r;\n };\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 var center = coordinate.getCenter();\n\n var _b = getAngle(cfg, coordinate),\n startAngle = _b.startAngle,\n endAngle = _b.endAngle;\n\n if (coordinate.type !== 'theta' && !coordinate.isTransposed) {\n // 获取扇形 path\n path = getSectorPath(center.x, center.y, coordinate.getRadius(), startAngle, endAngle);\n } else {\n var pow = function pow(v) {\n return Math.pow(v, 2);\n };\n\n var r1 = Math.sqrt(pow(center.x - points[0].x) + pow(center.y - points[0].y));\n var r2 = Math.sqrt(pow(center.x - points[2].x) + pow(center.y - points[2].y)); // 获取扇形 path(其实是一个圆环,从 coordinate 的起始角度到结束角度)\n\n path = getSectorPath(center.x, center.y, r1, coordinate.startAngle, coordinate.endAngle, r2);\n }\n }\n\n return path;\n}\n/**\n * @ignore\n * 根据矩形关键点绘制 path\n * @param points 关键点数组\n * @param lineCap 'round'圆角样式\n * @param coor 坐标\n * @returns 返回矩形的 path\n */\n\nexport function getIntervalRectPath(points, lineCap, coor) {\n var width = coor.getWidth();\n var height = coor.getHeight();\n var isRect = coor.type === 'rect';\n var path = [];\n var r = (points[2].x - points[1].x) / 2;\n var ry = coor.isTransposed ? r * height / width : r * width / height;\n\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\n path.push(['z']);\n } else {\n path = getRectPath(points);\n }\n\n return path;\n}\n/**\n * @ignore\n * 根据 funnel 关键点绘制漏斗图的 path\n * @param points 图形关键点信息\n * @param nextPoints 下一个数据的图形关键点信息\n * @param isPyramid 是否为尖底漏斗图\n * @returns 返回漏斗图的图形 path\n */\n\nexport function getFunnelPath(points, nextPoints, isPyramid) {\n var path = [];\n\n if (!isNil(nextPoints)) {\n path.push(['M', points[0].x, points[0].y], ['L', points[1].x, points[1].y], ['L', nextPoints[1].x, nextPoints[1].y], ['L', nextPoints[0].x, nextPoints[0].y], ['Z']);\n } else if (isPyramid) {\n // 金字塔最底部\n path.push(['M', points[0].x, points[0].y], ['L', points[1].x, points[1].y], ['L', (points[2].x + points[3].x) / 2, (points[2].y + points[3].y) / 2], ['Z']);\n } else {\n // 漏斗图最底部\n path.push(['M', points[0].x, points[0].y], ['L', points[1].x, points[1].y], ['L', points[2].x, points[2].y], ['L', points[3].x, points[3].y], ['Z']);\n }\n\n return path;\n}\n/**\n * 交换两个对象\n */\n\nfunction swap(p0, p1) {\n return [p1, p0];\n}\n/**\n * 获取 倒角 矩形\n * - 目前只适用于笛卡尔坐标系下\n */\n\n\nexport function getRectWithCornerRadius(points, coordinate, radius) {\n var _a, _b, _c, _d, _e, _f, _g; // 获取 四个关键点\n\n\n var _h = __read(__spreadArray([], __read(points), false), 4),\n p0 = _h[0],\n p1 = _h[1],\n p2 = _h[2],\n p3 = _h[3];\n\n var _j = __read(typeof radius === 'number' ? Array(4).fill(radius) : radius, 4),\n r1 = _j[0],\n r2 = _j[1],\n r3 = _j[2],\n r4 = _j[3];\n\n if (coordinate.isTransposed) {\n _a = __read(swap(p1, p3), 2), p1 = _a[0], p3 = _a[1];\n }\n /**\n * 存在镜像\n */\n\n\n if (coordinate.isReflect('y')) {\n _b = __read(swap(p0, p1), 2), p0 = _b[0], p1 = _b[1];\n _c = __read(swap(p2, p3), 2), p2 = _c[0], p3 = _c[1];\n }\n\n if (coordinate.isReflect('x')) {\n _d = __read(swap(p0, p3), 2), p0 = _d[0], p3 = _d[1];\n _e = __read(swap(p1, p2), 2), p1 = _e[0], p2 = _e[1];\n }\n\n var path = [];\n /**\n * p1 → p2\n * ↑ ↓\n * p0 ← p3\n *\n * 负数的情况,关键点会变成下面的形式\n *\n * p0 ← p3 p2 ← p1\n * ↓ ↑ ↓ ↑\n * p1 → p2 --> (转置下) p3 → p0\n */\n\n var abs = function abs(v) {\n return Math.abs(v);\n };\n\n _f = __read(parseRadius([r1, r2, r3, r4], Math.min(abs(p3.x - p0.x), abs(p1.y - p0.y))).map(function (d) {\n return abs(d);\n }), 4), r1 = _f[0], r2 = _f[1], r3 = _f[2], r4 = _f[3];\n\n if (coordinate.isTransposed) {\n _g = __read([r4, r1, r2, r3], 4), r1 = _g[0], r2 = _g[1], r3 = _g[2], r4 = _g[3];\n }\n\n if (p0.y < p1.y\n /** 负数情况 */\n ) {\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\n /** 逆时针 */\n , 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}","import { __assign } from \"tslib\";\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/** Interval 的 shape 工厂 */\n\nvar IntervalShapeFactory = registerShapeFactory('interval', {\n defaultShapeType: 'rect',\n getDefaultPoints: function getDefaultPoints(pointInfo) {\n return getRectPoints(pointInfo);\n }\n});\n/** Inerval 默认 shape,填充的矩形 */\n\nregisterShape('interval', 'rect', {\n draw: function draw(cfg, container) {\n var style = getStyle(cfg, false, true);\n var group = container;\n var backgroundCfg = cfg === null || cfg === void 0 ? void 0 : cfg.background;\n\n if (backgroundCfg) {\n group = container.addGroup({\n name: 'interval-group'\n });\n var backgroundStyle = getBackgroundRectStyle(cfg);\n var backgroundPath = getBackgroundRectPath(cfg, this.parsePoints(cfg.points), this.coordinate);\n group.addShape('path', {\n attrs: __assign(__assign({}, backgroundStyle), {\n path: backgroundPath\n }),\n zIndex: -1,\n name: BACKGROUND_SHAPE\n });\n }\n\n var path;\n\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, style.lineCap, this.coordinate));\n }\n\n var shape = group.addShape('path', {\n attrs: __assign(__assign({}, style), {\n path: path\n }),\n name: 'interval'\n });\n return backgroundCfg ? group : shape;\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color,\n isInPolar = markerCfg.isInPolar;\n\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});\nexport default IntervalShapeFactory;","import { flatten, isString, valuesOfKey, isNil } from '@antv/util';\nimport { getXDimensionLength } from '../../util/coordinate'; // 已经排序后的数据查找距离最小的\n\nfunction findMinDistance(arr, scale) {\n var count = arr.length;\n var sourceArr = arr;\n\n if (isString(sourceArr[0])) {\n // 日期类型的 values 经常上文本类型,所以需要转换一下\n sourceArr = arr.map(function (v) {\n return scale.translate(v);\n });\n }\n\n var distance = sourceArr[1] - sourceArr[0];\n\n for (var i = 2; i < count; i++) {\n var tmp = sourceArr[i] - sourceArr[i - 1];\n\n if (distance > tmp) {\n distance = tmp;\n }\n }\n\n return distance;\n}\n\nfunction getDodgeCount(dataArray, dodgeBy) {\n if (dodgeBy) {\n var mergeData = flatten(dataArray);\n var values = valuesOfKey(mergeData, dodgeBy);\n return values.length;\n }\n\n return dataArray.length;\n}\n/** @ignore */\n\n\nexport function getDefaultSize(geometry) {\n var theme = geometry.theme;\n var coordinate = geometry.coordinate;\n var xScale = geometry.getXScale();\n var xValues = xScale.values;\n var dataArray = geometry.beforeMappingData;\n var count = xValues.length;\n var xDimensionLength = getXDimensionLength(geometry.coordinate); // 获取柱宽相关配置项\n\n var intervalPadding = geometry.intervalPadding,\n dodgePadding = geometry.dodgePadding; // 兼容theme配置\n\n var maxColumnWidth = geometry.maxColumnWidth || theme.maxColumnWidth;\n var minColumnWidth = geometry.minColumnWidth || theme.minColumnWidth;\n var columnWidthRatio = geometry.columnWidthRatio || theme.columnWidthRatio;\n var multiplePieWidthRatio = geometry.multiplePieWidthRatio || theme.multiplePieWidthRatio;\n var roseWidthRatio = geometry.roseWidthRatio || theme.roseWidthRatio; // 线性情况下count值\n\n if (xScale.isLinear && xValues.length > 1) {\n // Linear 类型用户有可能设置了 min, max 范围所以需要根据数据最小区间计算 count\n xValues.sort();\n var interval = findMinDistance(xValues, xScale);\n count = (xScale.max - xScale.min) / interval;\n\n if (xValues.length > count) {\n count = xValues.length;\n }\n }\n\n var range = xScale.range;\n var normalizedSize = 1 / count;\n var wr = 1;\n\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\n wr = columnWidthRatio;\n } // 基础柱状图\n\n\n if (!isNil(intervalPadding) && intervalPadding >= 0) {\n // 配置组间距情况\n var normalizedIntervalPadding = intervalPadding / xDimensionLength;\n normalizedSize = (1 - (count - 1) * normalizedIntervalPadding) / count;\n } else {\n // 默认情况\n normalizedSize *= wr;\n } // 分组柱状图\n\n\n if (geometry.getAdjust('dodge')) {\n var dodgeAdjust = geometry.getAdjust('dodge');\n var dodgeBy = dodgeAdjust.dodgeBy;\n var dodgeCount = getDodgeCount(dataArray, dodgeBy);\n\n if (!isNil(dodgePadding) && dodgePadding >= 0) {\n // 仅配置组内间距情况\n var 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\n normalizedSize = normalizedSize >= 0 ? normalizedSize : 0;\n } // 最大和最小限制\n\n\n if (!isNil(maxColumnWidth) && maxColumnWidth >= 0) {\n var normalizedMaxColumnWidth = maxColumnWidth / xDimensionLength;\n\n if (normalizedSize > normalizedMaxColumnWidth) {\n normalizedSize = normalizedMaxColumnWidth;\n }\n } // \bminColumnWidth可能设置为0\n\n\n if (!isNil(minColumnWidth) && minColumnWidth >= 0) {\n var normalizedMinColumnWidth = minColumnWidth / xDimensionLength;\n\n if (normalizedSize < normalizedMinColumnWidth) {\n normalizedSize = normalizedMinColumnWidth;\n }\n }\n\n return normalizedSize;\n}","import { __extends } from \"tslib\";\nimport { get } from '@antv/util';\nimport { getXDimensionLength } from '../util/coordinate';\nimport Geometry from './base';\n/** 引入对应的 ShapeFactory */\n\nimport './shape/interval';\nimport { getDefaultSize } from './util/shape-size';\nimport { getMaxScale } from '../util/scale';\n/**\n * Interval 几何标记。\n * 用于绘制柱状图、饼图、条形图、玫瑰图等。\n */\n\nvar Interval =\n/** @class */\nfunction (_super) {\n __extends(Interval, _super);\n\n function Interval(cfg) {\n var _this = _super.call(this, cfg) || this;\n\n _this.type = 'interval';\n _this.shapeType = 'interval';\n _this.generatePoints = true;\n var background = cfg.background;\n _this.background = background;\n return _this;\n }\n /**\n * 获取每条数据的 Shape 绘制信息\n * @param obj 经过分组 -> 数字化 -> adjust 调整后的数据记录\n * @returns\n */\n\n\n Interval.prototype.createShapePointsCfg = function (obj) {\n var cfg = _super.prototype.createShapePointsCfg.call(this, obj); // 计算每个 shape 的 size\n\n\n var size;\n var sizeAttr = this.getAttribute('size');\n\n if (sizeAttr) {\n size = this.getAttributeValues(sizeAttr, obj)[0]; // 归一化\n\n var coordinate = this.coordinate;\n var coordinateWidth = getXDimensionLength(coordinate);\n size = size / coordinateWidth;\n } else {\n if (!this.defaultSize) {\n this.defaultSize = getDefaultSize(this);\n }\n\n size = this.defaultSize;\n }\n\n cfg.size = size;\n return cfg;\n };\n /**\n * 调整 y 轴的 scale 范围。\n * 对于 Y 轴为数值轴柱状图,默认从 0 开始 生长。\n */\n\n\n Interval.prototype.adjustScale = function () {\n _super.prototype.adjustScale.call(this);\n\n var 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 var scaleDefs = this.scaleDefs;\n var field = yScale.field,\n min = yScale.min,\n max = yScale.max,\n type = yScale.type;\n\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 } // 柱当柱状图全为负值时也需要从 0 开始生长,但是如果用户设置了则以用户的为准\n\n\n if (max <= 0 && !get(scaleDefs, [field, 'max'])) {\n yScale.change({\n max: 0\n });\n }\n }\n }\n };\n /**\n * @override\n */\n\n\n Interval.prototype.getDrawCfg = function (mappingData) {\n var shapeCfg = _super.prototype.getDrawCfg.call(this, mappingData);\n\n shapeCfg.background = this.background;\n return shapeCfg;\n };\n\n return Interval;\n}(Geometry);\n\nexport default Interval;","import { __extends } from \"tslib\";\nimport Path from './path';\n/** 引入 Path 对应的 ShapeFactory */\n\nimport './shape/line';\n/**\n * Line 几何标记。\n * 常用于折线图的绘制。\n */\n\nvar Line =\n/** @class */\nfunction (_super) {\n __extends(Line, _super);\n\n function Line(cfg) {\n var _this = _super.call(this, cfg) || this;\n\n _this.type = 'line';\n var _a = cfg.sortable,\n sortable = _a === void 0 ? false : _a; // 关闭默认的 X 轴数据排序\n\n _this.sortable = sortable;\n return _this;\n }\n\n return Line;\n}(Path);\n\nexport default Line;","import { __assign, __values } from \"tslib\";\nimport { MarkerSymbols } from '../../../util/marker';\nimport { getStyle } from '../util/get-style';\nexport var SHAPES = ['circle', 'square', 'bowtie', 'diamond', 'hexagon', 'triangle', 'triangle-down'];\nexport var HOLLOW_SHAPES = ['cross', 'tick', 'plus', 'hyphen', 'line'];\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 */\n\nexport function drawPoints(shape, cfg, container, shapeName, isStroke) {\n var e_1, _a;\n\n var style = getStyle(cfg, isStroke, !isStroke, 'r');\n var points = shape.parsePoints(cfg.points);\n var pointPosition = points[0];\n\n if (cfg.isStack) {\n pointPosition = points[1];\n } else if (points.length > 1) {\n var group = container.addGroup();\n\n try {\n for (var points_1 = __values(points), points_1_1 = points_1.next(); !points_1_1.done; points_1_1 = points_1.next()) {\n var point = points_1_1.value;\n group.addShape({\n type: 'marker',\n attrs: __assign(__assign(__assign({}, style), {\n symbol: MarkerSymbols[shapeName] || shapeName\n }), point)\n });\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (points_1_1 && !points_1_1.done && (_a = points_1[\"return\"])) _a.call(points_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return group;\n }\n\n return container.addShape({\n type: 'marker',\n attrs: __assign(__assign(__assign({}, style), {\n symbol: MarkerSymbols[shapeName] || shapeName\n }), pointPosition)\n });\n}","import { each } from '@antv/util';\nimport { MarkerSymbols } from '../../../util/marker';\nimport { registerShape, registerShapeFactory } from '../base';\nimport { splitPoints } from '../util/split-points';\nimport { drawPoints, SHAPES } from './util';\nvar PointShapeFactory = registerShapeFactory('point', {\n defaultShapeType: 'hollow-circle',\n getDefaultPoints: function getDefaultPoints(pointInfo) {\n return splitPoints(pointInfo);\n }\n});\neach(SHAPES, function (shapeName) {\n // 添加该 shape 对应的 hollow-shape\n registerShape('point', \"hollow-\".concat(shapeName), {\n draw: function draw(cfg, container) {\n return drawPoints(this, cfg, container, shapeName, true);\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color;\n return {\n symbol: MarkerSymbols[shapeName] || shapeName,\n style: {\n r: 4.5,\n stroke: color,\n fill: null\n }\n };\n }\n });\n});\nexport default PointShapeFactory;","import { __assign, __extends } from \"tslib\";\nimport Geometry from './base';\n/** 引入 Point 对应的 ShapeFactory */\n\nimport './shape/point';\n/**\n * Point 几何标记。\n * 常用于绘制点图。\n */\n\nvar Point =\n/** @class */\nfunction (_super) {\n __extends(Point, _super);\n\n function Point() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'point';\n _this.shapeType = 'point';\n _this.generatePoints = true;\n return _this;\n }\n /**\n * 获取一个点的绘制信息。\n * @param mappingDatum\n * @returns draw cfg\n */\n\n\n Point.prototype.getDrawCfg = function (mappingDatum) {\n var shapeCfg = _super.prototype.getDrawCfg.call(this, mappingDatum);\n\n return __assign(__assign({}, shapeCfg), {\n isStack: !!this.getAdjust('stack')\n });\n };\n\n return Point;\n}(Geometry);\n\nexport default Point;","import { __assign } from \"tslib\";\nimport { each, isEmpty, isEqual, last } from '@antv/util';\nimport { registerShape, registerShapeFactory } from '../base';\nimport { getStyle } from '../util/get-style';\n\nfunction getPath(points) {\n var flag = points[0];\n var i = 1;\n var path = [['M', flag.x, flag.y]];\n\n while (i < points.length) {\n var c = points[i];\n\n if (c.x !== points[i - 1].x || c.y !== points[i - 1].y) {\n path.push(['L', c.x, c.y]);\n\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\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 return path;\n}\n\nvar PolygonShapeFactory = registerShapeFactory('polygon', {\n defaultShapeType: 'polygon',\n getDefaultPoints: function getDefaultPoints(pointInfo) {\n var points = [];\n each(pointInfo.x, function (subX, index) {\n var subY = pointInfo.y[index];\n points.push({\n x: subX,\n y: subY\n });\n });\n return points;\n }\n});\nregisterShape('polygon', 'polygon', {\n draw: function draw(cfg, container) {\n if (!isEmpty(cfg.points)) {\n var shapeAttrs = getStyle(cfg, true, true);\n var path = this.parsePath(getPath(cfg.points));\n return container.addShape('path', {\n attrs: __assign(__assign({}, shapeAttrs), {\n path: path\n }),\n name: 'polygon'\n });\n }\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color;\n return {\n symbol: 'square',\n style: {\n r: 4,\n fill: color\n }\n };\n }\n});\nexport default PolygonShapeFactory;","import { __extends } from \"tslib\";\nimport { isArray } from '@antv/util';\nimport Geometry from './base';\n/** 引入 Path 对应的 ShapeFactory */\n\nimport './shape/polygon';\n/**\n * Polygon 几何标记。\n * 常用于绘制色块图、日历图等。\n */\n\nvar Polygon =\n/** @class */\nfunction (_super) {\n __extends(Polygon, _super);\n\n function Polygon() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'polygon';\n _this.shapeType = 'polygon';\n _this.generatePoints = true;\n return _this;\n }\n /**\n * 获取 Shape 的关键点数据。\n * @param obj\n * @returns\n */\n\n\n Polygon.prototype.createShapePointsCfg = function (obj) {\n var cfg = _super.prototype.createShapePointsCfg.call(this, obj);\n\n var x = cfg.x;\n var y = cfg.y;\n var temp; // x y 都是数组时,不做处理\n\n if (!(isArray(x) && isArray(y))) {\n var xScale = this.getXScale();\n var yScale = this.getYScale();\n var xCount = xScale.values.length;\n var yCount = yScale.values.length;\n var xOffset = 0.5 * 1 / xCount;\n var 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\n cfg.x = x;\n cfg.y = y;\n }\n\n return cfg;\n };\n\n return Polygon;\n}(Geometry);\n\nexport default Polygon;","import { __extends } from \"tslib\";\nimport { getXDimensionLength } from '../util/coordinate';\nimport Geometry from './base';\n/** 引入对应的 ShapeFactory */\n\nimport './shape/schema';\nimport { getDefaultSize } from './util/shape-size';\n/**\n * Schema 几何标记,用于一些自定义图形的绘制,比如箱型图、股票图等。\n */\n\nvar Schema =\n/** @class */\nfunction (_super) {\n __extends(Schema, _super);\n\n function Schema() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'schema';\n _this.shapeType = 'schema';\n _this.generatePoints = true;\n return _this;\n }\n /**\n * 获取 Shape 的关键点数据。\n * @param record\n * @returns\n */\n\n\n Schema.prototype.createShapePointsCfg = function (record) {\n var cfg = _super.prototype.createShapePointsCfg.call(this, record); // 计算每个 shape 的 size\n\n\n var size;\n var sizeAttr = this.getAttribute('size');\n\n if (sizeAttr) {\n size = this.getAttributeValues(sizeAttr, record)[0]; // 归一化\n\n var coordinate = this.coordinate;\n var coordinateWidth = getXDimensionLength(coordinate);\n size = size / coordinateWidth;\n } else {\n if (!this.defaultSize) {\n this.defaultSize = getDefaultSize(this);\n }\n\n size = this.defaultSize;\n }\n\n cfg.size = size;\n return cfg;\n };\n\n return Schema;\n}(Geometry);\n\nexport default Schema;","import { registerShapeFactory } from '../base';\nvar SchemaShapeFactory = registerShapeFactory('schema', {\n defaultShapeType: '' // 'schema' is for some custom shapes, so will not specify defaultShapeType\n\n});\nexport default SchemaShapeFactory;","import { __assign } from \"tslib\";\nimport { each, max, map, isArray } from '@antv/util';\nimport { registerShape, registerShapeFactory } from '../base';\nimport { getViolinPath } from '../util/get-path-points';\nimport { getStyle } from '../util/get-style';\n\nfunction normalizeSize(arr) {\n if (!isArray(arr)) {\n return [];\n }\n\n var maxValue = max(arr);\n return map(arr, function (num) {\n return num / maxValue;\n });\n}\n\nvar ViolinShapeFactory = registerShapeFactory('violin', {\n defaultShapeType: 'violin',\n getDefaultPoints: function getDefaultPoints(pointInfo) {\n var radius = pointInfo.size / 2;\n var points = [];\n var sizeArr = normalizeSize(pointInfo._size);\n each(pointInfo.y, function (y, index) {\n var offset = sizeArr[index] * radius;\n var isMin = index === 0;\n var isMax = index === pointInfo.y.length - 1;\n points.push({\n isMin: isMin,\n isMax: isMax,\n x: pointInfo.x - offset,\n y: y\n });\n points.unshift({\n isMin: isMin,\n isMax: isMax,\n x: pointInfo.x + offset,\n y: y\n });\n });\n return points;\n }\n});\nregisterShape('violin', 'violin', {\n draw: function draw(cfg, container) {\n var shapeAttrs = getStyle(cfg, true, true);\n var path = this.parsePath(getViolinPath(cfg.points));\n return container.addShape('path', {\n attrs: __assign(__assign({}, shapeAttrs), {\n path: path\n }),\n name: 'violin'\n });\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color;\n return {\n symbol: 'circle',\n style: {\n r: 4,\n fill: color\n }\n };\n }\n});\nexport default ViolinShapeFactory;","import { __extends } from \"tslib\";\nimport { get } from '@antv/util';\nimport { FIELD_ORIGIN } from '../constant';\nimport { getXDimensionLength } from '../util/coordinate';\nimport { getDefaultSize } from './util/shape-size';\nimport Geometry from './base';\n/** 引入 Path 对应的 ShapeFactory */\n\nimport './shape/violin';\n/**\n * Violin 几何标记。\n * 用于绘制小提琴图。\n */\n\nvar Violin =\n/** @class */\nfunction (_super) {\n __extends(Violin, _super);\n\n function Violin() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'violin';\n _this.shapeType = 'violin';\n _this.generatePoints = true;\n return _this;\n }\n /**\n * 获取 Shape 的关键点数据。\n * @param record\n * @returns\n */\n\n\n Violin.prototype.createShapePointsCfg = function (record) {\n var cfg = _super.prototype.createShapePointsCfg.call(this, record); // 计算每个 shape 的 size\n\n\n var size;\n var sizeAttr = this.getAttribute('size');\n\n if (sizeAttr) {\n size = this.getAttributeValues(sizeAttr, record)[0]; // 归一化\n\n var coordinate = this.coordinate;\n var coordinateWidth = getXDimensionLength(coordinate);\n size = size / coordinateWidth;\n } else {\n if (!this.defaultSize) {\n this.defaultSize = getDefaultSize(this);\n }\n\n size = this.defaultSize;\n }\n\n cfg.size = size;\n cfg._size = get(record[FIELD_ORIGIN], [this._sizeField]);\n return cfg;\n };\n /**\n * @override\n */\n\n\n Violin.prototype.initAttributes = function () {\n var attributeOption = this.attributeOption;\n var sizeField = attributeOption.size ? attributeOption.size.fields[0] : this._sizeField ? this._sizeField : 'size';\n this._sizeField = sizeField; // fixme 干啥要删掉\n\n delete attributeOption.size;\n\n _super.prototype.initAttributes.call(this);\n };\n\n return Violin;\n}(Geometry);\n\nexport default Violin;","import { each } from '@antv/util';\n/**\n * @ignore\n * Gets cpath\n * @param from\n * @param to\n * @returns\n */\n\nexport function getCPath(from, to) {\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 * @ignore\n * Gets qpath\n * @param to\n * @param center\n * @returns\n */\n\nexport function getQPath(to, center) {\n var points = [];\n points.push({\n x: center.x,\n y: center.y\n });\n points.push(to);\n var sub = ['Q'];\n each(points, function (point) {\n sub.push(point.x, point.y);\n });\n return sub;\n}","import { registerShape } from '../base';\nimport { getShapeAttrs } from './util';\n/**\n * 描边但不填充的区域图\n */\n\nregisterShape('area', 'line', {\n draw: function draw(cfg, container) {\n var attrs = getShapeAttrs(cfg, true, false, this);\n var shape = container.addShape({\n type: 'path',\n attrs: attrs,\n name: 'area'\n });\n return shape;\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color;\n return {\n symbol: function symbol(x, y, r) {\n if (r === void 0) {\n r = 5.5;\n }\n\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});","import { registerShape } from '../base';\nimport { getConstraint, getShapeAttrs } from './util';\n/**\n * 填充的平滑曲面图\n */\n\nregisterShape('area', 'smooth', {\n draw: function draw(cfg, container) {\n var coordinate = this.coordinate;\n var attrs = getShapeAttrs(cfg, false, true, this, getConstraint(coordinate));\n var shape = container.addShape({\n type: 'path',\n attrs: attrs,\n name: 'area'\n });\n return shape;\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color;\n return {\n symbol: function symbol(x, y, r) {\n if (r === void 0) {\n r = 5.5;\n }\n\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});","import { registerShape } from '../base';\nimport { getConstraint, getShapeAttrs } from './util';\n/** 描边的平滑曲面图 */\n\nregisterShape('area', 'smooth-line', {\n draw: function draw(cfg, container) {\n var coordinate = this.coordinate;\n var attrs = getShapeAttrs(cfg, true, true, this, getConstraint(coordinate));\n var shape = container.addShape({\n type: 'path',\n attrs: attrs,\n name: 'area'\n });\n return shape;\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color;\n return {\n symbol: function symbol(x, y, r) {\n if (r === void 0) {\n r = 5.5;\n }\n\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});","import { __assign } from \"tslib\";\nimport { getArcPath } from '../../../util/graphics';\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\nimport { getCPath, getQPath } from './util';\n\nfunction getArcShapePath(from, to, center) {\n var sub = getQPath(to, center);\n var path = [['M', from.x, from.y]];\n path.push(sub);\n return path;\n}\n\nfunction getArcShapeWeightPath(points, center) {\n var arc1 = getQPath(points[1], center);\n var arc2 = getQPath(points[3], center);\n var 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: function draw(cfg, container) {\n var style = getStyle(cfg, true, false, 'lineWidth');\n var points = cfg.points;\n var type = points.length > 2 ? 'weight' : 'normal';\n var path;\n\n if (cfg.isInCircle) {\n var center = {\n x: 0,\n y: 1\n };\n\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\n path = this.parsePath(path);\n return container.addShape('path', {\n attrs: __assign(__assign({}, style), {\n path: path\n })\n });\n } else {\n if (type === 'normal') {\n points = this.parsePoints(points);\n path = getArcPath((points[1].x + points[0].x) / 2, points[0].y, Math.abs(points[1].x - points[0].x) / 2, Math.PI, Math.PI * 2);\n return container.addShape('path', {\n attrs: __assign(__assign({}, style), {\n path: path\n })\n });\n } else {\n var c1 = getCPath(points[1], points[3]);\n var c2 = getCPath(points[2], points[0]);\n path = [['M', points[0].x, points[0].y], ['L', points[1].x, points[1].y], c1, ['L', points[3].x, points[3].y], ['L', points[2].x, points[2].y], c2, ['Z']];\n path = this.parsePath(path);\n style.fill = style.stroke;\n return container.addShape('path', {\n attrs: __assign(__assign({}, style), {\n path: path\n })\n });\n }\n }\n },\n getMarker: function getMarker(markerCfg) {\n return {\n symbol: 'circle',\n style: {\n r: 4.5,\n fill: markerCfg.color\n }\n };\n }\n});","import { __assign } from \"tslib\";\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\nimport { getCPath } from './util';\n\nfunction getSmoothPath(from, to) {\n var sub = getCPath(from, to);\n var path = [['M', from.x, from.y]];\n path.push(sub);\n return path;\n}\n\nregisterShape('edge', 'smooth', {\n draw: function draw(cfg, container) {\n var style = getStyle(cfg, true, false, 'lineWidth');\n var points = cfg.points;\n var path = this.parsePath(getSmoothPath(points[0], points[1]));\n return container.addShape('path', {\n attrs: __assign(__assign({}, style), {\n path: path\n })\n });\n },\n getMarker: function getMarker(markerCfg) {\n return {\n symbol: 'circle',\n style: {\n r: 4.5,\n fill: markerCfg.color\n }\n };\n }\n});","import { __assign } from \"tslib\";\nimport { each } from '@antv/util';\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\nvar CORNER_PERCENT = 1 / 3;\n\nfunction getVHVPath(from, to) {\n var 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 var path = [['M', from.x, from.y]];\n each(points, function (point) {\n path.push(['L', point.x, point.y]);\n });\n return path;\n}\n\nregisterShape('edge', 'vhv', {\n draw: function draw(cfg, container) {\n var style = getStyle(cfg, true, false, 'lineWidth');\n var points = cfg.points;\n var path = this.parsePath(getVHVPath(points[0], points[1]));\n return container.addShape('path', {\n attrs: __assign(__assign({}, style), {\n path: path\n })\n });\n },\n getMarker: function getMarker(markerCfg) {\n return {\n symbol: 'circle',\n style: {\n r: 4.5,\n fill: markerCfg.color\n }\n };\n }\n});","import { __assign } from \"tslib\";\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\nimport { getFunnelPath, getRectPoints } from './util';\n/** 漏斗图 */\n\nregisterShape('interval', 'funnel', {\n getPoints: function getPoints(shapePoint) {\n shapePoint.size = shapePoint.size * 2; // 漏斗图的 size 是柱状图的两倍\n\n return getRectPoints(shapePoint);\n },\n draw: function draw(cfg, container) {\n var style = getStyle(cfg, false, true);\n var path = this.parsePath(getFunnelPath(cfg.points, cfg.nextPoints, false));\n var shape = container.addShape('path', {\n attrs: __assign(__assign({}, style), {\n path: path\n }),\n name: 'interval'\n });\n return shape;\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color;\n return {\n symbol: 'square',\n style: {\n r: 4,\n fill: color\n }\n };\n }\n});","import { __assign } from \"tslib\";\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: function draw(cfg, container) {\n var style = getStyle(cfg, true, false);\n var group = container;\n var backgroundCfg = cfg === null || cfg === void 0 ? void 0 : cfg.background;\n\n if (backgroundCfg) {\n group = container.addGroup();\n var backgroundStyle = getBackgroundRectStyle(cfg);\n var backgroundPath = getBackgroundRectPath(cfg, this.parsePoints(cfg.points), this.coordinate);\n group.addShape('path', {\n attrs: __assign(__assign({}, backgroundStyle), {\n path: backgroundPath\n }),\n zIndex: -1,\n name: BACKGROUND_SHAPE\n });\n }\n\n var path = this.parsePath(getRectPath(cfg.points));\n var shape = group.addShape('path', {\n attrs: __assign(__assign({}, style), {\n path: path\n }),\n name: 'interval'\n });\n return backgroundCfg ? group : shape;\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color,\n isInPolar = markerCfg.isInPolar;\n\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});","import { __assign } from \"tslib\";\nimport { isArray } from '@antv/util';\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\nimport { getRectPath } from './util';\nimport { omit } from '../../../util/helper'; // 根据数据点生成 Line 的两个关键点\n\nfunction getLinePoints(pointInfo) {\n var x = pointInfo.x,\n y = pointInfo.y,\n y0 = pointInfo.y0;\n\n if (isArray(y)) {\n return y.map(function (yItem, idx) {\n return {\n x: isArray(x) ? x[idx] : x,\n y: yItem\n };\n });\n } // 起始点从 y0 开始\n\n\n return [{\n x: x,\n y: y0\n }, {\n x: x,\n y: y\n }];\n}\n\nregisterShape('interval', 'line', {\n getPoints: function getPoints(shapePoint) {\n return getLinePoints(shapePoint);\n },\n draw: function draw(cfg, container) {\n var style = getStyle(cfg, true, false, 'lineWidth');\n var newStyle = omit(__assign({}, style), ['fill']);\n var path = this.parsePath(getRectPath(cfg.points, false));\n var shape = container.addShape('path', {\n attrs: __assign(__assign({}, newStyle), {\n path: path\n }),\n name: 'interval'\n });\n return shape;\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color;\n return {\n symbol: function symbol(x, y, r) {\n return [['M', x, y - r], ['L', x, y + r]];\n },\n style: {\n r: 5,\n stroke: color\n }\n };\n }\n});","import { __assign } from \"tslib\";\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\nimport { getFunnelPath, getRectPoints } from './util';\n/** 金字塔图,尖底漏斗图 */\n\nregisterShape('interval', 'pyramid', {\n getPoints: function getPoints(shapePoint) {\n shapePoint.size = shapePoint.size * 2; // 漏斗图的 size 是柱状图的两倍\n\n return getRectPoints(shapePoint);\n },\n draw: function draw(cfg, container) {\n var style = getStyle(cfg, false, true);\n var path = this.parsePath(getFunnelPath(cfg.points, cfg.nextPoints, true));\n var shape = container.addShape('path', {\n attrs: __assign(__assign({}, style), {\n path: path\n }),\n name: 'interval'\n });\n return shape;\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color;\n return {\n symbol: 'square',\n style: {\n r: 4,\n fill: color\n }\n };\n }\n});","import { __assign, __read } from \"tslib\";\nimport { isArray } from '@antv/util';\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style'; // 根据数据点生成 tick shape 的 6 个关键点\n\nfunction getTickPoints(pointInfo) {\n var _a;\n\n var x = pointInfo.x,\n y = pointInfo.y,\n y0 = pointInfo.y0,\n size = pointInfo.size;\n var yMin;\n var yMax;\n\n if (isArray(y)) {\n _a = __read(y, 2), yMin = _a[0], yMax = _a[1];\n } else {\n yMin = y0;\n yMax = y;\n }\n\n var xMax = x + size / 2;\n var xMin = x - size / 2; // tick 关键点顺序\n // 4 - 1 - 5\n // |\n // 2 - 0 - 3\n\n return [{\n x: x,\n y: yMin\n }, {\n x: x,\n y: yMax\n }, {\n x: xMin,\n y: yMin\n }, {\n x: xMax,\n y: yMin\n }, {\n x: xMin,\n y: yMax\n }, {\n x: xMax,\n y: yMax\n }];\n} // 根据 tick 关键点绘制 path\n\n\nfunction getTickPath(points) {\n return [['M', points[0].x, points[0].y], ['L', points[1].x, points[1].y], ['M', points[2].x, points[2].y], ['L', points[3].x, points[3].y], ['M', points[4].x, points[4].y], ['L', points[5].x, points[5].y]];\n}\n/** I 形状柱状图,常用于 error bar chart */\n\n\nregisterShape('interval', 'tick', {\n getPoints: function getPoints(shapePoint) {\n return getTickPoints(shapePoint);\n },\n draw: function draw(cfg, container) {\n var style = getStyle(cfg, true, false);\n var path = this.parsePath(getTickPath(cfg.points));\n var shape = container.addShape('path', {\n attrs: __assign(__assign({}, style), {\n path: path\n }),\n name: 'interval'\n });\n return shape;\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color;\n return {\n symbol: function symbol(x, y, r) {\n return [['M', x - r / 2, y - r], ['L', x + r / 2, y - r], ['M', x, y - r], ['L', x, y + r], ['M', x - r / 2, y + r], ['L', x + r / 2, y + r]];\n },\n style: {\n r: 5,\n stroke: color\n }\n };\n }\n});","import { __assign } from \"tslib\";\nimport { each } from '@antv/util';\nimport { registerShape } from '../base';\nimport { getPathPoints } from '../util/get-path-points';\nimport { getStyle } from '../util/get-style';\nimport { getLineMarker } from './util';\n\nvar interpolateCallback = function interpolateCallback(point, nextPoint, shapeType) {\n var x = point.x;\n var y = point.y;\n var nextX = nextPoint.x;\n var nextY = nextPoint.y;\n var result;\n\n switch (shapeType) {\n case 'hv':\n result = [{\n x: nextX,\n y: y\n }];\n break;\n\n case 'vh':\n result = [{\n x: x,\n y: nextY\n }];\n break;\n\n case 'hvh':\n var middleX = (nextX + x) / 2;\n result = [{\n x: middleX,\n y: y\n }, {\n x: middleX,\n y: nextY\n }];\n break;\n\n case 'vhv':\n var middleY = (y + nextY) / 2;\n result = [{\n x: x,\n y: middleY\n }, {\n x: nextX,\n y: middleY\n }];\n break;\n\n default:\n break;\n }\n\n return result;\n};\n\nfunction getInterpolatePoints(points, shapeType) {\n var result = [];\n each(points, function (point, index) {\n var nextPoint = points[index + 1];\n result.push(point);\n\n if (nextPoint) {\n var interpolatePoint = interpolateCallback(point, nextPoint, shapeType);\n result = result.concat(interpolatePoint);\n }\n });\n return result;\n} // 插值的图形path,不考虑null\n\n\nfunction getInterpolatePath(points) {\n return points.map(function (point, index) {\n return index === 0 ? ['M', point.x, point.y] : ['L', point.x, point.y];\n });\n} // 插值的图形\n\n\nfunction getInterpolateShapeAttrs(cfg, shapeType) {\n var points = getPathPoints(cfg.points, cfg.connectNulls, cfg.showSinglePoint); // 根据 connectNulls 值处理 points\n\n var path = [];\n each(points, function (eachLinePoints) {\n var interpolatePoints = getInterpolatePoints(eachLinePoints, shapeType);\n path = path.concat(getInterpolatePath(interpolatePoints));\n });\n return __assign(__assign({}, getStyle(cfg, true, false, 'lineWidth')), {\n path: path\n });\n} // step line\n\n\neach(['hv', 'vh', 'hvh', 'vhv'], function (shapeType) {\n registerShape('line', shapeType, {\n draw: function draw(cfg, container) {\n var attrs = getInterpolateShapeAttrs(cfg, shapeType);\n var shape = container.addShape({\n type: 'path',\n attrs: attrs,\n name: 'line'\n });\n return shape;\n },\n getMarker: function getMarker(markerCfg) {\n return getLineMarker(markerCfg, shapeType);\n }\n });\n});","import { __assign } from \"tslib\";\nimport { isArray, isNil } from '@antv/util';\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\n\nfunction parseValue(value) {\n var array = !isArray(value) ? [value] : value;\n var min = array[0]; // 最小值\n\n var max = array[array.length - 1]; // 最大值\n\n var min1 = array.length > 1 ? array[1] : min;\n var max1 = array.length > 3 ? array[3] : max;\n var median = array.length > 2 ? array[2] : min1;\n return {\n min: min,\n max: max,\n min1: min1,\n max1: max1,\n median: median\n };\n}\n\nfunction getBoxPoints(x, y, size) {\n var halfSize = size / 2;\n var pointsArray;\n\n if (isArray(y)) {\n // 2维\n var _a = parseValue(y),\n min = _a.min,\n max = _a.max,\n median = _a.median,\n min1 = _a.min1,\n max1 = _a.max1;\n\n var minX = x - halfSize;\n var maxX = x + halfSize;\n pointsArray = [[minX, max], [maxX, max], [x, max], [x, max1], [minX, min1], [minX, max1], [maxX, max1], [maxX, min1], [x, min1], [x, min], [minX, min], [maxX, min], [minX, median], [maxX, median]];\n } else {\n // 只有一个维度\n y = isNil(y) ? 0.5 : y;\n\n var _b = parseValue(x),\n min = _b.min,\n max = _b.max,\n median = _b.median,\n min1 = _b.min1,\n max1 = _b.max1;\n\n var minY = y - halfSize;\n var maxY = y + halfSize;\n pointsArray = [[min, minY], [min, maxY], [min, y], [min1, y], [min1, minY], [min1, maxY], [max1, maxY], [max1, minY], [max1, y], [max, y], [max, minY], [max, maxY], [median, minY], [median, maxY]];\n }\n\n return pointsArray.map(function (arr) {\n return {\n x: arr[0],\n y: arr[1]\n };\n });\n}\n\nfunction getBoxPath(points) {\n return [['M', points[0].x, points[0].y], ['L', points[1].x, points[1].y], ['M', points[2].x, points[2].y], ['L', points[3].x, points[3].y], ['M', points[4].x, points[4].y], ['L', points[5].x, points[5].y], ['L', points[6].x, points[6].y], ['L', points[7].x, points[7].y], ['L', points[4].x, points[4].y], ['Z'], ['M', points[8].x, points[8].y], ['L', points[9].x, points[9].y], ['M', points[10].x, points[10].y], ['L', points[11].x, points[11].y], ['M', points[12].x, points[12].y], ['L', points[13].x, points[13].y]];\n} // box shape\n\n\nregisterShape('schema', 'box', {\n getPoints: function getPoints(shapePoint) {\n var x = shapePoint.x,\n y = shapePoint.y,\n size = shapePoint.size;\n return getBoxPoints(x, y, size);\n },\n draw: function draw(cfg, container) {\n var style = getStyle(cfg, true, false);\n var path = this.parsePath(getBoxPath(cfg.points));\n var shape = container.addShape('path', {\n attrs: __assign(__assign({}, style), {\n path: path,\n name: 'schema'\n })\n });\n return shape;\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color;\n return {\n symbol: function symbol(x, y, r) {\n var yValues = [y - 6, y - 3, y, y + 3, y + 6];\n var points = getBoxPoints(x, yValues, r);\n return [['M', points[0].x + 1, points[0].y], ['L', points[1].x - 1, points[1].y], ['M', points[2].x, points[2].y], ['L', points[3].x, points[3].y], ['M', points[4].x, points[4].y], ['L', points[5].x, points[5].y], ['L', points[6].x, points[6].y], ['L', points[7].x, points[7].y], ['L', points[4].x, points[4].y], ['Z'], ['M', points[8].x, points[8].y], ['L', points[9].x, points[9].y], ['M', points[10].x + 1, points[10].y], ['L', points[11].x - 1, points[11].y], ['M', points[12].x, points[12].y], ['L', points[13].x, points[13].y]];\n },\n style: {\n r: 6,\n lineWidth: 1,\n stroke: color\n }\n };\n }\n});","import { __assign } from \"tslib\";\nimport { isArray } from '@antv/util';\nimport { padEnd } from '../../../util/helper';\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\n\nfunction getCandleYValues(value) {\n var array = !isArray(value) ? [value] : value; // 从大到小排序\n\n var sorted = array.sort(function (a, b) {\n return b - a;\n });\n return padEnd(sorted, 4, sorted[sorted.length - 1]);\n} // get candle shape's key points\n\n\nfunction getCandlePoints(x, y, size) {\n var yValues = getCandleYValues(y);\n return [{\n x: x,\n y: yValues[0]\n }, {\n x: x,\n y: yValues[1]\n }, {\n x: x - size / 2,\n y: yValues[2]\n }, {\n x: x - size / 2,\n y: yValues[1]\n }, {\n x: x + size / 2,\n y: yValues[1]\n }, {\n x: x + size / 2,\n y: yValues[2]\n }, {\n x: x,\n y: yValues[2]\n }, {\n x: x,\n y: yValues[3]\n }];\n}\n\nfunction getCandlePath(points) {\n return [['M', points[0].x, points[0].y], ['L', points[1].x, points[1].y], ['M', points[2].x, points[2].y], ['L', points[3].x, points[3].y], ['L', points[4].x, points[4].y], ['L', points[5].x, points[5].y], ['Z'], ['M', points[6].x, points[6].y], ['L', points[7].x, points[7].y]];\n} // k line shape\n\n\nregisterShape('schema', 'candle', {\n getPoints: function getPoints(shapePoint) {\n var x = shapePoint.x,\n y = shapePoint.y,\n size = shapePoint.size;\n return getCandlePoints(x, y, size);\n },\n draw: function draw(cfg, container) {\n var style = getStyle(cfg, true, true);\n var path = this.parsePath(getCandlePath(cfg.points));\n var shape = container.addShape('path', {\n attrs: __assign(__assign({}, style), {\n path: path,\n name: 'schema'\n })\n });\n return shape;\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color;\n return {\n symbol: function symbol(x, y, r) {\n var yValues = [y + 7.5, y + 3, y - 3, y - 7.5];\n var points = getCandlePoints(x, yValues, r);\n return [['M', points[0].x, points[0].y], ['L', points[1].x, points[1].y], ['M', points[2].x, points[2].y], ['L', points[3].x, points[3].y], ['L', points[4].x, points[4].y], ['L', points[5].x, points[5].y], ['Z'], ['M', points[6].x, points[6].y], ['L', points[7].x, points[7].y]];\n },\n style: {\n lineWidth: 1,\n stroke: color,\n fill: color,\n r: 6\n }\n };\n }\n});","import { __assign } from \"tslib\";\nimport { isEmpty, clamp } from '@antv/util';\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\n\nfunction getRectAttrs(points, size) {\n var width = Math.abs(points[0].x - points[2].x);\n var height = Math.abs(points[0].y - points[2].y);\n var len = Math.min(width, height);\n\n if (size) {\n len = clamp(size, 0, Math.min(width, height));\n }\n\n len = len / 2;\n var centerX = (points[0].x + points[2].x) / 2;\n var centerY = (points[0].y + points[2].y) / 2;\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: function draw(cfg, container) {\n if (!isEmpty(cfg.points)) {\n var shapeAttrs = getStyle(cfg, true, true);\n var points = this.parsePoints(cfg.points); // 转换为画布坐标\n\n return container.addShape('rect', {\n attrs: __assign(__assign({}, shapeAttrs), getRectAttrs(points, cfg.size)),\n name: 'polygon'\n });\n }\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color;\n return {\n symbol: 'square',\n style: {\n r: 4,\n fill: color\n }\n };\n }\n});","import { each } from '@antv/util';\nimport { MarkerSymbols } from '../../../util/marker';\nimport { registerShape } from '../base';\nimport { drawPoints, HOLLOW_SHAPES } from './util'; // 添加 hollowShape\n\neach(HOLLOW_SHAPES, function (shapeName) {\n registerShape('point', shapeName, {\n draw: function draw(cfg, container) {\n return drawPoints(this, cfg, container, shapeName, true);\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color;\n return {\n symbol: MarkerSymbols[shapeName],\n style: {\n r: 4.5,\n stroke: color,\n fill: null\n }\n };\n }\n });\n});","import { __values } from \"tslib\";\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\nregisterShape('point', 'image', {\n draw: function draw(cfg, container) {\n var e_1, _a;\n\n var size = getStyle(cfg, false, false, 'r').r;\n var points = this.parsePoints(cfg.points);\n var pointPosition = points[0];\n\n if (cfg.isStack) {\n pointPosition = points[1];\n } else if (points.length > 1) {\n var group = container.addGroup();\n\n try {\n for (var points_1 = __values(points), points_1_1 = points_1.next(); !points_1_1.done; points_1_1 = points_1.next()) {\n var point = points_1_1.value;\n group.addShape('image', {\n attrs: {\n x: point.x - size / 2,\n y: point.y - size,\n width: size,\n height: size,\n img: cfg.shape[1]\n }\n });\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (points_1_1 && !points_1_1.done && (_a = points_1[\"return\"])) _a.call(points_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return group;\n }\n\n return container.addShape('image', {\n attrs: {\n x: pointPosition.x - size / 2,\n y: pointPosition.y - size,\n width: size,\n height: size,\n img: cfg.shape[1]\n }\n });\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color;\n return {\n symbol: 'circle',\n style: {\n r: 4.5,\n fill: color\n }\n };\n }\n});","import { each } from '@antv/util';\nimport { MarkerSymbols } from '../../../util/marker';\nimport { registerShape } from '../base';\nimport { drawPoints, SHAPES } from './util'; // 所有的 SHAPES 都注册一下\n\neach(SHAPES, function (shapeName) {\n registerShape('point', shapeName, {\n draw: function draw(cfg, container) {\n return drawPoints(this, cfg, container, shapeName, false);\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color;\n return {\n symbol: MarkerSymbols[shapeName] || shapeName,\n style: {\n r: 4.5,\n fill: color\n }\n };\n }\n });\n});","import { __assign } from \"tslib\";\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: function draw(cfg, container) {\n var attrs = getStyle(cfg, true, true);\n var path = this.parsePath(getSmoothViolinPath(cfg.points));\n return container.addShape('path', {\n attrs: __assign(__assign({}, attrs), {\n path: path\n })\n });\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color;\n return {\n symbol: 'circle',\n style: {\n stroke: null,\n r: 4,\n fill: color\n }\n };\n }\n});","import { __assign } from \"tslib\";\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: function draw(cfg, container) {\n var attrs = getStyle(cfg, true, false);\n var path = this.parsePath(getViolinPath(cfg.points));\n return container.addShape('path', {\n attrs: __assign(__assign({}, attrs), {\n path: path\n })\n });\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color;\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: function draw(cfg, container) {\n var attrs = getStyle(cfg, true, false);\n var path = this.parsePath(getSmoothViolinPath(cfg.points));\n return container.addShape('path', {\n attrs: __assign(__assign({}, attrs), {\n path: path\n })\n });\n },\n getMarker: function getMarker(markerCfg) {\n var color = markerCfg.color;\n return {\n symbol: 'circle',\n style: {\n r: 4,\n fill: null,\n stroke: color\n }\n };\n }\n});","import { __assign, __extends } from \"tslib\";\nimport { get, deepMix, isArray } from '@antv/util';\nimport GeometryLabel from './base';\n/**\n * 柱状图 label\n */\n\nvar IntervalLabel =\n/** @class */\nfunction (_super) {\n __extends(IntervalLabel, _super);\n\n function IntervalLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * 获取 interval label 的方向,取决于 value 的值是正还是负\n * @param labelCfg\n */\n\n\n IntervalLabel.prototype.getLabelValueDir = function (mappingData) {\n // points 中的 x/y 和 transpose 无关\n var dim = 'y';\n var points = mappingData.points;\n return points[0][dim] <= points[2][dim] ? 1 : -1;\n };\n /**\n * 重载:根据 interval 值的正负来调整 label 偏移量\n * @param labelCfg\n * @param index\n * @param total\n */\n\n\n IntervalLabel.prototype.getLabelOffsetPoint = function (labelCfg, index, total, position) {\n var _a;\n\n var point = _super.prototype.getLabelOffsetPoint.call(this, labelCfg, index, total);\n\n var coordinate = this.getCoordinate();\n var transposed = coordinate.isTransposed;\n var dim = transposed ? 'x' : 'y';\n var dir = this.getLabelValueDir(labelCfg.mappingData);\n point = __assign(__assign({}, point), (_a = {}, _a[dim] = point[dim] * dir, _a));\n\n if (coordinate.isReflect('x')) {\n point = __assign(__assign({}, point), {\n x: point.x * -1\n });\n }\n\n if (coordinate.isReflect('y')) {\n point = __assign(__assign({}, point), {\n y: point.y * -1\n });\n }\n\n return point;\n };\n /**\n * 重载:定制 interval label 的默认主题配置\n * @param labelCfg\n */\n\n\n IntervalLabel.prototype.getThemedLabelCfg = function (labelCfg) {\n var geometry = this.geometry;\n var defaultLabelCfg = this.getDefaultLabelCfg();\n var theme = geometry.theme; // 如果 interval label position 设置为 middle,则将主题中的 offset 覆盖为 0\n\n return deepMix({}, defaultLabelCfg, theme.labels, labelCfg.position === 'middle' ? {\n offset: 0\n } : {}, labelCfg);\n };\n\n IntervalLabel.prototype.setLabelPosition = function (labelPointCfg, mappingData, index, position) {\n var coordinate = this.getCoordinate();\n var transposed = coordinate.isTransposed;\n var shapePoints = mappingData.points;\n var point0 = coordinate.convert(shapePoints[0]);\n var point2 = coordinate.convert(shapePoints[2]);\n var dir = this.getLabelValueDir(mappingData);\n var top;\n var right;\n var bottom;\n var left;\n var shape = isArray(mappingData.shape) ? mappingData.shape[0] : mappingData.shape;\n\n if (shape === 'funnel' || shape === 'pyramid') {\n // 处理漏斗图\n var nextPoints = get(mappingData, 'nextPoints');\n var points = get(mappingData, 'points');\n\n if (nextPoints) {\n // 非漏斗图底部\n var p0 = coordinate.convert(points[0]);\n var p1 = coordinate.convert(points[1]);\n var nextP0 = coordinate.convert(nextPoints[0]);\n var nextP1 = coordinate.convert(nextPoints[1]); // TODO: 使用包围盒的计算方法\n\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\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\n case 'bottom':\n if (transposed) {\n labelPointCfg.x = (right + left) / 2;\n }\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\n case 'middle':\n if (transposed) {\n labelPointCfg.x = (right + left) / 2;\n }\n\n labelPointCfg.y = (top + bottom) / 2;\n labelPointCfg.textAlign = get(labelPointCfg, 'textAlign', 'center');\n labelPointCfg.textBaseline = get(labelPointCfg, 'textBaseline', 'middle');\n break;\n\n case 'top':\n if (transposed) {\n labelPointCfg.x = (right + left) / 2;\n }\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\n default:\n break;\n }\n };\n\n return IntervalLabel;\n}(GeometryLabel);\n\nexport default IntervalLabel;","import { __assign, __extends } from \"tslib\";\nimport { each, get, isArray, map, isNumber, isString } from '@antv/util';\nimport { getDistanceToCenter } from '../../util/coordinate';\nimport { getAngleByPoint } from '../../util/coordinate';\nimport GeometryLabel from './base';\nvar HALF_PI = Math.PI / 2;\n/**\n * 极坐标下的图形 label\n */\n\nvar PolarLabel =\n/** @class */\nfunction (_super) {\n __extends(PolarLabel, _super);\n\n function PolarLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @override\n * @desc 获取 label offset\n * polar & theta coordinate support「string」type, should transform to 「number」\n */\n\n\n PolarLabel.prototype.getLabelOffset = function (offset) {\n var coordinate = this.getCoordinate();\n var actualOffset = 0;\n\n if (isNumber(offset)) {\n actualOffset = offset;\n } else if (isString(offset) && offset.indexOf('%') !== -1) {\n var r = coordinate.getRadius();\n\n if (coordinate.innerRadius > 0) {\n r = r * (1 - coordinate.innerRadius);\n }\n\n actualOffset = parseFloat(offset) * 0.01 * r;\n }\n\n return actualOffset;\n };\n /**\n * @override\n * 获取 labelItems, 增加切片 percent\n * @param mapppingArray\n */\n\n\n PolarLabel.prototype.getLabelItems = function (mapppingArray) {\n var items = _super.prototype.getLabelItems.call(this, mapppingArray);\n\n var yScale = this.geometry.getYScale();\n return map(items, function (item) {\n if (item && yScale) {\n var percent = yScale.scale(get(item.data, yScale.field));\n return __assign(__assign({}, item), {\n percent: percent\n });\n }\n\n return item;\n });\n };\n /**\n * @override\n * 获取文本的对齐方式\n * @param point\n */\n\n\n PolarLabel.prototype.getLabelAlign = function (point) {\n var coordinate = this.getCoordinate();\n var align;\n\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 var center = coordinate.getCenter();\n var offset = point.offset;\n\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\n return align;\n };\n /**\n * @override\n * 获取 label 的位置\n * @param labelCfg\n * @param mappingData\n * @param index\n */\n\n\n PolarLabel.prototype.getLabelPoint = function (labelCfg, mappingData, index) {\n var factor = 1;\n var arcPoint;\n var content = labelCfg.content[index];\n\n if (this.isToMiddle(mappingData)) {\n arcPoint = this.getMiddlePoint(mappingData.points);\n } else {\n if (labelCfg.content.length === 1 && index === 0) {\n index = 1;\n } else if (index === 0) {\n factor = -1;\n }\n\n arcPoint = this.getArcPoint(mappingData, index);\n }\n\n var offset = labelCfg.offset * factor;\n var middleAngle = this.getPointAngle(arcPoint);\n var isLabelEmit = labelCfg.labelEmit;\n var labelPositionCfg = this.getCirclePoint(middleAngle, offset, arcPoint, isLabelEmit);\n\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 ? this.getLabelRotate(middleAngle, offset, isLabelEmit) : labelCfg.rotate;\n labelPositionCfg.start = {\n x: arcPoint.x,\n y: arcPoint.y\n };\n return labelPositionCfg;\n };\n /**\n * 获取圆弧的位置\n */\n\n\n PolarLabel.prototype.getArcPoint = function (mappingData, index) {\n if (index === void 0) {\n index = 0;\n }\n\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 * @param point\n */\n\n\n PolarLabel.prototype.getPointAngle = function (point) {\n return getAngleByPoint(this.getCoordinate(), point);\n };\n /**\n * 获取坐标点与圆心形成的圆的位置信息\n * @param angle\n * @param offset\n * @param point\n * @param isLabelEmit\n */\n\n\n PolarLabel.prototype.getCirclePoint = function (angle, offset, point, isLabelEmit) {\n var coordinate = this.getCoordinate();\n var center = coordinate.getCenter();\n var r = getDistanceToCenter(coordinate, point);\n\n if (r === 0) {\n return __assign(__assign({}, center), {\n r: r\n });\n }\n\n var labelAngle = angle;\n\n if (coordinate.isTransposed && r > offset && !isLabelEmit) {\n var 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: r\n };\n };\n /**\n * 获取 label 的旋转角度\n * @param angle\n * @param offset\n * @param isLabelEmit\n */\n\n\n PolarLabel.prototype.getLabelRotate = function (angle, offset, isLabelEmit) {\n var rotate = angle + HALF_PI;\n\n if (isLabelEmit) {\n rotate -= HALF_PI;\n }\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\n return rotate;\n }; // 获取中心的位置\n\n\n PolarLabel.prototype.getMiddlePoint = function (points) {\n var coordinate = this.getCoordinate();\n var count = points.length;\n var middlePoint = {\n x: 0,\n y: 0\n };\n each(points, function (point) {\n middlePoint.x += point.x;\n middlePoint.y += point.y;\n });\n middlePoint.x /= count;\n middlePoint.y /= count;\n middlePoint = coordinate.convert(middlePoint);\n return middlePoint;\n }; // 是否居中\n\n\n PolarLabel.prototype.isToMiddle = function (mappingData) {\n return mappingData.x.length > 2;\n };\n\n return PolarLabel;\n}(GeometryLabel);\n\nexport default PolarLabel;","import { __assign, __extends } from \"tslib\";\nimport { deepMix, get, isArray } from '@antv/util';\nimport { getAngleByPoint } from '../../util/coordinate';\nimport { polarToCartesian } from '../../util/graphics';\nimport PolarLabel from './polar';\n/**\n * 饼图 label\n */\n\nvar PieLabel =\n/** @class */\nfunction (_super) {\n __extends(PieLabel, _super);\n\n function PieLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.defaultLayout = 'distribute';\n return _this;\n }\n\n PieLabel.prototype.getDefaultLabelCfg = function (offset, position) {\n var cfg = _super.prototype.getDefaultLabelCfg.call(this, offset, position);\n\n return deepMix({}, cfg, get(this.geometry.theme, 'pieLabels', {}));\n };\n /** @override */\n\n\n PieLabel.prototype.getLabelOffset = function (offset) {\n return _super.prototype.getLabelOffset.call(this, offset) || 0;\n };\n\n PieLabel.prototype.getLabelRotate = function (angle, offset, isLabelLimit) {\n var rotate;\n\n if (offset < 0) {\n rotate = angle;\n\n if (rotate > Math.PI / 2) {\n rotate = rotate - Math.PI;\n }\n\n if (rotate < -Math.PI / 2) {\n rotate = rotate + Math.PI;\n }\n }\n\n return rotate;\n };\n\n PieLabel.prototype.getLabelAlign = function (point) {\n var coordinate = this.getCoordinate();\n var center = coordinate.getCenter();\n var align;\n\n if (point.angle <= Math.PI / 2 && point.x >= center.x) {\n align = 'left';\n } else {\n align = 'right';\n }\n\n if (point.offset <= 0) {\n if (align === 'right') {\n align = 'left';\n } else {\n align = 'right';\n }\n }\n\n return align;\n };\n\n PieLabel.prototype.getArcPoint = function (point) {\n return point;\n };\n\n PieLabel.prototype.getPointAngle = function (point) {\n var coordinate = this.getCoordinate();\n var startPoint = {\n x: isArray(point.x) ? point.x[0] : point.x,\n y: point.y[0]\n };\n var endPoint = {\n x: isArray(point.x) ? point.x[1] : point.x,\n y: point.y[1]\n };\n var angle;\n var startAngle = getAngleByPoint(coordinate, startPoint);\n\n if (point.points && point.points[0].y === point.points[1].y) {\n angle = startAngle;\n } else {\n var endAngle = getAngleByPoint(coordinate, endPoint);\n\n if (startAngle >= endAngle) {\n // 100% pie slice\n endAngle = endAngle + Math.PI * 2;\n }\n\n angle = startAngle + (endAngle - startAngle) / 2;\n }\n\n return angle;\n };\n /** @override */\n\n\n PieLabel.prototype.getCirclePoint = function (angle, offset) {\n var coordinate = this.getCoordinate();\n var center = coordinate.getCenter();\n var r = coordinate.getRadius() + offset;\n return __assign(__assign({}, polarToCartesian(center.x, center.y, r, angle)), {\n angle: angle,\n r: r\n });\n };\n\n return PieLabel;\n}(PolarLabel);\n\nexport default PieLabel;","/**\n * 碰撞检测算法\n */\nexport function antiCollision(items, labelHeight, plotRange) {\n var labels = items.filter(function (item) {\n return !item.invisible;\n }); // sorted by y, mutable\n\n labels.sort(function (a, b) {\n return a.y - b.y;\n }); // adjust y position of labels to avoid overlapping\n\n var overlapping = true;\n var startY = plotRange.minY;\n var endY = plotRange.maxY;\n var totalHeight = Math.abs(startY - endY);\n var i;\n var maxY = 0;\n var minY = Number.MIN_VALUE;\n var boxes = labels.map(function (label) {\n if (label.y > maxY) {\n maxY = label.y;\n }\n\n if (label.y < minY) {\n minY = label.y;\n }\n\n return {\n content: label.content,\n size: labelHeight,\n targets: [label.y - startY],\n pos: null\n };\n });\n minY -= startY;\n\n if (maxY - startY > totalHeight) {\n totalHeight = maxY - startY;\n }\n\n while (overlapping) {\n /* eslint no-loop-func: 0 */\n boxes.forEach(function (box) {\n var 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 }); // detect overlapping and join boxes\n\n overlapping = false;\n i = boxes.length;\n\n while (i--) {\n if (i > 0) {\n var previousBox = boxes[i - 1];\n var box = boxes[i];\n\n if (previousBox.pos + previousBox.size > box.pos) {\n // overlapping\n previousBox.size += box.size;\n previousBox.targets = previousBox.targets.concat(box.targets); // overflow, shift up\n\n if (previousBox.pos + previousBox.size > totalHeight) {\n previousBox.pos = totalHeight - previousBox.size;\n }\n\n boxes.splice(i, 1); // removing box\n\n overlapping = true;\n }\n }\n }\n }\n\n i = 0; // step 4: normalize y and adjust x\n\n boxes.forEach(function (b) {\n var posInCompositeBox = startY + labelHeight / 2; // middle of the label\n\n b.targets.forEach(function () {\n labels[i].y = b.pos + posInCompositeBox;\n posInCompositeBox += labelHeight;\n i++;\n });\n });\n}","import { each } from '@antv/util';\nvar MAX_TIMES = 100;\n/**\n * @ignore\n * Greedy 贪婪算法\n */\n\nvar Greedy =\n/** @class */\nfunction () {\n function Greedy(cfg) {\n if (cfg === void 0) {\n cfg = {};\n }\n\n this.bitmap = {};\n var _a = cfg.xGap,\n xGap = _a === void 0 ? 1 : _a,\n _b = cfg.yGap,\n yGap = _b === void 0 ? 8 : _b;\n this.xGap = xGap;\n this.yGap = yGap;\n }\n\n Greedy.prototype.hasGap = function (bbox) {\n var hasGap = true;\n var bitmap = this.bitmap;\n var minX = Math.round(bbox.minX);\n var maxX = Math.round(bbox.maxX);\n var minY = Math.round(bbox.minY);\n var maxY = Math.round(bbox.maxY);\n\n for (var i = minX; i <= maxX; i += 1) {\n if (!bitmap[i]) {\n bitmap[i] = {};\n continue;\n }\n\n if (i === minX || i === maxX) {\n for (var 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\n return hasGap;\n };\n\n Greedy.prototype.fillGap = function (bbox) {\n var bitmap = this.bitmap;\n var minX = Math.round(bbox.minX);\n var maxX = Math.round(bbox.maxX);\n var minY = Math.round(bbox.minY);\n var maxY = Math.round(bbox.maxY); // filling grid\n\n for (var i = minX; i <= maxX; i += 1) {\n if (!bitmap[i]) {\n bitmap[i] = {};\n }\n }\n\n for (var i = minX; i <= maxX; i += this.xGap) {\n for (var j = minY; j <= maxY; j += this.yGap) {\n bitmap[i][j] = true;\n }\n\n bitmap[i][maxY] = true;\n } // filling y edges\n\n\n if (this.yGap !== 1) {\n for (var i = minY; i <= maxY; i += 1) {\n bitmap[minX][i] = true;\n bitmap[maxX][i] = true;\n }\n } // filling x edges\n\n\n if (this.xGap !== 1) {\n for (var i = minX; i <= maxX; i += 1) {\n bitmap[i][minY] = true;\n bitmap[i][maxY] = true;\n }\n }\n };\n\n Greedy.prototype.destroy = function () {\n this.bitmap = {};\n };\n\n return Greedy;\n}();\n\nfunction spiralFill(label, greedy, maxTimes) {\n if (maxTimes === void 0) {\n maxTimes = MAX_TIMES;\n }\n\n var dt = -1;\n\n var _a = label.attr(),\n x = _a.x,\n y = _a.y;\n\n var bbox = label.getCanvasBBox();\n var maxDelta = Math.sqrt(bbox.width * bbox.width + bbox.height * bbox.height);\n var dxdy;\n var t = -dt;\n var dx = 0;\n var dy = 0;\n\n var f = function f(param) {\n var 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\n var canFill = false;\n var times = 0;\n var accessedCache = {};\n\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\n if (!dx && !dy || accessedCache[\"\".concat(dx, \"-\").concat(dy)]) {\n continue;\n }\n\n label.attr({\n x: x + dx,\n y: y + dy\n });\n\n if (dx + dy < 0) {\n label.attr('textAlign', 'right');\n }\n\n times++;\n\n if (greedy.hasGap(label.getCanvasBBox())) {\n greedy.fillGap(label.getCanvasBBox());\n canFill = true;\n accessedCache[\"\".concat(dx, \"-\").concat(dy)] = true;\n break;\n }\n }\n\n return canFill;\n}\n/*\n * 根据如下规则尝试放置label\n * 5\n * ------------------\n * | 1 | 0 |\n * 8 —————————4———————— 7\n * | 2 | 3 |\n * ——————————————————\n * 6\n */\n\n\nfunction adjustLabelPosition(label, x, y, index) {\n var _a = label.getCanvasBBox(),\n width = _a.width,\n height = _a.height;\n\n var attrs = {\n x: x,\n y: y,\n textAlign: 'center'\n };\n\n switch (index) {\n case 0:\n attrs.y -= height + 1;\n attrs.x += 1;\n attrs.textAlign = 'left';\n break;\n\n case 1:\n attrs.y -= height + 1;\n attrs.x -= 1;\n attrs.textAlign = 'right';\n break;\n\n case 2:\n attrs.y += height + 1;\n attrs.x -= 1;\n attrs.textAlign = 'right';\n break;\n\n case 3:\n attrs.y += height + 1;\n attrs.x += 1;\n attrs.textAlign = 'left';\n break;\n\n case 5:\n attrs.y -= height * 2 + 2;\n break;\n\n case 6:\n attrs.y += height * 2 + 2;\n break;\n\n case 7:\n attrs.x += width + 1;\n attrs.textAlign = 'left';\n break;\n\n case 8:\n attrs.x -= width + 1;\n attrs.textAlign = 'right';\n break;\n\n default:\n break;\n }\n\n label.attr(attrs);\n return label.getCanvasBBox();\n}\n/**\n * @ignore\n * label 防遮挡布局:在不改变 label 位置的情况下对相互重叠的 label 进行调整。\n * 不同于 'overlap' 类型的布局,该布局不会对 label 的位置进行偏移调整。\n * @param labels 参与布局调整的 label 数组集合\n */\n\n\nexport function fixedOverlap(items, labels, shapes, region) {\n var greedy = new Greedy();\n each(labels, function (label) {\n var labelShape = label.find(function (shape) {\n return shape.get('type') === 'text';\n });\n\n if (!spiralFill(labelShape, greedy)) {\n label.remove(true);\n }\n });\n greedy.destroy();\n}\n/**\n * @ignore\n * label 防遮挡布局:为了防止 label 之间相互覆盖同时保证尽可能多 的 label 展示,通过尝试将 label 向**四周偏移**来剔除放不下的 label\n * @param labels 参与布局调整的 label 数组集合\n */\n\nexport function overlap(items, labels, shapes, region) {\n var greedy = new Greedy();\n each(labels, function (label) {\n var labelShape = label.find(function (shape) {\n return shape.get('type') === 'text';\n });\n\n var _a = labelShape.attr(),\n x = _a.x,\n y = _a.y;\n\n var canFill = false;\n\n for (var i = 0; i <= 8; i++) {\n var bbox = adjustLabelPosition(labelShape, x, y, i);\n\n if (greedy.hasGap(bbox)) {\n greedy.fillGap(bbox);\n canFill = true;\n break;\n }\n }\n\n if (!canFill) {\n label.remove(true);\n }\n });\n greedy.destroy();\n}","import { __read, __spreadArray } from \"tslib\";\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 * @private\n * 1. 获取投影轴\n */\n\n\nfunction getAxes(points\n/** 多边形的关键点 */\n) {\n // 目前先处理 平行矩形 的场景, 其他多边形不处理\n if (points.length > 4) {\n return [];\n } // 获取向量\n\n\n var vector = function vector(start, end) {\n return [end.x - start.x, end.y - start.y];\n }; // 由于 矩形的平行原理,所以只有 2 条投影轴: A -> B, B -> C\n\n\n var AB = vector(points[0], points[1]);\n var BC = vector(points[1], points[2]);\n return [AB, BC];\n}\n/**\n * @private\n * 绕指定点顺时针旋转后的点坐标\n * 默认绕原点旋转\n */\n\n\nfunction rotateAtPoint(point, deg, origin) {\n if (deg === void 0) {\n deg = 0;\n }\n\n if (origin === void 0) {\n origin = {\n x: 0,\n y: 0\n };\n }\n\n var x = point.x,\n y = point.y;\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 * @private\n * 转化为顶点坐标数组\n *\n * @param {Object} box\n */\n\n\nfunction getRectPoints(box) {\n var points = [{\n x: box.x,\n y: box.y\n }, {\n x: box.x + box.width,\n y: box.y\n }, {\n x: box.x + box.width,\n y: box.y + box.height\n }, {\n x: box.x,\n y: box.y + box.height\n }];\n var rotation = box.rotation;\n\n if (rotation) {\n return [rotateAtPoint(points[0], rotation, points[0]), rotateAtPoint(points[1], rotation, points[0]), rotateAtPoint(points[2], rotation, points[0]), rotateAtPoint(points[3], rotation, points[0])];\n }\n\n return points;\n}\n/**\n * @private\n * 2. 获取多边形在投影轴上的投影\n *\n * 向量的点积的其中一个几何含义是:一个向量在平行于另一个向量方向上的投影的数值乘积。\n * 由于投影轴是单位向量(长度为1),投影的长度为 x1 * x2 + y1 * y2\n */\n\n\nfunction getProjection(points\n/** 多边形的关键点 */\n, axis) {\n // 目前先处理矩形的场景\n if (points.length > 4) {\n return {\n min: 0,\n max: 0\n };\n }\n\n var scalars = [];\n points.forEach(function (point) {\n scalars.push(dot([point.x, point.y], axis));\n });\n return {\n min: Math.min.apply(Math, __spreadArray([], __read(scalars), false)),\n max: Math.max.apply(Math, __spreadArray([], __read(scalars), false))\n };\n}\n\nfunction isProjectionOverlap(projection1, projection2) {\n return projection1.max > projection2.min && projection1.min < projection2.max;\n}\n\nfunction isValidNumber(d) {\n return typeof d === 'number' && !Number.isNaN(d) && d !== Infinity && d !== -Infinity;\n}\n\nfunction isValidBox(box) {\n return ['x', 'y', 'width', 'height'].every(function (attr) {\n return isValidNumber(box[attr]);\n });\n}\n/**\n * 快速判断两个无旋转矩形是否遮挡\n */\n\n\nexport function isIntersectRect(box1, box2, margin) {\n if (margin === void 0) {\n margin = 0;\n }\n\n return !(box2.x > box1.x + box1.width + margin || box2.x + box2.width < box1.x - margin || box2.y > box1.y + box1.height + margin || box2.y + box2.height < box1.y - margin);\n}\n/**\n * detect whether two shape is intersected, useful when shape is been rotated\n * 判断两个矩形是否重叠(相交和包含, 是否旋转)\n *\n * - 原理: 分离轴定律\n */\n\nexport function intersect(box1, box2, margin) {\n if (margin === void 0) {\n margin = 0;\n } // 如果两个 box 中有一个是不合法的 box,也就是不会被渲染出来的,那么它们就不相交。\n\n\n if (!isValidBox(box1) || !isValidBox(box2)) return false; // 如果两个矩形没有旋转,使用快速判断\n\n if (!box1.rotation && !box2.rotation) {\n return isIntersectRect(box1, box2, margin);\n } // 分别获取 4 个关键点\n\n\n var rect1Points = getRectPoints(box1);\n var rect2Points = getRectPoints(box2); // 获取所有投影轴\n\n var axes = getAxes(rect1Points).concat(getAxes(rect2Points));\n\n for (var i = 0; i < axes.length; i++) {\n var axis = axes[i];\n var projection1 = getProjection(rect1Points, axis);\n var projection2 = getProjection(rect2Points, axis); // 判断投影轴上的投影是否存在重叠,若检测到存在间隙则立刻退出判断,消除不必要的运算。\n\n if (!isProjectionOverlap(projection1, projection2)) {\n return false;\n }\n }\n\n return true;\n}","import { isFunction } from '@antv/util';\n\nvar MyWorker =\n/** @class */\nfunction () {\n function MyWorker(url) {\n var _this = this;\n\n this.queue = [];\n this.worker = new Worker(url);\n\n this.worker.onmessage = function (e) {\n var _a;\n\n (_a = _this.queue.shift()) === null || _a === void 0 ? void 0 : _a.resolve(e);\n };\n\n this.worker.onmessageerror = function (e) {\n var _a;\n\n console.warn('[AntV G2] Web worker is not available');\n (_a = _this.queue.shift()) === null || _a === void 0 ? void 0 : _a.reject(e);\n };\n }\n\n MyWorker.prototype.post = function (params, onError) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n _this.queue.push({\n resolve: resolve,\n reject: reject\n });\n\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 MyWorker.prototype.destroy = function () {\n this.worker.terminate();\n };\n\n return MyWorker;\n}();\n\nexport function createWorker(f) {\n if (typeof window === 'undefined') return;\n var blob;\n\n try {\n blob = new Blob([f.toString()], {\n type: 'application/javascript'\n });\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}","var onmessage = function onmessage(e) {\n // Copy from src/util/collision-detect.ts\n function generateUtils() {\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\n\n function getAxes(points\n /** 多边形的关键点 */\n ) {\n // 目前先处理 平行矩形 的场景, 其他多边形不处理\n if (points.length > 4) {\n return [];\n } // 获取向量\n\n\n var vector = function vector(start, end) {\n return [end.x - start.x, end.y - start.y];\n }; // 由于 矩形的平行原理,所以只有 2 条投影轴: A -> B, B -> C\n\n\n var AB = vector(points[0], points[1]);\n var BC = vector(points[1], points[2]);\n return [AB, BC];\n }\n /**\n * 绕指定点顺时针旋转后的点坐标\n * 默认绕原点旋转\n */\n\n\n function rotateAtPoint(point, deg, origin) {\n if (deg === void 0) {\n deg = 0;\n }\n\n if (origin === void 0) {\n origin = {\n x: 0,\n y: 0\n };\n }\n\n var x = point.x,\n y = point.y;\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 * @private\n * 转化为顶点坐标数组\n *\n * @param {Object} box\n */\n\n\n function getRectPoints(box) {\n var points = [{\n x: box.x,\n y: box.y\n }, {\n x: box.x + box.width,\n y: box.y\n }, {\n x: box.x + box.width,\n y: box.y + box.height\n }, {\n x: box.x,\n y: box.y + box.height\n }];\n var rotation = box.rotation;\n\n if (rotation) {\n return [rotateAtPoint(points[0], rotation, points[0]), rotateAtPoint(points[1], rotation, points[0]), rotateAtPoint(points[2], rotation, points[0]), rotateAtPoint(points[3], rotation, points[0])];\n }\n\n return points;\n }\n /**\n * 2. 获取多边形在投影轴上的投影\n *\n * 向量的点积的其中一个几何含义是:一个向量在平行于另一个向量方向上的投影的数值乘积。\n * 由于投影轴是单位向量(长度为1),投影的长度为 x1 * x2 + y1 * y2\n */\n\n\n function getProjection(points\n /** 多边形的关键点 */\n , axis) {\n // 目前先处理矩形的场景\n if (points.length > 4) {\n return {\n min: 0,\n max: 0\n };\n }\n\n var scalars = [];\n points.forEach(function (point) {\n scalars.push(dot([point.x, point.y], axis));\n });\n return {\n min: Math.min.apply(null, scalars),\n max: Math.max.apply(null, scalars)\n };\n }\n\n function isProjectionOverlap(projection1, projection2) {\n return projection1.max > projection2.min && projection1.min < projection2.max;\n }\n\n function isValidNumber(d) {\n return typeof d === 'number' && !Number.isNaN(d) && d !== Infinity && d !== -Infinity;\n }\n\n function isValidBox(box) {\n return ['x', 'y', 'width', 'height'].every(function (attr) {\n return isValidNumber(box[attr]);\n });\n }\n\n function isIntersectRect(box1, box2, margin) {\n if (margin === void 0) {\n margin = 0;\n }\n\n return !(box2.x > box1.x + box1.width + margin || box2.x + box2.width < box1.x - margin || box2.y > box1.y + box1.height + margin || box2.y + box2.height < box1.y - margin);\n }\n\n function intersect(box1, box2, margin) {\n if (margin === void 0) {\n margin = 0;\n }\n\n if (!isValidBox(box1) || !isValidBox(box2)) return false; // Quick detect, if rotation is null or zero.\n\n if (!box1.rotation && !box2.rotation) {\n return isIntersectRect(box1, box2, margin);\n } // 分别获取 4 个关键点\n\n\n var rect1Points = getRectPoints(box1);\n var rect2Points = getRectPoints(box2); // 获取所有投影轴\n\n var axes = getAxes(rect1Points).concat(getAxes(rect2Points));\n\n for (var i = 0; i < axes.length; i++) {\n var axis = axes[i];\n var projection1 = getProjection(rect1Points, axis);\n var projection2 = getProjection(rect2Points, axis);\n if (!isProjectionOverlap(projection1, projection2)) return false;\n }\n\n return true;\n }\n\n return {\n intersect: intersect\n };\n }\n\n var intersect = generateUtils().intersect; // Label layouts.\n\n function hideOverlap(items) {\n var boxes = items.slice();\n\n for (var i = 0; i < boxes.length; i++) {\n var box1 = boxes[i];\n\n if (box1.visible) {\n for (var j = i + 1; j < boxes.length; j++) {\n var box2 = boxes[j];\n\n if (box1 !== box2 && box2.visible) {\n if (intersect(box1, box2)) {\n box2.visible = false;\n }\n }\n }\n }\n }\n\n return boxes;\n }\n\n var methods = {\n 'hide-overlap': hideOverlap\n }; // Main\n\n try {\n var eventData = JSON.parse(e.data);\n if (!eventData || !eventData.type || !methods[eventData.type]) return;\n var type = eventData.type,\n items = eventData.items;\n var result = methods[type](items);\n self.postMessage(result);\n } catch (e) {\n throw e;\n }\n};\n\nvar code = \"\\n self.onmessage = \".concat(onmessage.toString(), \"\\n\");\nexport { code };","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { get, each } from '@antv/util';\nimport { intersect } from '../../../util/collision-detect';\nimport { getLabelBackgroundInfo } from '../util';\nimport { createWorker } from '../util/createWorker';\nimport { code as layoutCode } from './worker/hide-overlap';\n\nvar layout = function layout(items) {\n var boxes = items.slice();\n\n for (var i = 0; i < boxes.length; i++) {\n var box1 = boxes[i];\n\n if (box1.visible) {\n for (var j = i + 1; j < boxes.length; j++) {\n var box2 = boxes[j];\n\n if (box1 !== box2 && box2.visible) {\n if (intersect(box1, box2)) {\n box2.visible = false;\n }\n }\n }\n }\n }\n\n return boxes;\n};\n\nvar cache = new Map();\nvar worker = createWorker(layoutCode);\n/**\n * label 防遮挡布局:在不改变 label 位置的情况下对相互重叠的 label 进行隐藏(非移除)\n * 不同于 'overlap' 类型的布局,该布局不会对 label 的位置进行偏移调整。\n * @param labels 参与布局调整的 label 数组集合\n */\n\nexport function hideOverlap(labelItems, labels, shapes, region) {\n return __awaiter(this, void 0, void 0, function () {\n var boxes, memoKey, cb, params, res, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n boxes = labels.map(function (d, idx) {\n return __assign(__assign({}, getLabelBackgroundInfo(d, labelItems[idx], get(labelItems[idx], 'background.padding'))), {\n visible: true\n });\n });\n memoKey = JSON.stringify(boxes);\n\n cb = function cb(items) {\n cache.set(memoKey, items);\n each(items, function (_a, idx) {\n var visible = _a.visible;\n var labelShape = labels[idx];\n\n if (visible) {\n labelShape === null || labelShape === void 0 ? void 0 : labelShape.show();\n } else {\n labelShape === null || labelShape === void 0 ? void 0 : labelShape.hide();\n }\n });\n return items;\n };\n\n if (!cache.get(memoKey)) return [3\n /*break*/\n , 1];\n cb(cache.get(memoKey));\n return [3\n /*break*/\n , 7];\n\n case 1:\n if (!worker) return [3\n /*break*/\n , 6];\n _a.label = 2;\n\n case 2:\n _a.trys.push([2, 4,, 5]);\n\n params = JSON.stringify({\n type: 'hide-overlap',\n items: boxes\n });\n return [4\n /*yield*/\n , worker.post(params, function () {\n return cb(layout(boxes));\n })];\n\n case 3:\n res = _a.sent();\n cb(Array.isArray(res.data) ? res.data : []);\n return [3\n /*break*/\n , 5];\n\n case 4:\n e_1 = _a.sent();\n console.error(e_1);\n cb(layout(boxes));\n return [3\n /*break*/\n , 5];\n\n case 5:\n return [3\n /*break*/\n , 7];\n\n case 6:\n // Normal layout in main thread.\n cb(layout(boxes));\n _a.label = 7;\n\n case 7:\n return [2\n /*return*/\n ];\n }\n });\n });\n}","import { __read } from \"tslib\";\nimport colorUtil from '@antv/color-util'; // 内置的一些特殊设置\n\nvar preset = {\n '#5B8FF9': true\n}; // 根据YIQ亮度判断指定颜色取反色是不是白色\n// http://24ways.org/2010/calculating-color-contrast\n// http://www.w3.org/TR/AERT#color-contrast\n\nexport var isContrastColorWhite = function isContrastColorWhite(color) {\n var rgb = colorUtil.toRGB(color).toUpperCase();\n\n if (preset[rgb]) {\n return preset[rgb];\n }\n\n var _a = __read(colorUtil.rgb2arr(rgb), 3),\n r = _a[0],\n g = _a[1],\n b = _a[2];\n\n var isDark = (r * 299 + g * 587 + b * 114) / 1000 < 128;\n return isDark;\n};","var ctx;\n/**\n * 获取 canvas context\n */\n\nexport function getCanvasContext() {\n if (!ctx) {\n ctx = document.createElement('canvas').getContext('2d');\n }\n\n return ctx;\n}","import { BBox } from '../../../../util/bbox';\nimport { findLabelTextShape } from '../../util';\n\nfunction shouldInShapeSingle(geometry, label, shape) {\n var coordinate = geometry.coordinate;\n var textShape = findLabelTextShape(label);\n var textBBox = BBox.fromObject(textShape.getCanvasBBox());\n var shapeBBox = BBox.fromObject(shape.getBBox());\n return coordinate.isTransposed ? shapeBBox.height >= textBBox.height : shapeBBox.width >= textBBox.width;\n}\n\nfunction shouldInShape(geometry, labels, shapes) {\n var isStack = !!geometry.getAdjust('stack');\n return isStack || labels.every(function (label, index) {\n var shape = shapes[index];\n return shouldInShapeSingle(geometry, label, shape);\n });\n}\n\nfunction moveInShape(geometry, label, shape) {\n var coordinate = geometry.coordinate;\n var shapeBBox = BBox.fromObject(shape.getBBox());\n var 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 * 适用于 interval geometry 的数据标签位置自动调整布局方法\n * @param items\n * @param labels\n * @param shapes\n */\n\n\nexport function intervalAdjustPosition(items, labels, shapes) {\n var _a;\n\n if (shapes.length === 0) {\n return;\n }\n\n var element = (_a = shapes[0]) === null || _a === void 0 ? void 0 : _a.get('element');\n var geometry = element === null || element === void 0 ? void 0 : element.geometry;\n\n if (!geometry || geometry.type !== 'interval') {\n return;\n }\n\n var inShape = shouldInShape(geometry, labels, shapes);\n\n if (inShape) {\n shapes.forEach(function (shape, index) {\n var label = labels[index];\n moveInShape(geometry, label, shape);\n });\n }\n}","import { __read, __spreadArray } from \"tslib\";\nimport { groupBy, keys, map } from '@antv/util';\nimport { findLabelTextShape } from '../../util';\n/**\n * 对同一组(相同 xField )的 Label 进行排序:第一个、最后一个、其他...\n * @param geometry\n * @param labels\n */\n\nfunction sortLabels(geometry, labels) {\n var yField = geometry.getXYFields()[1];\n var result = [];\n var sortedLabels = labels.sort(function (left, right) {\n return left.get('data')[yField] - left.get('data')[yField];\n });\n\n if (sortedLabels.length > 0) {\n result.push(sortedLabels.shift());\n }\n\n if (sortedLabels.length > 0) {\n result.push(sortedLabels.pop());\n }\n\n result.push.apply(result, __spreadArray([], __read(sortedLabels), false));\n return result;\n}\n\nfunction hasSome(dones, current, compare) {\n return dones.some(function (done) {\n return compare(done, current);\n });\n}\n/**\n * 计算两个矩形之间的堆叠区域面积\n */\n\n\nfunction getOverlapArea(a, b, margin) {\n if (margin === void 0) {\n margin = 0;\n }\n\n var xOverlap = Math.max(0, Math.min(a.x + a.width + margin, b.x + b.width + margin) - Math.max(a.x - margin, b.x - margin));\n var yOverlap = Math.max(0, Math.min(a.y + a.height + margin, b.y + b.height + margin) - Math.max(a.y - margin, b.y - margin));\n return xOverlap * yOverlap;\n}\n/**\n * 判断新添加的 Label 是否和已存在的发生重叠\n * @param dones\n * @param current\n */\n\n\nfunction checkShapeOverlap(dones, current) {\n return hasSome(dones, current, function (left, right) {\n var leftText = findLabelTextShape(left);\n var rightText = findLabelTextShape(right);\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 */\n\n\nexport function pointAdjustPosition(items, labels, shapes, region, cfg) {\n var _a, _b;\n\n if (shapes.length === 0) {\n return;\n }\n\n var element = (_a = shapes[0]) === null || _a === void 0 ? void 0 : _a.get('element');\n var geometry = element === null || element === void 0 ? void 0 : element.geometry;\n\n if (!geometry || geometry.type !== 'point') {\n return;\n }\n\n var _c = __read(geometry.getXYFields(), 2),\n xField = _c[0],\n yField = _c[1];\n\n var groupedLabels = groupBy(labels, function (label) {\n return label.get('data')[xField];\n });\n var dones = [];\n var offset = cfg && cfg.offset || ((_b = items[0]) === null || _b === void 0 ? void 0 : _b.offset) || 12;\n map(keys(groupedLabels).reverse(), function (xValue) {\n var sortedCollections = sortLabels(geometry, groupedLabels[xValue]);\n\n while (sortedCollections.length) {\n var current = sortedCollections.shift();\n var textShape = findLabelTextShape(current);\n\n if (hasSome(dones, current, function (left, right) {\n return left.get('data')[xField] === right.get('data')[xField] && left.get('data')[yField] === right.get('data')[yField];\n })) {\n // 重复位置,直接隐藏\n textShape.set('visible', false);\n continue;\n }\n\n var upFail = checkShapeOverlap(dones, current);\n var downFail = false;\n\n if (upFail) {\n textShape.attr('y', textShape.attr('y') + 2 * offset);\n downFail = checkShapeOverlap(dones, current);\n }\n\n if (downFail) {\n textShape.set('visible', false);\n continue;\n }\n\n dones.push(current);\n }\n });\n}","import { __read, __spreadArray } from \"tslib\";\nimport { groupBy, keys, map } from '@antv/util';\nimport { findLabelTextShape } from '../../util';\n/**\n * 对同一组(相同 xField )的 Label 进行排序:第一个、最后一个、其他...\n * @param geometry\n * @param labels\n */\n\nfunction sortLabels(geometry, labels) {\n var yField = geometry.getXYFields()[1];\n var result = [];\n var sortedLabels = labels.sort(function (left, right) {\n return left.get('data')[yField] - left.get('data')[yField];\n });\n\n if (sortedLabels.length > 0) {\n result.push(sortedLabels.shift());\n }\n\n if (sortedLabels.length > 0) {\n result.push(sortedLabels.pop());\n }\n\n result.push.apply(result, __spreadArray([], __read(sortedLabels), false));\n return result;\n}\n\nfunction hasSome(dones, current, compare) {\n return dones.some(function (done) {\n return compare(done, current);\n });\n}\n/**\n * 计算两个矩形之间的堆叠区域面积\n */\n\n\nfunction getOverlapArea(a, b, margin) {\n if (margin === void 0) {\n margin = 0;\n }\n\n var xOverlap = Math.max(0, Math.min(a.x + a.width + margin, b.x + b.width + margin) - Math.max(a.x - margin, b.x - margin));\n var yOverlap = Math.max(0, Math.min(a.y + a.height + margin, b.y + b.height + margin) - Math.max(a.y - margin, b.y - margin));\n return xOverlap * yOverlap;\n}\n/**\n * 判断新添加的 Label 是否和已存在的发生重叠\n * @param dones\n * @param current\n */\n\n\nfunction checkShapeOverlap(dones, current) {\n return hasSome(dones, current, function (left, right) {\n var leftText = findLabelTextShape(left);\n var rightText = findLabelTextShape(right);\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 */\n\n\nexport function pathAdjustPosition(items, labels, shapes, region, cfg) {\n var _a, _b;\n\n if (shapes.length === 0) {\n return;\n }\n\n var element = (_a = shapes[0]) === null || _a === void 0 ? void 0 : _a.get('element');\n var geometry = element === null || element === void 0 ? void 0 : element.geometry;\n\n if (!geometry || ['path', 'line', 'area'].indexOf(geometry.type) < 0) {\n return;\n }\n\n var _c = __read(geometry.getXYFields(), 2),\n xField = _c[0],\n yField = _c[1];\n\n var groupedLabels = groupBy(labels, function (label) {\n return label.get('data')[xField];\n });\n var dones = [];\n var offset = cfg && cfg.offset || ((_b = items[0]) === null || _b === void 0 ? void 0 : _b.offset) || 12;\n map(keys(groupedLabels).reverse(), function (xValue) {\n var sortedCollections = sortLabels(geometry, groupedLabels[xValue]);\n\n while (sortedCollections.length) {\n var current = sortedCollections.shift();\n var textShape = findLabelTextShape(current);\n\n if (hasSome(dones, current, function (left, right) {\n return left.get('data')[xField] === right.get('data')[xField] && left.get('data')[yField] === right.get('data')[yField];\n })) {\n // 重复位置,直接隐藏\n textShape.set('visible', false);\n continue;\n }\n\n var upFail = checkShapeOverlap(dones, current);\n var downFail = false;\n\n if (upFail) {\n textShape.attr('y', textShape.attr('y') + 2 * offset);\n downFail = checkShapeOverlap(dones, current);\n }\n\n if (downFail) {\n textShape.set('visible', false);\n continue;\n }\n\n dones.push(current);\n }\n });\n}","import { __read, __spreadArray } from \"tslib\";\nimport { isString, memoize, values, toString } from '@antv/util';\nimport { getCanvasContext } from './context';\n/**\n * 计算文本在画布中的宽度\n */\n\nexport var measureTextWidth = memoize(function (text, font) {\n if (font === void 0) {\n font = {};\n }\n\n var fontSize = font.fontSize,\n fontFamily = font.fontFamily,\n fontWeight = font.fontWeight,\n fontStyle = font.fontStyle,\n fontVariant = font.fontVariant;\n var ctx = getCanvasContext();\n ctx.font = [fontStyle, fontVariant, fontWeight, \"\".concat(fontSize, \"px\"), fontFamily].join(' ');\n return ctx.measureText(isString(text) ? text : '').width;\n}, function (text, font) {\n if (font === void 0) {\n font = {};\n }\n\n return __spreadArray([text], __read(values(font)), false).join('');\n});\n/**\n * 获取文本的 ... 文本。\n * 算法(减少每次 measureText 的长度,measureText 的性能跟字符串时间相关):\n * 1. 先通过 STEP 逐步计算,找到最后一个小于 maxWidth 的字符串\n * 2. 然后对最后这个字符串二分计算\n * @param text 需要计算的文本, 由于历史原因 除了支持string,还支持空值,number和数组等\n * @param maxWidth\n * @param font\n */\n\nexport var getEllipsisText = function getEllipsisText(text, maxWidth, font) {\n var STEP = 16; // 每次 16,调参工程师\n\n var DOT_WIDTH = measureTextWidth('...', font);\n var leftText;\n\n if (!isString(text)) {\n leftText = toString(text);\n } else {\n leftText = text;\n }\n\n var leftWidth = maxWidth;\n var r = []; // 最终的分段字符串\n\n var currentText;\n var currentWidth;\n\n if (measureTextWidth(text, font) <= maxWidth) {\n return text;\n } // 首先通过 step 计算,找出最大的未超出长度的\n\n\n while (true) {\n // 更新字符串\n currentText = leftText.substr(0, STEP); // 计算宽度\n\n currentWidth = measureTextWidth(currentText, font); // 超出剩余宽度,则停止\n\n if (currentWidth + DOT_WIDTH > leftWidth) {\n if (currentWidth > leftWidth) {\n break;\n }\n }\n\n r.push(currentText); // 没有超出,则计算剩余宽度\n\n leftWidth -= currentWidth;\n leftText = leftText.substr(STEP); // 字符串整体没有超出\n\n if (!leftText) {\n return r.join('');\n }\n } // 最下的最后一个 STEP,使用 1 递增(用二分效果更高)\n\n\n while (true) {\n // 更新字符串\n currentText = leftText.substr(0, 1); // 计算宽度\n\n currentWidth = measureTextWidth(currentText, font); // 超出剩余宽度,则停止\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 \"\".concat(r.join(''), \"...\");\n};","import { __read } from \"tslib\";\nimport { ext } from '@antv/matrix-util';\n/**\n * @ignore\n * 对图形元素进行矩阵变换,同时返回变换前的图形矩阵\n * @param shape 进行矩阵变换的图形\n * @param vector 矩阵变换的中心点\n * @param direct 矩阵变换的类型\n */\n\nexport function transformShape(shape, vector, direct) {\n var scaledMatrix;\n\n var _a = __read(vector, 2),\n x = _a[0],\n y = _a[1];\n\n shape.applyToMatrix([x, y, 1]);\n\n if (direct === 'x') {\n shape.setMatrix(ext.transform(shape.getMatrix(), [['t', -x, -y], ['s', 0.01, 1], ['t', x, y]]));\n scaledMatrix = ext.transform(shape.getMatrix(), [['t', -x, -y], ['s', 100, 1], ['t', x, y]]);\n } else if (direct === 'y') {\n shape.setMatrix(ext.transform(shape.getMatrix(), [['t', -x, -y], ['s', 1, 0.01], ['t', x, y]]));\n scaledMatrix = ext.transform(shape.getMatrix(), [['t', -x, -y], ['s', 1, 100], ['t', x, y]]);\n } else if (direct === 'xy') {\n shape.setMatrix(ext.transform(shape.getMatrix(), [['t', -x, -y], ['s', 0.01, 0.01], ['t', x, y]]));\n scaledMatrix = ext.transform(shape.getMatrix(), [['t', -x, -y], ['s', 100, 100], ['t', x, y]]);\n }\n\n return scaledMatrix;\n}\n/**\n * 对图形元素进行剪切动画\n * @param element 进行动画的图形元素\n * @param animateCfg 动画配置\n * @param coordinate 当前坐标系\n * @param yMinPoint y 轴的最小值对应的图形坐标点\n * @param type 剪切动画的类型\n */\n\nexport function doScaleAnimate(element, animateCfg, coordinate, yMinPoint, type) {\n var start = coordinate.start,\n end = coordinate.end;\n var width = coordinate.getWidth();\n var height = coordinate.getHeight();\n var x;\n var y;\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 var endMatrix = transformShape(element, [x, y], type);\n element.animate({\n matrix: endMatrix\n }, animateCfg);\n}","import { __assign, __read } from \"tslib\";\nimport { getArcParams } from '@antv/g-canvas';\nimport { isNumberEqual, isEqual } from '@antv/util';\nimport { getArcPath, getSectorPath } from '../../util/graphics';\n\nfunction getAngle(startPoint, arcPath) {\n var _a;\n\n var _b = getArcParams(startPoint, arcPath),\n startAngle = _b.startAngle,\n endAngle = _b.endAngle;\n\n if (!isNumberEqual(startAngle, -Math.PI * 0.5) && startAngle < -Math.PI * 0.5) {\n startAngle += Math.PI * 2;\n }\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 _a = __read([endAngle, startAngle], 2), startAngle = _a[0], endAngle = _a[1];\n }\n\n if (isNumberEqual(startAngle, Math.PI * 1.5)) {\n startAngle = Math.PI * -0.5;\n } // 当 startAngle, endAngle 接近相等时,不进行 endAngle = Math.PI * 1.5 防止变化从整个圆开始\n\n\n if (isNumberEqual(endAngle, Math.PI * -0.5) && !isNumberEqual(startAngle, endAngle)) {\n endAngle = Math.PI * 1.5;\n }\n\n return {\n startAngle: startAngle,\n endAngle: endAngle\n };\n}\n\nfunction getArcStartPoint(path) {\n var startPoint;\n\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 * 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 */\n\n\nexport function getArcInfo(path) {\n var _a;\n\n var startAngle;\n var endAngle;\n var arcPaths = path.filter(function (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 var firstArcPathCommand = arcPaths[0];\n var lastArcPathCommand = arcPaths.length > 1 ? arcPaths[1] : arcPaths[0];\n var firstIndex = path.indexOf(firstArcPathCommand);\n var lastIndex = path.indexOf(lastArcPathCommand);\n var firstStartPoint = getArcStartPoint(path[firstIndex - 1]);\n var lastStartPoint = getArcStartPoint(path[lastIndex - 1]);\n\n var _b = getAngle(firstStartPoint, firstArcPathCommand),\n firstStartAngle = _b.startAngle,\n firstEndAngle = _b.endAngle;\n\n var _c = getAngle(lastStartPoint, lastArcPathCommand),\n lastStartAngle = _c.startAngle,\n lastEndAngle = _c.endAngle;\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 var radius = firstArcPathCommand[1];\n var innerRadius = arcPaths[arcPaths.length - 1][1];\n\n if (radius < innerRadius) {\n _a = __read([innerRadius, radius], 2), radius = _a[0], innerRadius = _a[1];\n } else if (radius === innerRadius) {\n innerRadius = 0;\n }\n\n return {\n startAngle: startAngle,\n endAngle: endAngle,\n radius: radius,\n innerRadius: innerRadius\n };\n}\n/**\n * @ignore\n * 饼图更新动画\n * @param shape 文本图形\n * @param animateCfg\n * @param cfg\n */\n\nexport function sectorPathUpdate(shape, animateCfg, cfg) {\n var toAttrs = cfg.toAttrs,\n coordinate = cfg.coordinate;\n var path = toAttrs.path || [];\n var pathCommands = path.map(function (command) {\n return command[0];\n });\n if (path.length < 1) return;\n\n var _a = getArcInfo(path),\n curStartAngle = _a.startAngle,\n curEndAngle = _a.endAngle,\n radius = _a.radius,\n innerRadius = _a.innerRadius;\n\n var _b = getArcInfo(shape.attr('path')),\n preStartAngle = _b.startAngle,\n preEndAngle = _b.endAngle;\n\n var center = coordinate.getCenter();\n var diffStartAngle = curStartAngle - preStartAngle;\n var diffEndAngle = curEndAngle - preEndAngle; // 没有 diff 时直接返回最终 attrs,不需要额外动画\n\n if (diffStartAngle === 0 && diffEndAngle === 0) {\n shape.attr('path', path);\n return;\n }\n\n shape.animate(function (ratio) {\n var onFrameStartAngle = preStartAngle + ratio * diffStartAngle;\n var onFrameEndAngle = preEndAngle + ratio * diffEndAngle;\n return __assign(__assign({}, toAttrs), {\n path: // hack, 兼容 /examples/bar/basic/demo/radial-line.ts 动画\n isEqual(pathCommands, ['M', 'A', 'A', 'Z']) ? getArcPath(center.x, center.y, radius, onFrameStartAngle, onFrameEndAngle) : getSectorPath(center.x, center.y, radius, onFrameStartAngle, onFrameEndAngle, innerRadius)\n });\n }, __assign(__assign({}, animateCfg), {\n callback: function callback() {\n // 将 path 保持原始态,否则会影响 setState() 的动画\n shape.attr('path', path);\n }\n }));\n}","import { __assign } from \"tslib\";\nimport { ext } from '@antv/matrix-util';\nimport { each } from '@antv/util';\n\nfunction doShapeZoom(shape, animateCfg, type) {\n if (shape.isGroup()) {\n each(shape.getChildren(), function (child) {\n doShapeZoom(child, animateCfg, type);\n });\n } else {\n var bbox = shape.getBBox();\n var x = (bbox.minX + bbox.maxX) / 2;\n var y = (bbox.minY + bbox.maxY) / 2;\n shape.applyToMatrix([x, y, 1]);\n\n if (type === 'zoomIn') {\n // 放大\n var matrix = ext.transform(shape.getMatrix(), [['t', -x, -y], ['s', 0.01, 0.01], ['t', x, y]]);\n shape.setMatrix(matrix);\n shape.animate({\n matrix: ext.transform(shape.getMatrix(), [['t', -x, -y], ['s', 100, 100], ['t', x, y]])\n }, animateCfg);\n } else {\n shape.animate({\n matrix: ext.transform(shape.getMatrix(), [['t', -x, -y], ['s', 0.01, 0.01], ['t', x, y]])\n }, __assign(__assign({}, animateCfg), {\n callback: function callback() {\n shape.remove(true);\n }\n }));\n }\n }\n}\n/**\n * @ignore\n * 单个 shape 动画\n * shape 以自身中心点逐渐放大的进入动画\n * @param shape 参与动画的图形元素\n * @param animateCfg 动画配置\n * @param cfg 额外信息\n */\n\n\nexport function zoomIn(shape, animateCfg, cfg) {\n doShapeZoom(shape, animateCfg, 'zoomIn');\n}\n/**\n * @ignore\n * 单个 shape 动画\n * 消失动画,shape 以自身为中心点的逐渐缩小\n * @param shape 参与动画的图形元素\n * @param animateCfg 动画配置\n * @param cfg 额外信息\n */\n\nexport function zoomOut(shape, animateCfg, cfg) {\n doShapeZoom(shape, animateCfg, 'zoomOut');\n}","import { DIRECTION } from '../constant';\n/**\n * @ignore\n * 获取 facet title 的最佳默认配置,防止\n */\n\nexport function getFactTitleConfig(direction) {\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\n return {};\n}\n/**\n * @ignore\n * 根据角度,获取 ○ 上的点\n * @param center\n * @param r\n * @param angle\n */\n\nexport function getAnglePoint(center, r, angle) {\n return {\n x: center.x + r * Math.cos(angle),\n y: center.y + r * Math.sin(angle)\n };\n}","import { __extends, __read } from \"tslib\";\nimport { deepMix, each, filter, get } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { getAnglePoint, getFactTitleConfig } from '../util/facet';\nimport { Facet } from './facet';\n/**\n * @ignore\n * 镜像分面\n */\n\nvar Circle =\n/** @class */\nfunction (_super) {\n __extends(Circle, _super);\n\n function Circle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Circle.prototype.getDefaultCfg = function () {\n return deepMix({}, _super.prototype.getDefaultCfg.call(this), {\n type: 'circle',\n showTitle: true,\n title: _super.prototype.getDefaultTitleCfg.call(this)\n });\n };\n\n Circle.prototype.render = function () {\n _super.prototype.render.call(this);\n\n if (this.cfg.showTitle) {\n this.renderTitle();\n }\n };\n /**\n * 根据总数和当前索引,计算分面的 region\n * @param count\n * @param index\n */\n\n\n Circle.prototype.getRegion = function (count, index) {\n var r = 1 / 2; // 画布半径\n // 画布圆心\n\n var center = {\n x: 0.5,\n y: 0.5\n }; // 每隔分面间隔的弧度\n\n var avgAngle = Math.PI * 2 / count; // 当前分面所在的弧度\n\n var angle = -1 * Math.PI / 2 + avgAngle * index; // TODO 没看懂\n\n var facetR = r / (1 + 1 / Math.sin(avgAngle / 2)); // 分面的中心点\n\n var middle = getAnglePoint(center, r - facetR, angle);\n var startAngle = Math.PI * 5 / 4; // 右上角\n\n var endAngle = Math.PI * 1 / 4; // 左下角\n\n return {\n start: getAnglePoint(middle, facetR, startAngle),\n end: getAnglePoint(middle, facetR, endAngle)\n };\n };\n\n Circle.prototype.afterEachView = function (view, facet) {\n this.processAxis(view, facet);\n };\n\n Circle.prototype.beforeEachView = function (view, facet) {};\n\n Circle.prototype.generateFacets = function (data) {\n var _this = this;\n\n var _a = this.cfg,\n fields = _a.fields,\n type = _a.type;\n\n var _b = __read(fields, 1),\n field = _b[0];\n\n if (!field) {\n throw new Error('No `fields` specified!');\n }\n\n var values = this.getFieldValues(data, field);\n var count = values.length;\n var rst = [];\n values.forEach(function (value, index) {\n var conditions = [{\n field: field,\n value: value,\n values: values\n }];\n var facetData = filter(data, _this.getFacetDataFilter(conditions));\n var facet = {\n type: type,\n data: facetData,\n region: _this.getRegion(count, index),\n columnValue: value,\n columnField: field,\n columnIndex: index,\n columnValuesLength: count,\n rowValue: null,\n rowField: null,\n rowIndex: 0,\n rowValuesLength: 1\n };\n rst.push(facet);\n });\n return rst;\n };\n\n Circle.prototype.getXAxisOption = function (x, axes, option, facet) {\n // 不做任何处理\n return option;\n };\n /**\n * 设置 y 坐标轴的文本、title 是否显示\n * @param y\n * @param axes\n * @param option\n * @param facet\n */\n\n\n Circle.prototype.getYAxisOption = function (y, axes, option, facet) {\n // 不做任何处理\n return option;\n };\n /**\n * facet title\n */\n\n\n Circle.prototype.renderTitle = function () {\n var _this = this;\n\n each(this.facets, function (facet) {\n var columnValue = facet.columnValue,\n view = facet.view;\n var formatter = get(_this.cfg.title, 'formatter');\n var config = deepMix({\n position: ['50%', '0%'],\n content: formatter ? formatter(columnValue) : columnValue\n }, getFactTitleConfig(DIRECTION.TOP), _this.cfg.title);\n view.annotation().text(config);\n });\n };\n\n return Circle;\n}(Facet);\n\nexport default Circle;","import { __assign, __extends, __read } from \"tslib\";\nimport { deepMix, each, filter, get } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { getFactTitleConfig } from '../util/facet';\nimport { Facet } from './facet';\n/**\n * @ignore\n * 镜像分面\n */\n\nvar List =\n/** @class */\nfunction (_super) {\n __extends(List, _super);\n\n function List() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n List.prototype.getDefaultCfg = function () {\n return deepMix({}, _super.prototype.getDefaultCfg.call(this), {\n type: 'list',\n cols: null,\n showTitle: true,\n title: _super.prototype.getDefaultTitleCfg.call(this)\n });\n };\n\n List.prototype.render = function () {\n _super.prototype.render.call(this);\n\n if (this.cfg.showTitle) {\n this.renderTitle();\n }\n };\n\n List.prototype.afterEachView = function (view, facet) {\n this.processAxis(view, facet);\n };\n\n List.prototype.beforeEachView = function (view, facet) {};\n\n List.prototype.generateFacets = function (data) {\n var _this = this;\n\n var fields = this.cfg.fields;\n var cols = this.cfg.cols;\n\n var _a = __read(fields, 1),\n columnField = _a[0];\n\n if (!columnField) {\n throw new Error('No `fields` specified!');\n }\n\n var colValues = this.getFieldValues(data, columnField);\n var count = colValues.length;\n cols = cols || count; // 每行有几列数据\n // 总共有几行\n\n var rows = this.getPageCount(count, cols);\n var rst = [];\n colValues.forEach(function (val, index) {\n // 当前 index 在那个行列\n var _a = _this.getRowCol(index, cols),\n row = _a.row,\n col = _a.col;\n\n var conditions = [{\n field: columnField,\n value: val,\n values: colValues\n }];\n var facetData = filter(data, _this.getFacetDataFilter(conditions));\n var facet = {\n type: _this.cfg.type,\n data: facetData,\n region: _this.getRegion(rows, cols, col, row),\n columnValue: val,\n rowValue: val,\n columnField: columnField,\n rowField: null,\n columnIndex: col,\n rowIndex: row,\n columnValuesLength: cols,\n rowValuesLength: rows,\n total: count\n };\n rst.push(facet);\n });\n return rst;\n };\n /**\n * 设置 x 坐标轴的文本、title 是否显示\n * @param x\n * @param axes\n * @param option\n * @param facet\n */\n\n\n List.prototype.getXAxisOption = function (x, axes, option, facet) {\n // 当是最后一行或者下面没有 view 时文本不显示\n if (facet.rowIndex !== facet.rowValuesLength - 1 && facet.columnValuesLength * facet.rowIndex + facet.columnIndex + 1 + facet.columnValuesLength <= facet.total) {\n return __assign(__assign({}, option), {\n label: null,\n title: null\n });\n }\n\n return option;\n };\n /**\n * 设置 y 坐标轴的文本、title 是否显示\n * @param y\n * @param axes\n * @param option\n * @param facet\n */\n\n\n List.prototype.getYAxisOption = function (y, axes, option, facet) {\n if (facet.columnIndex !== 0) {\n return __assign(__assign({}, option), {\n title: null,\n label: null\n });\n }\n\n return option;\n };\n /**\n * facet title\n */\n\n\n List.prototype.renderTitle = function () {\n var _this = this;\n\n each(this.facets, function (facet) {\n var columnValue = facet.columnValue,\n view = facet.view;\n var formatter = get(_this.cfg.title, 'formatter');\n var config = deepMix({\n position: ['50%', '0%'],\n content: formatter ? formatter(columnValue) : columnValue\n }, getFactTitleConfig(DIRECTION.TOP), _this.cfg.title);\n view.annotation().text(config);\n });\n };\n /**\n * 计算分页数\n * @param total\n * @param pageSize\n */\n\n\n List.prototype.getPageCount = function (total, pageSize) {\n return Math.floor((total + pageSize - 1) / pageSize);\n };\n /**\n * 索引值在哪一页\n * @param index\n * @param pageSize\n */\n\n\n List.prototype.getRowCol = function (index, pageSize) {\n var row = Math.floor(index / pageSize);\n var col = index % pageSize;\n return {\n row: row,\n col: col\n };\n };\n\n return List;\n}(Facet);\n\nexport default List;","import { __assign, __extends } from \"tslib\";\nimport { deepMix, each, get } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { getFactTitleConfig } from '../util/facet';\nimport { Facet } from './facet';\n/**\n * @ignore\n * 镜像分面\n */\n\nvar Matrix =\n/** @class */\nfunction (_super) {\n __extends(Matrix, _super);\n\n function Matrix() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Matrix.prototype.getDefaultCfg = function () {\n return deepMix({}, _super.prototype.getDefaultCfg.call(this), {\n type: 'matrix',\n showTitle: false,\n columnTitle: __assign({}, _super.prototype.getDefaultTitleCfg.call(this)),\n rowTitle: __assign({}, _super.prototype.getDefaultTitleCfg.call(this))\n });\n };\n\n Matrix.prototype.render = function () {\n _super.prototype.render.call(this);\n\n if (this.cfg.showTitle) {\n this.renderTitle();\n }\n };\n\n Matrix.prototype.afterEachView = function (view, facet) {\n this.processAxis(view, facet);\n };\n\n Matrix.prototype.beforeEachView = function (view, facet) {};\n\n Matrix.prototype.generateFacets = function (data) {\n var _a = this.cfg,\n fields = _a.fields,\n type = _a.type; // 矩阵中行列相等,等于指定的字段个数\n\n var rowValuesLength = fields.length;\n var columnValuesLength = rowValuesLength;\n var rst = [];\n\n for (var i = 0; i < columnValuesLength; i++) {\n var columnField = fields[i];\n\n for (var j = 0; j < rowValuesLength; j++) {\n var rowField = fields[j];\n var facet = {\n type: type,\n data: data,\n region: this.getRegion(rowValuesLength, columnValuesLength, i, j),\n columnValue: columnField,\n rowValue: rowField,\n columnField: columnField,\n rowField: rowField,\n columnIndex: i,\n rowIndex: j,\n columnValuesLength: columnValuesLength,\n rowValuesLength: rowValuesLength\n };\n rst.push(facet);\n }\n }\n\n return rst;\n };\n /**\n * 设置 x 坐标轴的文本、title 是否显示\n * @param x\n * @param axes\n * @param option\n * @param facet\n */\n\n\n Matrix.prototype.getXAxisOption = function (x, axes, option, facet) {\n // 最后一行显示\n if (facet.rowIndex !== facet.rowValuesLength - 1) {\n return __assign(__assign({}, option), {\n label: null,\n title: null\n });\n }\n\n return option;\n };\n /**\n * 设置 y 坐标轴的文本、title 是否显示\n * @param y\n * @param axes\n * @param option\n * @param facet\n */\n\n\n Matrix.prototype.getYAxisOption = function (y, axes, option, facet) {\n // 第一列显示\n if (facet.columnIndex !== 0) {\n return __assign(__assign({}, option), {\n title: null,\n label: null\n });\n }\n\n return option;\n };\n /**\n * facet title\n */\n\n\n Matrix.prototype.renderTitle = function () {\n var _this = this;\n\n each(this.facets, function (facet, facetIndex) {\n var columnIndex = facet.columnIndex,\n rowIndex = facet.rowIndex,\n columnValuesLength = facet.columnValuesLength,\n rowValuesLength = facet.rowValuesLength,\n columnValue = facet.columnValue,\n rowValue = facet.rowValue,\n view = facet.view; // top\n\n if (rowIndex === 0) {\n var formatter = get(_this.cfg.columnTitle, 'formatter');\n var config = deepMix({\n position: ['50%', '0%'],\n content: formatter ? formatter(columnValue) : columnValue\n }, getFactTitleConfig(DIRECTION.TOP), _this.cfg.columnTitle);\n view.annotation().text(config);\n } // right\n\n\n if (columnIndex === columnValuesLength - 1) {\n var formatter = get(_this.cfg.rowTitle, 'formatter');\n var config = deepMix({\n position: ['100%', '50%'],\n content: formatter ? formatter(rowValue) : rowValue\n }, getFactTitleConfig(DIRECTION.RIGHT), _this.cfg.rowTitle);\n view.annotation().text(config);\n }\n });\n };\n\n return Matrix;\n}(Facet);\n\nexport default Matrix;","import { __assign, __extends, __read } from \"tslib\";\nimport { deepMix, each, filter, get } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { getFactTitleConfig } from '../util/facet';\nimport { Facet } from './facet';\n/**\n * @ignore\n * 镜像分面\n */\n\nvar Mirror =\n/** @class */\nfunction (_super) {\n __extends(Mirror, _super);\n\n function Mirror() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Mirror.prototype.getDefaultCfg = function () {\n return deepMix({}, _super.prototype.getDefaultCfg.call(this), {\n type: 'mirror',\n showTitle: true,\n title: _super.prototype.getDefaultTitleCfg.call(this),\n transpose: false\n });\n };\n\n Mirror.prototype.render = function () {\n _super.prototype.render.call(this);\n\n if (this.cfg.showTitle) {\n this.renderTitle();\n }\n };\n\n Mirror.prototype.beforeEachView = function (view, facet) {\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 Mirror.prototype.afterEachView = function (view, facet) {\n this.processAxis(view, facet);\n };\n\n Mirror.prototype.generateFacets = function (data) {\n var _this = this;\n\n var _a = __read(this.cfg.fields, 1),\n f = _a[0];\n\n var rst = [];\n var columnValuesLength = 1;\n var rowValuesLength = 1;\n var columnValues = [''];\n var rowValues = [''];\n var columnField;\n var rowField;\n\n if (this.cfg.transpose) {\n columnField = f;\n columnValues = this.getFieldValues(data, columnField).slice(0, 2); // 镜像最多两个\n\n columnValuesLength = columnValues.length;\n } else {\n rowField = f;\n rowValues = this.getFieldValues(data, rowField).slice(0, 2); // 镜像最多两个\n\n rowValuesLength = rowValues.length;\n } // 获取每个维度对应的数据配置片段\n\n\n columnValues.forEach(function (xVal, xIndex) {\n rowValues.forEach(function (yVal, yIndex) {\n var conditions = [{\n field: columnField,\n value: xVal,\n values: columnValues\n }, {\n field: rowField,\n value: yVal,\n values: rowValues\n }];\n var facetData = filter(data, _this.getFacetDataFilter(conditions));\n var facet = {\n type: _this.cfg.type,\n data: facetData,\n region: _this.getRegion(rowValuesLength, columnValuesLength, xIndex, yIndex),\n columnValue: xVal,\n rowValue: yVal,\n columnField: columnField,\n rowField: rowField,\n columnIndex: xIndex,\n rowIndex: yIndex,\n columnValuesLength: columnValuesLength,\n rowValuesLength: rowValuesLength\n };\n rst.push(facet);\n });\n });\n return rst;\n };\n /**\n * 设置 x 坐标轴的文本、title 是否显示\n * @param x\n * @param axes\n * @param option\n * @param facet\n */\n\n\n Mirror.prototype.getXAxisOption = function (x, axes, option, facet) {\n // 非最后一行\n // 当是最后一行或者下面没有 view 时文本不显示\n if (facet.columnIndex === 1 || facet.rowIndex === 1) {\n return __assign(__assign({}, option), {\n label: null,\n title: null\n });\n }\n\n return option;\n };\n /**\n * 设置 y 坐标轴的文本、title 是否显示\n * @param y\n * @param axes\n * @param option\n * @param facet\n */\n\n\n Mirror.prototype.getYAxisOption = function (y, axes, option, facet) {\n // do nothing\n return option;\n };\n\n Mirror.prototype.renderTitle = function () {\n var _this = this;\n\n each(this.facets, function (facet, facetIndex) {\n var columnValue = facet.columnValue,\n rowValue = facet.rowValue,\n view = facet.view;\n var formatter = get(_this.cfg.title, 'formatter');\n\n if (_this.cfg.transpose) {\n var config = deepMix({\n position: ['50%', '0%'],\n content: formatter ? formatter(columnValue) : columnValue\n }, getFactTitleConfig(DIRECTION.TOP), _this.cfg.title);\n view.annotation().text(config);\n } else {\n var config = deepMix({\n position: ['100%', '50%'],\n content: formatter ? formatter(rowValue) : rowValue\n }, getFactTitleConfig(DIRECTION.RIGHT), _this.cfg.title);\n view.annotation().text(config);\n }\n });\n };\n\n return Mirror;\n}(Facet);\n\nexport default Mirror;","import { __assign, __extends, __read } from \"tslib\";\nimport { deepMix, each, filter, get } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { getFactTitleConfig } from '../util/facet';\nimport { Facet } from './facet';\n/**\n * @ignore\n * 矩阵分面\n */\n\nvar Rect =\n/** @class */\nfunction (_super) {\n __extends(Rect, _super);\n\n function Rect() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Rect.prototype.afterEachView = function (view, facet) {\n this.processAxis(view, facet);\n };\n\n Rect.prototype.beforeEachView = function (view, facet) {// do nothing\n };\n\n Rect.prototype.getDefaultCfg = function () {\n return deepMix({}, _super.prototype.getDefaultCfg.call(this), {\n type: 'rect',\n columnTitle: __assign({}, _super.prototype.getDefaultTitleCfg.call(this)),\n rowTitle: __assign({}, _super.prototype.getDefaultTitleCfg.call(this))\n });\n };\n\n Rect.prototype.render = function () {\n _super.prototype.render.call(this);\n\n if (this.cfg.showTitle) {\n this.renderTitle();\n }\n };\n /**\n * 生成矩阵分面的分面数据\n * @param data\n */\n\n\n Rect.prototype.generateFacets = function (data) {\n var _this = this;\n\n var _a = __read(this.cfg.fields, 2),\n columnField = _a[0],\n rowField = _a[1];\n\n var rst = [];\n var columnValuesLength = 1;\n var rowValuesLength = 1;\n var columnValues = [''];\n var rowValues = [''];\n\n if (columnField) {\n columnValues = this.getFieldValues(data, columnField);\n columnValuesLength = columnValues.length;\n }\n\n if (rowField) {\n rowValues = this.getFieldValues(data, rowField);\n rowValuesLength = rowValues.length;\n } // 获取每个维度对应的数据配置片段\n\n\n columnValues.forEach(function (xVal, xIndex) {\n rowValues.forEach(function (yVal, yIndex) {\n var conditions = [{\n field: columnField,\n value: xVal,\n values: columnValues\n }, {\n field: rowField,\n value: yVal,\n values: rowValues\n }];\n var facetData = filter(data, _this.getFacetDataFilter(conditions));\n var facet = {\n type: _this.cfg.type,\n data: facetData,\n region: _this.getRegion(rowValuesLength, columnValuesLength, xIndex, yIndex),\n columnValue: xVal,\n rowValue: yVal,\n columnField: columnField,\n rowField: rowField,\n columnIndex: xIndex,\n rowIndex: yIndex,\n columnValuesLength: columnValuesLength,\n rowValuesLength: rowValuesLength\n };\n rst.push(facet);\n });\n });\n return rst;\n };\n\n Rect.prototype.renderTitle = function () {\n var _this = this;\n\n each(this.facets, function (facet, facetIndex) {\n var columnIndex = facet.columnIndex,\n rowIndex = facet.rowIndex,\n columnValuesLength = facet.columnValuesLength,\n columnValue = facet.columnValue,\n rowValue = facet.rowValue,\n view = facet.view; // top\n\n if (rowIndex === 0) {\n var formatter = get(_this.cfg.columnTitle, 'formatter');\n var config = deepMix({\n position: ['50%', '0%'],\n content: formatter ? formatter(columnValue) : columnValue\n }, getFactTitleConfig(DIRECTION.TOP), _this.cfg.columnTitle);\n view.annotation().text(config);\n } // right\n\n\n if (columnIndex === columnValuesLength - 1) {\n var formatter = get(_this.cfg.rowTitle, 'formatter');\n var config = deepMix({\n position: ['100%', '50%'],\n content: formatter ? formatter(rowValue) : rowValue\n }, getFactTitleConfig(DIRECTION.RIGHT), _this.cfg.rowTitle);\n view.annotation().text(config);\n }\n });\n };\n /**\n * 设置 x 坐标轴的文本、title 是否显示\n * @param x\n * @param axes\n * @param option\n * @param facet\n */\n\n\n Rect.prototype.getXAxisOption = function (x, axes, option, facet) {\n // 非最后一行\n if (facet.rowIndex !== facet.rowValuesLength - 1) {\n return __assign(__assign({}, option), {\n title: null,\n label: null\n });\n } else if (facet.columnIndex !== Math.floor((facet.columnValuesLength - 1) / 2)) {\n // 不是中间列\n return __assign(__assign({}, option), {\n title: null\n });\n }\n\n return option;\n };\n /**\n * 设置 y 坐标轴的文本、title 是否显示\n * @param y\n * @param axes\n * @param option\n * @param facet\n */\n\n\n Rect.prototype.getYAxisOption = function (y, axes, option, facet) {\n if (facet.columnIndex !== 0) {\n return __assign(__assign({}, option), {\n title: null,\n label: null\n });\n } else if (facet.rowIndex !== Math.floor((facet.rowValuesLength - 1) / 2)) {\n return __assign(__assign({}, option), {\n title: null\n });\n }\n\n return option;\n };\n\n return Rect;\n}(Facet);\n\nexport default Rect;","import { __assign, __extends, __values } from \"tslib\";\n/**\n * Create By Bruce Too\n * On 2020-02-10\n */\n\nimport { assign, deepMix, each, get } from '@antv/util';\nimport { DIRECTION, VIEW_LIFE_CIRCLE } from '../constant';\nimport { getFactTitleConfig } from '../util/facet';\nimport { Facet } from './facet';\n/**\n * @ignore\n * Tree Facet\n */\n\nvar Tree =\n/** @class */\nfunction (_super) {\n __extends(Tree, _super);\n\n function Tree() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.afterChartRender = function () {\n if (_this.facets && _this.cfg.line) {\n _this.container.clear();\n\n _this.drawLines(_this.facets);\n }\n };\n\n return _this;\n }\n\n Tree.prototype.afterEachView = function (view, facet) {\n this.processAxis(view, facet);\n };\n\n Tree.prototype.beforeEachView = function (view, facet) {};\n\n Tree.prototype.init = function () {\n _super.prototype.init.call(this);\n\n this.view.on(VIEW_LIFE_CIRCLE.AFTER_RENDER, this.afterChartRender);\n };\n\n Tree.prototype.getDefaultCfg = function () {\n return deepMix({}, _super.prototype.getDefaultCfg.call(this), {\n type: 'tree',\n line: {\n style: {\n lineWidth: 1,\n stroke: '#ddd'\n },\n smooth: false\n },\n showTitle: true,\n title: _super.prototype.getDefaultTitleCfg.call(this)\n });\n };\n\n Tree.prototype.generateFacets = function (data) {\n var fields = this.cfg.fields;\n\n if (!fields.length) {\n throw new Error('Please specify for the fields for rootFacet!');\n }\n\n var rst = [];\n var rootFacet = {\n type: this.cfg.type,\n data: 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 Tree.prototype.setRegion = function (facets) {\n var _this = this;\n\n this.forceColIndex(facets);\n facets.forEach(function (facet) {\n // @ts-ignore 允许调整\n facet.region = _this.getRegion(facet.rowValuesLength, facet.columnValuesLength, facet.columnIndex, facet.rowIndex);\n });\n };\n\n Tree.prototype.getRegion = function (rows, cols, xIndex, yIndex) {\n var xWidth = 1 / cols; // x轴方向的每个分面的偏移\n\n var yWidth = 1 / rows; // y轴方向的每个分面的偏移\n\n var start = {\n x: xWidth * xIndex,\n y: yWidth * yIndex\n };\n var end = {\n x: start.x + xWidth,\n y: start.y + yWidth * 2 / 3 // 预留1/3的空隙,方便添加连接线\n\n };\n return {\n start: start,\n end: end\n };\n };\n\n Tree.prototype.forceColIndex = function (facets) {\n var e_1, _a;\n\n var _this = this;\n\n var leafs = [];\n var index = 0;\n facets.forEach(function (facet) {\n if (_this.isLeaf(facet)) {\n leafs.push(facet); // @ts-ignore 允许调整\n\n facet.columnIndex = index;\n index++;\n }\n });\n leafs.forEach(function (facet) {\n // @ts-ignore\n facet.columnValuesLength = leafs.length;\n });\n var maxLevel = this.cfg.fields.length;\n\n for (var i = maxLevel - 1; i >= 0; i--) {\n var levelFacets = this.getFacetsByLevel(facets, i);\n\n try {\n // var yIndex = maxLevel - i;\n for (var levelFacets_1 = (e_1 = void 0, __values(levelFacets)), levelFacets_1_1 = levelFacets_1.next(); !levelFacets_1_1.done; levelFacets_1_1 = levelFacets_1.next()) {\n var facet = levelFacets_1_1.value;\n\n if (!this.isLeaf(facet)) {\n facet.originColIndex = facet.columnIndex; // @ts-ignore\n\n facet.columnIndex = this.getRegionIndex(facet.children); // @ts-ignore\n\n facet.columnValuesLength = leafs.length;\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (levelFacets_1_1 && !levelFacets_1_1.done && (_a = levelFacets_1[\"return\"])) _a.call(levelFacets_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n }\n }; // get facet use level\n\n\n Tree.prototype.getFacetsByLevel = function (facets, level) {\n var rst = [];\n facets.forEach(function (facet) {\n if (facet.rowIndex === level) {\n rst.push(facet);\n }\n });\n return rst;\n }; // if the facet has children , make it's column index in the middle of it's children\n\n\n Tree.prototype.getRegionIndex = function (children) {\n var first = children[0];\n var last = children[children.length - 1];\n return (last.columnIndex - first.columnIndex) / 2 + first.columnIndex;\n }; // is a leaf without children\n\n\n Tree.prototype.isLeaf = function (facet) {\n return !facet.children || !facet.children.length;\n };\n\n Tree.prototype.getRows = function () {\n return this.cfg.fields.length + 1;\n }; // get child\n\n\n Tree.prototype.getChildFacets = function (data, level, arr) {\n var _this = this; // [ 'grade', 'class' ]\n\n\n var fields = this.cfg.fields;\n var length = fields.length;\n\n if (length < level) {\n return;\n }\n\n var rst = []; // get fist level except root node\n\n var field = fields[level - 1]; // get field value\n\n var values = this.getFieldValues(data, field);\n values.forEach(function (value, index) {\n var conditions = [{\n field: field,\n value: value,\n values: values\n }];\n var subData = data.filter(_this.getFacetDataFilter(conditions));\n\n if (subData.length) {\n var facet = {\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 Tree.prototype.render = function () {\n _super.prototype.render.call(this);\n\n if (this.cfg.showTitle) {\n this.renderTitle();\n }\n };\n\n Tree.prototype.renderTitle = function () {\n var _this = this;\n\n each(this.facets, function (facet) {\n var columnValue = facet.columnValue,\n view = facet.view;\n var formatter = get(_this.cfg.title, 'formatter');\n var config = deepMix({\n position: ['50%', '0%'],\n content: formatter ? formatter(columnValue) : columnValue\n }, getFactTitleConfig(DIRECTION.TOP), _this.cfg.title);\n view.annotation().text(config);\n });\n };\n\n Tree.prototype.drawLines = function (facets) {\n var _this = this;\n\n facets.forEach(function (facet) {\n if (!_this.isLeaf(facet)) {\n var children = facet.children;\n\n _this.addFacetLines(facet, children);\n }\n });\n }; // add lines with it's children\n\n\n Tree.prototype.addFacetLines = function (facet, children) {\n var _this = this;\n\n var view = facet.view;\n var region = view.coordinateBBox; // top, right, bottom, left\n\n var start = {\n x: region.x + region.width / 2,\n y: region.y + region.height\n };\n children.forEach(function (subFacet) {\n var subRegion = subFacet.view.coordinateBBox;\n var end = {\n x: subRegion.bl.x + (subRegion.tr.x - subRegion.bl.x) / 2,\n y: subRegion.tr.y\n };\n var middle1 = {\n x: start.x,\n y: start.y + (end.y - start.y) / 2\n };\n var middle2 = {\n x: end.x,\n y: middle1.y\n };\n\n _this.drawLine([start, middle1, middle2, end]);\n });\n };\n\n Tree.prototype.getPath = function (points) {\n var path = [];\n var smooth = this.cfg.line.smooth;\n\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(function (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 }; // draw line width points\n\n\n Tree.prototype.drawLine = function (points) {\n var path = this.getPath(points);\n var line = this.cfg.line.style;\n this.container.addShape('path', {\n attrs: assign({\n // @ts-ignore\n path: path\n }, line)\n });\n };\n\n Tree.prototype.getXAxisOption = function (x, axes, option, facet) {\n if (facet.rowIndex !== facet.rowValuesLength - 1) {\n return __assign(__assign({}, option), {\n title: null,\n label: null\n });\n }\n\n return option;\n };\n\n Tree.prototype.getYAxisOption = function (y, axes, option, facet) {\n if (facet.originColIndex !== 0 && facet.columnIndex !== 0) {\n return __assign(__assign({}, option), {\n title: null,\n label: null\n });\n }\n\n return option;\n };\n\n return Tree;\n}(Facet);\n\nexport default Tree;","import { __read, __spreadArray } from \"tslib\";\nimport { reduce, isNumber } from '@antv/util';\n/**\n * 获得中位数\n * @param array\n */\n\nexport function getMedian(array) {\n var arr = __spreadArray([], __read(array), false); // 先排序\n\n\n arr.sort(function (a, b) {\n return a - b;\n });\n var len = arr.length; // median\n // 0\n\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 * @param array\n */\n\nexport function getMean(array) {\n var sum = reduce(array, function (r, num) {\n return r += isNaN(num) || !isNumber(num) ? 0 : num;\n }, 0);\n return array.length === 0 ? 0 : sum / array.length;\n}","import { getMedian, getMean } from './stat';\n/**\n * parse the value position\n * @param val\n * @param scale\n */\n\nexport function getNormalizedValue(val, scale) {\n if (!scale) {\n return null;\n }\n\n var scaled;\n\n switch (val) {\n case 'start':\n return 0;\n\n case 'center':\n return 0.5;\n\n case 'end':\n return 1;\n\n case 'median':\n {\n scaled = scale.isCategory ? getMedian(scale.values.map(function (_, idx) {\n return idx;\n })) : getMedian(scale.values);\n break;\n }\n\n case 'mean':\n {\n scaled = scale.isCategory ? (scale.values.length - 1) / 2 : getMean(scale.values);\n break;\n }\n\n case 'min':\n scaled = scale.isCategory ? 0 : scale[val];\n break;\n\n case 'max':\n scaled = scale.isCategory ? scale.values.length - 1 : scale[val];\n break;\n\n default:\n scaled = val;\n break;\n }\n\n return scale.scale(scaled);\n}","import { __assign, __extends, __read, __rest, __values } from \"tslib\";\nimport { contains, deepMix, each, get, isArray, isFunction, isNil, isString, keys, upperFirst, find, includes } from '@antv/util';\nimport { Annotation as AnnotationComponent } from '../../dependents';\nimport { DEFAULT_ANIMATE_CFG } from '../../animate/';\nimport { COMPONENT_TYPE, DIRECTION, GEOMETRY_LIFE_CIRCLE, LAYER, VIEW_LIFE_CIRCLE } from '../../constant';\nimport { getAngleByPoint, getDistanceToCenter } from '../../util/coordinate';\nimport { omit } from '../../util/helper';\nimport { getNormalizedValue } from '../../util/annotation';\nimport { Controller } from './base';\n/** 需要在图形绘制完成后才渲染的辅助组件类型列表 */\n\nvar ANNOTATIONS_AFTER_RENDER = ['regionFilter', 'shape'];\n/**\n * Annotation controller, 主要作用:\n * 1. 创建 Annotation: line、text、arc ...\n * 2. 生命周期: init、layout、render、clear、destroy\n */\n\nvar Annotation =\n/** @class */\nfunction (_super) {\n __extends(Annotation, _super);\n\n function Annotation(view) {\n var _this = _super.call(this, view) || this;\n /* 组件更新的 cache,组件配置 object : 组件 */\n\n\n _this.cache = new Map();\n _this.foregroundContainer = _this.view.getLayer(LAYER.FORE).addGroup();\n _this.backgroundContainer = _this.view.getLayer(LAYER.BG).addGroup();\n _this.option = [];\n return _this;\n }\n\n Object.defineProperty(Annotation.prototype, \"name\", {\n get: function get() {\n return 'annotation';\n },\n enumerable: false,\n configurable: true\n });\n\n Annotation.prototype.init = function () {};\n /**\n * 因为 annotation 需要依赖坐标系信息,所以 render 阶段为空方法,实际的创建逻辑都在 layout 中\n */\n\n\n Annotation.prototype.layout = function () {\n this.update();\n }; // 因为 Annotation 不参与布局,但是渲染的位置依赖于坐标系,所以可以将绘制阶段延迟到 layout() 进行\n\n\n Annotation.prototype.render = function () {};\n /**\n * 更新\n */\n\n\n Annotation.prototype.update = function () {\n var _this = this; // 1. 先处理需要在图形渲染之后的辅助组件 需要在 Geometry 完成之后,拿到图形信息\n\n\n this.onAfterRender(function () {\n var updated = new Map(); // 先看是否有 regionFilter/shape 要更新\n\n each(_this.option, function (option) {\n if (includes(ANNOTATIONS_AFTER_RENDER, option.type)) {\n var co = _this.updateOrCreate(option); // 存储已经处理过的\n\n\n if (co) {\n updated.set(_this.getCacheKey(option), co);\n }\n }\n }); // 处理完成之后,更新 cache\n // 处理完成之后,销毁删除的\n\n _this.cache = _this.syncCache(updated);\n }); // 2. 处理非 regionFilter\n\n var updateCache = new Map();\n each(this.option, function (option) {\n if (!includes(ANNOTATIONS_AFTER_RENDER, option.type)) {\n var co = _this.updateOrCreate(option); // 存储已经处理过的\n\n\n if (co) {\n updateCache.set(_this.getCacheKey(option), co);\n }\n }\n });\n this.cache = this.syncCache(updateCache);\n };\n /**\n * 清空\n * @param includeOption 是否清空 option 配置项\n */\n\n\n Annotation.prototype.clear = function (includeOption) {\n if (includeOption === void 0) {\n includeOption = false;\n }\n\n _super.prototype.clear.call(this);\n\n this.clearComponents();\n this.foregroundContainer.clear();\n this.backgroundContainer.clear(); // clear all option\n\n if (includeOption) {\n this.option = [];\n }\n };\n\n Annotation.prototype.destroy = function () {\n this.clear(true);\n this.foregroundContainer.remove(true);\n this.backgroundContainer.remove(true);\n };\n /**\n * 复写基类的方法\n */\n\n\n Annotation.prototype.getComponents = function () {\n var co = [];\n this.cache.forEach(function (value) {\n co.push(value);\n });\n return co;\n };\n /**\n * 清除当前的组件\n */\n\n\n Annotation.prototype.clearComponents = function () {\n this.getComponents().forEach(function (co) {\n co.component.destroy();\n });\n this.cache.clear();\n };\n /**\n * region filter 比较特殊的渲染时机\n * @param doWhat\n */\n\n\n Annotation.prototype.onAfterRender = function (doWhat) {\n var done = false;\n\n if (this.view.getOptions().animate) {\n this.view.geometries.forEach(function (g) {\n // 如果 geometry 开启,则监听\n if (g.animateOption) {\n g.once(GEOMETRY_LIFE_CIRCLE.AFTER_DRAW_ANIMATE, function () {\n doWhat();\n });\n done = true;\n }\n });\n }\n\n if (!done) {\n this.view.getRootView().once(VIEW_LIFE_CIRCLE.AFTER_RENDER, function () {\n doWhat();\n });\n }\n };\n\n Annotation.prototype.createAnnotation = function (option) {\n var type = option.type;\n var Ctor = AnnotationComponent[upperFirst(type)];\n\n if (Ctor) {\n var theme = this.getAnnotationTheme(type);\n var cfg = this.getAnnotationCfg(type, option, theme); // 不创建\n\n if (!cfg) {\n return null;\n }\n\n var annotation = new Ctor(cfg);\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 }; // APIs for creating annotation component\n\n\n Annotation.prototype.annotation = function (option) {\n this.option.push(option);\n };\n /**\n * 创建 Arc\n * @param option\n * @returns AnnotationController\n */\n\n\n Annotation.prototype.arc = function (option) {\n this.annotation(__assign({\n type: 'arc'\n }, option));\n return this;\n };\n /**\n * 创建 image\n * @param option\n * @returns AnnotationController\n */\n\n\n Annotation.prototype.image = function (option) {\n this.annotation(__assign({\n type: 'image'\n }, option));\n return this;\n };\n /**\n * 创建 Line\n * @param option\n * @returns AnnotationController\n */\n\n\n Annotation.prototype.line = function (option) {\n this.annotation(__assign({\n type: 'line'\n }, option));\n return this;\n };\n /**\n * 创建 Region\n * @param option\n * @returns AnnotationController\n */\n\n\n Annotation.prototype.region = function (option) {\n this.annotation(__assign({\n type: 'region'\n }, option));\n return this;\n };\n /**\n * 创建 Text\n * @param option\n * @returns AnnotationController\n */\n\n\n Annotation.prototype.text = function (option) {\n this.annotation(__assign({\n type: 'text'\n }, option));\n return this;\n };\n /**\n * 创建 DataMarker\n * @param option\n * @returns AnnotationController\n */\n\n\n Annotation.prototype.dataMarker = function (option) {\n this.annotation(__assign({\n type: 'dataMarker'\n }, option));\n return this;\n };\n /**\n * 创建 DataRegion\n * @param option\n * @returns AnnotationController\n */\n\n\n Annotation.prototype.dataRegion = function (option) {\n this.annotation(__assign({\n type: 'dataRegion'\n }, option));\n };\n /**\n * 创建 RegionFilter\n * @param option\n * @returns AnnotationController\n */\n\n\n Annotation.prototype.regionFilter = function (option) {\n this.annotation(__assign({\n type: 'regionFilter'\n }, option));\n };\n /**\n * 创建 ShapeAnnotation\n * @param option\n */\n\n\n Annotation.prototype.shape = function (option) {\n this.annotation(__assign({\n type: 'shape'\n }, option));\n };\n /**\n * 创建 HtmlAnnotation\n * @param option\n */\n\n\n Annotation.prototype.html = function (option) {\n this.annotation(__assign({\n type: 'html'\n }, option));\n }; // end API\n\n /**\n * parse the point position to [x, y]\n * @param p Position\n * @returns { x, y }\n */\n\n\n Annotation.prototype.parsePosition = function (p) {\n var e_1, _a;\n\n var xScale = this.view.getXScale(); // 转成 object\n\n var yScales = this.view.getScalesByDim('y');\n var position = isFunction(p) ? p.call(null, xScale, yScales) : p;\n var x = 0;\n var y = 0; // 入参是 [24, 24] 这类时\n\n if (isArray(position)) {\n var _b = __read(position, 2),\n xPos = _b[0],\n yPos = _b[1]; // 如果数据格式是 ['50%', '50%'] 的格式\n // fix: 原始数据中可能会包含 'xxx5%xxx' 这样的数据,需要判断下 https://github.com/antvis/f2/issues/590\n // @ts-ignore\n\n\n if (isString(xPos) && xPos.indexOf('%') !== -1 && !isNaN(xPos.slice(0, -1))) {\n return this.parsePercentPosition(position);\n }\n\n x = getNormalizedValue(xPos, xScale);\n y = getNormalizedValue(yPos, Object.values(yScales)[0]);\n } else if (!isNil(position)) {\n try {\n // 入参是 object 结构,数据点\n for (var _c = __values(keys(position)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var key = _d.value;\n var value = position[key];\n\n if (key === xScale.field) {\n x = getNormalizedValue(value, xScale);\n }\n\n if (yScales[key]) {\n y = getNormalizedValue(value, yScales[key]);\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_d && !_d.done && (_a = _c[\"return\"])) _a.call(_c);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n }\n\n if (isNaN(x) || isNaN(y)) {\n return null;\n }\n\n return this.view.getCoordinate().convert({\n x: x,\n y: y\n });\n };\n /**\n * parse all the points between start and end\n * @param start\n * @param end\n * @return Point[]\n */\n\n\n Annotation.prototype.getRegionPoints = function (start, end) {\n var _this = this;\n\n var xScale = this.view.getXScale();\n var yScales = this.view.getScalesByDim('y');\n var yScale = Object.values(yScales)[0];\n var xField = xScale.field;\n var viewData = this.view.getData();\n var startXValue = isArray(start) ? start[0] : start[xField];\n var endXValue = isArray(end) ? end[0] : end[xField];\n var arr = [];\n var startIndex;\n each(viewData, function (item, idx) {\n if (item[xField] === startXValue) {\n startIndex = idx;\n }\n\n if (idx >= startIndex) {\n var point = _this.parsePosition([item[xField], item[yScale.field]]);\n\n if (point) {\n arr.push(point);\n }\n }\n\n if (item[xField] === endXValue) {\n return false;\n }\n });\n return arr;\n };\n /**\n * parse percent position\n * @param position\n */\n\n\n Annotation.prototype.parsePercentPosition = function (position) {\n var xPercent = parseFloat(position[0]) / 100;\n var yPercent = parseFloat(position[1]) / 100;\n var coordinate = this.view.getCoordinate();\n var start = coordinate.start,\n end = coordinate.end;\n var topLeft = {\n x: Math.min(start.x, end.x),\n y: Math.min(start.y, end.y)\n };\n var x = coordinate.getWidth() * xPercent + topLeft.x;\n var y = coordinate.getHeight() * yPercent + topLeft.y;\n return {\n x: x,\n y: y\n };\n };\n /**\n * get coordinate bbox\n */\n\n\n Annotation.prototype.getCoordinateBBox = function () {\n var coordinate = this.view.getCoordinate();\n var start = coordinate.start,\n end = coordinate.end;\n var width = coordinate.getWidth();\n var height = coordinate.getHeight();\n var topLeft = {\n x: Math.min(start.x, end.x),\n y: Math.min(start.y, end.y)\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: width,\n height: height\n };\n };\n /**\n * get annotation component config by different type\n * @param type\n * @param option 用户的配置\n * @param theme\n */\n\n\n Annotation.prototype.getAnnotationCfg = function (type, option, theme) {\n var _this = this;\n\n var coordinate = this.view.getCoordinate();\n var canvas = this.view.getCanvas();\n var o = {};\n\n if (isNil(option)) {\n return null;\n }\n\n var start = option.start,\n end = option.end,\n position = option.position;\n var sp = this.parsePosition(start);\n var ep = this.parsePosition(end);\n var textPoint = this.parsePosition(position);\n\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 var _a = option,\n start_1 = _a.start,\n end_1 = _a.end,\n rest = __rest(_a, [\"start\", \"end\"]);\n\n var startAngle = getAngleByPoint(coordinate, sp);\n var endAngle = getAngleByPoint(coordinate, ep);\n\n if (startAngle > endAngle) {\n endAngle = Math.PI * 2 + endAngle;\n }\n\n o = __assign(__assign({}, rest), {\n center: coordinate.getCenter(),\n radius: getDistanceToCenter(coordinate, sp),\n startAngle: startAngle,\n endAngle: endAngle\n });\n } else if (type === 'image') {\n var _b = option,\n start_2 = _b.start,\n end_2 = _b.end,\n rest = __rest(_b, [\"start\", \"end\"]);\n\n o = __assign(__assign({}, rest), {\n start: sp,\n end: ep,\n src: option.src\n });\n } else if (type === 'line') {\n var _c = option,\n start_3 = _c.start,\n end_3 = _c.end,\n rest = __rest(_c, [\"start\", \"end\"]);\n\n o = __assign(__assign({}, rest), {\n start: sp,\n end: ep,\n text: get(option, 'text', null)\n });\n } else if (type === 'region') {\n var _d = option,\n start_4 = _d.start,\n end_4 = _d.end,\n rest = __rest(_d, [\"start\", \"end\"]);\n\n o = __assign(__assign({}, rest), {\n start: sp,\n end: ep\n });\n } else if (type === 'text') {\n var filteredData = this.view.getData();\n\n var _e = option,\n position_1 = _e.position,\n content = _e.content,\n rest = __rest(_e, [\"position\", \"content\"]);\n\n var textContent = content;\n\n if (isFunction(content)) {\n textContent = content(filteredData);\n }\n\n o = __assign(__assign(__assign({}, textPoint), rest), {\n content: textContent\n });\n } else if (type === 'dataMarker') {\n var _f = option,\n position_2 = _f.position,\n point = _f.point,\n line = _f.line,\n text = _f.text,\n autoAdjust = _f.autoAdjust,\n direction = _f.direction,\n rest = __rest(_f, [\"position\", \"point\", \"line\", \"text\", \"autoAdjust\", \"direction\"]);\n\n o = __assign(__assign(__assign({}, rest), textPoint), {\n coordinateBBox: this.getCoordinateBBox(),\n point: point,\n line: line,\n text: text,\n autoAdjust: autoAdjust,\n direction: direction\n });\n } else if (type === 'dataRegion') {\n var _g = option,\n start_5 = _g.start,\n end_5 = _g.end,\n region = _g.region,\n text = _g.text,\n lineLength = _g.lineLength,\n rest = __rest(_g, [\"start\", \"end\", \"region\", \"text\", \"lineLength\"]);\n\n o = __assign(__assign({}, rest), {\n points: this.getRegionPoints(start_5, end_5),\n region: region,\n text: text,\n lineLength: lineLength\n });\n } else if (type === 'regionFilter') {\n var _h = option,\n start_6 = _h.start,\n end_6 = _h.end,\n apply_1 = _h.apply,\n color = _h.color,\n rest = __rest(_h, [\"start\", \"end\", \"apply\", \"color\"]);\n\n var geometries = this.view.geometries;\n var shapes_1 = [];\n\n var addShapes_1 = function addShapes_1(item) {\n if (!item) {\n return;\n }\n\n if (item.isGroup()) {\n item.getChildren().forEach(function (child) {\n return addShapes_1(child);\n });\n } else {\n shapes_1.push(item);\n }\n };\n\n each(geometries, function (geom) {\n if (apply_1) {\n if (contains(apply_1, geom.type)) {\n each(geom.elements, function (elem) {\n addShapes_1(elem.shape);\n });\n }\n } else {\n each(geom.elements, function (elem) {\n addShapes_1(elem.shape);\n });\n }\n });\n o = __assign(__assign({}, rest), {\n color: color,\n shapes: shapes_1,\n start: sp,\n end: ep\n });\n } else if (type === 'shape') {\n var _j = option,\n render_1 = _j.render,\n restOptions = __rest(_j, [\"render\"]);\n\n var wrappedRender = function wrappedRender(container) {\n if (isFunction(option.render)) {\n return render_1(container, _this.view, {\n parsePosition: _this.parsePosition.bind(_this)\n });\n }\n };\n\n o = __assign(__assign({}, restOptions), {\n render: wrappedRender\n });\n } else if (type === 'html') {\n var _k = option,\n html_1 = _k.html,\n position_3 = _k.position,\n restOptions = __rest(_k, [\"html\", \"position\"]);\n\n var wrappedHtml = function wrappedHtml(container) {\n if (isFunction(html_1)) {\n return html_1(container, _this.view);\n }\n\n return html_1;\n };\n\n o = __assign(__assign(__assign({}, restOptions), textPoint), {\n // html 组件需要指定 parent\n parent: canvas.get('el').parentNode,\n html: wrappedHtml\n });\n } // 合并主题,用户配置优先级高于默认主题\n\n\n var cfg = deepMix({}, theme, __assign(__assign({}, o), {\n top: option.top,\n style: option.style,\n offsetX: option.offsetX,\n offsetY: option.offsetY\n }));\n\n if (type !== 'html') {\n // html 类型不使用 G container\n cfg.container = this.getComponentContainer(cfg);\n }\n\n cfg.animate = this.view.getOptions().animate && cfg.animate && get(option, 'animate', cfg.animate); // 如果 view 关闭动画,则不执行\n\n cfg.animateOption = deepMix({}, DEFAULT_ANIMATE_CFG, cfg.animateOption, option.animateOption);\n return cfg;\n };\n /**\n * is annotation render on top\n * @param option\n * @return whethe on top\n */\n\n\n Annotation.prototype.isTop = function (option) {\n return get(option, 'top', true);\n };\n /**\n * get the container by option.top\n * default is on top\n * @param option\n * @returns the container\n */\n\n\n Annotation.prototype.getComponentContainer = function (option) {\n return this.isTop(option) ? this.foregroundContainer : this.backgroundContainer;\n };\n\n Annotation.prototype.getAnnotationTheme = function (type) {\n return get(this.view.getTheme(), ['components', 'annotation', type], {});\n };\n /**\n * 创建或者更新 annotation\n * @param option\n */\n\n\n Annotation.prototype.updateOrCreate = function (option) {\n // 拿到缓存的内容\n var co = this.cache.get(this.getCacheKey(option)); // 存在则更新,不存在在创建\n\n if (co) {\n var type = option.type;\n var theme = this.getAnnotationTheme(type);\n var cfg = this.getAnnotationCfg(type, option, theme); // 忽略掉一些配置\n\n if (cfg) {\n omit(cfg, ['container']);\n }\n\n co.component.update(__assign(__assign({}, cfg || {}), {\n visible: !!cfg\n })); // 对于 regionFilter/shape,因为生命周期的原因,需要额外 render\n\n if (includes(ANNOTATIONS_AFTER_RENDER, option.type)) {\n co.component.render();\n }\n } else {\n // 不存在,创建\n co = this.createAnnotation(option);\n\n if (co) {\n co.component.init(); // Note:regionFilter/shape 特殊处理,regionFilter/shape 需要取到 Geometry 中的 Shape,需要在 view render 之后处理\n // 其他组件使用外层的统一 render 逻辑\n\n if (includes(ANNOTATIONS_AFTER_RENDER, option.type)) {\n co.component.render();\n }\n }\n }\n\n return co;\n };\n /**\n * 更新缓存,以及销毁组件\n * @param updated 更新或者创建的组件\n */\n\n\n Annotation.prototype.syncCache = function (updated) {\n var _this = this;\n\n var newCache = new Map(this.cache); // clone 一份\n // 将 update 更新到 cache\n\n updated.forEach(function (co, key) {\n newCache.set(key, co);\n }); // 另外和 options 进行对比,删除\n\n newCache.forEach(function (co, key) {\n // option 中已经找不到,那么就是删除的\n if (!find(_this.option, function (option) {\n return key === _this.getCacheKey(option);\n })) {\n co.component.destroy();\n newCache[\"delete\"](key);\n }\n });\n return newCache;\n };\n /**\n * 获得缓存组件的 key\n * @param option\n */\n\n\n Annotation.prototype.getCacheKey = function (option) {\n // 如果存在 id,则使用 id string,否则直接使用 option 引用作为 key\n return option; // 后续扩展 id 用\n // const id = get(option, 'id');\n // return id ? id : option;\n };\n\n return Annotation;\n}(Controller);\n\nexport default Annotation;","import { deepMix, get, map } from '@antv/util';\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 */\n\nexport function getGridThemeCfg(theme, direction) {\n var axisTheme = deepMix({}, get(theme, ['components', 'axis', 'common']), get(theme, ['components', 'axis', direction]));\n return get(axisTheme, ['grid'], {});\n}\n/**\n * @ignore\n * get axis grid items\n * @param coordinate\n * @param scale\n * @param dim\n * @return items\n */\n\nexport function getLineGridItems(coordinate, scale, dim, alignTick) {\n var items = [];\n var ticks = scale.getTicks();\n\n if (coordinate.isPolar) {\n // 补全 ticks\n ticks.push({\n value: 1,\n text: '',\n tickValue: ''\n });\n }\n\n ticks.reduce(function (preTick, currentTick, currentIndex) {\n var currentValue = currentTick.value;\n\n if (alignTick) {\n items.push({\n points: [coordinate.convert(dim === 'y' ? {\n x: 0,\n y: currentValue\n } : {\n x: currentValue,\n y: 0\n }), coordinate.convert(dim === 'y' ? {\n x: 1,\n y: currentValue\n } : {\n x: currentValue,\n y: 1\n })]\n });\n } else {\n if (currentIndex) {\n var preValue = preTick.value;\n var middleValue = (preValue + currentValue) / 2;\n items.push({\n points: [coordinate.convert(dim === 'y' ? {\n x: 0,\n y: middleValue\n } : {\n x: middleValue,\n y: 0\n }), coordinate.convert(dim === 'y' ? {\n x: 1,\n y: middleValue\n } : {\n x: middleValue,\n y: 1\n })]\n });\n }\n }\n\n return currentTick;\n }, ticks[0]);\n return items;\n}\n/**\n * @ignore\n * get\n * @param coordinate\n * @param xScale\n * @param yScale\n * @param dim\n * @returns items\n */\n\nexport function getCircleGridItems(coordinate, xScale, yScale, alignTick, dim) {\n var count = xScale.values.length;\n var items = [];\n var ticks = yScale.getTicks();\n ticks.reduce(function (preTick, currentTick) {\n var preValue = preTick ? preTick.value : currentTick.value; // 只有一项数据时取当前值\n\n var currentValue = currentTick.value;\n var middleValue = (preValue + currentValue) / 2;\n\n if (dim === 'x') {\n // 如果是 x 轴作为半径轴,那么只需要取圆弧收尾两个即可\n items.push({\n points: [coordinate.convert({\n x: alignTick ? currentValue : middleValue,\n y: 0\n }), coordinate.convert({\n x: alignTick ? currentValue : middleValue,\n y: 1\n })]\n });\n } else {\n items.push({\n points: map(Array(count + 1), function (__, idx) {\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 * @ignore\n * show grid or not\n * @param axisTheme\n * @param axisOption\n */\n\nexport function showGrid(axisTheme, axisOption) {\n var userGrid = get(axisOption, 'grid');\n\n if (userGrid === null) {\n return false;\n }\n\n var themeGrid = get(axisTheme, 'grid');\n return !(userGrid === undefined && themeGrid === null);\n}","import { __assign, __extends } from \"tslib\";\nimport { deepMix, each, get, isUndefined } from '@antv/util';\nimport { DIRECTION, COMPONENT_TYPE, LAYER } from '../../constant';\nimport { CircleAxis, CircleGrid, LineAxis, LineGrid } from '../../dependents';\nimport { DEFAULT_ANIMATE_CFG } from '../../animate/';\nimport { getAxisDirection, getAxisFactorByRegion, getAxisRegion, getAxisThemeCfg, getAxisTitleOptions, getAxisTitleText, getCircleAxisCenterRadius, isVertical } from '../../util/axis';\nimport { getAxisOption } from '../../util/axis';\nimport { getCircleGridItems, getGridThemeCfg, getLineGridItems, showGrid } from '../../util/grid';\nimport { omit } from '../../util/helper';\nimport { Controller } from './base'; // update 组件的时候,忽略的数据更新\n\nvar OMIT_CFG = ['container']; // 坐标轴默认动画配置\n\nvar AXIS_DEFAULT_ANIMATE_CFG = __assign(__assign({}, DEFAULT_ANIMATE_CFG), {\n appear: null\n});\n/**\n * @ignore\n * G2 Axis controller, will:\n * - create component\n * - axis\n * - grid\n * - life circle\n */\n\n\nvar Axis =\n/** @class */\nfunction (_super) {\n __extends(Axis, _super);\n\n function Axis(view) {\n var _this = _super.call(this, view) || this;\n /** 使用 object 存储组件 */\n\n\n _this.cache = new Map(); // 先创建 gridContainer,将 grid 放到 axis 底层\n\n _this.gridContainer = _this.view.getLayer(LAYER.BG).addGroup();\n _this.gridForeContainer = _this.view.getLayer(LAYER.FORE).addGroup();\n _this.axisContainer = _this.view.getLayer(LAYER.BG).addGroup();\n _this.axisForeContainer = _this.view.getLayer(LAYER.FORE).addGroup();\n return _this;\n }\n\n Object.defineProperty(Axis.prototype, \"name\", {\n get: function get() {\n return 'axis';\n },\n enumerable: false,\n configurable: true\n });\n\n Axis.prototype.init = function () {};\n\n Axis.prototype.render = function () {\n this.update();\n };\n /**\n * 更新组件布局,位置大小\n */\n\n\n Axis.prototype.layout = function () {\n var _this = this;\n\n var coordinate = this.view.getCoordinate();\n each(this.getComponents(), function (co) {\n var component = co.component,\n direction = co.direction,\n type = co.type,\n extra = co.extra;\n var dim = extra.dim,\n scale = extra.scale,\n alignTick = extra.alignTick;\n var updated;\n\n if (type === COMPONENT_TYPE.AXIS) {\n if (coordinate.isPolar) {\n if (dim === 'x') {\n updated = coordinate.isTransposed ? getAxisRegion(coordinate, direction) : getCircleAxisCenterRadius(coordinate);\n } else if (dim === 'y') {\n updated = coordinate.isTransposed ? getCircleAxisCenterRadius(coordinate) : getAxisRegion(coordinate, direction);\n }\n } else {\n updated = getAxisRegion(coordinate, direction);\n }\n } else if (type === COMPONENT_TYPE.GRID) {\n if (coordinate.isPolar) {\n var items = void 0;\n\n if (coordinate.isTransposed) {\n items = dim === 'x' ? getCircleGridItems(coordinate, _this.view.getYScales()[0], scale, alignTick, dim) : getLineGridItems(coordinate, scale, dim, alignTick);\n } else {\n items = dim === 'x' ? getLineGridItems(coordinate, scale, dim, alignTick) : getCircleGridItems(coordinate, _this.view.getXScale(), scale, alignTick, dim);\n }\n\n updated = {\n items: items,\n // coordinate 更新之后,center 也变化了\n center: _this.view.getCoordinate().getCenter()\n };\n } else {\n updated = {\n items: getLineGridItems(coordinate, scale, dim, alignTick)\n };\n }\n }\n\n component.update(updated);\n });\n };\n /**\n * 更新 axis 组件\n */\n\n\n Axis.prototype.update = function () {\n this.option = this.view.getOptions().axes;\n var updatedCache = new Map();\n this.updateXAxes(updatedCache);\n this.updateYAxes(updatedCache); // 处理完成之后,销毁删除的\n // 不在处理中的\n\n var newCache = new Map();\n this.cache.forEach(function (co, key) {\n if (updatedCache.has(key)) {\n newCache.set(key, co);\n } else {\n // 不存在,则是所有需要被销毁的组件\n co.component.destroy();\n }\n }); // 更新缓存\n\n this.cache = newCache;\n };\n\n Axis.prototype.clear = function () {\n _super.prototype.clear.call(this);\n\n this.cache.clear();\n this.gridContainer.clear();\n this.gridForeContainer.clear();\n this.axisContainer.clear();\n this.axisForeContainer.clear();\n };\n\n Axis.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n\n this.gridContainer.remove(true);\n this.gridForeContainer.remove(true);\n this.axisContainer.remove(true);\n this.axisForeContainer.remove(true);\n };\n /**\n * @override\n */\n\n\n Axis.prototype.getComponents = function () {\n var co = [];\n this.cache.forEach(function (value) {\n co.push(value);\n });\n return co;\n };\n /**\n * 更新 x axis\n * @param updatedCache\n */\n\n\n Axis.prototype.updateXAxes = function (updatedCache) {\n // x axis\n var scale = this.view.getXScale();\n\n if (!scale || scale.isIdentity) {\n return;\n }\n\n var xAxisOption = getAxisOption(this.option, scale.field);\n\n if (xAxisOption === false) {\n return;\n }\n\n var direction = getAxisDirection(xAxisOption, DIRECTION.BOTTOM);\n var layer = LAYER.BG;\n var dim = 'x';\n var coordinate = this.view.getCoordinate();\n var axisId = this.getId('axis', scale.field);\n var gridId = this.getId('grid', scale.field);\n\n if (coordinate.isRect) {\n // 1. do axis update\n var axis = this.cache.get(axisId); // 存在则更新\n\n if (axis) {\n var cfg = this.getLineAxisCfg(scale, xAxisOption, direction);\n omit(cfg, OMIT_CFG);\n axis.component.update(cfg);\n updatedCache.set(axisId, axis);\n } else {\n // 不存在,则创建\n axis = this.createLineAxis(scale, xAxisOption, layer, direction, dim);\n this.cache.set(axisId, axis);\n updatedCache.set(axisId, axis);\n } // 2. do grid update\n\n\n var grid = this.cache.get(gridId); // 存在则更新\n\n if (grid) {\n var cfg = this.getLineGridCfg(scale, xAxisOption, direction, dim);\n omit(cfg, OMIT_CFG);\n grid.component.update(cfg);\n updatedCache.set(gridId, grid);\n } else {\n // 不存在则创建\n grid = this.createLineGrid(scale, xAxisOption, layer, direction, dim);\n\n if (grid) {\n this.cache.set(gridId, grid);\n updatedCache.set(gridId, grid);\n }\n }\n } else if (coordinate.isPolar) {\n // 1. do axis update\n var axis = this.cache.get(axisId); // 存在则更新\n\n if (axis) {\n var cfg = coordinate.isTransposed ? this.getLineAxisCfg(scale, xAxisOption, DIRECTION.RADIUS) : this.getCircleAxisCfg(scale, xAxisOption, direction);\n omit(cfg, OMIT_CFG);\n axis.component.update(cfg);\n updatedCache.set(axisId, axis);\n } else {\n // 不存在,则创建\n if (coordinate.isTransposed) {\n if (isUndefined(xAxisOption)) {\n // 默认不渲染转置极坐标下的坐标轴\n return;\n } else {\n // 如果用户打开了隐藏的坐标轴 chart.axis(true)/chart.axis('x', true)\n // 那么对于转置了的极坐标,半径轴显示的是 x 轴对应的数据\n axis = this.createLineAxis(scale, xAxisOption, layer, DIRECTION.RADIUS, dim);\n }\n } else {\n axis = this.createCircleAxis(scale, xAxisOption, layer, direction, dim);\n }\n\n this.cache.set(axisId, axis);\n updatedCache.set(axisId, axis);\n } // 2. do grid update\n\n\n var grid = this.cache.get(gridId); // 存在则更新\n\n if (grid) {\n var cfg = coordinate.isTransposed ? this.getCircleGridCfg(scale, xAxisOption, DIRECTION.RADIUS, dim) : this.getLineGridCfg(scale, xAxisOption, DIRECTION.CIRCLE, dim);\n omit(cfg, OMIT_CFG);\n grid.component.update(cfg);\n updatedCache.set(gridId, grid);\n } else {\n // 不存在则创建\n if (coordinate.isTransposed) {\n if (isUndefined(xAxisOption)) {\n return;\n } else {\n grid = this.createCircleGrid(scale, xAxisOption, layer, DIRECTION.RADIUS, dim);\n }\n } else {\n // grid,极坐标下的 x 轴网格线沿着半径方向绘制\n grid = this.createLineGrid(scale, xAxisOption, layer, DIRECTION.CIRCLE, dim);\n }\n\n if (grid) {\n this.cache.set(gridId, grid);\n updatedCache.set(gridId, grid);\n }\n }\n } else {// helix and other, do not draw axis\n }\n };\n\n Axis.prototype.updateYAxes = function (updatedCache) {\n var _this = this; // y axes\n\n\n var yScales = this.view.getYScales();\n each(yScales, function (scale, idx) {\n // @ts-ignore\n if (!scale || scale.isIdentity) {\n return;\n }\n\n var field = scale.field;\n var yAxisOption = getAxisOption(_this.option, field);\n\n if (yAxisOption !== false) {\n var layer = LAYER.BG;\n var dim = 'y';\n\n var axisId = _this.getId('axis', field);\n\n var gridId = _this.getId('grid', field);\n\n var coordinate = _this.view.getCoordinate();\n\n if (coordinate.isRect) {\n var direction = getAxisDirection(yAxisOption, idx === 0 ? DIRECTION.LEFT : DIRECTION.RIGHT); // 1. do axis update\n\n var axis = _this.cache.get(axisId); // 存在则更新\n\n\n if (axis) {\n var cfg = _this.getLineAxisCfg(scale, yAxisOption, direction);\n\n omit(cfg, OMIT_CFG);\n axis.component.update(cfg);\n updatedCache.set(axisId, axis);\n } else {\n // 不存在,则创建\n axis = _this.createLineAxis(scale, yAxisOption, layer, direction, dim);\n\n _this.cache.set(axisId, axis);\n\n updatedCache.set(axisId, axis);\n } // 2. do grid update\n\n\n var grid = _this.cache.get(gridId); // 存在则更新\n\n\n if (grid) {\n var cfg = _this.getLineGridCfg(scale, yAxisOption, direction, dim);\n\n omit(cfg, OMIT_CFG);\n grid.component.update(cfg);\n updatedCache.set(gridId, grid);\n } else {\n // 不存在则创建\n grid = _this.createLineGrid(scale, yAxisOption, layer, direction, dim);\n\n if (grid) {\n _this.cache.set(gridId, grid);\n\n updatedCache.set(gridId, grid);\n }\n }\n } else if (coordinate.isPolar) {\n // 1. do axis update\n var axis = _this.cache.get(axisId); // 存在则更新\n\n\n if (axis) {\n var cfg = coordinate.isTransposed ? _this.getCircleAxisCfg(scale, yAxisOption, DIRECTION.CIRCLE) : _this.getLineAxisCfg(scale, yAxisOption, DIRECTION.RADIUS); // @ts-ignore\n\n omit(cfg, OMIT_CFG);\n axis.component.update(cfg);\n updatedCache.set(axisId, axis);\n } else {\n // 不存在,则创建\n if (coordinate.isTransposed) {\n if (isUndefined(yAxisOption)) {\n return;\n } else {\n axis = _this.createCircleAxis(scale, yAxisOption, layer, DIRECTION.CIRCLE, dim);\n }\n } else {\n axis = _this.createLineAxis(scale, yAxisOption, layer, DIRECTION.RADIUS, dim);\n }\n\n _this.cache.set(axisId, axis);\n\n updatedCache.set(axisId, axis);\n } // 2. do grid update\n\n\n var grid = _this.cache.get(gridId); // 存在则更新\n\n\n if (grid) {\n var cfg = coordinate.isTransposed ? _this.getLineGridCfg(scale, yAxisOption, DIRECTION.CIRCLE, dim) : _this.getCircleGridCfg(scale, yAxisOption, DIRECTION.RADIUS, dim);\n omit(cfg, OMIT_CFG);\n grid.component.update(cfg);\n updatedCache.set(gridId, grid);\n } else {\n // 不存在则创建\n if (coordinate.isTransposed) {\n if (isUndefined(yAxisOption)) {\n return;\n } else {\n grid = _this.createLineGrid(scale, yAxisOption, layer, DIRECTION.CIRCLE, dim);\n }\n } else {\n grid = _this.createCircleGrid(scale, yAxisOption, layer, DIRECTION.RADIUS, dim);\n }\n\n if (grid) {\n _this.cache.set(gridId, grid);\n\n updatedCache.set(gridId, grid);\n }\n }\n } else {// helix and other, do not draw axis\n }\n }\n });\n };\n /**\n * 创建 line axis\n * @param scale\n * @param option\n * @param layer\n * @param direction\n * @param dim\n */\n\n\n Axis.prototype.createLineAxis = function (scale, option, layer, direction, dim) {\n // axis\n var axis = {\n component: new LineAxis(this.getLineAxisCfg(scale, option, direction)),\n layer: layer,\n direction: direction === DIRECTION.RADIUS ? DIRECTION.NONE : direction,\n type: COMPONENT_TYPE.AXIS,\n extra: {\n dim: dim,\n scale: scale\n }\n };\n axis.component.set('field', scale.field);\n axis.component.init();\n return axis;\n };\n\n Axis.prototype.createLineGrid = function (scale, option, layer, direction, dim) {\n var cfg = this.getLineGridCfg(scale, option, direction, dim);\n\n if (cfg) {\n var grid = {\n component: new LineGrid(cfg),\n layer: layer,\n direction: DIRECTION.NONE,\n type: COMPONENT_TYPE.GRID,\n extra: {\n dim: dim,\n scale: scale,\n alignTick: get(cfg, 'alignTick', true)\n }\n };\n grid.component.init();\n return grid;\n }\n };\n\n Axis.prototype.createCircleAxis = function (scale, option, layer, direction, dim) {\n var axis = {\n component: new CircleAxis(this.getCircleAxisCfg(scale, option, direction)),\n layer: layer,\n direction: direction,\n type: COMPONENT_TYPE.AXIS,\n extra: {\n dim: dim,\n scale: scale\n }\n };\n axis.component.set('field', scale.field);\n axis.component.init();\n return axis;\n };\n\n Axis.prototype.createCircleGrid = function (scale, option, layer, direction, dim) {\n var cfg = this.getCircleGridCfg(scale, option, direction, dim);\n\n if (cfg) {\n var grid = {\n component: new CircleGrid(cfg),\n layer: layer,\n direction: DIRECTION.NONE,\n type: COMPONENT_TYPE.GRID,\n extra: {\n dim: dim,\n scale: scale,\n alignTick: get(cfg, 'alignTick', true)\n }\n };\n grid.component.init();\n return grid;\n }\n };\n /**\n * generate line axis cfg\n * @param scale\n * @param axisOption\n * @param direction\n * @return line axis cfg\n */\n\n\n Axis.prototype.getLineAxisCfg = function (scale, axisOption, direction) {\n var container = get(axisOption, ['top']) ? this.axisForeContainer : this.axisContainer;\n var coordinate = this.view.getCoordinate();\n var region = getAxisRegion(coordinate, direction);\n var titleText = getAxisTitleText(scale, axisOption);\n var axisThemeCfg = getAxisThemeCfg(this.view.getTheme(), direction); // the cfg order should be ensure\n\n var optionWithTitle = get(axisOption, ['title']) ? deepMix({\n title: {\n style: {\n text: titleText\n }\n }\n }, {\n title: getAxisTitleOptions(this.view.getTheme(), direction, axisOption.title)\n }, axisOption) : axisOption;\n var cfg = deepMix(__assign(__assign({\n container: container\n }, region), {\n ticks: scale.getTicks().map(function (tick) {\n return {\n id: \"\".concat(tick.tickValue),\n name: tick.text,\n value: tick.value\n };\n }),\n verticalFactor: coordinate.isPolar ? getAxisFactorByRegion(region, coordinate.getCenter()) * -1 : getAxisFactorByRegion(region, coordinate.getCenter()),\n theme: axisThemeCfg\n }), axisThemeCfg, optionWithTitle);\n\n var _a = this.getAnimateCfg(cfg),\n animate = _a.animate,\n animateOption = _a.animateOption;\n\n cfg.animateOption = animateOption;\n cfg.animate = animate; // 计算 verticalLimitLength\n\n var isAxisVertical = isVertical(region); // TODO: 1 / 3 等默认值需要有一个全局的配置的地方\n\n var verticalLimitLength = get(cfg, 'verticalLimitLength', isAxisVertical ? 1 / 3 : 1 / 2);\n\n if (verticalLimitLength <= 1) {\n // 配置的相对值,相对于画布\n var canvasWidth = this.view.getCanvas().get('width');\n var canvasHeight = this.view.getCanvas().get('height');\n cfg.verticalLimitLength = verticalLimitLength * (isAxisVertical ? canvasWidth : canvasHeight);\n }\n\n return cfg;\n };\n /**\n * generate line grid cfg\n * @param scale\n * @param axisOption\n * @param direction\n * @param dim\n * @return line grid cfg\n */\n\n\n Axis.prototype.getLineGridCfg = function (scale, axisOption, direction, dim) {\n if (!showGrid(getAxisThemeCfg(this.view.getTheme(), direction), axisOption)) {\n return undefined;\n }\n\n var gridThemeCfg = getGridThemeCfg(this.view.getTheme(), direction); // the cfg order should be ensure\n // grid 动画以 axis 为准\n\n var gridCfg = deepMix({\n container: get(axisOption, ['top']) ? this.gridForeContainer : this.gridContainer\n }, gridThemeCfg, get(axisOption, 'grid'), this.getAnimateCfg(axisOption));\n gridCfg.items = getLineGridItems(this.view.getCoordinate(), scale, dim, get(gridCfg, 'alignTick', true));\n return gridCfg;\n };\n /**\n * generate circle axis cfg\n * @param scale\n * @param axisOption\n * @param direction\n * @return circle axis cfg\n */\n\n\n Axis.prototype.getCircleAxisCfg = function (scale, axisOption, direction) {\n var container = get(axisOption, ['top']) ? this.axisForeContainer : this.axisContainer;\n var coordinate = this.view.getCoordinate();\n var ticks = scale.getTicks().map(function (tick) {\n return {\n id: \"\".concat(tick.tickValue),\n name: tick.text,\n value: tick.value\n };\n });\n\n if (!scale.isCategory && Math.abs(coordinate.endAngle - coordinate.startAngle) === Math.PI * 2) {\n // x 轴对应的值如果是非 cat 类型,在整圆的情况下坐标轴第一个和最后一个文本会重叠,默认只展示第一个文本\n ticks.pop();\n }\n\n var titleText = getAxisTitleText(scale, axisOption);\n var axisThemeCfg = getAxisThemeCfg(this.view.getTheme(), DIRECTION.CIRCLE); // the cfg order should be ensure\n\n var optionWithTitle = get(axisOption, ['title']) ? deepMix({\n title: {\n style: {\n text: titleText\n }\n }\n }, {\n title: getAxisTitleOptions(this.view.getTheme(), direction, axisOption.title)\n }, axisOption) : axisOption;\n var cfg = deepMix(__assign(__assign({\n container: container\n }, getCircleAxisCenterRadius(this.view.getCoordinate())), {\n ticks: ticks,\n verticalFactor: 1,\n theme: axisThemeCfg\n }), axisThemeCfg, optionWithTitle);\n\n var _a = this.getAnimateCfg(cfg),\n animate = _a.animate,\n animateOption = _a.animateOption;\n\n cfg.animate = animate;\n cfg.animateOption = animateOption;\n return cfg;\n };\n /**\n * generate circle grid cfg\n * @param scale\n * @param axisOption\n * @param direction\n * @return circle grid cfg\n */\n\n\n Axis.prototype.getCircleGridCfg = function (scale, axisOption, direction, dim) {\n if (!showGrid(getAxisThemeCfg(this.view.getTheme(), direction), axisOption)) {\n return undefined;\n } // the cfg order should be ensure\n // grid 动画以 axis 为准\n\n\n var gridThemeCfg = getGridThemeCfg(this.view.getTheme(), DIRECTION.RADIUS);\n var gridCfg = deepMix({\n container: get(axisOption, ['top']) ? this.gridForeContainer : this.gridContainer,\n center: this.view.getCoordinate().getCenter()\n }, gridThemeCfg, get(axisOption, 'grid'), this.getAnimateCfg(axisOption));\n var alignTick = get(gridCfg, 'alignTick', true);\n var verticalScale = dim === 'x' ? this.view.getYScales()[0] : this.view.getXScale();\n gridCfg.items = getCircleGridItems(this.view.getCoordinate(), verticalScale, scale, alignTick, dim); // the cfg order should be ensure\n // grid 动画以 axis 为准\n\n return gridCfg;\n };\n\n Axis.prototype.getId = function (name, key) {\n var coordinate = this.view.getCoordinate(); // 坐标系类型也作为组件的 key\n\n return \"\".concat(name, \"-\").concat(key, \"-\").concat(coordinate.type);\n };\n\n Axis.prototype.getAnimateCfg = function (cfg) {\n return {\n animate: this.view.getOptions().animate && get(cfg, 'animate'),\n animateOption: cfg && cfg.animateOption ? deepMix({}, AXIS_DEFAULT_ANIMATE_CFG, cfg.animateOption) : AXIS_DEFAULT_ANIMATE_CFG\n };\n };\n\n return Axis;\n}(Controller);\n\nexport default Axis;","import { DIRECTION } from '../constant';\n/**\n * @ignore\n * 方位常量转实际的 bbox 位置大小\n * @param parentBBox\n * @param bbox\n * @param direction\n */\n\nexport function directionToPosition(parentBBox, bbox, direction) {\n if (direction === DIRECTION.TOP) {\n return [parentBBox.minX + parentBBox.width / 2 - bbox.width / 2, parentBBox.minY];\n }\n\n if (direction === DIRECTION.BOTTOM) {\n return [parentBBox.minX + parentBBox.width / 2 - bbox.width / 2, parentBBox.maxY - bbox.height];\n }\n\n if (direction === DIRECTION.LEFT) {\n return [parentBBox.minX, parentBBox.minY + parentBBox.height / 2 - bbox.height / 2];\n }\n\n if (direction === DIRECTION.RIGHT) {\n return [parentBBox.maxX - bbox.width, parentBBox.minY + parentBBox.height / 2 - bbox.height / 2];\n }\n\n if (direction === DIRECTION.TOP_LEFT || direction === DIRECTION.LEFT_TOP) {\n return [parentBBox.tl.x, parentBBox.tl.y];\n }\n\n if (direction === DIRECTION.TOP_RIGHT || direction === DIRECTION.RIGHT_TOP) {\n return [parentBBox.tr.x - bbox.width, parentBBox.tr.y];\n }\n\n if (direction === DIRECTION.BOTTOM_LEFT || direction === DIRECTION.LEFT_BOTTOM) {\n return [parentBBox.bl.x, parentBBox.bl.y - bbox.height];\n }\n\n if (direction === DIRECTION.BOTTOM_RIGHT || direction === DIRECTION.RIGHT_BOTTOM) {\n return [parentBBox.br.x - bbox.width, parentBBox.br.y - bbox.height];\n }\n\n return [0, 0];\n}\n/**\n * get direction after coordinate transpose\n * @param direction\n * @param coordinate\n * @returns direction after transpose or not\n */\n\nfunction getTransposedDirection(direction, coordinate) {\n if (coordinate.isTransposed) {\n switch (direction) {\n case DIRECTION.BOTTOM:\n return DIRECTION.LEFT;\n\n case DIRECTION.LEFT:\n return DIRECTION.BOTTOM;\n\n case DIRECTION.RIGHT:\n return DIRECTION.TOP;\n\n case DIRECTION.TOP:\n return DIRECTION.RIGHT;\n }\n }\n\n return direction;\n}\n\nfunction reflectX(direct) {\n if (direct === DIRECTION.LEFT) {\n return DIRECTION.RIGHT;\n }\n\n if (direct === DIRECTION.RIGHT) {\n return DIRECTION.LEFT;\n }\n\n return direct;\n}\n\nfunction reflectY(direct) {\n if (direct === DIRECTION.TOP) {\n return DIRECTION.BOTTOM;\n }\n\n if (direct === DIRECTION.BOTTOM) {\n return DIRECTION.TOP;\n }\n\n return direct;\n}\n/**\n * get direction after coordinate.scale\n * @param direction\n * @param coordinate\n */\n\n\nfunction getScaleDirection(direction, coordinate) {\n var x = coordinate.matrix[0];\n var y = coordinate.matrix[4];\n var d = direction;\n\n if (x < 0) {\n d = reflectX(d);\n }\n\n if (y < 0) {\n d = reflectY(d);\n }\n\n return d;\n}\n/**\n *\n * @param direction\n * @param coordinate\n */\n\n\nfunction getReflectDirection(direction, coordinate) {\n var d = direction;\n\n if (coordinate.isReflect('x')) {\n d = reflectX(d);\n }\n\n if (coordinate.isReflect('y')) {\n d = reflectY(d);\n }\n\n return d;\n}\n/**\n * @ignore\n * get direction after coordinate translate\n * @param direction\n * @param coordinate\n */\n\n\nexport function getTranslateDirection(direction, coordinate) {\n var d = direction;\n d = getTransposedDirection(d, coordinate);\n d = getScaleDirection(d, coordinate);\n d = getReflectDirection(d, coordinate);\n return d;\n}","import { __extends, __read } from \"tslib\";\nimport { deepMix, each, find, get, head, isBoolean, last } from '@antv/util';\nimport { COMPONENT_MAX_VIEW_PERCENTAGE, COMPONENT_TYPE, DIRECTION, LAYER } from '../../constant';\nimport { CategoryLegend, ContinuousLegend } from '../../dependents';\nimport { DEFAULT_ANIMATE_CFG } from '../../animate';\nimport { BBox } from '../../util/bbox';\nimport { directionToPosition } from '../../util/direction';\nimport { omit } from '../../util/helper';\nimport { getCustomLegendItems, getLegendItems, getLegendLayout, getLegendThemeCfg } from '../../util/legend';\nimport { getName } from '../../util/scale';\nimport { Controller } from './base';\n/**\n * 从配置中获取单个字段的 legend 配置\n * @param legends\n * @param field\n * @returns the option of one legend field\n */\n\nfunction getLegendOption(legends, field) {\n if (isBoolean(legends)) {\n return legends === false ? false : {};\n }\n\n return get(legends, [field], legends);\n}\n\nfunction getDirection(legendOption) {\n return get(legendOption, 'position', DIRECTION.BOTTOM);\n}\n/**\n * @ignore\n * legend Controller\n */\n\n\nvar Legend =\n/** @class */\nfunction (_super) {\n __extends(Legend, _super);\n\n function Legend(view) {\n var _this = _super.call(this, view) || this;\n\n _this.container = _this.view.getLayer(LAYER.FORE).addGroup();\n return _this;\n }\n\n Object.defineProperty(Legend.prototype, \"name\", {\n get: function get() {\n return 'legend';\n },\n enumerable: false,\n configurable: true\n });\n\n Legend.prototype.init = function () {};\n /**\n * render the legend component by legend options\n */\n\n\n Legend.prototype.render = function () {\n // 和 update 逻辑保持一致\n this.update();\n };\n /**\n * layout legend\n * 计算出 legend 的 direction 位置 x, y\n */\n\n\n Legend.prototype.layout = function () {\n var _this = this;\n\n this.layoutBBox = this.view.viewBBox;\n each(this.components, function (co) {\n var component = co.component,\n direction = co.direction;\n var layout = getLegendLayout(direction);\n var maxWidthRatio = component.get('maxWidthRatio');\n var maxHeightRatio = component.get('maxHeightRatio');\n\n var maxSize = _this.getCategoryLegendSizeCfg(layout, maxWidthRatio, maxHeightRatio);\n\n var maxWidth = component.get('maxWidth');\n var maxHeight = component.get('maxHeight'); // 先更新 maxSize,更新 layoutBBox,以便计算正确的 x y\n\n component.update({\n maxWidth: Math.min(maxSize.maxWidth, maxWidth || 0),\n maxHeight: Math.min(maxSize.maxHeight, maxHeight || 0)\n });\n var padding = component.get('padding');\n var bboxObject = component.getLayoutBBox(); // 这里只需要他的 width、height 信息做位置调整\n\n var bbox = new BBox(bboxObject.x, bboxObject.y, bboxObject.width, bboxObject.height).expand(padding);\n\n var _a = __read(directionToPosition(_this.view.viewBBox, bbox, direction), 2),\n x1 = _a[0],\n y1 = _a[1];\n\n var _b = __read(directionToPosition(_this.layoutBBox, bbox, direction), 2),\n x2 = _b[0],\n y2 = _b[1];\n\n var x = 0;\n var y = 0; // 因为 legend x y 要和 coordinateBBox 对齐,所以要做一个简单的判断\n\n if (direction.startsWith('top') || direction.startsWith('bottom')) {\n x = x1;\n y = y2;\n } else {\n x = x2;\n y = y1;\n } // 更新位置\n\n\n component.setLocation({\n x: x + padding[3],\n y: y + padding[0]\n });\n _this.layoutBBox = _this.layoutBBox.cut(bbox, direction);\n });\n };\n /**\n * legend 的更新逻辑\n */\n\n\n Legend.prototype.update = function () {\n var _this = this;\n\n this.option = this.view.getOptions().legends; // 已经处理过的 legend\n\n var updated = {};\n\n var eachLegend = function eachLegend(geometry, attr, scale) {\n var id = _this.getId(scale.field);\n\n var existCo = _this.getComponentById(id); // 存在则 update\n\n\n if (existCo) {\n var cfg = void 0;\n var legendOption = getLegendOption(_this.option, scale.field); // if the legend option is not false, means legend should be created.\n\n if (legendOption !== false) {\n if (get(legendOption, 'custom')) {\n cfg = _this.getCategoryCfg(geometry, attr, scale, legendOption, true);\n } else {\n if (scale.isLinear) {\n // linear field, create continuous legend\n cfg = _this.getContinuousCfg(geometry, attr, scale, legendOption);\n } else if (scale.isCategory) {\n // category field, create category legend\n cfg = _this.getCategoryCfg(geometry, attr, scale, legendOption);\n }\n }\n } // 如果 cfg 为空,则不在 updated 标记,那么会在后面逻辑中删除\n\n\n if (cfg) {\n // omit 掉一些属性,比如 container 等\n omit(cfg, ['container']);\n existCo.direction = getDirection(legendOption);\n existCo.component.update(cfg); // 标记为新的\n\n updated[id] = true;\n }\n } else {\n // 不存在则 create\n var legend = _this.createFieldLegend(geometry, attr, scale);\n\n if (legend) {\n legend.component.init();\n\n _this.components.push(legend); // 标记为新的\n\n\n updated[id] = true;\n }\n }\n }; // 全局自定义图例\n\n\n if (get(this.option, 'custom')) {\n var id = 'global-custom';\n var existCo = this.getComponentById(id);\n\n if (existCo) {\n var customCfg = this.getCategoryCfg(undefined, undefined, undefined, this.option, true);\n omit(customCfg, ['container']);\n existCo.component.update(customCfg);\n updated[id] = true;\n } else {\n var component = this.createCustomLegend(undefined, undefined, undefined, this.option);\n\n if (component) {\n component.init();\n var layer = LAYER.FORE;\n var direction = getDirection(this.option);\n this.components.push({\n id: id,\n component: component,\n layer: layer,\n direction: direction,\n type: COMPONENT_TYPE.LEGEND,\n extra: undefined\n }); // 标记为更新\n\n updated[id] = true;\n }\n }\n } else {\n // 遍历处理每一个创建逻辑\n this.loopLegends(eachLegend);\n } // 处理完成之后,销毁删除的\n // 不在处理中的\n\n\n var components = [];\n each(this.getComponents(), function (co) {\n if (updated[co.id]) {\n components.push(co);\n } else {\n co.component.destroy();\n }\n }); // 更新当前已有的 components\n\n this.components = components;\n };\n\n Legend.prototype.clear = function () {\n _super.prototype.clear.call(this);\n\n this.container.clear();\n };\n\n Legend.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n\n this.container.remove(true);\n };\n /**\n * 递归获取所有的 Geometry\n */\n\n\n Legend.prototype.getGeometries = function (view) {\n var _this = this;\n\n var geometries = view.geometries;\n each(view.views, function (v) {\n geometries = geometries.concat(_this.getGeometries(v));\n });\n return geometries;\n };\n /**\n * 遍历 Geometry,处理 legend 逻辑\n * @param doEach 每个 loop 中的处理方法\n */\n\n\n Legend.prototype.loopLegends = function (doEach) {\n var isRootView = this.view.getRootView() === this.view; // 非根 view,不处理 legend\n\n if (!isRootView) {\n return;\n } // 递归 view 中所有的 Geometry,进行创建 legend\n\n\n var geometries = this.getGeometries(this.view);\n var looped = {}; // 防止一个字段创建两个 legend\n\n each(geometries, function (geometry) {\n var attributes = geometry.getGroupAttributes();\n each(attributes, function (attr) {\n var scale = attr.getScale(attr.type); // 如果在视觉通道上映射常量值,如 size(2) shape('circle') 不创建 legend\n\n if (!scale || scale.type === 'identity' || looped[scale.field]) {\n return;\n }\n\n doEach(geometry, attr, scale);\n looped[scale.field] = true;\n });\n });\n };\n /**\n * 创建一个 legend\n * @param geometry\n * @param attr\n * @param scale\n */\n\n\n Legend.prototype.createFieldLegend = function (geometry, attr, scale) {\n var component;\n var legendOption = getLegendOption(this.option, scale.field);\n var layer = LAYER.FORE;\n var direction = getDirection(legendOption); // if the legend option is not false, means legend should be created.\n\n if (legendOption !== false) {\n if (get(legendOption, 'custom')) {\n component = this.createCustomLegend(geometry, attr, scale, legendOption);\n } else {\n if (scale.isLinear) {\n // linear field, create continuous legend\n component = this.createContinuousLegend(geometry, attr, scale, legendOption);\n } else if (scale.isCategory) {\n // category field, create category legend\n component = this.createCategoryLegend(geometry, attr, scale, legendOption);\n }\n }\n }\n\n if (component) {\n component.set('field', scale.field);\n return {\n id: this.getId(scale.field),\n component: component,\n layer: layer,\n direction: direction,\n type: COMPONENT_TYPE.LEGEND,\n extra: {\n scale: scale\n }\n };\n }\n };\n /**\n * 自定义图例使用 category 图例去渲染\n * @param geometry\n * @param attr\n * @param scale\n * @param legendOption\n */\n\n\n Legend.prototype.createCustomLegend = function (geometry, attr, scale, legendOption) {\n // 直接使用 分类图例渲染\n var cfg = this.getCategoryCfg(geometry, attr, scale, legendOption, true);\n return new CategoryLegend(cfg);\n };\n /**\n * 创建连续图例\n * @param geometry\n * @param attr\n * @param scale\n * @param legendOption\n */\n\n\n Legend.prototype.createContinuousLegend = function (geometry, attr, scale, legendOption) {\n var cfg = this.getContinuousCfg(geometry, attr, scale, omit(legendOption, ['value']));\n return new ContinuousLegend(cfg);\n };\n /**\n * 创建分类图例\n * @param geometry\n * @param attr\n * @param scale\n * @param legendOption\n */\n\n\n Legend.prototype.createCategoryLegend = function (geometry, attr, scale, legendOption) {\n var cfg = this.getCategoryCfg(geometry, attr, scale, legendOption);\n return new CategoryLegend(cfg);\n };\n /**\n * 获得连续图例的配置\n * @param geometry\n * @param attr\n * @param scale\n * @param legendOption\n */\n\n\n Legend.prototype.getContinuousCfg = function (geometry, attr, scale, legendOption) {\n var ticks = scale.getTicks();\n var containMin = find(ticks, function (tick) {\n return tick.value === 0;\n });\n var containMax = find(ticks, function (tick) {\n return tick.value === 1;\n });\n var items = ticks.map(function (tick) {\n var value = tick.value,\n tickValue = tick.tickValue;\n var attrValue = attr.mapping(scale.invert(value)).join('');\n return {\n value: tickValue,\n attrValue: attrValue,\n color: attrValue,\n scaleValue: value\n };\n });\n\n if (!containMin) {\n items.push({\n value: scale.min,\n attrValue: attr.mapping(scale.invert(0)).join(''),\n color: attr.mapping(scale.invert(0)).join(''),\n scaleValue: 0\n });\n }\n\n if (!containMax) {\n items.push({\n value: scale.max,\n attrValue: attr.mapping(scale.invert(1)).join(''),\n color: attr.mapping(scale.invert(1)).join(''),\n scaleValue: 1\n });\n } // 排序\n\n\n items.sort(function (a, b) {\n return a.value - b.value;\n }); // 跟 attr 相关的配置\n // size color 区别的配置\n\n var attrLegendCfg = {\n min: head(items).value,\n max: last(items).value,\n colors: [],\n rail: {\n type: attr.type\n },\n track: {}\n };\n\n if (attr.type === 'size') {\n attrLegendCfg.track = {\n style: {\n // size 的选中前景色,对于 color,则直接使用 color 标识\n // @ts-ignore\n fill: attr.type === 'size' ? this.view.getTheme().defaultColor : undefined\n }\n };\n }\n\n if (attr.type === 'color') {\n attrLegendCfg.colors = items.map(function (item) {\n return item.attrValue;\n });\n }\n\n var container = this.container; // if position is not set, use top as default\n\n var direction = getDirection(legendOption);\n var layout = getLegendLayout(direction);\n var title = get(legendOption, 'title');\n\n if (title) {\n title = deepMix({\n text: getName(scale)\n }, title);\n } // 基础配置,从当前数据中读到的配置\n\n\n attrLegendCfg.container = container;\n attrLegendCfg.layout = layout;\n attrLegendCfg.title = title;\n attrLegendCfg.animateOption = DEFAULT_ANIMATE_CFG; // @ts-ignore\n\n return this.mergeLegendCfg(attrLegendCfg, legendOption, 'continuous');\n };\n /**\n * 获取分类图例的配置项\n * @param geometry\n * @param attr\n * @param scale\n * @param custom\n * @param legendOption\n */\n\n\n Legend.prototype.getCategoryCfg = function (geometry, attr, scale, legendOption, custom) {\n var container = this.container; // if position is not set, use top as default\n\n var direction = get(legendOption, 'position', DIRECTION.BOTTOM);\n var legendTheme = getLegendThemeCfg(this.view.getTheme(), direction); // the default marker style\n\n var themeMarker = get(legendTheme, ['marker']);\n var userMarker = get(legendOption, 'marker');\n var layout = getLegendLayout(direction);\n var themePageNavigator = get(legendTheme, ['pageNavigator']);\n var userPageNavigator = get(legendOption, 'pageNavigator');\n var items = custom ? getCustomLegendItems(themeMarker, userMarker, legendOption.items) : getLegendItems(this.view, geometry, attr, themeMarker, userMarker);\n var title = get(legendOption, 'title');\n\n if (title) {\n title = deepMix({\n text: scale ? getName(scale) : ''\n }, title);\n }\n\n var maxWidthRatio = get(legendOption, 'maxWidthRatio');\n var maxHeightRatio = get(legendOption, 'maxHeightRatio');\n var baseCfg = this.getCategoryLegendSizeCfg(layout, maxWidthRatio, maxHeightRatio);\n baseCfg.container = container;\n baseCfg.layout = layout;\n baseCfg.items = items;\n baseCfg.title = title;\n baseCfg.animateOption = DEFAULT_ANIMATE_CFG;\n baseCfg.pageNavigator = deepMix({}, themePageNavigator, userPageNavigator);\n var categoryCfg = this.mergeLegendCfg(baseCfg, legendOption, direction);\n\n if (categoryCfg.reversed) {\n // 图例项需要逆序\n categoryCfg.items.reverse();\n }\n\n var maxItemWidth = get(categoryCfg, 'maxItemWidth');\n\n if (maxItemWidth && maxItemWidth <= 1) {\n // 转换成像素值\n categoryCfg.maxItemWidth = this.view.viewBBox.width * maxItemWidth;\n }\n\n return categoryCfg;\n };\n /**\n * get legend config, use option > suggestion > theme\n * @param baseCfg\n * @param legendOption\n * @param direction\n */\n\n\n Legend.prototype.mergeLegendCfg = function (baseCfg, legendOption, direction) {\n var position = direction.split('-')[0];\n var themeObject = getLegendThemeCfg(this.view.getTheme(), position);\n return deepMix({}, themeObject, baseCfg, legendOption);\n };\n /**\n * 生成 id\n * @param key\n */\n\n\n Legend.prototype.getId = function (key) {\n return \"\".concat(this.name, \"-\").concat(key);\n };\n /**\n * 根据 id 来获取组件\n * @param id\n */\n\n\n Legend.prototype.getComponentById = function (id) {\n return find(this.components, function (co) {\n return co.id === id;\n });\n };\n\n Legend.prototype.getCategoryLegendSizeCfg = function (layout, maxWidthRatio, maxHeightRatio) {\n if (maxWidthRatio === void 0) {\n maxWidthRatio = COMPONENT_MAX_VIEW_PERCENTAGE;\n }\n\n if (maxHeightRatio === void 0) {\n maxHeightRatio = COMPONENT_MAX_VIEW_PERCENTAGE;\n }\n\n var _a = this.view.viewBBox,\n vw = _a.width,\n vh = _a.height; // 目前 legend 的布局是以 viewBBox 为参照\n // const { width: cw, height: ch } = this.view.coordinateBBox;\n\n return layout === 'vertical' ? {\n maxWidth: vw * maxWidthRatio,\n maxHeight: vh\n } : {\n maxWidth: vw,\n maxHeight: vh * maxHeightRatio\n };\n };\n\n return Legend;\n}(Controller);\n\nexport default Legend;","import { __assign, __extends, __read } from \"tslib\";\nimport { deepMix, get, isObject, size, clamp, isNil, noop, throttle, isEmpty, valuesOfKey } from '@antv/util';\nimport { COMPONENT_TYPE, DIRECTION, LAYER, VIEW_LIFE_CIRCLE } from '../../constant';\nimport { Slider as SliderComponent } from '../../dependents';\nimport { BBox } from '../../util/bbox';\nimport { directionToPosition } from '../../util/direction';\nimport { isBetween } from '../../util/helper';\nimport { Controller } from './base';\n/**\n * @ignore\n * slider Controller\n */\n\nvar Slider =\n/** @class */\nfunction (_super) {\n __extends(Slider, _super);\n\n function Slider(view) {\n var _this = _super.call(this, view) || this;\n\n _this.onChangeFn = noop;\n /**\n * 清除测量\n */\n\n _this.resetMeasure = function () {\n _this.clear();\n };\n /**\n * 滑块滑动的时候出发\n * @param v\n */\n\n\n _this.onValueChange = function (v) {\n var _a = __read(v, 2),\n min = _a[0],\n max = _a[1];\n\n _this.start = min;\n _this.end = max;\n\n _this.changeViewData(min, max);\n };\n\n _this.container = _this.view.getLayer(LAYER.FORE).addGroup();\n _this.onChangeFn = throttle(_this.onValueChange, 20, {\n leading: true\n });\n _this.width = 0;\n\n _this.view.on(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, _this.resetMeasure);\n\n _this.view.on(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_SIZE, _this.resetMeasure);\n\n return _this;\n }\n\n Object.defineProperty(Slider.prototype, \"name\", {\n get: function get() {\n return 'slider';\n },\n enumerable: false,\n configurable: true\n });\n\n Slider.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n\n this.view.off(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, this.resetMeasure);\n this.view.off(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_SIZE, this.resetMeasure);\n };\n /**\n * 初始化\n */\n\n\n Slider.prototype.init = function () {};\n /**\n * 渲染\n */\n\n\n Slider.prototype.render = function () {\n this.option = this.view.getOptions().slider;\n\n var _a = this.getSliderCfg(),\n start = _a.start,\n end = _a.end;\n\n if (isNil(this.start)) {\n this.start = start;\n this.end = end;\n }\n\n var viewData = this.view.getOptions().data;\n\n if (this.option && !isEmpty(viewData)) {\n if (this.slider) {\n // exist, update\n this.slider = this.updateSlider();\n } else {\n // not exist, create\n this.slider = this.createSlider(); // 监听事件,绑定交互\n\n this.slider.component.on('sliderchange', this.onChangeFn);\n }\n } else {\n if (this.slider) {\n // exist, destroy\n this.slider.component.destroy();\n this.slider = undefined;\n } else {// do nothing\n }\n }\n };\n /**\n * 布局\n */\n\n\n Slider.prototype.layout = function () {\n var _this = this;\n\n if (this.option && !this.width) {\n this.measureSlider();\n setTimeout(function () {\n // 初始状态下的 view 数据过滤\n if (!_this.view.destroyed) {\n _this.changeViewData(_this.start, _this.end);\n }\n }, 0);\n }\n\n if (this.slider) {\n var width = this.view.coordinateBBox.width; // 获取组件的 layout bbox\n\n var padding = this.slider.component.get('padding');\n\n var _a = __read(padding, 4),\n paddingTop = _a[0],\n paddingRight = _a[1],\n paddingBottom = _a[2],\n paddingLeft = _a[3];\n\n var bboxObject = this.slider.component.getLayoutBBox();\n var bbox = new BBox(bboxObject.x, bboxObject.y, Math.min(bboxObject.width, width), bboxObject.height).expand(padding);\n\n var _b = this.getMinMaxText(this.start, this.end),\n minText = _b.minText,\n maxText = _b.maxText;\n\n var _c = __read(directionToPosition(this.view.viewBBox, bbox, DIRECTION.BOTTOM), 2),\n x1 = _c[0],\n y1 = _c[1];\n\n var _d = __read(directionToPosition(this.view.coordinateBBox, bbox, DIRECTION.BOTTOM), 2),\n x2 = _d[0],\n y2 = _d[1]; // 默认放在 bottom\n\n\n this.slider.component.update(__assign(__assign({}, this.getSliderCfg()), {\n x: x2 + paddingLeft,\n y: y1 + paddingTop,\n width: this.width,\n start: this.start,\n end: this.end,\n minText: minText,\n maxText: maxText\n }));\n this.view.viewBBox = this.view.viewBBox.cut(bbox, DIRECTION.BOTTOM);\n }\n };\n /**\n * 更新\n */\n\n\n Slider.prototype.update = function () {\n // 逻辑和 render 保持一致\n this.render();\n };\n /**\n * 创建 slider 组件\n */\n\n\n Slider.prototype.createSlider = function () {\n var cfg = this.getSliderCfg(); // 添加 slider 组件\n\n var component = new SliderComponent(__assign({\n container: this.container\n }, cfg));\n component.init();\n return {\n component: component,\n layer: LAYER.FORE,\n direction: DIRECTION.BOTTOM,\n type: COMPONENT_TYPE.SLIDER\n };\n };\n /**\n * 更新配置\n */\n\n\n Slider.prototype.updateSlider = function () {\n var cfg = this.getSliderCfg();\n\n if (this.width) {\n var _a = this.getMinMaxText(this.start, this.end),\n minText = _a.minText,\n maxText = _a.maxText;\n\n cfg = __assign(__assign({}, cfg), {\n width: this.width,\n start: this.start,\n end: this.end,\n minText: minText,\n maxText: maxText\n });\n }\n\n this.slider.component.update(cfg);\n return this.slider;\n };\n /**\n * 进行测量操作\n */\n\n\n Slider.prototype.measureSlider = function () {\n var width = this.getSliderCfg().width;\n this.width = width;\n };\n /**\n * 生成 slider 配置\n */\n\n\n Slider.prototype.getSliderCfg = function () {\n var cfg = {\n height: 16,\n start: 0,\n end: 1,\n minText: '',\n maxText: '',\n x: 0,\n y: 0,\n width: this.view.coordinateBBox.width\n };\n\n if (isObject(this.option)) {\n // 用户配置的数据,优先级更高\n var trendCfg = __assign({\n data: this.getData()\n }, get(this.option, 'trendCfg', {})); // 因为有样式,所以深层覆盖\n\n\n cfg = deepMix({}, cfg, this.getThemeOptions(), this.option); // trendCfg 因为有数据数组,所以使用浅替换\n\n cfg = __assign(__assign({}, cfg), {\n trendCfg: trendCfg\n });\n }\n\n cfg.start = clamp(Math.min(isNil(cfg.start) ? 0 : cfg.start, isNil(cfg.end) ? 1 : cfg.end), 0, 1);\n cfg.end = clamp(Math.max(isNil(cfg.start) ? 0 : cfg.start, isNil(cfg.end) ? 1 : cfg.end), 0, 1);\n return cfg;\n };\n /**\n * 从 view 中获取数据,缩略轴使用全量的数据\n */\n\n\n Slider.prototype.getData = function () {\n var data = this.view.getOptions().data;\n\n var _a = __read(this.view.getYScales(), 1),\n yScale = _a[0];\n\n var groupScales = this.view.getGroupScales();\n\n if (groupScales.length) {\n var _b = groupScales[0],\n field_1 = _b.field,\n ticks_1 = _b.ticks;\n return data.reduce(function (pre, cur) {\n if (cur[field_1] === ticks_1[0]) {\n pre.push(cur[yScale.field]);\n }\n\n return pre;\n }, []);\n }\n\n return data.map(function (datum) {\n return datum[yScale.field] || 0;\n });\n };\n /**\n * 获取 slider 的主题配置\n */\n\n\n Slider.prototype.getThemeOptions = function () {\n var theme = this.view.getTheme();\n return get(theme, ['components', 'slider', 'common'], {});\n };\n /**\n * 根据 start/end 和当前数据计算出当前的 minText/maxText\n * @param min\n * @param max\n */\n\n\n Slider.prototype.getMinMaxText = function (min, max) {\n var data = this.view.getOptions().data;\n var xScale = this.view.getXScale();\n var isHorizontal = true;\n var values = valuesOfKey(data, xScale.field); // 如果是 xScale 数值类型,则进行排序\n\n if (xScale.isLinear) {\n values = values.sort();\n }\n\n var xValues = isHorizontal ? values : values.reverse();\n var dataSize = size(data);\n\n if (!xScale || !dataSize) {\n return {}; // fix: 需要兼容,否则调用方直接取值会报错\n }\n\n var xTickCount = size(xValues);\n var minIndex = Math.round(min * (xTickCount - 1));\n var maxIndex = Math.round(max * (xTickCount - 1));\n var minText = get(xValues, [minIndex]);\n var maxText = get(xValues, [maxIndex]);\n var formatter = this.getSliderCfg().formatter;\n\n if (formatter) {\n minText = formatter(minText, data[minIndex], minIndex);\n maxText = formatter(maxText, data[maxIndex], maxIndex);\n }\n\n return {\n minText: minText,\n maxText: maxText\n };\n };\n /**\n * 更新 view 过滤数据\n * @param min\n * @param max\n */\n\n\n Slider.prototype.changeViewData = function (min, max) {\n var data = this.view.getOptions().data;\n var xScale = this.view.getXScale();\n var dataSize = size(data);\n\n if (!xScale || !dataSize) {\n return;\n }\n\n var isHorizontal = true;\n var values = valuesOfKey(data, xScale.field); // 如果是 xScale 数值类型,则进行排序\n\n var xScaleValues = this.view.getXScale().isLinear ? values.sort(function (a, b) {\n return Number(a) - Number(b);\n }) : values;\n var xValues = isHorizontal ? xScaleValues : xScaleValues.reverse();\n var xTickCount = size(xValues);\n var minIndex = Math.round(min * (xTickCount - 1));\n var maxIndex = Math.round(max * (xTickCount - 1)); // 增加 x 轴的过滤器\n\n this.view.filter(xScale.field, function (value, datum) {\n var idx = xValues.indexOf(value);\n return idx > -1 ? isBetween(idx, minIndex, maxIndex) : true;\n });\n this.view.render(true);\n };\n /**\n * 覆写父类方法\n */\n\n\n Slider.prototype.getComponents = function () {\n return this.slider ? [this.slider] : [];\n };\n /**\n * 覆盖父类\n */\n\n\n Slider.prototype.clear = function () {\n if (this.slider) {\n this.slider.component.destroy();\n this.slider = undefined;\n }\n\n this.width = 0;\n this.start = undefined;\n this.end = undefined;\n };\n\n return Slider;\n}(Controller);\n\nexport default Slider;","import { __assign, __extends, __read, __rest, __spreadArray } from \"tslib\";\nimport { Controller } from './base';\nimport { Scrollbar as ScrollbarComponent } from '../../dependents';\nimport { BBox } from '../../util/bbox';\nimport { directionToPosition } from '../../util/direction';\nimport { COMPONENT_TYPE, DIRECTION, LAYER, VIEW_LIFE_CIRCLE } from '../../constant';\nimport { isObject, clamp, size, throttle, noop, get, valuesOfKey, deepMix } from '@antv/util';\nimport { isBetween } from '../../util/helper';\nvar DEFAULT_PADDING = 0;\nvar DEFAULT_SIZE = 8;\nvar DEFAULT_CATEGORY_SIZE = 32;\nvar MIN_THUMB_LENGTH = 20;\n\nvar Scrollbar =\n/** @class */\nfunction (_super) {\n __extends(Scrollbar, _super);\n\n function Scrollbar(view) {\n var _this = _super.call(this, view) || this;\n\n _this.onChangeFn = noop;\n\n _this.resetMeasure = function () {\n _this.clear();\n };\n\n _this.onValueChange = function (_a) {\n var ratio = _a.ratio;\n\n var animate = _this.getValidScrollbarCfg().animate;\n\n _this.ratio = clamp(ratio, 0, 1);\n\n var originalAnimate = _this.view.getOptions().animate;\n\n if (!animate) {\n _this.view.animate(false);\n }\n\n _this.changeViewData(_this.getScrollRange(), true);\n\n _this.view.animate(originalAnimate);\n };\n\n _this.container = _this.view.getLayer(LAYER.FORE).addGroup();\n _this.onChangeFn = throttle(_this.onValueChange, 20, {\n leading: true\n });\n _this.trackLen = 0;\n _this.thumbLen = 0;\n _this.ratio = 0;\n\n _this.view.on(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, _this.resetMeasure);\n\n _this.view.on(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_SIZE, _this.resetMeasure);\n\n return _this;\n }\n\n Object.defineProperty(Scrollbar.prototype, \"name\", {\n get: function get() {\n return 'scrollbar';\n },\n enumerable: false,\n configurable: true\n });\n\n Scrollbar.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n\n this.view.off(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, this.resetMeasure);\n this.view.off(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_SIZE, this.resetMeasure);\n };\n\n Scrollbar.prototype.init = function () {};\n /**\n * 渲染\n */\n\n\n Scrollbar.prototype.render = function () {\n this.option = this.view.getOptions().scrollbar;\n\n if (this.option) {\n if (this.scrollbar) {\n // exist, update\n this.scrollbar = this.updateScrollbar();\n } else {\n // not exist, create\n this.scrollbar = this.createScrollbar();\n this.scrollbar.component.on('scrollchange', this.onChangeFn);\n }\n } else {\n if (this.scrollbar) {\n // exist, destroy\n this.scrollbar.component.destroy();\n this.scrollbar = undefined;\n }\n }\n };\n /**\n * 布局\n */\n\n\n Scrollbar.prototype.layout = function () {\n var _this = this;\n\n if (this.option && !this.trackLen) {\n this.measureScrollbar();\n setTimeout(function () {\n if (!_this.view.destroyed) {\n _this.changeViewData(_this.getScrollRange(), true);\n }\n });\n }\n\n if (this.scrollbar) {\n var width = this.view.coordinateBBox.width;\n var padding = this.scrollbar.component.get('padding');\n var bboxObject = this.scrollbar.component.getLayoutBBox();\n var bbox = new BBox(bboxObject.x, bboxObject.y, Math.min(bboxObject.width, width), bboxObject.height).expand(padding);\n var cfg = this.getScrollbarComponentCfg();\n var x = void 0;\n var y = void 0;\n\n if (cfg.isHorizontal) {\n var _a = __read(directionToPosition(this.view.viewBBox, bbox, DIRECTION.BOTTOM), 2),\n x1 = _a[0],\n y1 = _a[1];\n\n var _b = __read(directionToPosition(this.view.coordinateBBox, bbox, DIRECTION.BOTTOM), 2),\n x2 = _b[0],\n y2 = _b[1];\n\n x = x2;\n y = y1;\n } else {\n var _c = __read(directionToPosition(this.view.viewBBox, bbox, DIRECTION.RIGHT), 2),\n x1 = _c[0],\n y1 = _c[1];\n\n var _d = __read(directionToPosition(this.view.viewBBox, bbox, DIRECTION.RIGHT), 2),\n x2 = _d[0],\n y2 = _d[1];\n\n x = x2;\n y = y1;\n }\n\n x += padding[3];\n y += padding[0]; // 默认放在 bottom\n\n if (this.trackLen) {\n this.scrollbar.component.update(__assign(__assign({}, cfg), {\n x: x,\n y: y,\n trackLen: this.trackLen,\n thumbLen: this.thumbLen,\n thumbOffset: (this.trackLen - this.thumbLen) * this.ratio\n }));\n } else {\n this.scrollbar.component.update(__assign(__assign({}, cfg), {\n x: x,\n y: y\n }));\n }\n\n this.view.viewBBox = this.view.viewBBox.cut(bbox, cfg.isHorizontal ? DIRECTION.BOTTOM : DIRECTION.RIGHT);\n }\n };\n /**\n * 更新\n */\n\n\n Scrollbar.prototype.update = function () {\n // 逻辑和 render 保持一致\n this.render();\n };\n\n Scrollbar.prototype.getComponents = function () {\n return this.scrollbar ? [this.scrollbar] : [];\n };\n\n Scrollbar.prototype.clear = function () {\n if (this.scrollbar) {\n this.scrollbar.component.destroy();\n this.scrollbar = undefined;\n }\n\n this.trackLen = 0;\n this.thumbLen = 0;\n this.ratio = 0;\n this.cnt = 0;\n this.step = 0;\n this.data = undefined;\n this.xScaleCfg = undefined;\n this.yScalesCfg = [];\n };\n /** 设置滚动条位置 */\n\n\n Scrollbar.prototype.setValue = function (ratio) {\n this.onValueChange({\n ratio: ratio\n });\n };\n /** 获得滚动条位置 */\n\n\n Scrollbar.prototype.getValue = function () {\n return this.ratio;\n };\n /**\n * 获取 scrollbar 的主题配置\n */\n\n\n Scrollbar.prototype.getThemeOptions = function () {\n var theme = this.view.getTheme();\n return get(theme, ['components', 'scrollbar', 'common'], {});\n };\n /**\n * 获取 scrollbar 组件的主题样式\n */\n\n\n Scrollbar.prototype.getScrollbarTheme = function (style) {\n var theme = get(this.view.getTheme(), ['components', 'scrollbar']);\n\n var _a = style || {},\n thumbHighlightColor = _a.thumbHighlightColor,\n restStyles = __rest(_a, [\"thumbHighlightColor\"]);\n\n return {\n \"default\": deepMix({}, get(theme, ['default', 'style'], {}), restStyles),\n hover: deepMix({}, get(theme, ['hover', 'style'], {}), {\n thumbColor: thumbHighlightColor\n })\n };\n };\n\n Scrollbar.prototype.measureScrollbar = function () {\n var xScale = this.view.getXScale();\n var yScales = this.view.getYScales().slice();\n this.data = this.getScrollbarData();\n this.step = this.getStep();\n this.cnt = this.getCnt();\n\n var _a = this.getScrollbarComponentCfg(),\n trackLen = _a.trackLen,\n thumbLen = _a.thumbLen;\n\n this.trackLen = trackLen;\n this.thumbLen = thumbLen;\n this.xScaleCfg = {\n field: xScale.field,\n values: xScale.values || []\n };\n this.yScalesCfg = yScales;\n };\n\n Scrollbar.prototype.getScrollRange = function () {\n var startIdx = Math.floor((this.cnt - this.step) * clamp(this.ratio, 0, 1));\n var endIdx = Math.min(startIdx + this.step - 1, this.cnt - 1);\n return [startIdx, endIdx];\n };\n\n Scrollbar.prototype.changeViewData = function (_a, render) {\n var _this = this;\n\n var _b = __read(_a, 2),\n startIdx = _b[0],\n endIdx = _b[1];\n\n var type = this.getValidScrollbarCfg().type;\n var isHorizontal = type !== 'vertical';\n var values = valuesOfKey(this.data, this.xScaleCfg.field); // 如果是 xScale 数值类型,则进行排序\n\n var xScaleValues = this.view.getXScale().isLinear ? values.sort(function (a, b) {\n return Number(a) - Number(b);\n }) : values;\n var xValues = isHorizontal ? xScaleValues : xScaleValues.reverse();\n this.yScalesCfg.forEach(function (cfg) {\n _this.view.scale(cfg.field, {\n formatter: cfg.formatter,\n type: cfg.type,\n min: cfg.min,\n max: cfg.max,\n tickMethod: cfg.tickMethod\n });\n });\n this.view.filter(this.xScaleCfg.field, function (val) {\n var idx = xValues.indexOf(val);\n return idx > -1 ? isBetween(idx, startIdx, endIdx) : true;\n });\n this.view.render(true);\n };\n\n Scrollbar.prototype.createScrollbar = function () {\n var type = this.getValidScrollbarCfg().type;\n var isHorizontal = type !== 'vertical';\n var component = new ScrollbarComponent(__assign(__assign({\n container: this.container\n }, this.getScrollbarComponentCfg()), {\n x: 0,\n y: 0\n }));\n component.init();\n return {\n component: component,\n layer: LAYER.FORE,\n direction: isHorizontal ? DIRECTION.BOTTOM : DIRECTION.RIGHT,\n type: COMPONENT_TYPE.SCROLLBAR\n };\n };\n\n Scrollbar.prototype.updateScrollbar = function () {\n var config = this.getScrollbarComponentCfg();\n var realConfig = this.trackLen ? __assign(__assign({}, config), {\n trackLen: this.trackLen,\n thumbLen: this.thumbLen,\n thumbOffset: (this.trackLen - this.thumbLen) * this.ratio\n }) : __assign({}, config);\n this.scrollbar.component.update(realConfig);\n return this.scrollbar;\n };\n\n Scrollbar.prototype.getStep = function () {\n if (this.step) {\n return this.step;\n }\n\n var coordinateBBox = this.view.coordinateBBox;\n\n var _a = this.getValidScrollbarCfg(),\n type = _a.type,\n categorySize = _a.categorySize;\n\n var isHorizontal = type !== 'vertical';\n return Math.floor((isHorizontal ? coordinateBBox.width : coordinateBBox.height) / categorySize);\n };\n\n Scrollbar.prototype.getCnt = function () {\n if (this.cnt) {\n return this.cnt;\n }\n\n var xScale = this.view.getXScale();\n var data = this.getScrollbarData();\n var values = valuesOfKey(data, xScale.field);\n return size(values);\n };\n\n Scrollbar.prototype.getScrollbarComponentCfg = function () {\n var _a = this.view,\n coordinateBBox = _a.coordinateBBox,\n viewBBox = _a.viewBBox;\n\n var _b = this.getValidScrollbarCfg(),\n type = _b.type,\n padding = _b.padding,\n width = _b.width,\n height = _b.height,\n style = _b.style;\n\n var isHorizontal = type !== 'vertical';\n\n var _c = __read(padding, 4),\n paddingTop = _c[0],\n paddingRight = _c[1],\n paddingBottom = _c[2],\n paddingLeft = _c[3];\n\n var position = isHorizontal ? {\n x: coordinateBBox.minX + paddingLeft,\n y: viewBBox.maxY - height - paddingBottom\n } : {\n x: viewBBox.maxX - width - paddingRight,\n y: coordinateBBox.minY + paddingTop\n };\n var step = this.getStep();\n var cnt = this.getCnt();\n var trackLen = isHorizontal ? coordinateBBox.width - paddingLeft - paddingRight : coordinateBBox.height - paddingTop - paddingBottom;\n var thumbLen = Math.max(trackLen * clamp(step / cnt, 0, 1), MIN_THUMB_LENGTH);\n return __assign(__assign({}, this.getThemeOptions()), {\n x: position.x,\n y: position.y,\n size: isHorizontal ? height : width,\n isHorizontal: isHorizontal,\n trackLen: trackLen,\n thumbLen: thumbLen,\n thumbOffset: 0,\n theme: this.getScrollbarTheme(style)\n });\n };\n /**\n * 填充一些默认的配置项目\n */\n\n\n Scrollbar.prototype.getValidScrollbarCfg = function () {\n var cfg = {\n type: 'horizontal',\n categorySize: DEFAULT_CATEGORY_SIZE,\n width: DEFAULT_SIZE,\n height: DEFAULT_SIZE,\n padding: [0, 0, 0, 0],\n animate: true,\n style: {}\n };\n\n if (isObject(this.option)) {\n cfg = __assign(__assign({}, cfg), this.option);\n }\n\n if (!isObject(this.option) || !this.option.padding) {\n cfg.padding = cfg.type === 'horizontal' ? [DEFAULT_PADDING, 0, DEFAULT_PADDING, 0] : [0, DEFAULT_PADDING, 0, DEFAULT_PADDING];\n }\n\n return cfg;\n };\n /**\n * 获取数据\n */\n\n\n Scrollbar.prototype.getScrollbarData = function () {\n var coordinate = this.view.getCoordinate();\n var cfg = this.getValidScrollbarCfg();\n var data = this.view.getOptions().data || []; // 纵向做了 y 轴镜像之后,数据也需要镜像反转\n\n if (coordinate.isReflect('y') && cfg.type === 'vertical') {\n data = __spreadArray([], __read(data), false).reverse();\n }\n\n return data;\n };\n\n return Scrollbar;\n}(Controller);\n\nexport default Scrollbar;","import { __assign, __extends, __values } from \"tslib\";\nimport { each, head, isEqual, last, get, flatten, isArray, uniq, isNil } from '@antv/util';\nimport { findItemsFromViewRecurisive } from '../../util/tooltip';\nimport { getAngle, getSectorPath } from '../../util/graphics';\nimport Action from './base';\nvar DEFAULT_REGION_PATH_STYLE = {\n fill: '#CCD6EC',\n opacity: 0.3\n};\nexport function getItemsOfView(view, point, tooltipCfg) {\n var e_1, _a, e_2, _b, e_3, _c;\n\n var items = findItemsFromViewRecurisive(view, point, tooltipCfg);\n\n if (items.length) {\n // 三层\n items = flatten(items);\n\n try {\n for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {\n var itemArr = items_1_1.value;\n\n try {\n for (var itemArr_1 = (e_2 = void 0, __values(itemArr)), itemArr_1_1 = itemArr_1.next(); !itemArr_1_1.done; itemArr_1_1 = itemArr_1.next()) {\n var item = itemArr_1_1.value;\n var _d = item.mappingData,\n x = _d.x,\n y = _d.y;\n item.x = isArray(x) ? x[x.length - 1] : x;\n item.y = isArray(y) ? y[y.length - 1] : y;\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (itemArr_1_1 && !itemArr_1_1.done && (_b = itemArr_1[\"return\"])) _b.call(itemArr_1);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1[\"return\"])) _a.call(items_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n var shared = tooltipCfg.shared; // shared: false 代表只显示当前拾取到的 shape 的数据,但是一个 view 会有多个 Geometry,所以有可能会拾取到多个 shape\n\n if (shared === false && items.length > 1) {\n var snapItem = items[0];\n var min = Math.abs(point.y - snapItem[0].y);\n\n try {\n for (var items_2 = __values(items), items_2_1 = items_2.next(); !items_2_1.done; items_2_1 = items_2.next()) {\n var aItem = items_2_1.value;\n var yDistance = Math.abs(point.y - aItem[0].y);\n\n if (yDistance <= min) {\n snapItem = aItem;\n min = yDistance;\n }\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (items_2_1 && !items_2_1.done && (_c = items_2[\"return\"])) _c.call(items_2);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n\n items = [snapItem];\n }\n\n return uniq(flatten(items));\n }\n\n return [];\n}\n/**\n * 背景框的 Action. 只作用于 interval 和 schema geometry\n * @ignore\n */\n\nvar ActiveRegion =\n/** @class */\nfunction (_super) {\n __extends(ActiveRegion, _super);\n\n function ActiveRegion() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * 显示\n * @param {ShapeAttrs} style region-path 的样式\n * @param {number} appendRatio 适用于笛卡尔坐标系. 对于 x 轴非 linear 类型: 默认:0.25, x 轴 linear 类型: 默认 0\n * @param {number} appendWidth 适用于笛卡尔坐标系. 像素级别,优先级 > appendRatio\n */\n\n\n ActiveRegion.prototype.show = function (args) {\n var view = this.context.view;\n var ev = this.context.event;\n var tooltipCfg = view.getController('tooltip').getTooltipCfg();\n var tooltipItems = getItemsOfView(view, {\n x: ev.x,\n y: ev.y\n }, tooltipCfg);\n\n if (isEqual(tooltipItems, this.items)) {\n // 如果拾取数据同上次相同,则不重复绘制\n return;\n }\n\n this.items = tooltipItems;\n\n if (tooltipItems.length) {\n var xField_1 = view.getXScale().field;\n var xValue_1 = tooltipItems[0].data[xField_1]; // 根据 x 对应的值查找 elements\n\n var elements_1 = [];\n var geometries = view.geometries;\n each(geometries, function (geometry) {\n if (geometry.type === 'interval' || geometry.type === 'schema') {\n var result = geometry.getElementsBy(function (ele) {\n var eleData = ele.getData();\n return eleData[xField_1] === xValue_1;\n });\n elements_1 = elements_1.concat(result);\n }\n }); // 根据 bbox 计算背景框的面积区域\n\n if (elements_1.length) {\n var coordinate_1 = view.getCoordinate();\n var firstBBox_1 = elements_1[0].shape.getCanvasBBox();\n var lastBBox_1 = elements_1[0].shape.getCanvasBBox();\n var groupBBox_1 = firstBBox_1;\n each(elements_1, function (ele) {\n var bbox = ele.shape.getCanvasBBox();\n\n if (coordinate_1.isTransposed) {\n if (bbox.minY < firstBBox_1.minY) {\n firstBBox_1 = bbox;\n }\n\n if (bbox.maxY > lastBBox_1.maxY) {\n lastBBox_1 = bbox;\n }\n } else {\n if (bbox.minX < firstBBox_1.minX) {\n firstBBox_1 = bbox;\n }\n\n if (bbox.maxX > lastBBox_1.maxX) {\n lastBBox_1 = bbox;\n }\n }\n\n groupBBox_1.x = Math.min(bbox.minX, groupBBox_1.minX);\n groupBBox_1.y = Math.min(bbox.minY, groupBBox_1.minY);\n groupBBox_1.width = Math.max(bbox.maxX, groupBBox_1.maxX) - groupBBox_1.x;\n groupBBox_1.height = Math.max(bbox.maxY, groupBBox_1.maxY) - groupBBox_1.y;\n });\n var backgroundGroup = view.backgroundGroup,\n coordinateBBox = view.coordinateBBox;\n var path = void 0;\n\n if (coordinate_1.isRect) {\n var xScale = view.getXScale();\n\n var _a = args || {},\n appendRatio = _a.appendRatio,\n appendWidth = _a.appendWidth;\n\n if (isNil(appendWidth)) {\n appendRatio = isNil(appendRatio) ? xScale.isLinear ? 0 : 0.25 : appendRatio; // 如果 x 轴是数值类型,如直方图,默认不需要加额外的宽度\n\n appendWidth = coordinate_1.isTransposed ? appendRatio * lastBBox_1.height : appendRatio * firstBBox_1.width;\n }\n\n var minX = void 0;\n var minY = void 0;\n var width = void 0;\n var height = void 0;\n\n if (coordinate_1.isTransposed) {\n minX = coordinateBBox.minX;\n minY = Math.min(lastBBox_1.minY, firstBBox_1.minY) - appendWidth;\n width = coordinateBBox.width;\n height = groupBBox_1.height + appendWidth * 2;\n } else {\n minX = Math.min(firstBBox_1.minX, lastBBox_1.minX) - appendWidth; // 直角坐标系 非转置:最小值直接取 坐标系 minY\n\n minY = coordinateBBox.minY;\n width = groupBBox_1.width + appendWidth * 2;\n height = coordinateBBox.height;\n }\n\n path = [['M', minX, minY], ['L', minX + width, minY], ['L', minX + width, minY + height], ['L', minX, minY + height], ['Z']];\n } else {\n var firstElement = head(elements_1);\n var lastElement = last(elements_1);\n var startAngle = getAngle(firstElement.getModel(), coordinate_1).startAngle;\n var endAngle = getAngle(lastElement.getModel(), coordinate_1).endAngle;\n var center = coordinate_1.getCenter();\n var radius = coordinate_1.getRadius();\n var innterRadius = coordinate_1.innerRadius * radius;\n path = getSectorPath(center.x, center.y, radius, startAngle, endAngle, innterRadius);\n }\n\n if (this.regionPath) {\n this.regionPath.attr('path', path);\n this.regionPath.show();\n } else {\n var style = get(args, 'style', DEFAULT_REGION_PATH_STYLE);\n this.regionPath = backgroundGroup.addShape({\n type: 'path',\n name: 'active-region',\n capture: false,\n attrs: __assign(__assign({}, style), {\n path: path\n })\n });\n }\n }\n }\n };\n /**\n * 隐藏\n */\n\n\n ActiveRegion.prototype.hide = function () {\n if (this.regionPath) {\n this.regionPath.hide();\n } // this.regionPath = null;\n\n\n this.items = null;\n };\n /**\n * 销毁\n */\n\n\n ActiveRegion.prototype.destroy = function () {\n this.hide();\n\n if (this.regionPath) {\n this.regionPath.remove(true);\n }\n\n _super.prototype.destroy.call(this);\n };\n\n return ActiveRegion;\n}(Action);\n\nexport default ActiveRegion;","import { __extends } from \"tslib\";\nimport { isEqual, get } from '@antv/util';\nimport Action from '../../base';\n/**\n * Tooltip 展示隐藏的 Action\n * @ignore\n */\n\nvar TooltipAction =\n/** @class */\nfunction (_super) {\n __extends(TooltipAction, _super);\n\n function TooltipAction() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.timeStamp = 0;\n return _this;\n }\n /**\n * 显示 Tooltip\n * @returns\n */\n\n\n TooltipAction.prototype.show = function () {\n var context = this.context;\n var ev = context.event;\n var view = context.view;\n var isTooltipLocked = view.isTooltipLocked();\n\n if (isTooltipLocked) {\n // 锁定时不移动 tooltip\n return;\n }\n\n var lastTimeStamp = this.timeStamp;\n var timeStamp = +new Date(); // 在 showDelay 毫秒(默认 16ms)内到 tooltip 上可以实现 enterable(调参工程师)\n\n var showDelay = get(context.view.getOptions(), 'tooltip.showDelay', 16);\n\n if (timeStamp - lastTimeStamp > showDelay) {\n var preLoc = this.location;\n var curLoc = {\n x: ev.x,\n y: ev.y\n };\n\n if (!preLoc || !isEqual(preLoc, curLoc)) {\n this.showTooltip(view, curLoc);\n }\n\n this.timeStamp = timeStamp;\n this.location = curLoc;\n }\n };\n /**\n * 隐藏 Tooltip。\n * @returns\n */\n\n\n TooltipAction.prototype.hide = function () {\n var view = this.context.view;\n var tooltip = view.getController('tooltip');\n var _a = this.context.event,\n clientX = _a.clientX,\n clientY = _a.clientY; // 如果已经 enterable + 已经在 tooltip 上,那么不隐藏\n\n if (tooltip.isCursorEntered({\n x: clientX,\n y: clientY\n })) {\n return;\n } // 锁定 tooltip 时不隐藏\n\n\n if (view.isTooltipLocked()) {\n return;\n }\n\n this.hideTooltip(view);\n this.location = null;\n };\n\n TooltipAction.prototype.showTooltip = function (view, point) {\n // 相同位置不重复展示\n view.showTooltip(point);\n };\n\n TooltipAction.prototype.hideTooltip = function (view) {\n view.hideTooltip();\n };\n\n return TooltipAction;\n}(Action);\n\nexport default TooltipAction;","import { __extends } from \"tslib\";\nimport { each } from '@antv/util';\nimport { getSiblingPoint, getSilbings } from '../../util';\nimport TooltipAction from './geometry';\n/**\n * 存在多个 view 时,控制其他 view 上的 tooltip 显示\n * @ignore\n */\n\nvar SiblingTooltip =\n/** @class */\nfunction (_super) {\n __extends(SiblingTooltip, _super);\n\n function SiblingTooltip() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * 所有同一层级的 tooltip 显示\n * @param view\n * @param point\n */\n\n\n SiblingTooltip.prototype.showTooltip = function (view, point) {\n var siblings = getSilbings(view);\n each(siblings, function (sibling) {\n var siblingPoint = getSiblingPoint(view, sibling, point);\n sibling.showTooltip(siblingPoint);\n });\n };\n /**\n * 隐藏同一层级的 tooltip\n * @param view\n */\n\n\n SiblingTooltip.prototype.hideTooltip = function (view) {\n var siblings = getSilbings(view);\n each(siblings, function (sibling) {\n sibling.hideTooltip();\n });\n };\n\n return SiblingTooltip;\n}(TooltipAction);\n\nexport default SiblingTooltip;","import { __assign, __extends } from \"tslib\";\nimport { isEqual, get, deepMix } from '@antv/util';\nimport { TOOLTIP_CSS_CONST } from '@antv/component';\nimport Action from '../../base';\nimport { HtmlTooltip } from '../../../../dependents';\n/**\n * 用于组件文本省略后需要展示完整信息的 Tooltip Action\n * @ignore\n */\n\nvar EllipsisText =\n/** @class */\nfunction (_super) {\n __extends(EllipsisText, _super);\n\n function EllipsisText() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.timeStamp = 0;\n return _this;\n }\n\n EllipsisText.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n\n this.tooltip && this.tooltip.destroy();\n };\n /**\n * 显示 Tooltip\n * @returns\n */\n\n\n EllipsisText.prototype.show = function () {\n var context = this.context;\n var ev = context.event;\n var lastTimeStamp = this.timeStamp;\n var timeStamp = +new Date();\n\n if (timeStamp - lastTimeStamp > 16) {\n var preLoc = this.location;\n var curLoc = {\n x: ev.x,\n y: ev.y\n };\n\n if (!preLoc || !isEqual(preLoc, curLoc)) {\n this.showTooltip(curLoc);\n }\n\n this.timeStamp = timeStamp;\n this.location = curLoc;\n }\n };\n /**\n * 隐藏 Tooltip。\n * @returns\n */\n\n\n EllipsisText.prototype.hide = function () {\n this.hideTooltip();\n this.location = null;\n };\n\n EllipsisText.prototype.showTooltip = function (curLoc) {\n var context = this.context;\n var ev = context.event;\n var target = ev.target;\n\n if (target && target.get('tip')) {\n if (!this.tooltip) {\n this.renderTooltip(); // 延迟生成\n }\n\n var tipContent = target.get('tip'); // 展示 tooltip\n\n this.tooltip.update(__assign({\n title: tipContent\n }, curLoc));\n this.tooltip.show();\n }\n };\n\n EllipsisText.prototype.hideTooltip = function () {\n this.tooltip && this.tooltip.hide();\n };\n\n EllipsisText.prototype.renderTooltip = function () {\n var _a;\n\n var view = this.context.view;\n var canvas = view.canvas;\n var region = {\n start: {\n x: 0,\n y: 0\n },\n end: {\n x: canvas.get('width'),\n y: canvas.get('height')\n }\n };\n var theme = view.getTheme();\n var tooltipStyles = get(theme, ['components', 'tooltip', 'domStyles'], {}); // 获取 tooltip 样式\n\n var tooltip = new HtmlTooltip({\n parent: canvas.get('el').parentNode,\n region: region,\n visible: false,\n crosshairs: null,\n domStyles: __assign({}, deepMix({}, tooltipStyles, (_a = {}, // 超长的时候,tooltip tip 最大宽度为 50%,然后可以换行\n _a[TOOLTIP_CSS_CONST.CONTAINER_CLASS] = {\n 'max-width': '50%'\n }, _a[TOOLTIP_CSS_CONST.TITLE_CLASS] = {\n 'word-break': 'break-all'\n }, _a)))\n });\n tooltip.init();\n tooltip.setCapture(false); // 不允许捕获事件\n\n this.tooltip = tooltip;\n };\n\n return EllipsisText;\n}(Action);\n\nexport default EllipsisText;","import { __extends } from \"tslib\";\nimport { each } from '@antv/util';\nimport Action from '../base';\nimport { getElementsByState } from '../util';\n/**\n * 状态量 Action 的基类\n * @abstract\n * @class\n * @ignore\n */\n\nvar StateBase =\n/** @class */\nfunction (_super) {\n __extends(StateBase, _super);\n\n function StateBase() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * 状态名称\n */\n\n\n _this.stateName = '';\n return _this;\n }\n /**\n * 是否具有某个状态\n * @param element 图表 Element 元素\n */\n\n\n StateBase.prototype.hasState = function (element) {\n return element.hasState(this.stateName);\n };\n /**\n * 设置状态激活\n * @param enable 状态值\n */\n\n\n StateBase.prototype.setElementState = function (element, enable) {\n // 防止闪烁\n element.setState(this.stateName, enable);\n };\n /**\n * 设置状态\n */\n\n\n StateBase.prototype.setState = function () {\n this.setStateEnable(true);\n };\n /**\n * 清除所有 Element 的状态\n */\n\n\n StateBase.prototype.clear = function () {\n var view = this.context.view;\n this.clearViewState(view);\n };\n\n StateBase.prototype.clearViewState = function (view) {\n var _this = this;\n\n var elements = getElementsByState(view, this.stateName);\n each(elements, function (el) {\n _this.setElementState(el, false);\n });\n };\n\n return StateBase;\n}(Action);\n\nexport default StateBase;","import { __extends } from \"tslib\";\nimport { each, isNil, get } from '@antv/util';\nimport { getCurrentElement, getDelegationObject, getElements, getElementValue, getScaleByField, isElementChange, isList } from '../util';\nimport StateBase from './state-base';\n\nfunction getItem(shape) {\n return get(shape.get('delegateObject'), 'item');\n}\n/**\n * 状态量 Action 的基类,允许多个 Element 同时拥有某个状态\n * @class\n * @ignore\n */\n\n\nvar ElementState =\n/** @class */\nfunction (_super) {\n __extends(ElementState, _super);\n\n function ElementState() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.ignoreListItemStates = ['unchecked'];\n return _this;\n } // 是否忽略触发的列表项\n\n\n ElementState.prototype.isItemIgnore = function (item, list) {\n var states = this.ignoreListItemStates;\n var filtered = states.filter(function (state) {\n return list.hasState(item, state);\n });\n return !!filtered.length;\n }; // 设置由组件选项导致的状态变化\n\n\n ElementState.prototype.setStateByComponent = function (component, item, enable) {\n var view = this.context.view;\n var field = component.get('field');\n var elements = getElements(view);\n this.setElementsStateByItem(elements, field, item, enable);\n }; // 处理触发源由 element 导致的状态变化\n\n\n ElementState.prototype.setStateByElement = function (element, enable) {\n this.setElementState(element, enable);\n };\n /** 组件的选项是否同 element 匹配 */\n\n\n ElementState.prototype.isMathItem = function (element, field, item) {\n var view = this.context.view;\n var scale = getScaleByField(view, field);\n var value = getElementValue(element, field);\n return !isNil(value) && item.name === scale.getText(value);\n };\n\n ElementState.prototype.setElementsStateByItem = function (elements, field, item, enable) {\n var _this = this;\n\n each(elements, function (el) {\n if (_this.isMathItem(el, field, item)) {\n el.setState(_this.stateName, enable);\n }\n });\n };\n /** 设置状态是否激活 */\n\n\n ElementState.prototype.setStateEnable = function (enable) {\n var element = getCurrentElement(this.context);\n\n if (element) {\n // 触发源由于 element 导致\n if (isElementChange(this.context)) {\n this.setStateByElement(element, enable);\n }\n } else {\n // 触发源由组件导致\n var delegateObject = getDelegationObject(this.context); // 如果触发源时列表,图例、坐标轴\n\n if (isList(delegateObject)) {\n var item = delegateObject.item,\n component = delegateObject.component;\n\n if (item && component && !this.isItemIgnore(item, component)) {\n var event_1 = this.context.event.gEvent; // 防止闪烁\n\n if (event_1 && event_1.fromShape && event_1.toShape && getItem(event_1.fromShape) === getItem(event_1.toShape)) {\n return;\n }\n\n this.setStateByComponent(component, item, enable);\n }\n }\n }\n };\n /**\n * 切换状态\n */\n\n\n ElementState.prototype.toggle = function () {\n var element = getCurrentElement(this.context);\n\n if (element) {\n var hasState = element.hasState(this.stateName);\n this.setElementState(element, !hasState);\n }\n };\n /**\n * 取消当前时间影响的状态\n */\n\n\n ElementState.prototype.reset = function () {\n this.setStateEnable(false);\n };\n\n return ElementState;\n}(StateBase);\n\nexport default ElementState;","import { __extends } from \"tslib\";\nimport StateAction from './state';\n/**\n * 元素 active 的 Action,允许多个元素同时 active\n * @class\n * @ignore\n */\n\nvar ElementActive =\n/** @class */\nfunction (_super) {\n __extends(ElementActive, _super);\n\n function ElementActive() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.stateName = 'active';\n return _this;\n }\n /**\n * Active Element\n */\n\n\n ElementActive.prototype.active = function () {\n this.setState();\n };\n\n return ElementActive;\n}(StateAction);\n\nexport default ElementActive;","import { __assign, __extends } from \"tslib\";\nimport Action from '../base';\nimport { getCurrentElement, getElementValue, getElementsByField } from '../util';\nimport { deepMix, each, isFunction } from '@antv/util';\n/**\n * Link Elements by color\n *\n * public 方法是对外可用的反馈交互。使用方式,如:element-link-by-color:link, element-link-by-color:unlink, element-link-by-color:clear\n */\n\nvar LinkByColor =\n/** @class */\nfunction (_super) {\n __extends(LinkByColor, _super);\n\n function LinkByColor() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.cache = {};\n return _this;\n } // 获取颜色对应的 scale\n\n\n LinkByColor.prototype.getColorScale = function (view, element) {\n var colorAttr = element.geometry.getAttribute('color');\n\n if (!colorAttr) {\n return null;\n }\n\n var scale = view.getScaleByField(colorAttr.getFields()[0]);\n return scale;\n }; // 获取连接的 path\n\n\n LinkByColor.prototype.getLinkPath = function (element, nextElement) {\n var view = this.context.view;\n var isTransposed = view.getCoordinate().isTransposed;\n var bbox = element.shape.getCanvasBBox();\n var nextBBox = nextElement.shape.getCanvasBBox();\n var path = isTransposed ? [['M', bbox.minX, bbox.minY], ['L', nextBBox.minX, nextBBox.maxY], ['L', nextBBox.maxX, nextBBox.maxY], ['L', bbox.maxX, bbox.minY], ['Z']] : [['M', bbox.maxX, bbox.minY], ['L', nextBBox.minX, nextBBox.minY], ['L', nextBBox.minX, nextBBox.maxY], ['L', bbox.maxX, bbox.maxY], ['Z']];\n return path;\n }; // 添加连接的图形\n\n\n LinkByColor.prototype.addLinkShape = function (group, element, nextElement, activeStyle) {\n var style = {\n opacity: 0.4,\n fill: element.shape.attr('fill')\n };\n group.addShape({\n type: 'path',\n attrs: __assign(__assign({}, deepMix({}, style, isFunction(activeStyle) ? activeStyle(style, element) : activeStyle)), {\n path: this.getLinkPath(element, nextElement)\n })\n });\n }; // 使用图形连接\n\n\n LinkByColor.prototype.linkByElement = function (element, activeStyle) {\n var _this = this;\n\n var view = this.context.view;\n var scale = this.getColorScale(view, element);\n\n if (!scale) {\n return;\n }\n\n var value = getElementValue(element, scale.field);\n\n if (!this.cache[value]) {\n var elements_1 = getElementsByField(view, scale.field, value);\n var linkGroup = this.linkGroup;\n var group_1 = linkGroup.addGroup();\n this.cache[value] = group_1; // 缓存\n\n var count_1 = elements_1.length;\n each(elements_1, function (el, index) {\n if (index < count_1 - 1) {\n var nextEl = elements_1[index + 1];\n\n _this.addLinkShape(group_1, el, nextEl, activeStyle);\n }\n });\n }\n }; // 移除连接\n\n\n LinkByColor.prototype.removeLink = function (element) {\n var scale = this.getColorScale(this.context.view, element);\n\n if (!scale) {\n return;\n }\n\n var value = getElementValue(element, scale.field);\n\n if (this.cache[value]) {\n this.cache[value].remove();\n this.cache[value] = null;\n }\n };\n /**\n * 连接 elements\n *\n * @usage\n * registerInteraction('xxx', {\n * start: [\n * {\n * trigger: 'interval:mouseenter',\n * action: 'element-link-by-color:link',\n * arg: {\n * // style: { fill: 'red' }\n * style: (style, element) => ({ fill: 'red' })\n * },\n * },\n * ],\n * });\n */\n\n\n LinkByColor.prototype.link = function (args) {\n var context = this.context;\n\n if (!this.linkGroup) {\n // 不允许被拾取\n this.linkGroup = context.view.foregroundGroup.addGroup({\n id: 'link-by-color-group',\n capture: false\n });\n }\n\n var element = getCurrentElement(context);\n\n if (element) {\n this.linkByElement(element, args === null || args === void 0 ? void 0 : args.style);\n }\n };\n /**\n * 取消连接 elements\n */\n\n\n LinkByColor.prototype.unlink = function () {\n var element = getCurrentElement(this.context);\n\n if (element) {\n this.removeLink(element);\n }\n };\n /**\n * 清除所有连接\n */\n\n\n LinkByColor.prototype.clear = function () {\n if (this.linkGroup) {\n this.linkGroup.clear();\n }\n\n this.cache = {};\n };\n /**\n * 销毁\n */\n\n\n LinkByColor.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n\n if (this.linkGroup) {\n this.linkGroup.remove();\n }\n };\n\n return LinkByColor;\n}(Action);\n\nexport default LinkByColor;","import { __extends } from \"tslib\";\nimport { each } from '@antv/util';\nimport { getElements, getIntersectElements, getMaskedElements, getSiblingMaskElements, getSilbings, isInRecords, isMask } from '../util';\nimport StateBase from './state-base';\n/**\n * @ignore\n * 区域设置状态的基础 Action\n */\n\nvar ElementRangeState =\n/** @class */\nfunction (_super) {\n __extends(ElementRangeState, _super);\n\n function ElementRangeState() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.startPoint = null;\n _this.endPoint = null;\n _this.isStarted = false;\n /**\n * 是否作用于当前 view 的 siblings,默认是 false 仅作用于自己\n */\n\n _this.effectSiblings = false;\n /**\n * 是否受 element 的数据影响,还是受包围盒的影响\n */\n\n _this.effectByRecord = false;\n return _this;\n } // 获取当前的位置\n\n\n ElementRangeState.prototype.getCurrentPoint = function () {\n var event = this.context.event;\n return {\n x: event.x,\n y: event.y\n };\n };\n /**\n * 开始,记录开始选中的位置\n */\n\n\n ElementRangeState.prototype.start = function () {\n this.clear(); // 开始的时候清理之前的状态\n\n this.startPoint = this.getCurrentPoint();\n this.isStarted = true;\n };\n\n ElementRangeState.prototype.getIntersectElements = function () {\n var elements = null;\n\n if (isMask(this.context)) {\n elements = getMaskedElements(this.context, 10);\n } else {\n var startPoint = this.startPoint;\n var endPoint = this.isStarted ? this.getCurrentPoint() : this.endPoint; // 如果没有开始,则不允许范围设置状态,保护性质\n\n if (!startPoint || !endPoint) {\n return;\n } // 计算框选区域\n\n\n var box = {\n minX: Math.min(startPoint.x, endPoint.x),\n minY: Math.min(startPoint.y, endPoint.y),\n maxX: Math.max(startPoint.x, endPoint.x),\n maxY: Math.max(startPoint.y, endPoint.y)\n }; // this.clear(); // 不全部清理,会导致闪烁\n\n var view = this.context.view;\n elements = getIntersectElements(view, box);\n }\n\n return elements;\n };\n /**\n * 选中\n */\n\n\n ElementRangeState.prototype.setStateEnable = function (enable) {\n if (this.effectSiblings && !this.effectByRecord) {\n this.setSiblingsState(enable);\n } else {\n var allElements = getElements(this.context.view);\n var elements = this.getIntersectElements();\n\n if (elements && elements.length) {\n if (this.effectByRecord) {\n this.setSiblingsStateByRecord(elements, enable);\n } else {\n this.setElementsState(elements, enable, allElements);\n }\n } else {\n this.clear();\n }\n }\n }; // 根据选中的 element 的数据进行设置状态\n\n\n ElementRangeState.prototype.setSiblingsStateByRecord = function (elements, enable) {\n var _this = this;\n\n var view = this.context.view;\n var siblings = getSilbings(view);\n var records = elements.map(function (el) {\n return el.getModel().data;\n });\n var xFiled = view.getXScale().field;\n var yField = view.getYScales()[0].field;\n each(siblings, function (sibling) {\n var allElements = getElements(sibling);\n var effectElements = allElements.filter(function (el) {\n var record = el.getModel().data;\n return isInRecords(records, record, xFiled, yField);\n });\n\n _this.setElementsState(effectElements, enable, allElements);\n });\n }; // 设置兄弟 view 的状态\n\n\n ElementRangeState.prototype.setSiblingsState = function (enable) {\n var _this = this;\n\n var view = this.context.view;\n var siblings = getSilbings(view);\n\n if (isMask(this.context)) {\n // 受 mask 影响\n each(siblings, function (sibling) {\n var allElements = getElements(sibling);\n var effectElements = getSiblingMaskElements(_this.context, sibling, 10);\n\n if (effectElements && effectElements.length) {\n _this.setElementsState(effectElements, enable, allElements);\n } else {\n _this.clearViewState(sibling);\n }\n });\n }\n };\n\n ElementRangeState.prototype.setElementsState = function (elements, enable, allElements) {\n var _this = this;\n\n each(allElements, function (el) {\n if (!elements.includes(el)) {\n _this.setElementState(el, false);\n } else {\n _this.setElementState(el, enable);\n }\n });\n };\n /**\n * 结束\n */\n\n\n ElementRangeState.prototype.end = function () {\n this.isStarted = false;\n this.endPoint = this.getCurrentPoint();\n }; // 复写 clear\n\n\n ElementRangeState.prototype.clear = function () {\n var _this = this;\n\n var view = this.context.view; // 判断是否影响 siblings\n\n if (this.effectSiblings) {\n var siblings = getSilbings(view);\n each(siblings, function (sibling) {\n _this.clearViewState(sibling);\n });\n } else {\n this.clearViewState(view);\n }\n };\n\n return ElementRangeState;\n}(StateBase);\n\nexport default ElementRangeState;","import { __extends } from \"tslib\";\nimport ElementRangeState from './range-state';\n/**\n * @ignore\n * 图表元素区域 Active 的 Action\n */\n\nvar ElementRangeActive =\n/** @class */\nfunction (_super) {\n __extends(ElementRangeActive, _super);\n\n function ElementRangeActive() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.stateName = 'active';\n return _this;\n }\n /**\n * 图表元素 Active\n */\n\n\n ElementRangeActive.prototype.active = function () {\n this.setState();\n };\n\n return ElementRangeActive;\n}(ElementRangeState);\n\nexport default ElementRangeActive;","import { __extends } from \"tslib\";\nimport { getCurrentElement, isElementChange } from '../util';\nimport StateBase from './state-base';\n/**\n * 单状态量的 Action 基类\n * @class\n * @ignore\n */\n\nvar ElementSingleState =\n/** @class */\nfunction (_super) {\n __extends(ElementSingleState, _super);\n\n function ElementSingleState() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ElementSingleState.prototype.setStateEnable = function (enable) {\n var element = getCurrentElement(this.context);\n\n if (element) {\n // 在同一个 element 内部移动,忽视 label 和 shape 之间\n if (!isElementChange(this.context)) {\n return;\n } // 仅支持单个状态量的元素,只能由 element 触发\n\n\n if (enable) {\n this.clear();\n this.setElementState(element, true);\n } else if (this.hasState(element)) {\n this.setElementState(element, false);\n }\n }\n };\n /**\n * 切换选中,只允许选中一个\n */\n\n\n ElementSingleState.prototype.toggle = function () {\n var element = getCurrentElement(this.context);\n\n if (element) {\n var hasState = this.hasState(element); // 提前获取状态\n\n if (!hasState) {\n this.clear();\n }\n\n this.setElementState(element, !hasState);\n }\n };\n /**\n * 取消当前时间影响的状态\n */\n\n\n ElementSingleState.prototype.reset = function () {\n this.setStateEnable(false);\n };\n\n return ElementSingleState;\n}(StateBase);\n\nexport default ElementSingleState;","import { __extends } from \"tslib\";\nimport ElementSingleState from './single-state';\n/**\n * @ignore\n * 仅允许单个 Element Active 的 Action\n */\n\nvar ElementSingleActive =\n/** @class */\nfunction (_super) {\n __extends(ElementSingleActive, _super);\n\n function ElementSingleActive() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.stateName = 'active';\n return _this;\n }\n /**\n * 当前事件相关的 Element Active\n */\n\n\n ElementSingleActive.prototype.active = function () {\n this.setState();\n };\n\n return ElementSingleActive;\n}(ElementSingleState);\n\nexport default ElementSingleActive;","import { each } from '@antv/util';\nimport { getElements } from '../util';\nvar STATUS_UNACTIVE = 'inactive';\nvar STATUS_ACTIVE = 'active';\n/**\n * @ignore\n * 清理 highlight 效果\n * @param view View 或者 Chart\n */\n\nexport function clearHighlight(view) {\n var elements = getElements(view);\n each(elements, function (el) {\n if (el.hasState(STATUS_ACTIVE)) {\n el.setState(STATUS_ACTIVE, false);\n }\n\n if (el.hasState(STATUS_UNACTIVE)) {\n el.setState(STATUS_UNACTIVE, false);\n }\n });\n}\n/**\n * @ignore\n * 设置多个元素的 highlight\n * @param elements 元素集合\n * @param callback 设置回调函数\n * @param enable 设置或者取消\n */\n\nexport function setHighlightBy(elements, callback, enable) {\n each(elements, function (el) {\n // 需要处理 active 和 unactive 的互斥\n if (callback(el)) {\n if (el.hasState(STATUS_UNACTIVE)) {\n el.setState(STATUS_UNACTIVE, false);\n }\n\n el.setState(STATUS_ACTIVE, enable);\n } else {\n if (el.hasState(STATUS_ACTIVE)) {\n el.setState(STATUS_ACTIVE, false);\n }\n\n el.setState(STATUS_UNACTIVE, enable);\n }\n });\n}","import { __extends } from \"tslib\";\nimport { each } from '@antv/util';\nimport { getElements, getElementsByState } from '../util';\nimport { clearHighlight } from './highlight-util';\nimport StateAction from './state';\nimport { ELEMENT_STATE } from '../../../constant';\nexport var STATUS_UNACTIVE = ELEMENT_STATE.INACTIVE;\nexport var STATUS_ACTIVE = ELEMENT_STATE.ACTIVE;\n/**\n * @ignore\n * highlight,指定图形高亮,其他图形变暗\n */\n\nvar ElementHighlight =\n/** @class */\nfunction (_super) {\n __extends(ElementHighlight, _super);\n\n function ElementHighlight() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.stateName = STATUS_ACTIVE;\n return _this;\n } // 多个元素设置、取消 highlight\n\n\n ElementHighlight.prototype.setElementsStateByItem = function (elements, field, item, enable) {\n var _this = this;\n\n var callback = function callback(el) {\n return _this.isMathItem(el, field, item);\n };\n\n this.setHighlightBy(elements, callback, enable);\n }; // 设置元素的 highlight\n\n\n ElementHighlight.prototype.setElementHighlight = function (el, callback) {\n if (callback(el)) {\n if (el.hasState(STATUS_UNACTIVE)) {\n el.setState(STATUS_UNACTIVE, false);\n }\n\n el.setState(STATUS_ACTIVE, true);\n } else if (!el.hasState(STATUS_ACTIVE)) {\n el.setState(STATUS_UNACTIVE, true);\n }\n };\n\n ElementHighlight.prototype.setHighlightBy = function (elements, callback, enable) {\n var _this = this;\n\n if (enable) {\n // 如果是设置 highlight ,则将匹配的 element 设置成 active,\n // 其他如果不是 active,则设置成 unactive\n each(elements, function (el) {\n _this.setElementHighlight(el, callback);\n });\n } else {\n // 如果取消 highlight,则要检测是否全部取消 highlight\n var activeElements = getElementsByState(this.context.view, STATUS_ACTIVE);\n var allCancel_1 = true; // 检测所有 activeElements 都要取消 highlight\n\n each(activeElements, function (el) {\n if (!callback(el)) {\n allCancel_1 = false;\n return false;\n }\n });\n\n if (allCancel_1) {\n // 都要取消,则取消所有的 active,unactive 状态\n this.clear();\n } else {\n // 如果不是都要取消 highlight, 则设置匹配的 element 的状态为 unactive\n // 其他 element 状态不变\n each(elements, function (el) {\n if (callback(el)) {\n if (el.hasState(STATUS_ACTIVE)) {\n el.setState(STATUS_ACTIVE, false);\n }\n\n el.setState(STATUS_UNACTIVE, true);\n }\n });\n }\n }\n }; // 单个元素设置和取消 highlight\n\n\n ElementHighlight.prototype.setElementState = function (element, enable) {\n var view = this.context.view;\n var elements = getElements(view);\n this.setHighlightBy(elements, function (el) {\n return element === el;\n }, enable);\n };\n\n ElementHighlight.prototype.highlight = function () {\n this.setState();\n }; // 清理掉所有的 active, unactive 状态\n\n\n ElementHighlight.prototype.clear = function () {\n var view = this.context.view;\n clearHighlight(view);\n };\n\n return ElementHighlight;\n}(StateAction);\n\nexport default ElementHighlight;","import { __extends } from \"tslib\";\nimport { Event } from '../../../chart';\nimport { clearHighlight, setHighlightBy } from './highlight-util';\nimport ElementRangeState from './range-state';\nvar EVENTS;\n\n(function (EVENTS) {\n EVENTS[\"BEFORE_HIGHLIGHT\"] = \"element-range-highlight:beforehighlight\";\n EVENTS[\"AFTER_HIGHLIGHT\"] = \"element-range-highlight:afterhighlight\";\n EVENTS[\"BEFORE_CLEAR\"] = \"element-range-highlight:beforeclear\";\n EVENTS[\"AFTER_CLEAR\"] = \"element-range-highlight:afterclear\";\n})(EVENTS || (EVENTS = {}));\n\nexport { EVENTS as ELEMENT_RANGE_HIGHLIGHT_EVENTS };\n/**\n * @ignore\n * 区域 highlight 的 Action\n */\n\nvar ElementRangeHighlight =\n/** @class */\nfunction (_super) {\n __extends(ElementRangeHighlight, _super);\n\n function ElementRangeHighlight() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.stateName = 'active';\n return _this;\n } // 清理掉所有的 active, unactive 状态\n\n\n ElementRangeHighlight.prototype.clearViewState = function (view) {\n clearHighlight(view);\n };\n /**\n * 设置 highlight\n */\n\n\n ElementRangeHighlight.prototype.highlight = function () {\n var _a = this.context,\n view = _a.view,\n event = _a.event;\n var elements = this.getIntersectElements();\n var payload = {\n view: view,\n event: event,\n highlightElements: elements\n };\n view.emit(EVENTS.BEFORE_HIGHLIGHT, Event.fromData(view, EVENTS.BEFORE_HIGHLIGHT, payload));\n this.setState();\n view.emit(EVENTS.AFTER_HIGHLIGHT, Event.fromData(view, EVENTS.AFTER_HIGHLIGHT, payload));\n };\n /**\n * @overrider 添加事件\n */\n\n\n ElementRangeHighlight.prototype.clear = function () {\n var view = this.context.view;\n view.emit(EVENTS.BEFORE_CLEAR, Event.fromData(view, EVENTS.BEFORE_CLEAR, {}));\n\n _super.prototype.clear.call(this);\n\n view.emit(EVENTS.AFTER_CLEAR, Event.fromData(view, EVENTS.AFTER_CLEAR, {}));\n };\n\n ElementRangeHighlight.prototype.setElementsState = function (elements, enable, allElements) {\n setHighlightBy(allElements, function (el) {\n return elements.indexOf(el) >= 0;\n }, enable);\n };\n\n return ElementRangeHighlight;\n}(ElementRangeState);\n\nexport default ElementRangeHighlight;","import { __extends } from \"tslib\";\nimport { getElements, getElementValue } from '../util';\nimport Highlight from './highlight';\n/**\n * Highlight color\n * @ignore\n */\n\nvar HighlightColor =\n/** @class */\nfunction (_super) {\n __extends(HighlightColor, _super);\n\n function HighlightColor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n HighlightColor.prototype.setStateByElement = function (element, enable) {\n var view = this.context.view;\n var colorAttr = element.geometry.getAttribute('color');\n\n if (!colorAttr) {\n return;\n }\n\n var scale = view.getScaleByField(colorAttr.getFields()[0]);\n var value = getElementValue(element, scale.field);\n var elements = getElements(view);\n var highlightElements = elements.filter(function (el) {\n return getElementValue(el, scale.field) === value;\n });\n this.setHighlightBy(elements, function (el) {\n return highlightElements.includes(el);\n }, enable);\n };\n\n return HighlightColor;\n}(Highlight);\n\nexport default HighlightColor;","import { __extends } from \"tslib\";\nimport { getElements, getElementValue, getCurrentElement } from '../util';\nimport Highlight, { STATUS_ACTIVE, STATUS_UNACTIVE } from './highlight';\n/**\n * Highlight x\n * @ignore\n */\n\nvar HighlightX =\n/** @class */\nfunction (_super) {\n __extends(HighlightX, _super);\n\n function HighlightX() {\n return _super !== null && _super.apply(this, arguments) || this;\n } // 不允许多选\n\n\n HighlightX.prototype.setElementHighlight = function (el, callback) {\n if (callback(el)) {\n if (el.hasState(STATUS_UNACTIVE)) {\n el.setState(STATUS_UNACTIVE, false);\n }\n\n el.setState(STATUS_ACTIVE, true);\n } else {\n el.setState(STATUS_UNACTIVE, true);\n\n if (el.hasState(STATUS_ACTIVE)) {\n el.setState(STATUS_ACTIVE, false);\n }\n }\n };\n\n HighlightX.prototype.setStateByElement = function (element, enable) {\n var view = this.context.view;\n var scale = view.getXScale();\n var value = getElementValue(element, scale.field);\n var elements = getElements(view);\n var highlightElements = elements.filter(function (el) {\n return getElementValue(el, scale.field) === value;\n });\n this.setHighlightBy(elements, function (el) {\n return highlightElements.includes(el);\n }, enable);\n };\n /**\n * 切换状态\n */\n\n\n HighlightX.prototype.toggle = function () {\n var element = getCurrentElement(this.context);\n\n if (element) {\n var hasState = element.hasState(this.stateName);\n this.setStateByElement(element, !hasState);\n }\n };\n\n return HighlightX;\n}(Highlight);\n\nexport default HighlightX;","import { __extends } from \"tslib\";\nimport { getElements } from '../util';\nimport { clearHighlight, setHighlightBy } from './highlight-util';\nimport ElementSingleState from './single-state';\n/**\n * @ignore\n * 单个 Element Highlight 的 Action\n */\n\nvar ElementSingleHighlight =\n/** @class */\nfunction (_super) {\n __extends(ElementSingleHighlight, _super);\n\n function ElementSingleHighlight() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.stateName = 'active';\n return _this;\n }\n /**\n * Element Highlight\n */\n\n\n ElementSingleHighlight.prototype.highlight = function () {\n this.setState();\n };\n\n ElementSingleHighlight.prototype.setElementState = function (element, enable) {\n var view = this.context.view;\n var elements = getElements(view);\n setHighlightBy(elements, function (el) {\n return element === el;\n }, enable);\n }; // 清理掉所有的 active, unactive 状态\n\n\n ElementSingleHighlight.prototype.clear = function () {\n var view = this.context.view;\n clearHighlight(view);\n };\n\n return ElementSingleHighlight;\n}(ElementSingleState);\n\nexport default ElementSingleHighlight;","import { __extends } from \"tslib\";\nimport ElementRangeState from './range-state';\n/**\n * @ignore\n * 区域选中的 Action\n */\n\nvar ElementRangeSelected =\n/** @class */\nfunction (_super) {\n __extends(ElementRangeSelected, _super);\n\n function ElementRangeSelected() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.stateName = 'selected';\n return _this;\n }\n /**\n * 选中\n */\n\n\n ElementRangeSelected.prototype.selected = function () {\n this.setState();\n };\n\n return ElementRangeSelected;\n}(ElementRangeState);\n\nexport default ElementRangeSelected;","import { __extends } from \"tslib\";\nimport StateAction from './state';\n/**\n * @ignore\n * 允许多选的 Action\n * @class\n */\n\nvar ElementMultipleSelected =\n/** @class */\nfunction (_super) {\n __extends(ElementMultipleSelected, _super);\n\n function ElementMultipleSelected() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.stateName = 'selected';\n return _this;\n }\n /**\n * 选中节点,允许多选\n */\n\n\n ElementMultipleSelected.prototype.selected = function () {\n this.setState();\n };\n\n return ElementMultipleSelected;\n}(StateAction);\n\nexport default ElementMultipleSelected;","import { __extends } from \"tslib\";\nimport ElementSingleState from './single-state';\n/**\n * @ignore\n * 单选的 Action\n */\n\nvar ElementSingleSelected =\n/** @class */\nfunction (_super) {\n __extends(ElementSingleSelected, _super);\n\n function ElementSingleSelected() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.stateName = 'selected';\n return _this;\n }\n /**\n * 选中\n */\n\n\n ElementSingleSelected.prototype.selected = function () {\n this.setState();\n };\n\n return ElementSingleSelected;\n}(ElementSingleState);\n\nexport default ElementSingleSelected;","import { __extends } from \"tslib\";\nimport { each } from '@antv/util';\nimport Action from '../base';\nimport { getComponents } from '../util';\nimport { getCurrentElement, getDelegationObject, getElementValue, isList, getScaleByField } from '../util';\n/**\n * 列表项状态 Action 的基础类\n * @class\n * @ignore\n */\n\nvar ListState =\n/** @class */\nfunction (_super) {\n __extends(ListState, _super);\n\n function ListState() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.stateName = '';\n _this.ignoreItemStates = [];\n return _this;\n }\n /** 获取触发的列表组件 */\n\n\n ListState.prototype.getTriggerListInfo = function () {\n var delegateObject = getDelegationObject(this.context);\n var info = null;\n\n if (isList(delegateObject)) {\n info = {\n item: delegateObject.item,\n list: delegateObject.component\n };\n }\n\n return info;\n }; // 获取所有允许执行 Action 的组件\n\n\n ListState.prototype.getAllowComponents = function () {\n var _this = this;\n\n var view = this.context.view;\n var components = getComponents(view);\n var rst = [];\n each(components, function (component) {\n if (component.isList() && _this.allowSetStateByElement(component)) {\n rst.push(component);\n }\n });\n return rst;\n };\n /** 是否存在指定的状态 */\n\n\n ListState.prototype.hasState = function (list, item) {\n return list.hasState(item, this.stateName);\n };\n /** 清理组件的状态 */\n\n\n ListState.prototype.clearAllComponentsState = function () {\n var _this = this;\n\n var components = this.getAllowComponents();\n each(components, function (component) {\n component.clearItemsState(_this.stateName);\n });\n }; // 不是所有的 component 都能进行 active,目前仅支持分类 scale 对应的组件\n\n\n ListState.prototype.allowSetStateByElement = function (component) {\n var field = component.get('field');\n\n if (!field) {\n return false;\n }\n\n if (this.cfg && this.cfg.componentNames) {\n var name_1 = component.get('name'); // 如果配置了限制的 component name,则要进行检测\n\n if (this.cfg.componentNames.indexOf(name_1) === -1) {\n return false;\n }\n }\n\n var view = this.context.view;\n var scale = getScaleByField(view, field);\n return scale && scale.isCategory;\n }; // 检测是否允许触发对应的状态改变事件\n\n\n ListState.prototype.allowSetStateByItem = function (item, list) {\n var ignoreStates = this.ignoreItemStates;\n\n if (ignoreStates.length) {\n var filterStates = ignoreStates.filter(function (state) {\n return list.hasState(item, state);\n });\n return filterStates.length === 0;\n }\n\n return true; // 没有定义忽略的状态时,允许\n }; // 设置组件的 item active\n\n\n ListState.prototype.setStateByElement = function (component, element, enable) {\n var field = component.get('field');\n var view = this.context.view;\n var scale = getScaleByField(view, field);\n var value = getElementValue(element, field);\n var text = scale.getText(value);\n this.setItemsState(component, text, enable);\n }; // 设置状态\n\n\n ListState.prototype.setStateEnable = function (enable) {\n var _this = this;\n\n var element = getCurrentElement(this.context);\n\n if (element) {\n // trigger by element\n var components = this.getAllowComponents();\n each(components, function (component) {\n _this.setStateByElement(component, element, enable);\n });\n } else {\n // 被组件触发\n var delegateObject = getDelegationObject(this.context);\n\n if (isList(delegateObject)) {\n var item = delegateObject.item,\n component = delegateObject.component;\n\n if (this.allowSetStateByElement(component) && this.allowSetStateByItem(item, component)) {\n this.setItemState(component, item, enable);\n }\n }\n }\n }; // 多个 item 设置状态\n\n\n ListState.prototype.setItemsState = function (list, name, enable) {\n var _this = this;\n\n var items = list.getItems();\n each(items, function (item) {\n if (item.name === name) {\n _this.setItemState(list, item, enable);\n }\n });\n }; // 单个 item 设置状态\n\n\n ListState.prototype.setItemState = function (list, item, enable) {\n list.setItemState(item, this.stateName, enable);\n };\n /**\n * 设置状态\n */\n\n\n ListState.prototype.setState = function () {\n this.setStateEnable(true);\n };\n /**\n * 取消状态\n */\n\n\n ListState.prototype.reset = function () {\n this.setStateEnable(false);\n };\n /**\n * 切换状态\n */\n\n\n ListState.prototype.toggle = function () {\n var triggerInfo = this.getTriggerListInfo();\n\n if (triggerInfo && triggerInfo.item) {\n var list = triggerInfo.list,\n item = triggerInfo.item;\n var enable = this.hasState(list, item);\n this.setItemState(list, item, !enable);\n }\n };\n /**\n * 取消状态\n */\n\n\n ListState.prototype.clear = function () {\n var triggerInfo = this.getTriggerListInfo();\n\n if (triggerInfo) {\n triggerInfo.list.clearItemsState(this.stateName);\n } else {\n this.clearAllComponentsState();\n }\n };\n\n return ListState;\n}(Action);\n\nexport default ListState;","import { __extends } from \"tslib\";\nimport ListState from './list-state';\n/**\n * 列表项(图例项、坐标轴文本)激活的 Action\n * @class\n * @ignore\n */\n\nvar ListActive =\n/** @class */\nfunction (_super) {\n __extends(ListActive, _super);\n\n function ListActive() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.stateName = 'active';\n return _this;\n }\n /**\n * 激活选项\n */\n\n\n ListActive.prototype.active = function () {\n this.setState();\n };\n\n return ListActive;\n}(ListState);\n\nexport default ListActive;","import { each } from '@antv/util';\nvar STATUS_UNACTIVE = 'inactive';\nvar STATUS_ACTIVE = 'active';\n/**\n * 清理图例的 Highlight 效果\n * @param list 列表组件,图例或者坐标轴\n * @ignore\n */\n\nexport function clearList(list) {\n var items = list.getItems();\n each(items, function (item) {\n if (list.hasState(item, STATUS_ACTIVE)) {\n list.setItemState(item, STATUS_ACTIVE, false);\n }\n\n if (list.hasState(item, STATUS_UNACTIVE)) {\n list.setItemState(item, STATUS_UNACTIVE, false);\n }\n });\n}","import { __extends } from \"tslib\";\nimport { each } from '@antv/util';\nimport { clearList } from './list-highlight-util';\nimport ListState from './list-state';\nvar STATUS_UNACTIVE = 'inactive';\nvar STATUS_ACTIVE = 'active';\n/**\n * highlight Action 的效果是 active 和 inactive 两个状态的组合\n * @class\n * @ignore\n */\n\nvar ListHighlight =\n/** @class */\nfunction (_super) {\n __extends(ListHighlight, _super);\n\n function ListHighlight() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.stateName = STATUS_ACTIVE;\n _this.ignoreItemStates = ['unchecked']; // 当存在 unchecked 状态时不触发\n\n return _this;\n } // 如果 item.name 匹配,则设置 highlight 以及取消\n\n\n ListHighlight.prototype.setItemsState = function (list, name, enable) {\n this.setHighlightBy(list, function (item) {\n return item.name === name;\n }, enable);\n }; // 单个 item 设置状态\n\n\n ListHighlight.prototype.setItemState = function (list, item, enable) {\n var items = list.getItems();\n this.setHighlightBy(list, function (el) {\n return el === item;\n }, enable);\n }; // 根据条件设置 highlight\n\n\n ListHighlight.prototype.setHighlightBy = function (list, callback, enable) {\n var items = list.getItems();\n\n if (enable) {\n // 设置 highlight 时,保留之前已经 Highlight 的项\n each(items, function (item) {\n if (callback(item)) {\n if (list.hasState(item, STATUS_UNACTIVE)) {\n list.setItemState(item, STATUS_UNACTIVE, false);\n }\n\n list.setItemState(item, STATUS_ACTIVE, true);\n } else if (!list.hasState(item, STATUS_ACTIVE)) {\n list.setItemState(item, STATUS_UNACTIVE, true);\n }\n });\n } else {\n var activeItems = list.getItemsByState(STATUS_ACTIVE);\n var allCancel_1 = true; // 检测 activeItems 是否要全部取消\n\n each(activeItems, function (item) {\n if (!callback(item)) {\n allCancel_1 = false;\n return false;\n }\n });\n\n if (allCancel_1) {\n this.clear();\n } else {\n // 如果不是都要取消 highlight, 则设置匹配的 element 的状态为 unactive\n // 其他 element 状态不变\n each(items, function (item) {\n if (callback(item)) {\n if (list.hasState(item, STATUS_ACTIVE)) {\n list.setItemState(item, STATUS_ACTIVE, false);\n }\n\n list.setItemState(item, STATUS_UNACTIVE, true);\n }\n });\n }\n }\n };\n /**\n * highlight 图例项(坐标轴文本)\n */\n\n\n ListHighlight.prototype.highlight = function () {\n this.setState();\n }; // 需要全部清理 active 和 unactive\n\n\n ListHighlight.prototype.clear = function () {\n var triggerInfo = this.getTriggerListInfo();\n\n if (triggerInfo) {\n clearList(triggerInfo.list);\n } else {\n // 如果不是 component 的事件触发,则所有满足触发条件的组件都清除该状态\n var components = this.getAllowComponents();\n each(components, function (component) {\n component.clearItemsState(STATUS_ACTIVE);\n component.clearItemsState(STATUS_UNACTIVE);\n });\n }\n };\n\n return ListHighlight;\n}(ListState);\n\nexport default ListHighlight;","import { __extends } from \"tslib\";\nimport ListState from './list-state';\n/**\n * 图例项和坐标轴文本选中的 Action\n * @ignore\n */\n\nvar ListSelected =\n/** @class */\nfunction (_super) {\n __extends(ListSelected, _super);\n\n function ListSelected() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.stateName = 'selected';\n return _this;\n }\n\n ListSelected.prototype.selected = function () {\n this.setState();\n };\n\n return ListSelected;\n}(ListState);\n\nexport default ListSelected;","import { __extends } from \"tslib\";\nimport ListState from './list-state';\n/**\n * 图例项取消勾选的 Action\n * @ignore\n */\n\nvar ListUnchecked =\n/** @class */\nfunction (_super) {\n __extends(ListUnchecked, _super);\n\n function ListUnchecked() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.stateName = 'unchecked';\n return _this;\n }\n /**\n * 取消勾选\n */\n\n\n ListUnchecked.prototype.unchecked = function () {\n this.setState();\n };\n\n return ListUnchecked;\n}(ListState);\n\nexport default ListUnchecked;","import { __extends } from \"tslib\";\nimport { each, some } from '@antv/util';\nimport ListState from './list-state';\nvar STATUS_UNCHECKED = 'unchecked';\nvar STATUS_CHECKED = 'checked';\n/**\n * checked Action\n * 提供三个对外方法\n * 1. toggle 切换状态\n * 2. checked 选中\n * 3. reset 清除重置\n */\n\nvar ListChecked =\n/** @class */\nfunction (_super) {\n __extends(ListChecked, _super);\n\n function ListChecked() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.stateName = STATUS_CHECKED;\n return _this;\n } // 单个 item 设置状态\n\n\n ListChecked.prototype.setItemState = function (list, item, enable) {\n this.setCheckedBy(list, function (el) {\n return el === item;\n }, enable);\n }; // 根据条件设置 checked\n\n\n ListChecked.prototype.setCheckedBy = function (list, callback, enable) {\n var items = list.getItems();\n\n if (enable) {\n // 设置 checked 时,保留之前已经 checked 的项\n each(items, function (item) {\n if (callback(item)) {\n if (list.hasState(item, STATUS_UNCHECKED)) {\n list.setItemState(item, STATUS_UNCHECKED, false);\n }\n\n list.setItemState(item, STATUS_CHECKED, true);\n } else if (!list.hasState(item, STATUS_CHECKED)) {\n list.setItemState(item, STATUS_UNCHECKED, true);\n }\n });\n }\n };\n /**\n * 切换状态.\n * 1. 当全部选中的时候 或者 当前 item 未选中时,进行激活操作\n * 2. 否则,重置\n * @override\n */\n\n\n ListChecked.prototype.toggle = function () {\n var triggerInfo = this.getTriggerListInfo();\n\n if (triggerInfo && triggerInfo.item) {\n var list_1 = triggerInfo.list,\n item = triggerInfo.item; // 不知道 🤷‍♀️ 只认 unchecked status\n\n var allChecked = !some(list_1.getItems(), function (t) {\n return list_1.hasState(t, STATUS_UNCHECKED);\n }); //\n\n if (allChecked || list_1.hasState(item, STATUS_UNCHECKED)) {\n this.setItemState(list_1, item, true);\n } else {\n this.reset();\n }\n }\n };\n /**\n * checked 图例项\n */\n\n\n ListChecked.prototype.checked = function () {\n this.setState();\n };\n /**\n * 重置,需要全部清理 checked 和 unchecked\n */\n\n\n ListChecked.prototype.reset = function () {\n var components = this.getAllowComponents();\n each(components, function (component) {\n component.clearItemsState(STATUS_CHECKED);\n component.clearItemsState(STATUS_UNCHECKED);\n });\n };\n\n return ListChecked;\n}(ListState);\n\nexport default ListChecked;","import { __extends, __values } from \"tslib\";\nimport ListState from './list-state';\nvar STATUS_UNCHECKED = 'unchecked';\n\nvar ListFocus =\n/** @class */\nfunction (_super) {\n __extends(ListFocus, _super);\n\n function ListFocus() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ListFocus.prototype.toggle = function () {\n var e_1, _a, e_2, _b, e_3, _c, e_4, _d;\n\n var triggerInfo = this.getTriggerListInfo();\n\n if (triggerInfo === null || triggerInfo === void 0 ? void 0 : triggerInfo.item) {\n var list_1 = triggerInfo.list,\n clickedItem = triggerInfo.item;\n var items = list_1.getItems();\n var checkedItems = items.filter(function (t) {\n return !list_1.hasState(t, STATUS_UNCHECKED);\n });\n var uncheckedItems = items.filter(function (t) {\n return list_1.hasState(t, STATUS_UNCHECKED);\n });\n var checkedItem = checkedItems[0];\n /**\n * 1. 初始化,全部 checked。此时,点击 radio, clickItem 进入聚焦\n * 2. 当前只选中一个\n * 2.1 且选中 item 等于 clickItem,退出聚焦,全部重新选中\n * 2.2 替换聚焦的 item\n * 3. 其它,同 2.2\n */\n\n if (items.length === checkedItems.length) {\n try {\n for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {\n var item = items_1_1.value;\n list_1.setItemState(item, STATUS_UNCHECKED, item.id !== clickedItem.id);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1[\"return\"])) _a.call(items_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n } else if (items.length - uncheckedItems.length === 1) {\n if (checkedItem.id === clickedItem.id) {\n try {\n for (var items_2 = __values(items), items_2_1 = items_2.next(); !items_2_1.done; items_2_1 = items_2.next()) {\n var item = items_2_1.value;\n list_1.setItemState(item, STATUS_UNCHECKED, false);\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (items_2_1 && !items_2_1.done && (_b = items_2[\"return\"])) _b.call(items_2);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n } else {\n try {\n for (var items_3 = __values(items), items_3_1 = items_3.next(); !items_3_1.done; items_3_1 = items_3.next()) {\n var item = items_3_1.value;\n list_1.setItemState(item, STATUS_UNCHECKED, item.id !== clickedItem.id);\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (items_3_1 && !items_3_1.done && (_c = items_3[\"return\"])) _c.call(items_3);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n }\n } else {\n try {\n for (var items_4 = __values(items), items_4_1 = items_4.next(); !items_4_1.done; items_4_1 = items_4.next()) {\n var item = items_4_1.value;\n list_1.setItemState(item, STATUS_UNCHECKED, item.id !== clickedItem.id);\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (items_4_1 && !items_4_1.done && (_d = items_4[\"return\"])) _d.call(items_4);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n }\n }\n };\n\n return ListFocus;\n}(ListState);\n\nexport default ListFocus;","import { __assign, __extends } from \"tslib\";\nimport ListState from './list-state';\nimport { isEqual } from '@antv/util';\nimport { TOOLTIP_CSS_CONST } from '@antv/component';\nimport { HtmlTooltip } from '../../../dependents';\nvar STATUS_SHOW = 'showRadio';\nvar TIP_ID = 'legend-radio-tip';\n\nvar ListRadio =\n/** @class */\nfunction (_super) {\n __extends(ListRadio, _super);\n\n function ListRadio() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.timeStamp = 0;\n return _this;\n }\n\n ListRadio.prototype.show = function () {\n var triggerInfo = this.getTriggerListInfo();\n\n if (triggerInfo === null || triggerInfo === void 0 ? void 0 : triggerInfo.item) {\n var list = triggerInfo.list,\n item = triggerInfo.item;\n list.setItemState(item, STATUS_SHOW, true);\n }\n };\n\n ListRadio.prototype.hide = function () {\n var triggerInfo = this.getTriggerListInfo();\n\n if (triggerInfo === null || triggerInfo === void 0 ? void 0 : triggerInfo.item) {\n var list = triggerInfo.list,\n item = triggerInfo.item;\n list.setItemState(item, STATUS_SHOW, false);\n }\n };\n\n ListRadio.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n\n this.tooltip && this.tooltip.destroy();\n };\n /**\n * 显示 Tooltip (展示在上方)\n * @returns\n */\n\n\n ListRadio.prototype.showTip = function () {\n var context = this.context;\n var ev = context.event;\n var lastTimeStamp = this.timeStamp;\n var timeStamp = +new Date();\n var target = this.context.event.target;\n\n if (timeStamp - lastTimeStamp > 16 && target.get('name') === 'legend-item-radio') {\n var preLoc = this.location;\n var curLoc = {\n x: ev.x,\n y: ev.y\n };\n this.timeStamp = timeStamp;\n this.location = curLoc;\n\n if (!preLoc || !isEqual(preLoc, curLoc)) {\n this.showTooltip(curLoc);\n }\n }\n };\n /**\n * 隐藏 Tooltip。\n * @returns\n */\n\n\n ListRadio.prototype.hideTip = function () {\n this.hideTooltip();\n this.location = null;\n };\n\n ListRadio.prototype.showTooltip = function (curLoc) {\n var context = this.context;\n var ev = context.event;\n var target = ev.target;\n\n if (target && target.get('tip')) {\n if (!this.tooltip) {\n this.renderTooltip(); // 延迟生成\n } // 展示 tooltip\n\n\n var _a = context.view.getCanvas().get('el').getBoundingClientRect(),\n offsetX = _a.x,\n offsetY = _a.y;\n\n this.tooltip.update(__assign(__assign({\n title: target.get('tip')\n }, curLoc), {\n x: curLoc.x + offsetX,\n y: curLoc.y + offsetY\n }));\n this.tooltip.show();\n }\n };\n\n ListRadio.prototype.hideTooltip = function () {\n this.tooltip && this.tooltip.hide();\n };\n\n ListRadio.prototype.renderTooltip = function () {\n var _a;\n\n var tooltipStyles = (_a = {}, _a[TOOLTIP_CSS_CONST.CONTAINER_CLASS] = {\n padding: '6px 8px',\n transform: 'translate(-50%, -80%)',\n background: 'rgba(0,0,0,0.75)',\n color: '#fff',\n 'border-radius': '2px',\n // 避免遮挡,如果还不够的话,再考虑开放用户配置\n 'z-index': 100\n }, _a[TOOLTIP_CSS_CONST.TITLE_CLASS] = {\n 'font-size': '12px',\n 'line-height': '14px',\n 'margin-bottom': 0,\n 'word-break': 'break-all'\n }, _a);\n\n if (document.getElementById(TIP_ID)) {\n document.body.removeChild(document.getElementById(TIP_ID));\n }\n\n var tooltip = new HtmlTooltip({\n parent: document.body,\n // tooltip 限制的区域\n region: null,\n visible: false,\n crosshairs: null,\n domStyles: tooltipStyles,\n containerId: TIP_ID\n });\n tooltip.init();\n tooltip.setCapture(false); // 不允许捕获事件\n\n this.tooltip = tooltip;\n };\n\n return ListRadio;\n}(ListState);\n\nexport default ListRadio;","import { __assign, __extends } from \"tslib\";\nimport { deepMix, each } from '@antv/util';\nimport Action from '../base';\n/**\n * @ignore\n * 辅助框 Action 的基类\n */\n\nvar MaskBase =\n/** @class */\nfunction (_super) {\n __extends(MaskBase, _super);\n\n function MaskBase() {\n var _this = _super !== null && _super.apply(this, arguments) || this; // mask 图形\n\n\n _this.maskShape = null; // 组成 mask 的各个点\n\n _this.points = []; // 开始 mask 的标记\n\n _this.starting = false; // 开始移动的标记\n\n _this.moving = false;\n _this.preMovePoint = null;\n _this.shapeType = 'path';\n return _this;\n } // 获取当前的位置\n\n\n MaskBase.prototype.getCurrentPoint = function () {\n var event = this.context.event;\n return {\n x: event.x,\n y: event.y\n };\n }; // 触发 mask 的事件\n\n\n MaskBase.prototype.emitEvent = function (type) {\n var eventName = \"mask:\".concat(type);\n var view = this.context.view;\n var event = this.context.event;\n view.emit(eventName, {\n target: this.maskShape,\n shape: this.maskShape,\n points: this.points,\n x: event.x,\n y: event.y\n });\n }; // 创建 mask\n\n\n MaskBase.prototype.createMask = function () {\n var view = this.context.view;\n var maskAttrs = this.getMaskAttrs();\n var maskShape = view.foregroundGroup.addShape({\n type: this.shapeType,\n name: 'mask',\n draggable: true,\n attrs: __assign({\n fill: '#C5D4EB',\n opacity: 0.3\n }, maskAttrs)\n });\n return maskShape;\n }; // 生成 mask 的路径\n\n\n MaskBase.prototype.getMaskPath = function () {\n return [];\n };\n /**\n * 显示\n */\n\n\n MaskBase.prototype.show = function () {\n if (this.maskShape) {\n this.maskShape.show();\n this.emitEvent('show');\n }\n };\n /**\n * 开始\n */\n\n\n MaskBase.prototype.start = function (arg) {\n this.starting = true; // 开始时,保证移动结束\n\n this.moving = false;\n this.points = [this.getCurrentPoint()];\n\n if (!this.maskShape) {\n this.maskShape = this.createMask(); // 开始时设置 capture: false,可以避免创建、resize 时触发事件\n\n this.maskShape.set('capture', false);\n }\n\n this.updateMask(arg === null || arg === void 0 ? void 0 : arg.maskStyle);\n this.emitEvent('start');\n };\n /**\n * 开始移动\n */\n\n\n MaskBase.prototype.moveStart = function () {\n this.moving = true;\n this.preMovePoint = this.getCurrentPoint();\n };\n /**\n * 移动 mask\n */\n\n\n MaskBase.prototype.move = function () {\n if (!this.moving || !this.maskShape) {\n return;\n }\n\n var currentPoint = this.getCurrentPoint();\n var preMovePoint = this.preMovePoint;\n var dx = currentPoint.x - preMovePoint.x;\n var dy = currentPoint.y - preMovePoint.y;\n var points = this.points;\n each(points, function (point) {\n point.x += dx;\n point.y += dy;\n });\n this.updateMask();\n this.emitEvent('change');\n this.preMovePoint = currentPoint;\n };\n\n MaskBase.prototype.updateMask = function (maskStyle) {\n var attrs = deepMix({}, this.getMaskAttrs(), maskStyle);\n this.maskShape.attr(attrs);\n };\n /**\n * 结束移动\n */\n\n\n MaskBase.prototype.moveEnd = function () {\n this.moving = false;\n this.preMovePoint = null;\n };\n /**\n * 结束\n */\n\n\n MaskBase.prototype.end = function () {\n this.starting = false;\n this.emitEvent('end');\n\n if (this.maskShape) {\n this.maskShape.set('capture', true);\n }\n };\n /**\n * 隐藏\n */\n\n\n MaskBase.prototype.hide = function () {\n if (this.maskShape) {\n this.maskShape.hide();\n this.emitEvent('hide');\n }\n };\n /**\n * 大小变化\n */\n\n\n MaskBase.prototype.resize = function () {\n // 只有进行中,才会允许大小变化\n if (this.starting && this.maskShape) {\n this.points.push(this.getCurrentPoint());\n this.updateMask();\n this.emitEvent('change');\n }\n };\n /**\n * 销毁\n */\n\n\n MaskBase.prototype.destroy = function () {\n this.points = [];\n\n if (this.maskShape) {\n this.maskShape.remove();\n }\n\n this.maskShape = null;\n this.preMovePoint = null;\n\n _super.prototype.destroy.call(this);\n };\n\n return MaskBase;\n}(Action);\n\nexport default MaskBase;","import { __extends } from \"tslib\";\nimport { last } from '@antv/util';\nimport { distance } from '../util';\nimport MaskBase from './base';\n/**\n * @ignore\n * 圆形辅助框 Action\n */\n\nvar CircleMask =\n/** @class */\nfunction (_super) {\n __extends(CircleMask, _super);\n\n function CircleMask() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.shapeType = 'circle';\n return _this;\n }\n\n CircleMask.prototype.getMaskAttrs = function () {\n var points = this.points;\n var currentPoint = last(this.points);\n var r = 0;\n var x = 0;\n var y = 0;\n\n if (points.length) {\n var first = points[0];\n r = distance(first, currentPoint) / 2;\n x = (currentPoint.x + first.x) / 2;\n y = (currentPoint.y + first.y) / 2;\n }\n\n return {\n x: x,\n y: y,\n r: r\n };\n };\n\n return CircleMask;\n}(MaskBase);\n\nexport default CircleMask;","import { __extends } from \"tslib\";\nimport { head, last } from '@antv/util';\nimport MaskBase from './base';\n/**\n * @ignore\n * 矩形的辅助框 Action\n */\n\nvar RectMask =\n/** @class */\nfunction (_super) {\n __extends(RectMask, _super);\n\n function RectMask() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.shapeType = 'rect';\n return _this;\n }\n\n RectMask.prototype.getRegion = function () {\n var points = this.points;\n return {\n start: head(points),\n end: last(points)\n };\n }; // 添加图形\n\n\n RectMask.prototype.getMaskAttrs = function () {\n var _a = this.getRegion(),\n start = _a.start,\n end = _a.end;\n\n var x = Math.min(start.x, end.x);\n var y = Math.min(start.y, end.y);\n var width = Math.abs(end.x - start.x);\n var height = Math.abs(end.y - start.y);\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n };\n\n return RectMask;\n}(MaskBase);\n\nexport default RectMask;","import { __extends } from \"tslib\";\nimport { clamp, head, last } from '@antv/util';\nimport RectMask from './rect';\n\nfunction clampPoint(point) {\n point.x = clamp(point.x, 0, 1);\n point.y = clamp(point.y, 0, 1);\n}\n/**\n * @ignore\n */\n\n\nvar DimRect =\n/** @class */\nfunction (_super) {\n __extends(DimRect, _super);\n\n function DimRect() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.dim = 'x';\n _this.inPlot = true;\n return _this;\n }\n\n DimRect.prototype.getRegion = function () {\n var start = null;\n var end = null;\n var points = this.points;\n var dim = this.dim;\n var coord = this.context.view.getCoordinate();\n var normalStart = coord.invert(head(points));\n var normalEnd = coord.invert(last(points));\n\n if (this.inPlot) {\n // 约束到 0 - 1 范围内\n clampPoint(normalStart);\n clampPoint(normalEnd);\n }\n\n if (dim === 'x') {\n // x 轴方向扩展, y 轴方向占满全部\n start = coord.convert({\n x: normalStart.x,\n y: 0\n });\n end = coord.convert({\n x: normalEnd.x,\n y: 1\n });\n } else {\n // y 轴方向扩展, x 轴方向占满全部\n start = coord.convert({\n x: 0,\n y: normalStart.y\n });\n end = coord.convert({\n x: 1,\n y: normalEnd.y\n });\n }\n\n return {\n start: start,\n end: end\n };\n };\n\n return DimRect;\n}(RectMask);\n\nexport default DimRect;","import { __extends, __read } from \"tslib\";\nimport { Event } from '../../../chart';\nimport Action from '../base';\nimport { isMask } from '../util'; // 获取对应的 scale\n\nfunction getFilter(scale, dim, point1, point2) {\n var min = Math.min(point1[dim], point2[dim]);\n var max = Math.max(point1[dim], point2[dim]);\n\n var _a = __read(scale.range, 2),\n rangeMin = _a[0],\n rangeMax = _a[1]; // 约束值在 scale 的 range 之间\n\n\n if (min < rangeMin) {\n min = rangeMin;\n }\n\n if (max > rangeMax) {\n max = rangeMax;\n } // 范围大于整个 view 的范围,则返回 null\n\n\n if (min === rangeMax && max === rangeMax) {\n return null;\n }\n\n var minValue = scale.invert(min);\n var maxValue = scale.invert(max);\n\n if (scale.isCategory) {\n var minIndex = scale.values.indexOf(minValue);\n var maxIndex = scale.values.indexOf(maxValue);\n var arr_1 = scale.values.slice(minIndex, maxIndex + 1);\n return function (value) {\n return arr_1.includes(value);\n };\n } else {\n return function (value) {\n return value >= minValue && value <= maxValue;\n };\n }\n}\n/** range-filter 只用于:brush-filter, brush-x-filter, brush-y-filter */\n\n\nvar EVENTS;\n\n(function (EVENTS) {\n EVENTS[\"FILTER\"] = \"brush-filter-processing\";\n EVENTS[\"RESET\"] = \"brush-filter-reset\";\n EVENTS[\"BEFORE_FILTER\"] = \"brush-filter:beforefilter\";\n EVENTS[\"AFTER_FILTER\"] = \"brush-filter:afterfilter\";\n EVENTS[\"BEFORE_RESET\"] = \"brush-filter:beforereset\";\n EVENTS[\"AFTER_RESET\"] = \"brush-filter:afterreset\";\n})(EVENTS || (EVENTS = {}));\n\nexport { EVENTS as BRUSH_FILTER_EVENTS };\n/**\n * 范围过滤的 Action\n * @ignore\n */\n\nvar RangeFilter =\n/** @class */\nfunction (_super) {\n __extends(RangeFilter, _super);\n\n function RangeFilter() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * 范围过滤生效的字段/维度,可以是 x, y\n */\n\n\n _this.dims = ['x', 'y'];\n /** 起始点 */\n\n _this.startPoint = null;\n _this.isStarted = false;\n return _this;\n } // x,y 是否生效\n\n\n RangeFilter.prototype.hasDim = function (dim) {\n return this.dims.includes(dim);\n };\n /**\n * 开始范围过滤,记录范围过滤的起点\n */\n\n\n RangeFilter.prototype.start = function () {\n var context = this.context;\n this.isStarted = true;\n this.startPoint = context.getCurrentPoint();\n };\n /**\n * 过滤,以开始的点和当前点对数据进行过滤\n */\n\n\n RangeFilter.prototype.filter = function () {\n var startPoint;\n var currentPoint;\n\n if (isMask(this.context)) {\n var maskShape = this.context.event.target;\n var bbox = maskShape.getCanvasBBox();\n startPoint = {\n x: bbox.x,\n y: bbox.y\n };\n currentPoint = {\n x: bbox.maxX,\n y: bbox.maxY\n };\n } else {\n if (!this.isStarted) {\n // 如果没有开始,则不执行过滤\n return;\n }\n\n startPoint = this.startPoint;\n currentPoint = this.context.getCurrentPoint();\n }\n\n if (Math.abs(startPoint.x - currentPoint.x) < 5 || Math.abs(startPoint.x - currentPoint.y) < 5) {\n // 距离过小也不生效\n return;\n }\n\n var _a = this.context,\n view = _a.view,\n event = _a.event;\n var payload = {\n view: view,\n event: event,\n dims: this.dims\n };\n view.emit(EVENTS.BEFORE_FILTER, Event.fromData(view, EVENTS.BEFORE_FILTER, payload));\n var coord = view.getCoordinate();\n var normalCurrent = coord.invert(currentPoint);\n var normalStart = coord.invert(startPoint); // 设置 x 方向的 filter\n\n if (this.hasDim('x')) {\n var xScale = view.getXScale();\n var filter = getFilter(xScale, 'x', normalCurrent, normalStart);\n this.filterView(view, xScale.field, filter);\n } // 设置 y 方向的 filter\n\n\n if (this.hasDim('y')) {\n var yScale = view.getYScales()[0];\n var filter = getFilter(yScale, 'y', normalCurrent, normalStart);\n this.filterView(view, yScale.field, filter);\n }\n\n this.reRender(view, {\n source: EVENTS.FILTER\n });\n view.emit(EVENTS.AFTER_FILTER, Event.fromData(view, EVENTS.AFTER_FILTER, payload));\n };\n /**\n * 结束\n */\n\n\n RangeFilter.prototype.end = function () {\n this.isStarted = false;\n };\n /**\n * 取消同当前 Action 相关的过滤,指定的 x,y\n */\n\n\n RangeFilter.prototype.reset = function () {\n var view = this.context.view;\n view.emit(EVENTS.BEFORE_RESET, Event.fromData(view, EVENTS.BEFORE_RESET, {}));\n this.isStarted = false;\n\n if (this.hasDim('x')) {\n var xScale = view.getXScale();\n this.filterView(view, xScale.field, null); // 取消过滤\n }\n\n if (this.hasDim('y')) {\n // y 轴过滤仅取第一个 yScale\n var yScale = view.getYScales()[0];\n this.filterView(view, yScale.field, null); // 取消过滤\n }\n\n this.reRender(view, {\n source: EVENTS.RESET\n });\n view.emit(EVENTS.AFTER_RESET, Event.fromData(view, EVENTS.AFTER_RESET, {}));\n };\n /**\n * 对 view 进行过滤\n */\n\n\n RangeFilter.prototype.filterView = function (view, field, filter) {\n view.filter(field, filter);\n };\n /**\n * 重新渲染\n * @param view\n */\n\n\n RangeFilter.prototype.reRender = function (view, payload) {\n view.render(true, payload);\n };\n\n return RangeFilter;\n}(Action);\n\nexport default RangeFilter;","import { __extends } from \"tslib\";\nimport { each } from '@antv/util';\nimport MaskBase from './base';\n/**\n * @ignore\n * 多个点构成的 Path 辅助框 Action\n */\n\nvar PathMask =\n/** @class */\nfunction (_super) {\n __extends(PathMask, _super);\n\n function PathMask() {\n return _super !== null && _super.apply(this, arguments) || this;\n } // 生成 mask 的路径\n\n\n PathMask.prototype.getMaskPath = function () {\n var points = this.points;\n var path = [];\n\n if (points.length) {\n each(points, function (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 path.push(['L', points[0].x, points[0].y]);\n }\n\n return path;\n };\n\n PathMask.prototype.getMaskAttrs = function () {\n return {\n path: this.getMaskPath()\n };\n };\n /**\n * 添加一个点\n */\n\n\n PathMask.prototype.addPoint = function () {\n this.resize();\n };\n\n return PathMask;\n}(MaskBase);\n\nexport default PathMask;","import { __extends } from \"tslib\";\nimport { getSpline } from '../util';\nimport PathMask from './path';\n/**\n * Smooth path mask\n * @ignore\n */\n\nvar SmoothPathMask =\n/** @class */\nfunction (_super) {\n __extends(SmoothPathMask, _super);\n\n function SmoothPathMask() {\n return _super !== null && _super.apply(this, arguments) || this;\n } // 生成 mask 的路径\n\n\n SmoothPathMask.prototype.getMaskPath = function () {\n var points = this.points;\n return getSpline(points, true);\n };\n\n return SmoothPathMask;\n}(PathMask);\n\nexport default SmoothPathMask;","import { __extends } from \"tslib\";\n/**\n * @fileoverview 设置画布的箭头,参看:https://www.w3school.com.cn/jsref/prop_style_cursor.asp\n * @author dxq613\n */\n\nimport Action from './base';\n/**\n * 鼠标形状的 Action\n * @ignore\n */\n\nvar CursorAction =\n/** @class */\nfunction (_super) {\n __extends(CursorAction, _super);\n\n function CursorAction() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CursorAction.prototype.setCursor = function (cursor) {\n var view = this.context.view;\n view.getCanvas().setCursor(cursor);\n };\n /**\n * 默认光标(通常是一个箭头)\n */\n\n\n CursorAction.prototype[\"default\"] = function () {\n this.setCursor('default');\n };\n /** 光标呈现为指示链接的指针(一只手) */\n\n\n CursorAction.prototype.pointer = function () {\n this.setCursor('pointer');\n };\n /** 此光标指示某对象可被移动。 */\n\n\n CursorAction.prototype.move = function () {\n this.setCursor('move');\n };\n /** 光标呈现为十字线。 */\n\n\n CursorAction.prototype.crosshair = function () {\n this.setCursor('crosshair');\n };\n /** 此光标指示程序正忙(通常是一只表或沙漏)。 */\n\n\n CursorAction.prototype.wait = function () {\n this.setCursor('wait');\n };\n /** 此光标指示可用的帮助(通常是一个问号或一个气球)。 */\n\n\n CursorAction.prototype.help = function () {\n this.setCursor('help');\n };\n /** 此光标指示文本。 */\n\n\n CursorAction.prototype.text = function () {\n this.setCursor('text');\n };\n /**\n * 此光标指示矩形框的边缘可被向右(东)移动。\n */\n\n\n CursorAction.prototype.eResize = function () {\n this.setCursor('e-resize');\n };\n /**\n * 此光标指示矩形框的边缘可被向左(西)移动。\n */\n\n\n CursorAction.prototype.wResize = function () {\n this.setCursor('w-resize');\n };\n /**\n * 此光标指示矩形框的边缘可被向上(北)移动。\n */\n\n\n CursorAction.prototype.nResize = function () {\n this.setCursor('n-resize');\n };\n /**\n * 此光标指示矩形框的边缘可被向下(南)移动。\n */\n\n\n CursorAction.prototype.sResize = function () {\n this.setCursor('s-resize');\n };\n /**\n * 光标指示可移动的方向 右上方(东北)\n */\n\n\n CursorAction.prototype.neResize = function () {\n this.setCursor('ne-resize');\n };\n /**\n * 光标指示可移动的方向 左上方(西北)\n */\n\n\n CursorAction.prototype.nwResize = function () {\n this.setCursor('nw-resize');\n };\n /**\n * 光标指示可移动的方向右下方(东南)\n */\n\n\n CursorAction.prototype.seResize = function () {\n this.setCursor('se-resize');\n };\n /**\n * 光标指示可移动的方向左下方(西南)\n */\n\n\n CursorAction.prototype.swResize = function () {\n this.setCursor('sw-resize');\n };\n /**\n * 光标指示可以在上下方向移动\n */\n\n\n CursorAction.prototype.nsResize = function () {\n this.setCursor('ns-resize');\n };\n /**\n * 光标指示可以在左右方向移动\n */\n\n\n CursorAction.prototype.ewResize = function () {\n this.setCursor('ew-resize');\n };\n /**\n * 光标显示可以被放大\n */\n\n\n CursorAction.prototype.zoomIn = function () {\n this.setCursor('zoom-in');\n };\n /**\n * 光标显示可以缩小尺寸\n */\n\n\n CursorAction.prototype.zoomOut = function () {\n this.setCursor('zoom-out');\n };\n\n return CursorAction;\n}(Action);\n\nexport default CursorAction;","import { __extends, __read } from \"tslib\";\nimport { each } from '@antv/util';\nimport Action from '../base';\nimport { getDelegationObject, getScaleByField, isList, isSlider } from '../util';\n/**\n * 数据过滤。\n * @ignore\n */\n\nvar DataFilter =\n/** @class */\nfunction (_super) {\n __extends(DataFilter, _super);\n\n function DataFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n DataFilter.prototype.filterView = function (view, field, filter) {\n var _this = this; // 只有存在这个 scale 时才生效\n\n\n if (view.getScaleByField(field)) {\n view.filter(field, filter);\n }\n\n if (view.views && view.views.length) {\n each(view.views, function (subView) {\n _this.filterView(subView, field, filter);\n });\n }\n };\n /**\n * 过滤数据\n */\n\n\n DataFilter.prototype.filter = function () {\n var delegateObject = getDelegationObject(this.context);\n\n if (delegateObject) {\n var view = this.context.view;\n var component = delegateObject.component;\n var field = component.get('field'); // 列表类的组件能够触发\n\n if (isList(delegateObject)) {\n if (field) {\n var unCheckedItems = component.getItemsByState('unchecked');\n var scale_1 = getScaleByField(view, field);\n var names_1 = unCheckedItems.map(function (item) {\n return item.name;\n });\n\n if (names_1.length) {\n this.filterView(view, field, function (value) {\n var text = scale_1.getText(value);\n return !names_1.includes(text);\n });\n } else {\n this.filterView(view, field, null);\n }\n\n view.render(true);\n }\n } else if (isSlider(delegateObject)) {\n var range = component.getValue();\n\n var _a = __read(range, 2),\n min_1 = _a[0],\n max_1 = _a[1];\n\n this.filterView(view, field, function (value) {\n return value >= min_1 && value <= max_1;\n });\n view.render(true);\n }\n }\n };\n\n return DataFilter;\n}(Action);\n\nexport default DataFilter;","import { __extends } from \"tslib\";\nimport { each } from '@antv/util';\nimport RangeFilter from './range-filter';\nimport { getSilbings } from '../util';\n/**\n * 数据范围过滤,但不在当前的 view 上生效,而在当前的 view 同一层级的其他 views 上生效,用于实现联动过滤。\n * @ignore\n */\n\nvar SiblingFilter =\n/** @class */\nfunction (_super) {\n __extends(SiblingFilter, _super);\n\n function SiblingFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * 对 view 进行过滤\n * @param view\n * @param field\n * @param filter\n */\n\n\n SiblingFilter.prototype.filterView = function (view, field, filter) {\n var siblings = getSilbings(view);\n each(siblings, function (sibling) {\n sibling.filter(field, filter);\n });\n };\n /**\n * 重新渲染\n * @param view\n */\n\n\n SiblingFilter.prototype.reRender = function (view) {\n var siblings = getSilbings(view);\n each(siblings, function (sibling) {\n sibling.render(true);\n });\n };\n\n return SiblingFilter;\n}(RangeFilter);\n\nexport default SiblingFilter;","import { __extends, __read } from \"tslib\";\nimport { each } from '@antv/util';\nimport Action from '../base';\nimport { getDelegationObject, getElements, getElementValue, getScaleByField, isList, isSlider, isMask, getMaskedElements } from '../util';\n/**\n * 元素过滤的 Action,控制元素的显示隐藏\n * @ignore\n */\n\nvar ElementFilter =\n/** @class */\nfunction (_super) {\n __extends(ElementFilter, _super);\n\n function ElementFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * 过滤\n */\n\n\n ElementFilter.prototype.filter = function () {\n var delegateObject = getDelegationObject(this.context);\n var view = this.context.view;\n var elements = getElements(view);\n\n if (isMask(this.context)) {\n var maskElements_1 = getMaskedElements(this.context, 10);\n\n if (maskElements_1) {\n each(elements, function (el) {\n if (maskElements_1.includes(el)) {\n el.show();\n } else {\n el.hide();\n }\n });\n }\n } else if (delegateObject) {\n var component = delegateObject.component;\n var field_1 = component.get('field'); // 列表类的组件能够触发\n\n if (isList(delegateObject)) {\n if (field_1) {\n var unCheckedItems = component.getItemsByState('unchecked');\n var scale_1 = getScaleByField(view, field_1);\n var names_1 = unCheckedItems.map(function (item) {\n return item.name;\n }); // 直接控制显示、隐藏\n\n each(elements, function (el) {\n var value = getElementValue(el, field_1);\n var text = scale_1.getText(value);\n\n if (names_1.indexOf(text) >= 0) {\n el.hide();\n } else {\n el.show();\n }\n });\n }\n } else if (isSlider(delegateObject)) {\n var range = component.getValue();\n\n var _a = __read(range, 2),\n min_1 = _a[0],\n max_1 = _a[1];\n\n each(elements, function (el) {\n var value = getElementValue(el, field_1);\n\n if (value >= min_1 && value <= max_1) {\n el.show();\n } else {\n el.hide();\n }\n });\n }\n }\n };\n /**\n * 清除过滤\n */\n\n\n ElementFilter.prototype.clear = function () {\n var elements = getElements(this.context.view);\n each(elements, function (el) {\n el.show();\n });\n };\n /**\n * 恢复发生的过滤,保持同 data-filter 命名的一致\n */\n\n\n ElementFilter.prototype.reset = function () {\n this.clear();\n };\n\n return ElementFilter;\n}(Action);\n\nexport default ElementFilter;","import { __extends } from \"tslib\";\nimport { each } from '@antv/util';\nimport Action from '../base';\nimport { getElements, getMaskedElements, getSiblingMaskElements, getSilbings, isInRecords, isMask } from '../util';\n/**\n * Sibling filter\n * @ignore\n */\n\nvar SiblingFilter =\n/** @class */\nfunction (_super) {\n __extends(SiblingFilter, _super);\n\n function SiblingFilter() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.byRecord = false;\n return _this;\n }\n /**\n * 过滤隐藏图形\n */\n\n\n SiblingFilter.prototype.filter = function () {\n // 仅考虑 mask 导致的过滤\n if (isMask(this.context)) {\n if (this.byRecord) {\n this.filterByRecord();\n } else {\n this.filterByBBox();\n }\n }\n }; // 根据框选的记录来做过滤\n\n\n SiblingFilter.prototype.filterByRecord = function () {\n var view = this.context.view;\n var maskElements = getMaskedElements(this.context, 10);\n\n if (!maskElements) {\n return;\n }\n\n var xFiled = view.getXScale().field;\n var yField = view.getYScales()[0].field;\n var records = maskElements.map(function (el) {\n return el.getModel().data;\n });\n var siblings = getSilbings(view);\n each(siblings, function (sibling) {\n var elements = getElements(sibling);\n each(elements, function (el) {\n var record = el.getModel().data; // records.includes(record) 不生效,应该是数据的引用被改了\n\n if (isInRecords(records, record, xFiled, yField)) {\n el.show();\n } else {\n el.hide();\n }\n });\n });\n }; // 根据被框选的包围盒做过滤\n\n\n SiblingFilter.prototype.filterByBBox = function () {\n var _this = this;\n\n var view = this.context.view;\n var siblings = getSilbings(view);\n each(siblings, function (sibling) {\n var maskElements = getSiblingMaskElements(_this.context, sibling, 10);\n var elements = getElements(sibling);\n\n if (maskElements) {\n // mask 过小时返回为 null,不能是空数组,否则同未框选到混淆\n each(elements, function (el) {\n if (maskElements.includes(el)) {\n el.show();\n } else {\n el.hide();\n }\n });\n }\n });\n };\n /**\n * 清理所有隐藏的图形\n */\n\n\n SiblingFilter.prototype.reset = function () {\n var siblings = getSilbings(this.context.view);\n each(siblings, function (sibling) {\n var elements = getElements(sibling);\n each(elements, function (el) {\n el.show();\n });\n });\n };\n\n return SiblingFilter;\n}(Action);\n\nexport default SiblingFilter;","import { __assign, __extends } from \"tslib\";\nimport { ext } from '@antv/matrix-util';\nimport { deepMix } from '@antv/util';\nimport { parsePadding } from '../../../util/padding';\nimport Action from '../base';\nvar PADDING_RIGHT = 10;\nvar PADDING_TOP = 5;\n/**\n * Button action\n * @ignore\n */\n\nvar ButtonAction =\n/** @class */\nfunction (_super) {\n __extends(ButtonAction, _super);\n\n function ButtonAction() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.buttonGroup = null;\n _this.buttonCfg = {\n name: 'button',\n text: 'button',\n textStyle: {\n x: 0,\n y: 0,\n fontSize: 12,\n fill: '#333333',\n cursor: 'pointer'\n },\n padding: [8, 10],\n style: {\n fill: '#f7f7f7',\n stroke: '#cccccc',\n cursor: 'pointer'\n },\n activeStyle: {\n fill: '#e6e6e6'\n }\n };\n return _this;\n } // mix 默认的配置和用户配置\n\n\n ButtonAction.prototype.getButtonCfg = function () {\n return deepMix(this.buttonCfg, this.cfg);\n }; // 绘制 Button 和 文本\n\n\n ButtonAction.prototype.drawButton = function () {\n var config = this.getButtonCfg();\n var group = this.context.view.foregroundGroup.addGroup({\n name: config.name\n }); // 添加文本\n\n var textShape = group.addShape({\n type: 'text',\n name: 'button-text',\n attrs: __assign({\n text: config.text\n }, config.textStyle)\n });\n var textBBox = textShape.getBBox();\n var padding = parsePadding(config.padding); // 添加背景按钮\n\n var buttonShape = group.addShape({\n type: 'rect',\n name: 'button-rect',\n attrs: __assign({\n x: textBBox.x - padding[3],\n y: textBBox.y - padding[0],\n width: textBBox.width + padding[1] + padding[3],\n height: textBBox.height + padding[0] + padding[2]\n }, config.style)\n });\n buttonShape.toBack(); // 在后面\n // active 效果内置\n\n group.on('mouseenter', function () {\n buttonShape.attr(config.activeStyle);\n });\n group.on('mouseleave', function () {\n buttonShape.attr(config.style);\n });\n this.buttonGroup = group;\n }; // 重置位置\n\n\n ButtonAction.prototype.resetPosition = function () {\n var view = this.context.view;\n var coord = view.getCoordinate();\n var point = coord.convert({\n x: 1,\n y: 1\n }); // 后面直接改成左上角\n\n var buttonGroup = this.buttonGroup;\n var bbox = buttonGroup.getBBox();\n var matrix = ext.transform(null, [['t', point.x - bbox.width - PADDING_RIGHT, point.y + bbox.height + PADDING_TOP]]);\n buttonGroup.setMatrix(matrix);\n };\n /**\n * 显示\n */\n\n\n ButtonAction.prototype.show = function () {\n if (!this.buttonGroup) {\n this.drawButton();\n }\n\n this.resetPosition();\n this.buttonGroup.show();\n };\n /**\n * 隐藏\n */\n\n\n ButtonAction.prototype.hide = function () {\n if (this.buttonGroup) {\n this.buttonGroup.hide();\n }\n };\n /**\n * 销毁\n */\n\n\n ButtonAction.prototype.destroy = function () {\n var buttonGroup = this.buttonGroup;\n\n if (buttonGroup) {\n buttonGroup.remove();\n }\n\n _super.prototype.destroy.call(this);\n };\n\n return ButtonAction;\n}(Action);\n\nexport default ButtonAction;","import { __extends } from \"tslib\";\nimport Action from '../base';\nimport { distance } from '../util';\nvar DISTANCE = 4; // 移动的最小距离\n\n/**\n * @ignore\n * View 支持 Drag 的 Action\n */\n\nvar Drag =\n/** @class */\nfunction (_super) {\n __extends(Drag, _super);\n\n function Drag() {\n var _this = _super !== null && _super.apply(this, arguments) || this; // Action 开始,不等同于 拖拽开始,需要判定移动的范围\n\n\n _this.starting = false; // 拖拽开始\n\n _this.dragStart = false;\n return _this;\n }\n /**\n * 开始\n */\n\n\n Drag.prototype.start = function () {\n this.starting = true;\n this.startPoint = this.context.getCurrentPoint();\n };\n /**\n * 拖拽\n */\n\n\n Drag.prototype.drag = function () {\n if (!this.startPoint) {\n return;\n }\n\n var current = this.context.getCurrentPoint();\n var view = this.context.view;\n var event = this.context.event;\n\n if (!this.dragStart) {\n if (distance(current, this.startPoint) > DISTANCE) {\n view.emit('dragstart', {\n target: event.target,\n x: event.x,\n y: event.y\n });\n this.dragStart = true;\n }\n } else {\n view.emit('drag', {\n target: event.target,\n x: event.x,\n y: event.y\n });\n }\n };\n /**\n * 结束\n */\n\n\n Drag.prototype.end = function () {\n if (this.dragStart) {\n var view = this.context.view;\n var event_1 = this.context.event;\n view.emit('dragend', {\n target: event_1.target,\n x: event_1.x,\n y: event_1.y\n });\n }\n\n this.starting = false;\n this.dragStart = false;\n };\n\n return Drag;\n}(Action);\n\nexport default Drag;","import { __extends } from \"tslib\";\nimport { ext } from '@antv/matrix-util';\nimport { Action } from '..';\nimport { distance } from '../util';\nvar MIN_DISTANCE = 5;\n/**\n * @ignore\n * View 移动的 Action\n */\n\nvar Move =\n/** @class */\nfunction (_super) {\n __extends(Move, _super);\n\n function Move() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.starting = false;\n _this.isMoving = false; // private cacheRange = null;\n\n _this.startPoint = null;\n _this.startMatrix = null;\n return _this;\n }\n /**\n * 开始移动\n */\n\n\n Move.prototype.start = function () {\n this.starting = true;\n this.startPoint = this.context.getCurrentPoint(); // 缓存开始时的矩阵,防止反复拖拽\n\n this.startMatrix = this.context.view.middleGroup.getMatrix();\n };\n /**\n * 移动\n */\n\n\n Move.prototype.move = function () {\n if (!this.starting) {\n return;\n }\n\n var startPoint = this.startPoint;\n var currentPoint = this.context.getCurrentPoint();\n var d = distance(startPoint, currentPoint);\n\n if (d > MIN_DISTANCE && !this.isMoving) {\n this.isMoving = true;\n }\n\n if (this.isMoving) {\n var view = this.context.view;\n var matrix = ext.transform(this.startMatrix, [['t', currentPoint.x - startPoint.x, currentPoint.y - startPoint.y]]);\n view.backgroundGroup.setMatrix(matrix);\n view.foregroundGroup.setMatrix(matrix);\n view.middleGroup.setMatrix(matrix);\n }\n };\n /**\n * 结束移动\n */\n\n\n Move.prototype.end = function () {\n if (this.isMoving) {\n this.isMoving = false;\n }\n\n this.startMatrix = null;\n this.starting = false;\n this.startPoint = null;\n };\n /**\n * 回滚\n */\n\n\n Move.prototype.reset = function () {\n this.starting = false;\n this.startPoint = null;\n this.isMoving = false;\n var view = this.context.view;\n view.backgroundGroup.resetMatrix();\n view.foregroundGroup.resetMatrix();\n view.middleGroup.resetMatrix();\n this.isMoving = false;\n };\n\n return Move;\n}(Action);\n\nexport default Move;","import { __extends } from \"tslib\";\nimport { Action } from '..';\nvar DIM_X = 'x';\nvar DIM_Y = 'y';\n/**\n * Scale translate\n * @ignore\n */\n\nvar ScaleTranslate =\n/** @class */\nfunction (_super) {\n __extends(ScaleTranslate, _super);\n\n function ScaleTranslate() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.dims = [DIM_X, DIM_Y];\n _this.cfgFields = ['dims'];\n _this.cacheScaleDefs = {};\n return _this;\n } // 是否支持对应字段的平移\n\n\n ScaleTranslate.prototype.hasDim = function (dim) {\n return this.dims.includes(dim);\n };\n\n ScaleTranslate.prototype.getScale = function (dim) {\n var view = this.context.view;\n\n if (dim === 'x') {\n return view.getXScale();\n } else {\n return view.getYScales()[0];\n }\n };\n\n ScaleTranslate.prototype.resetDim = function (dim) {\n var view = this.context.view;\n\n if (this.hasDim(dim) && this.cacheScaleDefs[dim]) {\n var scale = this.getScale(dim);\n view.scale(scale.field, this.cacheScaleDefs[dim]);\n this.cacheScaleDefs[dim] = null;\n }\n };\n /**\n * 回滚\n */\n\n\n ScaleTranslate.prototype.reset = function () {\n this.resetDim(DIM_X);\n this.resetDim(DIM_Y);\n var view = this.context.view;\n view.render(true);\n };\n\n return ScaleTranslate;\n}(Action);\n\nexport default ScaleTranslate;","import { __extends } from \"tslib\";\nimport { each } from '@antv/util';\nimport TransformAction from './scale-transform';\n/**\n * 拖拽 Scale 的 Action\n * @ignore\n */\n\nvar ScaleTranslate =\n/** @class */\nfunction (_super) {\n __extends(ScaleTranslate, _super);\n\n function ScaleTranslate() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.startPoint = null;\n _this.starting = false;\n _this.startCache = {};\n return _this;\n }\n /**\n * 开始\n */\n\n\n ScaleTranslate.prototype.start = function () {\n var _this = this;\n\n this.startPoint = this.context.getCurrentPoint();\n this.starting = true;\n var dims = this.dims;\n each(dims, function (dim) {\n var scale = _this.getScale(dim);\n\n var min = scale.min,\n max = scale.max,\n values = scale.values;\n _this.startCache[dim] = {\n min: min,\n max: max,\n values: values\n };\n });\n }; // 平移分类的度量\n // private translateCategory(dim, scale, normalPoint) {\n // }\n\n /**\n * 结束\n */\n\n\n ScaleTranslate.prototype.end = function () {\n this.startPoint = null;\n this.starting = false;\n this.startCache = {};\n };\n /**\n * 平移\n */\n\n\n ScaleTranslate.prototype.translate = function () {\n var _this = this;\n\n if (!this.starting) {\n return;\n }\n\n var startPoint = this.startPoint;\n var coord = this.context.view.getCoordinate();\n var currentPoint = this.context.getCurrentPoint();\n var normalStart = coord.invert(startPoint);\n var noramlCurrent = coord.invert(currentPoint);\n var dx = noramlCurrent.x - normalStart.x;\n var dy = noramlCurrent.y - normalStart.y;\n var view = this.context.view;\n var dims = this.dims;\n each(dims, function (dim) {\n _this.translateDim(dim, {\n x: dx * -1,\n y: dy * -1\n });\n });\n view.render(true);\n }; // 平移度量\n\n\n ScaleTranslate.prototype.translateDim = function (dim, normalPoint) {\n if (this.hasDim(dim)) {\n var scale = this.getScale(dim);\n\n if (scale.isLinear) {\n this.translateLinear(dim, scale, normalPoint);\n } // else { // 暂时仅处理连续字段\n // this.translateCategory(dim, scale, normalPoint);\n // }\n\n }\n }; // linear 度量平移\n\n\n ScaleTranslate.prototype.translateLinear = function (dim, scale, normalPoint) {\n var view = this.context.view;\n var _a = this.startCache[dim],\n min = _a.min,\n max = _a.max;\n var range = max - min;\n var d = normalPoint[dim] * range; // 只有第一次缓存,否则无法回滚\n\n if (!this.cacheScaleDefs[dim]) {\n this.cacheScaleDefs[dim] = {\n // @ts-ignore\n nice: scale.nice,\n min: min,\n max: max\n };\n }\n\n view.scale(scale.field, {\n // @ts-ignore\n nice: false,\n min: min + d,\n max: max + d\n });\n }; // 平移分类的度量\n // private translateCategory(dim, scale, normalPoint) {\n // }\n\n /**\n * 回滚\n */\n\n\n ScaleTranslate.prototype.reset = function () {\n _super.prototype.reset.call(this);\n\n this.startPoint = null;\n this.starting = false;\n };\n\n return ScaleTranslate;\n}(TransformAction);\n\nexport default ScaleTranslate;","import { __extends } from \"tslib\";\nimport { each } from '@antv/util';\nimport TransformAction from './scale-transform';\n/**\n * 缩放 Scale 的 Action\n * @ignore\n */\n\nvar ScaleTranslate =\n/** @class */\nfunction (_super) {\n __extends(ScaleTranslate, _super);\n\n function ScaleTranslate() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.zoomRatio = 0.05;\n return _this; // 平移分类的度量\n // private translateCategory(dim, scale, normalPoint) {\n // }\n }\n /**\n * 缩小\n */\n\n\n ScaleTranslate.prototype.zoomIn = function () {\n this.zoom(this.zoomRatio);\n };\n\n ScaleTranslate.prototype.zoom = function (scale) {\n var _this = this;\n\n var dims = this.dims;\n each(dims, function (dim) {\n _this.zoomDim(dim, scale);\n });\n this.context.view.render(true);\n };\n /**\n * 放大\n */\n\n\n ScaleTranslate.prototype.zoomOut = function () {\n this.zoom(-1 * this.zoomRatio);\n }; // 缩放度量\n\n\n ScaleTranslate.prototype.zoomDim = function (dim, dRatio) {\n if (this.hasDim(dim)) {\n var scale = this.getScale(dim);\n\n if (scale.isLinear) {\n this.zoomLinear(dim, scale, dRatio);\n } // else { // 暂时仅处理连续字段\n // this.zoomCategory(dim, scale, normalPoint);\n // }\n\n }\n }; // linear 度量平移\n\n\n ScaleTranslate.prototype.zoomLinear = function (dim, scale, dRatio) {\n var view = this.context.view; // 只有第一次缓存,否则无法回滚\n\n if (!this.cacheScaleDefs[dim]) {\n this.cacheScaleDefs[dim] = {\n // @ts-ignore\n nice: scale.nice,\n min: scale.min,\n max: scale.max\n };\n } // 使用使用原始度量作为缩放标准\n\n\n var scaleDef = this.cacheScaleDefs[dim];\n var range = scaleDef.max - scaleDef.min;\n var min = scale.min,\n max = scale.max;\n var d = dRatio * range;\n var toMin = min - d;\n var toMax = max + d;\n var curRange = toMax - toMin;\n var scaled = curRange / range;\n\n if (toMax > toMin && scaled < 100 && scaled > 0.01) {\n view.scale(scale.field, {\n // @ts-ignore\n nice: false,\n min: min - d,\n max: max + d\n });\n }\n };\n\n return ScaleTranslate;\n}(TransformAction);\n\nexport default ScaleTranslate;","import { __extends } from \"tslib\";\nimport { clamp, size, valuesOfKey } from '@antv/util';\nimport { Action } from '..';\n\nfunction isWheelDown(event) {\n var wheelEvent = event.gEvent.originalEvent;\n return wheelEvent.deltaY > 0;\n}\n\nvar DEFAULT_WHEELDELTA = 1;\n\nvar MousewheelScroll =\n/** @class */\nfunction (_super) {\n __extends(MousewheelScroll, _super);\n\n function MousewheelScroll() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n MousewheelScroll.prototype.scroll = function (arg) {\n var _a = this.context,\n view = _a.view,\n event = _a.event;\n\n if (!view.getOptions().scrollbar) {\n return;\n }\n\n var wheelDelta = (arg === null || arg === void 0 ? void 0 : arg.wheelDelta) || DEFAULT_WHEELDELTA;\n var scrollbarController = view.getController('scrollbar');\n var xScale = view.getXScale();\n var data = view.getOptions().data;\n var dataSize = size(valuesOfKey(data, xScale.field));\n var step = size(xScale.values);\n var currentRatio = scrollbarController.getValue();\n var currentStart = Math.floor((dataSize - step) * currentRatio);\n var nextStart = currentStart + (isWheelDown(event) ? wheelDelta : -wheelDelta);\n var correction = wheelDelta / (dataSize - step) / 10000;\n var nextRatio = clamp(nextStart / (dataSize - step) + correction, 0, 1);\n scrollbarController.setValue(nextRatio);\n };\n\n return MousewheelScroll;\n}(Action);\n\nexport default MousewheelScroll;","import { __assign, __extends } from \"tslib\";\nimport { TOOLTIP_CSS_CONST } from '@antv/component';\nimport { deepMix } from '@antv/util';\nimport { HtmlTooltip } from '../../../../dependents';\nimport Action from '../../base';\nimport { getDelegationObject } from '../../util';\nvar AXIS_DESCRIPTION_TOOLTIP = 'aixs-description-tooltip';\n\nvar AxisDescription =\n/** @class */\nfunction (_super) {\n __extends(AxisDescription, _super);\n\n function AxisDescription() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n AxisDescription.prototype.show = function () {\n var context = this.context;\n var axis = getDelegationObject(context).axis;\n var _a = axis.cfg.title,\n description = _a.description,\n text = _a.text,\n descriptionTooltipStyle = _a.descriptionTooltipStyle;\n var _b = context.event,\n x = _b.x,\n y = _b.y;\n\n if (!this.tooltip) {\n this.renderTooltip();\n }\n\n this.tooltip.update({\n title: text || '',\n customContent: function customContent() {\n return \"\\n
\\n
\\n \\u5B57\\u6BB5\\u8BF4\\u660E\\uFF1A\").concat(description, \"\\n
\\n
\\n \");\n },\n x: x,\n y: y\n });\n this.tooltip.show();\n };\n\n AxisDescription.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n\n this.tooltip && this.tooltip.destroy();\n };\n\n AxisDescription.prototype.hide = function () {\n this.tooltip && this.tooltip.hide();\n };\n\n AxisDescription.prototype.renderTooltip = function () {\n var _a;\n\n var view = this.context.view;\n var canvas = view.canvas;\n var region = {\n start: {\n x: 0,\n y: 0\n },\n end: {\n x: canvas.get('width'),\n y: canvas.get('height')\n }\n };\n var tooltip = new HtmlTooltip({\n parent: canvas.get('el').parentNode,\n region: region,\n visible: false,\n containerId: AXIS_DESCRIPTION_TOOLTIP,\n domStyles: __assign({}, deepMix({}, (_a = {}, // 超长的时候,tooltip tip 最大宽度为 50%,然后可以换行\n _a[TOOLTIP_CSS_CONST.CONTAINER_CLASS] = {\n 'max-width': '50%',\n padding: '10px',\n 'line-height': '15px',\n 'font-size': '12px',\n color: 'rgba(0, 0, 0, .65)'\n }, _a[TOOLTIP_CSS_CONST.TITLE_CLASS] = {\n 'word-break': 'break-all',\n 'margin-bottom': '3px'\n }, _a)))\n });\n tooltip.init();\n tooltip.setCapture(false);\n this.tooltip = tooltip;\n };\n\n return AxisDescription;\n}(Action);\n\nexport default AxisDescription;","// 注册黑暗主题\nimport { registerTheme } from './core';\nimport { antvDark } from './theme/style-sheet/dark';\nimport { createThemeByStyleSheet } from './theme/util/create-by-style-sheet';\nregisterTheme('dark', createThemeByStyleSheet(antvDark)); // 注册 G 渲染引擎\n\nimport * as CanvasEngine from '@antv/g-canvas';\nimport * as SVGEngine from '@antv/g-svg';\nimport { registerEngine } from './core';\nregisterEngine('canvas', CanvasEngine);\nregisterEngine('svg', SVGEngine); // 注册 G2 内置的 geometry\n\nimport { registerGeometry } from './core';\nimport Area from './geometry/area';\nimport Edge from './geometry/edge';\nimport Heatmap from './geometry/heatmap';\nimport Interval from './geometry/interval';\nimport Line from './geometry/line';\nimport Path from './geometry/path';\nimport Point from './geometry/point';\nimport Polygon from './geometry/polygon';\nimport Schema from './geometry/schema';\nimport Violin from './geometry/violin';\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); // 引入所有内置的 shapes\n\nimport './geometry/shape/area/line';\nimport './geometry/shape/area/smooth';\nimport './geometry/shape/area/smooth-line';\nimport './geometry/shape/edge/arc';\nimport './geometry/shape/edge/smooth';\nimport './geometry/shape/edge/vhv';\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';\nimport './geometry/shape/line/step';\nimport './geometry/shape/point/hollow';\nimport './geometry/shape/point/image';\nimport './geometry/shape/point/solid';\nimport './geometry/shape/schema/box';\nimport './geometry/shape/schema/candle';\nimport './geometry/shape/polygon/square';\nimport './geometry/shape/violin/smooth';\nimport './geometry/shape/violin/hollow'; // 注册 Geometry 内置的 label\n\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';\nregisterGeometryLabel('base', GeometryLabel);\nregisterGeometryLabel('interval', IntervalLabel);\nregisterGeometryLabel('pie', PieLabel);\nregisterGeometryLabel('polar', PolarLabel); // 注册 Geometry label 内置的布局函数\n\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';\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\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';\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); // 注册内置的 Facet\n\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';\nregisterFacet('rect', Rect);\nregisterFacet('mirror', Mirror);\nregisterFacet('list', List);\nregisterFacet('matrix', Matrix);\nregisterFacet('circle', Circle);\nregisterFacet('tree', Tree); // 注册内置的 Component\n\nimport { registerComponentController } from './core';\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'; // register build-in components\n\nregisterComponentController('axis', Axis);\nregisterComponentController('legend', Legend);\nregisterComponentController('tooltip', Tooltip);\nregisterComponentController('annotation', Annotation);\nregisterComponentController('slider', Slider);\nregisterComponentController('scrollbar', Scrollbar); // 注册 Interaction Action\n\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';\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';\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';\nimport ElementRangeHighlight, { ELEMENT_RANGE_HIGHLIGHT_EVENTS } from './interaction/action/element/range-highlight';\nimport ElementSingleHighlight from './interaction/action/element/single-highlight';\nimport ElementRangeSelected from './interaction/action/element/range-selected';\nimport ElementSelected from './interaction/action/element/selected';\nimport ElementSingleSelected from './interaction/action/element/single-selected';\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';\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';\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';\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';\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);\nregisterAction('element-highlight', ElementHighlight);\nregisterAction('element-highlight-by-x', ElementHighlightByX);\nregisterAction('element-highlight-by-color', ElementHighlightByColor);\nregisterAction('element-single-highlight', ElementSingleHighlight);\nregisterAction('element-range-highlight', ElementRangeHighlight);\nregisterAction('element-sibling-highlight', ElementRangeHighlight, {\n effectSiblings: true,\n effectByRecord: true\n});\nregisterAction('element-selected', ElementSelected);\nregisterAction('element-single-selected', ElementSingleSelected);\nregisterAction('element-range-selected', ElementRangeSelected);\nregisterAction('element-link-by-color', ElementLinkByColor);\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);\nregisterAction('legend-item-highlight', ListHighlight, {\n componentNames: ['legend']\n});\nregisterAction('axis-label-highlight', ListHighlight, {\n componentNames: ['axis']\n});\nregisterAction('axis-description', AxisDescription);\nregisterAction('rect-mask', RectMask);\nregisterAction('x-rect-mask', DimMask, {\n dim: 'x'\n});\nregisterAction('y-rect-mask', DimMask, {\n dim: 'y'\n});\nregisterAction('circle-mask', CircleMask);\nregisterAction('path-mask', PathMask);\nregisterAction('smooth-path-mask', SmoothPathMask);\nregisterAction('cursor', CursorAction);\nregisterAction('data-filter', DataFilter);\nregisterAction('brush', DataRangeFilter);\nregisterAction('brush-x', DataRangeFilter, {\n dims: ['x']\n});\nregisterAction('brush-y', DataRangeFilter, {\n dims: ['y']\n});\nregisterAction('sibling-filter', SiblingFilter);\nregisterAction('sibling-x-filter', SiblingFilter);\nregisterAction('sibling-y-filter', SiblingFilter);\nregisterAction('element-filter', ElementFilter);\nregisterAction('element-sibling-filter', ElementSiblingFilter);\nregisterAction('element-sibling-filter-record', ElementSiblingFilter, {\n byRecord: true\n});\nregisterAction('view-drag', ViewDrag);\nregisterAction('view-move', ViewMove);\nregisterAction('scale-translate', ScaleTranslate);\nregisterAction('scale-zoom', ScaleZoom);\nregisterAction('reset-button', ButtonAction, {\n name: 'reset-button',\n text: 'reset'\n});\nregisterAction('mousewheel-scroll', MousewheelScroll); // 注册默认的 Interaction 交互行为\n\nimport { registerInteraction } from './core';\n\nfunction isPointInView(context) {\n return context.isInPlot();\n} // 注册 tooltip 的 interaction\n\n\nregisterInteraction('tooltip', {\n start: [{\n trigger: 'plot:mousemove',\n action: 'tooltip:show',\n throttle: {\n wait: 50,\n leading: true,\n trailing: false\n }\n }, {\n trigger: 'plot:touchmove',\n action: 'tooltip:show',\n throttle: {\n wait: 50,\n leading: true,\n trailing: false\n }\n }],\n end: [{\n trigger: 'plot:mouseleave',\n action: 'tooltip:hide'\n }, {\n trigger: 'plot:leave',\n action: 'tooltip:hide'\n }, {\n trigger: 'plot:touchend',\n action: 'tooltip:hide'\n }]\n});\nregisterInteraction('ellipsis-text', {\n start: [{\n trigger: 'legend-item-name:mousemove',\n action: 'ellipsis-text:show',\n throttle: {\n wait: 50,\n leading: true,\n trailing: false\n }\n }, {\n trigger: 'legend-item-name:touchstart',\n action: 'ellipsis-text:show',\n throttle: {\n wait: 50,\n leading: true,\n trailing: false\n }\n }, {\n trigger: 'axis-label:mousemove',\n action: 'ellipsis-text:show',\n throttle: {\n wait: 50,\n leading: true,\n trailing: false\n }\n }, {\n trigger: 'axis-label:touchstart',\n action: 'ellipsis-text:show',\n throttle: {\n wait: 50,\n leading: true,\n trailing: false\n }\n }],\n end: [{\n trigger: 'legend-item-name:mouseleave',\n action: 'ellipsis-text:hide'\n }, {\n trigger: 'legend-item-name:touchend',\n action: 'ellipsis-text:hide'\n }, {\n trigger: 'axis-label:mouseleave',\n action: 'ellipsis-text:hide'\n }, {\n trigger: 'axis-label:mouseout',\n action: 'ellipsis-text:hide'\n }, {\n trigger: 'axis-label:touchend',\n action: 'ellipsis-text:hide'\n }]\n}); // 移动到 element 上 active\n\nregisterInteraction('element-active', {\n start: [{\n trigger: 'element:mouseenter',\n action: 'element-active:active'\n }],\n end: [{\n trigger: 'element:mouseleave',\n action: 'element-active:reset'\n }]\n}); // 点击选中,允许取消\n\nregisterInteraction('element-selected', {\n start: [{\n trigger: 'element:click',\n action: 'element-selected:toggle'\n }]\n}); // hover highlight,允许取消\n\nregisterInteraction('element-highlight', {\n start: [{\n trigger: 'element:mouseenter',\n action: 'element-highlight:highlight'\n }],\n end: [{\n trigger: 'element:mouseleave',\n action: 'element-highlight:reset'\n }]\n}); // hover highlight by x,允许取消\n\nregisterInteraction('element-highlight-by-x', {\n start: [{\n trigger: 'element:mouseenter',\n action: 'element-highlight-by-x:highlight'\n }],\n end: [{\n trigger: 'element:mouseleave',\n action: 'element-highlight-by-x:reset'\n }]\n}); // hover highlight by y,允许取消\n\nregisterInteraction('element-highlight-by-color', {\n start: [{\n trigger: 'element:mouseenter',\n action: 'element-highlight-by-color:highlight'\n }],\n end: [{\n trigger: 'element:mouseleave',\n action: 'element-highlight-by-color:reset'\n }]\n}); // legend hover,element active\n\nregisterInteraction('legend-active', {\n start: [{\n trigger: 'legend-item:mouseenter',\n action: ['list-active:active', 'element-active:active']\n }],\n end: [{\n trigger: 'legend-item:mouseleave',\n action: ['list-active:reset', 'element-active:reset']\n }]\n}); // legend hover,element active\n\nregisterInteraction('legend-highlight', {\n start: [{\n trigger: 'legend-item:mouseenter',\n action: ['legend-item-highlight:highlight', 'element-highlight:highlight']\n }],\n end: [{\n trigger: 'legend-item:mouseleave',\n action: ['legend-item-highlight:reset', 'element-highlight:reset']\n }]\n}); // legend hover,element active\n\nregisterInteraction('axis-label-highlight', {\n start: [{\n trigger: 'axis-label:mouseenter',\n action: ['axis-label-highlight:highlight', 'element-highlight:highlight']\n }],\n end: [{\n trigger: 'axis-label:mouseleave',\n action: ['axis-label-highlight:reset', 'element-highlight:reset']\n }]\n}); // legend hover,element active\n\nregisterInteraction('element-list-highlight', {\n start: [{\n trigger: 'element:mouseenter',\n action: ['list-highlight:highlight', 'element-highlight:highlight']\n }],\n end: [{\n trigger: 'element:mouseleave',\n action: ['list-highlight:reset', 'element-highlight:reset']\n }]\n}); // 框选\n\nregisterInteraction('element-range-highlight', {\n showEnable: [{\n trigger: 'plot:mouseenter',\n action: 'cursor:crosshair'\n }, {\n trigger: 'mask:mouseenter',\n action: 'cursor:move'\n }, {\n trigger: 'plot:mouseleave',\n action: 'cursor:default'\n }, {\n trigger: 'mask:mouseleave',\n action: 'cursor:crosshair'\n }],\n start: [{\n trigger: 'plot:mousedown',\n isEnable: function isEnable(context) {\n // 不要点击在 mask 上重新开始\n return !context.isInShape('mask');\n },\n action: ['rect-mask:start', 'rect-mask:show']\n }, {\n trigger: 'mask:dragstart',\n action: ['rect-mask:moveStart']\n }],\n processing: [{\n trigger: 'plot:mousemove',\n action: ['rect-mask:resize']\n }, {\n trigger: 'mask:drag',\n action: ['rect-mask:move']\n }, {\n trigger: 'mask:change',\n action: ['element-range-highlight:highlight']\n }],\n end: [{\n trigger: 'plot:mouseup',\n action: ['rect-mask:end']\n }, {\n trigger: 'mask:dragend',\n action: ['rect-mask:moveEnd']\n }, {\n trigger: 'document:mouseup',\n isEnable: function isEnable(context) {\n return !context.isInPlot();\n },\n action: ['element-range-highlight:clear', 'rect-mask:end', 'rect-mask:hide']\n }],\n rollback: [{\n trigger: 'dblclick',\n action: ['element-range-highlight:clear', 'rect-mask:hide']\n }]\n});\nregisterInteraction('brush', {\n showEnable: [{\n trigger: 'plot:mouseenter',\n action: 'cursor:crosshair'\n }, {\n trigger: 'plot:mouseleave',\n action: 'cursor:default'\n }],\n start: [{\n trigger: 'mousedown',\n isEnable: isPointInView,\n action: ['brush:start', 'rect-mask:start', 'rect-mask:show']\n }],\n processing: [{\n trigger: 'mousemove',\n isEnable: isPointInView,\n action: ['rect-mask:resize']\n }],\n end: [{\n trigger: 'mouseup',\n isEnable: isPointInView,\n action: ['brush:filter', 'brush:end', 'rect-mask:end', 'rect-mask:hide', 'reset-button:show']\n }],\n rollback: [{\n trigger: 'reset-button:click',\n action: ['brush:reset', 'reset-button:hide', 'cursor:crosshair']\n }]\n});\nregisterInteraction('brush-visible', {\n showEnable: [{\n trigger: 'plot:mouseenter',\n action: 'cursor:crosshair'\n }, {\n trigger: 'plot:mouseleave',\n action: 'cursor:default'\n }],\n start: [{\n trigger: 'plot:mousedown',\n action: ['rect-mask:start', 'rect-mask:show']\n }],\n processing: [{\n trigger: 'plot:mousemove',\n action: ['rect-mask:resize']\n }, {\n trigger: 'mask:change',\n action: ['element-range-highlight:highlight']\n }],\n end: [{\n trigger: 'plot:mouseup',\n action: ['rect-mask:end', 'rect-mask:hide', 'element-filter:filter', 'element-range-highlight:clear']\n }],\n rollback: [{\n trigger: 'dblclick',\n action: ['element-filter:clear']\n }]\n});\nregisterInteraction('brush-x', {\n showEnable: [{\n trigger: 'plot:mouseenter',\n action: 'cursor:crosshair'\n }, {\n trigger: 'plot:mouseleave',\n action: 'cursor:default'\n }],\n start: [{\n trigger: 'mousedown',\n isEnable: isPointInView,\n action: ['brush-x:start', 'x-rect-mask:start', 'x-rect-mask:show']\n }],\n processing: [{\n trigger: 'mousemove',\n isEnable: isPointInView,\n action: ['x-rect-mask:resize']\n }],\n end: [{\n trigger: 'mouseup',\n isEnable: isPointInView,\n action: ['brush-x:filter', 'brush-x:end', 'x-rect-mask:end', 'x-rect-mask:hide']\n }],\n rollback: [{\n trigger: 'dblclick',\n action: ['brush-x:reset']\n }]\n});\nregisterInteraction('element-path-highlight', {\n showEnable: [{\n trigger: 'plot:mouseenter',\n action: 'cursor:crosshair'\n }, {\n trigger: 'plot:mouseleave',\n action: 'cursor:default'\n }],\n start: [{\n trigger: 'mousedown',\n isEnable: isPointInView,\n action: 'path-mask:start'\n }, {\n trigger: 'mousedown',\n isEnable: isPointInView,\n action: 'path-mask:show'\n }],\n processing: [{\n trigger: 'mousemove',\n action: 'path-mask:addPoint'\n }],\n end: [{\n trigger: 'mouseup',\n action: 'path-mask:end'\n }],\n rollback: [{\n trigger: 'dblclick',\n action: 'path-mask:hide'\n }]\n}); // 点击选中,允许取消\n\nregisterInteraction('element-single-selected', {\n start: [{\n trigger: 'element:click',\n action: 'element-single-selected:toggle'\n }]\n}); // 筛选数据\n\nregisterInteraction('legend-filter', {\n showEnable: [{\n trigger: 'legend-item:mouseenter',\n action: ['cursor:pointer', 'list-radio:show']\n }, {\n trigger: 'legend-item:mouseleave',\n action: ['cursor:default', 'list-radio:hide']\n }],\n start: [{\n trigger: 'legend-item:click',\n isEnable: function 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 }, // 正反选数据: 只有当 radio === truthy 的时候才会有 legend-item-radio 这个元素\n {\n trigger: 'legend-item-radio:mouseenter',\n action: ['list-radio:showTip']\n }, {\n trigger: 'legend-item-radio:mouseleave',\n action: ['list-radio:hideTip']\n }, {\n trigger: 'legend-item-radio:click',\n action: ['list-focus:toggle', 'data-filter:filter', 'list-radio:show']\n }]\n}); // 筛选数据\n\nregisterInteraction('continuous-filter', {\n start: [{\n trigger: 'legend:valuechanged',\n action: 'data-filter:filter'\n }]\n}); // 筛选数据\n\nregisterInteraction('continuous-visible-filter', {\n start: [{\n trigger: 'legend:valuechanged',\n action: 'element-filter:filter'\n }]\n}); // 筛选图形\n\nregisterInteraction('legend-visible-filter', {\n showEnable: [{\n trigger: 'legend-item:mouseenter',\n action: 'cursor:pointer'\n }, {\n trigger: 'legend-item:mouseleave',\n action: 'cursor:default'\n }],\n start: [{\n trigger: 'legend-item:click',\n action: ['legend-item-highlight:reset', 'element-highlight:reset', 'list-unchecked:toggle', 'element-filter:filter']\n }]\n}); // 出现背景框\n\nregisterInteraction('active-region', {\n start: [{\n trigger: 'plot:mousemove',\n action: 'active-region:show'\n }],\n end: [{\n trigger: 'plot:mouseleave',\n action: 'active-region:hide'\n }]\n}); // 显示坐标轴标题详情信息\n\nregisterInteraction('axis-description', {\n start: [{\n trigger: 'axis-description:mousemove',\n action: 'axis-description:show'\n }],\n end: [{\n trigger: 'axis-description:mouseleave',\n action: 'axis-description:hide'\n }]\n});\n\nfunction isWheelDown(event) {\n event.gEvent.preventDefault();\n return event.gEvent.originalEvent.deltaY > 0;\n}\n\nregisterInteraction('view-zoom', {\n start: [{\n trigger: 'plot:mousewheel',\n isEnable: function isEnable(context) {\n return isWheelDown(context.event);\n },\n action: 'scale-zoom:zoomOut',\n throttle: {\n wait: 100,\n leading: true,\n trailing: false\n }\n }, {\n trigger: 'plot:mousewheel',\n isEnable: function isEnable(context) {\n return !isWheelDown(context.event);\n },\n action: 'scale-zoom:zoomIn',\n throttle: {\n wait: 100,\n leading: true,\n trailing: false\n }\n }]\n});\nregisterInteraction('sibling-tooltip', {\n start: [{\n trigger: 'plot:mousemove',\n action: 'sibling-tooltip:show'\n }],\n end: [{\n trigger: 'plot:mouseleave',\n action: 'sibling-tooltip:hide'\n }]\n});\nregisterInteraction('plot-mousewheel-scroll', {\n start: [{\n trigger: 'plot:mousewheel',\n action: 'mousewheel-scroll:scroll'\n }]\n}); // 暴露一些常量\n\nexport { VIEW_LIFE_CIRCLE } from './constant';\n/** brush 范围筛选的一些事件常量 */\n\nexport { BRUSH_FILTER_EVENTS, ELEMENT_RANGE_HIGHLIGHT_EVENTS };\nexport * from './core';","import { __values } from \"tslib\";\nimport { isObject, each, find, get } from '@antv/util';\nimport { polarToCartesian } from '../../../../util/graphics';\n/** label text和line距离 4px */\n\nvar MARGIN = 4;\n\nfunction antiCollision(labelShapes, labels, lineHeight, plotRange, center, isRight) {\n var e_1, _a; // adjust y position of labels to avoid overlapping\n\n\n var overlapping = true;\n var start = plotRange.start;\n var end = plotRange.end;\n var startY = Math.min(start.y, end.y);\n var totalHeight = Math.abs(start.y - end.y);\n var i;\n var maxY = 0;\n var minY = Number.MIN_VALUE;\n var boxes = labels.map(function (label) {\n if (label.y > maxY) {\n maxY = label.y;\n }\n\n if (label.y < minY) {\n minY = label.y;\n }\n\n return {\n size: lineHeight,\n targets: [label.y - startY]\n };\n });\n minY -= startY;\n\n if (maxY - startY > totalHeight) {\n totalHeight = maxY - startY;\n }\n\n while (overlapping) {\n /* eslint no-loop-func: 0 */\n boxes.forEach(function (box) {\n var 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); // box.pos = Math.max(0, target - box.size / 2);\n }); // detect overlapping and join boxes\n\n overlapping = false;\n i = boxes.length;\n\n while (i--) {\n if (i > 0) {\n var previousBox = boxes[i - 1];\n var box = boxes[i];\n\n if (previousBox.pos + previousBox.size > box.pos) {\n // overlapping\n previousBox.size += box.size;\n previousBox.targets = previousBox.targets.concat(box.targets); // overflow, shift up\n\n if (previousBox.pos + previousBox.size > totalHeight) {\n previousBox.pos = totalHeight - previousBox.size;\n }\n\n boxes.splice(i, 1); // removing box\n\n overlapping = true;\n }\n }\n }\n }\n\n i = 0; // step 4: normalize y and adjust x\n\n boxes.forEach(function (b) {\n var posInCompositeBox = startY + lineHeight / 2; // middle of the label\n\n b.targets.forEach(function () {\n labels[i].y = b.pos + posInCompositeBox;\n posInCompositeBox += lineHeight;\n i++;\n });\n });\n var labelsMap = {};\n\n try {\n for (var labelShapes_1 = __values(labelShapes), labelShapes_1_1 = labelShapes_1.next(); !labelShapes_1_1.done; labelShapes_1_1 = labelShapes_1.next()) {\n var labelShape = labelShapes_1_1.value;\n labelsMap[labelShape.get('id')] = labelShape;\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (labelShapes_1_1 && !labelShapes_1_1.done && (_a = labelShapes_1[\"return\"])) _a.call(labelShapes_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n } // (x - cx)^2 + (y - cy)^2 = totalR^2\n\n\n labels.forEach(function (label) {\n var rPow2 = label.r * label.r;\n var dyPow2 = Math.pow(Math.abs(label.y - center.y), 2);\n\n if (rPow2 < dyPow2) {\n label.x = center.x;\n } else {\n var dx = Math.sqrt(rPow2 - dyPow2);\n\n if (!isRight) {\n // left\n label.x = center.x - dx;\n } else {\n // right\n label.x = center.x + dx;\n }\n } // adjust labelShape\n\n\n var labelShape = labelsMap[label.id];\n labelShape.attr('x', label.x);\n labelShape.attr('y', label.y); // because group could not effect text-shape, should set text-shape position manually\n\n var textShape = find(labelShape.getChildren(), function (ele) {\n return ele.get('type') === 'text';\n }); // @ts-ignore\n\n if (textShape) {\n textShape.attr('y', label.y);\n textShape.attr('x', label.x);\n }\n });\n}\n\nexport function distribute(items, labels, shapes, region) {\n if (!items.length || !labels.length) {\n return;\n }\n\n var offset = items[0] ? items[0].offset : 0;\n var coordinate = labels[0].get('coordinate');\n var radius = coordinate.getRadius();\n var center = coordinate.getCenter();\n\n if (offset > 0) {\n // const lineHeight = get(this.geometry.theme, ['pieLabels', 'labelHeight'], 14);\n var lineHeight_1 = 14; // TODO\n\n var totalR = radius + offset;\n var totalHeight_1 = totalR * 2 + lineHeight_1 * 2;\n var plotRange_1 = {\n start: coordinate.start,\n end: coordinate.end\n }; // step 1: separate labels\n\n var halves_1 = [[], [] // right\n ];\n items.forEach(function (labelItem) {\n if (!labelItem) {\n return;\n }\n\n if (labelItem.textAlign === 'right') {\n // left\n halves_1[0].push(labelItem);\n } else {\n // right or center will be put on the right side\n halves_1[1].push(labelItem);\n }\n });\n halves_1.forEach(function (half, index) {\n // step 2: reduce labels\n var maxLabelsCountForOneSide = totalHeight_1 / lineHeight_1;\n\n if (half.length > maxLabelsCountForOneSide) {\n half.sort(function (a, b) {\n // sort by percentage DESC\n return b['..percent'] - a['..percent'];\n });\n half.splice(maxLabelsCountForOneSide, half.length - maxLabelsCountForOneSide);\n } // step 3: distribute position (x and y)\n\n\n half.sort(function (a, b) {\n // sort by y ASC\n return a.y - b.y;\n });\n antiCollision(labels, half, lineHeight_1, plotRange_1, center, index);\n });\n } // 配置 labelLine\n\n\n each(items, function (item) {\n if (item && item.labelLine) {\n var distance = item.offset;\n var angle = item.angle; // 贴近圆周\n\n var startPoint = polarToCartesian(center.x, center.y, radius, angle);\n var innerPoint = polarToCartesian(center.x, center.y, radius + distance / 2, angle);\n var itemX = item.x + get(item, 'offsetX', 0);\n var itemY = item.y + get(item, 'offsetY', 0);\n var endPoint = {\n x: itemX - Math.cos(angle) * MARGIN,\n y: itemY - Math.sin(angle) * MARGIN\n };\n\n if (!isObject(item.labelLine)) {\n // labelLine: true\n item.labelLine = {};\n }\n\n item.labelLine.path = [\"M \".concat(startPoint.x), \"\".concat(startPoint.y, \" Q\").concat(innerPoint.x), \"\".concat(innerPoint.y, \" \").concat(endPoint.x), endPoint.y].join(',');\n }\n });\n}","import { each } from '@antv/util';\n/**\n * @ignore\n * 根据图形元素以及 label 的 bbox 进行调整,如果 label 超出了 shape 的 bbox 则不展示\n */\n\nexport function limitInShape(items, labels, shapes, region) {\n each(labels, function (label, index) {\n var labelBBox = label.getCanvasBBox(); // 文本有可能发生旋转\n\n var shapeBBox = shapes[index].getBBox();\n\n if (labelBBox.minX < shapeBBox.minX || labelBBox.minY < shapeBBox.minY || labelBBox.maxX > shapeBBox.maxX || labelBBox.maxY > shapeBBox.maxY) {\n label.remove(true); // 超出则不展示\n }\n });\n}","import { each } from '@antv/util';\nimport { translate } from '../../../util/transform';\n/**\n * @ignore\n * 将 label 限制在画布范围内,简单得将超出画布的 label 往画布内调整\n * @param labels\n * @param cfg\n */\n\nexport function limitInCanvas(items, labels, shapes, region) {\n each(labels, function (label) {\n var regionMinX = region.minX,\n regionMinY = region.minY,\n regionMaxX = region.maxX,\n regionMaxY = region.maxY;\n\n var _a = label.getCanvasBBox(),\n minX = _a.minX,\n minY = _a.minY,\n maxX = _a.maxX,\n maxY = _a.maxY,\n x = _a.x,\n y = _a.y,\n width = _a.width,\n height = _a.height;\n\n var finalX = x;\n var finalY = y;\n\n if (minX < regionMinX || maxX < regionMinX) {\n // 超出左侧\n finalX = regionMinX;\n }\n\n if (minY < regionMinY || maxY < regionMinY) {\n // 超出顶部\n finalY = regionMinY;\n }\n\n if (minX > regionMaxX) {\n // 整体超出右侧\n finalX = regionMaxX - width;\n } else if (maxX > regionMaxX) {\n // 超出右侧\n finalX = finalX - (maxX - regionMaxX);\n }\n\n if (minY > regionMaxY) {\n // 整体超出顶部\n finalY = regionMaxY - height;\n } else if (maxY > regionMaxY) {\n // 超出底部\n finalY = finalY - (maxY - regionMaxY);\n }\n\n if (finalX !== x || finalY !== y) {\n translate(label, finalX - x, finalY - y);\n }\n });\n}","import { each, pick } from '@antv/util';\nimport { getCoordinateBBox } from '../../../util/coordinate';\nimport { getEllipsisText } from '../../../util/text';\nimport { translate } from '../../../util/transform';\n/**\n * @ignore\n * 将 label 限制在 Plot 范围内,将超出 Plot 范围的 label 可选择进行隐藏或者移动位置\n * @param labels\n * @param cfg\n */\n\nexport function limitInPlot(items, labels, shapes, region, cfg) {\n if (labels.length <= 0) {\n return;\n }\n\n var direction = (cfg === null || cfg === void 0 ? void 0 : cfg.direction) || ['top', 'right', 'bottom', 'left'];\n var action = (cfg === null || cfg === void 0 ? void 0 : cfg.action) || 'translate';\n var margin = (cfg === null || cfg === void 0 ? void 0 : cfg.margin) || 0;\n var coordinate = labels[0].get('coordinate');\n\n if (!coordinate) {\n return;\n }\n\n var _a = getCoordinateBBox(coordinate, margin),\n regionMinX = _a.minX,\n regionMinY = _a.minY,\n regionMaxX = _a.maxX,\n regionMaxY = _a.maxY;\n\n each(labels, function (label) {\n var _a = label.getCanvasBBox(),\n minX = _a.minX,\n minY = _a.minY,\n maxX = _a.maxX,\n maxY = _a.maxY,\n x = _a.x,\n y = _a.y,\n width = _a.width,\n height = _a.height;\n\n var finalX = x;\n var finalY = y;\n\n if (direction.indexOf('left') >= 0 && (minX < regionMinX || maxX < regionMinX)) {\n // 超出左侧\n finalX = regionMinX;\n }\n\n if (direction.indexOf('top') >= 0 && (minY < regionMinY || maxY < regionMinY)) {\n // 超出顶部\n finalY = regionMinY;\n }\n\n if (direction.indexOf('right') >= 0) {\n if (minX > regionMaxX) {\n // 整体超出右侧\n finalX = regionMaxX - width;\n } else if (maxX > regionMaxX) {\n // 超出右侧\n finalX = finalX - (maxX - regionMaxX);\n }\n }\n\n if (direction.indexOf('bottom') >= 0) {\n if (minY > regionMaxY) {\n // 整体超出底部\n finalY = regionMaxY - height;\n } else if (maxY > regionMaxY) {\n // 超出底部\n finalY = finalY - (maxY - regionMaxY);\n }\n }\n\n if (finalX !== x || finalY !== y) {\n var translateX_1 = finalX - x;\n\n if (action === 'translate') {\n translate(label, translateX_1, finalY - y);\n } else if (action === 'ellipsis') {\n var textShapes = label.findAll(function (shape) {\n return shape.get('type') === 'text';\n });\n textShapes.forEach(function (textShape) {\n var style = pick(textShape.attr(), ['fontSize', 'fontFamily', 'fontWeight', 'fontStyle', 'fontVariant']);\n var textBox = textShape.getCanvasBBox();\n var text = getEllipsisText(textShape.attr('text'), textBox.width - Math.abs(translateX_1), style);\n textShape.attr('text', text);\n });\n } else {\n label.hide();\n }\n }\n });\n}","import { __values } from \"tslib\";\nimport { isObject, each, get, groupBy, isNil, filter } from '@antv/util';\nimport { polarToCartesian } from '../../../../util/graphics';\nimport { antiCollision } from './util';\n/** label text和line距离 4px */\n\nvar MARGIN = 4;\n/**\n * 配置 labelline\n * @param item PolarLabelItem\n */\n\nfunction drawLabelline(item\n/** PolarLabelItem */\n, coordinate) {\n /** 坐标圆心 */\n var center = coordinate.getCenter();\n /** 圆半径 */\n\n var radius = coordinate.getRadius();\n\n if (item && item.labelLine) {\n var angle = item.angle,\n labelOffset = item.offset; // 贴近圆周\n\n var startPoint = polarToCartesian(center.x, center.y, radius, angle);\n var itemX = item.x + get(item, 'offsetX', 0) * (Math.cos(angle) > 0 ? 1 : -1);\n var itemY = item.y + get(item, 'offsetY', 0) * (Math.sin(angle) > 0 ? 1 : -1);\n var endPoint = {\n x: itemX - Math.cos(angle) * MARGIN,\n y: itemY - Math.sin(angle) * MARGIN\n };\n var smoothConnector = item.labelLine.smooth;\n var path = [];\n var dx = endPoint.x - center.x;\n var dy = endPoint.y - center.y;\n var endAngle = Math.atan(dy / dx); // 第三象限 & 第四象限\n\n if (dx < 0) {\n endAngle += Math.PI;\n } // 默认 smooth, undefined 也为 smooth\n\n\n if (smoothConnector === false) {\n if (!isObject(item.labelLine)) {\n // labelLine: true\n item.labelLine = {};\n } // 表示弧线的方向,0 表示从起点到终点沿逆时针画弧, 1 表示顺时针\n\n\n var sweepFlag = 0; // 第一象限\n\n if (angle < 0 && angle > -Math.PI / 2 || angle > Math.PI * 1.5) {\n if (endPoint.y > startPoint.y) {\n sweepFlag = 1;\n }\n } // 第二象限\n\n\n if (angle >= 0 && angle < Math.PI / 2) {\n if (endPoint.y > startPoint.y) {\n sweepFlag = 1;\n }\n } // 第三象限\n\n\n if (angle >= Math.PI / 2 && angle < Math.PI) {\n if (startPoint.y > endPoint.y) {\n sweepFlag = 1;\n }\n } // 第四象限\n\n\n if (angle < -Math.PI / 2 || angle >= Math.PI && angle < Math.PI * 1.5) {\n if (startPoint.y > endPoint.y) {\n sweepFlag = 1;\n }\n }\n\n var distance = labelOffset / 2 > 4 ? 4 : Math.max(labelOffset / 2 - 1, 0);\n var breakPoint = polarToCartesian(center.x, center.y, radius + distance, angle); // 圆弧的结束点\n\n var breakPoint3 = polarToCartesian(center.x, center.y, radius + labelOffset / 2, endAngle);\n /**\n * @example\n * M 100 100 L100 90 A 50 50 0 0 0 150 50\n * 移动至 (100, 100), 连接到 (100, 90), 以 (50, 50) 为圆心,绘制圆弧至 (150, 50);\n * A 命令的第 4 个参数 large-arc-flag, 决定弧线是大于还是小于 180 度: 0 表示小角度弧,1 表示大角\n * 第 5 个参数: 是否顺时针绘制\n */\n // 默认小弧\n\n var largeArcFlag = 0; // step1: 移动至起点\n\n path.push(\"M \".concat(startPoint.x, \" \").concat(startPoint.y)); // step2: 连接拐点\n\n path.push(\"L \".concat(breakPoint.x, \" \").concat(breakPoint.y)); // step3: 绘制圆弧 至 结束点\n\n path.push(\"A \".concat(center.x, \" \").concat(center.y, \" 0 \").concat(largeArcFlag, \" \").concat(sweepFlag, \" \").concat(breakPoint3.x, \" \").concat(breakPoint3.y)); // step4: 连接结束点\n\n path.push(\"L \".concat(endPoint.x, \" \").concat(endPoint.y));\n } else {\n var breakPoint = polarToCartesian(center.x, center.y, radius + (labelOffset / 2 > 4 ? 4 : Math.max(labelOffset / 2 - 1, 0)), angle); // G2 旧的拉线\n // path.push('Q', `${breakPoint.x}`, `${breakPoint.y}`, `${endPoint.x}`, `${endPoint.y}`);\n\n var xSign = startPoint.x < center.x ? 1 : -1; // step1: 连接结束点\n\n path.push(\"M \".concat(endPoint.x, \" \").concat(endPoint.y));\n var slope1 = (startPoint.y - center.y) / (startPoint.x - center.x);\n var slope2 = (endPoint.y - center.y) / (endPoint.x - center.x);\n\n if (Math.abs(slope1 - slope2) > Math.pow(Math.E, -16)) {\n // step2: 绘制 curve line (起点 & 结合点与圆心的斜率不等时, 由于存在误差, 使用近似处理)\n path.push.apply(path, ['C', endPoint.x + xSign * 4, endPoint.y, 2 * breakPoint.x - startPoint.x, 2 * breakPoint.y - startPoint.y, startPoint.x, startPoint.y]);\n } // step3: 连接至起点\n\n\n path.push(\"L \".concat(startPoint.x, \" \").concat(startPoint.y));\n }\n\n item.labelLine.path = path.join(' ');\n }\n}\n/**\n * 饼图 outer-label 布局, 适用于 type = pie 且 label offset > 0 的标签\n */\n\n\nexport function pieOuterLabelLayout(originalItems, labels, shapes, region) {\n var e_1, _a;\n\n var items = filter(originalItems, function (item) {\n return !isNil(item);\n });\n /** 坐标系 */\n\n var coordinate = labels[0] && labels[0].get('coordinate');\n\n if (!coordinate) {\n return;\n }\n /** 坐标圆心 */\n\n\n var center = coordinate.getCenter();\n /** 圆半径 */\n\n var radius = coordinate.getRadius();\n /** label shapes */\n\n var labelsMap = {};\n\n try {\n for (var labels_1 = __values(labels), labels_1_1 = labels_1.next(); !labels_1_1.done; labels_1_1 = labels_1.next()) {\n var labelShape = labels_1_1.value;\n labelsMap[labelShape.get('id')] = labelShape;\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (labels_1_1 && !labels_1_1.done && (_a = labels_1[\"return\"])) _a.call(labels_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n } // note labelHeight 可以控制 label 的行高\n\n\n var labelHeight = get(items[0], 'labelHeight', 14);\n var labelOffset = get(items[0], 'offset', 0);\n\n if (labelOffset <= 0) {\n return;\n }\n\n var LEFT_HALF_KEY = 'left';\n var RIGHT_HALF_KEY = 'right'; // step 1: separate labels\n\n var separateLabels = groupBy(items, function (item) {\n return item.x < center.x ? LEFT_HALF_KEY : RIGHT_HALF_KEY;\n });\n var start = coordinate.start,\n end = coordinate.end; // step2: calculate totalHeight\n\n var totalHeight = Math.min((radius + labelOffset + labelHeight) * 2, coordinate.getHeight());\n var totalR = totalHeight / 2;\n /** labels 容器的范围(后续根据组件的布局设计进行调整) */\n\n var labelsContainerRange = {\n minX: start.x,\n maxX: end.x,\n minY: center.y - totalR,\n maxY: center.y + totalR\n }; // step 3: antiCollision\n\n each(separateLabels, function (half, key) {\n var maxLabelsCountForOneSide = Math.floor(totalHeight / labelHeight);\n\n if (half.length > maxLabelsCountForOneSide) {\n half.sort(function (a, b) {\n // sort by percentage DESC\n return b.percent - a.percent;\n });\n each(half, function (labelItem, idx) {\n if (idx + 1 > maxLabelsCountForOneSide) {\n labelsMap[labelItem.id].set('visible', false);\n labelItem.invisible = true;\n }\n });\n }\n\n antiCollision(half, labelHeight, labelsContainerRange);\n });\n each(separateLabels, function (half, key) {\n each(half, function (item) {\n var isRight = key === RIGHT_HALF_KEY;\n var labelShape = labelsMap[item.id]; // because group could not effect content-shape, should set content-shape position manually\n\n var content = labelShape.getChildByIndex(0); // textShape 发生过调整\n\n if (content) {\n var r = radius + labelOffset; // (x - cx)^2 + (y - cy)^2 = totalR^2\n\n var dy = item.y - center.y;\n var rPow2 = Math.pow(r, 2);\n var dyPow2 = Math.pow(dy, 2);\n var dxPow2 = rPow2 - dyPow2 > 0 ? rPow2 - dyPow2 : 0;\n var dx = Math.sqrt(dxPow2);\n var dx_offset = Math.abs(Math.cos(item.angle) * r);\n\n if (!isRight) {\n // left\n item.x = center.x - Math.max(dx, dx_offset);\n } else {\n // right\n item.x = center.x + Math.max(dx, dx_offset);\n }\n } // adjust labelShape\n\n\n if (content) {\n content.attr('y', item.y);\n content.attr('x', item.x);\n }\n\n drawLabelline(item, coordinate);\n });\n });\n}","import { BBox } from '../../../util/bbox';\nimport { isContrastColorWhite } from '../../../util/color';\nexport function adjustColor(items, labels, shapes) {\n if (shapes.length === 0) {\n return;\n }\n\n var element = shapes[0].get('element');\n var theme = element.geometry.theme;\n\n var _a = theme.labels || {},\n fillColorLight = _a.fillColorLight,\n fillColorDark = _a.fillColorDark;\n\n shapes.forEach(function (shape, index) {\n var label = labels[index];\n var textShape = label.find(function (el) {\n return el.get('type') === 'text';\n });\n var shapeBBox = BBox.fromObject(shape.getBBox());\n var textBBox = BBox.fromObject(textShape.getCanvasBBox());\n var overflow = !shapeBBox.contains(textBBox);\n var bgColor = shape.attr('fill');\n var fillWhite = isContrastColorWhite(bgColor);\n\n if (!overflow) {\n if (fillWhite) {\n if (fillColorLight) {\n textShape.attr('fill', fillColorLight);\n }\n } else {\n if (fillColorDark) {\n textShape.attr('fill', fillColorDark);\n }\n }\n } else {\n // 出现溢出直接应用 overflowLabel 样式\n textShape.attr(theme.overflowLabels.style);\n }\n });\n}","import { __read, __spreadArray } from \"tslib\";\nimport { each, groupBy, uniq, map, size } from '@antv/util';\nimport { checkShapeOverlap } from '../../util';\n\nfunction filterLabel(labels) {\n var MAX_CNT = 500; // 最多显示 500 个数据标签\n\n var filteredLabels = [];\n var pages = Math.max(Math.floor(labels.length / MAX_CNT), 1);\n each(labels, function (label, idx) {\n if (idx % pages === 0) {\n filteredLabels.push(label);\n } else {\n label.set('visible', false);\n }\n });\n return filteredLabels;\n}\n/**\n * 为 interval geometry 定制的数据标签重叠自动隐藏布局方法\n * @param items\n * @param labels\n * @param shapes\n */\n\n\nexport function intervalHideOverlap(items, labels, shapes) {\n var _a;\n\n if (shapes.length === 0) {\n return;\n }\n\n var element = (_a = shapes[0]) === null || _a === void 0 ? void 0 : _a.get('element');\n var geometry = element === null || element === void 0 ? void 0 : element.geometry;\n\n if (!geometry || geometry.type !== 'interval') {\n return;\n }\n\n var filteredLabels = filterLabel(labels);\n\n var _b = __read(geometry.getXYFields(), 1),\n xField = _b[0];\n\n var dones = [];\n var todo = [];\n var groupedLabels = groupBy(filteredLabels, function (label) {\n return label.get('data')[xField];\n });\n var xValues = uniq(map(filteredLabels, function (label) {\n return label.get('data')[xField];\n }));\n var xValue;\n filteredLabels.forEach(function (label) {\n label.set('visible', true);\n });\n\n var addCurrentGroup = function addCurrentGroup(curItems) {\n if (curItems) {\n if (curItems.length) {\n // 最后一个\n todo.push(curItems.pop());\n }\n\n todo.push.apply(todo, __spreadArray([], __read(curItems), false));\n }\n };\n\n if (size(xValues) > 0) {\n // 第一组\n xValue = xValues.shift();\n addCurrentGroup(groupedLabels[xValue]);\n }\n\n if (size(xValues) > 0) {\n // 最后一组\n xValue = xValues.pop();\n addCurrentGroup(groupedLabels[xValue]);\n }\n\n each(xValues.reverse(), function (val) {\n // 其他组\n addCurrentGroup(groupedLabels[val]);\n });\n\n while (todo.length > 0) {\n var cur = todo.shift();\n\n if (cur.get('visible')) {\n if (checkShapeOverlap(cur, dones)) {\n cur.set('visible', false);\n } else {\n dones.push(cur);\n }\n }\n }\n}","import { __values } from \"tslib\";\nimport { each, get, isNil, deepMix, groupBy } from '@antv/util';\nimport { polarToCartesian } from '../../../../util/graphics';\nimport { antiCollision } from './util';\nimport { translate } from '../../../../util/transform';\n/** 拐点偏移量, 暂不可配置 */\n\nvar INFLECTION_OFFSET = 4;\n/** 标签偏移量, distance between label and edge: offsetX */\n\nvar LABEL_OFFSET_X = 4;\n/** 标签与牵引线的偏移量 */\n\nvar LABEL_TEXT_LINE_OFFSET = 4;\n\nfunction drawLabelline(item, coordinate, inRight) {\n /** 坐标圆心 */\n var center = coordinate.getCenter();\n /** 圆半径 */\n\n var radius = coordinate.getRadius();\n var startPoint = {\n x: item.x - (inRight ? LABEL_TEXT_LINE_OFFSET : -LABEL_TEXT_LINE_OFFSET),\n y: item.y\n };\n var inflectionPoint = polarToCartesian(center.x, center.y, radius + INFLECTION_OFFSET, item.angle);\n var p1 = {\n x: startPoint.x,\n y: startPoint.y\n };\n var p2 = {\n x: inflectionPoint.x,\n y: inflectionPoint.y\n };\n var endPoint = polarToCartesian(center.x, center.y, radius, item.angle);\n var path = ''; // 文本被调整下去了,则添加拐点连接线\n\n if (startPoint.y !== inflectionPoint.y) {\n var offset = inRight ? 4 : -4;\n p1.y = startPoint.y;\n /** 是否在第一象限 */\n\n if (item.angle < 0 && item.angle >= -Math.PI / 2) {\n p1.x = Math.max(inflectionPoint.x, startPoint.x - offset);\n\n if (startPoint.y < inflectionPoint.y) {\n p2.y = p1.y;\n } else {\n p2.y = inflectionPoint.y;\n p2.x = Math.max(p2.x, p1.x - offset);\n }\n }\n /** 是否在 第二象限 */\n\n\n if (item.angle > 0 && item.angle < Math.PI / 2) {\n p1.x = Math.max(inflectionPoint.x, startPoint.x - offset);\n\n if (startPoint.y > inflectionPoint.y) {\n p2.y = p1.y;\n } else {\n p2.y = inflectionPoint.y;\n p2.x = Math.max(p2.x, p1.x - offset);\n }\n }\n /** 是否在 第三象限 */\n\n\n if (item.angle > Math.PI / 2) {\n p1.x = Math.min(inflectionPoint.x, startPoint.x - offset);\n\n if (startPoint.y > inflectionPoint.y) {\n p2.y = p1.y;\n } else {\n p2.y = inflectionPoint.y;\n p2.x = Math.min(p2.x, p1.x - offset);\n }\n }\n /** 是否在 第四象限 */\n\n\n if (item.angle < -Math.PI / 2) {\n p1.x = Math.min(inflectionPoint.x, startPoint.x - offset);\n\n if (startPoint.y < inflectionPoint.y) {\n p2.y = p1.y;\n } else {\n p2.y = inflectionPoint.y;\n p2.x = Math.min(p2.x, p1.x - offset);\n }\n }\n }\n\n path = [\"M \".concat(startPoint.x, \",\").concat(startPoint.y), \"L \".concat(p1.x, \",\").concat(p1.y), \"L \".concat(p2.x, \",\").concat(p2.y), \"L \".concat(inflectionPoint.x, \",\").concat(inflectionPoint.y), \"L \".concat(endPoint.x, \",\").concat(endPoint.y)].join(' ');\n item.labelLine = deepMix({}, item.labelLine, {\n path: path\n });\n}\n/**\n * 饼图标签 spider 布局, 只适用于 pie-spider 的标签类型\n * region 应该是 labelsRenderer 容器的范围限制(便于后续组件间布局)\n */\n\n\nexport function pieSpiderLabelLayout(items, labels, shapes, region) {\n var e_1, _a;\n /** 坐标系 */\n\n\n var coordinate = labels[0] && labels[0].get('coordinate');\n\n if (!coordinate) {\n return;\n }\n /** 坐标圆心 */\n\n\n var center = coordinate.getCenter();\n /** 圆半径 */\n\n var radius = coordinate.getRadius();\n /** label shapes */\n\n var labelsMap = {};\n\n try {\n for (var labels_1 = __values(labels), labels_1_1 = labels_1.next(); !labels_1_1.done; labels_1_1 = labels_1.next()) {\n var labelShape = labels_1_1.value;\n labelsMap[labelShape.get('id')] = labelShape;\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (labels_1_1 && !labels_1_1.done && (_a = labels_1[\"return\"])) _a.call(labels_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n var labelHeight = get(items[0], 'labelHeight', 14);\n var labelOffset = Math.max(get(items[0], 'offset', 0), INFLECTION_OFFSET); // step 1: adjust items to spider\n\n each(items, function (item) {\n if (!item) return;\n var label = get(labelsMap, [item.id]);\n if (!label) return;\n var inRight = item.x > center.x || item.x === center.x && item.y > center.y;\n var offsetX = !isNil(item.offsetX) ? item.offsetX : LABEL_OFFSET_X;\n var inflectionPoint = polarToCartesian(center.x, center.y, radius + INFLECTION_OFFSET, item.angle);\n var totalOffset = labelOffset + offsetX;\n item.x = center.x + (inRight ? 1 : -1) * (radius + totalOffset);\n item.y = inflectionPoint.y;\n });\n var start = coordinate.start,\n end = coordinate.end;\n var LEFT_HALF_KEY = 'left';\n var RIGHT_HALF_KEY = 'right'; // step 1: separate labels\n\n var separateLabels = groupBy(items, function (item) {\n return item.x < center.x ? LEFT_HALF_KEY : RIGHT_HALF_KEY;\n }); // step2: calculate totalHeight\n\n var totalHeight = (radius + labelOffset) * 2 + labelHeight;\n each(separateLabels, function (half) {\n var halfHeight = half.length * labelHeight;\n\n if (halfHeight > totalHeight) {\n totalHeight = Math.min(halfHeight, Math.abs(start.y - end.y));\n }\n });\n /** labels 容器的范围(后续根据组件的布局设计进行调整) */\n\n var labelsContainerRange = {\n minX: start.x,\n maxX: end.x,\n minY: center.y - totalHeight / 2,\n maxY: center.y + totalHeight / 2\n }; // step 3: antiCollision\n\n each(separateLabels, function (half, key) {\n var maxLabelsCountForOneSide = totalHeight / labelHeight;\n\n if (half.length > maxLabelsCountForOneSide) {\n half.sort(function (a, b) {\n // sort by percentage DESC\n return b.percent - a.percent;\n });\n each(half, function (labelItem, idx) {\n if (idx > maxLabelsCountForOneSide) {\n labelsMap[labelItem.id].set('visible', false);\n labelItem.invisible = true;\n }\n });\n }\n\n antiCollision(half, labelHeight, labelsContainerRange);\n });\n var startY = labelsContainerRange.minY;\n var endY = labelsContainerRange.maxY; // step4: applyTo labels and adjust labelLines\n\n each(separateLabels, function (half, key) {\n var inRight = key === RIGHT_HALF_KEY;\n each(half, function (item) {\n var label = get(labelsMap, item && [item.id]);\n\n if (!label) {\n return;\n } // out of range, hidden\n\n\n if (item.y < startY || item.y > endY) {\n label.set('visible', false);\n return;\n }\n\n var labelContent = label.getChildByIndex(0);\n var box = labelContent.getCanvasBBox();\n var originalPos = {\n x: inRight ? box.x : box.maxX,\n y: box.y + box.height / 2\n /** vertical-align: middle */\n\n };\n translate(labelContent, item.x - originalPos.x\n /** 从 pos.x 移动到 item.x */\n , item.y - originalPos.y); // adjust labelLines\n\n if (item.labelLine) {\n drawLabelline(item, coordinate, inRight);\n }\n });\n });\n}","import { isNil } from '@antv/util';\n/**\n * @ignore\n * 单个 shape 动画\n * 渐现动画\n * @param shape 执行动画的图形元素\n * @param animateCfg 动画配置\n * @param cfg 额外信息\n */\n\nexport function fadeIn(shape, animateCfg, cfg) {\n var endState = {\n fillOpacity: isNil(shape.attr('fillOpacity')) ? 1 : shape.attr('fillOpacity'),\n strokeOpacity: isNil(shape.attr('strokeOpacity')) ? 1 : shape.attr('strokeOpacity'),\n opacity: isNil(shape.attr('opacity')) ? 1 : shape.attr('opacity')\n };\n shape.attr({\n fillOpacity: 0,\n strokeOpacity: 0,\n opacity: 0\n });\n shape.animate(endState, animateCfg);\n}\n/**\n * @ignore\n * 单个 shape 动画\n * 渐隐动画\n * @param shape 执行动画的图形元素\n * @param animateCfg 动画配置\n * @param cfg 额外信息\n */\n\nexport function fadeOut(shape, animateCfg, cfg) {\n var endState = {\n fillOpacity: 0,\n strokeOpacity: 0,\n opacity: 0\n };\n var easing = animateCfg.easing,\n duration = animateCfg.duration,\n delay = animateCfg.delay;\n shape.animate(endState, duration, easing, function () {\n shape.remove(true);\n }, delay);\n}","import { doScaleAnimate } from './util';\n/**\n * @ignore\n * 入场动画\n * x 方向的生长\n * @param element 执行动画的元素\n * @param animateCfg 动画配置\n * @param cfg 额外信息\n */\n\nexport function growInX(element, animateCfg, cfg) {\n var coordinate = cfg.coordinate,\n minYPoint = cfg.minYPoint;\n doScaleAnimate(element, animateCfg, coordinate, minYPoint, 'x');\n}\n/**\n * @ignore\n * 入场动画\n * y 轴方向上的生长\n * @param element 执行动画的元素\n * @param animateCfg 动画配置\n * @param cfg 额外信息\n */\n\nexport function growInY(element, animateCfg, cfg) {\n var coordinate = cfg.coordinate,\n minYPoint = cfg.minYPoint;\n doScaleAnimate(element, animateCfg, coordinate, minYPoint, 'y');\n}\n/**\n * @ignore\n * 入场\n * 中心点的向四周的生长动画\n * @param element 执行动画的元素\n * @param animateCfg 动画配置\n * @param cfg 额外信息\n */\n\nexport function growInXY(element, animateCfg, cfg) {\n var coordinate = cfg.coordinate,\n minYPoint = cfg.minYPoint;\n doScaleAnimate(element, animateCfg, coordinate, minYPoint, 'xy');\n}","import { ext } from '@antv/matrix-util';\n/**\n * @ignore\n * 沿着 x 方向放大的动画\n * @param shape\n * @param animateCfg\n * @param shapeModel\n */\n\nexport function scaleInX(shape, animateCfg, cfg) {\n var box = shape.getBBox();\n var mappingData = shape.get('origin').mappingData;\n var points = mappingData.points; // x 数值如果为负值,那么应该从右往左生长\n\n var x = points[0].y - points[1].y > 0 ? box.maxX : box.minX;\n var y = (box.minY + box.maxY) / 2;\n shape.applyToMatrix([x, y, 1]);\n var matrix = ext.transform(shape.getMatrix(), [['t', -x, -y], ['s', 0.01, 1], ['t', x, y]]);\n shape.setMatrix(matrix);\n shape.animate({\n matrix: ext.transform(shape.getMatrix(), [['t', -x, -y], ['s', 100, 1], ['t', x, y]])\n }, animateCfg);\n}\n/**\n * @ignore\n * 沿着 y 方向放大的动画\n * @param shape\n * @param animateCfg\n * @param shapeModel\n */\n\nexport function scaleInY(shape, animateCfg, cfg) {\n var box = shape.getBBox();\n var mappingData = shape.get('origin').mappingData;\n var x = (box.minX + box.maxX) / 2;\n var points = mappingData.points; // 数值如果为负值,那么应该从上往下生长,通过 shape 的关键点进行判断\n\n var y = points[0].y - points[1].y <= 0 ? box.maxY : box.minY;\n shape.applyToMatrix([x, y, 1]);\n var matrix = ext.transform(shape.getMatrix(), [['t', -x, -y], ['s', 1, 0.01], ['t', x, y]]);\n shape.setMatrix(matrix);\n shape.animate({\n matrix: ext.transform(shape.getMatrix(), [['t', -x, -y], ['s', 1, 100], ['t', x, y]])\n }, animateCfg);\n}","import { __assign } from \"tslib\";\nimport { getCoordinateClipCfg } from '../../util/coordinate';\n/**\n * @ignore\n * 整体动画\n * 划入入场动画效果\n * @todo 放两张直角坐标系和极坐标系的图\n * @param element 参与动画的图形元素\n * @param animateCfg 动画配置\n * @param cfg 额外信息\n */\n\nexport function waveIn(element, animateCfg, cfg) {\n var _a = getCoordinateClipCfg(cfg.coordinate, 20),\n type = _a.type,\n startState = _a.startState,\n endState = _a.endState; // 根据坐标系类型获取整体的剪切区域配置信息\n\n\n var clipShape = element.setClip({\n type: type,\n attrs: startState\n }); // 为 shape 设置剪切区域\n // 更新 动画 获取了 toAttrs 需要重新更新上去\n\n if (cfg.toAttrs) {\n element.attr(cfg.toAttrs);\n } // 对剪切图形做动画\n\n\n clipShape.animate(endState, __assign(__assign({}, animateCfg), {\n callback: function callback() {\n if (element && !element.get('destroyed')) {\n element.set('clipShape', null);\n }\n\n clipShape.remove(true); // 动画结束需要将剪切图形销毁\n }\n }));\n}","/**\n * @ignore\n * 坐标移动动画\n * @param shape 图形\n * @param animateCfg\n * @param cfg\n */\nexport function positionUpdate(shape, animateCfg, cfg) {\n var toAttrs = cfg.toAttrs; // @ts-ignore\n\n var x = toAttrs.x; // @ts-ignore\n\n var y = toAttrs.y; // @ts-ignore\n\n delete toAttrs.x; // @ts-ignore\n\n delete toAttrs.y;\n shape.attr(toAttrs);\n shape.animate({\n x: x,\n y: y\n }, animateCfg);\n}","/**\n * @ignore\n * 入场动画\n * path 的入场动画\n * @param element 执行动画的元素\n * @param animateCfg 动画配置\n * @param cfg 额外信息\n */\nexport function pathIn(element, animateCfg, cfg) {\n // @ts-ignore\n var length = element.getTotalLength(); // 设置虚线样式\n\n element.attr('lineDash', [length]);\n element.animate(function (ratio) {\n return {\n // 对虚线偏移量做动画\n lineDashOffset: (1 - ratio) * length\n };\n }, animateCfg);\n}","/**\n * @description 扩展方法,提供 gl-matrix 为提供的方法\n * */\nimport { mat3, vec2 } from 'gl-matrix';\nexport function leftTranslate(out, a, v) {\n var transMat = [0, 0, 0, 0, 0, 0, 0, 0, 0];\n mat3.fromTranslation(transMat, v);\n return mat3.multiply(out, transMat, a);\n}\nexport function leftRotate(out, a, rad) {\n var rotateMat = [0, 0, 0, 0, 0, 0, 0, 0, 0];\n mat3.fromRotation(rotateMat, rad);\n return mat3.multiply(out, rotateMat, a);\n}\nexport function leftScale(out, a, v) {\n var scaleMat = [0, 0, 0, 0, 0, 0, 0, 0, 0];\n mat3.fromScaling(scaleMat, v);\n return mat3.multiply(out, scaleMat, a);\n}\n\nfunction leftMultiply(out, a, a1) {\n return mat3.multiply(out, a1, a);\n}\n/**\n * 根据 actions 来做 transform\n * @param m\n * @param actions\n */\n\n\nexport function transform(m, actions) {\n var matrix = m ? [].concat(m) : [1, 0, 0, 0, 1, 0, 0, 0, 1];\n\n for (var i = 0, len = actions.length; i < len; i++) {\n var action = actions[i];\n\n switch (action[0]) {\n case 't':\n leftTranslate(matrix, matrix, [action[1], action[2]]);\n break;\n\n case 's':\n leftScale(matrix, matrix, [action[1], action[2]]);\n break;\n\n case 'r':\n leftRotate(matrix, matrix, action[1]);\n break;\n\n case 'm':\n leftMultiply(matrix, matrix, action[1]);\n break;\n\n default:\n break;\n }\n }\n\n return matrix;\n}\n/**\n * 向量 v1 到 向量 v2 夹角的方向\n * @param {Array} v1 向量\n * @param {Array} v2 向量\n * @return {Boolean} >= 0 顺时针 < 0 逆时针\n */\n\nexport function direction(v1, v2) {\n return v1[0] * v2[1] - v2[0] * v1[1];\n}\n/**\n * 二维向量 v1 到 v2 的夹角\n * @param v1\n * @param v2\n * @param direct\n */\n\nexport function angleTo(v1, v2, direct) {\n var ang = vec2.angle(v1, v2);\n var angleLargeThanPI = direction(v1, v2) >= 0;\n\n if (direct) {\n if (angleLargeThanPI) {\n return Math.PI * 2 - ang;\n }\n\n return ang;\n }\n\n if (angleLargeThanPI) {\n return ang;\n }\n\n return Math.PI * 2 - ang;\n}\n/**\n * 计算二维向量的垂直向量\n * @param out\n * @param v\n * @param flag\n */\n\nexport function vertical(out, v, flag) {\n if (flag) {\n out[0] = v[1];\n out[1] = -1 * v[0];\n } else {\n out[0] = -1 * v[1];\n out[1] = v[0];\n }\n\n return out;\n}","import { __assign, __extends, __spreadArrays } from \"tslib\";\nimport { Chart } from '@antv/g2';\nimport { each } from '@antv/util';\nimport EE from '@antv/event-emitter';\nimport { bind } from 'size-sensor';\nimport { getContainerSize, getAllElementsRecursively, deepAssign, pick } from '../utils';\nvar SOURCE_ATTRIBUTE_NAME = 'data-chart-source-type';\n/** plot 图表容器的配置 */\n\nexport var PLOT_CONTAINER_OPTIONS = ['padding', 'appendPadding', 'renderer', 'pixelRatio', 'syncViewPadding', 'supportCSSTransform', 'limitInPlot'];\n/**\n * 所有 plot 的基类\n */\n\nvar Plot =\n/** @class */\nfunction (_super) {\n __extends(Plot, _super);\n\n function Plot(container, options) {\n var _this = _super.call(this) || this;\n\n _this.container = typeof container === 'string' ? document.getElementById(container) : container;\n _this.options = deepAssign({}, _this.getDefaultOptions(), options);\n\n _this.createG2();\n\n _this.bindEvents();\n\n return _this;\n }\n /**\n * 获取默认的 options 配置项\n * 每个组件都可以复写\n */\n\n\n Plot.getDefaultOptions = function () {\n return {\n renderer: 'canvas',\n xAxis: {\n nice: true,\n label: {\n autoRotate: false,\n autoHide: {\n type: 'equidistance',\n cfg: {\n minGap: 6\n }\n }\n }\n },\n yAxis: {\n nice: true,\n label: {\n autoHide: true,\n autoRotate: false\n }\n },\n animation: true\n };\n };\n /**\n * 创建 G2 实例\n */\n\n\n Plot.prototype.createG2 = function () {\n var _a = this.options,\n width = _a.width,\n height = _a.height,\n defaultInteractions = _a.defaultInteractions;\n this.chart = new Chart(__assign(__assign(__assign(__assign({\n container: this.container,\n autoFit: false\n }, this.getChartSize(width, height)), {\n localRefresh: false\n }), pick(this.options, PLOT_CONTAINER_OPTIONS)), {\n defaultInteractions: defaultInteractions\n })); // 给容器增加标识,知道图表的来源区别于 G2\n\n this.container.setAttribute(SOURCE_ATTRIBUTE_NAME, 'G2Plot');\n };\n /**\n * 计算默认的 chart 大小。逻辑简化:如果存在 width 或 height,则直接使用,否则使用容器大小\n * @param width\n * @param height\n */\n\n\n Plot.prototype.getChartSize = function (width, height) {\n var chartSize = getContainerSize(this.container);\n return {\n width: width || chartSize.width || 400,\n height: height || chartSize.height || 400\n };\n };\n /**\n * 绑定代理所有 G2 的事件\n */\n\n\n Plot.prototype.bindEvents = function () {\n var _this = this;\n\n if (this.chart) {\n this.chart.on('*', function (e) {\n if (e === null || e === void 0 ? void 0 : e.type) {\n _this.emit(e.type, e);\n }\n });\n }\n };\n /**\n * 获取默认的 options 配置项\n * 每个组件都可以复写\n */\n\n\n Plot.prototype.getDefaultOptions = function () {\n return Plot.getDefaultOptions();\n };\n /**\n * 绘制\n */\n\n\n Plot.prototype.render = function () {\n // 暴力处理,先清空再渲染,需要 G2 层自行做好更新渲染\n this.chart.clear(); // 因为子 view 会继承父 view 的 options 配置(包括 legend,所以会导致 legend 重复创建)\n // 所以这里给 chart 实例的 options 配置清空\n // 最好的解法是在 G2 view.clear 方法的时候,重置 options 配置。或者提供方法去 resetOptions\n // #1684 理论上在多 view 图形上,只要存在 custom legend,都存在类似问题(子弹图、双轴图)\n // @ts-ignore\n\n this.chart.options = {\n data: [],\n animate: true\n };\n this.chart.views = []; // 删除已有的 views\n // 执行 adaptor\n\n this.execAdaptor(); // 渲染\n\n this.chart.render(); // 绑定\n\n this.bindSizeSensor();\n };\n /**\n * 更新: 更新配置且重新渲染\n * @param options\n */\n\n\n Plot.prototype.update = function (options) {\n this.updateOption(options);\n this.render();\n };\n /**\n * 更新配置\n * @param options\n */\n\n\n Plot.prototype.updateOption = function (options) {\n this.options = deepAssign({}, this.options, options);\n };\n /**\n * 设置状态\n * @param type 状态类型,支持 'active' | 'inactive' | 'selected' 三种\n * @param conditions 条件,支持数组\n * @param status 是否激活,默认 true\n */\n\n\n Plot.prototype.setState = function (type, condition, status) {\n if (status === void 0) {\n status = true;\n }\n\n var elements = getAllElementsRecursively(this.chart);\n each(elements, function (ele) {\n if (condition(ele.getData())) {\n ele.setState(type, status);\n }\n });\n };\n /**\n * 获取状态\n */\n\n\n Plot.prototype.getStates = function () {\n var elements = getAllElementsRecursively(this.chart);\n var stateObjects = [];\n each(elements, function (element) {\n var data = element.getData();\n var states = element.getStates();\n each(states, function (state) {\n stateObjects.push({\n data: data,\n state: state,\n geometry: element.geometry,\n element: element\n });\n });\n });\n return stateObjects;\n };\n /**\n * 更新数据\n * @override\n * @param options\n */\n\n\n Plot.prototype.changeData = function (data) {\n // @ts-ignore\n this.update({\n data: data\n }); // TODO: 临时方案,最好使用下面的方式去更新数据\n // this.chart.changeData(data);\n };\n /**\n * 修改画布大小\n * @param width\n * @param height\n */\n\n\n Plot.prototype.changeSize = function (width, height) {\n this.chart.changeSize(width, height);\n };\n /**\n * 增加图表标注。通过 id 标识,如果匹配到,就做更新\n */\n\n\n Plot.prototype.addAnnotations = function (annotations, view) {\n view = view ? view : this.chart;\n\n var incoming = __spreadArrays(annotations);\n\n var controller = view.getController('annotation');\n var current = controller.getComponents().map(function (co) {\n return co.extra;\n });\n controller.clear(true);\n\n var _loop_1 = function _loop_1(i) {\n var annotation = current[i];\n var findIndex = incoming.findIndex(function (item) {\n return item.id && item.id === annotation.id;\n });\n\n if (findIndex !== -1) {\n annotation = deepAssign({}, annotation, incoming[findIndex]);\n incoming.splice(findIndex, 1);\n }\n\n controller.annotation(annotation);\n };\n\n for (var i = 0; i < current.length; i++) {\n _loop_1(i);\n }\n\n incoming.forEach(function (annotation) {\n return controller.annotation(annotation);\n });\n view.render(true);\n };\n /**\n * 删除图表标注。通过 id 标识,如果匹配到,就做删除\n */\n\n\n Plot.prototype.removeAnnotations = function (annotations) {\n var controller = this.chart.getController('annotation');\n var current = controller.getComponents().map(function (co) {\n return co.extra;\n });\n controller.clear(true);\n\n var _loop_2 = function _loop_2(i) {\n var annotation = current[i];\n\n if (!annotations.find(function (item) {\n return item.id && item.id === annotation.id;\n })) {\n controller.annotation(annotation);\n }\n };\n\n for (var i = 0; i < current.length; i++) {\n _loop_2(i);\n }\n\n this.chart.render(true);\n };\n /**\n * 销毁\n */\n\n\n Plot.prototype.destroy = function () {\n // 取消 size-sensor 的绑定\n this.unbindSizeSensor(); // G2 的销毁\n\n this.chart.destroy(); // 清空已经绑定的事件\n\n this.off();\n this.container.removeAttribute(SOURCE_ATTRIBUTE_NAME);\n };\n /**\n * 执行 adaptor 操作\n */\n\n\n Plot.prototype.execAdaptor = function () {\n var adaptor = this.getSchemaAdaptor();\n var _a = this.options,\n padding = _a.padding,\n appendPadding = _a.appendPadding; // 更新 padding\n\n this.chart.padding = padding; // 更新 appendPadding\n\n this.chart.appendPadding = appendPadding; // 转化成 G2 API\n\n adaptor({\n chart: this.chart,\n options: this.options\n });\n };\n /**\n * 当图表容器大小变化的时候,执行的函数\n */\n\n\n Plot.prototype.triggerResize = function () {\n this.chart.forceFit();\n };\n /**\n * 绑定 dom 容器大小变化的事件\n */\n\n\n Plot.prototype.bindSizeSensor = function () {\n var _this = this;\n\n if (this.unbind) {\n return;\n }\n\n var _a = this.options.autoFit,\n autoFit = _a === void 0 ? true : _a;\n\n if (autoFit) {\n this.unbind = bind(this.container, function () {\n // 获取最新的宽高信息\n var _a = getContainerSize(_this.container),\n width = _a.width,\n height = _a.height; // 主要是防止绑定的时候触发 resize 回调\n\n\n if (width !== _this.chart.width || height !== _this.chart.height) {\n _this.triggerResize();\n }\n });\n }\n };\n /**\n * 取消绑定\n */\n\n\n Plot.prototype.unbindSizeSensor = function () {\n if (this.unbind) {\n this.unbind();\n this.unbind = undefined;\n }\n };\n\n return Plot;\n}(EE);\n\nexport { Plot };","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import { CLOSE_DATE, OPEN_DATE, SECOND_CLOSE_DATE, SECOND_OPEN_DATE, WC_NAME } from '../utils/Constants'\nimport React, { createContext, useContext, useLayoutEffect, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { useAuthContext } from './AuthContext'\nimport PageLoading from '../misc/PageLoading'\n\nexport const BracketPeriod = Object.freeze({\n Closed: \"closed\",\n Group: 'group',\n Preview: \"preview\",\n Open: \"open\",\n SecondChance: \"second-chance\",\n})\n\nconst RootContext = createContext({\n bracketPeriod: BracketPeriod.Closed\n})\n\nexport const getBracketPeriod = () => {\n const now = Date.now()\n\n if (now < Date.parse(OPEN_DATE.computer)) {\n return BracketPeriod.Preview\n } else if (now < Date.parse(CLOSE_DATE.computer)) {\n return BracketPeriod.Open\n } else if (now < Date.parse(SECOND_OPEN_DATE.computer)) {\n return BracketPeriod.Group\n } else if (now < Date.parse(SECOND_CLOSE_DATE.computer)) {\n return BracketPeriod.SecondChance\n } else {\n return BracketPeriod.Closed\n }\n}\n\nexport const RootContextProvider = ({ children }) => {\n const [initialized, setInitialized] = useState(false)\n\n // root context\n const [bracketPeriod, setBracketPeriod] = useState(getBracketPeriod())\n\n // state context\n const [pool, setPool] = useState(null)\n const [bracketsLoadError, setBracketsLoadError] = useState(null)\n const [bracketsLoaded, setBracketsLoaded] = useState(false)\n const [bracketsLoading, setBracketsLoading] = useState(false)\n const [primaryBrackets, setPrimaryBrackets] = useState([])\n const [primaryPagy, setPrimaryPagy] = useState({})\n const [secondChanceBrackets, setSecondChanceBrackets] = useState([])\n const [secondChancePagy, setSecondChancePagy] = useState({})\n\n const { authorizationHeaders, isAdmin, poolToken, userState } = useAuthContext()\n const navigate = useNavigate()\n\n useLayoutEffect(() => {\n if (userState === undefined) return\n\n const done = (newPool) => {\n setPool(newPool)\n if (location.search.includes('pool') || location.href === `${location.origin}/`)\n navigate('/leaderboard')\n setTimeout(() => setInitialized(true), 100)\n }\n\n if (poolToken) {\n const userPool = userState?.pools.find(p => p.token === poolToken)\n if (userPool) {\n done(userPool)\n } else {\n fetch(encodeURI(`/api/v1/pool?token=${poolToken}`), {\n credentials: 'same-origin',\n headers: authorizationHeaders,\n })\n .then(response => {\n if (response.ok) {\n return response.json();\n } else {\n throw(response);\n }\n })\n .then(body => {\n done(body)\n })\n .catch(() => {\n const poolName = location.search.match(/pool=(.+):/)?.[1]\n if (poolName){\n navigate(`/pools?tab=enter&name=${poolName}`)\n }\n localStorage.removeItem('PoolToken')\n setInitialized(true)\n })\n }\n } else if (userState?.pools.length) {\n done(userState.pools[0])\n } else {\n setInitialized(true)\n }\n }, [userState])\n\n const handleSetBracketPeriod = (value) => {\n if (isAdmin) {\n setBracketPeriod(value)\n }\n }\n\n const handlePoolChange = (poolObject = undefined) => {\n if (poolObject) {\n setPool(poolObject)\n localStorage.setItem('PoolToken', poolObject.token)\n } else {\n setPool(null)\n localStorage.removeItem('PoolToken')\n }\n navigate(poolObject ? '/leaderboard' : '/')\n setBracketsLoaded(false)\n setPrimaryBrackets([])\n setSecondChanceBrackets([])\n }\n\n const fetchLeaderboard = (secondChance, search = '', page = 1, pageSize = 100, sort = 'rank', order = 'ascend') => {\n setBracketsLoading(true)\n const pagination = `page=${page}&pageSize=${pageSize}&sort=${sort}&order=${order}&search=${search}&secondChance=${secondChance}`\n fetch(encodeURI(`/api/v1/leaderboard/${WC_NAME}${pool ? `?pool=${pool.id}&${pagination}` : `?${pagination}`}`), {\n credentials: 'same-origin',\n headers: authorizationHeaders,\n })\n .then(response => {\n if (response.ok) {\n return response.json();\n } else {\n throw(response);\n }\n })\n .then(body => {\n setPrimaryBrackets(body.primary)\n setSecondChanceBrackets(body.second_chance)\n setBracketsLoaded(true)\n setBracketsLoading(false)\n setPrimaryPagy(body.primary_pagy)\n setSecondChancePagy(body.second_chance_pagy)\n })\n .catch(error => {\n setBracketsLoadError(error)\n setBracketsLoading(false)\n })\n }\n\n const value = {\n bracketPeriod,\n bracketsLoadError,\n bracketsLoaded,\n bracketsLoading,\n fetchLeaderboard,\n handlePoolChange,\n pool,\n primaryBrackets,\n primaryPagy,\n secondChanceBrackets,\n secondChancePagy,\n setBracketPeriod: handleSetBracketPeriod,\n setBracketsLoaded,\n setPool,\n }\n\n return (\n \n {initialized ? children : }\n \n )\n}\n\nexport function useRootContext() {\n return useContext(RootContext)\n}\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import { __assign } from \"tslib\";\nimport { getTooltipMapping } from '../../utils/tooltip';\nimport { deepAssign } from '../../utils';\nimport { geometry } from './base';\n/**\n * area geometry 的配置处理\n * @param params\n */\n\nexport function area(params) {\n var options = params.options;\n var area = options.area,\n xField = options.xField,\n yField = options.yField,\n seriesField = options.seriesField,\n smooth = options.smooth,\n tooltip = options.tooltip,\n useDeferredLabel = options.useDeferredLabel;\n\n var _a = getTooltipMapping(tooltip, [xField, yField, seriesField]),\n fields = _a.fields,\n formatter = _a.formatter; // 如果存在才处理\n\n\n return area ? geometry(deepAssign({}, params, {\n options: {\n type: 'area',\n colorField: seriesField,\n tooltipFields: fields,\n mapping: __assign({\n shape: smooth ? 'smooth' : 'area',\n tooltip: formatter\n }, area),\n args: {\n useDeferredLabel: useDeferredLabel\n }\n }\n })) : params;\n}","import { deepMix } from '@antv/util';\nimport { getTooltipMapping } from '../../utils/tooltip';\nimport { deepAssign } from '../../utils';\nimport { geometry } from './base';\n/**\n * line 辅助点的配置处理\n * @param params\n */\n\nexport function line(params) {\n var options = params.options;\n var line = options.line,\n stepType = options.stepType,\n xField = options.xField,\n yField = options.yField,\n seriesField = options.seriesField,\n smooth = options.smooth,\n connectNulls = options.connectNulls,\n tooltip = options.tooltip,\n useDeferredLabel = options.useDeferredLabel;\n\n var _a = getTooltipMapping(tooltip, [xField, yField, seriesField]),\n fields = _a.fields,\n formatter = _a.formatter; // 如果存在才处理\n\n\n return line ? geometry(deepAssign({}, params, {\n options: {\n type: 'line',\n colorField: seriesField,\n tooltipFields: fields,\n mapping: deepMix({\n shape: stepType || (smooth ? 'smooth' : 'line'),\n tooltip: formatter\n }, line),\n args: {\n connectNulls: connectNulls,\n useDeferredLabel: useDeferredLabel\n }\n }\n })) : params;\n}","import { __assign } from \"tslib\";\nimport { getTheme } from '@antv/g2';\nimport { isNil, isObject } from '@antv/util';\nimport { deepAssign } from '../../utils';\nimport { getTooltipMapping } from '../../utils/tooltip';\nimport { geometry } from './base';\n/**\n * 柱形图其他的 adaptor\n * @param params\n */\n\nfunction otherAdaptor(params) {\n var chart = params.chart,\n options = params.options,\n ext = params.ext;\n var seriesField = options.seriesField,\n isGroup = options.isGroup,\n isStack = options.isStack,\n marginRatio = options.marginRatio,\n widthRatio = options.widthRatio,\n groupField = options.groupField,\n theme = options.theme;\n /**\n * adjust\n */\n\n var adjust = [];\n\n if (seriesField) {\n // group\n if (isGroup) {\n adjust.push({\n type: 'dodge',\n dodgeBy: groupField || seriesField,\n marginRatio: marginRatio\n });\n } // stack\n\n\n if (isStack) {\n adjust.push({\n type: 'stack',\n marginRatio: marginRatio\n });\n }\n }\n\n if (adjust.length && (ext === null || ext === void 0 ? void 0 : ext.geometry)) {\n var g = ext === null || ext === void 0 ? void 0 : ext.geometry;\n g.adjust(adjust);\n } // widthRatio\n\n\n if (!isNil(widthRatio)) {\n chart.theme(deepAssign({}, isObject(theme) ? theme : getTheme(theme), {\n // columWidthRatio 配置覆盖 theme 中的配置\n columnWidthRatio: widthRatio\n }));\n }\n\n return params;\n}\n\nexport function interval(params) {\n var options = params.options;\n var xField = options.xField,\n yField = options.yField,\n interval = options.interval,\n seriesField = options.seriesField,\n tooltip = options.tooltip,\n minColumnWidth = options.minColumnWidth,\n maxColumnWidth = options.maxColumnWidth,\n columnBackground = options.columnBackground,\n dodgePadding = options.dodgePadding,\n intervalPadding = options.intervalPadding,\n useDeferredLabel = options.useDeferredLabel;\n\n var _a = getTooltipMapping(tooltip, [xField, yField, seriesField]),\n fields = _a.fields,\n formatter = _a.formatter; // 保障一定要存在 interval 映射\n\n\n var ext = (interval ? geometry(deepAssign({}, params, {\n options: {\n type: 'interval',\n colorField: seriesField,\n tooltipFields: fields,\n mapping: __assign({\n tooltip: formatter\n }, interval),\n args: {\n dodgePadding: dodgePadding,\n intervalPadding: intervalPadding,\n minColumnWidth: minColumnWidth,\n maxColumnWidth: maxColumnWidth,\n background: columnBackground,\n useDeferredLabel: useDeferredLabel\n }\n }\n })) : params).ext;\n return otherAdaptor(__assign(__assign({}, params), {\n ext: ext\n }));\n}","import { __assign } from \"tslib\";\nimport { getTooltipMapping } from '../../utils/tooltip';\nimport { deepAssign } from '../../utils';\nimport { geometry } from './base';\n/**\n * edge 的配置处理\n * @param params\n */\n\nexport function edge(params) {\n var options = params.options;\n var edge = options.edge,\n xField = options.xField,\n yField = options.yField,\n seriesField = options.seriesField,\n tooltip = options.tooltip,\n useDeferredLabel = options.useDeferredLabel;\n\n var _a = getTooltipMapping(tooltip, [xField, yField, seriesField]),\n fields = _a.fields,\n formatter = _a.formatter;\n\n return edge ? geometry(deepAssign({}, params, {\n options: {\n type: 'edge',\n colorField: seriesField,\n tooltipFields: fields,\n mapping: __assign({\n tooltip: formatter\n }, edge),\n args: {\n useDeferredLabel: useDeferredLabel\n }\n }\n })) : params;\n}","import { __assign } from \"tslib\";\nimport { getTooltipMapping } from '../../utils/tooltip';\nimport { deepAssign } from '../../utils';\nimport { geometry } from './base';\n/**\n * schema 的配置处理\n * @param params\n */\n\nexport function schema(params) {\n var options = params.options;\n var schema = options.schema,\n xField = options.xField,\n yField = options.yField,\n seriesField = options.seriesField,\n tooltip = options.tooltip,\n useDeferredLabel = options.useDeferredLabel;\n\n var _a = getTooltipMapping(tooltip, [xField, yField, seriesField]),\n fields = _a.fields,\n formatter = _a.formatter;\n\n return schema ? geometry(deepAssign({}, params, {\n options: {\n type: 'schema',\n colorField: seriesField,\n tooltipFields: fields,\n mapping: __assign({\n tooltip: formatter\n }, schema),\n args: {\n useDeferredLabel: useDeferredLabel\n }\n }\n })) : params;\n}","import { __assign } from \"tslib\";\nimport { getTooltipMapping } from '../../utils/tooltip';\nimport { deepAssign } from '../../utils';\nimport { geometry } from './base';\n/**\n * violin 辅助点的配置处理\n * @param params\n */\n\nexport function violin(params) {\n var options = params.options;\n var violin = options.violin,\n xField = options.xField,\n yField = options.yField,\n seriesField = options.seriesField,\n sizeField = options.sizeField,\n tooltip = options.tooltip;\n\n var _a = getTooltipMapping(tooltip, [xField, yField, seriesField, sizeField]),\n fields = _a.fields,\n formatter = _a.formatter;\n\n return violin ? geometry(deepAssign({}, params, {\n options: {\n type: 'violin',\n colorField: seriesField,\n tooltipFields: fields,\n mapping: __assign({\n tooltip: formatter\n }, violin)\n }\n })) : params;\n}","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n\n /**\n * TAB\n */\n TAB: 9,\n\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n\n /**\n * ENTER\n */\n ENTER: 13,\n\n /**\n * SHIFT\n */\n SHIFT: 16,\n\n /**\n * CTRL\n */\n CTRL: 17,\n\n /**\n * ALT\n */\n ALT: 18,\n\n /**\n * PAUSE\n */\n PAUSE: 19,\n\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n\n /**\n * ESC\n */\n ESC: 27,\n\n /**\n * SPACE\n */\n SPACE: 32,\n\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n\n /**\n * END\n */\n END: 35,\n\n /**\n * HOME\n */\n HOME: 36,\n\n /**\n * LEFT\n */\n LEFT: 37,\n\n /**\n * UP\n */\n UP: 38,\n\n /**\n * RIGHT\n */\n RIGHT: 39,\n\n /**\n * DOWN\n */\n DOWN: 40,\n\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n\n /**\n * INSERT\n */\n INSERT: 45,\n\n /**\n * DELETE\n */\n DELETE: 46,\n\n /**\n * ZERO\n */\n ZERO: 48,\n\n /**\n * ONE\n */\n ONE: 49,\n\n /**\n * TWO\n */\n TWO: 50,\n\n /**\n * THREE\n */\n THREE: 51,\n\n /**\n * FOUR\n */\n FOUR: 52,\n\n /**\n * FIVE\n */\n FIVE: 53,\n\n /**\n * SIX\n */\n SIX: 54,\n\n /**\n * SEVEN\n */\n SEVEN: 55,\n\n /**\n * EIGHT\n */\n EIGHT: 56,\n\n /**\n * NINE\n */\n NINE: 57,\n\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n\n /**\n * A\n */\n A: 65,\n\n /**\n * B\n */\n B: 66,\n\n /**\n * C\n */\n C: 67,\n\n /**\n * D\n */\n D: 68,\n\n /**\n * E\n */\n E: 69,\n\n /**\n * F\n */\n F: 70,\n\n /**\n * G\n */\n G: 71,\n\n /**\n * H\n */\n H: 72,\n\n /**\n * I\n */\n I: 73,\n\n /**\n * J\n */\n J: 74,\n\n /**\n * K\n */\n K: 75,\n\n /**\n * L\n */\n L: 76,\n\n /**\n * M\n */\n M: 77,\n\n /**\n * N\n */\n N: 78,\n\n /**\n * O\n */\n O: 79,\n\n /**\n * P\n */\n P: 80,\n\n /**\n * Q\n */\n Q: 81,\n\n /**\n * R\n */\n R: 82,\n\n /**\n * S\n */\n S: 83,\n\n /**\n * T\n */\n T: 84,\n\n /**\n * U\n */\n U: 85,\n\n /**\n * V\n */\n V: 86,\n\n /**\n * W\n */\n W: 87,\n\n /**\n * X\n */\n X: 88,\n\n /**\n * Y\n */\n Y: 89,\n\n /**\n * Z\n */\n Z: 90,\n\n /**\n * META\n */\n META: 91,\n\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n\n /**\n * F1\n */\n F1: 112,\n\n /**\n * F2\n */\n F2: 113,\n\n /**\n * F3\n */\n F3: 114,\n\n /**\n * F4\n */\n F4: 115,\n\n /**\n * F5\n */\n F5: 116,\n\n /**\n * F6\n */\n F6: 117,\n\n /**\n * F7\n */\n F7: 118,\n\n /**\n * F8\n */\n F8: 119,\n\n /**\n * F9\n */\n F9: 120,\n\n /**\n * F10\n */\n F10: 121,\n\n /**\n * F11\n */\n F11: 122,\n\n /**\n * F12\n */\n F12: 123,\n\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n\n /**\n * DASH\n */\n DASH: 189,\n\n /**\n * EQUALS\n */\n EQUALS: 187,\n\n /**\n * COMMA\n */\n COMMA: 188,\n\n /**\n * PERIOD\n */\n PERIOD: 190,\n\n /**\n * SLASH\n */\n SLASH: 191,\n\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n\n if (e.altKey && !e.ctrlKey || e.metaKey || // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n } // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n\n\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n\n default:\n return true;\n }\n },\n\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n } // Safari sends zero key code for non-latin characters.\n\n\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport React, { useContext, useEffect } from 'react';\nimport warn from \"rc-util/es/warning\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport IconContext from './components/Context';\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc[\"class\"];\n break;\n\n default:\n acc[key] = val;\n }\n\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n} // These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles() {\n var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n\n var _useContext = useContext(IconContext),\n csp = _useContext.csp;\n\n useEffect(function () {\n updateCSS(styleStr, '@ant-design-icons', {\n prepend: true,\n csp: csp\n });\n }, []);\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from '../utils';\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\n\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\n\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\n\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var colors = twoToneColorPalette;\n\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n\n useInsertStyles();\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n\n if (!isIconDefinition(icon)) {\n return null;\n }\n\n var target = icon;\n\n if (target && typeof target.icon === 'function') {\n target = _objectSpread(_objectSpread({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps));\n};\n\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from './IconBase';\nimport { normalizeTwoToneColors } from '../utils';\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return ReactIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = ReactIcon.getTwoToneColors();\n\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n\n return [colors.primaryColor, colors.secondaryColor];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Context from './Context';\nimport ReactIcon from './IconBase';\nimport { getTwoToneColor, setTwoToneColor } from './twoTonePrimaryColor';\nimport { normalizeTwoToneColors } from '../utils'; // Initial setting\n// should move it to antd main repo?\n\nsetTwoToneColor('#1890ff');\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var _React$useContext = React.useContext(Context),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre;\n\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), _defineProperty(_classNames, \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), _classNames), className);\n var iconTabIndex = tabIndex;\n\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return /*#__PURE__*/React.createElement(\"span\", _objectSpread(_objectSpread({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps), {}, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","import { each, isArray, isNil, isNumber } from '@antv/util';\nexport function formatPadding(padding) {\n var top = 0;\n var left = 0;\n var right = 0;\n var bottom = 0;\n\n if (isNumber(padding)) {\n top = left = right = bottom = padding;\n } else if (isArray(padding)) {\n top = padding[0];\n right = !isNil(padding[1]) ? padding[1] : padding[0];\n bottom = !isNil(padding[2]) ? padding[2] : padding[0];\n left = !isNil(padding[3]) ? padding[3] : right;\n }\n\n return [top, right, bottom, left];\n}\nexport function clearDom(container) {\n var children = container.childNodes;\n var length = children.length;\n\n for (var i = length - 1; i >= 0; i--) {\n container.removeChild(children[i]);\n }\n}\nexport function hasClass(elements, cName) {\n return !!elements.className.match(new RegExp(\"(\\\\s|^)\" + cName + \"(\\\\s|$)\"));\n}\nexport function regionToBBox(region) {\n var start = region.start,\n end = region.end;\n var minX = Math.min(start.x, end.x);\n var minY = Math.min(start.y, end.y);\n var maxX = Math.max(start.x, end.x);\n var maxY = Math.max(start.y, end.y);\n return {\n x: minX,\n y: minY,\n minX: minX,\n minY: minY,\n maxX: maxX,\n maxY: maxY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nexport function pointsToBBox(points) {\n var xs = points.map(function (point) {\n return point.x;\n });\n var ys = points.map(function (point) {\n return point.y;\n });\n var minX = Math.min.apply(Math, xs);\n var minY = Math.min.apply(Math, ys);\n var maxX = Math.max.apply(Math, xs);\n var maxY = Math.max.apply(Math, ys);\n return {\n x: minX,\n y: minY,\n minX: minX,\n minY: minY,\n maxX: maxX,\n maxY: maxY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nexport function createBBox(x, y, width, height) {\n var maxX = x + width;\n var maxY = y + height;\n return {\n x: x,\n y: y,\n width: width,\n height: height,\n minX: x,\n minY: y,\n // 非常奇葩的 js 特性\n // Infinity + Infinity = Infinity\n // Infinity - Infinity = NaN\n // fixed https://github.com/antvis/G2Plot/issues/1243\n maxX: isNaN(maxX) ? 0 : maxX,\n maxY: isNaN(maxY) ? 0 : maxY\n };\n}\nexport function getValueByPercent(min, max, percent) {\n return (1 - percent) * min + max * percent;\n}\nexport function getCirclePoint(center, radius, angle) {\n return {\n x: center.x + Math.cos(angle) * radius,\n y: center.y + Math.sin(angle) * radius\n };\n}\nexport function distance(p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n return Math.sqrt(dx * dx + dy * dy);\n}\nexport var wait = function wait(interval) {\n return new Promise(function (resolve) {\n setTimeout(resolve, interval);\n });\n};\n/**\n * 判断两个数值 是否接近\n * - 解决精度问题(由于无法确定精度上限,根据具体场景可传入 精度 参数)\n */\n\nexport var near = function near(x, y, e) {\n if (e === void 0) {\n e = Math.pow(Number.EPSILON, 0.5);\n }\n\n return [x, y].includes(Infinity) ? Math.abs(x) === Math.abs(y) : Math.abs(x - y) < e;\n};\nexport function intersectBBox(box1, box2) {\n var minX = Math.max(box1.minX, box2.minX);\n var minY = Math.max(box1.minY, box2.minY);\n var maxX = Math.min(box1.maxX, box2.maxX);\n var maxY = Math.min(box1.maxY, box2.maxY);\n return createBBox(minX, minY, maxX - minX, maxY - minY);\n}\nexport function mergeBBox(box1, box2) {\n var minX = Math.min(box1.minX, box2.minX);\n var minY = Math.min(box1.minY, box2.minY);\n var maxX = Math.max(box1.maxX, box2.maxX);\n var maxY = Math.max(box1.maxY, box2.maxY);\n return createBBox(minX, minY, maxX - minX, maxY - minY);\n}\nexport function getBBoxWithClip(element) {\n var clipShape = element.getClip();\n var clipBBox = clipShape && clipShape.getBBox();\n var bbox;\n\n if (!element.isGroup()) {\n // 如果是普通的图形\n bbox = element.getBBox();\n } else {\n var minX_1 = Infinity;\n var maxX_1 = -Infinity;\n var minY_1 = Infinity;\n var maxY_1 = -Infinity;\n var children = element.getChildren();\n\n if (children.length > 0) {\n each(children, function (child) {\n if (child.get('visible')) {\n // 如果分组没有子元素,则直接跳过\n if (child.isGroup() && child.get('children').length === 0) {\n return true;\n }\n\n var box = getBBoxWithClip(child); // 计算 4 个顶点\n\n var leftTop = child.applyToMatrix([box.minX, box.minY, 1]);\n var leftBottom = child.applyToMatrix([box.minX, box.maxY, 1]);\n var rightTop = child.applyToMatrix([box.maxX, box.minY, 1]);\n var rightBottom = child.applyToMatrix([box.maxX, box.maxY, 1]); // 从中取最小的范围\n\n var boxMinX = Math.min(leftTop[0], leftBottom[0], rightTop[0], rightBottom[0]);\n var boxMaxX = Math.max(leftTop[0], leftBottom[0], rightTop[0], rightBottom[0]);\n var boxMinY = Math.min(leftTop[1], leftBottom[1], rightTop[1], rightBottom[1]);\n var boxMaxY = Math.max(leftTop[1], leftBottom[1], rightTop[1], rightBottom[1]);\n\n if (boxMinX < minX_1) {\n minX_1 = boxMinX;\n }\n\n if (boxMaxX > maxX_1) {\n maxX_1 = boxMaxX;\n }\n\n if (boxMinY < minY_1) {\n minY_1 = boxMinY;\n }\n\n if (boxMaxY > maxY_1) {\n maxY_1 = boxMaxY;\n }\n }\n });\n } else {\n minX_1 = 0;\n maxX_1 = 0;\n minY_1 = 0;\n maxY_1 = 0;\n }\n\n bbox = createBBox(minX_1, minY_1, maxX_1 - minX_1, maxY_1 - minY_1);\n }\n\n if (clipBBox) {\n return intersectBBox(bbox, clipBBox);\n } else {\n return bbox;\n }\n}\nexport function updateClip(element, newElement) {\n if (!element.getClip() && !newElement.getClip()) {\n // 两者都没有 clip\n return;\n }\n\n var newClipShape = newElement.getClip();\n\n if (!newClipShape) {\n // 新的 element 没有 clip\n element.setClip(null); // 移除 clip\n\n return;\n }\n\n var clipCfg = {\n type: newClipShape.get('type'),\n attrs: newClipShape.attr()\n };\n element.setClip(clipCfg);\n}\nexport function toPx(number) {\n return number + \"px\";\n}\nexport function getTextPoint(start, end, position, offset) {\n var lineLength = distance(start, end);\n var offsetPercent = offset / lineLength; // 计算间距同线的比例,用于计算最终的位置\n\n var percent = 0;\n\n if (position === 'start') {\n percent = 0 - offsetPercent;\n } else if (position === 'end') {\n percent = 1 + offsetPercent;\n }\n\n return {\n x: getValueByPercent(start.x, end.x, percent),\n y: getValueByPercent(start.y, end.y, percent)\n };\n}","export const WC_NAME = 'Australia New Zealand 2023'\nexport const OPEN_DATE = {\n computer: '01 June 2023 00:01:00 UTC+10',\n human: 'June 1st at 12:01am'\n}\nexport const CLOSE_DATE = {\n computer: '20 July 2023 17:00:00 UTC+10',\n human: 'July 20th at 5:00pm'\n}\nexport const SECOND_OPEN_DATE = {\n computer: '03 August 2023 22:05:00 UTC+10',\n human: 'August 3rd at 10:05pm'\n}\nexport const SECOND_CLOSE_DATE = {\n computer: '05 August 2023 15:00:00 UTC+10',\n human: 'August 5th at 3:00pm'\n}\nexport const TIME_ZONE = 'Australian Eastern Standard Time (UTC+10)'\nexport const ABBREV_TIME_ZONE = 'AEST'\n","/* eslint-disable no-console */\nvar warned = {};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.warn(\"Note: \".concat(message));\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nexport default warningOnce;\n/* eslint-enable */","export default {\n fontFamily: \"\\n BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto,\\\"Helvetica Neue\\\",\\n Helvetica, \\\"PingFang SC\\\", \\\"Hiragino Sans GB\\\", \\\"Microsoft YaHei\\\",\\n SimSun, \\\"sans-serif\\\"\",\n textColor: '#2C3542',\n activeTextColor: '#333333',\n uncheckedColor: '#D8D8D8',\n lineColor: '#416180',\n regionColor: '#CCD7EB',\n verticalAxisRotate: -Math.PI / 4,\n horizontalAxisRotate: Math.PI / 4,\n // descriptionIcon theme\n descriptionIconStroke: '#fff',\n descriptionIconFill: 'rgba(58, 73, 101, .25)'\n};","var safeIsNaN = Number.isNaN || function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n};\n\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n\n return false;\n}\n\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) {\n isEqual = areInputsEqual;\n }\n\n var cache = null;\n\n function memoized() {\n var newArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n\n if (cache && cache.lastThis === this && isEqual(newArgs, cache.lastArgs)) {\n return cache.lastResult;\n }\n\n var lastResult = resultFn.apply(this, newArgs);\n cache = {\n lastResult: lastResult,\n lastArgs: newArgs,\n lastThis: this\n };\n return lastResult;\n }\n\n memoized.clear = function clear() {\n cache = null;\n };\n\n return memoized;\n}\n\nexport { memoizeOne as default };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport memoizeOne from 'memoize-one';\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { changeConfirmLocale } from '../modal/locale';\nimport LocaleContext from './context';\nexport var ANT_MARK = 'internalMark';\n\nvar LocaleProvider = /*#__PURE__*/function (_React$Component) {\n _inherits(LocaleProvider, _React$Component);\n\n var _super = _createSuper(LocaleProvider);\n\n function LocaleProvider(props) {\n var _this;\n\n _classCallCheck(this, LocaleProvider);\n\n _this = _super.call(this, props);\n _this.getMemoizedContextValue = memoizeOne(function (localeValue) {\n return _extends(_extends({}, localeValue), {\n exist: true\n });\n });\n changeConfirmLocale(props.locale && props.locale.Modal);\n process.env.NODE_ENV !== \"production\" ? warning(props._ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale') : void 0;\n return _this;\n }\n\n _createClass(LocaleProvider, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n changeConfirmLocale(this.props.locale && this.props.locale.Modal);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var locale = this.props.locale;\n\n if (prevProps.locale !== locale) {\n changeConfirmLocale(locale && locale.Modal);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n changeConfirmLocale();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n locale = _this$props.locale,\n children = _this$props.children;\n var contextValue = this.getMemoizedContextValue(locale);\n return /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n value: contextValue\n }, children);\n }\n }]);\n\n return LocaleProvider;\n}(React.Component);\n\nexport { LocaleProvider as default };\nLocaleProvider.defaultProps = {\n locale: {}\n};","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nimport CheckCircleOutlined from \"@ant-design/icons/es/icons/CheckCircleOutlined\";\nimport CloseCircleOutlined from \"@ant-design/icons/es/icons/CloseCircleOutlined\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport ExclamationCircleOutlined from \"@ant-design/icons/es/icons/ExclamationCircleOutlined\";\nimport InfoCircleOutlined from \"@ant-design/icons/es/icons/InfoCircleOutlined\";\nimport classNames from 'classnames';\nimport Notification from 'rc-notification';\nimport * as React from 'react';\nimport ConfigProvider, { globalConfig } from '../config-provider';\nimport createUseNotification from './hooks/useNotification';\nvar notificationInstance = {};\nvar defaultDuration = 4.5;\nvar defaultTop = 24;\nvar defaultBottom = 24;\nvar defaultPrefixCls = '';\nvar defaultPlacement = 'topRight';\nvar defaultGetContainer;\nvar defaultCloseIcon;\nvar rtl = false;\nvar maxCount;\n\nfunction setNotificationConfig(options) {\n var duration = options.duration,\n placement = options.placement,\n bottom = options.bottom,\n top = options.top,\n getContainer = options.getContainer,\n closeIcon = options.closeIcon,\n prefixCls = options.prefixCls;\n\n if (prefixCls !== undefined) {\n defaultPrefixCls = prefixCls;\n }\n\n if (duration !== undefined) {\n defaultDuration = duration;\n }\n\n if (placement !== undefined) {\n defaultPlacement = placement;\n } else if (options.rtl) {\n defaultPlacement = 'topLeft';\n }\n\n if (bottom !== undefined) {\n defaultBottom = bottom;\n }\n\n if (top !== undefined) {\n defaultTop = top;\n }\n\n if (getContainer !== undefined) {\n defaultGetContainer = getContainer;\n }\n\n if (closeIcon !== undefined) {\n defaultCloseIcon = closeIcon;\n }\n\n if (options.rtl !== undefined) {\n rtl = options.rtl;\n }\n\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n }\n}\n\nfunction getPlacementStyle(placement) {\n var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultTop;\n var bottom = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultBottom;\n var style;\n\n switch (placement) {\n case 'top':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top: top,\n bottom: 'auto'\n };\n break;\n\n case 'topLeft':\n style = {\n left: 0,\n top: top,\n bottom: 'auto'\n };\n break;\n\n case 'topRight':\n style = {\n right: 0,\n top: top,\n bottom: 'auto'\n };\n break;\n\n case 'bottom':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top: 'auto',\n bottom: bottom\n };\n break;\n\n case 'bottomLeft':\n style = {\n left: 0,\n top: 'auto',\n bottom: bottom\n };\n break;\n\n default:\n style = {\n right: 0,\n top: 'auto',\n bottom: bottom\n };\n break;\n }\n\n return style;\n}\n\nfunction getNotificationInstance(args, callback) {\n var _args$placement = args.placement,\n placement = _args$placement === void 0 ? defaultPlacement : _args$placement,\n top = args.top,\n bottom = args.bottom,\n _args$getContainer = args.getContainer,\n getContainer = _args$getContainer === void 0 ? defaultGetContainer : _args$getContainer,\n customizePrefixCls = args.prefixCls;\n\n var _globalConfig = globalConfig(),\n getPrefixCls = _globalConfig.getPrefixCls,\n getIconPrefixCls = _globalConfig.getIconPrefixCls;\n\n var prefixCls = getPrefixCls('notification', customizePrefixCls || defaultPrefixCls);\n var iconPrefixCls = getIconPrefixCls();\n var cacheKey = \"\".concat(prefixCls, \"-\").concat(placement);\n var cacheInstance = notificationInstance[cacheKey];\n\n if (cacheInstance) {\n Promise.resolve(cacheInstance).then(function (instance) {\n callback({\n prefixCls: \"\".concat(prefixCls, \"-notice\"),\n iconPrefixCls: iconPrefixCls,\n instance: instance\n });\n });\n return;\n }\n\n var notificationClass = classNames(\"\".concat(prefixCls, \"-\").concat(placement), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtl === true));\n notificationInstance[cacheKey] = new Promise(function (resolve) {\n Notification.newInstance({\n prefixCls: prefixCls,\n className: notificationClass,\n style: getPlacementStyle(placement, top, bottom),\n getContainer: getContainer,\n maxCount: maxCount\n }, function (notification) {\n resolve(notification);\n callback({\n prefixCls: \"\".concat(prefixCls, \"-notice\"),\n iconPrefixCls: iconPrefixCls,\n instance: notification\n });\n });\n });\n}\n\nvar typeToIcon = {\n success: CheckCircleOutlined,\n info: InfoCircleOutlined,\n error: CloseCircleOutlined,\n warning: ExclamationCircleOutlined\n};\n\nfunction getRCNoticeProps(args, prefixCls, iconPrefixCls) {\n var durationArg = args.duration,\n icon = args.icon,\n type = args.type,\n description = args.description,\n message = args.message,\n btn = args.btn,\n onClose = args.onClose,\n onClick = args.onClick,\n key = args.key,\n style = args.style,\n className = args.className,\n _args$closeIcon = args.closeIcon,\n closeIcon = _args$closeIcon === void 0 ? defaultCloseIcon : _args$closeIcon;\n var duration = durationArg === undefined ? defaultDuration : durationArg;\n var iconNode = null;\n\n if (icon) {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, args.icon);\n } else if (type) {\n iconNode = /*#__PURE__*/React.createElement(typeToIcon[type] || null, {\n className: \"\".concat(prefixCls, \"-icon \").concat(prefixCls, \"-icon-\").concat(type)\n });\n }\n\n var closeIconToRender = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }, closeIcon || /*#__PURE__*/React.createElement(CloseOutlined, {\n className: \"\".concat(prefixCls, \"-close-icon\")\n }));\n var autoMarginTag = !description && iconNode ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-message-single-line-auto-margin\")\n }) : null;\n return {\n content: /*#__PURE__*/React.createElement(ConfigProvider, {\n iconPrefixCls: iconPrefixCls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: iconNode ? \"\".concat(prefixCls, \"-with-icon\") : '',\n role: \"alert\"\n }, iconNode, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-message\")\n }, autoMarginTag, message), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, description), btn ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-btn\")\n }, btn) : null)),\n duration: duration,\n closable: true,\n closeIcon: closeIconToRender,\n onClose: onClose,\n onClick: onClick,\n key: key,\n style: style || {},\n className: classNames(className, _defineProperty({}, \"\".concat(prefixCls, \"-\").concat(type), !!type))\n };\n}\n\nfunction notice(args) {\n getNotificationInstance(args, function (_ref) {\n var prefixCls = _ref.prefixCls,\n iconPrefixCls = _ref.iconPrefixCls,\n instance = _ref.instance;\n instance.notice(getRCNoticeProps(args, prefixCls, iconPrefixCls));\n });\n}\n\nvar api = {\n open: notice,\n close: function close(key) {\n Object.keys(notificationInstance).forEach(function (cacheKey) {\n return Promise.resolve(notificationInstance[cacheKey]).then(function (instance) {\n instance.removeNotice(key);\n });\n });\n },\n config: setNotificationConfig,\n destroy: function destroy() {\n Object.keys(notificationInstance).forEach(function (cacheKey) {\n Promise.resolve(notificationInstance[cacheKey]).then(function (instance) {\n instance.destroy();\n });\n delete notificationInstance[cacheKey]; // lgtm[js/missing-await]\n });\n }\n};\n['success', 'info', 'warning', 'error'].forEach(function (type) {\n api[type] = function (args) {\n return api.open(_extends(_extends({}, args), {\n type: type\n }));\n };\n});\napi.warn = api.warning;\napi.useNotification = createUseNotification(getNotificationInstance, getRCNoticeProps);\n/** @private test Only function. Not work on production */\n\nexport var getInstance = function getInstance(cacheKey) {\n return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", process.env.NODE_ENV === 'test' ? notificationInstance[cacheKey] : null);\n\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n};\nexport default api;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useRCNotification from \"rc-notification/es/useNotification\";\nimport * as React from 'react';\nimport { ConfigConsumer } from '../../config-provider';\nexport default function createUseNotification(getNotificationInstance, getRCNoticeProps) {\n var useNotification = function useNotification() {\n // We can only get content by render\n var getPrefixCls; // We create a proxy to handle delay created instance\n\n var innerInstance = null;\n var proxy = {\n add: function add(noticeProps, holderCallback) {\n innerInstance === null || innerInstance === void 0 ? void 0 : innerInstance.component.add(noticeProps, holderCallback);\n }\n };\n\n var _useRCNotification = useRCNotification(proxy),\n _useRCNotification2 = _slicedToArray(_useRCNotification, 2),\n hookNotify = _useRCNotification2[0],\n holder = _useRCNotification2[1];\n\n function notify(args) {\n var customizePrefixCls = args.prefixCls;\n var mergedPrefixCls = getPrefixCls('notification', customizePrefixCls);\n getNotificationInstance(_extends(_extends({}, args), {\n prefixCls: mergedPrefixCls\n }), function (_ref) {\n var prefixCls = _ref.prefixCls,\n instance = _ref.instance;\n innerInstance = instance;\n hookNotify(getRCNoticeProps(args, prefixCls));\n });\n } // Fill functions\n\n\n var hookApiRef = React.useRef({});\n hookApiRef.current.open = notify;\n ['success', 'info', 'warning', 'error'].forEach(function (type) {\n hookApiRef.current[type] = function (args) {\n return hookApiRef.current.open(_extends(_extends({}, args), {\n type: type\n }));\n };\n });\n return [hookApiRef.current, /*#__PURE__*/React.createElement(ConfigConsumer, {\n key: \"holder\"\n }, function (context) {\n getPrefixCls = context.getPrefixCls;\n return holder;\n })];\n };\n\n return useNotification;\n}","import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion';\nimport { names } from './css-color-names';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util';\n\nvar TinyColor =\n/** @class */\nfunction () {\n function TinyColor(color, opts) {\n if (color === void 0) {\n color = '';\n }\n\n if (opts === void 0) {\n opts = {};\n }\n\n var _a; // If input is already a tinycolor, return itself\n\n\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType; // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n\n this.isValid = rgb.ok;\n }\n\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n\n\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n\n\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n } else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n } else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n } else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n\n\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n\n\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns the object as a HSVA object.\n */\n\n\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this.a\n };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n\n\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n\n\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this.a\n };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n\n\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n\n\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) {\n allow3Char = false;\n }\n\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # appened.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n\n\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) {\n allow3Char = false;\n }\n\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n\n\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) {\n allow4Char = false;\n }\n\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # appened.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n\n\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) {\n allow4Char = false;\n }\n\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the object as a RGBA object.\n */\n\n\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n\n\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n\n\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function fmt(x) {\n return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\");\n };\n\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n\n\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function rnd(x) {\n return Math.round(bound01(x, 255) * 100);\n };\n\n return this.a === 1 ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\") : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n\n\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n\n if (this.a < 1) {\n return false;\n }\n\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i],\n key = _b[0],\n value = _b[1];\n\n if (hex === value) {\n return key;\n }\n }\n\n return false;\n };\n\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n\n return this.toRgbString();\n }\n\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n\n if (format === 'name') {\n formattedString = this.toName();\n }\n\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n };\n\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n\n\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) {\n amount = 10;\n }\n\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n\n\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) {\n amount = 10;\n }\n\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n\n\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) {\n amount = 10;\n }\n\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n\n\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) {\n amount = 10;\n }\n\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n\n\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) {\n amount = 10;\n }\n\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n\n\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) {\n amount = 10;\n }\n\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n\n\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) {\n amount = 10;\n }\n\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n\n\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n\n\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n\n\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) {\n amount = 50;\n }\n\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a\n };\n return new TinyColor(rgba);\n };\n\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) {\n results = 6;\n }\n\n if (slices === void 0) {\n slices = 30;\n }\n\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n\n for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n\n\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) {\n results = 6;\n }\n\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n\n while (results--) {\n res.push(new TinyColor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\n }\n\n return res;\n };\n\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [this, new TinyColor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), new TinyColor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n };\n /**\n * Compute how the color would appear on a background\n */\n\n\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n return new TinyColor({\n r: bg.r + (fg.r - bg.r) * fg.a,\n g: bg.g + (fg.g - bg.g) * fg.a,\n b: bg.b + (fg.b - bg.b) * fg.a\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n\n\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n\n\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n\n\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({\n h: (h + i * increment) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n\n return result;\n };\n /**\n * compare color vs current color\n */\n\n\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n\n return TinyColor;\n}();\n\nexport { TinyColor }; // kept for backwards compatability with v1\n\nexport function tinycolor(color, opts) {\n if (color === void 0) {\n color = '';\n }\n\n if (opts === void 0) {\n opts = {};\n }\n\n return new TinyColor(color, opts);\n}","/* eslint-disable import/prefer-default-export, prefer-destructuring */\nimport { generate } from '@ant-design/colors';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport warning from '../_util/warning';\nvar dynamicStyleMark = \"-ant-\".concat(Date.now(), \"-\").concat(Math.random());\nexport function getStyle(globalPrefixCls, theme) {\n var variables = {};\n\n var formatColor = function formatColor(color, updater) {\n var clone = color.clone();\n clone = (updater === null || updater === void 0 ? void 0 : updater(clone)) || clone;\n return clone.toRgbString();\n };\n\n var fillColor = function fillColor(colorVal, type) {\n var baseColor = new TinyColor(colorVal);\n var colorPalettes = generate(baseColor.toRgbString());\n variables[\"\".concat(type, \"-color\")] = formatColor(baseColor);\n variables[\"\".concat(type, \"-color-disabled\")] = colorPalettes[1];\n variables[\"\".concat(type, \"-color-hover\")] = colorPalettes[4];\n variables[\"\".concat(type, \"-color-active\")] = colorPalettes[7];\n variables[\"\".concat(type, \"-color-outline\")] = baseColor.clone().setAlpha(0.2).toRgbString();\n variables[\"\".concat(type, \"-color-deprecated-bg\")] = colorPalettes[1];\n variables[\"\".concat(type, \"-color-deprecated-border\")] = colorPalettes[3];\n }; // ================ Primary Color ================\n\n\n if (theme.primaryColor) {\n fillColor(theme.primaryColor, 'primary');\n var primaryColor = new TinyColor(theme.primaryColor);\n var primaryColors = generate(primaryColor.toRgbString()); // Legacy - We should use semantic naming standard\n\n primaryColors.forEach(function (color, index) {\n variables[\"primary-\".concat(index + 1)] = color;\n }); // Deprecated\n\n variables['primary-color-deprecated-l-35'] = formatColor(primaryColor, function (c) {\n return c.lighten(35);\n });\n variables['primary-color-deprecated-l-20'] = formatColor(primaryColor, function (c) {\n return c.lighten(20);\n });\n variables['primary-color-deprecated-t-20'] = formatColor(primaryColor, function (c) {\n return c.tint(20);\n });\n variables['primary-color-deprecated-t-50'] = formatColor(primaryColor, function (c) {\n return c.tint(50);\n });\n variables['primary-color-deprecated-f-12'] = formatColor(primaryColor, function (c) {\n return c.setAlpha(c.getAlpha() * 0.12);\n });\n var primaryActiveColor = new TinyColor(primaryColors[0]);\n variables['primary-color-active-deprecated-f-30'] = formatColor(primaryActiveColor, function (c) {\n return c.setAlpha(c.getAlpha() * 0.3);\n });\n variables['primary-color-active-deprecated-d-02'] = formatColor(primaryActiveColor, function (c) {\n return c.darken(2);\n });\n } // ================ Success Color ================\n\n\n if (theme.successColor) {\n fillColor(theme.successColor, 'success');\n } // ================ Warning Color ================\n\n\n if (theme.warningColor) {\n fillColor(theme.warningColor, 'warning');\n } // ================= Error Color =================\n\n\n if (theme.errorColor) {\n fillColor(theme.errorColor, 'error');\n } // ================= Info Color ==================\n\n\n if (theme.infoColor) {\n fillColor(theme.infoColor, 'info');\n } // Convert to css variables\n\n\n var cssList = Object.keys(variables).map(function (key) {\n return \"--\".concat(globalPrefixCls, \"-\").concat(key, \": \").concat(variables[key], \";\");\n });\n return \"\\n :root {\\n \".concat(cssList.join('\\n'), \"\\n }\\n \").trim();\n}\nexport function registerTheme(globalPrefixCls, theme) {\n var style = getStyle(globalPrefixCls, theme);\n\n if (canUseDom()) {\n updateCSS(style, \"\".concat(dynamicStyleMark, \"-dynamic-theme\"));\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', 'SSR do not support dynamic theme with css variables.') : void 0;\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport IconContext from \"@ant-design/icons/es/components/Context\";\nimport { FormProvider as RcFormProvider } from 'rc-field-form';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport * as React from 'react';\nimport LocaleProvider, { ANT_MARK } from '../locale-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport defaultLocale from '../locale/default';\nimport message from '../message';\nimport notification from '../notification';\nimport { ConfigConsumer, ConfigContext } from './context';\nimport { registerTheme } from './cssVariables';\nimport { DisabledContextProvider } from './DisabledContext';\nimport SizeContext, { SizeContextProvider } from './SizeContext';\nexport { ConfigContext, ConfigConsumer };\nexport var configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader']; // These props is used by `useContext` directly in sub component\n\nvar PASSED_PROPS = ['getTargetContainer', 'getPopupContainer', 'renderEmpty', 'pageHeader', 'input', 'pagination', 'form'];\nexport var defaultPrefixCls = 'ant';\nexport var defaultIconPrefixCls = 'anticon';\nvar globalPrefixCls;\nvar globalIconPrefixCls;\n\nfunction getGlobalPrefixCls() {\n return globalPrefixCls || defaultPrefixCls;\n}\n\nfunction getGlobalIconPrefixCls() {\n return globalIconPrefixCls || defaultIconPrefixCls;\n}\n\nvar setGlobalConfig = function setGlobalConfig(_ref) {\n var prefixCls = _ref.prefixCls,\n iconPrefixCls = _ref.iconPrefixCls,\n theme = _ref.theme;\n\n if (prefixCls !== undefined) {\n globalPrefixCls = prefixCls;\n }\n\n if (iconPrefixCls !== undefined) {\n globalIconPrefixCls = iconPrefixCls;\n }\n\n if (theme) {\n registerTheme(getGlobalPrefixCls(), theme);\n }\n};\n\nexport var globalConfig = function globalConfig() {\n return {\n getPrefixCls: function getPrefixCls(suffixCls, customizePrefixCls) {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? \"\".concat(getGlobalPrefixCls(), \"-\").concat(suffixCls) : getGlobalPrefixCls();\n },\n getIconPrefixCls: getGlobalIconPrefixCls,\n getRootPrefixCls: function getRootPrefixCls(rootPrefixCls, customizePrefixCls) {\n // Customize rootPrefixCls is first priority\n if (rootPrefixCls) {\n return rootPrefixCls;\n } // If Global prefixCls provided, use this\n\n\n if (globalPrefixCls) {\n return globalPrefixCls;\n } // [Legacy] If customize prefixCls provided, we cut it to get the prefixCls\n\n\n if (customizePrefixCls && customizePrefixCls.includes('-')) {\n return customizePrefixCls.replace(/^(.*)-[^-]*$/, '$1');\n } // Fallback to default prefixCls\n\n\n return getGlobalPrefixCls();\n }\n };\n};\n\nvar ProviderChildren = function ProviderChildren(props) {\n var _a, _b;\n\n var children = props.children,\n csp = props.csp,\n autoInsertSpaceInButton = props.autoInsertSpaceInButton,\n form = props.form,\n locale = props.locale,\n componentSize = props.componentSize,\n direction = props.direction,\n space = props.space,\n virtual = props.virtual,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n legacyLocale = props.legacyLocale,\n parentContext = props.parentContext,\n iconPrefixCls = props.iconPrefixCls,\n componentDisabled = props.componentDisabled;\n var getPrefixCls = React.useCallback(function (suffixCls, customizePrefixCls) {\n var prefixCls = props.prefixCls;\n if (customizePrefixCls) return customizePrefixCls;\n var mergedPrefixCls = prefixCls || parentContext.getPrefixCls('');\n return suffixCls ? \"\".concat(mergedPrefixCls, \"-\").concat(suffixCls) : mergedPrefixCls;\n }, [parentContext.getPrefixCls, props.prefixCls]);\n\n var config = _extends(_extends({}, parentContext), {\n csp: csp,\n autoInsertSpaceInButton: autoInsertSpaceInButton,\n locale: locale || legacyLocale,\n direction: direction,\n space: space,\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n getPrefixCls: getPrefixCls\n }); // Pass the props used by `useContext` directly with child component.\n // These props should merged into `config`.\n\n\n PASSED_PROPS.forEach(function (propName) {\n var propValue = props[propName];\n\n if (propValue) {\n config[propName] = propValue;\n }\n }); // https://github.com/ant-design/ant-design/issues/27617\n\n var memoedConfig = useMemo(function () {\n return config;\n }, config, function (prevConfig, currentConfig) {\n var prevKeys = Object.keys(prevConfig);\n var currentKeys = Object.keys(currentConfig);\n return prevKeys.length !== currentKeys.length || prevKeys.some(function (key) {\n return prevConfig[key] !== currentConfig[key];\n });\n });\n var memoIconContextValue = React.useMemo(function () {\n return {\n prefixCls: iconPrefixCls,\n csp: csp\n };\n }, [iconPrefixCls, csp]);\n var childNode = children; // Additional Form provider\n\n var validateMessages = {};\n\n if (locale) {\n validateMessages = ((_a = locale.Form) === null || _a === void 0 ? void 0 : _a.defaultValidateMessages) || ((_b = defaultLocale.Form) === null || _b === void 0 ? void 0 : _b.defaultValidateMessages) || {};\n }\n\n if (form && form.validateMessages) {\n validateMessages = _extends(_extends({}, validateMessages), form.validateMessages);\n }\n\n if (Object.keys(validateMessages).length > 0) {\n childNode = /*#__PURE__*/React.createElement(RcFormProvider, {\n validateMessages: validateMessages\n }, children);\n }\n\n if (locale) {\n childNode = /*#__PURE__*/React.createElement(LocaleProvider, {\n locale: locale,\n _ANT_MARK__: ANT_MARK\n }, childNode);\n }\n\n if (iconPrefixCls || csp) {\n childNode = /*#__PURE__*/React.createElement(IconContext.Provider, {\n value: memoIconContextValue\n }, childNode);\n }\n\n if (componentSize) {\n childNode = /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: componentSize\n }, childNode);\n }\n\n if (componentDisabled !== undefined) {\n childNode = /*#__PURE__*/React.createElement(DisabledContextProvider, {\n disabled: componentDisabled\n }, childNode);\n }\n\n return /*#__PURE__*/React.createElement(ConfigContext.Provider, {\n value: memoedConfig\n }, childNode);\n};\n\nvar ConfigProvider = function ConfigProvider(props) {\n React.useEffect(function () {\n if (props.direction) {\n message.config({\n rtl: props.direction === 'rtl'\n });\n notification.config({\n rtl: props.direction === 'rtl'\n });\n }\n }, [props.direction]);\n return /*#__PURE__*/React.createElement(LocaleReceiver, null, function (_, __, legacyLocale) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (context) {\n return /*#__PURE__*/React.createElement(ProviderChildren, _extends({\n parentContext: context,\n legacyLocale: legacyLocale\n }, props));\n });\n });\n};\n/** @private internal Usage. do not use in your production */\n\n\nConfigProvider.ConfigContext = ConfigContext;\nConfigProvider.SizeContext = SizeContext;\nConfigProvider.config = setGlobalConfig;\nexport default ConfigProvider;","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\n\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\n\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\n\nvar rafUUID = 0;\nvar rafIds = new Map();\n\nfunction cleanup(id) {\n rafIds[\"delete\"](id);\n}\n\nexport default function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id); // Trigger\n\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n }); // Bind real raf id\n\n rafIds.set(id, realId);\n }\n }\n\n callRef(times);\n return id;\n}\n\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(realId);\n return caf(realId);\n};","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { FormProvider as RcFormProvider } from 'rc-field-form';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nexport var FormContext = /*#__PURE__*/React.createContext({\n labelAlign: 'right',\n vertical: false,\n itemRef: function itemRef() {}\n});\nexport var NoStyleItemContext = /*#__PURE__*/React.createContext(null);\nexport var FormProvider = function FormProvider(props) {\n var providerProps = omit(props, ['prefixCls']);\n return /*#__PURE__*/React.createElement(RcFormProvider, _extends({}, providerProps));\n};\nexport var FormItemPrefixContext = /*#__PURE__*/React.createContext({\n prefixCls: ''\n});\nexport var FormItemInputContext = /*#__PURE__*/React.createContext({});\nexport var NoFormStyle = function NoFormStyle(_ref) {\n var children = _ref.children,\n status = _ref.status,\n override = _ref.override;\n var formItemInputContext = useContext(FormItemInputContext);\n var newFormItemInputContext = useMemo(function () {\n var newContext = _extends({}, formItemInputContext);\n\n if (override) {\n delete newContext.isFormItemInput;\n }\n\n if (status) {\n delete newContext.status;\n delete newContext.hasFeedback;\n delete newContext.feedbackIcon;\n }\n\n return newContext;\n }, [status, override, formItemInputContext]);\n return /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: newFormItemInputContext\n }, children);\n};","var _a; // 漏斗占比: data[n][yField] / data[0][yField]\n\n\nexport var FUNNEL_PERCENT = '$$percentage$$'; // 漏斗映射值\n\nexport var FUNNEL_MAPPING_VALUE = '$$mappingValue$$'; // 漏斗转化率: data[n][yField] / data[n-1][yField];\n\nexport var FUNNEL_CONVERSATION = '$$conversion$$'; // 漏斗单项占总体和的百分比,用于动态漏斗图计算高度:\n// data[n][yField] / sum(data[0-n][yField])\n\nexport var FUNNEL_TOTAL_PERCENT = '$$totalPercentage$$'; // 漏斗多边型 x 坐标\n\nexport var PLOYGON_X = '$$x$$';\nexport var PLOYGON_Y = '$$y$$';\n/**\n * 漏斗图 默认配置项\n */\n\nexport var DEFAULT_OPTIONS = {\n appendPadding: [0, 80],\n minSize: 0,\n maxSize: 1,\n meta: (_a = {}, _a[FUNNEL_MAPPING_VALUE] = {\n min: 0,\n max: 1,\n nice: false\n }, _a),\n label: {\n style: {\n fill: '#fff',\n fontSize: 12\n }\n },\n tooltip: {\n showTitle: false,\n showMarkers: false,\n shared: false\n },\n conversionTag: {\n offsetX: 10,\n offsetY: 0,\n style: {\n fontSize: 12,\n fill: 'rgba(0,0,0,0.45)'\n }\n }\n};","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * React Router v6.3.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { parsePath, createMemoryHistory, Action } from 'history';\nexport { Action as NavigationType, createPath, parsePath } from 'history';\nimport { createContext, useContext, useMemo, useRef, useEffect, useCallback, createElement, useState, useLayoutEffect, Children, isValidElement, Fragment } from 'react';\nvar NavigationContext = /*#__PURE__*/createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n NavigationContext.displayName = \"Navigation\";\n}\n\nvar LocationContext = /*#__PURE__*/createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n LocationContext.displayName = \"Location\";\n}\n\nvar RouteContext = /*#__PURE__*/createContext({\n outlet: null,\n matches: []\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n RouteContext.displayName = \"Route\";\n}\n\nfunction invariant(cond, message) {\n if (!cond) throw new Error(message);\n}\n\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nvar alreadyWarned = {};\n\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n process.env.NODE_ENV !== \"production\" ? warning(false, message) : void 0;\n }\n}\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/api#generatepath\n */\n\n\nfunction generatePath(path, params) {\n if (params === void 0) {\n params = {};\n }\n\n return path.replace(/:(\\w+)/g, function (_, key) {\n !(params[key] != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Missing \\\":\" + key + \"\\\" param\") : invariant(false) : void 0;\n return params[key];\n }).replace(/\\/*\\*$/, function (_) {\n return params[\"*\"] == null ? \"\" : params[\"*\"].replace(/^\\/*/, \"/\");\n });\n}\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchroutes\n */\n\n\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\n\n var location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n var pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n var branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n var matches = null;\n\n for (var i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], pathname);\n }\n\n return matches;\n}\n\nfunction flattenRoutes(routes, branches, parentsMeta, parentPath) {\n if (branches === void 0) {\n branches = [];\n }\n\n if (parentsMeta === void 0) {\n parentsMeta = [];\n }\n\n if (parentPath === void 0) {\n parentPath = \"\";\n }\n\n routes.forEach(function (route, index) {\n var meta = {\n relativePath: route.path || \"\",\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route: route\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n !meta.relativePath.startsWith(parentPath) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Absolute route path \\\"\" + meta.relativePath + \"\\\" nested under path \" + (\"\\\"\" + parentPath + \"\\\" is not valid. An absolute child route path \") + \"must start with the combined path of all its parent routes.\") : invariant(false) : void 0;\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n var path = joinPaths([parentPath, meta.relativePath]);\n var routesMeta = parentsMeta.concat(meta); // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n\n if (route.children && route.children.length > 0) {\n !(route.index !== true) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Index routes must not have child routes. Please remove \" + (\"all child routes from route path \\\"\" + path + \"\\\".\")) : invariant(false) : void 0;\n flattenRoutes(route.children, branches, routesMeta, path);\n } // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n\n\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path: path,\n score: computeScore(path, route.index),\n routesMeta: routesMeta\n });\n });\n return branches;\n}\n\nfunction rankRouteBranches(branches) {\n branches.sort(function (a, b) {\n return a.score !== b.score ? b.score - a.score // Higher score first\n : compareIndexes(a.routesMeta.map(function (meta) {\n return meta.childrenIndex;\n }), b.routesMeta.map(function (meta) {\n return meta.childrenIndex;\n }));\n });\n}\n\nvar paramRe = /^:\\w+$/;\nvar dynamicSegmentValue = 3;\nvar indexRouteValue = 2;\nvar emptySegmentValue = 1;\nvar staticSegmentValue = 10;\nvar splatPenalty = -2;\n\nvar isSplat = function isSplat(s) {\n return s === \"*\";\n};\n\nfunction computeScore(path, index) {\n var segments = path.split(\"/\");\n var initialScore = segments.length;\n\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments.filter(function (s) {\n return !isSplat(s);\n }).reduce(function (score, segment) {\n return score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue);\n }, initialScore);\n}\n\nfunction compareIndexes(a, b) {\n var siblings = a.length === b.length && a.slice(0, -1).every(function (n, i) {\n return n === b[i];\n });\n return siblings ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1] : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch(branch, pathname) {\n var routesMeta = branch.routesMeta;\n var matchedParams = {};\n var matchedPathname = \"/\";\n var matches = [];\n\n for (var i = 0; i < routesMeta.length; ++i) {\n var meta = routesMeta[i];\n var end = i === routesMeta.length - 1;\n var remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n var match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: end\n }, remainingPathname);\n if (!match) return null;\n Object.assign(matchedParams, match.params);\n var route = meta.route;\n matches.push({\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])),\n route: route\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchpath\n */\n\n\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = {\n path: pattern,\n caseSensitive: false,\n end: true\n };\n }\n\n var _compilePath = compilePath(pattern.path, pattern.caseSensitive, pattern.end),\n _compilePath2 = _slicedToArray(_compilePath, 2),\n matcher = _compilePath2[0],\n paramNames = _compilePath2[1];\n\n var match = pathname.match(matcher);\n if (!match) return null;\n var matchedPathname = match[0];\n var pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n var captureGroups = match.slice(1);\n var params = paramNames.reduce(function (memo, paramName, index) {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n var splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(captureGroups[index] || \"\", paramName);\n return memo;\n }, {});\n return {\n params: params,\n pathname: matchedPathname,\n pathnameBase: pathnameBase,\n pattern: pattern\n };\n}\n\nfunction compilePath(path, caseSensitive, end) {\n if (caseSensitive === void 0) {\n caseSensitive = false;\n }\n\n if (end === void 0) {\n end = true;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"), \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\")) : void 0;\n var paramNames = [];\n var regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/:(\\w+)/g, function (_, paramName) {\n paramNames.push(paramName);\n return \"([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else {\n regexpSource += end ? \"\\\\/*$\" // When matching to the end, ignore trailing slashes\n : // Otherwise, match a word boundary or a proceeding /. The word boundary restricts\n // parent routes to matching only their own words and nothing more, e.g. parent\n // route \"/home\" should not match \"/home2\".\n // Additionally, allow paths starting with `.`, `-`, `~`, and url-encoded entities,\n // but do not consume the character in the matched path so they can match against\n // nested paths.\n \"(?:(?=[.~-]|%[0-9A-F]{2})|\\\\b|\\\\/|$)\";\n }\n\n var matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURIComponent(value, paramName) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"The value for the URL param \\\"\" + paramName + \"\\\" will not be decoded because\" + (\" the string \\\"\" + value + \"\\\" is a malformed URL segment. This is probably\") + (\" due to a bad percent encoding (\" + error + \").\")) : void 0;\n return value;\n }\n}\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/api#resolvepath\n */\n\n\nfunction resolvePath(to, fromPathname) {\n if (fromPathname === void 0) {\n fromPathname = \"/\";\n }\n\n var _ref5 = typeof to === \"string\" ? parsePath(to) : to,\n toPathname = _ref5.pathname,\n _ref5$search = _ref5.search,\n search = _ref5$search === void 0 ? \"\" : _ref5$search,\n _ref5$hash = _ref5.hash,\n hash = _ref5$hash === void 0 ? \"\" : _ref5$hash;\n\n var pathname = toPathname ? toPathname.startsWith(\"/\") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname;\n return {\n pathname: pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\n\nfunction resolvePathname(relativePath, fromPathname) {\n var segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n var relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach(function (segment) {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction resolveTo(toArg, routePathnames, locationPathname) {\n var to = typeof toArg === \"string\" ? parsePath(toArg) : toArg;\n var toPathname = toArg === \"\" || to.pathname === \"\" ? \"/\" : to.pathname; // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n\n var from;\n\n if (toPathname == null) {\n from = locationPathname;\n } else {\n var routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n var toSegments = toPathname.split(\"/\"); // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n } // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n var path = resolvePath(to, from); // Ensure the pathname has a trailing slash if the original to value had one.\n\n if (toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\") && !path.pathname.endsWith(\"/\")) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\nfunction getToPathname(to) {\n // Empty strings should be treated the same as / paths\n return to === \"\" || to.pathname === \"\" ? \"/\" : typeof to === \"string\" ? parsePath(to).pathname : to.pathname;\n}\n\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n var nextChar = pathname.charAt(basename.length);\n\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(basename.length) || \"/\";\n}\n\nvar joinPaths = function joinPaths(paths) {\n return paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n};\n\nvar normalizePathname = function normalizePathname(pathname) {\n return pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n};\n\nvar normalizeSearch = function normalizeSearch(search) {\n return !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\n};\n\nvar normalizeHash = function normalizeHash(hash) {\n return !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n};\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usehref\n */\n\n\nfunction useHref(to) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useHref() may be used only in the context of a component.\") : invariant(false) : void 0;\n\n var _useContext = useContext(NavigationContext),\n basename = _useContext.basename,\n navigator = _useContext.navigator;\n\n var _useResolvedPath = useResolvedPath(to),\n hash = _useResolvedPath.hash,\n pathname = _useResolvedPath.pathname,\n search = _useResolvedPath.search;\n\n var joinedPathname = pathname;\n\n if (basename !== \"/\") {\n var toPathname = getToPathname(to);\n var endsWithSlash = toPathname != null && toPathname.endsWith(\"/\");\n joinedPathname = pathname === \"/\" ? basename + (endsWithSlash ? \"/\" : \"\") : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({\n pathname: joinedPathname,\n search: search,\n hash: hash\n });\n}\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/docs/en/v6/api#useinroutercontext\n */\n\n\nfunction useInRouterContext() {\n return useContext(LocationContext) != null;\n}\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/api#uselocation\n */\n\n\nfunction useLocation() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useLocation() may be used only in the context of a component.\") : invariant(false) : void 0;\n return useContext(LocationContext).location;\n}\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigationtype\n */\n\n\nfunction useNavigationType() {\n return useContext(LocationContext).navigationType;\n}\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/docs/en/v6/api#usematch\n */\n\n\nfunction useMatch(pattern) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useMatch() may be used only in the context of a component.\") : invariant(false) : void 0;\n\n var _useLocation = useLocation(),\n pathname = _useLocation.pathname;\n\n return useMemo(function () {\n return matchPath(pattern, pathname);\n }, [pathname, pattern]);\n}\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigate\n */\n\n\nfunction useNavigate() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useNavigate() may be used only in the context of a component.\") : invariant(false) : void 0;\n\n var _useContext2 = useContext(NavigationContext),\n basename = _useContext2.basename,\n navigator = _useContext2.navigator;\n\n var _useContext3 = useContext(RouteContext),\n matches = _useContext3.matches;\n\n var _useLocation2 = useLocation(),\n locationPathname = _useLocation2.pathname;\n\n var routePathnamesJson = JSON.stringify(matches.map(function (match) {\n return match.pathnameBase;\n }));\n var activeRef = useRef(false);\n useEffect(function () {\n activeRef.current = true;\n });\n var navigate = useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(activeRef.current, \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\") : void 0;\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n var path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname);\n\n if (basename !== \"/\") {\n path.pathname = joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(path, options.state);\n }, [basename, navigator, routePathnamesJson, locationPathname]);\n return navigate;\n}\n\nvar OutletContext = /*#__PURE__*/createContext(null);\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/docs/en/v6/api#useoutletcontext\n */\n\nfunction useOutletContext() {\n return useContext(OutletContext);\n}\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useoutlet\n */\n\n\nfunction useOutlet(context) {\n var outlet = useContext(RouteContext).outlet;\n\n if (outlet) {\n return /*#__PURE__*/createElement(OutletContext.Provider, {\n value: context\n }, outlet);\n }\n\n return outlet;\n}\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useparams\n */\n\n\nfunction useParams() {\n var _useContext4 = useContext(RouteContext),\n matches = _useContext4.matches;\n\n var routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useresolvedpath\n */\n\n\nfunction useResolvedPath(to) {\n var _useContext5 = useContext(RouteContext),\n matches = _useContext5.matches;\n\n var _useLocation3 = useLocation(),\n locationPathname = _useLocation3.pathname;\n\n var routePathnamesJson = JSON.stringify(matches.map(function (match) {\n return match.pathnameBase;\n }));\n return useMemo(function () {\n return resolveTo(to, JSON.parse(routePathnamesJson), locationPathname);\n }, [to, routePathnamesJson, locationPathname]);\n}\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useroutes\n */\n\n\nfunction useRoutes(routes, locationArg) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useRoutes() may be used only in the context of a component.\") : invariant(false) : void 0;\n\n var _useContext6 = useContext(RouteContext),\n parentMatches = _useContext6.matches;\n\n var routeMatch = parentMatches[parentMatches.length - 1];\n var parentParams = routeMatch ? routeMatch.params : {};\n var parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n var parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n var parentRoute = routeMatch && routeMatch.route;\n\n if (process.env.NODE_ENV !== \"production\") {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n var parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under ) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent to .\"));\n }\n\n var locationFromContext = useLocation();\n var location;\n\n if (locationArg) {\n var _parsedLocationArg$pa;\n\n var parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"When overriding the location using `` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : invariant(false) : void 0;\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n var pathname = location.pathname || \"/\";\n var remainingPathname = parentPathnameBase === \"/\" ? pathname : pathname.slice(parentPathnameBase.length) || \"/\";\n var matches = matchRoutes(routes, {\n pathname: remainingPathname\n });\n\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(matches == null || matches[matches.length - 1].route.element !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" does not have an element. \" + \"This means it will render an with a null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n }\n\n return _renderMatches(matches && matches.map(function (match) {\n return Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase, match.pathnameBase])\n });\n }), parentMatches);\n}\n\nfunction _renderMatches(matches, parentMatches) {\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n\n if (matches == null) return null;\n return matches.reduceRight(function (outlet, match, index) {\n return /*#__PURE__*/createElement(RouteContext.Provider, {\n children: match.route.element !== undefined ? match.route.element : outlet,\n value: {\n outlet: outlet,\n matches: parentMatches.concat(matches.slice(0, index + 1))\n }\n });\n }, null);\n}\n/**\n * A that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/api#memoryrouter\n */\n\n\nfunction MemoryRouter(_ref) {\n var basename = _ref.basename,\n children = _ref.children,\n initialEntries = _ref.initialEntries,\n initialIndex = _ref.initialIndex;\n var historyRef = useRef();\n\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({\n initialEntries: initialEntries,\n initialIndex: initialIndex\n });\n }\n\n var history = historyRef.current;\n\n var _useState = useState({\n action: history.action,\n location: history.location\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n useLayoutEffect(function () {\n return history.listen(setState);\n }, [history]);\n return /*#__PURE__*/createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history\n });\n}\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/api#navigate\n */\n\n\nfunction Navigate(_ref2) {\n var to = _ref2.to,\n replace = _ref2.replace,\n state = _ref2.state;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n \" may be used only in the context of a component.\") : invariant(false) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!useContext(NavigationContext)[\"static\"], \" must not be used on the initial render in a . \" + \"This is a no-op, but you should modify your code so the is \" + \"only ever rendered in response to some user interaction or state change.\") : void 0;\n var navigate = useNavigate();\n useEffect(function () {\n navigate(to, {\n replace: replace,\n state: state\n });\n });\n return null;\n}\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/api#outlet\n */\n\n\nfunction Outlet(props) {\n return useOutlet(props.context);\n}\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#route\n */\n\n\nfunction Route(_props) {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"A is only ever to be used as the child of element, \" + \"never rendered directly. Please wrap your in a .\") : invariant(false);\n}\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a directly. Instead, you'll render a\n * router that is more specific to your environment such as a \n * in web browsers or a for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/api#router\n */\n\n\nfunction Router(_ref3) {\n var _ref3$basename = _ref3.basename,\n basenameProp = _ref3$basename === void 0 ? \"/\" : _ref3$basename,\n _ref3$children = _ref3.children,\n children = _ref3$children === void 0 ? null : _ref3$children,\n locationProp = _ref3.location,\n _ref3$navigationType = _ref3.navigationType,\n navigationType = _ref3$navigationType === void 0 ? Action.Pop : _ref3$navigationType,\n navigator = _ref3.navigator,\n _ref3$static = _ref3[\"static\"],\n staticProp = _ref3$static === void 0 ? false : _ref3$static;\n !!useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot render a inside another .\" + \" You should never have more than one in your app.\") : invariant(false) : void 0;\n var basename = normalizePathname(basenameProp);\n var navigationContext = useMemo(function () {\n return {\n basename: basename,\n navigator: navigator,\n \"static\": staticProp\n };\n }, [basename, navigator, staticProp]);\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n var _locationProp = locationProp,\n _locationProp$pathnam = _locationProp.pathname,\n pathname = _locationProp$pathnam === void 0 ? \"/\" : _locationProp$pathnam,\n _locationProp$search = _locationProp.search,\n search = _locationProp$search === void 0 ? \"\" : _locationProp$search,\n _locationProp$hash = _locationProp.hash,\n hash = _locationProp$hash === void 0 ? \"\" : _locationProp$hash,\n _locationProp$state = _locationProp.state,\n state = _locationProp$state === void 0 ? null : _locationProp$state,\n _locationProp$key = _locationProp.key,\n key = _locationProp$key === void 0 ? \"default\" : _locationProp$key;\n var location = useMemo(function () {\n var trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search: search,\n hash: hash,\n state: state,\n key: key\n };\n }, [basename, pathname, search, hash, state, key]);\n process.env.NODE_ENV !== \"production\" ? warning(location != null, \" is not able to match the URL \" + (\"\\\"\" + pathname + search + hash + \"\\\" because it does not start with the \") + \"basename, so the won't render anything.\") : void 0;\n\n if (location == null) {\n return null;\n }\n\n return /*#__PURE__*/createElement(NavigationContext.Provider, {\n value: navigationContext\n }, /*#__PURE__*/createElement(LocationContext.Provider, {\n children: children,\n value: {\n location: location,\n navigationType: navigationType\n }\n }));\n}\n/**\n * A container for a nested tree of elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#routes\n */\n\n\nfunction Routes(_ref4) {\n var children = _ref4.children,\n location = _ref4.location;\n return useRoutes(createRoutesFromChildren(children), location);\n} ///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `` element or an array of them. Used internally by\n * `` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/api#createroutesfromchildren\n */\n\n\nfunction createRoutesFromChildren(children) {\n var routes = [];\n Children.forEach(children, function (element) {\n if (! /*#__PURE__*/isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(routes, createRoutesFromChildren(element.props.children));\n return;\n }\n\n !(element.type === Route) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"[\" + (typeof element.type === \"string\" ? element.type : element.type.name) + \"] is not a component. All component children of must be a or \") : invariant(false) : void 0;\n var route = {\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children);\n }\n\n routes.push(route);\n });\n return routes;\n}\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\n\n\nfunction renderMatches(matches) {\n return _renderMatches(matches);\n}\n\nexport { MemoryRouter, Navigate, Outlet, Route, Router, Routes, LocationContext as UNSAFE_LocationContext, NavigationContext as UNSAFE_NavigationContext, RouteContext as UNSAFE_RouteContext, createRoutesFromChildren, generatePath, matchPath, matchRoutes, renderMatches, resolvePath, useHref, useInRouterContext, useLocation, useMatch, useNavigate, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRoutes };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nexport default function omit(obj, fields) {\n var clone = _objectSpread({}, obj);\n\n if (Array.isArray(fields)) {\n fields.forEach(function (key) {\n delete clone[key];\n });\n }\n\n return clone;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport omit from \"rc-util/es/omit\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport { getPosition, isTreeNode } from '../util';\nexport function getKey(key, pos) {\n if (key !== null && key !== undefined) {\n return key;\n }\n\n return pos;\n}\nexport function fillFieldNames(fieldNames) {\n var _ref = fieldNames || {},\n title = _ref.title,\n _title = _ref._title,\n key = _ref.key,\n children = _ref.children;\n\n var mergedTitle = title || 'title';\n return {\n title: mergedTitle,\n _title: _title || [mergedTitle],\n key: key || 'key',\n children: children || 'children'\n };\n}\n/**\n * Warning if TreeNode do not provides key\n */\n\nexport function warningWithoutKey(treeData, fieldNames) {\n var keys = new Map();\n\n function dig(list) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (list || []).forEach(function (treeNode) {\n var key = treeNode[fieldNames.key];\n var children = treeNode[fieldNames.children];\n warning(key !== null && key !== undefined, \"Tree node must have a certain key: [\".concat(path).concat(key, \"]\"));\n var recordKey = String(key);\n warning(!keys.has(recordKey) || key === null || key === undefined, \"Same 'key' exist in the Tree: \".concat(recordKey));\n keys.set(recordKey, true);\n dig(children, \"\".concat(path).concat(recordKey, \" > \"));\n });\n }\n\n dig(treeData);\n}\n/**\n * Convert `children` of Tree into `treeData` structure.\n */\n\nexport function convertTreeToData(rootNodes) {\n function dig(node) {\n var treeNodes = toArray(node);\n return treeNodes.map(function (treeNode) {\n // Filter invalidate node\n if (!isTreeNode(treeNode)) {\n warning(!treeNode, 'Tree/TreeNode can only accept TreeNode as children.');\n return null;\n }\n\n var key = treeNode.key;\n\n var _treeNode$props = treeNode.props,\n children = _treeNode$props.children,\n rest = _objectWithoutProperties(_treeNode$props, _excluded);\n\n var dataNode = _objectSpread({\n key: key\n }, rest);\n\n var parsedChildren = dig(children);\n\n if (parsedChildren.length) {\n dataNode.children = parsedChildren;\n }\n\n return dataNode;\n }).filter(function (dataNode) {\n return dataNode;\n });\n }\n\n return dig(rootNodes);\n}\n/**\n * Flat nest tree data into flatten list. This is used for virtual list render.\n * @param treeNodeList Origin data node list\n * @param expandedKeys\n * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).\n */\n\nexport function flattenTreeData(treeNodeList, expandedKeys, fieldNames) {\n var _fillFieldNames = fillFieldNames(fieldNames),\n fieldTitles = _fillFieldNames._title,\n fieldKey = _fillFieldNames.key,\n fieldChildren = _fillFieldNames.children;\n\n var expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);\n var flattenList = [];\n\n function dig(list) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return list.map(function (treeNode, index) {\n var pos = getPosition(parent ? parent.pos : '0', index);\n var mergedKey = getKey(treeNode[fieldKey], pos); // Pick matched title in field title list\n\n var mergedTitle;\n\n for (var i = 0; i < fieldTitles.length; i += 1) {\n var fieldTitle = fieldTitles[i];\n\n if (treeNode[fieldTitle] !== undefined) {\n mergedTitle = treeNode[fieldTitle];\n break;\n }\n } // Add FlattenDataNode into list\n\n\n var flattenNode = _objectSpread(_objectSpread({}, omit(treeNode, [].concat(_toConsumableArray(fieldTitles), [fieldKey, fieldChildren]))), {}, {\n title: mergedTitle,\n key: mergedKey,\n parent: parent,\n pos: pos,\n children: null,\n data: treeNode,\n isStart: [].concat(_toConsumableArray(parent ? parent.isStart : []), [index === 0]),\n isEnd: [].concat(_toConsumableArray(parent ? parent.isEnd : []), [index === list.length - 1])\n });\n\n flattenList.push(flattenNode); // Loop treeNode children\n\n if (expandedKeys === true || expandedKeySet.has(mergedKey)) {\n flattenNode.children = dig(treeNode[fieldChildren] || [], flattenNode);\n } else {\n flattenNode.children = [];\n }\n\n return flattenNode;\n });\n }\n\n dig(treeNodeList);\n return flattenList;\n}\n/**\n * Traverse all the data by `treeData`.\n * Please not use it out of the `rc-tree` since we may refactor this code.\n */\n\nexport function traverseDataNodes(dataNodes, callback, // To avoid too many params, let use config instead of origin param\nconfig) {\n var mergedConfig = {};\n\n if (_typeof(config) === 'object') {\n mergedConfig = config;\n } else {\n mergedConfig = {\n externalGetKey: config\n };\n }\n\n mergedConfig = mergedConfig || {}; // Init config\n\n var _mergedConfig = mergedConfig,\n childrenPropName = _mergedConfig.childrenPropName,\n externalGetKey = _mergedConfig.externalGetKey,\n fieldNames = _mergedConfig.fieldNames;\n\n var _fillFieldNames2 = fillFieldNames(fieldNames),\n fieldKey = _fillFieldNames2.key,\n fieldChildren = _fillFieldNames2.children;\n\n var mergeChildrenPropName = childrenPropName || fieldChildren; // Get keys\n\n var syntheticGetKey;\n\n if (externalGetKey) {\n if (typeof externalGetKey === 'string') {\n syntheticGetKey = function syntheticGetKey(node) {\n return node[externalGetKey];\n };\n } else if (typeof externalGetKey === 'function') {\n syntheticGetKey = function syntheticGetKey(node) {\n return externalGetKey(node);\n };\n }\n } else {\n syntheticGetKey = function syntheticGetKey(node, pos) {\n return getKey(node[fieldKey], pos);\n };\n } // Process\n\n\n function processNode(node, index, parent, pathNodes) {\n var children = node ? node[mergeChildrenPropName] : dataNodes;\n var pos = node ? getPosition(parent.pos, index) : '0';\n var connectNodes = node ? [].concat(_toConsumableArray(pathNodes), [node]) : []; // Process node if is not root\n\n if (node) {\n var key = syntheticGetKey(node, pos);\n var data = {\n node: node,\n index: index,\n pos: pos,\n key: key,\n parentPos: parent.node ? parent.pos : null,\n level: parent.level + 1,\n nodes: connectNodes\n };\n callback(data);\n } // Process children node\n\n\n if (children) {\n children.forEach(function (subNode, subIndex) {\n processNode(subNode, subIndex, {\n node: node,\n pos: pos,\n level: parent ? parent.level + 1 : -1\n }, connectNodes);\n });\n }\n }\n\n processNode(null);\n}\n/**\n * Convert `treeData` into entity records.\n */\n\nexport function convertDataToEntities(dataNodes) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n initWrapper = _ref2.initWrapper,\n processEntity = _ref2.processEntity,\n onProcessFinished = _ref2.onProcessFinished,\n externalGetKey = _ref2.externalGetKey,\n childrenPropName = _ref2.childrenPropName,\n fieldNames = _ref2.fieldNames;\n\n var\n /** @deprecated Use `config.externalGetKey` instead */\n legacyExternalGetKey = arguments.length > 2 ? arguments[2] : undefined; // Init config\n\n var mergedExternalGetKey = externalGetKey || legacyExternalGetKey;\n var posEntities = {};\n var keyEntities = {};\n var wrapper = {\n posEntities: posEntities,\n keyEntities: keyEntities\n };\n\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n\n traverseDataNodes(dataNodes, function (item) {\n var node = item.node,\n index = item.index,\n pos = item.pos,\n key = item.key,\n parentPos = item.parentPos,\n level = item.level,\n nodes = item.nodes;\n var entity = {\n node: node,\n nodes: nodes,\n index: index,\n key: key,\n pos: pos,\n level: level\n };\n var mergedKey = getKey(key, pos);\n posEntities[pos] = entity;\n keyEntities[mergedKey] = entity; // Fill children\n\n entity.parent = posEntities[parentPos];\n\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n }, {\n externalGetKey: mergedExternalGetKey,\n childrenPropName: childrenPropName,\n fieldNames: fieldNames\n });\n\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n\n return wrapper;\n}\n/**\n * Get TreeNode props with Tree props.\n */\n\nexport function getTreeNodeProps(key, _ref3) {\n var expandedKeys = _ref3.expandedKeys,\n selectedKeys = _ref3.selectedKeys,\n loadedKeys = _ref3.loadedKeys,\n loadingKeys = _ref3.loadingKeys,\n checkedKeys = _ref3.checkedKeys,\n halfCheckedKeys = _ref3.halfCheckedKeys,\n dragOverNodeKey = _ref3.dragOverNodeKey,\n dropPosition = _ref3.dropPosition,\n keyEntities = _ref3.keyEntities;\n var entity = keyEntities[key];\n var treeNodeProps = {\n eventKey: key,\n expanded: expandedKeys.indexOf(key) !== -1,\n selected: selectedKeys.indexOf(key) !== -1,\n loaded: loadedKeys.indexOf(key) !== -1,\n loading: loadingKeys.indexOf(key) !== -1,\n checked: checkedKeys.indexOf(key) !== -1,\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos: String(entity ? entity.pos : ''),\n // [Legacy] Drag props\n // Since the interaction of drag is changed, the semantic of the props are\n // not accuracy, I think it should be finally removed\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1\n };\n return treeNodeProps;\n}\nexport function convertNodePropsToEventData(props) {\n var data = props.data,\n expanded = props.expanded,\n selected = props.selected,\n checked = props.checked,\n loaded = props.loaded,\n loading = props.loading,\n halfChecked = props.halfChecked,\n dragOver = props.dragOver,\n dragOverGapTop = props.dragOverGapTop,\n dragOverGapBottom = props.dragOverGapBottom,\n pos = props.pos,\n active = props.active,\n eventKey = props.eventKey;\n\n var eventData = _objectSpread(_objectSpread({}, data), {}, {\n expanded: expanded,\n selected: selected,\n checked: checked,\n loaded: loaded,\n loading: loading,\n halfChecked: halfChecked,\n dragOver: dragOver,\n dragOverGapTop: dragOverGapTop,\n dragOverGapBottom: dragOverGapBottom,\n pos: pos,\n active: active,\n key: eventKey\n });\n\n if (!('props' in eventData)) {\n Object.defineProperty(eventData, 'props', {\n get: function get() {\n warning(false, 'Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`.');\n return props;\n }\n });\n }\n\n return eventData;\n}","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n))); // Automatically convert percentage into number\n\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n } // Handle floating point rounding errors\n\n\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n } // Convert into [0, 1] range if it isn't already\n\n\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? n % max + max : n % max) / parseFloat(String(max));\n } else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = n % max / parseFloat(String(max));\n }\n\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\n\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * \n * @hidden\n */\n\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\n\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\n\nexport function boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\n\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\n\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}","import { each, isArray } from '@antv/util';\nvar SPACES = \"\\t\\n\\x0B\\f\\r \\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\";\nvar PATH_COMMAND = new RegExp(\"([a-z])[\" + SPACES + \",]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\" + SPACES + \"]*,?[\" + SPACES + \"]*)+)\", 'ig');\nvar PATH_VALUES = new RegExp(\"(-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?)[\" + SPACES + \"]*,?[\" + SPACES + \"]*\", 'ig'); // Parse given path string into an array of arrays of path segments\n\nvar parsePathString = function parsePathString(pathString) {\n if (!pathString) {\n return null;\n }\n\n if (isArray(pathString)) {\n return pathString;\n }\n\n var paramCounts = {\n a: 7,\n c: 6,\n o: 2,\n h: 1,\n l: 2,\n m: 2,\n r: 4,\n q: 4,\n s: 4,\n t: 2,\n v: 1,\n u: 3,\n z: 0\n };\n var data = [];\n String(pathString).replace(PATH_COMMAND, function (a, b, c) {\n var params = [];\n var name = b.toLowerCase();\n c.replace(PATH_VALUES, function (a, b) {\n b && params.push(+b);\n });\n\n if (name === 'm' && params.length > 2) {\n data.push([b].concat(params.splice(0, 2)));\n name = 'l';\n b = b === 'm' ? 'l' : 'L';\n }\n\n if (name === 'o' && params.length === 1) {\n data.push([b, params[0]]);\n }\n\n if (name === 'r') {\n data.push([b].concat(params));\n } else {\n while (params.length >= paramCounts[name]) {\n data.push([b].concat(params.splice(0, paramCounts[name])));\n\n if (!paramCounts[name]) {\n break;\n }\n }\n }\n\n return pathString;\n });\n return data;\n}; // http://schepers.cc/getting-to-the-point\n\n\nvar catmullRomToBezier = function catmullRomToBezier(crp, z) {\n var d = []; // @ts-ignore\n\n for (var i = 0, iLen = crp.length; iLen - 2 * !z > i; i += 2) {\n var p = [{\n x: +crp[i - 2],\n y: +crp[i - 1]\n }, {\n x: +crp[i],\n y: +crp[i + 1]\n }, {\n x: +crp[i + 2],\n y: +crp[i + 3]\n }, {\n x: +crp[i + 4],\n y: +crp[i + 5]\n }];\n\n if (z) {\n if (!i) {\n p[0] = {\n x: +crp[iLen - 2],\n y: +crp[iLen - 1]\n };\n } else if (iLen - 4 === i) {\n p[3] = {\n x: +crp[0],\n y: +crp[1]\n };\n } else if (iLen - 2 === i) {\n p[2] = {\n x: +crp[0],\n y: +crp[1]\n };\n p[3] = {\n x: +crp[2],\n y: +crp[3]\n };\n }\n } else {\n if (iLen - 4 === i) {\n p[3] = p[2];\n } else if (!i) {\n p[0] = {\n x: +crp[i],\n y: +crp[i + 1]\n };\n }\n }\n\n d.push(['C', (-p[0].x + 6 * p[1].x + p[2].x) / 6, (-p[0].y + 6 * p[1].y + p[2].y) / 6, (p[1].x + 6 * p[2].x - p[3].x) / 6, (p[1].y + 6 * p[2].y - p[3].y) / 6, p[2].x, p[2].y]);\n }\n\n return d;\n};\n\nvar ellipsePath = function ellipsePath(x, y, rx, ry, a) {\n var res = [];\n\n if (a === null && ry === null) {\n ry = rx;\n }\n\n x = +x;\n y = +y;\n rx = +rx;\n ry = +ry;\n\n if (a !== null) {\n var rad = Math.PI / 180;\n var x1 = x + rx * Math.cos(-ry * rad);\n var x2 = x + rx * Math.cos(-a * rad);\n var y1 = y + rx * Math.sin(-ry * rad);\n var y2 = y + rx * Math.sin(-a * rad);\n res = [['M', x1, y1], ['A', rx, rx, 0, +(a - ry > 180), 0, x2, y2]];\n } else {\n res = [['M', x, y], ['m', 0, -ry], ['a', rx, ry, 0, 1, 1, 0, 2 * ry], ['a', rx, ry, 0, 1, 1, 0, -2 * ry], ['z']];\n }\n\n return res;\n};\n\nvar pathToAbsolute = function pathToAbsolute(pathArray) {\n pathArray = parsePathString(pathArray);\n\n if (!pathArray || !pathArray.length) {\n return [['M', 0, 0]];\n }\n\n var res = [];\n var x = 0;\n var y = 0;\n var mx = 0;\n var my = 0;\n var start = 0;\n var pa0;\n var dots;\n\n if (pathArray[0][0] === 'M') {\n x = +pathArray[0][1];\n y = +pathArray[0][2];\n mx = x;\n my = y;\n start++;\n res[0] = ['M', x, y];\n }\n\n var crz = pathArray.length === 3 && pathArray[0][0] === 'M' && pathArray[1][0].toUpperCase() === 'R' && pathArray[2][0].toUpperCase() === 'Z';\n\n for (var r = void 0, pa = void 0, i = start, ii = pathArray.length; i < ii; i++) {\n res.push(r = []);\n pa = pathArray[i];\n pa0 = pa[0];\n\n if (pa0 !== pa0.toUpperCase()) {\n r[0] = pa0.toUpperCase();\n\n switch (r[0]) {\n case 'A':\n r[1] = pa[1];\n r[2] = pa[2];\n r[3] = pa[3];\n r[4] = pa[4];\n r[5] = pa[5];\n r[6] = +pa[6] + x;\n r[7] = +pa[7] + y;\n break;\n\n case 'V':\n r[1] = +pa[1] + y;\n break;\n\n case 'H':\n r[1] = +pa[1] + x;\n break;\n\n case 'R':\n dots = [x, y].concat(pa.slice(1));\n\n for (var j = 2, jj = dots.length; j < jj; j++) {\n dots[j] = +dots[j] + x;\n dots[++j] = +dots[j] + y;\n }\n\n res.pop();\n res = res.concat(catmullRomToBezier(dots, crz));\n break;\n\n case 'O':\n res.pop();\n dots = ellipsePath(x, y, pa[1], pa[2]);\n dots.push(dots[0]);\n res = res.concat(dots);\n break;\n\n case 'U':\n res.pop();\n res = res.concat(ellipsePath(x, y, pa[1], pa[2], pa[3]));\n r = ['U'].concat(res[res.length - 1].slice(-2));\n break;\n\n case 'M':\n mx = +pa[1] + x;\n my = +pa[2] + y;\n break;\n // for lint\n\n default:\n for (var j = 1, jj = pa.length; j < jj; j++) {\n r[j] = +pa[j] + (j % 2 ? x : y);\n }\n\n }\n } else if (pa0 === 'R') {\n dots = [x, y].concat(pa.slice(1));\n res.pop();\n res = res.concat(catmullRomToBezier(dots, crz));\n r = ['R'].concat(pa.slice(-2));\n } else if (pa0 === 'O') {\n res.pop();\n dots = ellipsePath(x, y, pa[1], pa[2]);\n dots.push(dots[0]);\n res = res.concat(dots);\n } else if (pa0 === 'U') {\n res.pop();\n res = res.concat(ellipsePath(x, y, pa[1], pa[2], pa[3]));\n r = ['U'].concat(res[res.length - 1].slice(-2));\n } else {\n for (var k = 0, kk = pa.length; k < kk; k++) {\n r[k] = pa[k];\n }\n }\n\n pa0 = pa0.toUpperCase();\n\n if (pa0 !== 'O') {\n switch (r[0]) {\n case 'Z':\n x = +mx;\n y = +my;\n break;\n\n case 'H':\n x = r[1];\n break;\n\n case 'V':\n y = r[1];\n break;\n\n case 'M':\n mx = r[r.length - 2];\n my = r[r.length - 1];\n break;\n // for lint\n\n default:\n x = r[r.length - 2];\n y = r[r.length - 1];\n }\n }\n }\n\n return res;\n};\n\nvar l2c = function l2c(x1, y1, x2, y2) {\n return [x1, y1, x2, y2, x2, y2];\n};\n\nvar q2c = function q2c(x1, y1, ax, ay, x2, y2) {\n var _13 = 1 / 3;\n\n var _23 = 2 / 3;\n\n return [_13 * x1 + _23 * ax, _13 * y1 + _23 * ay, _13 * x2 + _23 * ax, _13 * y2 + _23 * ay, x2, y2];\n};\n\nvar a2c = function a2c(x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) {\n // for more information of where this math came from visit:\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n if (rx === ry) {\n rx += 1;\n }\n\n var _120 = Math.PI * 120 / 180;\n\n var rad = Math.PI / 180 * (+angle || 0);\n var res = [];\n var xy;\n var f1;\n var f2;\n var cx;\n var cy;\n\n var rotate = function rotate(x, y, rad) {\n var X = x * Math.cos(rad) - y * Math.sin(rad);\n var Y = x * Math.sin(rad) + y * Math.cos(rad);\n return {\n x: X,\n y: Y\n };\n };\n\n if (!recursive) {\n xy = rotate(x1, y1, -rad);\n x1 = xy.x;\n y1 = xy.y;\n xy = rotate(x2, y2, -rad);\n x2 = xy.x;\n y2 = xy.y;\n\n if (x1 === x2 && y1 === y2) {\n // 若弧的起始点和终点重叠则错开一点\n x2 += 1;\n y2 += 1;\n } // const cos = Math.cos(Math.PI / 180 * angle);\n // const sin = Math.sin(Math.PI / 180 * angle);\n\n\n var x = (x1 - x2) / 2;\n var y = (y1 - y2) / 2;\n var h = x * x / (rx * rx) + y * y / (ry * ry);\n\n if (h > 1) {\n h = Math.sqrt(h);\n rx = h * rx;\n ry = h * ry;\n }\n\n var rx2 = rx * rx;\n var ry2 = ry * ry;\n var k = (large_arc_flag === sweep_flag ? -1 : 1) * Math.sqrt(Math.abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x)));\n cx = k * rx * y / ry + (x1 + x2) / 2;\n cy = k * -ry * x / rx + (y1 + y2) / 2; // @ts-ignore\n\n f1 = Math.asin(((y1 - cy) / ry).toFixed(9)); // @ts-ignore\n\n f2 = Math.asin(((y2 - cy) / ry).toFixed(9));\n f1 = x1 < cx ? Math.PI - f1 : f1;\n f2 = x2 < cx ? Math.PI - f2 : f2;\n f1 < 0 && (f1 = Math.PI * 2 + f1);\n f2 < 0 && (f2 = Math.PI * 2 + f2);\n\n if (sweep_flag && f1 > f2) {\n f1 = f1 - Math.PI * 2;\n }\n\n if (!sweep_flag && f2 > f1) {\n f2 = f2 - Math.PI * 2;\n }\n } else {\n f1 = recursive[0];\n f2 = recursive[1];\n cx = recursive[2];\n cy = recursive[3];\n }\n\n var df = f2 - f1;\n\n if (Math.abs(df) > _120) {\n var f2old = f2;\n var x2old = x2;\n var y2old = y2;\n f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1);\n x2 = cx + rx * Math.cos(f2);\n y2 = cy + ry * Math.sin(f2);\n res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]);\n }\n\n df = f2 - f1;\n var c1 = Math.cos(f1);\n var s1 = Math.sin(f1);\n var c2 = Math.cos(f2);\n var s2 = Math.sin(f2);\n var t = Math.tan(df / 4);\n var hx = 4 / 3 * rx * t;\n var hy = 4 / 3 * ry * t;\n var m1 = [x1, y1];\n var m2 = [x1 + hx * s1, y1 - hy * c1];\n var m3 = [x2 + hx * s2, y2 - hy * c2];\n var m4 = [x2, y2];\n m2[0] = 2 * m1[0] - m2[0];\n m2[1] = 2 * m1[1] - m2[1];\n\n if (recursive) {\n return [m2, m3, m4].concat(res);\n }\n\n res = [m2, m3, m4].concat(res).join().split(',');\n var newres = [];\n\n for (var i = 0, ii = res.length; i < ii; i++) {\n newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x;\n }\n\n return newres;\n};\n\nvar pathToCurve = function pathToCurve(path, path2) {\n var p = pathToAbsolute(path);\n var p2 = path2 && pathToAbsolute(path2);\n var attrs = {\n x: 0,\n y: 0,\n bx: 0,\n by: 0,\n X: 0,\n Y: 0,\n qx: null,\n qy: null\n };\n var attrs2 = {\n x: 0,\n y: 0,\n bx: 0,\n by: 0,\n X: 0,\n Y: 0,\n qx: null,\n qy: null\n };\n var pcoms1 = []; // path commands of original path p\n\n var pcoms2 = []; // path commands of original path p2\n\n var pfirst = ''; // temporary holder for original path command\n\n var pcom = ''; // holder for previous path command of original path\n\n var ii;\n\n var processPath = function processPath(path, d, pcom) {\n var nx;\n var ny;\n\n if (!path) {\n return ['C', d.x, d.y, d.x, d.y, d.x, d.y];\n }\n\n !(path[0] in {\n T: 1,\n Q: 1\n }) && (d.qx = d.qy = null);\n\n switch (path[0]) {\n case 'M':\n d.X = path[1];\n d.Y = path[2];\n break;\n\n case 'A':\n path = ['C'].concat(a2c.apply(0, [d.x, d.y].concat(path.slice(1))));\n break;\n\n case 'S':\n if (pcom === 'C' || pcom === 'S') {\n // In \"S\" case we have to take into account, if the previous command is C/S.\n nx = d.x * 2 - d.bx; // And reflect the previous\n\n ny = d.y * 2 - d.by; // command's control point relative to the current point.\n } else {\n // or some else or nothing\n nx = d.x;\n ny = d.y;\n }\n\n path = ['C', nx, ny].concat(path.slice(1));\n break;\n\n case 'T':\n if (pcom === 'Q' || pcom === 'T') {\n // In \"T\" case we have to take into account, if the previous command is Q/T.\n d.qx = d.x * 2 - d.qx; // And make a reflection similar\n\n d.qy = d.y * 2 - d.qy; // to case \"S\".\n } else {\n // or something else or nothing\n d.qx = d.x;\n d.qy = d.y;\n }\n\n path = ['C'].concat(q2c(d.x, d.y, d.qx, d.qy, path[1], path[2]));\n break;\n\n case 'Q':\n d.qx = path[1];\n d.qy = path[2];\n path = ['C'].concat(q2c(d.x, d.y, path[1], path[2], path[3], path[4]));\n break;\n\n case 'L':\n path = ['C'].concat(l2c(d.x, d.y, path[1], path[2]));\n break;\n\n case 'H':\n path = ['C'].concat(l2c(d.x, d.y, path[1], d.y));\n break;\n\n case 'V':\n path = ['C'].concat(l2c(d.x, d.y, d.x, path[1]));\n break;\n\n case 'Z':\n path = ['C'].concat(l2c(d.x, d.y, d.X, d.Y));\n break;\n\n default:\n break;\n }\n\n return path;\n };\n\n var fixArc = function fixArc(pp, i) {\n if (pp[i].length > 7) {\n pp[i].shift();\n var pi = pp[i];\n\n while (pi.length) {\n pcoms1[i] = 'A'; // if created multiple C:s, their original seg is saved\n\n p2 && (pcoms2[i] = 'A'); // the same as above\n\n pp.splice(i++, 0, ['C'].concat(pi.splice(0, 6)));\n }\n\n pp.splice(i, 1);\n ii = Math.max(p.length, p2 && p2.length || 0);\n }\n };\n\n var fixM = function fixM(path1, path2, a1, a2, i) {\n if (path1 && path2 && path1[i][0] === 'M' && path2[i][0] !== 'M') {\n path2.splice(i, 0, ['M', a2.x, a2.y]);\n a1.bx = 0;\n a1.by = 0;\n a1.x = path1[i][1];\n a1.y = path1[i][2];\n ii = Math.max(p.length, p2 && p2.length || 0);\n }\n };\n\n ii = Math.max(p.length, p2 && p2.length || 0);\n\n for (var i = 0; i < ii; i++) {\n p[i] && (pfirst = p[i][0]); // save current path command\n\n if (pfirst !== 'C') {\n // C is not saved yet, because it may be result of conversion\n pcoms1[i] = pfirst; // Save current path command\n\n i && (pcom = pcoms1[i - 1]); // Get previous path command pcom\n }\n\n p[i] = processPath(p[i], attrs, pcom); // Previous path command is inputted to processPath\n\n if (pcoms1[i] !== 'A' && pfirst === 'C') pcoms1[i] = 'C'; // A is the only command\n // which may produce multiple C:s\n // so we have to make sure that C is also C in original path\n\n fixArc(p, i); // fixArc adds also the right amount of A:s to pcoms1\n\n if (p2) {\n // the same procedures is done to p2\n p2[i] && (pfirst = p2[i][0]);\n\n if (pfirst !== 'C') {\n pcoms2[i] = pfirst;\n i && (pcom = pcoms2[i - 1]);\n }\n\n p2[i] = processPath(p2[i], attrs2, pcom);\n\n if (pcoms2[i] !== 'A' && pfirst === 'C') {\n pcoms2[i] = 'C';\n }\n\n fixArc(p2, i);\n }\n\n fixM(p, p2, attrs, attrs2, i);\n fixM(p2, p, attrs2, attrs, i);\n var seg = p[i];\n var seg2 = p2 && p2[i];\n var seglen = seg.length;\n var seg2len = p2 && seg2.length;\n attrs.x = seg[seglen - 2];\n attrs.y = seg[seglen - 1];\n attrs.bx = parseFloat(seg[seglen - 4]) || attrs.x;\n attrs.by = parseFloat(seg[seglen - 3]) || attrs.y;\n attrs2.bx = p2 && (parseFloat(seg2[seg2len - 4]) || attrs2.x);\n attrs2.by = p2 && (parseFloat(seg2[seg2len - 3]) || attrs2.y);\n attrs2.x = p2 && seg2[seg2len - 2];\n attrs2.y = p2 && seg2[seg2len - 1];\n }\n\n return p2 ? [p, p2] : p;\n};\n\nvar p2s = /,?([a-z]),?/gi;\n\nvar parsePathArray = function parsePathArray(path) {\n return path.join(',').replace(p2s, '$1');\n};\n\nvar base3 = function base3(t, p1, p2, p3, p4) {\n var t1 = -3 * p1 + 9 * p2 - 9 * p3 + 3 * p4;\n var t2 = t * t1 + 6 * p1 - 12 * p2 + 6 * p3;\n return t * t2 - 3 * p1 + 3 * p2;\n};\n\nvar bezlen = function bezlen(x1, y1, x2, y2, x3, y3, x4, y4, z) {\n if (z === null) {\n z = 1;\n }\n\n z = z > 1 ? 1 : z < 0 ? 0 : z;\n var z2 = z / 2;\n var n = 12;\n var Tvalues = [-0.1252, 0.1252, -0.3678, 0.3678, -0.5873, 0.5873, -0.7699, 0.7699, -0.9041, 0.9041, -0.9816, 0.9816];\n var Cvalues = [0.2491, 0.2491, 0.2335, 0.2335, 0.2032, 0.2032, 0.1601, 0.1601, 0.1069, 0.1069, 0.0472, 0.0472];\n var sum = 0;\n\n for (var i = 0; i < n; i++) {\n var ct = z2 * Tvalues[i] + z2;\n var xbase = base3(ct, x1, x2, x3, x4);\n var ybase = base3(ct, y1, y2, y3, y4);\n var comb = xbase * xbase + ybase * ybase;\n sum += Cvalues[i] * Math.sqrt(comb);\n }\n\n return z2 * sum;\n};\n\nvar curveDim = function curveDim(x0, y0, x1, y1, x2, y2, x3, y3) {\n var tvalues = [];\n var bounds = [[], []];\n var a;\n var b;\n var c;\n var t;\n\n for (var i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n\n t = -c / b;\n\n if (t > 0 && t < 1) {\n tvalues.push(t);\n }\n\n continue;\n }\n\n var b2ac = b * b - 4 * c * a;\n var sqrtb2ac = Math.sqrt(b2ac);\n\n if (b2ac < 0) {\n continue;\n }\n\n var t1 = (-b + sqrtb2ac) / (2 * a);\n\n if (t1 > 0 && t1 < 1) {\n tvalues.push(t1);\n }\n\n var t2 = (-b - sqrtb2ac) / (2 * a);\n\n if (t2 > 0 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n var j = tvalues.length;\n var jlen = j;\n var mt;\n\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3;\n bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n return {\n min: {\n x: Math.min.apply(0, bounds[0]),\n y: Math.min.apply(0, bounds[1])\n },\n max: {\n x: Math.max.apply(0, bounds[0]),\n y: Math.max.apply(0, bounds[1])\n }\n };\n};\n\nvar intersect = function intersect(x1, y1, x2, y2, x3, y3, x4, y4) {\n if (Math.max(x1, x2) < Math.min(x3, x4) || Math.min(x1, x2) > Math.max(x3, x4) || Math.max(y1, y2) < Math.min(y3, y4) || Math.min(y1, y2) > Math.max(y3, y4)) {\n return;\n }\n\n var nx = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4);\n var ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4);\n var denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\n\n if (!denominator) {\n return;\n }\n\n var px = nx / denominator;\n var py = ny / denominator;\n var px2 = +px.toFixed(2);\n var py2 = +py.toFixed(2);\n\n if (px2 < +Math.min(x1, x2).toFixed(2) || px2 > +Math.max(x1, x2).toFixed(2) || px2 < +Math.min(x3, x4).toFixed(2) || px2 > +Math.max(x3, x4).toFixed(2) || py2 < +Math.min(y1, y2).toFixed(2) || py2 > +Math.max(y1, y2).toFixed(2) || py2 < +Math.min(y3, y4).toFixed(2) || py2 > +Math.max(y3, y4).toFixed(2)) {\n return;\n }\n\n return {\n x: px,\n y: py\n };\n};\n\nvar isPointInsideBBox = function isPointInsideBBox(bbox, x, y) {\n return x >= bbox.x && x <= bbox.x + bbox.width && y >= bbox.y && y <= bbox.y + bbox.height;\n};\n\nvar rectPath = function rectPath(x, y, w, h, r) {\n if (r) {\n return [['M', +x + +r, y], ['l', w - r * 2, 0], ['a', r, r, 0, 0, 1, r, r], ['l', 0, h - r * 2], ['a', r, r, 0, 0, 1, -r, r], ['l', r * 2 - w, 0], ['a', r, r, 0, 0, 1, -r, -r], ['l', 0, r * 2 - h], ['a', r, r, 0, 0, 1, r, -r], ['z']];\n }\n\n var res = [['M', x, y], ['l', w, 0], ['l', 0, h], ['l', -w, 0], ['z']]; // @ts-ignore\n\n res.parsePathArray = parsePathArray;\n return res;\n};\n\nvar box = function box(x, y, width, height) {\n if (x === null) {\n x = y = width = height = 0;\n }\n\n if (y === null) {\n y = x.y;\n width = x.width;\n height = x.height;\n x = x.x;\n }\n\n return {\n x: x,\n y: y,\n width: width,\n w: width,\n height: height,\n h: height,\n x2: x + width,\n y2: y + height,\n cx: x + width / 2,\n cy: y + height / 2,\n r1: Math.min(width, height) / 2,\n r2: Math.max(width, height) / 2,\n r0: Math.sqrt(width * width + height * height) / 2,\n path: rectPath(x, y, width, height),\n vb: [x, y, width, height].join(' ')\n };\n};\n\nvar isBBoxIntersect = function isBBoxIntersect(bbox1, bbox2) {\n bbox1 = box(bbox1);\n bbox2 = box(bbox2);\n return isPointInsideBBox(bbox2, bbox1.x, bbox1.y) || isPointInsideBBox(bbox2, bbox1.x2, bbox1.y) || isPointInsideBBox(bbox2, bbox1.x, bbox1.y2) || isPointInsideBBox(bbox2, bbox1.x2, bbox1.y2) || isPointInsideBBox(bbox1, bbox2.x, bbox2.y) || isPointInsideBBox(bbox1, bbox2.x2, bbox2.y) || isPointInsideBBox(bbox1, bbox2.x, bbox2.y2) || isPointInsideBBox(bbox1, bbox2.x2, bbox2.y2) || (bbox1.x < bbox2.x2 && bbox1.x > bbox2.x || bbox2.x < bbox1.x2 && bbox2.x > bbox1.x) && (bbox1.y < bbox2.y2 && bbox1.y > bbox2.y || bbox2.y < bbox1.y2 && bbox2.y > bbox1.y);\n};\n\nvar bezierBBox = function bezierBBox(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\n if (!isArray(p1x)) {\n p1x = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y];\n }\n\n var bbox = curveDim.apply(null, p1x);\n return box(bbox.min.x, bbox.min.y, bbox.max.x - bbox.min.x, bbox.max.y - bbox.min.y);\n};\n\nvar findDotsAtSegment = function findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n var t1 = 1 - t;\n var t13 = Math.pow(t1, 3);\n var t12 = Math.pow(t1, 2);\n var t2 = t * t;\n var t3 = t2 * t;\n var x = t13 * p1x + t12 * 3 * t * c1x + t1 * 3 * t * t * c2x + t3 * p2x;\n var y = t13 * p1y + t12 * 3 * t * c1y + t1 * 3 * t * t * c2y + t3 * p2y;\n var mx = p1x + 2 * t * (c1x - p1x) + t2 * (c2x - 2 * c1x + p1x);\n var my = p1y + 2 * t * (c1y - p1y) + t2 * (c2y - 2 * c1y + p1y);\n var nx = c1x + 2 * t * (c2x - c1x) + t2 * (p2x - 2 * c2x + c1x);\n var ny = c1y + 2 * t * (c2y - c1y) + t2 * (p2y - 2 * c2y + c1y);\n var ax = t1 * p1x + t * c1x;\n var ay = t1 * p1y + t * c1y;\n var cx = t1 * c2x + t * p2x;\n var cy = t1 * c2y + t * p2y;\n var alpha = 90 - Math.atan2(mx - nx, my - ny) * 180 / Math.PI; // (mx > nx || my < ny) && (alpha += 180);\n\n return {\n x: x,\n y: y,\n m: {\n x: mx,\n y: my\n },\n n: {\n x: nx,\n y: ny\n },\n start: {\n x: ax,\n y: ay\n },\n end: {\n x: cx,\n y: cy\n },\n alpha: alpha\n };\n};\n\nvar interHelper = function interHelper(bez1, bez2, justCount) {\n var bbox1 = bezierBBox(bez1);\n var bbox2 = bezierBBox(bez2);\n\n if (!isBBoxIntersect(bbox1, bbox2)) {\n return justCount ? 0 : [];\n }\n\n var l1 = bezlen.apply(0, bez1);\n var l2 = bezlen.apply(0, bez2);\n var n1 = ~~(l1 / 8);\n var n2 = ~~(l2 / 8);\n var dots1 = [];\n var dots2 = [];\n var xy = {};\n var res = justCount ? 0 : [];\n\n for (var i = 0; i < n1 + 1; i++) {\n var d = findDotsAtSegment.apply(0, bez1.concat(i / n1));\n dots1.push({\n x: d.x,\n y: d.y,\n t: i / n1\n });\n }\n\n for (var i = 0; i < n2 + 1; i++) {\n var d = findDotsAtSegment.apply(0, bez2.concat(i / n2));\n dots2.push({\n x: d.x,\n y: d.y,\n t: i / n2\n });\n }\n\n for (var i = 0; i < n1; i++) {\n for (var j = 0; j < n2; j++) {\n var di = dots1[i];\n var di1 = dots1[i + 1];\n var dj = dots2[j];\n var dj1 = dots2[j + 1];\n var ci = Math.abs(di1.x - di.x) < 0.001 ? 'y' : 'x';\n var cj = Math.abs(dj1.x - dj.x) < 0.001 ? 'y' : 'x';\n var is = intersect(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y);\n\n if (is) {\n if (xy[is.x.toFixed(4)] === is.y.toFixed(4)) {\n continue;\n }\n\n xy[is.x.toFixed(4)] = is.y.toFixed(4);\n var t1 = di.t + Math.abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t);\n var t2 = dj.t + Math.abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t);\n\n if (t1 >= 0 && t1 <= 1 && t2 >= 0 && t2 <= 1) {\n if (justCount) {\n // @ts-ignore\n res += 1;\n } else {\n // @ts-ignore\n res.push({\n x: is.x,\n y: is.y,\n t1: t1,\n t2: t2\n });\n }\n }\n }\n }\n }\n\n return res;\n};\n\nvar interPathHelper = function interPathHelper(path1, path2, justCount) {\n path1 = pathToCurve(path1);\n path2 = pathToCurve(path2);\n var x1;\n var y1;\n var x2;\n var y2;\n var x1m;\n var y1m;\n var x2m;\n var y2m;\n var bez1;\n var bez2;\n var res = justCount ? 0 : [];\n\n for (var i = 0, ii = path1.length; i < ii; i++) {\n var pi = path1[i];\n\n if (pi[0] === 'M') {\n x1 = x1m = pi[1];\n y1 = y1m = pi[2];\n } else {\n if (pi[0] === 'C') {\n bez1 = [x1, y1].concat(pi.slice(1));\n x1 = bez1[6];\n y1 = bez1[7];\n } else {\n bez1 = [x1, y1, x1, y1, x1m, y1m, x1m, y1m];\n x1 = x1m;\n y1 = y1m;\n }\n\n for (var j = 0, jj = path2.length; j < jj; j++) {\n var pj = path2[j];\n\n if (pj[0] === 'M') {\n x2 = x2m = pj[1];\n y2 = y2m = pj[2];\n } else {\n if (pj[0] === 'C') {\n bez2 = [x2, y2].concat(pj.slice(1));\n x2 = bez2[6];\n y2 = bez2[7];\n } else {\n bez2 = [x2, y2, x2, y2, x2m, y2m, x2m, y2m];\n x2 = x2m;\n y2 = y2m;\n }\n\n var intr = interHelper(bez1, bez2, justCount);\n\n if (justCount) {\n // @ts-ignore\n res += intr;\n } else {\n // @ts-ignore\n for (var k = 0, kk = intr.length; k < kk; k++) {\n intr[k].segment1 = i;\n intr[k].segment2 = j;\n intr[k].bez1 = bez1;\n intr[k].bez2 = bez2;\n } // @ts-ignore\n\n\n res = res.concat(intr);\n }\n }\n }\n }\n }\n\n return res;\n};\n\nvar intersection = function intersection(path1, path2) {\n return interPathHelper(path1, path2);\n};\n\nfunction decasteljau(points, t) {\n var left = [];\n var right = [];\n\n function recurse(points, t) {\n if (points.length === 1) {\n left.push(points[0]);\n right.push(points[0]);\n } else {\n var middlePoints = [];\n\n for (var i = 0; i < points.length - 1; i++) {\n if (i === 0) {\n left.push(points[0]);\n }\n\n if (i === points.length - 2) {\n right.push(points[i + 1]);\n }\n\n middlePoints[i] = [(1 - t) * points[i][0] + t * points[i + 1][0], (1 - t) * points[i][1] + t * points[i + 1][1]];\n }\n\n recurse(middlePoints, t);\n }\n }\n\n if (points.length) {\n recurse(points, t);\n }\n\n return {\n left: left,\n right: right.reverse()\n };\n}\n\nfunction splitCurve(start, end, count) {\n var points = [[start[1], start[2]]];\n count = count || 2;\n var segments = [];\n\n if (end[0] === 'A') {\n points.push(end[6]);\n points.push(end[7]);\n } else if (end[0] === 'C') {\n points.push([end[1], end[2]]);\n points.push([end[3], end[4]]);\n points.push([end[5], end[6]]);\n } else if (end[0] === 'S' || end[0] === 'Q') {\n points.push([end[1], end[2]]);\n points.push([end[3], end[4]]);\n } else {\n points.push([end[1], end[2]]);\n }\n\n var leftSegments = points;\n var t = 1 / count;\n\n for (var i = 0; i < count - 1; i++) {\n var rt = t / (1 - t * i);\n var split = decasteljau(leftSegments, rt);\n segments.push(split.left);\n leftSegments = split.right;\n }\n\n segments.push(leftSegments);\n var result = segments.map(function (segment) {\n var cmd = [];\n\n if (segment.length === 4) {\n cmd.push('C');\n cmd = cmd.concat(segment[2]);\n }\n\n if (segment.length >= 3) {\n if (segment.length === 3) {\n cmd.push('Q');\n }\n\n cmd = cmd.concat(segment[1]);\n }\n\n if (segment.length === 2) {\n cmd.push('L');\n }\n\n cmd = cmd.concat(segment[segment.length - 1]);\n return cmd;\n });\n return result;\n}\n\nvar splitSegment = function splitSegment(start, end, count) {\n if (count === 1) {\n return [[].concat(start)];\n }\n\n var segments = [];\n\n if (end[0] === 'L' || end[0] === 'C' || end[0] === 'Q') {\n segments = segments.concat(splitCurve(start, end, count));\n } else {\n var temp = [].concat(start);\n\n if (temp[0] === 'M') {\n temp[0] = 'L';\n }\n\n for (var i = 0; i <= count - 1; i++) {\n segments.push(temp);\n }\n }\n\n return segments;\n};\n\nvar fillPath = function fillPath(source, target) {\n if (source.length === 1) {\n return source;\n }\n\n var sourceLen = source.length - 1;\n var targetLen = target.length - 1;\n var ratio = sourceLen / targetLen;\n var segmentsToFill = [];\n\n if (source.length === 1 && source[0][0] === 'M') {\n for (var i = 0; i < targetLen - sourceLen; i++) {\n source.push(source[0]);\n }\n\n return source;\n }\n\n for (var i = 0; i < targetLen; i++) {\n var index = Math.floor(ratio * i);\n segmentsToFill[index] = (segmentsToFill[index] || 0) + 1;\n }\n\n var filled = segmentsToFill.reduce(function (filled, count, i) {\n if (i === sourceLen) {\n return filled.concat(source[sourceLen]);\n }\n\n return filled.concat(splitSegment(source[i], source[i + 1], count));\n }, []);\n filled.unshift(source[0]);\n\n if (target[targetLen] === 'Z' || target[targetLen] === 'z') {\n filled.push('Z');\n }\n\n return filled;\n};\n\nvar isEqual = function isEqual(obj1, obj2) {\n if (obj1.length !== obj2.length) {\n return false;\n }\n\n var result = true;\n each(obj1, function (item, i) {\n if (item !== obj2[i]) {\n result = false;\n return false;\n }\n });\n return result;\n};\n\nfunction getMinDiff(del, add, modify) {\n var type = null;\n var min = modify;\n\n if (add < min) {\n min = add;\n type = 'add';\n }\n\n if (del < min) {\n min = del;\n type = 'del';\n }\n\n return {\n type: type,\n min: min\n };\n}\n/*\n * https://en.wikipedia.org/wiki/Levenshtein_distance\n * 计算两条path的编辑距离\n */\n\n\nvar levenshteinDistance = function levenshteinDistance(source, target) {\n var sourceLen = source.length;\n var targetLen = target.length;\n var sourceSegment;\n var targetSegment;\n var temp = 0;\n\n if (sourceLen === 0 || targetLen === 0) {\n return null;\n }\n\n var dist = [];\n\n for (var i = 0; i <= sourceLen; i++) {\n dist[i] = [];\n dist[i][0] = {\n min: i\n };\n }\n\n for (var j = 0; j <= targetLen; j++) {\n dist[0][j] = {\n min: j\n };\n }\n\n for (var i = 1; i <= sourceLen; i++) {\n sourceSegment = source[i - 1];\n\n for (var j = 1; j <= targetLen; j++) {\n targetSegment = target[j - 1];\n\n if (isEqual(sourceSegment, targetSegment)) {\n temp = 0;\n } else {\n temp = 1;\n }\n\n var del = dist[i - 1][j].min + 1;\n var add = dist[i][j - 1].min + 1;\n var modify = dist[i - 1][j - 1].min + temp;\n dist[i][j] = getMinDiff(del, add, modify);\n }\n }\n\n return dist;\n};\n\nvar fillPathByDiff = function fillPathByDiff(source, target) {\n var diffMatrix = levenshteinDistance(source, target);\n var sourceLen = source.length;\n var targetLen = target.length;\n var changes = [];\n var index = 1;\n var minPos = 1; // 如果source和target不是完全不相等\n\n if (diffMatrix[sourceLen][targetLen].min !== sourceLen) {\n // 获取从source到target所需改动\n for (var i = 1; i <= sourceLen; i++) {\n var min = diffMatrix[i][i].min;\n minPos = i;\n\n for (var j = index; j <= targetLen; j++) {\n if (diffMatrix[i][j].min < min) {\n min = diffMatrix[i][j].min;\n minPos = j;\n }\n }\n\n index = minPos;\n\n if (diffMatrix[i][index].type) {\n changes.push({\n index: i - 1,\n type: diffMatrix[i][index].type\n });\n }\n } // 对source进行增删path\n\n\n for (var i = changes.length - 1; i >= 0; i--) {\n index = changes[i].index;\n\n if (changes[i].type === 'add') {\n source.splice(index, 0, [].concat(source[index]));\n } else {\n source.splice(index, 1);\n }\n }\n } // source尾部补齐\n\n\n sourceLen = source.length;\n var diff = targetLen - sourceLen;\n\n if (sourceLen < targetLen) {\n for (var i = 0; i < diff; i++) {\n if (source[sourceLen - 1][0] === 'z' || source[sourceLen - 1][0] === 'Z') {\n source.splice(sourceLen - 2, 0, source[sourceLen - 2]);\n } else {\n source.push(source[sourceLen - 1]);\n }\n\n sourceLen += 1;\n }\n }\n\n return source;\n}; // 将两个点均分成count个点\n\n\nfunction _splitPoints(points, former, count) {\n var result = [].concat(points);\n var index;\n var t = 1 / (count + 1);\n\n var formerEnd = _getSegmentPoints(former)[0];\n\n for (var i = 1; i <= count; i++) {\n t *= i;\n index = Math.floor(points.length * t);\n\n if (index === 0) {\n result.unshift([formerEnd[0] * t + points[index][0] * (1 - t), formerEnd[1] * t + points[index][1] * (1 - t)]);\n } else {\n result.splice(index, 0, [formerEnd[0] * t + points[index][0] * (1 - t), formerEnd[1] * t + points[index][1] * (1 - t)]);\n }\n }\n\n return result;\n}\n/*\n * 抽取pathSegment中的关键点\n * M,L,A,Q,H,V一个端点\n * Q, S抽取一个端点,一个控制点\n * C抽取一个端点,两个控制点\n */\n\n\nfunction _getSegmentPoints(segment) {\n var points = [];\n\n switch (segment[0]) {\n case 'M':\n points.push([segment[1], segment[2]]);\n break;\n\n case 'L':\n points.push([segment[1], segment[2]]);\n break;\n\n case 'A':\n points.push([segment[6], segment[7]]);\n break;\n\n case 'Q':\n points.push([segment[3], segment[4]]);\n points.push([segment[1], segment[2]]);\n break;\n\n case 'T':\n points.push([segment[1], segment[2]]);\n break;\n\n case 'C':\n points.push([segment[5], segment[6]]);\n points.push([segment[1], segment[2]]);\n points.push([segment[3], segment[4]]);\n break;\n\n case 'S':\n points.push([segment[3], segment[4]]);\n points.push([segment[1], segment[2]]);\n break;\n\n case 'H':\n points.push([segment[1], segment[1]]);\n break;\n\n case 'V':\n points.push([segment[1], segment[1]]);\n break;\n\n default:\n }\n\n return points;\n}\n\nvar formatPath = function formatPath(fromPath, toPath) {\n if (fromPath.length <= 1) {\n return fromPath;\n }\n\n var points;\n\n for (var i = 0; i < toPath.length; i++) {\n if (fromPath[i][0] !== toPath[i][0]) {\n // 获取fromPath的pathSegment的端点,根据toPath的指令对其改造\n points = _getSegmentPoints(fromPath[i]);\n\n switch (toPath[i][0]) {\n case 'M':\n fromPath[i] = ['M'].concat(points[0]);\n break;\n\n case 'L':\n fromPath[i] = ['L'].concat(points[0]);\n break;\n\n case 'A':\n fromPath[i] = [].concat(toPath[i]);\n fromPath[i][6] = points[0][0];\n fromPath[i][7] = points[0][1];\n break;\n\n case 'Q':\n if (points.length < 2) {\n if (i > 0) {\n points = _splitPoints(points, fromPath[i - 1], 1);\n } else {\n fromPath[i] = toPath[i];\n break;\n }\n }\n\n fromPath[i] = ['Q'].concat(points.reduce(function (arr, i) {\n return arr.concat(i);\n }, []));\n break;\n\n case 'T':\n fromPath[i] = ['T'].concat(points[0]);\n break;\n\n case 'C':\n if (points.length < 3) {\n if (i > 0) {\n points = _splitPoints(points, fromPath[i - 1], 2);\n } else {\n fromPath[i] = toPath[i];\n break;\n }\n }\n\n fromPath[i] = ['C'].concat(points.reduce(function (arr, i) {\n return arr.concat(i);\n }, []));\n break;\n\n case 'S':\n if (points.length < 2) {\n if (i > 0) {\n points = _splitPoints(points, fromPath[i - 1], 1);\n } else {\n fromPath[i] = toPath[i];\n break;\n }\n }\n\n fromPath[i] = ['S'].concat(points.reduce(function (arr, i) {\n return arr.concat(i);\n }, []));\n break;\n\n default:\n fromPath[i] = toPath[i];\n }\n }\n }\n\n return fromPath;\n};\n\nexport { catmullRomToBezier, fillPath, fillPathByDiff, formatPath, intersection, parsePathArray, parsePathString, pathToAbsolute, pathToCurve, rectPath };","var GraphEvent =\n/** @class */\nfunction () {\n function GraphEvent(type, event) {\n /**\n * 是否允许冒泡\n * @type {boolean}\n */\n this.bubbles = true;\n /**\n * 触发对象\n * @type {object}\n */\n\n this.target = null;\n /**\n * 监听对象\n * @type {object}\n */\n\n this.currentTarget = null;\n /**\n * 委托对象\n * @type {object}\n */\n\n this.delegateTarget = null;\n /**\n * 委托事件监听对象的代理对象,即 ev.delegateObject = ev.currentTarget.get('delegateObject')\n * @type {object}\n */\n\n this.delegateObject = null;\n /**\n * 是否阻止了原生事件\n * @type {boolean}\n */\n\n this.defaultPrevented = false;\n /**\n * 是否阻止传播(向上冒泡)\n * @type {boolean}\n */\n\n this.propagationStopped = false;\n /**\n * 触发事件的图形\n * @type {IShape}\n */\n\n this.shape = null;\n /**\n * 开始触发事件的图形\n * @type {IShape}\n */\n\n this.fromShape = null;\n /**\n * 事件结束时的触发图形\n * @type {IShape}\n */\n\n this.toShape = null; // 触发事件的路径\n\n this.propagationPath = [];\n this.type = type;\n this.name = type;\n this.originalEvent = event;\n this.timeStamp = event.timeStamp;\n }\n /**\n * 阻止浏览器默认的行为\n */\n\n\n GraphEvent.prototype.preventDefault = function () {\n this.defaultPrevented = true;\n\n if (this.originalEvent.preventDefault) {\n this.originalEvent.preventDefault();\n }\n };\n /**\n * 阻止冒泡\n */\n\n\n GraphEvent.prototype.stopPropagation = function () {\n this.propagationStopped = true;\n };\n\n GraphEvent.prototype.toString = function () {\n var type = this.type;\n return \"[Event (type=\" + type + \")]\";\n };\n\n GraphEvent.prototype.save = function () {};\n\n GraphEvent.prototype.restore = function () {};\n\n return GraphEvent;\n}();\n\nexport default GraphEvent;","export function removeFromArray(arr, obj) {\n var index = arr.indexOf(obj);\n\n if (index !== -1) {\n arr.splice(index, 1);\n }\n}\nexport var isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';\nexport { isNil, isFunction, isString, isObject, isArray, mix, each, upperFirst } from '@antv/util'; // 是否元素的父容器\n\nexport function isParent(container, shape) {\n // 所有 shape 都是 canvas 的子元素\n if (container.isCanvas()) {\n return true;\n }\n\n var parent = shape.getParent();\n var isParent = false;\n\n while (parent) {\n if (parent === container) {\n isParent = true;\n break;\n }\n\n parent = parent.getParent();\n }\n\n return isParent;\n}\nexport function isAllowCapture(element) {\n // @ts-ignore\n return element.cfg.visible && element.cfg.capture;\n}","import { __extends } from \"tslib\";\nimport EE from '@antv/event-emitter';\nimport { mix } from '../util/util';\n\nvar Base =\n/** @class */\nfunction (_super) {\n __extends(Base, _super);\n\n function Base(cfg) {\n var _this = _super.call(this) || this;\n /**\n * 是否被销毁\n * @type {boolean}\n */\n\n\n _this.destroyed = false;\n\n var defaultCfg = _this.getDefaultCfg();\n\n _this.cfg = mix(defaultCfg, cfg);\n return _this;\n }\n /**\n * @protected\n * 默认的配置项\n * @returns {object} 默认的配置项\n */\n\n\n Base.prototype.getDefaultCfg = function () {\n return {};\n }; // 实现接口的方法\n\n\n Base.prototype.get = function (name) {\n return this.cfg[name];\n }; // 实现接口的方法\n\n\n Base.prototype.set = function (name, value) {\n this.cfg[name] = value;\n }; // 实现接口的方法\n\n\n Base.prototype.destroy = function () {\n this.cfg = {\n destroyed: true\n };\n this.off();\n this.destroyed = true;\n };\n\n return Base;\n}(EE);\n\nexport default Base;","/**\n * @fileoverview 矩阵运算,本来是要引入 gl-matrix, 但是考虑到 g-mobile 对大小有限制,同时 g-webgl 使用的 matrix 不一致\n * 所以,这里仅实现 2D 几个运算,上层自己引入 gl-matrix\n * @author dxq613@gmail.com\n */\n\n/**\n * 3阶矩阵相乘\n * @param {number[]} a 矩阵1\n * @param {number[]} b 矩阵2\n */\nexport function multiplyMatrix(a, b) {\n var out = [];\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a10 = a[3];\n var a11 = a[4];\n var a12 = a[5];\n var a20 = a[6];\n var a21 = a[7];\n var a22 = a[8];\n var b00 = b[0];\n var b01 = b[1];\n var b02 = b[2];\n var b10 = b[3];\n var b11 = b[4];\n var b12 = b[5];\n var b20 = b[6];\n var b21 = b[7];\n var b22 = b[8];\n out[0] = b00 * a00 + b01 * a10 + b02 * a20;\n out[1] = b00 * a01 + b01 * a11 + b02 * a21;\n out[2] = b00 * a02 + b01 * a12 + b02 * a22;\n out[3] = b10 * a00 + b11 * a10 + b12 * a20;\n out[4] = b10 * a01 + b11 * a11 + b12 * a21;\n out[5] = b10 * a02 + b11 * a12 + b12 * a22;\n out[6] = b20 * a00 + b21 * a10 + b22 * a20;\n out[7] = b20 * a01 + b21 * a11 + b22 * a21;\n out[8] = b20 * a02 + b21 * a12 + b22 * a22;\n return out;\n}\n/**\n * 3阶矩阵同2阶向量相乘\n * @param {number[]} m 矩阵\n * @param {number[]} v 二阶向量\n */\n\nexport function multiplyVec2(m, v) {\n var out = [];\n var x = v[0];\n var y = v[1];\n out[0] = m[0] * x + m[3] * y + m[6];\n out[1] = m[1] * x + m[4] * y + m[7];\n return out;\n}\n/**\n * 矩阵的逆\n * @param {number[]} a 矩阵\n */\n\nexport function invert(a) {\n var out = [];\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a10 = a[3];\n var a11 = a[4];\n var a12 = a[5];\n var a20 = a[6];\n var a21 = a[7];\n var a22 = a[8];\n var b01 = a22 * a11 - a12 * a21;\n var b11 = -a22 * a10 + a12 * a20;\n var b21 = a21 * a10 - a11 * a20; // Calculate the determinant\n\n var det = a00 * b01 + a01 * b11 + a02 * b21;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = b01 * det;\n out[1] = (-a22 * a01 + a02 * a21) * det;\n out[2] = (a12 * a01 - a02 * a11) * det;\n out[3] = b11 * det;\n out[4] = (a22 * a00 - a02 * a20) * det;\n out[5] = (-a12 * a00 + a02 * a10) * det;\n out[6] = b21 * det;\n out[7] = (-a21 * a00 + a01 * a20) * det;\n out[8] = (a11 * a00 - a01 * a10) * det;\n return out;\n}","import { __extends } from \"tslib\";\nimport { each, isEqual, isFunction, isNumber, isObject, isArray, noop, mix, upperFirst, uniqueId } from '@antv/util';\nimport { ext } from '@antv/matrix-util';\nimport { removeFromArray, isParent } from '../util/util';\nimport { multiplyMatrix, multiplyVec2, invert } from '../util/matrix';\nimport Base from './base';\nvar transform = ext.transform;\nvar MATRIX = 'matrix';\nvar CLONE_CFGS = ['zIndex', 'capture', 'visible', 'type']; // 可以在 toAttrs 中设置,但不属于绘图属性的字段\n\nvar RESERVED_PORPS = ['repeat'];\nvar DELEGATION_SPLIT = ':';\nvar WILDCARD = '*'; // 需要考虑数组嵌套数组的场景\n// 数组嵌套对象的场景不考虑\n\nfunction _cloneArrayAttr(arr) {\n var result = [];\n\n for (var i = 0; i < arr.length; i++) {\n if (isArray(arr[i])) {\n result.push([].concat(arr[i]));\n } else {\n result.push(arr[i]);\n }\n }\n\n return result;\n}\n\nfunction getFormatFromAttrs(toAttrs, shape) {\n var fromAttrs = {};\n var attrs = shape.attrs;\n\n for (var k in toAttrs) {\n fromAttrs[k] = attrs[k];\n }\n\n return fromAttrs;\n}\n\nfunction getFormatToAttrs(props, shape) {\n var toAttrs = {};\n var attrs = shape.attr();\n each(props, function (v, k) {\n if (RESERVED_PORPS.indexOf(k) === -1 && !isEqual(attrs[k], v)) {\n toAttrs[k] = v;\n }\n });\n return toAttrs;\n}\n\nfunction checkExistedAttrs(animations, animation) {\n if (animation.onFrame) {\n return animations;\n }\n\n var startTime = animation.startTime,\n delay = animation.delay,\n duration = animation.duration;\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n each(animations, function (item) {\n // 后一个动画开始执行的时间 < 前一个动画的结束时间 && 后一个动画的执行时间 > 前一个动画的延迟\n if (startTime + delay < item.startTime + item.delay + item.duration && duration > item.delay) {\n each(animation.toAttrs, function (v, k) {\n if (hasOwnProperty.call(item.toAttrs, k)) {\n delete item.toAttrs[k];\n delete item.fromAttrs[k];\n }\n });\n }\n });\n return animations;\n}\n\nvar Element =\n/** @class */\nfunction (_super) {\n __extends(Element, _super);\n\n function Element(cfg) {\n var _this = _super.call(this, cfg) || this;\n /**\n * @protected\n * 图形属性\n * @type {ShapeAttrs}\n */\n\n\n _this.attrs = {};\n\n var attrs = _this.getDefaultAttrs();\n\n mix(attrs, cfg.attrs);\n _this.attrs = attrs;\n\n _this.initAttrs(attrs);\n\n _this.initAnimate(); // 初始化动画\n\n\n return _this;\n } // override\n\n\n Element.prototype.getDefaultCfg = function () {\n return {\n visible: true,\n capture: true,\n zIndex: 0\n };\n };\n /**\n * @protected\n * 获取默认的属相\n */\n\n\n Element.prototype.getDefaultAttrs = function () {\n return {\n matrix: this.getDefaultMatrix(),\n opacity: 1\n };\n };\n /**\n * @protected\n * 一些方法调用会引起画布变化\n * @param {ChangeType} changeType 改变的类型\n */\n\n\n Element.prototype.onCanvasChange = function (changeType) {};\n /**\n * @protected\n * 初始化属性,有些属性需要加工\n * @param {object} attrs 属性值\n */\n\n\n Element.prototype.initAttrs = function (attrs) {};\n /**\n * @protected\n * 初始化动画\n */\n\n\n Element.prototype.initAnimate = function () {\n this.set('animable', true);\n this.set('animating', false);\n };\n\n Element.prototype.isGroup = function () {\n return false;\n };\n\n Element.prototype.getParent = function () {\n return this.get('parent');\n };\n\n Element.prototype.getCanvas = function () {\n return this.get('canvas');\n };\n\n Element.prototype.attr = function () {\n var _a;\n\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var name = args[0],\n value = args[1];\n if (!name) return this.attrs;\n\n if (isObject(name)) {\n for (var k in name) {\n this.setAttr(k, name[k]);\n }\n\n this.afterAttrsChange(name);\n return this;\n }\n\n if (args.length === 2) {\n this.setAttr(name, value);\n this.afterAttrsChange((_a = {}, _a[name] = value, _a));\n return this;\n }\n\n return this.attrs[name];\n }; // 是否被裁剪,被裁剪则不显示,不参与拾取\n\n\n Element.prototype.isClipped = function (refX, refY) {\n var clip = this.getClip();\n return clip && !clip.isHit(refX, refY);\n };\n /**\n * 内部设置属性值的接口\n * @param {string} name 属性名\n * @param {any} value 属性值\n */\n\n\n Element.prototype.setAttr = function (name, value) {\n var originValue = this.attrs[name];\n\n if (originValue !== value) {\n this.attrs[name] = value;\n this.onAttrChange(name, value, originValue);\n }\n };\n /**\n * @protected\n * 属性值发生改变\n * @param {string} name 属性名\n * @param {any} value 属性值\n * @param {any} originValue 属性值\n */\n\n\n Element.prototype.onAttrChange = function (name, value, originValue) {\n if (name === 'matrix') {\n this.set('totalMatrix', null);\n }\n };\n /**\n * 属性更改后需要做的事情\n * @protected\n */\n\n\n Element.prototype.afterAttrsChange = function (targetAttrs) {\n if (this.cfg.isClipShape) {\n var applyTo = this.cfg.applyTo;\n\n if (applyTo) {\n applyTo.onCanvasChange('clip');\n }\n } else {\n this.onCanvasChange('attr');\n }\n };\n\n Element.prototype.show = function () {\n // 不是高频操作直接使用 set\n this.set('visible', true);\n this.onCanvasChange('show');\n return this;\n };\n\n Element.prototype.hide = function () {\n // 不是高频操作直接使用 set\n this.set('visible', false);\n this.onCanvasChange('hide');\n return this;\n };\n\n Element.prototype.setZIndex = function (zIndex) {\n this.set('zIndex', zIndex);\n var parent = this.getParent();\n\n if (parent) {\n // 改变 zIndex 不应该立即触发渲染 (调用 onCanvasChange('zIndex')),需要经过 sort 再触发\n parent.sort();\n }\n\n return this;\n };\n\n Element.prototype.toFront = function () {\n var parent = this.getParent();\n\n if (!parent) {\n return;\n }\n\n var children = parent.getChildren();\n var el = this.get('el');\n var index = children.indexOf(this);\n children.splice(index, 1);\n children.push(this);\n this.onCanvasChange('zIndex');\n };\n\n Element.prototype.toBack = function () {\n var parent = this.getParent();\n\n if (!parent) {\n return;\n }\n\n var children = parent.getChildren();\n var el = this.get('el');\n var index = children.indexOf(this);\n children.splice(index, 1);\n children.unshift(this);\n this.onCanvasChange('zIndex');\n };\n\n Element.prototype.remove = function (destroy) {\n if (destroy === void 0) {\n destroy = true;\n }\n\n var parent = this.getParent();\n\n if (parent) {\n removeFromArray(parent.getChildren(), this);\n\n if (!parent.get('clearing')) {\n // 如果父元素正在清理,当前元素不触发 remove\n this.onCanvasChange('remove');\n }\n } else {\n this.onCanvasChange('remove');\n }\n\n if (destroy) {\n this.destroy();\n }\n };\n\n Element.prototype.resetMatrix = function () {\n this.attr(MATRIX, this.getDefaultMatrix());\n this.onCanvasChange('matrix');\n };\n\n Element.prototype.getMatrix = function () {\n return this.attr(MATRIX);\n };\n\n Element.prototype.setMatrix = function (m) {\n this.attr(MATRIX, m);\n this.onCanvasChange('matrix');\n }; // 获取总的 matrix\n\n\n Element.prototype.getTotalMatrix = function () {\n var totalMatrix = this.cfg.totalMatrix;\n\n if (!totalMatrix) {\n var currentMatrix = this.attr('matrix');\n var parentMatrix = this.cfg.parentMatrix;\n\n if (parentMatrix && currentMatrix) {\n totalMatrix = multiplyMatrix(parentMatrix, currentMatrix);\n } else {\n totalMatrix = currentMatrix || parentMatrix;\n }\n\n this.set('totalMatrix', totalMatrix);\n }\n\n return totalMatrix;\n }; // 上层分组设置 matrix\n\n\n Element.prototype.applyMatrix = function (matrix) {\n var currentMatrix = this.attr('matrix');\n var totalMatrix = null;\n\n if (matrix && currentMatrix) {\n totalMatrix = multiplyMatrix(matrix, currentMatrix);\n } else {\n totalMatrix = currentMatrix || matrix;\n }\n\n this.set('totalMatrix', totalMatrix);\n this.set('parentMatrix', matrix);\n };\n /**\n * @protected\n * 获取默认的矩阵\n * @returns {number[]|null} 默认的矩阵\n */\n\n\n Element.prototype.getDefaultMatrix = function () {\n return null;\n }; // 将向量应用设置的矩阵\n\n\n Element.prototype.applyToMatrix = function (v) {\n var matrix = this.attr('matrix');\n\n if (matrix) {\n return multiplyVec2(matrix, v);\n }\n\n return v;\n }; // 根据设置的矩阵,将向量转换相对于图形/分组的位置\n\n\n Element.prototype.invertFromMatrix = function (v) {\n var matrix = this.attr('matrix');\n\n if (matrix) {\n var invertMatrix = invert(matrix);\n\n if (invertMatrix) {\n return multiplyVec2(invertMatrix, v);\n }\n }\n\n return v;\n }; // 设置 clip\n\n\n Element.prototype.setClip = function (clipCfg) {\n var canvas = this.getCanvas(); // 应该只设置当前元素的 clip,不应该去修改 clip 本身,方便 clip 被复用\n // TODO: setClip 的传参既 shape 配置,也支持 shape 对象\n // const preShape = this.get('clipShape');\n // if (preShape) {\n // // 将之前的 clipShape 销毁\n // preShape.destroy();\n // }\n\n var clipShape = null; // 如果配置项为 null,则不移除 clipShape\n\n if (clipCfg) {\n var ShapeBase = this.getShapeBase();\n var shapeType = upperFirst(clipCfg.type);\n var Cons = ShapeBase[shapeType];\n\n if (Cons) {\n clipShape = new Cons({\n type: clipCfg.type,\n isClipShape: true,\n applyTo: this,\n attrs: clipCfg.attrs,\n canvas: canvas\n });\n }\n }\n\n this.set('clipShape', clipShape);\n this.onCanvasChange('clip');\n return clipShape;\n };\n\n Element.prototype.getClip = function () {\n // 高频率调用的地方直接使用 this.cfg.xxx\n var clipShape = this.cfg.clipShape; // 未设置时返回 Null,保证一致性\n\n if (!clipShape) {\n return null;\n }\n\n return clipShape;\n };\n\n Element.prototype.clone = function () {\n var _this = this;\n\n var originAttrs = this.attrs;\n var attrs = {};\n each(originAttrs, function (i, k) {\n if (isArray(originAttrs[k])) {\n attrs[k] = _cloneArrayAttr(originAttrs[k]);\n } else {\n attrs[k] = originAttrs[k];\n }\n });\n var cons = this.constructor; // @ts-ignore\n\n var clone = new cons({\n attrs: attrs\n });\n each(CLONE_CFGS, function (cfgName) {\n clone.set(cfgName, _this.get(cfgName));\n });\n return clone;\n };\n\n Element.prototype.destroy = function () {\n var destroyed = this.destroyed;\n\n if (destroyed) {\n return;\n }\n\n this.attrs = {};\n\n _super.prototype.destroy.call(this); // this.onCanvasChange('destroy');\n\n };\n /**\n * 是否处于动画暂停状态\n * @return {boolean} 是否处于动画暂停状态\n */\n\n\n Element.prototype.isAnimatePaused = function () {\n return this.get('_pause').isPaused;\n };\n /**\n * 执行动画,支持多种函数签名\n * 1. animate(toAttrs: ElementAttrs, duration: number, easing?: string, callback?: () => void, delay?: number)\n * 2. animate(onFrame: OnFrame, duration: number, easing?: string, callback?: () => void, delay?: number)\n * 3. animate(toAttrs: ElementAttrs, cfg: AnimateCfg)\n * 4. animate(onFrame: OnFrame, cfg: AnimateCfg)\n * 各个参数的含义为:\n * toAttrs 动画最终状态\n * onFrame 自定义帧动画函数\n * duration 动画执行时间\n * easing 动画缓动效果\n * callback 动画执行后的回调\n * delay 动画延迟时间\n */\n\n\n Element.prototype.animate = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (!this.get('timeline') && !this.get('canvas')) {\n return;\n }\n\n this.set('animating', true);\n var timeline = this.get('timeline');\n\n if (!timeline) {\n timeline = this.get('canvas').get('timeline');\n this.set('timeline', timeline);\n }\n\n var animations = this.get('animations') || []; // 初始化 tick\n\n if (!timeline.timer) {\n timeline.initTimer();\n }\n\n var toAttrs = args[0],\n duration = args[1],\n _a = args[2],\n easing = _a === void 0 ? 'easeLinear' : _a,\n _b = args[3],\n callback = _b === void 0 ? noop : _b,\n _c = args[4],\n delay = _c === void 0 ? 0 : _c;\n var onFrame;\n var repeat;\n var pauseCallback;\n var resumeCallback;\n var animateCfg; // 第二个参数,既可以是动画最终状态 toAttrs,也可以是自定义帧动画函数 onFrame\n\n if (isFunction(toAttrs)) {\n onFrame = toAttrs;\n toAttrs = {};\n } else if (isObject(toAttrs) && toAttrs.onFrame) {\n // 兼容 3.0 中的写法,onFrame 和 repeat 可在 toAttrs 中设置\n onFrame = toAttrs.onFrame;\n repeat = toAttrs.repeat;\n } // 第二个参数,既可以是执行时间 duration,也可以是动画参数 animateCfg\n\n\n if (isObject(duration)) {\n animateCfg = duration;\n duration = animateCfg.duration;\n easing = animateCfg.easing || 'easeLinear';\n delay = animateCfg.delay || 0; // animateCfg 中的设置优先级更高\n\n repeat = animateCfg.repeat || repeat || false;\n callback = animateCfg.callback || noop;\n pauseCallback = animateCfg.pauseCallback || noop;\n resumeCallback = animateCfg.resumeCallback || noop;\n } else {\n // 第四个参数,既可以是回调函数 callback,也可以是延迟时间 delay\n if (isNumber(callback)) {\n delay = callback;\n callback = null;\n } // 第三个参数,既可以是缓动参数 easing,也可以是回调函数 callback\n\n\n if (isFunction(easing)) {\n callback = easing;\n easing = 'easeLinear';\n } else {\n easing = easing || 'easeLinear';\n }\n }\n\n var formatToAttrs = getFormatToAttrs(toAttrs, this);\n var animation = {\n fromAttrs: getFormatFromAttrs(formatToAttrs, this),\n toAttrs: formatToAttrs,\n duration: duration,\n easing: easing,\n repeat: repeat,\n callback: callback,\n pauseCallback: pauseCallback,\n resumeCallback: resumeCallback,\n delay: delay,\n startTime: timeline.getTime(),\n id: uniqueId(),\n onFrame: onFrame,\n pathFormatted: false\n }; // 如果动画元素队列中已经有这个图形了\n\n if (animations.length > 0) {\n // 先检查是否需要合并属性。若有相同的动画,将该属性从前一个动画中删除,直接用后一个动画中\n animations = checkExistedAttrs(animations, animation);\n } else {\n // 否则将图形添加到动画元素队列\n timeline.addAnimator(this);\n }\n\n animations.push(animation);\n this.set('animations', animations);\n this.set('_pause', {\n isPaused: false\n });\n };\n /**\n * 停止动画\n * @param {boolean} toEnd 是否到动画的最终状态\n */\n\n\n Element.prototype.stopAnimate = function (toEnd) {\n var _this = this;\n\n if (toEnd === void 0) {\n toEnd = true;\n }\n\n var animations = this.get('animations');\n each(animations, function (animation) {\n // 将动画执行到最后一帧\n if (toEnd) {\n if (animation.onFrame) {\n _this.attr(animation.onFrame(1));\n } else {\n _this.attr(animation.toAttrs);\n }\n }\n\n if (animation.callback) {\n // 动画停止时的回调\n animation.callback();\n }\n });\n this.set('animating', false);\n this.set('animations', []);\n };\n /**\n * 暂停动画\n */\n\n\n Element.prototype.pauseAnimate = function () {\n var timeline = this.get('timeline');\n var animations = this.get('animations');\n var pauseTime = timeline.getTime();\n each(animations, function (animation) {\n animation._paused = true;\n animation._pauseTime = pauseTime;\n\n if (animation.pauseCallback) {\n // 动画暂停时的回调\n animation.pauseCallback();\n }\n }); // 记录下是在什么时候暂停的\n\n this.set('_pause', {\n isPaused: true,\n pauseTime: pauseTime\n });\n return this;\n };\n /**\n * 恢复动画\n */\n\n\n Element.prototype.resumeAnimate = function () {\n var timeline = this.get('timeline');\n var current = timeline.getTime();\n var animations = this.get('animations');\n var pauseTime = this.get('_pause').pauseTime; // 之后更新属性需要计算动画已经执行的时长,如果暂停了,就把初始时间调后\n\n each(animations, function (animation) {\n animation.startTime = animation.startTime + (current - pauseTime);\n animation._paused = false;\n animation._pauseTime = null;\n\n if (animation.resumeCallback) {\n animation.resumeCallback();\n }\n });\n this.set('_pause', {\n isPaused: false\n });\n this.set('animations', animations);\n return this;\n };\n /**\n * 触发委托事件\n * @param {string} type 事件类型\n * @param {GraphEvent} eventObj 事件对象\n */\n\n\n Element.prototype.emitDelegation = function (type, eventObj) {\n var _this = this;\n\n var paths = eventObj.propagationPath;\n var events = this.getEvents();\n var relativeShape;\n\n if (type === 'mouseenter') {\n relativeShape = eventObj.fromShape;\n } else if (type === 'mouseleave') {\n relativeShape = eventObj.toShape;\n }\n\n var _loop_1 = function _loop_1(i) {\n var element = paths[i]; // 暂定跟 name 绑定\n\n var name_1 = element.get('name');\n\n if (name_1) {\n // 第一个 mouseenter 和 mouseleave 的停止即可,因为后面的都是前面的 Parent\n if ( // 只有 element 是 Group 或者 Canvas 的时候,才需要判断 isParent\n (element.isGroup() || element.isCanvas && element.isCanvas()) && relativeShape && isParent(element, relativeShape)) {\n return \"break\";\n }\n\n if (isArray(name_1)) {\n each(name_1, function (subName) {\n _this.emitDelegateEvent(element, subName, eventObj);\n });\n } else {\n this_1.emitDelegateEvent(element, name_1, eventObj);\n }\n }\n };\n\n var this_1 = this; // 至少有一个对象,且第一个对象为 shape\n\n for (var i = 0; i < paths.length; i++) {\n var state_1 = _loop_1(i);\n\n if (state_1 === \"break\") break;\n }\n };\n\n Element.prototype.emitDelegateEvent = function (element, name, eventObj) {\n var events = this.getEvents(); // 事件委托的形式 name:type\n\n var eventName = name + DELEGATION_SPLIT + eventObj.type;\n\n if (events[eventName] || events[WILDCARD]) {\n // 对于通配符 *,事件名称 = 委托事件名称\n eventObj.name = eventName;\n eventObj.currentTarget = element;\n eventObj.delegateTarget = this; // 将委托事件的监听对象 delegateObject 挂载到事件对象上\n\n eventObj.delegateObject = element.get('delegateObject');\n this.emit(eventName, eventObj);\n }\n };\n /**\n * 移动元素\n * @param {number} translateX 水平移动距离\n * @param {number} translateY 垂直移动距离\n * @return {IElement} 元素\n */\n\n\n Element.prototype.translate = function (translateX, translateY) {\n if (translateX === void 0) {\n translateX = 0;\n }\n\n if (translateY === void 0) {\n translateY = 0;\n }\n\n var matrix = this.getMatrix();\n var newMatrix = transform(matrix, [['t', translateX, translateY]]);\n this.setMatrix(newMatrix);\n return this;\n };\n /**\n * 移动元素到目标位置\n * @param {number} targetX 目标位置的水平坐标\n * @param {number} targetX 目标位置的垂直坐标\n * @return {IElement} 元素\n */\n\n\n Element.prototype.move = function (targetX, targetY) {\n var x = this.attr('x') || 0;\n var y = this.attr('y') || 0;\n this.translate(targetX - x, targetY - y);\n return this;\n };\n /**\n * 移动元素到目标位置,等价于 move 方法。由于 moveTo 的语义性更强,因此在文档中推荐使用 moveTo 方法\n * @param {number} targetX 目标位置的 x 轴坐标\n * @param {number} targetY 目标位置的 y 轴坐标\n * @return {IElement} 元素\n */\n\n\n Element.prototype.moveTo = function (targetX, targetY) {\n return this.move(targetX, targetY);\n };\n /**\n * 缩放元素\n * @param {number} ratioX 水平缩放比例\n * @param {number} ratioY 垂直缩放比例\n * @return {IElement} 元素\n */\n\n\n Element.prototype.scale = function (ratioX, ratioY) {\n var matrix = this.getMatrix();\n var newMatrix = transform(matrix, [['s', ratioX, ratioY || ratioX]]);\n this.setMatrix(newMatrix);\n return this;\n };\n /**\n * 以画布左上角 (0, 0) 为中心旋转元素\n * @param {number} radian 旋转角度(弧度值)\n * @return {IElement} 元素\n */\n\n\n Element.prototype.rotate = function (radian) {\n var matrix = this.getMatrix();\n var newMatrix = transform(matrix, [['r', radian]]);\n this.setMatrix(newMatrix);\n return this;\n };\n /**\n * 以起始点为中心旋转元素\n * @param {number} radian 旋转角度(弧度值)\n * @return {IElement} 元素\n */\n\n\n Element.prototype.rotateAtStart = function (rotate) {\n var _a = this.attr(),\n x = _a.x,\n y = _a.y;\n\n var matrix = this.getMatrix();\n var newMatrix = transform(matrix, [['t', -x, -y], ['r', rotate], ['t', x, y]]);\n this.setMatrix(newMatrix);\n return this;\n };\n /**\n * 以任意点 (x, y) 为中心旋转元素\n * @param {number} radian 旋转角度(弧度值)\n * @return {IElement} 元素\n */\n\n\n Element.prototype.rotateAtPoint = function (x, y, rotate) {\n var matrix = this.getMatrix();\n var newMatrix = transform(matrix, [['t', -x, -y], ['r', rotate], ['t', x, y]]);\n this.setMatrix(newMatrix);\n return this;\n };\n\n return Element;\n}(Base);\n\nexport default Element;","import { __extends } from \"tslib\";\nimport { max, min } from '@antv/util';\nimport Element from './element';\nimport { isFunction, isObject, each, removeFromArray, upperFirst, isAllowCapture } from '../util/util';\nvar SHAPE_MAP = {};\nvar INDEX = '_INDEX';\n/**\n * 设置 canvas\n * @param {IElement} element 元素\n * @param {ICanvas} canvas 画布\n */\n\nfunction setCanvas(element, canvas) {\n element.set('canvas', canvas);\n\n if (element.isGroup()) {\n var children = element.get('children');\n\n if (children.length) {\n children.forEach(function (child) {\n setCanvas(child, canvas);\n });\n }\n }\n}\n/**\n * 设置 timeline\n * @param {IElement} element 元素\n * @param {Timeline} timeline 时间轴\n */\n\n\nfunction setTimeline(element, timeline) {\n element.set('timeline', timeline);\n\n if (element.isGroup()) {\n var children = element.get('children');\n\n if (children.length) {\n children.forEach(function (child) {\n setTimeline(child, timeline);\n });\n }\n }\n}\n\nfunction contains(container, element) {\n var children = container.getChildren();\n return children.indexOf(element) >= 0;\n}\n\nfunction removeChild(container, element, destroy) {\n if (destroy === void 0) {\n destroy = true;\n } // 不再调用 element.remove() 方法,会出现循环调用\n\n\n if (destroy) {\n element.destroy();\n } else {\n element.set('parent', null);\n element.set('canvas', null);\n }\n\n removeFromArray(container.getChildren(), element);\n}\n\nfunction getComparer(compare) {\n return function (left, right) {\n var result = compare(left, right);\n return result === 0 ? left[INDEX] - right[INDEX] : result;\n };\n}\n\nvar Container =\n/** @class */\nfunction (_super) {\n __extends(Container, _super);\n\n function Container() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Container.prototype.isCanvas = function () {\n return false;\n }; // 根据子节点确定 BBox\n\n\n Container.prototype.getBBox = function () {\n // 所有的值可能在画布的可视区外\n var minX = Infinity;\n var maxX = -Infinity;\n var minY = Infinity;\n var maxY = -Infinity;\n var xArr = [];\n var yArr = []; // 将可见元素、图形以及不为空的图形分组筛选出来,用于包围盒合并\n\n var children = this.getChildren().filter(function (child) {\n return child.get('visible') && (!child.isGroup() || child.isGroup() && child.getChildren().length > 0);\n });\n\n if (children.length > 0) {\n each(children, function (child) {\n var box = child.getBBox();\n xArr.push(box.minX, box.maxX);\n yArr.push(box.minY, box.maxY);\n });\n minX = min(xArr);\n maxX = max(xArr);\n minY = min(yArr);\n maxY = max(yArr);\n } else {\n minX = 0;\n maxX = 0;\n minY = 0;\n maxY = 0;\n }\n\n var box = {\n x: minX,\n y: minY,\n minX: minX,\n minY: minY,\n maxX: maxX,\n maxY: maxY,\n width: maxX - minX,\n height: maxY - minY\n };\n return box;\n }; // 获取画布的包围盒\n\n\n Container.prototype.getCanvasBBox = function () {\n var minX = Infinity;\n var maxX = -Infinity;\n var minY = Infinity;\n var maxY = -Infinity;\n var xArr = [];\n var yArr = []; // 将可见元素、图形以及不为空的图形分组筛选出来,用于包围盒合并\n\n var children = this.getChildren().filter(function (child) {\n return child.get('visible') && (!child.isGroup() || child.isGroup() && child.getChildren().length > 0);\n });\n\n if (children.length > 0) {\n each(children, function (child) {\n var box = child.getCanvasBBox();\n xArr.push(box.minX, box.maxX);\n yArr.push(box.minY, box.maxY);\n });\n minX = min(xArr);\n maxX = max(xArr);\n minY = min(yArr);\n maxY = max(yArr);\n } else {\n minX = 0;\n maxX = 0;\n minY = 0;\n maxY = 0;\n }\n\n var box = {\n x: minX,\n y: minY,\n minX: minX,\n minY: minY,\n maxX: maxX,\n maxY: maxY,\n width: maxX - minX,\n height: maxY - minY\n };\n return box;\n };\n\n Container.prototype.getDefaultCfg = function () {\n var cfg = _super.prototype.getDefaultCfg.call(this);\n\n cfg['children'] = [];\n return cfg;\n };\n\n Container.prototype.onAttrChange = function (name, value, originValue) {\n _super.prototype.onAttrChange.call(this, name, value, originValue);\n\n if (name === 'matrix') {\n var totalMatrix = this.getTotalMatrix();\n\n this._applyChildrenMarix(totalMatrix);\n }\n }; // 不但应用到自己身上还要应用于子元素\n\n\n Container.prototype.applyMatrix = function (matrix) {\n var preTotalMatrix = this.getTotalMatrix();\n\n _super.prototype.applyMatrix.call(this, matrix);\n\n var totalMatrix = this.getTotalMatrix(); // totalMatrix 没有发生变化时,这里仅考虑两者都为 null 时\n // 不继续向下传递矩阵\n\n if (totalMatrix === preTotalMatrix) {\n return;\n }\n\n this._applyChildrenMarix(totalMatrix);\n }; // 在子元素上设置矩阵\n\n\n Container.prototype._applyChildrenMarix = function (totalMatrix) {\n var children = this.getChildren();\n each(children, function (child) {\n child.applyMatrix(totalMatrix);\n });\n }; // 兼容老版本的接口\n\n\n Container.prototype.addShape = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var type = args[0];\n var cfg = args[1];\n\n if (isObject(type)) {\n cfg = type;\n } else {\n cfg['type'] = type;\n }\n\n var shapeType = SHAPE_MAP[cfg.type];\n\n if (!shapeType) {\n shapeType = upperFirst(cfg.type);\n SHAPE_MAP[cfg.type] = shapeType;\n }\n\n var ShapeBase = this.getShapeBase();\n var shape = new ShapeBase[shapeType](cfg);\n this.add(shape);\n return shape;\n };\n\n Container.prototype.addGroup = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var groupClass = args[0],\n cfg = args[1];\n var group;\n\n if (isFunction(groupClass)) {\n if (cfg) {\n group = new groupClass(cfg);\n } else {\n group = new groupClass({\n // canvas,\n parent: this\n });\n }\n } else {\n var tmpCfg = groupClass || {};\n var TmpGroupClass = this.getGroupBase();\n group = new TmpGroupClass(tmpCfg);\n }\n\n this.add(group);\n return group;\n };\n\n Container.prototype.getCanvas = function () {\n var canvas;\n\n if (this.isCanvas()) {\n canvas = this;\n } else {\n canvas = this.get('canvas');\n }\n\n return canvas;\n };\n\n Container.prototype.getShape = function (x, y, ev) {\n // 如果不支持拾取,则直接返回\n if (!isAllowCapture(this)) {\n return null;\n }\n\n var children = this.getChildren();\n var shape; // 如果容器是 group\n\n if (!this.isCanvas()) {\n var v = [x, y, 1]; // 将 x, y 转换成对应于 group 的局部坐标\n\n v = this.invertFromMatrix(v);\n\n if (!this.isClipped(v[0], v[1])) {\n shape = this._findShape(children, v[0], v[1], ev);\n }\n } else {\n shape = this._findShape(children, x, y, ev);\n }\n\n return shape;\n };\n\n Container.prototype._findShape = function (children, x, y, ev) {\n var shape = null;\n\n for (var i = children.length - 1; i >= 0; i--) {\n var child = children[i];\n\n if (isAllowCapture(child)) {\n if (child.isGroup()) {\n shape = child.getShape(x, y, ev);\n } else if (child.isHit(x, y)) {\n shape = child;\n }\n }\n\n if (shape) {\n break;\n }\n }\n\n return shape;\n };\n\n Container.prototype.add = function (element) {\n var canvas = this.getCanvas();\n var children = this.getChildren();\n var timeline = this.get('timeline');\n var preParent = element.getParent();\n\n if (preParent) {\n removeChild(preParent, element, false);\n }\n\n element.set('parent', this);\n\n if (canvas) {\n setCanvas(element, canvas);\n }\n\n if (timeline) {\n setTimeline(element, timeline);\n }\n\n children.push(element);\n element.onCanvasChange('add');\n\n this._applyElementMatrix(element);\n }; // 将当前容器的矩阵应用到子元素\n\n\n Container.prototype._applyElementMatrix = function (element) {\n var totalMatrix = this.getTotalMatrix(); // 添加图形或者分组时,需要把当前图元的矩阵设置进去\n\n if (totalMatrix) {\n element.applyMatrix(totalMatrix);\n }\n };\n\n Container.prototype.getChildren = function () {\n return this.get('children');\n };\n\n Container.prototype.sort = function () {\n var children = this.getChildren(); // 稳定排序\n\n each(children, function (child, index) {\n child[INDEX] = index;\n return child;\n });\n children.sort(getComparer(function (obj1, obj2) {\n return obj1.get('zIndex') - obj2.get('zIndex');\n }));\n this.onCanvasChange('sort');\n };\n\n Container.prototype.clear = function () {\n this.set('clearing', true);\n\n if (this.destroyed) {\n return;\n }\n\n var children = this.getChildren();\n\n for (var i = children.length - 1; i >= 0; i--) {\n children[i].destroy(); // 销毁子元素\n }\n\n this.set('children', []);\n this.onCanvasChange('clear');\n this.set('clearing', false);\n };\n\n Container.prototype.destroy = function () {\n if (this.get('destroyed')) {\n return;\n }\n\n this.clear();\n\n _super.prototype.destroy.call(this);\n };\n /**\n * 获取第一个子元素\n * @return {IElement} 第一个元素\n */\n\n\n Container.prototype.getFirst = function () {\n return this.getChildByIndex(0);\n };\n /**\n * 获取最后一个子元素\n * @return {IElement} 元素\n */\n\n\n Container.prototype.getLast = function () {\n var children = this.getChildren();\n return this.getChildByIndex(children.length - 1);\n };\n /**\n * 根据索引获取子元素\n * @return {IElement} 第一个元素\n */\n\n\n Container.prototype.getChildByIndex = function (index) {\n var children = this.getChildren();\n return children[index];\n };\n /**\n * 子元素的数量\n * @return {number} 子元素数量\n */\n\n\n Container.prototype.getCount = function () {\n var children = this.getChildren();\n return children.length;\n };\n /**\n * 是否包含对应元素\n * @param {IElement} element 元素\n * @return {boolean}\n */\n\n\n Container.prototype.contain = function (element) {\n var children = this.getChildren();\n return children.indexOf(element) > -1;\n };\n /**\n * 移除对应子元素\n * @param {IElement} element 子元素\n * @param {boolean} destroy 是否销毁子元素,默认为 true\n */\n\n\n Container.prototype.removeChild = function (element, destroy) {\n if (destroy === void 0) {\n destroy = true;\n }\n\n if (this.contain(element)) {\n element.remove(destroy);\n }\n };\n /**\n * 查找所有匹配的元素\n * @param {ElementFilterFn} fn 匹配函数\n * @return {IElement[]} 元素数组\n */\n\n\n Container.prototype.findAll = function (fn) {\n var rst = [];\n var children = this.getChildren();\n each(children, function (element) {\n if (fn(element)) {\n rst.push(element);\n }\n\n if (element.isGroup()) {\n rst = rst.concat(element.findAll(fn));\n }\n });\n return rst;\n };\n /**\n * 查找元素,找到第一个返回\n * @param {ElementFilterFn} fn 匹配函数\n * @return {IElement|null} 元素,可以为空\n */\n\n\n Container.prototype.find = function (fn) {\n var rst = null;\n var children = this.getChildren();\n each(children, function (element) {\n if (fn(element)) {\n rst = element;\n } else if (element.isGroup()) {\n rst = element.find(fn);\n }\n\n if (rst) {\n return false;\n }\n });\n return rst;\n };\n /**\n * 根据 ID 查找元素\n * @param {string} id 元素 id\n * @return {IElement|null} 元素\n */\n\n\n Container.prototype.findById = function (id) {\n return this.find(function (element) {\n return element.get('id') === id;\n });\n };\n /**\n * 该方法即将废弃,不建议使用\n * 根据 className 查找元素\n * TODO: 该方式定义暂时只给 G6 3.3 以后的版本使用,待 G6 中的 findByClassName 方法移除后,G 也需要同步移除\n * @param {string} className 元素 className\n * @return {IElement | null} 元素\n */\n\n\n Container.prototype.findByClassName = function (className) {\n return this.find(function (element) {\n return element.get('className') === className;\n });\n };\n /**\n * 根据 name 查找元素列表\n * @param {string} name 元素名称\n * @return {IElement[]} 元素\n */\n\n\n Container.prototype.findAllByName = function (name) {\n return this.findAll(function (element) {\n return element.get('name') === name;\n });\n };\n\n return Container;\n}(Element);\n\nexport default Container;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar frame = 0,\n // is an animation frame pending?\ntimeout = 0,\n // is a timeout pending?\ninterval = 0,\n // are any timers active?\npokeDelay = 1000,\n // how frequently we check for clock skew\ntaskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = (typeof performance === \"undefined\" ? \"undefined\" : _typeof(performance)) === \"object\" && performance.now ? performance : Date,\n setFrame = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function (f) {\n setTimeout(f, 17);\n};\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call = this._time = this._next = null;\n}\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function restart(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;else taskHead = this;\n taskTail = this;\n }\n\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function stop() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\nexport function timer(callback, delay, time) {\n var t = new Timer();\n t.restart(callback, delay, time);\n return t;\n}\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n\n var t = taskHead,\n e;\n\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(),\n delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0,\n t1 = taskHead,\n t2,\n time = Infinity;\n\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}","export default function (constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n\n for (var key in definition) {\n prototype[key] = definition[key];\n }\n\n return prototype;\n}","import define, { extend } from \"./define.js\";\nexport function Color() {}\nvar _darker = 0.7;\nexport { _darker as darker };\n\nvar _brighter = 1 / _darker;\n\nexport { _brighter as brighter };\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\ndefine(Color, color, {\n copy: function copy(channels) {\n return Object.assign(new this.constructor(), this, channels);\n },\n displayable: function displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb(m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, (m & 0xf) << 4 | m & 0xf, 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba(m >> 12 & 0xf | m >> 8 & 0xf0, m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, ((m & 0xf) << 4 | m & 0xf) / 0xff) // #f000\n : null // invalid hex\n ) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0) : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb();\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\ndefine(Rgb, rgb, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function rgb() {\n return this;\n },\n displayable: function displayable() {\n return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;\n },\n hex: rgb_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;else if (l <= 0 || l >= 1) h = s = NaN;else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl();\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;else if (g === max) h = (b - r) / s + 2;else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n\n return new Hsl(h, s, l, o.opacity);\n}\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity);\n },\n displayable: function displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;\n },\n formatHsl: function formatHsl() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\") + (this.h || 0) + \", \" + (this.s || 0) * 100 + \"%, \" + (this.l || 0) * 100 + \"%\" + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n/* From FvD 13.37, CSS Color Module Level 3 */\n\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;\n}","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1,\n t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6;\n}\nexport default function (values) {\n var n = values.length - 1;\n return function (t) {\n var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}","export default function (x) {\n return function () {\n return x;\n };\n}","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function (t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function (t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function (a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}","import { rgb as colorRgb } from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, { gamma } from \"./color.js\";\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function (t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function (colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i,\n color;\n\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function (t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);","import { basis } from \"./basis.js\";\nexport default function (values) {\n var n = values.length;\n return function (t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}","export default function (a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function (t) {\n for (i = 0; i < n; ++i) {\n c[i] = a[i] * (1 - t) + b[i] * t;\n }\n\n return c;\n };\n}\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}","import value from \"./value.js\";\nimport numberArray, { isNumberArray } from \"./numberArray.js\";\nexport default function (a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) {\n x[i] = value(a[i], b[i]);\n }\n\n for (; i < nb; ++i) {\n c[i] = b[i];\n }\n\n return function (t) {\n for (i = 0; i < na; ++i) {\n c[i] = x[i](t);\n }\n\n return c;\n };\n}","export default function (a, b) {\n var d = new Date();\n return a = +a, b = +b, function (t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}","export default function (a, b) {\n return a = +a, b = +b, function (t) {\n return a * (1 - t) + b * t;\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport value from \"./value.js\";\nexport default function (a, b) {\n var i = {},\n c = {},\n k;\n if (a === null || _typeof(a) !== \"object\") a = {};\n if (b === null || _typeof(b) !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function (t) {\n for (k in i) {\n c[k] = i[k](t);\n }\n\n return c;\n };\n}","import number from \"./number.js\";\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function () {\n return b;\n };\n}\n\nfunction one(b) {\n return function (t) {\n return b(t) + \"\";\n };\n}\n\nexport default function (a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0,\n // scan index for next number in b\n am,\n // current match in a\n bm,\n // current match in b\n bs,\n // string preceding current number in b, if any\n i = -1,\n // index in s\n s = [],\n // string constants and placeholders\n q = []; // number interpolators\n // Coerce inputs to strings.\n\n a = a + \"\", b = b + \"\"; // Interpolate pairs of numbers in a & b.\n\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n if ((am = am[0]) === (bm = bm[0])) {\n // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else {\n // interpolate non-matching numbers\n s[++i] = null;\n q.push({\n i: i,\n x: number(am, bm)\n });\n }\n\n bi = reB.lastIndex;\n } // Add remains of b.\n\n\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n } // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n\n\n return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function (t) {\n for (var i = 0, o; i < b; ++i) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport { color } from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport { genericArray } from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, { isNumberArray } from \"./numberArray.js\";\nexport default function (a, b) {\n var t = _typeof(b),\n c;\n\n return b == null || t === \"boolean\" ? constant(b) : (t === \"number\" ? number : t === \"string\" ? (c = color(b)) ? (b = c, rgb) : string : b instanceof color ? rgb : b instanceof Date ? date : isNumberArray(b) ? numberArray : Array.isArray(b) ? genericArray : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object : number)(a, b);\n}","export function linear(t) {\n return +t;\n}","export function quadIn(t) {\n return t * t;\n}\nexport function quadOut(t) {\n return t * (2 - t);\n}\nexport function quadInOut(t) {\n return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n}","export function cubicIn(t) {\n return t * t * t;\n}\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}","var exponent = 3;\nexport var polyIn = function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n return polyIn;\n}(exponent);\nexport var polyOut = function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n return polyOut;\n}(exponent);\nexport var polyInOut = function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n return polyInOut;\n}(exponent);","var pi = Math.PI,\n halfPi = pi / 2;\nexport function sinIn(t) {\n return +t === 1 ? 1 : 1 - Math.cos(t * halfPi);\n}\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}","// tpmt is two power minus ten times t scaled to [0,1]\nexport function tpmt(x) {\n return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494;\n}","import { tpmt } from \"./math.js\";\nexport function expIn(t) {\n return tpmt(1 - +t);\n}\nexport function expOut(t) {\n return 1 - tpmt(t);\n}\nexport function expInOut(t) {\n return ((t *= 2) <= 1 ? tpmt(1 - t) : 2 - tpmt(t - 1)) / 2;\n}","export function circleIn(t) {\n return 1 - Math.sqrt(1 - t * t);\n}\nexport function circleOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nexport function circleInOut(t) {\n return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}","var b1 = 4 / 11,\n b2 = 6 / 11,\n b3 = 8 / 11,\n b4 = 3 / 4,\n b5 = 9 / 11,\n b6 = 10 / 11,\n b7 = 15 / 16,\n b8 = 21 / 22,\n b9 = 63 / 64,\n b0 = 1 / b1 / b1;\nexport function bounceIn(t) {\n return 1 - bounceOut(1 - t);\n}\nexport function bounceOut(t) {\n return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n}\nexport function bounceInOut(t) {\n return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n}","var overshoot = 1.70158;\nexport var backIn = function custom(s) {\n s = +s;\n\n function backIn(t) {\n return (t = +t) * t * (s * (t - 1) + t);\n }\n\n backIn.overshoot = custom;\n return backIn;\n}(overshoot);\nexport var backOut = function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((t + 1) * s + t) + 1;\n }\n\n backOut.overshoot = custom;\n return backOut;\n}(overshoot);\nexport var backInOut = function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n return backInOut;\n}(overshoot);","import { tpmt } from \"./math.js\";\nvar tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\nexport var elasticIn = function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * tpmt(- --t) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function (a) {\n return custom(a, p * tau);\n };\n\n elasticIn.period = function (p) {\n return custom(a, p);\n };\n\n return elasticIn;\n}(amplitude, period);\nexport var elasticOut = function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function (a) {\n return custom(a, p * tau);\n };\n\n elasticOut.period = function (p) {\n return custom(a, p);\n };\n\n return elasticOut;\n}(amplitude, period);\nexport var elasticInOut = function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0 ? a * tpmt(-t) * Math.sin((s - t) / p) : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function (a) {\n return custom(a, p * tau);\n };\n\n elasticInOut.period = function (p) {\n return custom(a, p);\n };\n\n return elasticInOut;\n}(amplitude, period);","import * as d3Ease from 'd3-ease';\nvar EASING_MAP = {};\n/**\n * 根据名称获取对应的动画缓动函数\n * @param type 动画缓动函数名称\n */\n\nexport function getEasing(type) {\n // 默认从 d3-ease 中获取\n return EASING_MAP[type.toLowerCase()] || d3Ease[type];\n}\n/**\n * 注册动画缓动函数\n * @param type 动画缓动函数名称\n * @param easeFn 动画缓动函数\n */\n\nexport function registerEasing(type, easeFn) {\n EASING_MAP[type.toLowerCase()] = easeFn;\n}","export var isColorProp = function isColorProp(prop) {\n return ['fill', 'stroke', 'fillStyle', 'strokeStyle'].includes(prop);\n};\nexport var isGradientColor = function isGradientColor(val) {\n return /^[r,R,L,l]{1}[\\s]*\\(/.test(val);\n};","import { isEqual, isNumber, isFunction } from '@antv/util';\nimport * as d3Timer from 'd3-timer';\nimport { interpolate, interpolateArray } from 'd3-interpolate'; // 目前整体动画只需要数值和数组的差值计算\n\nimport { getEasing } from './register';\nimport * as PathUtil from '../util/path';\nimport { isColorProp, isGradientColor } from '../util/color';\nvar IDENTITY_MATRIX = [1, 0, 0, 0, 1, 0, 0, 0, 1];\n/**\n * 使用 ratio 进行插值计算来更新属性\n * @param {IElement} shape 元素\n * @param {Animation} animation 动画\n * @param {number} ratio 比例\n * @return {boolean} 动画是否执行完成\n */\n\nfunction _update(shape, animation, ratio) {\n var cProps = {}; // 此刻属性\n\n var fromAttrs = animation.fromAttrs,\n toAttrs = animation.toAttrs;\n\n if (shape.destroyed) {\n return;\n }\n\n var interf; // 差值函数\n\n for (var k in toAttrs) {\n if (!isEqual(fromAttrs[k], toAttrs[k])) {\n if (k === 'path') {\n var toPath = toAttrs[k];\n var fromPath = fromAttrs[k];\n\n if (toPath.length > fromPath.length) {\n toPath = PathUtil.parsePathString(toAttrs[k]); // 终点状态\n\n fromPath = PathUtil.parsePathString(fromAttrs[k]); // 起始状态\n\n fromPath = PathUtil.fillPathByDiff(fromPath, toPath);\n fromPath = PathUtil.formatPath(fromPath, toPath);\n animation.fromAttrs.path = fromPath;\n animation.toAttrs.path = toPath;\n } else if (!animation.pathFormatted) {\n toPath = PathUtil.parsePathString(toAttrs[k]);\n fromPath = PathUtil.parsePathString(fromAttrs[k]);\n fromPath = PathUtil.formatPath(fromPath, toPath);\n animation.fromAttrs.path = fromPath;\n animation.toAttrs.path = toPath;\n animation.pathFormatted = true;\n }\n\n cProps[k] = [];\n\n for (var i = 0; i < toPath.length; i++) {\n var toPathPoint = toPath[i];\n var fromPathPoint = fromPath[i];\n var cPathPoint = [];\n\n for (var j = 0; j < toPathPoint.length; j++) {\n if (isNumber(toPathPoint[j]) && fromPathPoint && isNumber(fromPathPoint[j])) {\n interf = interpolate(fromPathPoint[j], toPathPoint[j]);\n cPathPoint.push(interf(ratio));\n } else {\n cPathPoint.push(toPathPoint[j]);\n }\n }\n\n cProps[k].push(cPathPoint);\n }\n } else if (k === 'matrix') {\n /*\n 对矩阵进行插值时,需要保证矩阵不为空,为空则使用单位矩阵\n TODO: 二维和三维场景下单位矩阵不同,之后 WebGL 版需要做进一步处理\n */\n var matrixFn = interpolateArray(fromAttrs[k] || IDENTITY_MATRIX, toAttrs[k] || IDENTITY_MATRIX);\n var currentMatrix = matrixFn(ratio);\n cProps[k] = currentMatrix;\n } else if (isColorProp(k) && isGradientColor(toAttrs[k])) {\n cProps[k] = toAttrs[k];\n } else if (!isFunction(toAttrs[k])) {\n // 非函数类型的值才能做插值\n interf = interpolate(fromAttrs[k], toAttrs[k]);\n cProps[k] = interf(ratio);\n }\n }\n }\n\n shape.attr(cProps);\n}\n/**\n * 根据自定义帧动画函数 onFrame 来更新属性\n * @param {IElement} shape 元素\n * @param {Animation} animation 动画\n * @param {number} elapsed 动画执行时间(毫秒)\n * @return {boolean} 动画是否执行完成\n */\n\n\nfunction update(shape, animation, elapsed) {\n var startTime = animation.startTime,\n delay = animation.delay; // 如果还没有开始执行或暂停,先不更新\n\n if (elapsed < startTime + delay || animation._paused) {\n return false;\n }\n\n var ratio;\n var duration = animation.duration;\n var easing = animation.easing;\n var easeFn = getEasing(easing); // 已执行时间\n\n elapsed = elapsed - startTime - animation.delay;\n\n if (animation.repeat) {\n // 如果动画重复执行,则 elapsed > duration,计算 ratio 时需取模\n ratio = elapsed % duration / duration;\n ratio = easeFn(ratio);\n } else {\n ratio = elapsed / duration;\n\n if (ratio < 1) {\n // 动画未执行完\n ratio = easeFn(ratio);\n } else {\n // 动画已执行完\n if (animation.onFrame) {\n shape.attr(animation.onFrame(1));\n } else {\n shape.attr(animation.toAttrs);\n }\n\n return true;\n }\n }\n\n if (animation.onFrame) {\n var attrs = animation.onFrame(ratio);\n shape.attr(attrs);\n } else {\n _update(shape, animation, ratio);\n }\n\n return false;\n}\n\nvar Timeline =\n/** @class */\nfunction () {\n /**\n * 时间轴构造函数,依赖于画布\n * @param {}\n */\n function Timeline(canvas) {\n /**\n * 执行动画的元素列表\n * @type {IElement[]}\n */\n this.animators = [];\n /**\n * 当前时间\n * @type {number}\n */\n\n this.current = 0;\n /**\n * 定时器\n * @type {d3Timer.Timer}\n */\n\n this.timer = null;\n this.canvas = canvas;\n }\n /**\n * 初始化定时器\n */\n\n\n Timeline.prototype.initTimer = function () {\n var _this = this;\n\n var isFinished = false;\n var shape;\n var animations;\n var animation;\n this.timer = d3Timer.timer(function (elapsed) {\n _this.current = elapsed;\n\n if (_this.animators.length > 0) {\n for (var i = _this.animators.length - 1; i >= 0; i--) {\n shape = _this.animators[i];\n\n if (shape.destroyed) {\n // 如果已经被销毁,直接移出队列\n _this.removeAnimator(i);\n\n continue;\n }\n\n if (!shape.isAnimatePaused()) {\n animations = shape.get('animations');\n\n for (var j = animations.length - 1; j >= 0; j--) {\n animation = animations[j];\n isFinished = update(shape, animation, elapsed);\n\n if (isFinished) {\n animations.splice(j, 1);\n isFinished = false;\n\n if (animation.callback) {\n animation.callback();\n }\n }\n }\n }\n\n if (animations.length === 0) {\n _this.removeAnimator(i);\n }\n }\n\n var autoDraw = _this.canvas.get('autoDraw'); // 非自动渲染模式下,手动调用 canvas.draw() 重新渲染\n\n\n if (!autoDraw) {\n _this.canvas.draw();\n }\n }\n });\n };\n /**\n * 增加动画元素\n */\n\n\n Timeline.prototype.addAnimator = function (shape) {\n this.animators.push(shape);\n };\n /**\n * 移除动画元素\n */\n\n\n Timeline.prototype.removeAnimator = function (index) {\n this.animators.splice(index, 1);\n };\n /**\n * 是否有动画在执行\n */\n\n\n Timeline.prototype.isAnimating = function () {\n return !!this.animators.length;\n };\n /**\n * 停止定时器\n */\n\n\n Timeline.prototype.stop = function () {\n if (this.timer) {\n this.timer.stop();\n }\n };\n /**\n * 停止时间轴上所有元素的动画,并置空动画元素列表\n * @param {boolean} toEnd 是否到动画的最终状态,用来透传给动画元素的 stopAnimate 方法\n */\n\n\n Timeline.prototype.stopAllAnimations = function (toEnd) {\n if (toEnd === void 0) {\n toEnd = true;\n }\n\n this.animators.forEach(function (animator) {\n animator.stopAnimate(toEnd);\n });\n this.animators = [];\n this.canvas.draw();\n };\n /**\n * 获取当前时间\n */\n\n\n Timeline.prototype.getTime = function () {\n return this.current;\n };\n\n return Timeline;\n}();\n\nexport default Timeline;","/**\n * @fileoverview 事件处理器\n * @author dxq613@gmail.com\n */\nimport GraphEvent from './graph-event';\nimport { each, isParent } from '../util/util';\nvar CLICK_OFFSET = 40;\nvar LEFT_BTN_CODE = 0;\nvar DELEGATION_SPLIT = ':';\nvar EVENTS = ['mousedown', 'mouseup', 'dblclick', 'mouseout', 'mouseover', 'mousemove', 'mouseleave', 'mouseenter', 'touchstart', 'touchmove', 'touchend', 'dragenter', 'dragover', 'dragleave', 'drop', 'contextmenu', 'mousewheel']; // 是否有委托事件监听\n\nfunction hasDelegation(events, type) {\n for (var key in events) {\n if (events.hasOwnProperty(key) && key.indexOf(DELEGATION_SPLIT + type) >= 0) {\n return true;\n }\n }\n\n return false;\n} // 触发目标事件,目标只能是 shape 或 canvas\n\n\nfunction emitTargetEvent(target, type, eventObj) {\n eventObj.name = type;\n eventObj.target = target;\n eventObj.currentTarget = target;\n eventObj.delegateTarget = target;\n target.emit(type, eventObj);\n} // 事件冒泡, enter 和 leave 需要对 fromShape 和 toShape 进行判同\n\n\nfunction bubbleEvent(container, type, eventObj) {\n if (eventObj.bubbles) {\n var relativeShape = void 0;\n var isOverEvent = false;\n\n if (type === 'mouseenter') {\n relativeShape = eventObj.fromShape;\n isOverEvent = true;\n } else if (type === 'mouseleave') {\n isOverEvent = true;\n relativeShape = eventObj.toShape;\n } // canvas 上的 mouseenter, mouseleave 事件,仅当进入或者移出 canvas 时触发\n\n\n if (container.isCanvas() && isOverEvent) {\n return;\n } // 如果相关图形同当前图形在同一个容器内,不触发事件\n\n\n if (relativeShape && isParent(container, relativeShape)) {\n // 阻止继续向上冒泡\n eventObj.bubbles = false;\n return;\n } // 事件名称可能在委托过程中被修改,因此事件冒泡时需要重新设置事件名称\n\n\n eventObj.name = type;\n eventObj.currentTarget = container;\n eventObj.delegateTarget = container;\n container.emit(type, eventObj);\n }\n}\n\nvar EventController =\n/** @class */\nfunction () {\n function EventController(cfg) {\n var _this = this; // 正在被拖拽的图形\n\n\n this.draggingShape = null;\n this.dragging = false; // 当前鼠标/touch所在位置的图形\n\n this.currentShape = null;\n this.mousedownShape = null;\n this.mousedownPoint = null; // 统一处理所有的回调\n\n this._eventCallback = function (ev) {\n var type = ev.type;\n\n _this._triggerEvent(type, ev);\n }; // 在 document 处理拖拽到画布外的事件,处理从图形上移除画布未被捕捉的问题\n\n\n this._onDocumentMove = function (ev) {\n var canvas = _this.canvas;\n var el = canvas.get('el');\n\n if (el !== ev.target) {\n // 不在 canvas 上移动\n if (_this.dragging || _this.currentShape) {\n var pointInfo = _this._getPointInfo(ev); // 还在拖拽过程中\n\n\n if (_this.dragging) {\n _this._emitEvent('drag', ev, pointInfo, _this.draggingShape);\n } // 说明从某个图形直接移动到了画布外面,\n // 修复了 mouseleave 的 bug 后不再出现这种情况\n // if (this.currentShape) {\n // this._emitEvent('mouseleave', ev, pointInfo, this.currentShape, this.currentShape, null);\n // this.currentShape = null;\n // }\n\n }\n }\n }; // 在 document 上处理拖拽到外面,释放鼠标时触发 dragend\n\n\n this._onDocumentMouseUp = function (ev) {\n var canvas = _this.canvas;\n var el = canvas.get('el');\n\n if (el !== ev.target) {\n // 不在 canvas 上移动\n if (_this.dragging) {\n var pointInfo = _this._getPointInfo(ev);\n\n if (_this.draggingShape) {\n // 如果存在拖拽的图形,则也触发 drop 事件\n _this._emitEvent('drop', ev, pointInfo, null);\n }\n\n _this._emitEvent('dragend', ev, pointInfo, _this.draggingShape);\n\n _this._afterDrag(_this.draggingShape, pointInfo, ev);\n }\n }\n };\n\n this.canvas = cfg.canvas;\n }\n\n EventController.prototype.init = function () {\n this._bindEvents();\n }; // 注册事件\n\n\n EventController.prototype._bindEvents = function () {\n var _this = this;\n\n var el = this.canvas.get('el');\n each(EVENTS, function (eventName) {\n el.addEventListener(eventName, _this._eventCallback);\n });\n\n if (document) {\n // 处理移动到外面没有触发 shape mouse leave 的事件\n // 处理拖拽到外部的问题\n document.addEventListener('mousemove', this._onDocumentMove); // 处理拖拽过程中在外部释放鼠标的问题\n\n document.addEventListener('mouseup', this._onDocumentMouseUp);\n }\n }; // 清理事件\n\n\n EventController.prototype._clearEvents = function () {\n var _this = this;\n\n var el = this.canvas.get('el');\n each(EVENTS, function (eventName) {\n el.removeEventListener(eventName, _this._eventCallback);\n });\n\n if (document) {\n document.removeEventListener('mousemove', this._onDocumentMove);\n document.removeEventListener('mouseup', this._onDocumentMouseUp);\n }\n };\n\n EventController.prototype._getEventObj = function (type, event, point, target, fromShape, toShape) {\n var eventObj = new GraphEvent(type, event);\n eventObj.fromShape = fromShape;\n eventObj.toShape = toShape;\n eventObj.x = point.x;\n eventObj.y = point.y;\n eventObj.clientX = point.clientX;\n eventObj.clientY = point.clientY;\n eventObj.propagationPath.push(target); // 事件的x,y应该是基于画布左上角的,与canvas的matrix无关\n\n return eventObj;\n }; // 根据点获取图形,提取成独立方法,便于后续优化\n\n\n EventController.prototype._getShape = function (point, ev) {\n return this.canvas.getShape(point.x, point.y, ev);\n }; // 获取事件的当前点的信息\n\n\n EventController.prototype._getPointInfo = function (ev) {\n var canvas = this.canvas;\n var clientPoint = canvas.getClientByEvent(ev);\n var point = canvas.getPointByEvent(ev);\n return {\n x: point.x,\n y: point.y,\n clientX: clientPoint.x,\n clientY: clientPoint.y\n };\n }; // 触发事件\n\n\n EventController.prototype._triggerEvent = function (type, ev) {\n var pointInfo = this._getPointInfo(ev); // 每次都获取图形有一定成本,后期可以考虑进行缓存策略\n\n\n var shape = this._getShape(pointInfo, ev);\n\n var method = this[\"_on\" + type];\n var leaveCanvas = false;\n\n if (method) {\n method.call(this, pointInfo, shape, ev);\n } else {\n var preShape = this.currentShape; // 如果进入、移出画布时存在图形,则要分别触发事件\n\n if (type === 'mouseenter' || type === 'dragenter' || type === 'mouseover') {\n this._emitEvent(type, ev, pointInfo, null, null, shape); // 先进入画布\n\n\n if (shape) {\n this._emitEvent(type, ev, pointInfo, shape, null, shape); // 再触发图形的事件\n\n }\n\n if (type === 'mouseenter' && this.draggingShape) {\n // 如果正在拖拽图形, 则触发 dragleave\n this._emitEvent('dragenter', ev, pointInfo, null);\n }\n } else if (type === 'mouseleave' || type === 'dragleave' || type === 'mouseout') {\n leaveCanvas = true;\n\n if (preShape) {\n this._emitEvent(type, ev, pointInfo, preShape, preShape, null); // 先触发图形的事件\n\n }\n\n this._emitEvent(type, ev, pointInfo, null, preShape, null); // 再触发离开画布事件\n\n\n if (type === 'mouseleave' && this.draggingShape) {\n this._emitEvent('dragleave', ev, pointInfo, null);\n }\n } else {\n this._emitEvent(type, ev, pointInfo, shape, null, null); // 一般事件中不需要考虑 from, to\n\n }\n }\n\n if (!leaveCanvas) {\n this.currentShape = shape;\n } // 当鼠标从画布移动到 shape 或者从 preShape 移动到 shape 时,应用 shape 上的鼠标样式\n\n\n if (shape && !shape.get('destroyed')) {\n var canvas = this.canvas;\n var el = canvas.get('el');\n el.style.cursor = shape.attr('cursor') || canvas.get('cursor');\n }\n }; // 记录下点击的位置、图形,便于拖拽事件、click 事件的判定\n\n\n EventController.prototype._onmousedown = function (pointInfo, shape, event) {\n // 只有鼠标左键的 mousedown 事件才会设置 mousedownShape 等属性,避免鼠标右键的 mousedown 事件引起其他事件发生\n if (event.button === LEFT_BTN_CODE) {\n this.mousedownShape = shape;\n this.mousedownPoint = pointInfo;\n this.mousedownTimeStamp = event.timeStamp;\n }\n\n this._emitEvent('mousedown', event, pointInfo, shape, null, null); // mousedown 不考虑fromShape, toShape\n\n }; // mouseleave 和 mouseenter 都是成对存在的\n // mouseenter 和 mouseover 同时触发\n\n\n EventController.prototype._emitMouseoverEvents = function (event, pointInfo, fromShape, toShape) {\n var el = this.canvas.get('el');\n\n if (fromShape !== toShape) {\n if (fromShape) {\n this._emitEvent('mouseout', event, pointInfo, fromShape, fromShape, toShape);\n\n this._emitEvent('mouseleave', event, pointInfo, fromShape, fromShape, toShape); // 当鼠标从 fromShape 移动到画布上时,重置鼠标样式\n\n\n if (!toShape || toShape.get('destroyed')) {\n el.style.cursor = this.canvas.get('cursor');\n }\n }\n\n if (toShape) {\n this._emitEvent('mouseover', event, pointInfo, toShape, fromShape, toShape);\n\n this._emitEvent('mouseenter', event, pointInfo, toShape, fromShape, toShape);\n }\n }\n }; // dragover 不等同于 mouseover,而等同于 mousemove\n\n\n EventController.prototype._emitDragoverEvents = function (event, pointInfo, fromShape, toShape, isCanvasEmit) {\n if (toShape) {\n if (toShape !== fromShape) {\n if (fromShape) {\n this._emitEvent('dragleave', event, pointInfo, fromShape, fromShape, toShape);\n }\n\n this._emitEvent('dragenter', event, pointInfo, toShape, fromShape, toShape);\n }\n\n if (!isCanvasEmit) {\n this._emitEvent('dragover', event, pointInfo, toShape);\n }\n } else if (fromShape) {\n // TODO: 此处判断有问题,当 drag 图形时,也会触发一次 dragleave 事件,因为此时 toShape 为 null,这不是所期望的\n // 经过空白区域\n this._emitEvent('dragleave', event, pointInfo, fromShape, fromShape, toShape);\n }\n\n if (isCanvasEmit) {\n this._emitEvent('dragover', event, pointInfo, toShape);\n }\n }; // drag 完成后,需要做一些清理工作\n\n\n EventController.prototype._afterDrag = function (draggingShape, pointInfo, event) {\n if (draggingShape) {\n draggingShape.set('capture', true); // 恢复可以拾取\n\n this.draggingShape = null;\n }\n\n this.dragging = false; // drag 完成后,有可能 draggingShape 已经移动到了当前位置,所以不能直接取当前图形\n\n var shape = this._getShape(pointInfo, event); // 拖拽完成后,进行 enter,leave 的判定\n\n\n if (shape !== draggingShape) {\n this._emitMouseoverEvents(event, pointInfo, draggingShape, shape);\n }\n\n this.currentShape = shape; // 更新当前 shape,如果不处理当前图形的 mouseleave 事件可能会出问题\n }; // 按键抬起时,会终止拖拽、触发点击\n\n\n EventController.prototype._onmouseup = function (pointInfo, shape, event) {\n // eevent.button === 0 表示鼠标左键事件,此处加上判断主要是为了避免右键鼠标会触发 mouseup 和 click 事件\n // ref: https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n if (event.button === LEFT_BTN_CODE) {\n var draggingShape = this.draggingShape;\n\n if (this.dragging) {\n // 存在可以拖拽的图形,同时拖拽到其他图形上时触发 drag 事件\n if (draggingShape) {\n this._emitEvent('drop', event, pointInfo, shape);\n }\n\n this._emitEvent('dragend', event, pointInfo, draggingShape);\n\n this._afterDrag(draggingShape, pointInfo, event);\n } else {\n this._emitEvent('mouseup', event, pointInfo, shape); // 先触发 mouseup 再触发 click\n\n\n if (shape === this.mousedownShape) {\n this._emitEvent('click', event, pointInfo, shape);\n }\n\n this.mousedownShape = null;\n this.mousedownPoint = null;\n }\n }\n }; // 当触发浏览器的 dragover 事件时,不会再触发 mousemove ,所以这时候的 dragenter, dragleave 事件需要重新处理\n\n\n EventController.prototype._ondragover = function (pointInfo, shape, event) {\n event.preventDefault(); // 如果不对 dragover 进行 preventDefault,则不会在 canvas 上触发 drop 事件\n\n var preShape = this.currentShape;\n\n this._emitDragoverEvents(event, pointInfo, preShape, shape, true);\n }; // 大量的图形事件,都通过 mousemove 模拟\n\n\n EventController.prototype._onmousemove = function (pointInfo, shape, event) {\n var canvas = this.canvas;\n var preShape = this.currentShape;\n var draggingShape = this.draggingShape; // 正在拖拽时\n\n if (this.dragging) {\n // 正在拖拽中\n if (draggingShape) {\n // 如果拖拽了 shape 会触发 dragenter, dragleave, dragover 和 drag 事件\n this._emitDragoverEvents(event, pointInfo, preShape, shape, false);\n } // 如果存在 draggingShape 则会在 draggingShape 上触发 drag 事件,冒泡到 canvas 上\n // 否则在 canvas 上触发 drag 事件\n\n\n this._emitEvent('drag', event, pointInfo, draggingShape);\n } else {\n var mousedownPoint = this.mousedownPoint;\n\n if (mousedownPoint) {\n // 当鼠标点击下去,同时移动时,进行 drag 判定\n var mousedownShape = this.mousedownShape;\n var now = event.timeStamp;\n var timeWindow = now - this.mousedownTimeStamp;\n var dx = mousedownPoint.clientX - pointInfo.clientX;\n var dy = mousedownPoint.clientY - pointInfo.clientY;\n var dist = dx * dx + dy * dy;\n\n if (timeWindow > 120 || dist > CLICK_OFFSET) {\n if (mousedownShape && mousedownShape.get('draggable')) {\n // 设置了 draggable 的 shape 才能触发 drag 相关的事件\n draggingShape = this.mousedownShape; // 拖动鼠标点下时的 shape\n\n draggingShape.set('capture', false); // 禁止继续拾取,否则无法进行 dragover,dragenter,dragleave,drop的判定\n\n this.draggingShape = draggingShape;\n this.dragging = true;\n\n this._emitEvent('dragstart', event, pointInfo, draggingShape); // 清理按下鼠标时缓存的值\n\n\n this.mousedownShape = null;\n this.mousedownPoint = null;\n } else if (!mousedownShape && canvas.get('draggable')) {\n // 设置了 draggable 的 canvas 才能触发 drag 相关的事件\n this.dragging = true;\n\n this._emitEvent('dragstart', event, pointInfo, null); // 清理按下鼠标时缓存的值\n\n\n this.mousedownShape = null;\n this.mousedownPoint = null;\n } else {\n this._emitMouseoverEvents(event, pointInfo, preShape, shape);\n\n this._emitEvent('mousemove', event, pointInfo, shape);\n }\n } else {\n this._emitMouseoverEvents(event, pointInfo, preShape, shape);\n\n this._emitEvent('mousemove', event, pointInfo, shape);\n }\n } else {\n // 没有按键按下时,则直接触发 mouse over 相关的各种事件\n this._emitMouseoverEvents(event, pointInfo, preShape, shape); // 始终触发移动\n\n\n this._emitEvent('mousemove', event, pointInfo, shape);\n }\n }\n }; // 触发事件\n\n\n EventController.prototype._emitEvent = function (type, event, pointInfo, shape, fromShape, toShape) {\n var eventObj = this._getEventObj(type, event, pointInfo, shape, fromShape, toShape); // 存在 shape 触发,则进行冒泡处理\n\n\n if (shape) {\n eventObj.shape = shape; // 触发 shape 上的事件\n\n emitTargetEvent(shape, type, eventObj);\n var parent_1 = shape.getParent(); // 执行冒泡\n\n while (parent_1) {\n // 委托事件要先触发\n parent_1.emitDelegation(type, eventObj); // 事件冒泡停止,不能妨碍委托事件\n\n if (!eventObj.propagationStopped) {\n bubbleEvent(parent_1, type, eventObj);\n }\n\n eventObj.propagationPath.push(parent_1);\n parent_1 = parent_1.getParent();\n }\n } else {\n // 如果没有 shape 直接在 canvas 上触发\n var canvas = this.canvas; // 直接触发 canvas 上的事件\n\n emitTargetEvent(canvas, type, eventObj);\n }\n };\n\n EventController.prototype.destroy = function () {\n // 清理事件\n this._clearEvents(); // 清理缓存的对象\n\n\n this.canvas = null;\n this.currentShape = null;\n this.draggingShape = null;\n this.mousedownPoint = null;\n this.mousedownShape = null;\n this.mousedownTimeStamp = null;\n };\n\n return EventController;\n}();\n\nexport default EventController;","import { __extends } from \"tslib\";\nimport { detect } from 'detect-browser';\nimport Container from './container';\nimport { isBrowser, isNil, isString } from '../util/util';\nimport Timeline from '../animate/timeline';\nimport EventController from '../event/event-contoller';\nvar PX_SUFFIX = 'px';\nvar browser = detect();\nvar isFirefox = browser && browser.name === 'firefox';\n\nvar Canvas =\n/** @class */\nfunction (_super) {\n __extends(Canvas, _super);\n\n function Canvas(cfg) {\n var _this = _super.call(this, cfg) || this;\n\n _this.initContainer();\n\n _this.initDom();\n\n _this.initEvents();\n\n _this.initTimeline();\n\n return _this;\n }\n\n Canvas.prototype.getDefaultCfg = function () {\n var cfg = _super.prototype.getDefaultCfg.call(this); // set default cursor style for canvas\n\n\n cfg['cursor'] = 'default'; // CSS transform 目前尚未经过长时间验证,为了避免影响上层业务,默认关闭,上层按需开启\n\n cfg['supportCSSTransform'] = false;\n return cfg;\n };\n /**\n * @protected\n * 初始化容器\n */\n\n\n Canvas.prototype.initContainer = function () {\n var container = this.get('container');\n\n if (isString(container)) {\n container = document.getElementById(container);\n this.set('container', container);\n }\n };\n /**\n * @protected\n * 初始化 DOM\n */\n\n\n Canvas.prototype.initDom = function () {\n var el = this.createDom();\n this.set('el', el); // 附加到容器\n\n var container = this.get('container');\n container.appendChild(el); // 设置初始宽度\n\n this.setDOMSize(this.get('width'), this.get('height'));\n };\n /**\n * @protected\n * 初始化绑定的事件\n */\n\n\n Canvas.prototype.initEvents = function () {\n var eventController = new EventController({\n canvas: this\n });\n eventController.init();\n this.set('eventController', eventController);\n };\n /**\n * @protected\n * 初始化时间轴\n */\n\n\n Canvas.prototype.initTimeline = function () {\n var timeline = new Timeline(this);\n this.set('timeline', timeline);\n };\n /**\n * @protected\n * 修改画布对应的 DOM 的大小\n * @param {number} width 宽度\n * @param {number} height 高度\n */\n\n\n Canvas.prototype.setDOMSize = function (width, height) {\n var el = this.get('el');\n\n if (isBrowser) {\n el.style.width = width + PX_SUFFIX;\n el.style.height = height + PX_SUFFIX;\n }\n }; // 实现接口\n\n\n Canvas.prototype.changeSize = function (width, height) {\n this.setDOMSize(width, height);\n this.set('width', width);\n this.set('height', height);\n this.onCanvasChange('changeSize');\n };\n /**\n * 获取当前的渲染引擎\n * @return {Renderer} 返回当前的渲染引擎\n */\n\n\n Canvas.prototype.getRenderer = function () {\n return this.get('renderer');\n };\n /**\n * 获取画布的 cursor 样式\n * @return {Cursor}\n */\n\n\n Canvas.prototype.getCursor = function () {\n return this.get('cursor');\n };\n /**\n * 设置画布的 cursor 样式\n * @param {Cursor} cursor cursor 样式\n */\n\n\n Canvas.prototype.setCursor = function (cursor) {\n this.set('cursor', cursor);\n var el = this.get('el');\n\n if (isBrowser && el) {\n // 直接设置样式,不等待鼠标移动时再设置\n el.style.cursor = cursor;\n }\n }; // 实现接口\n\n\n Canvas.prototype.getPointByEvent = function (ev) {\n var supportCSSTransform = this.get('supportCSSTransform');\n\n if (supportCSSTransform) {\n // For Firefox <= 38\n if (isFirefox && !isNil(ev.layerX) && ev.layerX !== ev.offsetX) {\n return {\n x: ev.layerX,\n y: ev.layerY\n };\n }\n\n if (!isNil(ev.offsetX)) {\n // For IE6+, Firefox >= 39, Chrome, Safari, Opera\n return {\n x: ev.offsetX,\n y: ev.offsetY\n };\n }\n } // should calculate by self for other cases, like Safari in ios\n // TODO: support CSS transform\n\n\n var _a = this.getClientByEvent(ev),\n clientX = _a.x,\n clientY = _a.y;\n\n return this.getPointByClient(clientX, clientY);\n }; // 获取 touch 事件的 clientX 和 clientY 需要单独处理\n\n\n Canvas.prototype.getClientByEvent = function (ev) {\n var clientInfo = ev;\n\n if (ev.touches) {\n if (ev.type === 'touchend') {\n clientInfo = ev.changedTouches[0];\n } else {\n clientInfo = ev.touches[0];\n }\n }\n\n return {\n x: clientInfo.clientX,\n y: clientInfo.clientY\n };\n }; // 实现接口\n\n\n Canvas.prototype.getPointByClient = function (clientX, clientY) {\n var el = this.get('el');\n var bbox = el.getBoundingClientRect();\n return {\n x: clientX - bbox.left,\n y: clientY - bbox.top\n };\n }; // 实现接口\n\n\n Canvas.prototype.getClientByPoint = function (x, y) {\n var el = this.get('el');\n var bbox = el.getBoundingClientRect();\n return {\n x: x + bbox.left,\n y: y + bbox.top\n };\n }; // 实现接口\n\n\n Canvas.prototype.draw = function () {};\n /**\n * @protected\n * 销毁 DOM 容器\n */\n\n\n Canvas.prototype.removeDom = function () {\n var el = this.get('el');\n el.parentNode.removeChild(el);\n };\n /**\n * @protected\n * 清理所有的事件\n */\n\n\n Canvas.prototype.clearEvents = function () {\n var eventController = this.get('eventController');\n eventController.destroy();\n };\n\n Canvas.prototype.isCanvas = function () {\n return true;\n };\n\n Canvas.prototype.getParent = function () {\n return null;\n };\n\n Canvas.prototype.destroy = function () {\n var timeline = this.get('timeline');\n\n if (this.get('destroyed')) {\n return;\n }\n\n this.clear(); // 同初始化时相反顺序调用\n\n if (timeline) {\n // 画布销毁时自动停止动画\n timeline.stop();\n }\n\n this.clearEvents();\n this.removeDom();\n\n _super.prototype.destroy.call(this);\n };\n\n return Canvas;\n}(Container);\n\nexport default Canvas;","import { __extends } from \"tslib\";\nimport Container from './container';\n\nvar AbstractGroup =\n/** @class */\nfunction (_super) {\n __extends(AbstractGroup, _super);\n\n function AbstractGroup() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n AbstractGroup.prototype.isGroup = function () {\n return true;\n };\n\n AbstractGroup.prototype.isEntityGroup = function () {\n return false;\n };\n\n AbstractGroup.prototype.clone = function () {\n var clone = _super.prototype.clone.call(this); // 获取构造函数\n\n\n var children = this.getChildren();\n\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n clone.add(child.clone());\n }\n\n return clone;\n };\n\n return AbstractGroup;\n}(Container);\n\nexport default AbstractGroup;","import { __extends } from \"tslib\";\nimport Element from './element';\nimport { multiplyVec2 } from '../util/matrix';\n\nvar AbstractShape =\n/** @class */\nfunction (_super) {\n __extends(AbstractShape, _super);\n\n function AbstractShape(cfg) {\n return _super.call(this, cfg) || this;\n } // 是否在包围盒内\n\n\n AbstractShape.prototype._isInBBox = function (refX, refY) {\n var bbox = this.getBBox();\n return bbox.minX <= refX && bbox.maxX >= refX && bbox.minY <= refY && bbox.maxY >= refY;\n };\n /**\n * 属性更改后需要做的事情\n * @protected\n * @param {ShapeAttrs} targetAttrs 渲染的图像属性\n */\n\n\n AbstractShape.prototype.afterAttrsChange = function (targetAttrs) {\n _super.prototype.afterAttrsChange.call(this, targetAttrs);\n\n this.clearCacheBBox();\n }; // 计算包围盒时,需要缓存,这是一个高频的操作\n\n\n AbstractShape.prototype.getBBox = function () {\n var bbox = this.cfg.bbox;\n\n if (!bbox) {\n bbox = this.calculateBBox();\n this.set('bbox', bbox);\n }\n\n return bbox;\n }; // 计算相对于画布的包围盒\n\n\n AbstractShape.prototype.getCanvasBBox = function () {\n var canvasBBox = this.cfg.canvasBBox;\n\n if (!canvasBBox) {\n canvasBBox = this.calculateCanvasBBox();\n this.set('canvasBBox', canvasBBox);\n }\n\n return canvasBBox;\n };\n\n AbstractShape.prototype.applyMatrix = function (matrix) {\n _super.prototype.applyMatrix.call(this, matrix); // 清理掉缓存的包围盒\n\n\n this.set('canvasBBox', null);\n };\n /**\n * 计算相对于画布的包围盒,默认等同于 bbox\n * @return {BBox} 包围盒\n */\n\n\n AbstractShape.prototype.calculateCanvasBBox = function () {\n var bbox = this.getBBox();\n var totalMatrix = this.getTotalMatrix();\n var minX = bbox.minX,\n minY = bbox.minY,\n maxX = bbox.maxX,\n maxY = bbox.maxY;\n\n if (totalMatrix) {\n var topLeft = multiplyVec2(totalMatrix, [bbox.minX, bbox.minY]);\n var topRight = multiplyVec2(totalMatrix, [bbox.maxX, bbox.minY]);\n var bottomLeft = multiplyVec2(totalMatrix, [bbox.minX, bbox.maxY]);\n var bottomRight = multiplyVec2(totalMatrix, [bbox.maxX, bbox.maxY]);\n minX = Math.min(topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]);\n maxX = Math.max(topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]);\n minY = Math.min(topLeft[1], topRight[1], bottomLeft[1], bottomRight[1]);\n maxY = Math.max(topLeft[1], topRight[1], bottomLeft[1], bottomRight[1]);\n }\n\n var attrs = this.attrs; // 如果存在 shadow 则计算 shadow\n\n if (attrs.shadowColor) {\n var _a = attrs.shadowBlur,\n shadowBlur = _a === void 0 ? 0 : _a,\n _b = attrs.shadowOffsetX,\n shadowOffsetX = _b === void 0 ? 0 : _b,\n _c = attrs.shadowOffsetY,\n shadowOffsetY = _c === void 0 ? 0 : _c;\n var shadowLeft = minX - shadowBlur + shadowOffsetX;\n var shadowRight = maxX + shadowBlur + shadowOffsetX;\n var shadowTop = minY - shadowBlur + shadowOffsetY;\n var shadowBottom = maxY + shadowBlur + shadowOffsetY;\n minX = Math.min(minX, shadowLeft);\n maxX = Math.max(maxX, shadowRight);\n minY = Math.min(minY, shadowTop);\n maxY = Math.max(maxY, shadowBottom);\n }\n\n return {\n x: minX,\n y: minY,\n minX: minX,\n minY: minY,\n maxX: maxX,\n maxY: maxY,\n width: maxX - minX,\n height: maxY - minY\n };\n };\n /**\n * @protected\n * 清理缓存的 bbox\n */\n\n\n AbstractShape.prototype.clearCacheBBox = function () {\n this.set('bbox', null);\n this.set('canvasBBox', null);\n }; // 实现接口\n\n\n AbstractShape.prototype.isClipShape = function () {\n return this.get('isClipShape');\n };\n /**\n * @protected\n * 不同的图形自己实现是否在图形内部的逻辑,要判断边和填充区域\n * @param {number} refX 相对于图形的坐标 x\n * @param {number} refY 相对于图形的坐标 Y\n * @return {boolean} 点是否在图形内部\n */\n\n\n AbstractShape.prototype.isInShape = function (refX, refY) {\n return false;\n };\n /**\n * 是否仅仅使用 BBox 检测就可以判定拾取到图形\n * 默认是 false,但是有些图形例如 image、marker 等都可直接使用 BBox 的检测而不需要使用图形拾取\n * @return {Boolean} 仅仅使用 BBox 进行拾取\n */\n\n\n AbstractShape.prototype.isOnlyHitBox = function () {\n return false;\n }; // 不同的 Shape 各自实现\n\n\n AbstractShape.prototype.isHit = function (x, y) {\n var startArrowShape = this.get('startArrowShape');\n var endArrowShape = this.get('endArrowShape');\n var vec = [x, y, 1];\n vec = this.invertFromMatrix(vec);\n var refX = vec[0],\n refY = vec[1];\n\n var inBBox = this._isInBBox(refX, refY); // 跳过图形的拾取,在某些图形中可以省略一倍的检测成本\n\n\n if (this.isOnlyHitBox()) {\n return inBBox;\n } // 被裁减掉的和不在包围盒内的不进行计算\n\n\n if (inBBox && !this.isClipped(refX, refY)) {\n // 对图形进行拾取判断\n if (this.isInShape(refX, refY)) {\n return true;\n } // 对起始箭头进行拾取判断\n\n\n if (startArrowShape && startArrowShape.isHit(refX, refY)) {\n return true;\n } // 对结束箭头进行拾取判断\n\n\n if (endArrowShape && endArrowShape.isHit(refX, refY)) {\n return true;\n }\n }\n\n return false;\n };\n\n return AbstractShape;\n}(Element);\n\nexport default AbstractShape;","var cache = new Map();\n/**\n * 注册计算包围盒的算法\n * @param type 方法名\n * @param method 方法\n */\n\nexport function register(type, method) {\n cache.set(type, method);\n}\n/**\n * 获取计算包围盒的算法\n * @param type 方法名\n */\n\nexport function getMethod(type) {\n return cache.get(type);\n}","export default function (shape) {\n var attrs = shape.attr();\n var x = attrs.x,\n y = attrs.y,\n width = attrs.width,\n height = attrs.height;\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n}","export default function (shape) {\n var _a = shape.attr(),\n x = _a.x,\n y = _a.y,\n r = _a.r;\n\n return {\n x: x - r,\n y: y - r,\n width: r * 2,\n height: r * 2\n };\n}","// 合并包围盒\nexport function mergeBBox(bbox1, bbox2) {\n if (!bbox1 || !bbox2) {\n return bbox1 || bbox2;\n }\n\n return {\n minX: Math.min(bbox1.minX, bbox2.minX),\n minY: Math.min(bbox1.minY, bbox2.minY),\n maxX: Math.max(bbox1.maxX, bbox2.maxX),\n maxY: Math.max(bbox1.maxY, bbox2.maxY)\n };\n} // 合并箭头的包围盒\n\nexport function mergeArrowBBox(shape, bbox) {\n var startArrowShape = shape.get('startArrowShape');\n var endArrowShape = shape.get('endArrowShape');\n var startArrowBBox = null;\n var endArrowBBox = null;\n\n if (startArrowShape) {\n startArrowBBox = startArrowShape.getCanvasBBox();\n bbox = mergeBBox(bbox, startArrowBBox);\n }\n\n if (endArrowShape) {\n endArrowBBox = endArrowShape.getCanvasBBox();\n bbox = mergeBBox(bbox, endArrowBBox);\n }\n\n return bbox;\n}","import { Util } from '@antv/g-math';\nimport { mergeArrowBBox } from './util';\nexport default function (shape) {\n var attrs = shape.attr();\n var points = attrs.points;\n var xArr = [];\n var yArr = [];\n\n for (var i = 0; i < points.length; i++) {\n var point = points[i];\n xArr.push(point[0]);\n yArr.push(point[1]);\n }\n\n var _a = Util.getBBoxByArray(xArr, yArr),\n x = _a.x,\n y = _a.y,\n width = _a.width,\n height = _a.height;\n\n var bbox = {\n minX: x,\n minY: y,\n maxX: x + width,\n maxY: y + height\n };\n bbox = mergeArrowBBox(shape, bbox);\n return {\n x: bbox.minX,\n y: bbox.minY,\n width: bbox.maxX - bbox.minX,\n height: bbox.maxY - bbox.minY\n };\n}","// 全局设置一个唯一离屏的 ctx,用于计算 isPointInPath\nvar offScreenCtx = null;\nexport function getOffScreenContext() {\n if (!offScreenCtx) {\n var canvas = document.createElement('canvas');\n canvas.width = 1;\n canvas.height = 1;\n offScreenCtx = canvas.getContext('2d');\n }\n\n return offScreenCtx;\n}","import { isNil, each, isString } from './util';\nimport { getOffScreenContext } from './offscreen';\n/**\n * 获取文本的高度\n * @param text 文本\n * @param fontSize 字体大小\n * @param lineHeight 行高,可以为空\n */\n\nexport function getTextHeight(text, fontSize, lineHeight) {\n var lineCount = 1;\n\n if (isString(text)) {\n lineCount = text.split('\\n').length;\n }\n\n if (lineCount > 1) {\n var spaceingY = getLineSpaceing(fontSize, lineHeight);\n return fontSize * lineCount + spaceingY * (lineCount - 1);\n }\n\n return fontSize;\n}\n/**\n * 获取行间距如果文本多行,需要获取文本间距\n * @param fontSize 字体大小\n * @param lineHeight 行高\n */\n\nexport function getLineSpaceing(fontSize, lineHeight) {\n return lineHeight ? lineHeight - fontSize : fontSize * 0.14;\n}\n/**\n * 字体宽度\n * @param text 文本\n * @param font 字体\n */\n\nexport function getTextWidth(text, font) {\n var context = getOffScreenContext(); // 获取离屏的 ctx 进行计算\n\n var width = 0; // null 或者 undefined 时,宽度为 0\n\n if (isNil(text) || text === '') {\n return width;\n }\n\n context.save();\n context.font = font;\n\n if (isString(text) && text.includes('\\n')) {\n var textArr = text.split('\\n');\n each(textArr, function (subText) {\n var measureWidth = context.measureText(subText).width;\n\n if (width < measureWidth) {\n width = measureWidth;\n }\n });\n } else {\n width = context.measureText(text).width;\n }\n\n context.restore();\n return width;\n}\nexport function assembleFont(attrs) {\n var fontSize = attrs.fontSize,\n fontFamily = attrs.fontFamily,\n fontWeight = attrs.fontWeight,\n fontStyle = attrs.fontStyle,\n fontVariant = attrs.fontVariant;\n return [fontStyle, fontVariant, fontWeight, fontSize + \"px\", fontFamily].join(' ').trim();\n}","import { getTextWidth, getTextHeight, assembleFont } from '../util/text';\nexport default function (shape) {\n var attrs = shape.attr();\n var x = attrs.x,\n y = attrs.y,\n text = attrs.text,\n fontSize = attrs.fontSize,\n lineHeight = attrs.lineHeight;\n var font = attrs.font;\n\n if (!font) {\n // 如果未组装 font\n font = assembleFont(attrs);\n }\n\n var width = getTextWidth(text, font);\n var bbox;\n\n if (!width) {\n // 如果width不存在,四点共其实点\n bbox = {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n } else {\n var textAlign = attrs.textAlign,\n textBaseline = attrs.textBaseline;\n var height = getTextHeight(text, fontSize, lineHeight); // attrs.height\n // 默认左右对齐:left, 默认上下对齐 bottom\n\n var point = {\n x: x,\n y: y - height\n };\n\n if (textAlign) {\n if (textAlign === 'end' || textAlign === 'right') {\n point.x -= width;\n } else if (textAlign === 'center') {\n point.x -= width / 2;\n }\n }\n\n if (textBaseline) {\n if (textBaseline === 'top') {\n point.y += height;\n } else if (textBaseline === 'middle') {\n point.y += height / 2;\n }\n }\n\n bbox = {\n x: point.x,\n y: point.y,\n width: width,\n height: height\n };\n }\n\n return bbox;\n}","import { Quad as QuadUtil, Cubic as CubicUtil, Arc as EllipseArcUtil } from '@antv/g-math';\nimport { path2Segments } from '@antv/path-util';\nimport { isNumberEqual, max, min } from '@antv/util';\nimport { mergeArrowBBox } from './util';\n\nfunction getPathBox(segments, lineWidth) {\n var xArr = [];\n var yArr = [];\n var segmentsWithAngle = [];\n\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n var currentPoint = segment.currentPoint,\n params = segment.params,\n prePoint = segment.prePoint;\n var box = void 0;\n\n switch (segment.command) {\n case 'Q':\n box = QuadUtil.box(prePoint[0], prePoint[1], params[1], params[2], params[3], params[4]);\n break;\n\n case 'C':\n box = CubicUtil.box(prePoint[0], prePoint[1], params[1], params[2], params[3], params[4], params[5], params[6]);\n break;\n\n case 'A':\n var arcParams = segment.arcParams;\n box = EllipseArcUtil.box(arcParams.cx, arcParams.cy, arcParams.rx, arcParams.ry, arcParams.xRotation, arcParams.startAngle, arcParams.endAngle);\n break;\n\n default:\n xArr.push(currentPoint[0]);\n yArr.push(currentPoint[1]);\n break;\n }\n\n if (box) {\n segment.box = box;\n xArr.push(box.x, box.x + box.width);\n yArr.push(box.y, box.y + box.height);\n }\n\n if (lineWidth && (segment.command === 'L' || segment.command === 'M') && segment.prePoint && segment.nextPoint) {\n segmentsWithAngle.push(segment);\n }\n } // bbox calculation should ignore NaN for path attribute\n // ref: https://github.com/antvis/g/issues/210\n // ref: https://github.com/antvis/G2/issues/3109\n\n\n xArr = xArr.filter(function (item) {\n return !Number.isNaN(item) && item !== Infinity && item !== -Infinity;\n });\n yArr = yArr.filter(function (item) {\n return !Number.isNaN(item) && item !== Infinity && item !== -Infinity;\n });\n var minX = min(xArr);\n var minY = min(yArr);\n var maxX = max(xArr);\n var maxY = max(yArr);\n\n if (segmentsWithAngle.length === 0) {\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n\n for (var i = 0; i < segmentsWithAngle.length; i++) {\n var segment = segmentsWithAngle[i];\n var currentPoint = segment.currentPoint;\n var extra = void 0;\n\n if (currentPoint[0] === minX) {\n extra = getExtraFromSegmentWithAngle(segment, lineWidth);\n minX = minX - extra.xExtra;\n } else if (currentPoint[0] === maxX) {\n extra = getExtraFromSegmentWithAngle(segment, lineWidth);\n maxX = maxX + extra.xExtra;\n }\n\n if (currentPoint[1] === minY) {\n extra = getExtraFromSegmentWithAngle(segment, lineWidth);\n minY = minY - extra.yExtra;\n } else if (currentPoint[1] === maxY) {\n extra = getExtraFromSegmentWithAngle(segment, lineWidth);\n maxY = maxY + extra.yExtra;\n }\n }\n\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\n\nfunction getExtraFromSegmentWithAngle(segment, lineWidth) {\n var prePoint = segment.prePoint,\n currentPoint = segment.currentPoint,\n nextPoint = segment.nextPoint;\n var currentAndPre = Math.pow(currentPoint[0] - prePoint[0], 2) + Math.pow(currentPoint[1] - prePoint[1], 2);\n var currentAndNext = Math.pow(currentPoint[0] - nextPoint[0], 2) + Math.pow(currentPoint[1] - nextPoint[1], 2);\n var preAndNext = Math.pow(prePoint[0] - nextPoint[0], 2) + Math.pow(prePoint[1] - nextPoint[1], 2); // 以 currentPoint 为顶点的夹角\n\n var currentAngle = Math.acos((currentAndPre + currentAndNext - preAndNext) / (2 * Math.sqrt(currentAndPre) * Math.sqrt(currentAndNext))); // 夹角为空、 0 或 PI 时,不需要计算夹角处的额外宽度\n // 注意: 由于计算精度问题,夹角为 0 的情况计算出来的角度可能是一个很小的值,还需要判断其与 0 是否近似相等\n\n if (!currentAngle || Math.sin(currentAngle) === 0 || isNumberEqual(currentAngle, 0)) {\n return {\n xExtra: 0,\n yExtra: 0\n };\n }\n\n var xAngle = Math.abs(Math.atan2(nextPoint[1] - currentPoint[1], nextPoint[0] - currentPoint[0]));\n var yAngle = Math.abs(Math.atan2(nextPoint[0] - currentPoint[0], nextPoint[1] - currentPoint[1])); // 将夹角转为锐角\n\n xAngle = xAngle > Math.PI / 2 ? Math.PI - xAngle : xAngle;\n yAngle = yAngle > Math.PI / 2 ? Math.PI - yAngle : yAngle; // 这里不考虑在水平和垂直方向的投影,直接使用最大差值\n // 由于上层统一加减了二分之一线宽,这里需要进行弥补\n\n var extra = {\n // 水平方向投影\n xExtra: Math.cos(currentAngle / 2 - xAngle) * (lineWidth / 2 * (1 / Math.sin(currentAngle / 2))) - lineWidth / 2 || 0,\n // 垂直方向投影\n yExtra: Math.cos(yAngle - currentAngle / 2) * (lineWidth / 2 * (1 / Math.sin(currentAngle / 2))) - lineWidth / 2 || 0\n };\n return extra;\n}\n\nexport default function (shape) {\n var attrs = shape.attr();\n var path = attrs.path,\n stroke = attrs.stroke;\n var lineWidth = stroke ? attrs.lineWidth : 0; // 只有有 stroke 时,lineWidth 才生效\n\n var segments = shape.get('segments') || path2Segments(path);\n\n var _a = getPathBox(segments, lineWidth),\n x = _a.x,\n y = _a.y,\n width = _a.width,\n height = _a.height;\n\n var bbox = {\n minX: x,\n minY: y,\n maxX: x + width,\n maxY: y + height\n };\n bbox = mergeArrowBBox(shape, bbox);\n return {\n x: bbox.minX,\n y: bbox.minY,\n width: bbox.maxX - bbox.minX,\n height: bbox.maxY - bbox.minY\n };\n}","import { register, getMethod } from './register';\nimport rect from './rect';\nimport circle from './circle';\nimport polyline from './polyline';\nimport polygon from './polygon';\nimport text from './text';\nimport path from './path';\nimport line from './line';\nimport ellipse from './ellipse';\nregister('rect', rect);\nregister('image', rect); // image 使用 rect 的包围盒计算\n\nregister('circle', circle);\nregister('marker', circle); // marker 使用 circle 的计算方案\n\nregister('polyline', polyline);\nregister('polygon', polygon);\nregister('text', text);\nregister('path', path);\nregister('line', line);\nregister('ellipse', ellipse);\nexport { getMethod as getBBoxMethod, register as registerBBox };","import { Util } from '@antv/g-math';\nexport default function (shape) {\n var attrs = shape.attr();\n var points = attrs.points;\n var xArr = [];\n var yArr = [];\n\n for (var i = 0; i < points.length; i++) {\n var point = points[i];\n xArr.push(point[0]);\n yArr.push(point[1]);\n }\n\n return Util.getBBoxByArray(xArr, yArr);\n}","import { mergeArrowBBox } from './util';\nexport default function (shape) {\n var attrs = shape.attr();\n var x1 = attrs.x1,\n y1 = attrs.y1,\n x2 = attrs.x2,\n y2 = attrs.y2;\n var minX = Math.min(x1, x2);\n var maxX = Math.max(x1, x2);\n var minY = Math.min(y1, y2);\n var maxY = Math.max(y1, y2);\n var bbox = {\n minX: minX,\n maxX: maxX,\n minY: minY,\n maxY: maxY\n };\n bbox = mergeArrowBBox(shape, bbox);\n return {\n x: bbox.minX,\n y: bbox.minY,\n width: bbox.maxX - bbox.minX,\n height: bbox.maxY - bbox.minY\n };\n}","export default function (shape) {\n var attrs = shape.attr();\n var x = attrs.x,\n y = attrs.y,\n rx = attrs.rx,\n ry = attrs.ry;\n return {\n x: x - rx,\n y: y - ry,\n width: rx * 2,\n height: ry * 2\n };\n}","export default function addEventListener(target, eventType, callback) {\n if (target) {\n if (typeof target.addEventListener === 'function') {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n }; // @ts-ignore\n }\n\n if (typeof target.attachEvent === 'function') {\n // @ts-ignore\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n // @ts-ignore\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n }\n}","/**\n * 创建DOM 节点\n * @param {String} str Dom 字符串\n * @return {HTMLElement} DOM 节点\n */\nvar TABLE;\nvar TABLE_TR;\nvar FRAGMENT_REG;\nvar CONTAINERS;\n\nfunction initConstants() {\n TABLE = document.createElement('table');\n TABLE_TR = document.createElement('tr');\n FRAGMENT_REG = /^\\s*<(\\w+|!)[^>]*>/;\n CONTAINERS = {\n tr: document.createElement('tbody'),\n tbody: TABLE,\n thead: TABLE,\n tfoot: TABLE,\n td: TABLE_TR,\n th: TABLE_TR,\n '*': document.createElement('div')\n };\n}\n\nexport default function createDom(str) {\n if (!TABLE) {\n initConstants();\n }\n\n var name = FRAGMENT_REG.test(str) && RegExp.$1;\n\n if (!name || !(name in CONTAINERS)) {\n name = '*';\n }\n\n var container = CONTAINERS[name];\n str = typeof str === 'string' ? str.replace(/(^\\s*)|(\\s*$)/g, '') : str;\n container.innerHTML = '' + str;\n var dom = container.childNodes[0];\n\n if (dom && container.contains(dom)) {\n container.removeChild(dom);\n }\n\n return dom;\n}","/**\n * 获取样式\n * @param {Object} dom DOM节点\n * @param {String} name 样式名\n * @param {Any} defaultValue 默认值\n * @return {String} 属性值\n */\nexport default function getStyle(dom, name, defaultValue) {\n var v;\n\n try {\n v = window.getComputedStyle ? window.getComputedStyle(dom, null)[name] : dom.style[name]; // 一般不会走到这个逻辑,dom.style 获取的是标签 style 属性,也不准确\n } catch (e) {// do nothing\n } finally {\n v = v === undefined ? defaultValue : v;\n }\n\n return v;\n}","import getStyle from './get-style';\nimport getHeight from './get-height';\nexport default function getOuterHeight(el, defaultValue) {\n var height = getHeight(el, defaultValue);\n var bTop = parseFloat(getStyle(el, 'borderTopWidth')) || 0;\n var pTop = parseFloat(getStyle(el, 'paddingTop')) || 0;\n var pBottom = parseFloat(getStyle(el, 'paddingBottom')) || 0;\n var bBottom = parseFloat(getStyle(el, 'borderBottomWidth')) || 0;\n var mTop = parseFloat(getStyle(el, 'marginTop')) || 0;\n var mBottom = parseFloat(getStyle(el, 'marginBottom')) || 0;\n return height + bTop + bBottom + pTop + pBottom + mTop + mBottom;\n}","import getStyle from './get-style';\nexport default function getHeight(el, defaultValue) {\n var height = getStyle(el, 'height', defaultValue);\n\n if (height === 'auto') {\n height = el.offsetHeight;\n }\n\n return parseFloat(height);\n}","import getStyle from './get-style';\nimport getWidth from './get-width';\nexport default function getOuterWidth(el, defaultValue) {\n var width = getWidth(el, defaultValue);\n var bLeft = parseFloat(getStyle(el, 'borderLeftWidth')) || 0;\n var pLeft = parseFloat(getStyle(el, 'paddingLeft')) || 0;\n var pRight = parseFloat(getStyle(el, 'paddingRight')) || 0;\n var bRight = parseFloat(getStyle(el, 'borderRightWidth')) || 0;\n var mRight = parseFloat(getStyle(el, 'marginRight')) || 0;\n var mLeft = parseFloat(getStyle(el, 'marginLeft')) || 0;\n return width + bLeft + bRight + pLeft + pRight + mLeft + mRight;\n}","import getStyle from './get-style';\nexport default function getHeight(el, defaultValue) {\n var width = getStyle(el, 'width', defaultValue);\n\n if (width === 'auto') {\n width = el.offsetWidth;\n }\n\n return parseFloat(width);\n}","export default function modifyCSS(dom, css) {\n if (dom) {\n for (var key in css) {\n if (css.hasOwnProperty(key)) {\n dom.style[key] = css[key];\n }\n }\n }\n\n return dom;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\n/* eslint-disable no-lonely-if */\n\n/**\n * Legacy code. Should avoid to use if you are new to import these code.\n */\n\nimport React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport TreeNode from './TreeNode';\nexport function arrDel(list, value) {\n if (!list) return [];\n var clone = list.slice();\n var index = clone.indexOf(value);\n\n if (index >= 0) {\n clone.splice(index, 1);\n }\n\n return clone;\n}\nexport function arrAdd(list, value) {\n var clone = (list || []).slice();\n\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n\n return clone;\n}\nexport function posToArr(pos) {\n return pos.split('-');\n}\nexport function getPosition(level, index) {\n return \"\".concat(level, \"-\").concat(index);\n}\nexport function isTreeNode(node) {\n return node && node.type && node.type.isTreeNode;\n}\nexport function getDragChildrenKeys(dragNodeKey, keyEntities) {\n // not contains self\n // self for left or right drag\n var dragChildrenKeys = [];\n var entity = keyEntities[dragNodeKey];\n\n function dig() {\n var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n list.forEach(function (_ref) {\n var key = _ref.key,\n children = _ref.children;\n dragChildrenKeys.push(key);\n dig(children);\n });\n }\n\n dig(entity.children);\n return dragChildrenKeys;\n}\nexport function isLastChild(treeNodeEntity) {\n if (treeNodeEntity.parent) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === treeNodeEntity.parent.children.length - 1;\n }\n\n return false;\n}\nexport function isFirstChild(treeNodeEntity) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === 0;\n} // Only used when drag, not affect SSR.\n\nexport function calcDropPosition(event, dragNode, targetNode, indent, startMousePosition, allowDrop, flattenedNodes, keyEntities, expandKeys, direction) {\n var _abstractDropNodeEnti;\n\n var clientX = event.clientX,\n clientY = event.clientY;\n\n var _event$target$getBoun = event.target.getBoundingClientRect(),\n top = _event$target$getBoun.top,\n height = _event$target$getBoun.height; // optional chain for testing\n\n\n var horizontalMouseOffset = (direction === 'rtl' ? -1 : 1) * (((startMousePosition === null || startMousePosition === void 0 ? void 0 : startMousePosition.x) || 0) - clientX);\n var rawDropLevelOffset = (horizontalMouseOffset - 12) / indent; // find abstract drop node by horizontal offset\n\n var abstractDropNodeEntity = keyEntities[targetNode.props.eventKey];\n\n if (clientY < top + height / 2) {\n // first half, set abstract drop node to previous node\n var nodeIndex = flattenedNodes.findIndex(function (flattenedNode) {\n return flattenedNode.key === abstractDropNodeEntity.key;\n });\n var prevNodeIndex = nodeIndex <= 0 ? 0 : nodeIndex - 1;\n var prevNodeKey = flattenedNodes[prevNodeIndex].key;\n abstractDropNodeEntity = keyEntities[prevNodeKey];\n }\n\n var initialAbstractDropNodeKey = abstractDropNodeEntity.key;\n var abstractDragOverEntity = abstractDropNodeEntity;\n var dragOverNodeKey = abstractDropNodeEntity.key;\n var dropPosition = 0;\n var dropLevelOffset = 0; // Only allow cross level drop when dragging on a non-expanded node\n\n if (!expandKeys.includes(initialAbstractDropNodeKey)) {\n for (var i = 0; i < rawDropLevelOffset; i += 1) {\n if (isLastChild(abstractDropNodeEntity)) {\n abstractDropNodeEntity = abstractDropNodeEntity.parent;\n dropLevelOffset += 1;\n } else {\n break;\n }\n }\n }\n\n var abstractDragDataNode = dragNode.props.data;\n var abstractDropDataNode = abstractDropNodeEntity.node;\n var dropAllowed = true;\n\n if (isFirstChild(abstractDropNodeEntity) && abstractDropNodeEntity.level === 0 && clientY < top + height / 2 && allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: -1\n }) && abstractDropNodeEntity.key === targetNode.props.eventKey) {\n // first half of first node in first level\n dropPosition = -1;\n } else if ((abstractDragOverEntity.children || []).length && expandKeys.includes(dragOverNodeKey)) {\n // drop on expanded node\n // only allow drop inside\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else {\n dropAllowed = false;\n }\n } else if (dropLevelOffset === 0) {\n if (rawDropLevelOffset > -1.5) {\n // | Node | <- abstractDropNode\n // | -^-===== | <- mousePosition\n // 1. try drop after\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n } else {\n // | Node | <- abstractDropNode\n // | ---==^== | <- mousePosition\n // whether it has children or doesn't has children\n // always\n // 1. try drop inside\n // 2. try drop after\n // 3. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n } else {\n // | Node1 | <- abstractDropNode\n // | Node2 |\n // --^--|----=====| <- mousePosition\n // 1. try insert after Node1\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n\n return {\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: abstractDropNodeEntity.key,\n dropTargetPos: abstractDropNodeEntity.pos,\n dragOverNodeKey: dragOverNodeKey,\n dropContainerKey: dropPosition === 0 ? null : ((_abstractDropNodeEnti = abstractDropNodeEntity.parent) === null || _abstractDropNodeEnti === void 0 ? void 0 : _abstractDropNodeEnti.key) || null,\n dropAllowed: dropAllowed\n };\n}\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\n\nexport function calcSelectedKeys(selectedKeys, props) {\n if (!selectedKeys) return undefined;\n var multiple = props.multiple;\n\n if (multiple) {\n return selectedKeys.slice();\n }\n\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n\n return selectedKeys;\n}\n\nvar internalProcessProps = function internalProcessProps(props) {\n return props;\n};\n\nexport function convertDataToTree(treeData, processor) {\n if (!treeData) return [];\n\n var _ref2 = processor || {},\n _ref2$processProps = _ref2.processProps,\n processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;\n\n var list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(function (_ref3) {\n var children = _ref3.children,\n props = _objectWithoutProperties(_ref3, _excluded);\n\n var childrenNodes = convertDataToTree(children, processor);\n return /*#__PURE__*/React.createElement(TreeNode, _extends({\n key: props.key\n }, processProps(props)), childrenNodes);\n });\n}\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\n\nexport function parseCheckedKeys(keys) {\n if (!keys) {\n return null;\n } // Convert keys to object format\n\n\n var keyProps;\n\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined\n };\n } else if (_typeof(keys) === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined\n };\n } else {\n warning(false, '`checkedKeys` is not an array or an object');\n return null;\n }\n\n return keyProps;\n}\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\n\nexport function conductExpandParent(keyList, keyEntities) {\n var expandedKeys = new Set();\n\n function conductUp(key) {\n if (expandedKeys.has(key)) return;\n var entity = keyEntities[key];\n if (!entity) return;\n expandedKeys.add(key);\n var parent = entity.parent,\n node = entity.node;\n if (node.disabled) return;\n\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n (keyList || []).forEach(function (key) {\n conductUp(key);\n });\n return _toConsumableArray(expandedKeys);\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}","export const removeWhiteSpace = (string) => {\n return string.replaceAll(/\\s+/g, '')\n}\n\nexport const saveLocalBracket = (id) => {\n let ids = [id]\n const savedBrackets = localStorage.getItem('wcba-saved-brackets')\n if (savedBrackets) {\n let existingIds = []\n try {\n existingIds = JSON.parse(savedBrackets)\n ids = ids.concat(existingIds)\n } catch (error) {\n console.error(error)\n }\n }\n localStorage.setItem('wcba-saved-brackets', JSON.stringify(ids))\n}\n\nexport const fetchLocalBrackets = () => {\n let savedIds = []\n try {\n const savedBrackets = localStorage.getItem('wcba-saved-brackets')\n if (savedBrackets) {\n savedIds = JSON.parse(savedBrackets)\n }\n } catch (error) {\n console.error(error)\n }\n\n return Array.isArray(savedIds) ? savedIds : []\n}\n\nexport const copyToClipboard = async (text, setCopied) => {\n await navigator.clipboard.writeText(text)\n setCopied(true)\n}\n\n","import * as React from 'react';\nvar isValidElement = React.isValidElement;\nexport { isValidElement };\nexport function replaceElement(element, replacement, props) {\n if (!isValidElement(element)) return replacement;\n return /*#__PURE__*/React.cloneElement(element, typeof props === 'function' ? props(element.props || {}) : props);\n}\nexport function cloneElement(element, props) {\n return replaceElement(element, element, props);\n}","import { __assign, __extends, __rest } from \"tslib\";\nimport { difference, each, isNil, keys, mix, pick } from '@antv/util';\nimport { propagationDelegate } from '../util/event';\nimport { applyMatrix2BBox, getMatrixByTranslate } from '../util/matrix';\nimport { getBBoxWithClip, updateClip } from '../util/util';\nimport Component from './component';\nvar STATUS_UPDATE = 'update_status';\nvar COPY_PROPERTIES = ['visible', 'tip', 'delegateObject']; // 更新对象时需要复制的属性\n\nvar COPY_PROPERTIES_EXCLUDES = ['container', 'group', 'shapesMap', 'isRegister', 'isUpdating', 'destroyed']; // 更新子组件时排除的属性\n\nvar GroupComponent =\n/** @class */\nfunction (_super) {\n __extends(GroupComponent, _super);\n\n function GroupComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n GroupComponent.prototype.getDefaultCfg = function () {\n var cfg = _super.prototype.getDefaultCfg.call(this);\n\n return __assign(__assign({}, cfg), {\n container: null,\n\n /**\n * @private\n * 缓存图形的 Map\n */\n shapesMap: {},\n group: null,\n capture: true,\n\n /**\n * @private 组件或者图形是否允许注册\n * @type {false}\n */\n isRegister: false,\n\n /**\n * @private 是否正在更新\n * @type {false}\n */\n isUpdating: false,\n\n /**\n * @private\n * 是否初始状态,一旦 render,update 后,这个状态就变成 false, clear 后恢复\n */\n isInit: true\n });\n };\n\n GroupComponent.prototype.remove = function () {\n this.clear();\n var group = this.get('group');\n group.remove();\n };\n\n GroupComponent.prototype.clear = function () {\n var group = this.get('group');\n group.clear();\n this.set('shapesMap', {});\n this.clearOffScreenCache();\n this.set('isInit', true);\n };\n\n GroupComponent.prototype.getChildComponentById = function (id) {\n var group = this.getElementById(id);\n var inst = group && group.get('component');\n return inst;\n };\n\n GroupComponent.prototype.getElementById = function (id) {\n return this.get('shapesMap')[id];\n };\n\n GroupComponent.prototype.getElementByLocalId = function (localId) {\n var id = this.getElementId(localId);\n return this.getElementById(id);\n };\n\n GroupComponent.prototype.getElementsByName = function (name) {\n var rst = [];\n each(this.get('shapesMap'), function (elem) {\n if (elem.get('name') === name) {\n rst.push(elem);\n }\n });\n return rst;\n };\n\n GroupComponent.prototype.getContainer = function () {\n return this.get('container');\n };\n\n GroupComponent.prototype.updateInner = function (cfg) {\n // this.updateInner();\n // this.set('isUpdating', false);\n this.offScreenRender();\n\n if (this.get('updateAutoRender')) {\n this.render();\n }\n };\n\n GroupComponent.prototype.render = function () {\n var offScreenGroup = this.get('offScreenGroup');\n\n if (!offScreenGroup) {\n offScreenGroup = this.offScreenRender();\n }\n\n var group = this.get('group');\n this.updateElements(offScreenGroup, group);\n this.deleteElements();\n this.applyOffset();\n\n if (!this.get('eventInitted')) {\n this.initEvent();\n this.set('eventInitted', true);\n }\n\n this.set('isInit', false);\n };\n\n GroupComponent.prototype.show = function () {\n var group = this.get('group');\n group.show();\n this.set('visible', true);\n };\n\n GroupComponent.prototype.hide = function () {\n var group = this.get('group');\n group.hide();\n this.set('visible', false);\n };\n\n GroupComponent.prototype.setCapture = function (capture) {\n var group = this.get('group');\n group.set('capture', capture);\n this.set('capture', capture);\n };\n\n GroupComponent.prototype.destroy = function () {\n this.removeEvent();\n this.remove();\n\n _super.prototype.destroy.call(this);\n };\n\n GroupComponent.prototype.getBBox = function () {\n return this.get('group').getCanvasBBox();\n };\n\n GroupComponent.prototype.getLayoutBBox = function () {\n var group = this.get('group'); // 防止被 clear 了,offScreenBBox 不存在\n\n var bbox = this.getInnerLayoutBBox();\n var matrix = group.getTotalMatrix();\n\n if (matrix) {\n bbox = applyMatrix2BBox(matrix, bbox);\n }\n\n return bbox; // 默认返回 getBBox,不同的组件内部单独实现\n }; // 复写 on, off, emit 透传到 group\n\n\n GroupComponent.prototype.on = function (evt, callback, once) {\n var group = this.get('group');\n group.on(evt, callback, once);\n return this;\n };\n\n GroupComponent.prototype.off = function (evt, callback) {\n var group = this.get('group');\n group && group.off(evt, callback);\n return this;\n };\n\n GroupComponent.prototype.emit = function (eventName, eventObject) {\n var group = this.get('group');\n group.emit(eventName, eventObject);\n };\n\n GroupComponent.prototype.init = function () {\n _super.prototype.init.call(this);\n\n if (!this.get('group')) {\n this.initGroup();\n }\n\n this.offScreenRender(); // 绘制离屏 group\n }; // 获取组件内部布局占的包围盒\n\n\n GroupComponent.prototype.getInnerLayoutBBox = function () {\n return this.get('offScreenBBox') || this.get('group').getBBox();\n }; // 抛出委托对象\n\n\n GroupComponent.prototype.delegateEmit = function (eventName, eventObject) {\n var group = this.get('group');\n eventObject.target = group;\n group.emit(eventName, eventObject);\n propagationDelegate(group, eventName, eventObject);\n }; // 创建离屏的 group ,不添加在 canvas 中\n\n\n GroupComponent.prototype.createOffScreenGroup = function () {\n var group = this.get('group');\n var GroupClass = group.getGroupBase(); // 获取分组的构造函数\n\n var newGroup = new GroupClass({\n delegateObject: this.getDelegateObject()\n });\n return newGroup;\n }; // 应用 offset\n\n\n GroupComponent.prototype.applyOffset = function () {\n var offsetX = this.get('offsetX');\n var offsetY = this.get('offsetY');\n this.moveElementTo(this.get('group'), {\n x: offsetX,\n y: offsetY\n });\n };\n\n GroupComponent.prototype.initGroup = function () {\n var container = this.get('container');\n this.set('group', container.addGroup({\n id: this.get('id'),\n name: this.get('name'),\n capture: this.get('capture'),\n visible: this.get('visible'),\n isComponent: true,\n component: this,\n delegateObject: this.getDelegateObject()\n }));\n }; // 离屏渲染\n\n\n GroupComponent.prototype.offScreenRender = function () {\n this.clearOffScreenCache();\n var offScreenGroup = this.createOffScreenGroup();\n this.renderInner(offScreenGroup);\n this.set('offScreenGroup', offScreenGroup); // 包含包围盒的 bbox\n\n this.set('offScreenBBox', getBBoxWithClip(offScreenGroup));\n return offScreenGroup;\n };\n /**\n * @protected\n * 在组件上添加分组,主要解决 isReigeter 的问题\n * @param {IGroup} parent 父元素\n * @param {object} cfg 分组的配置项\n */\n\n\n GroupComponent.prototype.addGroup = function (parent, cfg) {\n this.appendDelegateObject(parent, cfg);\n var group = parent.addGroup(cfg);\n\n if (this.get('isRegister')) {\n this.registerElement(group);\n }\n\n return group;\n };\n /**\n * @protected\n * 在组件上添加图形,主要解决 isReigeter 的问题\n * @param {IGroup} parent 父元素\n * @param {object} cfg 分组的配置项\n */\n\n\n GroupComponent.prototype.addShape = function (parent, cfg) {\n this.appendDelegateObject(parent, cfg);\n var shape = parent.addShape(cfg);\n\n if (this.get('isRegister')) {\n this.registerElement(shape);\n }\n\n return shape;\n };\n /**\n * 在组件上添加子组件\n *\n * @param parent 父元素\n * @param cfg 子组件配置项\n */\n\n\n GroupComponent.prototype.addComponent = function (parent, cfg) {\n var id = cfg.id,\n Ctor = cfg.component,\n restCfg = __rest(cfg, [\"id\", \"component\"]); // @ts-ignore\n\n\n var inst = new Ctor(__assign(__assign({}, restCfg), {\n id: id,\n container: parent,\n updateAutoRender: this.get('updateAutoRender')\n }));\n inst.init();\n inst.render();\n\n if (this.get('isRegister')) {\n this.registerElement(inst.get('group'));\n }\n\n return inst;\n };\n\n GroupComponent.prototype.initEvent = function () {};\n\n GroupComponent.prototype.removeEvent = function () {\n var group = this.get('group');\n group.off();\n };\n\n GroupComponent.prototype.getElementId = function (localId) {\n var id = this.get('id'); // 组件的 Id\n\n var name = this.get('name'); // 组件的名称\n\n return id + \"-\" + name + \"-\" + localId;\n };\n\n GroupComponent.prototype.registerElement = function (element) {\n var id = element.get('id');\n this.get('shapesMap')[id] = element;\n };\n\n GroupComponent.prototype.unregisterElement = function (element) {\n var id = element.get('id');\n delete this.get('shapesMap')[id];\n }; // 移动元素\n\n\n GroupComponent.prototype.moveElementTo = function (element, point) {\n var matrix = getMatrixByTranslate(point);\n element.attr('matrix', matrix);\n };\n /**\n * 图形元素新出现时的动画,默认图形从透明度 0 到当前透明度\n * @protected\n * @param {string} elmentName 图形元素名称\n * @param {IElement} newElement 新的图形元素\n * @param {object} animateCfg 动画的配置项\n */\n\n\n GroupComponent.prototype.addAnimation = function (elmentName, newElement, animateCfg) {\n // 缓存透明度\n var originOpacity = newElement.attr('opacity');\n\n if (isNil(originOpacity)) {\n originOpacity = 1;\n }\n\n newElement.attr('opacity', 0);\n newElement.animate({\n opacity: originOpacity\n }, animateCfg);\n };\n /**\n * 图形元素新出现时的动画,默认图形从透明度 0 到当前透明度\n * @protected\n * @param {string} elmentName 图形元素名称\n * @param {IElement} originElement 要删除的图形元素\n * @param {object} animateCfg 动画的配置项\n */\n\n\n GroupComponent.prototype.removeAnimation = function (elementName, originElement, animateCfg) {\n originElement.animate({\n opacity: 0\n }, animateCfg);\n };\n /**\n * 图形元素的更新动画\n * @param {string} elmentName 图形元素名称\n * @param {IElement} originElement 现有的图形元素\n * @param {object} newAttrs 新的图形元素\n * @param {object} animateCfg 动画的配置项\n */\n\n\n GroupComponent.prototype.updateAnimation = function (elementName, originElement, newAttrs, animateCfg) {\n originElement.animate(newAttrs, animateCfg);\n }; // 更新组件的图形\n\n\n GroupComponent.prototype.updateElements = function (newGroup, originGroup) {\n var _this = this;\n\n var animate = this.get('animate');\n var animateOption = this.get('animateOption');\n var children = newGroup.getChildren().slice(0); // 创建一个新数组,防止添加到 originGroup 时, children 变动\n\n var preElement; // 前面已经匹配到的图形元素,用于\n\n each(children, function (element) {\n var elementId = element.get('id');\n\n var originElement = _this.getElementById(elementId);\n\n var elementName = element.get('name');\n\n if (originElement) {\n if (element.get('isComponent')) {\n // 嵌套子组件更新\n var childComponent = element.get('component');\n var origChildComponent = originElement.get('component');\n var newCfg = pick(childComponent.cfg, difference(keys(childComponent.cfg), COPY_PROPERTIES_EXCLUDES));\n origChildComponent.update(newCfg);\n originElement.set(STATUS_UPDATE, 'update');\n } else {\n var replaceAttrs = _this.getReplaceAttrs(originElement, element); // 更新\n\n\n if (animate && animateOption.update) {\n // 没有动画\n _this.updateAnimation(elementName, originElement, replaceAttrs, animateOption.update);\n } else {\n // originElement.attrs = replaceAttrs; // 直接替换\n originElement.attr(replaceAttrs);\n } // 如果是分组,则继续执行\n\n\n if (element.isGroup()) {\n _this.updateElements(element, originElement);\n } // 复制属性\n\n\n each(COPY_PROPERTIES, function (name) {\n originElement.set(name, element.get(name));\n });\n updateClip(originElement, element);\n preElement = originElement; // 执行完更新后设置状态位为更新\n\n originElement.set(STATUS_UPDATE, 'update');\n }\n } else {\n // 没有对应的图形,则插入当前图形\n originGroup.add(element); // 应该在 group 加个 insertAt 的方法\n\n var siblings = originGroup.getChildren(); // 兄弟节点\n\n siblings.splice(siblings.length - 1, 1); // 先从数组中移除,然后放到合适的位置\n\n if (preElement) {\n // 前面已经有更新的图形或者插入的图形,则在这个图形后面插入\n var index = siblings.indexOf(preElement);\n siblings.splice(index + 1, 0, element); // 在已经更新的图形元素后面插入\n } else {\n siblings.unshift(element);\n }\n\n _this.registerElement(element); // 注册节点\n\n\n element.set(STATUS_UPDATE, 'add'); // 执行完更新后设置状态位为添加\n\n if (element.get('isComponent')) {\n // 直接新增子组件container属性,实例不变\n var childComponent = element.get('component');\n childComponent.set('container', originGroup);\n } else if (element.isGroup()) {\n // 如果元素是新增加的元素,则遍历注册所有的子节点\n _this.registerNewGroup(element);\n }\n\n preElement = element;\n\n if (animate) {\n var animateCfg = _this.get('isInit') ? animateOption.appear : animateOption.enter;\n\n if (animateCfg) {\n _this.addAnimation(elementName, element, animateCfg);\n }\n }\n }\n });\n };\n\n GroupComponent.prototype.clearUpdateStatus = function (group) {\n var children = group.getChildren();\n each(children, function (el) {\n el.set(STATUS_UPDATE, null); // 清理掉更新状态\n });\n }; // 清理离屏缓存\n\n\n GroupComponent.prototype.clearOffScreenCache = function () {\n var offScreenGroup = this.get('offScreenGroup');\n\n if (offScreenGroup) {\n // 销毁原先的离线 Group\n offScreenGroup.destroy();\n }\n\n this.set('offScreenGroup', null);\n this.set('offScreenBBox', null);\n }; // private updateInner() {\n // const group = this.get('group');\n // const newGroup = this.createOffScreenGroup();\n // this.renderInner(newGroup);\n // this.applyOffset();\n // this.updateElements(newGroup, group);\n // this.deleteElements();\n // newGroup.destroy(); // 销毁虚拟分组\n // }\n // 获取发生委托时的对象,在事件中抛出\n\n\n GroupComponent.prototype.getDelegateObject = function () {\n var _a;\n\n var name = this.get('name');\n var delegateObject = (_a = {}, _a[name] = this, _a.component = this, _a);\n return delegateObject;\n }; // 附加委托信息,用于事件\n\n\n GroupComponent.prototype.appendDelegateObject = function (parent, cfg) {\n var parentObject = parent.get('delegateObject');\n\n if (!cfg.delegateObject) {\n cfg.delegateObject = {};\n }\n\n mix(cfg.delegateObject, parentObject); // 将父元素上的委托信息复制到自身\n }; // 获取需要替换的属性,如果原先图形元素存在,而新图形不存在,则设置 undefined\n\n\n GroupComponent.prototype.getReplaceAttrs = function (originElement, newElement) {\n var originAttrs = originElement.attr();\n var newAttrs = newElement.attr();\n each(originAttrs, function (v, k) {\n if (newAttrs[k] === undefined) {\n newAttrs[k] = undefined;\n }\n });\n return newAttrs;\n };\n\n GroupComponent.prototype.registerNewGroup = function (group) {\n var _this = this;\n\n var children = group.getChildren();\n each(children, function (element) {\n _this.registerElement(element); // 注册节点\n\n\n element.set(STATUS_UPDATE, 'add'); // 执行完更新后设置状态位为添加\n\n if (element.isGroup()) {\n _this.registerNewGroup(element);\n }\n });\n }; // 移除多余的元素\n\n\n GroupComponent.prototype.deleteElements = function () {\n var _this = this;\n\n var shapesMap = this.get('shapesMap');\n var deleteArray = []; // 遍历获取需要删除的图形元素\n\n each(shapesMap, function (element, id) {\n if (!element.get(STATUS_UPDATE) || element.destroyed) {\n deleteArray.push([id, element]);\n } else {\n element.set(STATUS_UPDATE, null); // 清理掉更新状态\n }\n });\n var animate = this.get('animate');\n var animateOption = this.get('animateOption'); // 删除图形元素\n\n each(deleteArray, function (item) {\n var id = item[0],\n element = item[1];\n\n if (!element.destroyed) {\n var elementName = element.get('name');\n\n if (animate && animateOption.leave) {\n // 需要动画结束时移除图形\n var callbackAnimCfg = mix({\n callback: function callback() {\n _this.removeElement(element);\n }\n }, animateOption.leave);\n\n _this.removeAnimation(elementName, element, callbackAnimCfg);\n } else {\n _this.removeElement(element);\n }\n }\n\n delete shapesMap[id]; // 从缓存中移除\n });\n };\n\n GroupComponent.prototype.removeElement = function (element) {\n if (element.get('isGroup')) {\n var component = element.get('component');\n\n if (component) {\n component.destroy();\n }\n }\n\n element.remove();\n };\n\n return GroupComponent;\n}(Component);\n\nexport default GroupComponent;","import React, { createContext, useContext, useLayoutEffect, useState } from 'react'\nimport { fetchLocalBrackets } from '../utils/utils'\nimport CookieConsent from 'react-cookie-consent'\nimport { useAuth0 } from '@auth0/auth0-react'\nimport PolicyLinks from '../misc/PolicyLinks'\nimport PageLoading from '../misc/PageLoading'\nimport { useToast } from './ToastContext'\nimport LogRocket from 'logrocket'\n\nconst adminToken = localStorage.getItem('AdminBearerToken')\nconst fetchPoolToken = () => {\n const search = new URLSearchParams(window.location.search)\n if (search.has('pool')) {\n const pool = search.get('pool')\n localStorage.setItem('PoolToken', pool)\n return pool\n }\n\n return localStorage.getItem('PoolToken')\n}\n\nconst initialHeaders = {\n 'Accept': 'application/json',\n 'Authorization': '',\n 'Content-Type': 'application/json',\n 'developer-token': `Basic ${adminToken}`,\n}\n\nexport const initLogRocket = (appName = 'yjaug1/world-cup-bracket') => {\n if (process.env.NODE_ENV !== 'development') {\n LogRocket.init(appName, {\n network: {\n requestSanitizer: request => {\n if (request.headers['Authorization']) {\n request.headers['Authorization'] = 'redacted';\n }\n if (request.headers['developer-token']) {\n request.headers['developer-token'] = 'redacted';\n }\n if (request.method === 'POST' || request.method === 'PATCH') {\n request.body = 'redacted'\n }\n\n return request;\n },\n },\n });\n }\n}\n\nconst AuthContext = createContext({\n authorizationHeaders: initialHeaders,\n isAdmin: null,\n poolToken: '',\n})\n\nexport default function AuthContextProvider({ children }) {\n const [initialized, setInitialized] = useState(false)\n\n // auth context\n const [isAdmin, setIsAdmin] = useState(null)\n const [poolToken] = useState(fetchPoolToken())\n const [authorizationHeaders, setAuthorizationHeaders] = useState(initialHeaders)\n\n // user context\n const [userState, setUserState] = useState(undefined)\n\n const { error, getAccessTokenSilently, isAuthenticated, isLoading, user, logout } = useAuth0()\n const { errorToast } = useToast()\n\n useLayoutEffect(() => {\n if (adminToken) {\n fetch(encodeURI('/api/v1/admin'), {\n credentials: 'same-origin',\n headers: authorizationHeaders,\n })\n .then(response => {\n if (response.ok) {\n return response.json();\n } else {\n throw(response);\n }\n })\n .then(body => {\n setIsAdmin(body.isAdmin)\n })\n .catch(() => {\n setIsAdmin(false)\n })\n } else {\n setIsAdmin(false)\n initLogRocket()\n }\n }, [])\n\n useLayoutEffect(() => {\n if (!isLoading) {\n if (error) {\n errorToast(`Authentication failed: ${error.message}`)\n logout()\n }\n else if (isAuthenticated) {\n LogRocket.identify(user?.sub)\n const fetchToken = async () => {\n const token = await getAccessTokenSilently()\n const newHeaders = {\n ...authorizationHeaders,\n 'Authorization': `Bearer ${token}`\n }\n setAuthorizationHeaders(newHeaders)\n fetch(encodeURI('/api/v1/identify'), {\n method: 'POST',\n body: JSON.stringify({ brackets: fetchLocalBrackets() }),\n credentials: 'same-origin',\n headers: newHeaders,\n })\n .then(response => {\n if (response.ok) {\n return response.json();\n } else {\n throw(response);\n }\n })\n .then(body => {\n setUserState(body)\n })\n .catch(() => {\n setUserState(null)\n })\n }\n fetchToken().then(() => setInitialized(true))\n } else {\n setUserState(null)\n setInitialized(true)\n }\n }\n }, [isLoading])\n\n const value = {\n authorizationHeaders,\n isAdmin,\n poolToken,\n setUserState,\n userState,\n }\n\n return (\n \n {initialized ? children : }\n \n

Please note that this site is not affiliated with FIFA in any way.

\n

We respect your privacy. Cookies are used to operate this website, improve usability, and analyze our traffic.

\n
\n
\n )\n}\n\nexport function useAuthContext() {\n return useContext(AuthContext)\n}\n","import * as Annotation from './annotation';\nimport * as Axis from './axis';\nimport * as Crosshair from './crosshair';\nimport * as Grid from './grid';\nimport * as Legend from './legend';\nimport * as Tooltip from './tooltip';\nexport { default as Component } from './abstract/component';\nexport { default as GroupComponent } from './abstract/group-component';\nexport { default as HtmlComponent } from './abstract/html-component';\nexport { Axis, Annotation, Grid, Legend, Tooltip, Crosshair };\nexport { Slider } from './slider';\nexport { Scrollbar } from './scrollbar';\nexport * from './interfaces';\nexport * from './types';\nexport { propagationDelegate } from './util/event';\nimport * as TOOLTIP_CSS_CONST from './tooltip/css-const';\nexport { TOOLTIP_CSS_CONST };","function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * React Router DOM v6.3.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { useRef, useState, useLayoutEffect, createElement, forwardRef, useCallback, useMemo } from 'react';\nimport { createBrowserHistory, createHashHistory } from 'history';\nimport { Router, useHref, createPath, useLocation, useResolvedPath, useNavigate } from 'react-router';\nexport { MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, createPath, createRoutesFromChildren, generatePath, matchPath, matchRoutes, parsePath, renderMatches, resolvePath, useHref, useInRouterContext, useLocation, useMatch, useNavigate, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRoutes } from 'react-router';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _excluded = [\"onClick\", \"reloadDocument\", \"replace\", \"state\", \"target\", \"to\"],\n _excluded2 = [\"aria-current\", \"caseSensitive\", \"className\", \"end\", \"style\", \"to\", \"children\"];\n\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n} ////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A `` for use in web browsers. Provides the cleanest URLs.\n */\n\n\nfunction BrowserRouter(_ref) {\n var basename = _ref.basename,\n children = _ref.children,\n window = _ref.window;\n var historyRef = useRef();\n\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({\n window: window\n });\n }\n\n var history = historyRef.current;\n\n var _useState = useState({\n action: history.action,\n location: history.location\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n useLayoutEffect(function () {\n return history.listen(setState);\n }, [history]);\n return /*#__PURE__*/createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history\n });\n}\n/**\n * A `` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\n\n\nfunction HashRouter(_ref2) {\n var basename = _ref2.basename,\n children = _ref2.children,\n window = _ref2.window;\n var historyRef = useRef();\n\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({\n window: window\n });\n }\n\n var history = historyRef.current;\n\n var _useState3 = useState({\n action: history.action,\n location: history.location\n }),\n _useState4 = _slicedToArray(_useState3, 2),\n state = _useState4[0],\n setState = _useState4[1];\n\n useLayoutEffect(function () {\n return history.listen(setState);\n }, [history]);\n return /*#__PURE__*/createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history\n });\n}\n/**\n * A `` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\n\n\nfunction HistoryRouter(_ref3) {\n var basename = _ref3.basename,\n children = _ref3.children,\n history = _ref3.history;\n\n var _useState5 = useState({\n action: history.action,\n location: history.location\n }),\n _useState6 = _slicedToArray(_useState5, 2),\n state = _useState6[0],\n setState = _useState6[1];\n\n useLayoutEffect(function () {\n return history.listen(setState);\n }, [history]);\n return /*#__PURE__*/createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n/**\n * The public API for rendering a history-aware
.\n */\n\n\nvar Link = /*#__PURE__*/forwardRef(function LinkWithRef(_ref4, ref) {\n var onClick = _ref4.onClick,\n reloadDocument = _ref4.reloadDocument,\n _ref4$replace = _ref4.replace,\n replace = _ref4$replace === void 0 ? false : _ref4$replace,\n state = _ref4.state,\n target = _ref4.target,\n to = _ref4.to,\n rest = _objectWithoutPropertiesLoose(_ref4, _excluded);\n\n var href = useHref(to);\n var internalOnClick = useLinkClickHandler(to, {\n replace: replace,\n state: state,\n target: target\n });\n\n function handleClick(event) {\n if (onClick) onClick(event);\n\n if (!event.defaultPrevented && !reloadDocument) {\n internalOnClick(event);\n }\n }\n\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n createElement(\"a\", _extends({}, rest, {\n href: href,\n onClick: handleClick,\n ref: ref,\n target: target\n }))\n );\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Link.displayName = \"Link\";\n}\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\n\n\nvar NavLink = /*#__PURE__*/forwardRef(function NavLinkWithRef(_ref5, ref) {\n var _ref5$ariaCurrent = _ref5[\"aria-current\"],\n ariaCurrentProp = _ref5$ariaCurrent === void 0 ? \"page\" : _ref5$ariaCurrent,\n _ref5$caseSensitive = _ref5.caseSensitive,\n caseSensitive = _ref5$caseSensitive === void 0 ? false : _ref5$caseSensitive,\n _ref5$className = _ref5.className,\n classNameProp = _ref5$className === void 0 ? \"\" : _ref5$className,\n _ref5$end = _ref5.end,\n end = _ref5$end === void 0 ? false : _ref5$end,\n styleProp = _ref5.style,\n to = _ref5.to,\n children = _ref5.children,\n rest = _objectWithoutPropertiesLoose(_ref5, _excluded2);\n\n var location = useLocation();\n var path = useResolvedPath(to);\n var locationPathname = location.pathname;\n var toPathname = path.pathname;\n\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n toPathname = toPathname.toLowerCase();\n }\n\n var isActive = locationPathname === toPathname || !end && locationPathname.startsWith(toPathname) && locationPathname.charAt(toPathname.length) === \"/\";\n var ariaCurrent = isActive ? ariaCurrentProp : undefined;\n var className;\n\n if (typeof classNameProp === \"function\") {\n className = classNameProp({\n isActive: isActive\n });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null].filter(Boolean).join(\" \");\n }\n\n var style = typeof styleProp === \"function\" ? styleProp({\n isActive: isActive\n }) : styleProp;\n return /*#__PURE__*/createElement(Link, _extends({}, rest, {\n \"aria-current\": ariaCurrent,\n className: className,\n ref: ref,\n style: style,\n to: to\n }), typeof children === \"function\" ? children({\n isActive: isActive\n }) : children);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n} ////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Handles the click behavior for router `` components. This is useful if\n * you need to create custom `` components with the same click behavior we\n * use in our exported ``.\n */\n\n\nfunction useLinkClickHandler(to, _temp) {\n var _ref6 = _temp === void 0 ? {} : _temp,\n target = _ref6.target,\n replaceProp = _ref6.replace,\n state = _ref6.state;\n\n var navigate = useNavigate();\n var location = useLocation();\n var path = useResolvedPath(to);\n return useCallback(function (event) {\n if (event.button === 0 && ( // Ignore everything but left clicks\n !target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ) {\n event.preventDefault(); // If the URL hasn't changed, a regular will do a replace instead of\n // a push, so do the same here.\n\n var replace = !!replaceProp || createPath(location) === createPath(path);\n navigate(to, {\n replace: replace,\n state: state\n });\n }\n }, [location, navigate, path, replaceProp, state, target, to]);\n}\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\n\n\nfunction useSearchParams(defaultInit) {\n process.env.NODE_ENV !== \"production\" ? warning(typeof URLSearchParams !== \"undefined\", \"You cannot use the `useSearchParams` hook in a browser that does not \" + \"support the URLSearchParams API. If you need to support Internet \" + \"Explorer 11, we recommend you load a polyfill such as \" + \"https://github.com/ungap/url-search-params\\n\\n\" + \"If you're unsure how to load polyfills, we recommend you check out \" + \"https://polyfill.io/v3/ which provides some recommendations about how \" + \"to load polyfills only for users that need them, instead of for every \" + \"user.\") : void 0;\n var defaultSearchParamsRef = useRef(createSearchParams(defaultInit));\n var location = useLocation();\n var searchParams = useMemo(function () {\n var searchParams = createSearchParams(location.search);\n\n var _iterator = _createForOfIteratorHelper(defaultSearchParamsRef.current.keys()),\n _step;\n\n try {\n var _loop = function _loop() {\n var key = _step.value;\n\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach(function (value) {\n searchParams.append(key, value);\n });\n }\n };\n\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n _loop();\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return searchParams;\n }, [location.search]);\n var navigate = useNavigate();\n var setSearchParams = useCallback(function (nextInit, navigateOptions) {\n navigate(\"?\" + createSearchParams(nextInit), navigateOptions);\n }, [navigate]);\n return [searchParams, setSearchParams];\n}\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\n\n\nfunction createSearchParams(init) {\n if (init === void 0) {\n init = \"\";\n }\n\n return new URLSearchParams(typeof init === \"string\" || Array.isArray(init) || init instanceof URLSearchParams ? init : Object.keys(init).reduce(function (memo, key) {\n var value = init[key];\n return memo.concat(Array.isArray(value) ? value.map(function (v) {\n return [key, v];\n }) : [[key, value]]);\n }, []));\n}\n\nexport { BrowserRouter, HashRouter, Link, NavLink, createSearchParams, HistoryRouter as unstable_HistoryRouter, useLinkClickHandler, useSearchParams };","function minNum(array) {\n return Math.min.apply(null, array);\n}\n\nfunction maxNum(array) {\n return Math.max.apply(null, array);\n}\n/**\n * 两点之间的距离\n * @param {number} x1 起始点 x\n * @param {number} y1 起始点 y\n * @param {number} x2 结束点 x\n * @param {number} y2 结束点 y\n * @return {number} 距离\n */\n\n\nexport function distance(x1, y1, x2, y2) {\n var dx = x1 - x2;\n var dy = y1 - y2;\n return Math.sqrt(dx * dx + dy * dy);\n}\nexport function isNumberEqual(v1, v2) {\n return Math.abs(v1 - v2) < 0.001;\n}\nexport function getBBoxByArray(xArr, yArr) {\n var minX = minNum(xArr);\n var minY = minNum(yArr);\n var maxX = maxNum(xArr);\n var maxY = maxNum(yArr);\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nexport function getBBoxRange(x1, y1, x2, y2) {\n return {\n minX: minNum([x1, x2]),\n maxX: maxNum([x1, x2]),\n minY: minNum([y1, y2]),\n maxY: maxNum([y1, y2])\n };\n}\nexport function piMod(angle) {\n return (angle + Math.PI * 2) % (Math.PI * 2);\n}","import { distance, getBBoxByArray } from './util';\nimport * as vec2 from 'gl-matrix/vec2';\nexport default {\n /**\n * 计算线段的包围盒\n * @param {number} x1 起始点 x\n * @param {number} y1 起始点 y\n * @param {number} x2 结束点 x\n * @param {number} y2 结束点 y\n * @return {object} 包围盒对象\n */\n box: function box(x1, y1, x2, y2) {\n return getBBoxByArray([x1, x2], [y1, y2]);\n },\n\n /**\n * 线段的长度\n * @param {number} x1 起始点 x\n * @param {number} y1 起始点 y\n * @param {number} x2 结束点 x\n * @param {number} y2 结束点 y\n * @return {number} 距离\n */\n length: function length(x1, y1, x2, y2) {\n return distance(x1, y1, x2, y2);\n },\n\n /**\n * 根据比例获取点\n * @param {number} x1 起始点 x\n * @param {number} y1 起始点 y\n * @param {number} x2 结束点 x\n * @param {number} y2 结束点 y\n * @param {number} t 指定比例\n * @return {object} 包含 x, y 的点\n */\n pointAt: function pointAt(x1, y1, x2, y2, t) {\n return {\n x: (1 - t) * x1 + t * x2,\n y: (1 - t) * y1 + t * y2\n };\n },\n\n /**\n * 点到线段的距离\n * @param {number} x1 起始点 x\n * @param {number} y1 起始点 y\n * @param {number} x2 结束点 x\n * @param {number} y2 结束点 y\n * @param {number} x 测试点 x\n * @param {number} y 测试点 y\n * @return {number} 距离\n */\n pointDistance: function pointDistance(x1, y1, x2, y2, x, y) {\n // 投影距离 x1, y1 的向量,假设 p, p1, p2 三个点,投影点为 a\n // p1a = p1p.p1p2/|p1p2| * (p1p 的单位向量)\n var cross = (x2 - x1) * (x - x1) + (y2 - y1) * (y - y1);\n\n if (cross < 0) {\n return distance(x1, y1, x, y);\n }\n\n var lengthSquare = (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1);\n\n if (cross > lengthSquare) {\n return distance(x2, y2, x, y);\n }\n\n return this.pointToLine(x1, y1, x2, y2, x, y);\n },\n\n /**\n * 点到直线的距离,而不是点到线段的距离\n * @param {number} x1 起始点 x\n * @param {number} y1 起始点 y\n * @param {number} x2 结束点 x\n * @param {number} y2 结束点 y\n * @param {number} x 测试点 x\n * @param {number} y 测试点 y\n * @return {number} 距离\n */\n pointToLine: function pointToLine(x1, y1, x2, y2, x, y) {\n var d = [x2 - x1, y2 - y1]; // 如果端点相等,则判定点到点的距离\n\n if (vec2.exactEquals(d, [0, 0])) {\n return Math.sqrt((x - x1) * (x - x1) + (y - y1) * (y - y1));\n }\n\n var u = [-d[1], d[0]];\n vec2.normalize(u, u);\n var a = [x - x1, y - y1];\n return Math.abs(vec2.dot(a, u));\n },\n\n /**\n * 线段的角度\n * @param {number} x1 起始点 x\n * @param {number} y1 起始点 y\n * @param {number} x2 结束点 x\n * @param {number} y2 结束点 y\n * @return {number} 导数\n */\n tangentAngle: function tangentAngle(x1, y1, x2, y2) {\n return Math.atan2(y2 - y1, x2 - x1);\n }\n};","import { distance } from './util';\nvar EPSILON = 0.0001;\n/**\n * 使用牛顿切割法求最近的点\n * @param {number[]} xArr 点的 x 数组\n * @param {number[]} yArr 点的 y 数组\n * @param {number} x 指定的点 x\n * @param {number} y 指定的点 y\n * @param {Function} tCallback 差值函数\n */\n\nexport function nearestPoint(xArr, yArr, x, y, tCallback, length) {\n var t;\n var d = Infinity;\n var v0 = [x, y];\n var segNum = 20;\n\n if (length && length > 200) {\n segNum = length / 10;\n }\n\n var increaseRate = 1 / segNum;\n var interval = increaseRate / 10;\n\n for (var i = 0; i <= segNum; i++) {\n var _t = i * increaseRate;\n\n var v1 = [tCallback.apply(null, xArr.concat([_t])), tCallback.apply(null, yArr.concat([_t]))];\n var d1 = distance(v0[0], v0[1], v1[0], v1[1]);\n\n if (d1 < d) {\n t = _t;\n d = d1;\n }\n } // 提前终止\n\n\n if (t === 0) {\n return {\n x: xArr[0],\n y: yArr[0]\n };\n }\n\n if (t === 1) {\n var count = xArr.length;\n return {\n x: xArr[count - 1],\n y: yArr[count - 1]\n };\n }\n\n d = Infinity;\n\n for (var i = 0; i < 32; i++) {\n if (interval < EPSILON) {\n break;\n }\n\n var prev = t - interval;\n var next = t + interval;\n var v1 = [tCallback.apply(null, xArr.concat([prev])), tCallback.apply(null, yArr.concat([prev]))];\n var d1 = distance(v0[0], v0[1], v1[0], v1[1]);\n\n if (prev >= 0 && d1 < d) {\n t = prev;\n d = d1;\n } else {\n var v2 = [tCallback.apply(null, xArr.concat([next])), tCallback.apply(null, yArr.concat([next]))];\n var d2 = distance(v0[0], v0[1], v2[0], v2[1]);\n\n if (next <= 1 && d2 < d) {\n t = next;\n d = d2;\n } else {\n interval *= 0.5;\n }\n }\n }\n\n return {\n x: tCallback.apply(null, xArr.concat([t])),\n y: tCallback.apply(null, yArr.concat([t]))\n };\n} // 近似求解 https://community.khronos.org/t/3d-cubic-bezier-segment-length/62363/2\n\nexport function snapLength(xArr, yArr) {\n var totalLength = 0;\n var count = xArr.length;\n\n for (var i = 0; i < count; i++) {\n var x = xArr[i];\n var y = yArr[i];\n var nextX = xArr[(i + 1) % count];\n var nextY = yArr[(i + 1) % count];\n totalLength += distance(x, y, nextX, nextY);\n }\n\n return totalLength / 2;\n}","import line from './line';\nimport { distance, isNumberEqual, getBBoxByArray, piMod } from './util';\nimport { nearestPoint as _nearestPoint } from './bezier'; // 差值公式\n\nfunction quadraticAt(p0, p1, p2, t) {\n var onet = 1 - t;\n return onet * onet * p0 + 2 * t * onet * p1 + t * t * p2;\n} // 求极值\n\n\nfunction extrema(p0, p1, p2) {\n var a = p0 + p2 - 2 * p1;\n\n if (isNumberEqual(a, 0)) {\n return [0.5];\n }\n\n var rst = (p0 - p1) / a;\n\n if (rst <= 1 && rst >= 0) {\n return [rst];\n }\n\n return [];\n}\n\nfunction derivativeAt(p0, p1, p2, t) {\n return 2 * (1 - t) * (p1 - p0) + 2 * t * (p2 - p1);\n} // 分割贝塞尔曲线\n\n\nfunction divideQuadratic(x1, y1, x2, y2, x3, y3, t) {\n // 划分点\n var xt = quadraticAt(x1, x2, x3, t);\n var yt = quadraticAt(y1, y2, y3, t); // 分割的第一条曲线的控制点\n\n var controlPoint1 = line.pointAt(x1, y1, x2, y2, t); // 分割的第二条曲线的控制点\n\n var controlPoint2 = line.pointAt(x2, y2, x3, y3, t);\n return [[x1, y1, controlPoint1.x, controlPoint1.y, xt, yt], [xt, yt, controlPoint2.x, controlPoint2.y, x3, y3]];\n} // 使用迭代法取贝塞尔曲线的长度\n\n\nfunction quadraticLength(x1, y1, x2, y2, x3, y3, iterationCount) {\n if (iterationCount === 0) {\n return (distance(x1, y1, x2, y2) + distance(x2, y2, x3, y3) + distance(x1, y1, x3, y3)) / 2;\n }\n\n var quadratics = divideQuadratic(x1, y1, x2, y2, x3, y3, 0.5);\n var left = quadratics[0];\n var right = quadratics[1];\n left.push(iterationCount - 1);\n right.push(iterationCount - 1);\n return quadraticLength.apply(null, left) + quadraticLength.apply(null, right);\n}\n\nexport default {\n box: function box(x1, y1, x2, y2, x3, y3) {\n var xExtrema = extrema(x1, x2, x3)[0];\n var yExtrema = extrema(y1, y2, y3)[0]; // 控制点不加入 box 的计算\n\n var xArr = [x1, x3];\n var yArr = [y1, y3];\n\n if (xExtrema !== undefined) {\n xArr.push(quadraticAt(x1, x2, x3, xExtrema));\n }\n\n if (yExtrema !== undefined) {\n yArr.push(quadraticAt(y1, y2, y3, yExtrema));\n }\n\n return getBBoxByArray(xArr, yArr);\n },\n length: function length(x1, y1, x2, y2, x3, y3) {\n return quadraticLength(x1, y1, x2, y2, x3, y3, 3);\n },\n nearestPoint: function nearestPoint(x1, y1, x2, y2, x3, y3, x0, y0) {\n return _nearestPoint([x1, x2, x3], [y1, y2, y3], x0, y0, quadraticAt);\n },\n pointDistance: function pointDistance(x1, y1, x2, y2, x3, y3, x0, y0) {\n var point = this.nearestPoint(x1, y1, x2, y2, x3, y3, x0, y0);\n return distance(point.x, point.y, x0, y0);\n },\n interpolationAt: quadraticAt,\n pointAt: function pointAt(x1, y1, x2, y2, x3, y3, t) {\n return {\n x: quadraticAt(x1, x2, x3, t),\n y: quadraticAt(y1, y2, y3, t)\n };\n },\n divide: function divide(x1, y1, x2, y2, x3, y3, t) {\n return divideQuadratic(x1, y1, x2, y2, x3, y3, t);\n },\n tangentAngle: function tangentAngle(x1, y1, x2, y2, x3, y3, t) {\n var dx = derivativeAt(x1, x2, x3, t);\n var dy = derivativeAt(y1, y2, y3, t);\n var angle = Math.atan2(dy, dx);\n return piMod(angle);\n }\n};","import { distance, isNumberEqual, getBBoxByArray, piMod } from './util';\nimport line from './line';\nimport { snapLength, nearestPoint as _nearestPoint } from './bezier';\n\nfunction cubicAt(p0, p1, p2, p3, t) {\n var onet = 1 - t; // t * t * t 的性能大概是 Math.pow(t, 3) 的三倍\n\n return onet * onet * onet * p0 + 3 * p1 * t * onet * onet + 3 * p2 * t * t * onet + p3 * t * t * t;\n}\n\nfunction derivativeAt(p0, p1, p2, p3, t) {\n var onet = 1 - t;\n return 3 * (onet * onet * (p1 - p0) + 2 * onet * t * (p2 - p1) + t * t * (p3 - p2));\n}\n\nfunction extrema(p0, p1, p2, p3) {\n var a = -3 * p0 + 9 * p1 - 9 * p2 + 3 * p3;\n var b = 6 * p0 - 12 * p1 + 6 * p2;\n var c = 3 * p1 - 3 * p0;\n var extremas = [];\n var t1;\n var t2;\n var discSqrt;\n\n if (isNumberEqual(a, 0)) {\n if (!isNumberEqual(b, 0)) {\n t1 = -c / b;\n\n if (t1 >= 0 && t1 <= 1) {\n extremas.push(t1);\n }\n }\n } else {\n var disc = b * b - 4 * a * c;\n\n if (isNumberEqual(disc, 0)) {\n extremas.push(-b / (2 * a));\n } else if (disc > 0) {\n discSqrt = Math.sqrt(disc);\n t1 = (-b + discSqrt) / (2 * a);\n t2 = (-b - discSqrt) / (2 * a);\n\n if (t1 >= 0 && t1 <= 1) {\n extremas.push(t1);\n }\n\n if (t2 >= 0 && t2 <= 1) {\n extremas.push(t2);\n }\n }\n }\n\n return extremas;\n} // 分割贝塞尔曲线\n\n\nfunction divideCubic(x1, y1, x2, y2, x3, y3, x4, y4, t) {\n // 划分点\n var xt = cubicAt(x1, x2, x3, x4, t);\n var yt = cubicAt(y1, y2, y3, y4, t); // 计算两点之间的差值点\n\n var c1 = line.pointAt(x1, y1, x2, y2, t);\n var c2 = line.pointAt(x2, y2, x3, y3, t);\n var c3 = line.pointAt(x3, y3, x4, y4, t);\n var c12 = line.pointAt(c1.x, c1.y, c2.x, c2.y, t);\n var c23 = line.pointAt(c2.x, c2.y, c3.x, c3.y, t);\n return [[x1, y1, c1.x, c1.y, c12.x, c12.y, xt, yt], [xt, yt, c23.x, c23.y, c3.x, c3.y, x4, y4]];\n} // 使用迭代法取贝塞尔曲线的长度,二阶和三阶分开写,更清晰和便于调试\n\n\nfunction cubicLength(x1, y1, x2, y2, x3, y3, x4, y4, iterationCount) {\n if (iterationCount === 0) {\n return snapLength([x1, x2, x3, x4], [y1, y2, y3, y4]);\n }\n\n var cubics = divideCubic(x1, y1, x2, y2, x3, y3, x4, y4, 0.5);\n var left = cubics[0];\n var right = cubics[1];\n left.push(iterationCount - 1);\n right.push(iterationCount - 1);\n return cubicLength.apply(null, left) + cubicLength.apply(null, right);\n}\n\nexport default {\n extrema: extrema,\n box: function box(x1, y1, x2, y2, x3, y3, x4, y4) {\n var xArr = [x1, x4];\n var yArr = [y1, y4];\n var xExtrema = extrema(x1, x2, x3, x4);\n var yExtrema = extrema(y1, y2, y3, y4);\n\n for (var i = 0; i < xExtrema.length; i++) {\n xArr.push(cubicAt(x1, x2, x3, x4, xExtrema[i]));\n }\n\n for (var i = 0; i < yExtrema.length; i++) {\n yArr.push(cubicAt(y1, y2, y3, y4, yExtrema[i]));\n }\n\n return getBBoxByArray(xArr, yArr);\n },\n length: function length(x1, y1, x2, y2, x3, y3, x4, y4) {\n // 迭代三次,划分成 8 段求长度\n return cubicLength(x1, y1, x2, y2, x3, y3, x4, y4, 3);\n },\n nearestPoint: function nearestPoint(x1, y1, x2, y2, x3, y3, x4, y4, x0, y0, length) {\n return _nearestPoint([x1, x2, x3, x4], [y1, y2, y3, y4], x0, y0, cubicAt, length);\n },\n pointDistance: function pointDistance(x1, y1, x2, y2, x3, y3, x4, y4, x0, y0, length) {\n var point = this.nearestPoint(x1, y1, x2, y2, x3, y3, x4, y4, x0, y0, length);\n return distance(point.x, point.y, x0, y0);\n },\n interpolationAt: cubicAt,\n pointAt: function pointAt(x1, y1, x2, y2, x3, y3, x4, y4, t) {\n return {\n x: cubicAt(x1, x2, x3, x4, t),\n y: cubicAt(y1, y2, y3, y4, t)\n };\n },\n divide: function divide(x1, y1, x2, y2, x3, y3, x4, y4, t) {\n return divideCubic(x1, y1, x2, y2, x3, y3, x4, y4, t);\n },\n tangentAngle: function tangentAngle(x1, y1, x2, y2, x3, y3, x4, y4, t) {\n var dx = derivativeAt(x1, x2, x3, x4, t);\n var dy = derivativeAt(y1, y2, y3, y4, t);\n return piMod(Math.atan2(dy, dx));\n }\n};","/**\n * @fileoverview 椭圆的一些计算,\n * - 周长计算参考:https://www.mathsisfun.com/geometry/ellipse-perimeter.html\n * - 距离计算参考:https://wet-robots.ghost.io/simple-method-for-distance-to-ellipse/\n * @author dxq613@gmail.com\n */\nimport { distance, piMod } from './util';\n\nfunction copysign(v1, v2) {\n var absv = Math.abs(v1);\n return v2 > 0 ? absv : absv * -1;\n}\n\nexport default {\n /**\n * 包围盒计算\n * @param {number} x 椭圆中心 x\n * @param {number} y 椭圆中心 y\n * @param {number} rx 椭圆 x 方向半径\n * @param {number} ry 椭圆 y 方向半径\n * @return {object} 包围盒\n */\n box: function box(x, y, rx, ry) {\n return {\n x: x - rx,\n y: y - ry,\n width: rx * 2,\n height: ry * 2\n };\n },\n\n /**\n * 计算周长,使用近似法\n * @param {number} x 椭圆中心 x\n * @param {number} y 椭圆中心 y\n * @param {number} rx 椭圆 x 方向半径\n * @param {number} ry 椭圆 y 方向半径\n * @return {number} 椭圆周长\n */\n length: function length(x, y, rx, ry) {\n return Math.PI * (3 * (rx + ry) - Math.sqrt((3 * rx + ry) * (rx + 3 * ry)));\n },\n\n /**\n * 距离椭圆最近的点\n * @param {number} x 椭圆中心 x\n * @param {number} y 椭圆中心 y\n * @param {number} rx 椭圆 x 方向半径\n * @param {number} ry 椭圆 y 方向半径\n * @param {number} x0 指定的点 x\n * @param {number} y0 指定的点 y\n * @return {object} 椭圆上距离指定点最近的点\n */\n nearestPoint: function nearestPoint(x, y, rx, ry, x0, y0) {\n var a = rx;\n var b = ry; // 假如椭圆半径为0则返回圆心\n\n if (a === 0 || b === 0) {\n return {\n x: x,\n y: y\n };\n } // 转换成 0, 0 为中心的椭圆计算\n\n\n var relativeX = x0 - x;\n var relativeY = y0 - y;\n var px = Math.abs(relativeX);\n var py = Math.abs(relativeY);\n var squareA = a * a;\n var squareB = b * b; // const angle0 = Math.atan2(relativeY, relativeX);\n\n var t = Math.PI / 4;\n var nearestX; // 椭圆上的任一点\n\n var nearestY; // 迭代 4 次\n\n for (var i = 0; i < 4; i++) {\n nearestX = a * Math.cos(t);\n nearestY = b * Math.sin(t);\n var ex = (squareA - squareB) * Math.pow(Math.cos(t), 3) / a;\n var ey = (squareB - squareA) * Math.pow(Math.sin(t), 3) / b;\n var rx1 = nearestX - ex;\n var ry1 = nearestY - ey;\n var qx = px - ex;\n var qy = py - ey;\n var r = Math.hypot(ry1, rx1);\n var q = Math.hypot(qy, qx);\n var delta_c = r * Math.asin((rx1 * qy - ry1 * qx) / (r * q));\n var delta_t = delta_c / Math.sqrt(squareA + squareB - nearestX * nearestX - nearestY * nearestY);\n t += delta_t;\n t = Math.min(Math.PI / 2, Math.max(0, t));\n }\n\n return {\n x: x + copysign(nearestX, relativeX),\n y: y + copysign(nearestY, relativeY)\n };\n },\n\n /**\n * 点到椭圆最近的距离\n * @param {number} x 椭圆中心 x\n * @param {number} y 椭圆中心 y\n * @param {number} rx 椭圆 x 方向半径\n * @param {number} ry 椭圆 y 方向半径\n * @param {number} x0 指定的点 x\n * @param {number} y0 指定的点 y\n * @return {number} 点到椭圆的距离\n */\n pointDistance: function pointDistance(x, y, rx, ry, x0, y0) {\n var nearestPoint = this.nearestPoint(x, y, rx, ry, x0, y0);\n return distance(nearestPoint.x, nearestPoint.y, x0, y0);\n },\n\n /**\n * 根据比例获取点\n * @param {number} x 椭圆中心 x\n * @param {number} y 椭圆中心 y\n * @param {number} rx 椭圆 x 方向半径\n * @param {number} ry 椭圆 y 方向半径\n * @param {number} t 指定比例,x轴方向为 0\n * @return {object} 点\n */\n pointAt: function pointAt(x, y, rx, ry, t) {\n var angle = 2 * Math.PI * t; // 按照角度进行计算,而不按照周长计算\n\n return {\n x: x + rx * Math.cos(angle),\n y: y + ry * Math.sin(angle)\n };\n },\n\n /**\n * 根据比例计算切线角度\n * @param {number} x 椭圆中心 x\n * @param {number} y 椭圆中心 y\n * @param {number} rx 椭圆 x 方向半径\n * @param {number} ry 椭圆 y 方向半径\n * @param {number} t 指定比例 0 - 1 之间,x轴方向为 0。在 0-1 范围之外是循环还是返回 null,还需要调整\n * @return {number} 角度,在 0 - 2PI 之间\n */\n tangentAngle: function tangentAngle(x, y, rx, ry, t) {\n var angle = 2 * Math.PI * t; // 按照角度进行计算,而不按照周长计算\n // 直接使用 x,y 的导数计算, x' = -rx * sin(t); y' = ry * cos(t);\n\n var tangentAngle = Math.atan2(ry * Math.cos(angle), -rx * Math.sin(angle)); // 也可以使用指定点的切线方程计算,成本有些高\n // const point = this.pointAt(0, 0, rx, ry, t); // 椭圆的切线同椭圆的中心不相关\n // let tangentAngle = -1 * Math.atan((ry * ry * point.x) / (rx * rx * point.y));\n // if (angle >= 0 && angle <= Math.PI) {\n // tangentAngle += Math.PI;\n // }\n\n return piMod(tangentAngle);\n }\n};","import { distance, piMod } from './util';\nimport ellipse from './ellipse'; // 偏导数 x\n\nfunction derivativeXAt(cx, cy, rx, ry, xRotation, startAngle, endAngle, angle) {\n return -1 * rx * Math.cos(xRotation) * Math.sin(angle) - ry * Math.sin(xRotation) * Math.cos(angle);\n} // 偏导数 y\n\n\nfunction derivativeYAt(cx, cy, rx, ry, xRotation, startAngle, endAngle, angle) {\n return -1 * rx * Math.sin(xRotation) * Math.sin(angle) + ry * Math.cos(xRotation) * Math.cos(angle);\n} // x 的极值\n\n\nfunction xExtrema(rx, ry, xRotation) {\n return Math.atan(-ry / rx * Math.tan(xRotation));\n} // y 的极值\n\n\nfunction yExtrema(rx, ry, xRotation) {\n return Math.atan(ry / (rx * Math.tan(xRotation)));\n} // 根据角度求 x 坐标\n\n\nfunction xAt(cx, cy, rx, ry, xRotation, angle) {\n return rx * Math.cos(xRotation) * Math.cos(angle) - ry * Math.sin(xRotation) * Math.sin(angle) + cx;\n} // 根据角度求 y 坐标\n\n\nfunction yAt(cx, cy, rx, ry, xRotation, angle) {\n return rx * Math.sin(xRotation) * Math.cos(angle) + ry * Math.cos(xRotation) * Math.sin(angle) + cy;\n} // 获取点在椭圆上的角度\n\n\nfunction getAngle(rx, ry, x0, y0) {\n var angle = Math.atan2(y0 * rx, x0 * ry); // 转换到 0 - 2PI 内\n\n return (angle + Math.PI * 2) % (Math.PI * 2);\n} // 根据角度获取,x,y\n\n\nfunction getPoint(rx, ry, angle) {\n return {\n x: rx * Math.cos(angle),\n y: ry * Math.sin(angle)\n };\n} // 旋转\n\n\nfunction rotate(x, y, angle) {\n var cos = Math.cos(angle);\n var sin = Math.sin(angle);\n return [x * cos - y * sin, x * sin + y * cos];\n}\n\nexport default {\n /**\n * 计算包围盒\n * @param {number} cx 圆心 x\n * @param {number} cy 圆心 y\n * @param {number} rx x 轴方向的半径\n * @param {number} ry y 轴方向的半径\n * @param {number} xRotation 旋转角度\n * @param {number} startAngle 起始角度\n * @param {number} endAngle 结束角度\n * @return {object} 包围盒对象\n */\n box: function box(cx, cy, rx, ry, xRotation, startAngle, endAngle) {\n var xDim = xExtrema(rx, ry, xRotation);\n var minX = Infinity;\n var maxX = -Infinity;\n var xs = [startAngle, endAngle];\n\n for (var i = -Math.PI * 2; i <= Math.PI * 2; i += Math.PI) {\n var xAngle = xDim + i;\n\n if (startAngle < endAngle) {\n if (startAngle < xAngle && xAngle < endAngle) {\n xs.push(xAngle);\n }\n } else {\n if (endAngle < xAngle && xAngle < startAngle) {\n xs.push(xAngle);\n }\n }\n }\n\n for (var i = 0; i < xs.length; i++) {\n var x = xAt(cx, cy, rx, ry, xRotation, xs[i]);\n\n if (x < minX) {\n minX = x;\n }\n\n if (x > maxX) {\n maxX = x;\n }\n }\n\n var yDim = yExtrema(rx, ry, xRotation);\n var minY = Infinity;\n var maxY = -Infinity;\n var ys = [startAngle, endAngle];\n\n for (var i = -Math.PI * 2; i <= Math.PI * 2; i += Math.PI) {\n var yAngle = yDim + i;\n\n if (startAngle < endAngle) {\n if (startAngle < yAngle && yAngle < endAngle) {\n ys.push(yAngle);\n }\n } else {\n if (endAngle < yAngle && yAngle < startAngle) {\n ys.push(yAngle);\n }\n }\n }\n\n for (var i = 0; i < ys.length; i++) {\n var y = yAt(cx, cy, rx, ry, xRotation, ys[i]);\n\n if (y < minY) {\n minY = y;\n }\n\n if (y > maxY) {\n maxY = y;\n }\n }\n\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n },\n\n /**\n * 获取圆弧的长度,计算圆弧长度时不考虑旋转角度,\n * 仅跟 rx, ry, startAngle, endAngle 相关\n * @param {number} cx 圆心 x\n * @param {number} cy 圆心 y\n * @param {number} rx x 轴方向的半径\n * @param {number} ry y 轴方向的半径\n * @param {number} xRotation 旋转角度\n * @param {number} startAngle 起始角度\n * @param {number} endAngle 结束角度\n */\n length: function length(cx, cy, rx, ry, xRotation, startAngle, endAngle) {},\n\n /**\n * 获取指定点到圆弧的最近距离的点\n * @param {number} cx 圆心 x\n * @param {number} cy 圆心 y\n * @param {number} rx x 轴方向的半径\n * @param {number} ry y 轴方向的半径\n * @param {number} xRotation 旋转角度\n * @param {number} startAngle 起始角度\n * @param {number} endAngle 结束角度\n * @param {number} x0 指定点的 x\n * @param {number} y0 指定点的 y\n * @return {object} 到指定点最近距离的点\n */\n nearestPoint: function nearestPoint(cx, cy, rx, ry, xRotation, startAngle, endAngle, x0, y0) {\n // 将最近距离问题转换成到椭圆中心 0,0 没有旋转的椭圆问题\n var relativeVector = rotate(x0 - cx, y0 - cy, -xRotation);\n var x1 = relativeVector[0],\n y1 = relativeVector[1]; // 计算点到椭圆的最近的点\n\n var relativePoint = ellipse.nearestPoint(0, 0, rx, ry, x1, y1); // 获取点在椭圆上的角度\n\n var angle = getAngle(rx, ry, relativePoint.x, relativePoint.y); // 点没有在圆弧上\n\n if (angle < startAngle) {\n // 小于起始圆弧\n relativePoint = getPoint(rx, ry, startAngle);\n } else if (angle > endAngle) {\n // 大于结束圆弧\n relativePoint = getPoint(rx, ry, endAngle);\n } // 旋转到 xRotation 的角度\n\n\n var vector = rotate(relativePoint.x, relativePoint.y, xRotation);\n return {\n x: vector[0] + cx,\n y: vector[1] + cy\n };\n },\n pointDistance: function pointDistance(cx, cy, rx, ry, xRotation, startAngle, endAngle, x0, y0) {\n var nearestPoint = this.nearestPoint(cx, cy, rx, ry, x0, y0);\n return distance(nearestPoint.x, nearestPoint.y, x0, y0);\n },\n pointAt: function pointAt(cx, cy, rx, ry, xRotation, startAngle, endAngle, t) {\n var angle = (endAngle - startAngle) * t + startAngle;\n return {\n x: xAt(cx, cy, rx, ry, xRotation, angle),\n y: yAt(cx, cy, rx, ry, xRotation, angle)\n };\n },\n tangentAngle: function tangentAngle(cx, cy, rx, ry, xRotation, startAngle, endAngle, t) {\n var angle = (endAngle - startAngle) * t + startAngle;\n var dx = derivativeXAt(cx, cy, rx, ry, xRotation, startAngle, endAngle, angle);\n var dy = derivativeYAt(cx, cy, rx, ry, xRotation, startAngle, endAngle, angle);\n return piMod(Math.atan2(dy, dx));\n }\n};","import line from './line';\nimport { distance } from './util';\n\nfunction analyzePoints(points) {\n // 计算每段的长度和总的长度\n var totalLength = 0;\n var segments = [];\n\n for (var i = 0; i < points.length - 1; i++) {\n var from = points[i];\n var to = points[i + 1];\n var length_1 = distance(from[0], from[1], to[0], to[1]);\n var seg = {\n from: from,\n to: to,\n length: length_1\n };\n segments.push(seg);\n totalLength += length_1;\n }\n\n return {\n segments: segments,\n totalLength: totalLength\n };\n}\n\nexport function lengthOfSegment(points) {\n if (points.length < 2) {\n return 0;\n }\n\n var totalLength = 0;\n\n for (var i = 0; i < points.length - 1; i++) {\n var from = points[i];\n var to = points[i + 1];\n totalLength += distance(from[0], from[1], to[0], to[1]);\n }\n\n return totalLength;\n}\n/**\n * 按照比例在数据片段中获取点\n * @param {array} points 点的集合\n * @param {number} t 百分比 0-1\n * @return {object} 点的坐标\n */\n\nexport function pointAtSegments(points, t) {\n // 边界判断\n if (t > 1 || t < 0 || points.length < 2) {\n return null;\n }\n\n var _a = analyzePoints(points),\n segments = _a.segments,\n totalLength = _a.totalLength; // 多个点有可能重合\n\n\n if (totalLength === 0) {\n return {\n x: points[0][0],\n y: points[0][1]\n };\n } // 计算比例\n\n\n var startRatio = 0;\n var point = null;\n\n for (var i = 0; i < segments.length; i++) {\n var seg = segments[i];\n var from = seg.from,\n to = seg.to;\n var currentRatio = seg.length / totalLength;\n\n if (t >= startRatio && t <= startRatio + currentRatio) {\n var localRatio = (t - startRatio) / currentRatio;\n point = line.pointAt(from[0], from[1], to[0], to[1], localRatio);\n break;\n }\n\n startRatio += currentRatio;\n }\n\n return point;\n}\n/**\n * 按照比例在数据片段中获取切线的角度\n * @param {array} points 点的集合\n * @param {number} t 百分比 0-1\n */\n\nexport function angleAtSegments(points, t) {\n // 边界判断\n if (t > 1 || t < 0 || points.length < 2) {\n return 0;\n }\n\n var _a = analyzePoints(points),\n segments = _a.segments,\n totalLength = _a.totalLength; // 计算比例\n\n\n var startRatio = 0;\n var angle = 0;\n\n for (var i = 0; i < segments.length; i++) {\n var seg = segments[i];\n var from = seg.from,\n to = seg.to;\n var currentRatio = seg.length / totalLength;\n\n if (t >= startRatio && t <= startRatio + currentRatio) {\n angle = Math.atan2(to[1] - from[1], to[0] - from[0]);\n break;\n }\n\n startRatio += currentRatio;\n }\n\n return angle;\n}\nexport function distanceAtSegment(points, x, y) {\n var minDistance = Infinity;\n\n for (var i = 0; i < points.length - 1; i++) {\n var point = points[i];\n var nextPoint = points[i + 1];\n var distance_1 = line.pointDistance(point[0], point[1], nextPoint[0], nextPoint[1], x, y);\n\n if (distance_1 < minDistance) {\n minDistance = distance_1;\n }\n }\n\n return minDistance;\n}","import { pointAtSegments, angleAtSegments, distanceAtSegment, lengthOfSegment } from './segments';\nimport { getBBoxByArray } from './util';\nexport default {\n /**\n * 计算多折线的包围盒\n * @param {array} points 点的集合 [x,y] 的形式\n * @return {object} 包围盒\n */\n box: function box(points) {\n var xArr = [];\n var yArr = [];\n\n for (var i = 0; i < points.length; i++) {\n var point = points[i];\n xArr.push(point[0]);\n yArr.push(point[1]);\n }\n\n return getBBoxByArray(xArr, yArr);\n },\n\n /**\n * 计算多折线的长度\n * @param {array} points 点的集合 [x,y] 的形式\n * @return {object} 多条边的长度\n */\n length: function length(points) {\n return lengthOfSegment(points);\n },\n\n /**\n * 根据比例获取多折线的点\n * @param {array} points 点的集合 [x,y] 的形式\n * @param {number} t 在多折线的长度上的比例\n * @return {object} 根据比例值计算出来的点\n */\n pointAt: function pointAt(points, t) {\n return pointAtSegments(points, t);\n },\n\n /**\n * 指定点到多折线的距离\n * @param {array} points 点的集合 [x,y] 的形式\n * @param {number} x 指定点的 x\n * @param {number} y 指定点的 y\n * @return {number} 点到多折线的距离\n */\n pointDistance: function pointDistance(points, x, y) {\n return distanceAtSegment(points, x, y);\n },\n\n /**\n * 根据比例获取多折线的切线角度\n * @param {array} points 点的集合 [x,y] 的形式\n * @param {number} t 在多折线的长度上的比例\n * @return {object} 根据比例值计算出来的角度\n */\n tangentAngle: function tangentAngle(points, t) {\n return angleAtSegments(points, t);\n }\n};","/**\n * Common utilities\n * @module glMatrix\n */\n// Configuration Constants\nexport var EPSILON = 0.000001;\nexport var ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nexport var RANDOM = Math.random;\n/**\n * Sets the type of array used when creating new vectors and matrices\n *\n * @param {Float32ArrayConstructor | ArrayConstructor} type Array type, such as Float32Array or Array\n */\n\nexport function setMatrixArrayType(type) {\n ARRAY_TYPE = type;\n}\nvar degree = Math.PI / 180;\n/**\n * Convert Degree To Radian\n *\n * @param {Number} a Angle in Degrees\n */\n\nexport function toRadian(a) {\n return a * degree;\n}\n/**\n * Tests whether or not the arguments have approximately the same value, within an absolute\n * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less\n * than or equal to 1.0, and a relative tolerance is used for larger values)\n *\n * @param {Number} a The first number to test.\n * @param {Number} b The second number to test.\n * @returns {Boolean} True if the numbers are approximately equal, false otherwise.\n */\n\nexport function equals(a, b) {\n return Math.abs(a - b) <= EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b));\n}\nif (!Math.hypot) Math.hypot = function () {\n var y = 0,\n i = arguments.length;\n\n while (i--) {\n y += arguments[i] * arguments[i];\n }\n\n return Math.sqrt(y);\n};","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { isMemo } from 'react-is';\nimport useMemo from './hooks/useMemo';\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n/**\n * Merge refs into one ref function to support ref passing.\n */\n\nexport function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n var refList = refs.filter(function (ref) {\n return ref;\n });\n\n if (refList.length <= 1) {\n return refList[0];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n\n return useMemo(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length === next.length && prev.every(function (ref, i) {\n return ref === next[i];\n });\n });\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type; // Function component node\n\n if (typeof type === 'function' && !((_type$prototype = type.prototype) === null || _type$prototype === void 0 ? void 0 : _type$prototype.render)) {\n return false;\n } // Class component\n\n\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) === null || _nodeOrComponent$prot === void 0 ? void 0 : _nodeOrComponent$prot.render)) {\n return false;\n }\n\n return true;\n}\n/* eslint-enable */","import { __assign, __rest, __spreadArrays } from \"tslib\";\nimport { uniq, isFunction, isObject, isString, isNumber, isEmpty } from '@antv/util';\nimport { transformLabel } from '../../utils';\n/**\n * 获得映射的字段列表\n * @param options\n * @param field\n */\n\nexport function getMappingField(o, field) {\n var type = o.type,\n xField = o.xField,\n yField = o.yField,\n colorField = o.colorField,\n shapeField = o.shapeField,\n sizeField = o.sizeField,\n styleField = o.styleField,\n _a = o.rawFields,\n rawFields = _a === void 0 ? [] : _a;\n var fields = []; // 因为 color 会影响到数据分组,以及最后的图形映射。所以导致 bar 图中的 widthRatio 设置不生效\n // 所以对于 color 字段,仅仅保留 colorField 好了! + rawFields\n // shape, size 同理\n\n if (field === 'color') {\n fields = __spreadArrays([colorField || xField], rawFields);\n } else if (field === 'shape') {\n fields = __spreadArrays([shapeField || xField], rawFields);\n } else if (field === 'size') {\n fields = __spreadArrays([sizeField || xField], rawFields);\n } else {\n fields = __spreadArrays([xField, yField, colorField, shapeField, sizeField, styleField], rawFields); // 一定能找到的!\n\n var idx = ['x', 'y', 'color', 'shape', 'size', 'style'].indexOf(field);\n var f = fields[idx]; // 删除当前字段\n\n fields.splice(idx, 1); // 插入到第一个\n\n fields.unshift(f);\n }\n\n var mappingFields = uniq(fields.filter(function (f) {\n return !!f;\n }));\n /**\n * 修复 line geometry 无拆分时 color 回调错误\n * eg:\n * geometry.color(xField, ()=> '#f24')\n */\n\n var tileMappingField = type === 'line' && [xField, yField].includes(mappingFields.join('*')) ? '' : mappingFields.join('*');\n return {\n mappingFields: mappingFields,\n tileMappingField: tileMappingField\n };\n}\n/**\n * 获得映射函数\n * @param mappingFields\n * @param func\n */\n\nexport function getMappingFunction(mappingFields, func) {\n if (!func) return undefined; // 返回函数\n\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var params = {};\n mappingFields.forEach(function (f, idx) {\n params[f] = args[idx];\n }); // 删除 undefined\n\n delete params['undefined'];\n return func(params);\n };\n}\n/**\n * 通用 geometry 的配置处理的 adaptor\n * @param params\n */\n\nexport function geometry(params) {\n var chart = params.chart,\n options = params.options;\n var type = options.type,\n args = options.args,\n mapping = options.mapping,\n xField = options.xField,\n yField = options.yField,\n colorField = options.colorField,\n shapeField = options.shapeField,\n sizeField = options.sizeField,\n tooltipFields = options.tooltipFields,\n label = options.label,\n state = options.state,\n customInfo = options.customInfo; // 如果没有 mapping 信息,那么直接返回\n\n if (!mapping) {\n return params;\n }\n\n var color = mapping.color,\n shape = mapping.shape,\n size = mapping.size,\n style = mapping.style,\n tooltip = mapping.tooltip; // 创建 geometry\n\n var geometry = chart[type](args).position(xField + \"*\" + yField);\n /**\n * color 的几种情况\n * g.color('red');\n * g.color('color', ['red', 'blue']);\n * g.color('x', (x, y) => 'red');\n * g.color('color', (color, x, y) => 'red');\n */\n\n if (isString(color)) {\n colorField ? geometry.color(colorField, color) : geometry.color(color);\n } else if (isFunction(color)) {\n var _a = getMappingField(options, 'color'),\n mappingFields = _a.mappingFields,\n tileMappingField = _a.tileMappingField;\n\n geometry.color(tileMappingField, getMappingFunction(mappingFields, color));\n } else {\n colorField && geometry.color(colorField, color);\n }\n /**\n * shape 的几种情况\n * g.shape('rect');\n * g.shape('shape', ['rect', 'circle']);\n * g.shape('x*y', (x, y) => 'rect');\n * g.shape('shape*x*y', (shape, x, y) => 'rect');\n */\n\n\n if (isString(shape)) {\n shapeField ? geometry.shape(shapeField, [shape]) : geometry.shape(shape); // [shape] 需要在 G2 做掉\n } else if (isFunction(shape)) {\n var _b = getMappingField(options, 'shape'),\n mappingFields = _b.mappingFields,\n tileMappingField = _b.tileMappingField;\n\n geometry.shape(tileMappingField, getMappingFunction(mappingFields, shape));\n } else {\n shapeField && geometry.shape(shapeField, shape);\n }\n /**\n * size 的几种情况\n * g.size(10);\n * g.size('size', [10, 20]);\n * g.size('x*y', (x, y) => 10);\n * g.color('size*x*y', (size, x, y) => 1-);\n */\n\n\n if (isNumber(size)) {\n sizeField ? geometry.size(sizeField, size) : geometry.size(size);\n } else if (isFunction(size)) {\n var _c = getMappingField(options, 'size'),\n mappingFields = _c.mappingFields,\n tileMappingField = _c.tileMappingField;\n\n geometry.size(tileMappingField, getMappingFunction(mappingFields, size));\n } else {\n sizeField && geometry.size(sizeField, size);\n }\n /**\n * style 的几种情况\n * g.style({ fill: 'red' });\n * g.style('x*y*color', (x, y, color) => ({ fill: 'red' }));\n */\n\n\n if (isFunction(style)) {\n var _d = getMappingField(options, 'style'),\n mappingFields = _d.mappingFields,\n tileMappingField = _d.tileMappingField;\n\n geometry.style(tileMappingField, getMappingFunction(mappingFields, style));\n } else if (isObject(style)) {\n geometry.style(style);\n }\n /**\n * tooltip 的 API\n * g.tooltip('x*y*color', (x, y, color) => ({ name, value }));\n * g.tooltip(false);\n */\n\n\n if (tooltipFields === false) {\n geometry.tooltip(false);\n } else if (!isEmpty(tooltipFields)) {\n geometry.tooltip(tooltipFields.join('*'), getMappingFunction(tooltipFields, tooltip));\n }\n /**\n * label 的映射\n */\n\n\n if (label === false) {\n geometry.label(false);\n } else if (label) {\n var callback = label.callback,\n fields = label.fields,\n cfg = __rest(label, [\"callback\", \"fields\"]);\n\n geometry.label({\n fields: fields || [yField],\n callback: callback,\n cfg: transformLabel(cfg)\n });\n }\n /**\n * state 状态样式\n */\n\n\n if (state) {\n geometry.state(state);\n }\n /**\n * 自定义信息\n */\n\n\n if (customInfo) {\n geometry.customInfo(customInfo);\n } // 防止因为 x y 字段做了通道映射,导致生成图例\n\n\n [xField, yField].filter(function (f) {\n return f !== colorField;\n }).forEach(function (f) {\n chart.legend(f, false);\n });\n return __assign(__assign({}, params), {\n // geometry adaptor 额外需要做的事情,就是将创建好的 geometry 返回到下一层 adaptor,防止通过 type 查询的时候容易误判\n ext: {\n geometry: geometry\n }\n });\n}","import { bound01, pad2 } from './util'; // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * \n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\n\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\n\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return {\n h: h,\n s: s,\n l: l\n };\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n\n if (t > 1) {\n t -= 1;\n }\n\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n\n if (t < 1 / 2) {\n return q;\n }\n\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\n\n\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\n\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n\n if (max === min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return {\n h: h,\n s: s,\n v: v\n };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\n\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\n\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))]; // Return a 3 character hex if possible\n\n if (allow3Char && hex[0].startsWith(hex[0].charAt(1)) && hex[1].startsWith(hex[1].charAt(1)) && hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\n\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))]; // Return a 4 character hex if possible\n\n if (allow4Char && hex[0].startsWith(hex[0].charAt(1)) && hex[1].startsWith(hex[1].charAt(1)) && hex[2].startsWith(hex[2].charAt(1)) && hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\n\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\n\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\n\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\n\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff\n };\n}","/**\n * 在 Chart 中查找特定 id 的子 View\n * @param chart\n * @param id\n */\nexport function findViewById(chart, id) {\n return chart.views.find(function (view) {\n return view.id === id;\n });\n}\n/**\n * 获取同 view 同一级的所有 views\n * @param view 当前 view\n * @returns 同一级的 views\n * @ignore\n */\n\nexport function getViews(view) {\n var parent = view.parent;\n return parent ? parent.views : [];\n}\n/**\n * 获取同 view 同一级的 views,不包括自身\n * @param view 当前 view\n * @returns 同一级的 views\n * @ignore\n */\n\nexport function getSiblingViews(view) {\n return getViews(view).filter(function (sub) {\n return sub !== view;\n });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useEvent from './useEvent';\nimport useLayoutEffect, { useLayoutUpdateEffect } from './useLayoutEffect';\nimport useState from './useState';\nvar Source;\n\n(function (Source) {\n Source[Source[\"INNER\"] = 0] = \"INNER\";\n Source[Source[\"PROP\"] = 1] = \"PROP\";\n})(Source || (Source = {}));\n/** We only think `undefined` is empty */\n\n\nfunction hasValue(value) {\n return value !== undefined;\n}\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\n\n\nexport default function useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState; // ======================= Init =======================\n\n\n var _useState = useState(function () {\n var finalValue = undefined;\n var source;\n\n if (hasValue(value)) {\n finalValue = value;\n source = Source.PROP;\n } else if (hasValue(defaultValue)) {\n finalValue = typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n source = Source.PROP;\n } else {\n finalValue = typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n source = Source.INNER;\n }\n\n return [finalValue, source, finalValue];\n }),\n _useState2 = _slicedToArray(_useState, 2),\n mergedValue = _useState2[0],\n setMergedValue = _useState2[1];\n\n var chosenValue = hasValue(value) ? value : mergedValue[0];\n var postMergedValue = postState ? postState(chosenValue) : chosenValue; // ======================= Sync =======================\n\n useLayoutUpdateEffect(function () {\n setMergedValue(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 1),\n prevValue = _ref3[0];\n\n return [value, Source.PROP, prevValue];\n });\n }, [value]); // ====================== Update ======================\n\n var changeEventPrevRef = React.useRef();\n var triggerChange = useEvent(function (updater, ignoreDestroy) {\n setMergedValue(function (prev) {\n var _prev = _slicedToArray(prev, 3),\n prevValue = _prev[0],\n prevSource = _prev[1],\n prevPrevValue = _prev[2];\n\n var nextValue = typeof updater === 'function' ? updater(prevValue) : updater; // Do nothing if value not change\n\n if (nextValue === prevValue) {\n return prev;\n } // Use prev prev value if is in a batch update to avoid missing data\n\n\n var overridePrevValue = prevSource === Source.INNER && changeEventPrevRef.current !== prevPrevValue ? prevPrevValue : prevValue;\n return [nextValue, Source.INNER, overridePrevValue];\n }, ignoreDestroy);\n }); // ====================== Change ======================\n\n var onChangeFn = useEvent(onChange);\n useLayoutEffect(function () {\n var _mergedValue = _slicedToArray(mergedValue, 3),\n current = _mergedValue[0],\n source = _mergedValue[1],\n prev = _mergedValue[2];\n\n if (current !== prev && source === Source.INNER) {\n onChangeFn(current, prev);\n changeEventPrevRef.current = prev;\n }\n }, [mergedValue]);\n return [postMergedValue, triggerChange];\n}","import * as glMatrix from \"./common.js\";\n/**\n * 3x3 Matrix\n * @module mat3\n */\n\n/**\n * Creates a new identity mat3\n *\n * @returns {mat3} a new 3x3 matrix\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(9);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n }\n\n out[0] = 1;\n out[4] = 1;\n out[8] = 1;\n return out;\n}\n/**\n * Copies the upper-left 3x3 values into the given mat3.\n *\n * @param {mat3} out the receiving 3x3 matrix\n * @param {ReadonlyMat4} a the source 4x4 matrix\n * @returns {mat3} out\n */\n\nexport function fromMat4(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[4];\n out[4] = a[5];\n out[5] = a[6];\n out[6] = a[8];\n out[7] = a[9];\n out[8] = a[10];\n return out;\n}\n/**\n * Creates a new mat3 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat3} a matrix to clone\n * @returns {mat3} a new 3x3 matrix\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(9);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\n * Copy the values from one mat3 to another\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\n * Create a new mat3 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} A new mat3\n */\n\nexport function fromValues(m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n var out = new glMatrix.ARRAY_TYPE(9);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n/**\n * Set the components of a mat3 to the given values\n *\n * @param {mat3} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} out\n */\n\nexport function set(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n/**\n * Set a mat3 to the identity matrix\n *\n * @param {mat3} out the receiving matrix\n * @returns {mat3} out\n */\n\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\n * Transpose the values of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\n\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n var a01 = a[1],\n a02 = a[2],\n a12 = a[5];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a01;\n out[5] = a[7];\n out[6] = a02;\n out[7] = a12;\n } else {\n out[0] = a[0];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a[1];\n out[4] = a[4];\n out[5] = a[7];\n out[6] = a[2];\n out[7] = a[5];\n out[8] = a[8];\n }\n\n return out;\n}\n/**\n * Inverts a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\n\nexport function invert(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n var b01 = a22 * a11 - a12 * a21;\n var b11 = -a22 * a10 + a12 * a20;\n var b21 = a21 * a10 - a11 * a20; // Calculate the determinant\n\n var det = a00 * b01 + a01 * b11 + a02 * b21;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = b01 * det;\n out[1] = (-a22 * a01 + a02 * a21) * det;\n out[2] = (a12 * a01 - a02 * a11) * det;\n out[3] = b11 * det;\n out[4] = (a22 * a00 - a02 * a20) * det;\n out[5] = (-a12 * a00 + a02 * a10) * det;\n out[6] = b21 * det;\n out[7] = (-a21 * a00 + a01 * a20) * det;\n out[8] = (a11 * a00 - a01 * a10) * det;\n return out;\n}\n/**\n * Calculates the adjugate of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\n\nexport function adjoint(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n out[0] = a11 * a22 - a12 * a21;\n out[1] = a02 * a21 - a01 * a22;\n out[2] = a01 * a12 - a02 * a11;\n out[3] = a12 * a20 - a10 * a22;\n out[4] = a00 * a22 - a02 * a20;\n out[5] = a02 * a10 - a00 * a12;\n out[6] = a10 * a21 - a11 * a20;\n out[7] = a01 * a20 - a00 * a21;\n out[8] = a00 * a11 - a01 * a10;\n return out;\n}\n/**\n * Calculates the determinant of a mat3\n *\n * @param {ReadonlyMat3} a the source matrix\n * @returns {Number} determinant of a\n */\n\nexport function determinant(a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);\n}\n/**\n * Multiplies two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\n\nexport function multiply(out, a, b) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n var b00 = b[0],\n b01 = b[1],\n b02 = b[2];\n var b10 = b[3],\n b11 = b[4],\n b12 = b[5];\n var b20 = b[6],\n b21 = b[7],\n b22 = b[8];\n out[0] = b00 * a00 + b01 * a10 + b02 * a20;\n out[1] = b00 * a01 + b01 * a11 + b02 * a21;\n out[2] = b00 * a02 + b01 * a12 + b02 * a22;\n out[3] = b10 * a00 + b11 * a10 + b12 * a20;\n out[4] = b10 * a01 + b11 * a11 + b12 * a21;\n out[5] = b10 * a02 + b11 * a12 + b12 * a22;\n out[6] = b20 * a00 + b21 * a10 + b22 * a20;\n out[7] = b20 * a01 + b21 * a11 + b22 * a21;\n out[8] = b20 * a02 + b21 * a12 + b22 * a22;\n return out;\n}\n/**\n * Translate a mat3 by the given vector\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to translate\n * @param {ReadonlyVec2} v vector to translate by\n * @returns {mat3} out\n */\n\nexport function translate(out, a, v) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a10 = a[3],\n a11 = a[4],\n a12 = a[5],\n a20 = a[6],\n a21 = a[7],\n a22 = a[8],\n x = v[0],\n y = v[1];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a10;\n out[4] = a11;\n out[5] = a12;\n out[6] = x * a00 + y * a10 + a20;\n out[7] = x * a01 + y * a11 + a21;\n out[8] = x * a02 + y * a12 + a22;\n return out;\n}\n/**\n * Rotates a mat3 by the given angle\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\n\nexport function rotate(out, a, rad) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a10 = a[3],\n a11 = a[4],\n a12 = a[5],\n a20 = a[6],\n a21 = a[7],\n a22 = a[8],\n s = Math.sin(rad),\n c = Math.cos(rad);\n out[0] = c * a00 + s * a10;\n out[1] = c * a01 + s * a11;\n out[2] = c * a02 + s * a12;\n out[3] = c * a10 - s * a00;\n out[4] = c * a11 - s * a01;\n out[5] = c * a12 - s * a02;\n out[6] = a20;\n out[7] = a21;\n out[8] = a22;\n return out;\n}\n/**\n * Scales the mat3 by the dimensions in the given vec2\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to rotate\n * @param {ReadonlyVec2} v the vec2 to scale the matrix by\n * @returns {mat3} out\n **/\n\nexport function scale(out, a, v) {\n var x = v[0],\n y = v[1];\n out[0] = x * a[0];\n out[1] = x * a[1];\n out[2] = x * a[2];\n out[3] = y * a[3];\n out[4] = y * a[4];\n out[5] = y * a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\n * Creates a matrix from a vector translation\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.translate(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Translation vector\n * @returns {mat3} out\n */\n\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = v[0];\n out[7] = v[1];\n out[8] = 1;\n return out;\n}\n/**\n * Creates a matrix from a given angle\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.rotate(dest, dest, rad);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\n\nexport function fromRotation(out, rad) {\n var s = Math.sin(rad),\n c = Math.cos(rad);\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = -s;\n out[4] = c;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.scale(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Scaling vector\n * @returns {mat3} out\n */\n\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = v[1];\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\n * Copies the values from a mat2d into a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat2d} a the matrix to copy\n * @returns {mat3} out\n **/\n\nexport function fromMat2d(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = 0;\n out[3] = a[2];\n out[4] = a[3];\n out[5] = 0;\n out[6] = a[4];\n out[7] = a[5];\n out[8] = 1;\n return out;\n}\n/**\n * Calculates a 3x3 matrix from the given quaternion\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat3} out\n */\n\nexport function fromQuat(out, q) {\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - yy - zz;\n out[3] = yx - wz;\n out[6] = zx + wy;\n out[1] = yx + wz;\n out[4] = 1 - xx - zz;\n out[7] = zy - wx;\n out[2] = zx - wy;\n out[5] = zy + wx;\n out[8] = 1 - xx - yy;\n return out;\n}\n/**\n * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyMat4} a Mat4 to derive the normal matrix from\n *\n * @returns {mat3} out\n */\n\nexport function normalFromMat4(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n return out;\n}\n/**\n * Generates a 2D projection matrix with the given bounds\n *\n * @param {mat3} out mat3 frustum matrix will be written into\n * @param {number} width Width of your gl context\n * @param {number} height Height of gl context\n * @returns {mat3} out\n */\n\nexport function projection(out, width, height) {\n out[0] = 2 / width;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = -2 / height;\n out[5] = 0;\n out[6] = -1;\n out[7] = 1;\n out[8] = 1;\n return out;\n}\n/**\n * Returns a string representation of a mat3\n *\n * @param {ReadonlyMat3} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\n\nexport function str(a) {\n return \"mat3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \")\";\n}\n/**\n * Returns Frobenius norm of a mat3\n *\n * @param {ReadonlyMat3} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\n\nexport function frob(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]);\n}\n/**\n * Adds two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n return out;\n}\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n return out;\n}\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat3} out\n */\n\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n return out;\n}\n/**\n * Adds two mat3's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat3} out the receiving vector\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat3} out\n */\n\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n return out;\n}\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8];\n}\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3],\n a4 = a[4],\n a5 = a[5],\n a6 = a[6],\n a7 = a[7],\n a8 = a[8];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8));\n}\n/**\n * Alias for {@link mat3.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link mat3.subtract}\n * @function\n */\n\nexport var sub = subtract;","import { ext, vec2, vec3 } from '@antv/matrix-util';\nvar identityMatrix = [1, 0, 0, 0, 1, 0, 0, 0, 1];\nexport function getMatrixByAngle(point, angle, matrix) {\n if (matrix === void 0) {\n matrix = identityMatrix;\n }\n\n if (!angle) {\n // 角度为 0 或者 null 时返回 null\n return null;\n }\n\n var m = ext.transform(matrix, [['t', -point.x, -point.y], ['r', angle], ['t', point.x, point.y]]);\n return m;\n}\nexport function getMatrixByTranslate(point, currentMatrix) {\n if (!point.x && !point.y) {\n // 0,0 或者 nan 的情况下返回 null\n return null;\n }\n\n return ext.transform(currentMatrix || identityMatrix, [['t', point.x, point.y]]);\n} // 从矩阵获取旋转的角度\n\nexport function getAngleByMatrix(matrix) {\n var xVector = [1, 0, 0];\n var out = [0, 0, 0];\n vec3.transformMat3(out, xVector, matrix);\n return Math.atan2(out[1], out[0]);\n} // 矩阵 * 向量\n\nfunction multiplyVec2(matrix, v) {\n var out = [0, 0];\n vec2.transformMat3(out, v, matrix);\n return out;\n}\n\nexport function applyMatrix2BBox(matrix, bbox) {\n var topLeft = multiplyVec2(matrix, [bbox.minX, bbox.minY]);\n var topRight = multiplyVec2(matrix, [bbox.maxX, bbox.minY]);\n var bottomLeft = multiplyVec2(matrix, [bbox.minX, bbox.maxY]);\n var bottomRight = multiplyVec2(matrix, [bbox.maxX, bbox.maxY]);\n var minX = Math.min(topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]);\n var maxX = Math.max(topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]);\n var minY = Math.min(topLeft[1], topRight[1], bottomLeft[1], bottomRight[1]);\n var maxY = Math.max(topLeft[1], topRight[1], bottomLeft[1], bottomRight[1]);\n return {\n x: minX,\n y: minY,\n minX: minX,\n minY: minY,\n maxX: maxX,\n maxY: maxY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nexport function applyRotate(shape, rotate, x, y) {\n if (rotate) {\n var matrix = getMatrixByAngle({\n x: x,\n y: y\n }, rotate, shape.getMatrix());\n shape.setMatrix(matrix);\n }\n}\nexport function applyTranslate(shape, x, y) {\n var translateMatrix = getMatrixByTranslate({\n x: x,\n y: y\n });\n shape.attr('matrix', translateMatrix);\n}","export var CONTAINER_CLASS = 'g2-tooltip';\nexport var TITLE_CLASS = 'g2-tooltip-title';\nexport var LIST_CLASS = 'g2-tooltip-list';\nexport var LIST_ITEM_CLASS = 'g2-tooltip-list-item';\nexport var MARKER_CLASS = 'g2-tooltip-marker';\nexport var VALUE_CLASS = 'g2-tooltip-value';\nexport var NAME_CLASS = 'g2-tooltip-name';\nexport var CROSSHAIR_X = 'g2-tooltip-crosshair-x';\nexport var CROSSHAIR_Y = 'g2-tooltip-crosshair-y';","import { get } from '@antv/util';\n/**\n * 获得 tooltip 的映射信息\n * @param tooltip\n * @param defaultFields\n */\n\nexport function getTooltipMapping(tooltip, defaultFields) {\n if (tooltip === false) {\n return {\n fields: false\n };\n }\n\n var fields = get(tooltip, 'fields');\n var formatter = get(tooltip, 'formatter');\n\n if (formatter && !fields) {\n fields = defaultFields;\n }\n\n return {\n fields: fields,\n formatter: formatter\n };\n}","import * as React from 'react';\nvar SizeContext = /*#__PURE__*/React.createContext(undefined);\nexport var SizeContextProvider = function SizeContextProvider(_ref) {\n var children = _ref.children,\n size = _ref.size;\n return /*#__PURE__*/React.createElement(SizeContext.Consumer, null, function (originSize) {\n return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: size || originSize\n }, children);\n });\n};\nexport default SizeContext;","import React, { useEffect } from 'react'\n\nexport const AdSlots = {\n BracketFooter: '5801250380',\n HomeHeader: '6929476408',\n LeaderboardHeader: '4319586949',\n LeaderboardFooter1: '9964351518',\n LeaderboardFooter2: '1501851912',\n LeaderboardFooter3: '7875688576',\n}\n\nconst displayAds = process.env['DISPLAY_ADS']\n\nexport default function AdSense({ slot }) {\n useEffect(() => {\n displayAds && (window.adsbygoogle = window.adsbygoogle || []).push({});\n\n // remove style tag on unmount\n return () => {\n document.getElementsByClassName('main-routes-container')?.[0]?.setAttribute('style', '')\n }\n }, [])\n\n return (<>\n {displayAds && }\n )\n}\n","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","// https://stackoverflow.com/questions/46176165/ways-to-get-string-literal-type-of-array-values-without-enum-overhead\nexport var tuple = function tuple() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args;\n};\nexport var tupleNum = function tupleNum() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args;\n};","/**\n * 需要从轴配置中提取出来作为 meta 的属性 key 列表\n */\nexport var AXIS_META_CONFIG_KEYS = ['type', 'alias', 'tickCount', 'tickInterval', 'min', 'max', 'nice', 'minLimit', 'maxLimit', // 坐标轴的范围\n'range', 'tickMethod', // type: 'log' 的底\n'base', // type: 'exp' 的指数\n'exponent', // time 类型的格式化\n'mask', // 是否同步\n'sync'];","var _a;\n\nexport var RANGE_VALUE = 'range';\nexport var RANGE_TYPE = 'type';\nexport var PERCENT = 'percent';\nexport var DEFAULT_COLOR = '#f0f0f0';\n/** 仪表盘由 指针和表盘 组成 */\n\nexport var INDICATEOR_VIEW_ID = 'indicator-view';\nexport var RANGE_VIEW_ID = 'range-view';\n/**\n * 仪表盘默认配置项\n */\n\nexport var DEFAULT_OPTIONS = {\n percent: 0,\n range: {\n ticks: []\n },\n innerRadius: 0.9,\n radius: 0.95,\n startAngle: -7 / 6 * Math.PI,\n endAngle: 1 / 6 * Math.PI,\n syncViewPadding: true,\n axis: {\n line: null,\n label: {\n offset: -24,\n style: {\n textAlign: 'center',\n textBaseline: 'middle'\n }\n },\n subTickLine: {\n length: -8\n },\n tickLine: {\n length: -12\n },\n grid: null\n },\n indicator: {\n pointer: {\n style: {\n lineWidth: 5,\n lineCap: 'round'\n }\n },\n pin: {\n style: {\n r: 9.75,\n lineWidth: 4.5,\n fill: '#fff'\n }\n }\n },\n statistic: {\n title: false\n },\n meta: (_a = {}, // 两个 view 的 scale 同步到 v 上\n _a[RANGE_VALUE] = {\n sync: 'v'\n }, _a[PERCENT] = {\n sync: 'v',\n tickCount: 5,\n tickInterval: 0.2\n }, _a),\n animation: false\n};","import React from 'react'\nimport { Spin } from 'antd'\n\nexport default function PageLoading() {\n return \n}\n","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\"; // ================= Transition =================\n// Event wrapper. Copy from react source code\n\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n return prefixes;\n}\n\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n\n return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\n\nif (canUseDOM()) {\n var _document$createEleme = document.createElement('div');\n\n style = _document$createEleme.style;\n}\n\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n\n return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n\n if (_typeof(transitionName) === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n\n return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';","import { useEffect, useLayoutEffect } from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\"; // It's safe to use `useLayoutEffect` but the warning is annoying\n\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { STEP_PREPARE, STEP_ACTIVE, STEP_START, STEP_ACTIVATED, STEP_NONE } from '../interface';\nimport useNextFrame from './useNextFrame';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nvar STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\n/** Skip current step */\n\nexport var SkipStep = false;\n/** Current step should be update in */\n\nexport var DoStep = true;\nexport function isActive(step) {\n return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, callback) {\n var _useState = useState(STEP_NONE),\n _useState2 = _slicedToArray(_useState, 2),\n step = _useState2[0],\n setStep = _useState2[1];\n\n var _useNextFrame = useNextFrame(),\n _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n nextFrame = _useNextFrame2[0],\n cancelNextFrame = _useNextFrame2[1];\n\n function startQueue() {\n setStep(STEP_PREPARE, true);\n }\n\n useIsomorphicLayoutEffect(function () {\n if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n var index = STEP_QUEUE.indexOf(step);\n var nextStep = STEP_QUEUE[index + 1];\n var result = callback(step);\n\n if (result === SkipStep) {\n // Skip when no needed\n setStep(nextStep, true);\n } else {\n // Do as frame for step update\n nextFrame(function (info) {\n function doNext() {\n // Skip since current queue is ood\n if (info.isCanceled()) return;\n setStep(nextStep, true);\n }\n\n if (result === true) {\n doNext();\n } else {\n // Only promise should be async\n Promise.resolve(result).then(doNext);\n }\n });\n }\n }\n }, [status, step]);\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [startQueue, step];\n});","import * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default (function () {\n var nextFrameRef = React.useRef(null);\n\n function cancelNextFrame() {\n raf.cancel(nextFrameRef.current);\n }\n\n function nextFrame(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n cancelNextFrame();\n var nextFrameId = raf(function () {\n if (delay <= 1) {\n callback({\n isCanceled: function isCanceled() {\n return nextFrameId !== nextFrameRef.current;\n }\n });\n } else {\n nextFrame(callback, delay - 1);\n }\n });\n nextFrameRef.current = nextFrameId;\n }\n\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [nextFrame, cancelNextFrame];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { STATUS_APPEAR, STATUS_NONE, STATUS_LEAVE, STATUS_ENTER, STEP_PREPARE, STEP_START, STEP_ACTIVE } from '../interface';\nimport useStepQueue, { DoStep, SkipStep, isActive } from './useStepQueue';\nimport useDomMotionEvents from './useDomMotionEvents';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n var _ref$motionEnter = _ref.motionEnter,\n motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n _ref$motionAppear = _ref.motionAppear,\n motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n _ref$motionLeave = _ref.motionLeave,\n motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n motionDeadline = _ref.motionDeadline,\n motionLeaveImmediately = _ref.motionLeaveImmediately,\n onAppearPrepare = _ref.onAppearPrepare,\n onEnterPrepare = _ref.onEnterPrepare,\n onLeavePrepare = _ref.onLeavePrepare,\n onAppearStart = _ref.onAppearStart,\n onEnterStart = _ref.onEnterStart,\n onLeaveStart = _ref.onLeaveStart,\n onAppearActive = _ref.onAppearActive,\n onEnterActive = _ref.onEnterActive,\n onLeaveActive = _ref.onLeaveActive,\n onAppearEnd = _ref.onAppearEnd,\n onEnterEnd = _ref.onEnterEnd,\n onLeaveEnd = _ref.onLeaveEnd,\n onVisibleChanged = _ref.onVisibleChanged; // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n asyncVisible = _useState2[0],\n setAsyncVisible = _useState2[1];\n\n var _useState3 = useState(STATUS_NONE),\n _useState4 = _slicedToArray(_useState3, 2),\n status = _useState4[0],\n setStatus = _useState4[1];\n\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n style = _useState6[0],\n setStyle = _useState6[1];\n\n var mountedRef = useRef(false);\n var deadlineRef = useRef(null); // =========================== Dom Node ===========================\n\n function getDomElement() {\n return getElement();\n } // ========================== Motion End ==========================\n\n\n var activeRef = useRef(false);\n\n function onInternalMotionEnd(event) {\n var element = getDomElement();\n\n if (event && !event.deadline && event.target !== element) {\n // event exists\n // not initiated by deadline\n // transitionEnd not fired by inner elements\n return;\n }\n\n var currentActive = activeRef.current;\n var canEnd;\n\n if (status === STATUS_APPEAR && currentActive) {\n canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n } else if (status === STATUS_ENTER && currentActive) {\n canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n } else if (status === STATUS_LEAVE && currentActive) {\n canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n } // Only update status when `canEnd` and not destroyed\n\n\n if (status !== STATUS_NONE && currentActive && canEnd !== false) {\n setStatus(STATUS_NONE, true);\n setStyle(null, true);\n }\n }\n\n var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n patchMotionEvents = _useDomMotionEvents2[0]; // ============================= Step =============================\n\n\n var eventHandlers = React.useMemo(function () {\n var _ref2, _ref3, _ref4;\n\n switch (status) {\n case STATUS_APPEAR:\n return _ref2 = {}, _defineProperty(_ref2, STEP_PREPARE, onAppearPrepare), _defineProperty(_ref2, STEP_START, onAppearStart), _defineProperty(_ref2, STEP_ACTIVE, onAppearActive), _ref2;\n\n case STATUS_ENTER:\n return _ref3 = {}, _defineProperty(_ref3, STEP_PREPARE, onEnterPrepare), _defineProperty(_ref3, STEP_START, onEnterStart), _defineProperty(_ref3, STEP_ACTIVE, onEnterActive), _ref3;\n\n case STATUS_LEAVE:\n return _ref4 = {}, _defineProperty(_ref4, STEP_PREPARE, onLeavePrepare), _defineProperty(_ref4, STEP_START, onLeaveStart), _defineProperty(_ref4, STEP_ACTIVE, onLeaveActive), _ref4;\n\n default:\n return {};\n }\n }, [status]);\n\n var _useStepQueue = useStepQueue(status, function (newStep) {\n // Only prepare step can be skip\n if (newStep === STEP_PREPARE) {\n var onPrepare = eventHandlers[STEP_PREPARE];\n\n if (!onPrepare) {\n return SkipStep;\n }\n\n return onPrepare(getDomElement());\n } // Rest step is sync update\n // Rest step is sync update\n\n\n if (step in eventHandlers) {\n var _eventHandlers$step;\n\n setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n }\n\n if (step === STEP_ACTIVE) {\n // Patch events when motion needed\n patchMotionEvents(getDomElement());\n\n if (motionDeadline > 0) {\n clearTimeout(deadlineRef.current);\n deadlineRef.current = setTimeout(function () {\n onInternalMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n }\n\n return DoStep;\n }),\n _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n startStep = _useStepQueue2[0],\n step = _useStepQueue2[1];\n\n var active = isActive(step);\n activeRef.current = active; // ============================ Status ============================\n // Update with new status\n\n useIsomorphicLayoutEffect(function () {\n setAsyncVisible(visible);\n var isMounted = mountedRef.current;\n mountedRef.current = true;\n\n if (!supportMotion) {\n return;\n }\n\n var nextStatus; // Appear\n\n if (!isMounted && visible && motionAppear) {\n nextStatus = STATUS_APPEAR;\n } // Enter\n\n\n if (isMounted && visible && motionEnter) {\n nextStatus = STATUS_ENTER;\n } // Leave\n\n\n if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n nextStatus = STATUS_LEAVE;\n } // Update to next status\n\n\n if (nextStatus) {\n setStatus(nextStatus);\n startStep();\n }\n }, [visible]); // ============================ Effect ============================\n // Reset when motion changed\n\n useEffect(function () {\n if ( // Cancel appear\n status === STATUS_APPEAR && !motionAppear || // Cancel enter\n status === STATUS_ENTER && !motionEnter || // Cancel leave\n status === STATUS_LEAVE && !motionLeave) {\n setStatus(STATUS_NONE);\n }\n }, [motionAppear, motionEnter, motionLeave]);\n useEffect(function () {\n return function () {\n mountedRef.current = false;\n clearTimeout(deadlineRef.current);\n };\n }, []); // Trigger `onVisibleChanged`\n\n var firstMountChangeRef = React.useRef(false);\n useEffect(function () {\n // [visible & motion not end] => [!visible & motion end] still need trigger onVisibleChanged\n if (asyncVisible) {\n firstMountChangeRef.current = true;\n }\n\n if (asyncVisible !== undefined && status === STATUS_NONE) {\n // Skip first render is invisible since it's nothing changed\n if (firstMountChangeRef.current || asyncVisible) {\n onVisibleChanged === null || onVisibleChanged === void 0 ? void 0 : onVisibleChanged(asyncVisible);\n }\n\n firstMountChangeRef.current = true;\n }\n }, [asyncVisible, status]); // ============================ Styles ============================\n\n var mergedStyle = style;\n\n if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n mergedStyle = _objectSpread({\n transition: 'none'\n }, mergedStyle);\n }\n\n return [status, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from '../util/motion';\nexport default (function (callback) {\n var cacheElementRef = useRef(); // Cache callback\n\n var callbackRef = useRef(callback);\n callbackRef.current = callback; // Internal motion event handler\n\n var onInternalMotionEnd = React.useCallback(function (event) {\n callbackRef.current(event);\n }, []); // Remove events\n\n function removeMotionEvents(element) {\n if (element) {\n element.removeEventListener(transitionEndName, onInternalMotionEnd);\n element.removeEventListener(animationEndName, onInternalMotionEnd);\n }\n } // Patch events\n\n\n function patchMotionEvents(element) {\n if (cacheElementRef.current && cacheElementRef.current !== element) {\n removeMotionEvents(cacheElementRef.current);\n }\n\n if (element && element !== cacheElementRef.current) {\n element.addEventListener(transitionEndName, onInternalMotionEnd);\n element.addEventListener(animationEndName, onInternalMotionEnd); // Save as cache in case dom removed trigger by `motionDeadline`\n\n cacheElementRef.current = element;\n }\n } // Clean up when removed\n\n\n React.useEffect(function () {\n return function () {\n removeMotionEvents(cacheElementRef.current);\n };\n }, []);\n return [patchMotionEvents, removeMotionEvents];\n});","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n\n var _super = _createSuper(DomWrapper);\n\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return DomWrapper;\n}(React.Component);\n\nexport default DomWrapper;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\n\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef, supportRef } from \"rc-util/es/ref\";\nimport classNames from 'classnames';\nimport { getTransitionName, supportTransition } from './util/motion';\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from './interface';\nimport useStatus from './hooks/useStatus';\nimport DomWrapper from './DomWrapper';\nimport { isActive } from './hooks/useStepQueue';\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\n\nexport function genCSSMotion(config) {\n var transitionSupport = config;\n\n if (_typeof(config) === 'object') {\n transitionSupport = config.transitionSupport;\n }\n\n function isSupportTransition(props) {\n return !!(props.motionName && transitionSupport);\n }\n\n var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n _props$removeOnLeave = props.removeOnLeave,\n removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n forceRender = props.forceRender,\n children = props.children,\n motionName = props.motionName,\n leavedClassName = props.leavedClassName,\n eventProps = props.eventProps;\n var supportMotion = isSupportTransition(props); // Ref to the react node, it may be a HTMLElement\n\n var nodeRef = useRef(); // Ref to the dom wrapper in case ref can not pass to HTMLElement\n\n var wrapperNodeRef = useRef();\n\n function getDomElement() {\n try {\n // Here we're avoiding call for findDOMNode since it's deprecated\n // in strict mode. We're calling it only when node ref is not\n // an instance of DOM HTMLElement. Otherwise use\n // findDOMNode as a final resort\n return nodeRef.current instanceof HTMLElement ? nodeRef.current : findDOMNode(wrapperNodeRef.current);\n } catch (e) {\n // Only happen when `motionDeadline` trigger but element removed.\n return null;\n }\n }\n\n var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n _useStatus2 = _slicedToArray(_useStatus, 4),\n status = _useStatus2[0],\n statusStep = _useStatus2[1],\n statusStyle = _useStatus2[2],\n mergedVisible = _useStatus2[3]; // Record whether content has rendered\n // Will return null for un-rendered even when `removeOnLeave={false}`\n\n\n var renderedRef = React.useRef(mergedVisible);\n\n if (mergedVisible) {\n renderedRef.current = true;\n } // ====================== Refs ======================\n\n\n var setNodeRef = React.useCallback(function (node) {\n nodeRef.current = node;\n fillRef(ref, node);\n }, [ref]); // ===================== Render =====================\n\n var motionChildren;\n\n var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n visible: visible\n });\n\n if (!children) {\n // No children\n motionChildren = null;\n } else if (status === STATUS_NONE || !isSupportTransition(props)) {\n // Stable children\n if (mergedVisible) {\n motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n } else if (!removeOnLeave && renderedRef.current) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: leavedClassName\n }), setNodeRef);\n } else if (forceRender) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n style: {\n display: 'none'\n }\n }), setNodeRef);\n } else {\n motionChildren = null;\n }\n } else {\n var _classNames; // In motion\n\n\n var statusSuffix;\n\n if (statusStep === STEP_PREPARE) {\n statusSuffix = 'prepare';\n } else if (isActive(statusStep)) {\n statusSuffix = 'active';\n } else if (statusStep === STEP_START) {\n statusSuffix = 'start';\n }\n\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: classNames(getTransitionName(motionName, status), (_classNames = {}, _defineProperty(_classNames, getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix)), statusSuffix), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)),\n style: statusStyle\n }), setNodeRef);\n } // Auto inject ref if child node not have `ref` props\n\n\n if ( /*#__PURE__*/ /*#__PURE__*/React.isValidElement(motionChildren) && supportRef(motionChildren)) {\n var _motionChildren = motionChildren,\n originNodeRef = _motionChildren.ref;\n\n if (!originNodeRef) {\n motionChildren = /*#__PURE__*/React.cloneElement(motionChildren, {\n ref: setNodeRef\n });\n }\n }\n\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperNodeRef\n }, motionChildren);\n });\n CSSMotion.displayName = 'CSSMotion';\n return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n var keyObj;\n\n if (key && _typeof(key) === 'object' && 'key' in key) {\n keyObj = key;\n } else {\n keyObj = {\n key: key\n };\n }\n\n return _objectSpread(_objectSpread({}, keyObj), {}, {\n key: String(keyObj.key)\n });\n}\nexport function parseKeys() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var list = [];\n var currentIndex = 0;\n var currentLen = currentKeys.length;\n var prevKeyObjects = parseKeys(prevKeys);\n var currentKeyObjects = parseKeys(currentKeys); // Check prev keys to insert or keep\n\n prevKeyObjects.forEach(function (keyObj) {\n var hit = false;\n\n for (var i = currentIndex; i < currentLen; i += 1) {\n var currentKeyObj = currentKeyObjects[i];\n\n if (currentKeyObj.key === keyObj.key) {\n // New added keys should add before current key\n if (currentIndex < i) {\n list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n currentIndex = i;\n }\n\n list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n status: STATUS_KEEP\n }));\n currentIndex += 1;\n hit = true;\n break;\n }\n } // If not hit, it means key is removed\n\n\n if (!hit) {\n list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n status: STATUS_REMOVE\n }));\n }\n }); // Add rest to the list\n\n if (currentIndex < currentLen) {\n list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n }\n /**\n * Merge same key when it remove and add again:\n * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n */\n\n\n var keys = {};\n list.forEach(function (_ref) {\n var key = _ref.key;\n keys[key] = (keys[key] || 0) + 1;\n });\n var duplicatedKeys = Object.keys(keys).filter(function (key) {\n return keys[key] > 1;\n });\n duplicatedKeys.forEach(function (matchKey) {\n // Remove `STATUS_REMOVE` node.\n list = list.filter(function (_ref2) {\n var key = _ref2.key,\n status = _ref2.status;\n return key !== matchKey || status !== STATUS_REMOVE;\n }); // Update `STATUS_ADD` to `STATUS_KEEP`\n\n list.forEach(function (node) {\n if (node.key === matchKey) {\n // eslint-disable-next-line no-param-reassign\n node.status = STATUS_KEEP;\n }\n });\n });\n return list;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"component\", \"children\", \"onVisibleChanged\", \"onAllRemoved\"],\n _excluded2 = [\"status\"];\n/* eslint react/prop-types: 0 */\n\nimport * as React from 'react';\nimport OriginCSSMotion from './CSSMotion';\nimport { supportTransition } from './util/motion';\nimport { STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED, diffKeys, parseKeys } from './util/diff';\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n/**\n * Generate a CSSMotionList component with config\n * @param transitionSupport No need since CSSMotionList no longer depends on transition support\n * @param CSSMotion CSSMotion component\n */\n\nexport function genCSSMotionList(transitionSupport) {\n var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion;\n\n var CSSMotionList = /*#__PURE__*/function (_React$Component) {\n _inherits(CSSMotionList, _React$Component);\n\n var _super = _createSuper(CSSMotionList);\n\n function CSSMotionList() {\n var _this;\n\n _classCallCheck(this, CSSMotionList);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n keyEntities: []\n };\n\n _this.removeKey = function (removeKey) {\n var keyEntities = _this.state.keyEntities;\n var nextKeyEntities = keyEntities.map(function (entity) {\n if (entity.key !== removeKey) return entity;\n return _objectSpread(_objectSpread({}, entity), {}, {\n status: STATUS_REMOVED\n });\n });\n\n _this.setState({\n keyEntities: nextKeyEntities\n });\n\n return nextKeyEntities.filter(function (_ref) {\n var status = _ref.status;\n return status !== STATUS_REMOVED;\n }).length;\n };\n\n return _this;\n }\n\n _createClass(CSSMotionList, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var keyEntities = this.state.keyEntities;\n\n var _this$props = this.props,\n component = _this$props.component,\n children = _this$props.children,\n _onVisibleChanged = _this$props.onVisibleChanged,\n onAllRemoved = _this$props.onAllRemoved,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n\n var Component = component || React.Fragment;\n var motionProps = {};\n MOTION_PROP_NAMES.forEach(function (prop) {\n motionProps[prop] = restProps[prop];\n delete restProps[prop];\n });\n delete restProps.keys;\n return /*#__PURE__*/React.createElement(Component, restProps, keyEntities.map(function (_ref2) {\n var status = _ref2.status,\n eventProps = _objectWithoutProperties(_ref2, _excluded2);\n\n var visible = status === STATUS_ADD || status === STATUS_KEEP;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motionProps, {\n key: eventProps.key,\n visible: visible,\n eventProps: eventProps,\n onVisibleChanged: function onVisibleChanged(changedVisible) {\n _onVisibleChanged === null || _onVisibleChanged === void 0 ? void 0 : _onVisibleChanged(changedVisible, {\n key: eventProps.key\n });\n\n if (!changedVisible) {\n var restKeysCount = _this2.removeKey(eventProps.key);\n\n if (restKeysCount === 0 && onAllRemoved) {\n onAllRemoved();\n }\n }\n }\n }), children);\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref3, _ref4) {\n var keys = _ref3.keys;\n var keyEntities = _ref4.keyEntities;\n var parsedKeyObjects = parseKeys(keys);\n var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n return {\n keyEntities: mixedKeyEntities.filter(function (entity) {\n var prevEntity = keyEntities.find(function (_ref5) {\n var key = _ref5.key;\n return entity.key === key;\n }); // Remove if already mark as removed\n\n if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n return false;\n }\n\n return true;\n })\n };\n } // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info.\n\n }]);\n\n return CSSMotionList;\n }(React.Component);\n\n CSSMotionList.defaultProps = {\n component: 'div'\n };\n return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","import CSSMotion from './CSSMotion';\nimport CSSMotionList from './CSSMotionList';\nexport { CSSMotionList };\nexport default CSSMotion;","import _extends from '@babel/runtime/helpers/esm/extends';\n/**\r\n * Actions represent the type of change to a location value.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#action\r\n */\n\nvar Action;\n\n(function (Action) {\n /**\r\n * A POP indicates a change to an arbitrary index in the history stack, such\r\n * as a back or forward navigation. It does not describe the direction of the\r\n * navigation, only that the current index changed.\r\n *\r\n * Note: This is the default action for newly created history objects.\r\n */\n Action[\"Pop\"] = \"POP\";\n /**\r\n * A PUSH indicates a new entry being added to the history stack, such as when\r\n * a link is clicked and a new page loads. When this happens, all subsequent\r\n * entries in the stack are lost.\r\n */\n\n Action[\"Push\"] = \"PUSH\";\n /**\r\n * A REPLACE indicates the entry at the current index in the history stack\r\n * being replaced by a new one.\r\n */\n\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\n\nvar readOnly = process.env.NODE_ENV !== \"production\" ? function (obj) {\n return Object.freeze(obj);\n} : function (obj) {\n return obj;\n};\n\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== 'undefined') console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nvar BeforeUnloadEventType = 'beforeunload';\nvar HashChangeEventType = 'hashchange';\nvar PopStateEventType = 'popstate';\n/**\r\n * Browser history stores the location in regular URLs. This is the standard for\r\n * most web apps, but it requires some configuration on the server to ensure you\r\n * serve the same app at multiple URLs.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\r\n */\n\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$window = _options.window,\n window = _options$window === void 0 ? document.defaultView : _options$window;\n var globalHistory = window.history;\n\n function getIndexAndLocation() {\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var state = globalHistory.state || {};\n return [state.idx, readOnly({\n pathname: pathname,\n search: search,\n hash: hash,\n state: state.usr || null,\n key: state.key || 'default'\n })];\n }\n\n var blockedPopTx = null;\n\n function handlePop() {\n if (blockedPopTx) {\n blockers.call(blockedPopTx);\n blockedPopTx = null;\n } else {\n var nextAction = Action.Pop;\n\n var _getIndexAndLocation = getIndexAndLocation(),\n nextIndex = _getIndexAndLocation[0],\n nextLocation = _getIndexAndLocation[1];\n\n if (blockers.length) {\n if (nextIndex != null) {\n var delta = index - nextIndex;\n\n if (delta) {\n // Revert the POP\n blockedPopTx = {\n action: nextAction,\n location: nextLocation,\n retry: function retry() {\n go(delta * -1);\n }\n };\n go(delta);\n }\n } else {\n // Trying to POP to a location with no index. We did not create\n // this location, so we can't effectively block the navigation.\n process.env.NODE_ENV !== \"production\" ? warning(false, // TODO: Write up a doc that explains our blocking strategy in\n // detail and link to it here so people can understand better what\n // is going on and how to avoid it.\n \"You are trying to block a POP navigation to a location that was not \" + \"created by the history library. The block will fail silently in \" + \"production, but in general you should do all navigation with the \" + \"history library (instead of using window.history.pushState directly) \" + \"to avoid this situation.\") : void 0;\n }\n } else {\n applyTx(nextAction);\n }\n }\n }\n\n window.addEventListener(PopStateEventType, handlePop);\n var action = Action.Pop;\n\n var _getIndexAndLocation2 = getIndexAndLocation(),\n index = _getIndexAndLocation2[0],\n location = _getIndexAndLocation2[1];\n\n var listeners = createEvents();\n var blockers = createEvents();\n\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), '');\n }\n\n function createHref(to) {\n return typeof to === 'string' ? to : createPath(to);\n } // state defaults to `null` because `window.history.state` does\n\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n hash: '',\n search: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function getHistoryStateAndUrl(nextLocation, index) {\n return [{\n usr: nextLocation.state,\n key: nextLocation.key,\n idx: index\n }, createHref(nextLocation)];\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction) {\n action = nextAction;\n\n var _getIndexAndLocation3 = getIndexAndLocation();\n\n index = _getIndexAndLocation3[0];\n location = _getIndexAndLocation3[1];\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr = getHistoryStateAndUrl(nextLocation, index + 1),\n historyState = _getHistoryStateAndUr[0],\n url = _getHistoryStateAndUr[1]; // TODO: Support forced reloading\n // try...catch because iOS limits us to 100 pushState calls :/\n\n\n try {\n globalHistory.pushState(historyState, '', url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n applyTx(nextAction);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr2 = getHistoryStateAndUrl(nextLocation, index),\n historyState = _getHistoryStateAndUr2[0],\n url = _getHistoryStateAndUr2[1]; // TODO: Support forced reloading\n\n\n globalHistory.replaceState(historyState, '', url);\n applyTx(nextAction);\n }\n }\n\n function go(delta) {\n globalHistory.go(delta);\n }\n\n var history = {\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n var unblock = blockers.push(blocker);\n\n if (blockers.length === 1) {\n window.addEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n\n return function () {\n unblock(); // Remove the beforeunload listener so the document may\n // still be salvageable in the pagehide event.\n // See https://html.spec.whatwg.org/#unloading-documents\n\n if (!blockers.length) {\n window.removeEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n };\n }\n };\n return history;\n}\n/**\r\n * Hash history stores the location in window.location.hash. This makes it ideal\r\n * for situations where you don't want to send the location to the server for\r\n * some reason, either because you do cannot configure it or the URL space is\r\n * reserved for something else.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\r\n */\n\n\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options2 = options,\n _options2$window = _options2.window,\n window = _options2$window === void 0 ? document.defaultView : _options2$window;\n var globalHistory = window.history;\n\n function getIndexAndLocation() {\n var _parsePath = parsePath(window.location.hash.substr(1)),\n _parsePath$pathname = _parsePath.pathname,\n pathname = _parsePath$pathname === void 0 ? '/' : _parsePath$pathname,\n _parsePath$search = _parsePath.search,\n search = _parsePath$search === void 0 ? '' : _parsePath$search,\n _parsePath$hash = _parsePath.hash,\n hash = _parsePath$hash === void 0 ? '' : _parsePath$hash;\n\n var state = globalHistory.state || {};\n return [state.idx, readOnly({\n pathname: pathname,\n search: search,\n hash: hash,\n state: state.usr || null,\n key: state.key || 'default'\n })];\n }\n\n var blockedPopTx = null;\n\n function handlePop() {\n if (blockedPopTx) {\n blockers.call(blockedPopTx);\n blockedPopTx = null;\n } else {\n var nextAction = Action.Pop;\n\n var _getIndexAndLocation4 = getIndexAndLocation(),\n nextIndex = _getIndexAndLocation4[0],\n nextLocation = _getIndexAndLocation4[1];\n\n if (blockers.length) {\n if (nextIndex != null) {\n var delta = index - nextIndex;\n\n if (delta) {\n // Revert the POP\n blockedPopTx = {\n action: nextAction,\n location: nextLocation,\n retry: function retry() {\n go(delta * -1);\n }\n };\n go(delta);\n }\n } else {\n // Trying to POP to a location with no index. We did not create\n // this location, so we can't effectively block the navigation.\n process.env.NODE_ENV !== \"production\" ? warning(false, // TODO: Write up a doc that explains our blocking strategy in\n // detail and link to it here so people can understand better\n // what is going on and how to avoid it.\n \"You are trying to block a POP navigation to a location that was not \" + \"created by the history library. The block will fail silently in \" + \"production, but in general you should do all navigation with the \" + \"history library (instead of using window.history.pushState directly) \" + \"to avoid this situation.\") : void 0;\n }\n } else {\n applyTx(nextAction);\n }\n }\n }\n\n window.addEventListener(PopStateEventType, handlePop); // popstate does not fire on hashchange in IE 11 and old (trident) Edge\n // https://developer.mozilla.org/de/docs/Web/API/Window/popstate_event\n\n window.addEventListener(HashChangeEventType, function () {\n var _getIndexAndLocation5 = getIndexAndLocation(),\n nextLocation = _getIndexAndLocation5[1]; // Ignore extraneous hashchange events.\n\n\n if (createPath(nextLocation) !== createPath(location)) {\n handlePop();\n }\n });\n var action = Action.Pop;\n\n var _getIndexAndLocation6 = getIndexAndLocation(),\n index = _getIndexAndLocation6[0],\n location = _getIndexAndLocation6[1];\n\n var listeners = createEvents();\n var blockers = createEvents();\n\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), '');\n }\n\n function getBaseHref() {\n var base = document.querySelector('base');\n var href = '';\n\n if (base && base.getAttribute('href')) {\n var url = window.location.href;\n var hashIndex = url.indexOf('#');\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href;\n }\n\n function createHref(to) {\n return getBaseHref() + '#' + (typeof to === 'string' ? to : createPath(to));\n }\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n hash: '',\n search: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function getHistoryStateAndUrl(nextLocation, index) {\n return [{\n usr: nextLocation.state,\n key: nextLocation.key,\n idx: index\n }, createHref(nextLocation)];\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction) {\n action = nextAction;\n\n var _getIndexAndLocation7 = getIndexAndLocation();\n\n index = _getIndexAndLocation7[0];\n location = _getIndexAndLocation7[1];\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(nextLocation.pathname.charAt(0) === '/', \"Relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr3 = getHistoryStateAndUrl(nextLocation, index + 1),\n historyState = _getHistoryStateAndUr3[0],\n url = _getHistoryStateAndUr3[1]; // TODO: Support forced reloading\n // try...catch because iOS limits us to 100 pushState calls :/\n\n\n try {\n globalHistory.pushState(historyState, '', url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n applyTx(nextAction);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(nextLocation.pathname.charAt(0) === '/', \"Relative pathnames are not supported in hash history.replace(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr4 = getHistoryStateAndUrl(nextLocation, index),\n historyState = _getHistoryStateAndUr4[0],\n url = _getHistoryStateAndUr4[1]; // TODO: Support forced reloading\n\n\n globalHistory.replaceState(historyState, '', url);\n applyTx(nextAction);\n }\n }\n\n function go(delta) {\n globalHistory.go(delta);\n }\n\n var history = {\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n var unblock = blockers.push(blocker);\n\n if (blockers.length === 1) {\n window.addEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n\n return function () {\n unblock(); // Remove the beforeunload listener so the document may\n // still be salvageable in the pagehide event.\n // See https://html.spec.whatwg.org/#unloading-documents\n\n if (!blockers.length) {\n window.removeEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n };\n }\n };\n return history;\n}\n/**\r\n * Memory history stores the current location in memory. It is designed for use\r\n * in stateful non-browser environments like tests and React Native.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#creatememoryhistory\r\n */\n\n\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options3 = options,\n _options3$initialEntr = _options3.initialEntries,\n initialEntries = _options3$initialEntr === void 0 ? ['/'] : _options3$initialEntr,\n initialIndex = _options3.initialIndex;\n var entries = initialEntries.map(function (entry) {\n var location = readOnly(_extends({\n pathname: '/',\n search: '',\n hash: '',\n state: null,\n key: createKey()\n }, typeof entry === 'string' ? parsePath(entry) : entry));\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in createMemoryHistory({ initialEntries }) (invalid entry: \" + JSON.stringify(entry) + \")\") : void 0;\n return location;\n });\n var index = clamp(initialIndex == null ? entries.length - 1 : initialIndex, 0, entries.length - 1);\n var action = Action.Pop;\n var location = entries[index];\n var listeners = createEvents();\n var blockers = createEvents();\n\n function createHref(to) {\n return typeof to === 'string' ? to : createPath(to);\n }\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n search: '',\n hash: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction, nextLocation) {\n action = nextAction;\n location = nextLocation;\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in memory history.push(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n applyTx(nextAction, nextLocation);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in memory history.replace(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n entries[index] = nextLocation;\n applyTx(nextAction, nextLocation);\n }\n }\n\n function go(delta) {\n var nextIndex = clamp(index + delta, 0, entries.length - 1);\n var nextAction = Action.Pop;\n var nextLocation = entries[nextIndex];\n\n function retry() {\n go(delta);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n index = nextIndex;\n applyTx(nextAction, nextLocation);\n }\n }\n\n var history = {\n get index() {\n return index;\n },\n\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n return blockers.push(blocker);\n }\n };\n return history;\n} ////////////////////////////////////////////////////////////////////////////////\n// UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n\nfunction promptBeforeUnload(event) {\n // Cancel the event.\n event.preventDefault(); // Chrome (and legacy IE) requires returnValue to be set.\n\n event.returnValue = '';\n}\n\nfunction createEvents() {\n var handlers = [];\n return {\n get length() {\n return handlers.length;\n },\n\n push: function push(fn) {\n handlers.push(fn);\n return function () {\n handlers = handlers.filter(function (handler) {\n return handler !== fn;\n });\n };\n },\n call: function call(arg) {\n handlers.forEach(function (fn) {\n return fn && fn(arg);\n });\n }\n };\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\r\n * Creates a string URL path from the given pathname, search, and hash components.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createpath\r\n */\n\n\nfunction createPath(_ref) {\n var _ref$pathname = _ref.pathname,\n pathname = _ref$pathname === void 0 ? '/' : _ref$pathname,\n _ref$search = _ref.search,\n search = _ref$search === void 0 ? '' : _ref$search,\n _ref$hash = _ref.hash,\n hash = _ref$hash === void 0 ? '' : _ref$hash;\n if (search && search !== '?') pathname += search.charAt(0) === '?' ? search : '?' + search;\n if (hash && hash !== '#') pathname += hash.charAt(0) === '#' ? hash : '#' + hash;\n return pathname;\n}\n/**\r\n * Parses a string URL path into its separate pathname, search, and hash components.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#parsepath\r\n */\n\n\nfunction parsePath(path) {\n var parsedPath = {};\n\n if (path) {\n var hashIndex = path.indexOf('#');\n\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n var searchIndex = path.indexOf('?');\n\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport { Action, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, parsePath };","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function') {\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}","import * as React from 'react';\nimport canUseDom from '../Dom/canUseDom';\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\n\nvar useLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nexport default useLayoutEffect;\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useLayoutEffect(function () {\n if (!firstMountRef.current) {\n return callback();\n }\n }, deps); // We tell react that first mount has passed\n\n useLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\";\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return generator._invoke = function (innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }(innerFn, self, context), generator;\n }\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n exports.wrap = wrap;\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n\n reject(record.arg);\n }\n\n var previousPromise;\n\n this._invoke = function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n\n return next.value = undefined, next.done = !0, next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, \"constructor\", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","import React from 'react';\nimport { isFragment } from 'react-is';\nexport default function toArray(children) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ret = [];\n React.Children.forEach(children, function (child) {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","import React, { createContext, useContext } from 'react'\nimport { message } from 'antd'\n\nconst messageArray = ['success', 'info', 'warning', 'error']\n\nconst valueObject = () => {\n message.config({ duration: 5, top: 60 })\n\n const obj = {\n successToast: () => null,\n infoToast: () => null,\n warningToast: () => null,\n errorToast: () => null,\n }\n\n messageArray.forEach((i) => Object.assign(obj, { [`${i}Toast`]: (m) => message[i](m) }))\n\n return obj\n}\n\nconst ToastContext = createContext(valueObject())\n\nexport const ToastProvider = ({ children }) => {\n return {children}\n}\n\nexport function useToast() {\n return useContext(ToastContext)\n}\n","import { tuple } from './type'; // ================== Collapse Motion ==================\n\nvar getCollapsedHeight = function getCollapsedHeight() {\n return {\n height: 0,\n opacity: 0\n };\n};\n\nvar getRealHeight = function getRealHeight(node) {\n var scrollHeight = node.scrollHeight;\n return {\n height: scrollHeight,\n opacity: 1\n };\n};\n\nvar getCurrentHeight = function getCurrentHeight(node) {\n return {\n height: node ? node.offsetHeight : 0\n };\n};\n\nvar skipOpacityTransition = function skipOpacityTransition(_, event) {\n return (event === null || event === void 0 ? void 0 : event.deadline) === true || event.propertyName === 'height';\n};\n\nvar collapseMotion = {\n motionName: 'ant-motion-collapse',\n onAppearStart: getCollapsedHeight,\n onEnterStart: getCollapsedHeight,\n onAppearActive: getRealHeight,\n onEnterActive: getRealHeight,\n onLeaveStart: getCurrentHeight,\n onLeaveActive: getCollapsedHeight,\n onAppearEnd: skipOpacityTransition,\n onEnterEnd: skipOpacityTransition,\n onLeaveEnd: skipOpacityTransition,\n motionDeadline: 500\n};\nvar SelectPlacements = tuple('bottomLeft', 'bottomRight', 'topLeft', 'topRight');\n\nvar getTransitionDirection = function getTransitionDirection(placement) {\n if (placement !== undefined && (placement === 'topLeft' || placement === 'topRight')) {\n return \"slide-down\";\n }\n\n return \"slide-up\";\n};\n\nvar getTransitionName = function getTransitionName(rootPrefixCls, motion, transitionName) {\n if (transitionName !== undefined) {\n return transitionName;\n }\n\n return \"\".concat(rootPrefixCls, \"-\").concat(motion);\n};\n\nexport { getTransitionName, getTransitionDirection };\nexport default collapseMotion;","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import Button from './button';\nexport default Button;","import { __assign } from \"tslib\";\nimport { get } from '@antv/util';\nexport var X_FIELD = 'x';\nexport var Y_FIELD = 'y';\nexport var DEFAULT_TOOLTIP_OPTIONS = {\n showTitle: false,\n shared: true,\n showMarkers: false,\n customContent: function customContent(x, data) {\n return \"\" + get(data, [0, 'data', 'y'], 0);\n },\n containerTpl: '
',\n itemTpl: '{value}',\n domStyles: {\n 'g2-tooltip': {\n padding: '2px 4px',\n fontSize: '10px'\n }\n },\n showCrosshairs: true,\n crosshairs: {\n type: 'x'\n }\n};\n/**\n * 默认配置项\n */\n\nexport var DEFAULT_OPTIONS = {\n appendPadding: 2,\n tooltip: __assign({}, DEFAULT_TOOLTIP_OPTIONS),\n animation: {}\n};","import * as React from 'react';\nvar DisabledContext = /*#__PURE__*/React.createContext(false);\nexport var DisabledContextProvider = function DisabledContextProvider(_ref) {\n var children = _ref.children,\n disabled = _ref.disabled;\n var originDisabled = React.useContext(DisabledContext);\n return /*#__PURE__*/React.createElement(DisabledContext.Provider, {\n value: disabled || originDisabled\n }, children);\n};\nexport default DisabledContext;","import ResizeObserver from 'resize-observer-polyfill'; // =============================== Const ===============================\n\nvar elementListeners = new Map();\n\nfunction onResize(entities) {\n entities.forEach(function (entity) {\n var _elementListeners$get;\n\n var target = entity.target;\n (_elementListeners$get = elementListeners.get(target)) === null || _elementListeners$get === void 0 ? void 0 : _elementListeners$get.forEach(function (listener) {\n return listener(target);\n });\n });\n} // Note: ResizeObserver polyfill not support option to measure border-box resize\n\n\nvar resizeObserver = new ResizeObserver(onResize); // Dev env only\n\nexport var _el = process.env.NODE_ENV !== 'production' ? elementListeners : null; // eslint-disable-line\n\nexport var _rs = process.env.NODE_ENV !== 'production' ? onResize : null; // eslint-disable-line\n// ============================== Observe ==============================\n\nexport function observe(element, callback) {\n if (!elementListeners.has(element)) {\n elementListeners.set(element, new Set());\n resizeObserver.observe(element);\n }\n\n elementListeners.get(element).add(callback);\n}\nexport function unobserve(element, callback) {\n if (elementListeners.has(element)) {\n elementListeners.get(element)[\"delete\"](callback);\n\n if (!elementListeners.get(element).size) {\n resizeObserver.unobserve(element);\n elementListeners[\"delete\"](element);\n }\n }\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n/**\n * Fallback to findDOMNode if origin ref do not provide any dom element\n */\n\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n\n var _super = _createSuper(DomWrapper);\n\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return DomWrapper;\n}(React.Component);\n\nexport { DomWrapper as default };","import * as React from 'react';\nexport var CollectionContext = /*#__PURE__*/React.createContext(null);\n/**\n * Collect all the resize event from children ResizeObserver\n */\n\nexport function Collection(_ref) {\n var children = _ref.children,\n onBatchResize = _ref.onBatchResize;\n var resizeIdRef = React.useRef(0);\n var resizeInfosRef = React.useRef([]);\n var onCollectionResize = React.useContext(CollectionContext);\n var onResize = React.useCallback(function (size, element, data) {\n resizeIdRef.current += 1;\n var currentId = resizeIdRef.current;\n resizeInfosRef.current.push({\n size: size,\n element: element,\n data: data\n });\n Promise.resolve().then(function () {\n if (currentId === resizeIdRef.current) {\n onBatchResize === null || onBatchResize === void 0 ? void 0 : onBatchResize(resizeInfosRef.current);\n resizeInfosRef.current = [];\n }\n }); // Continue bubbling if parent exist\n\n onCollectionResize === null || onCollectionResize === void 0 ? void 0 : onCollectionResize(size, element, data);\n }, [onBatchResize, onCollectionResize]);\n return /*#__PURE__*/React.createElement(CollectionContext.Provider, {\n value: onResize\n }, children);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { observe, unobserve } from '../utils/observerUtil';\nimport DomWrapper from './DomWrapper';\nimport { CollectionContext } from '../Collection';\nexport default function SingleObserver(props) {\n var children = props.children,\n disabled = props.disabled;\n var elementRef = React.useRef(null);\n var wrapperRef = React.useRef(null);\n var onCollectionResize = React.useContext(CollectionContext); // =========================== Children ===========================\n\n var isRenderProps = typeof children === 'function';\n var mergedChildren = isRenderProps ? children(elementRef) : children; // ============================= Size =============================\n\n var sizeRef = React.useRef({\n width: -1,\n height: -1,\n offsetWidth: -1,\n offsetHeight: -1\n }); // ============================= Ref ==============================\n\n var canRef = !isRenderProps && /*#__PURE__*/React.isValidElement(mergedChildren) && supportRef(mergedChildren);\n var originRef = canRef ? mergedChildren.ref : null;\n var mergedRef = React.useMemo(function () {\n return composeRef(originRef, elementRef);\n }, [originRef, elementRef]); // =========================== Observe ============================\n\n var propsRef = React.useRef(props);\n propsRef.current = props; // Handler\n\n var onInternalResize = React.useCallback(function (target) {\n var _propsRef$current = propsRef.current,\n onResize = _propsRef$current.onResize,\n data = _propsRef$current.data;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var offsetWidth = target.offsetWidth,\n offsetHeight = target.offsetHeight;\n /**\n * Resize observer trigger when content size changed.\n * In most case we just care about element size,\n * let's use `boundary` instead of `contentRect` here to avoid shaking.\n */\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (sizeRef.current.width !== fixedWidth || sizeRef.current.height !== fixedHeight || sizeRef.current.offsetWidth !== offsetWidth || sizeRef.current.offsetHeight !== offsetHeight) {\n var size = {\n width: fixedWidth,\n height: fixedHeight,\n offsetWidth: offsetWidth,\n offsetHeight: offsetHeight\n };\n sizeRef.current = size; // IE is strange, right?\n\n var mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;\n var mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;\n\n var sizeInfo = _objectSpread(_objectSpread({}, size), {}, {\n offsetWidth: mergedOffsetWidth,\n offsetHeight: mergedOffsetHeight\n }); // Let collection know what happened\n\n\n onCollectionResize === null || onCollectionResize === void 0 ? void 0 : onCollectionResize(sizeInfo, target, data);\n\n if (onResize) {\n // defer the callback but not defer to next frame\n Promise.resolve().then(function () {\n onResize(sizeInfo, target);\n });\n }\n }\n }, []); // Dynamic observe\n\n React.useEffect(function () {\n var currentElement = findDOMNode(elementRef.current) || findDOMNode(wrapperRef.current);\n\n if (currentElement && !disabled) {\n observe(currentElement, onInternalResize);\n }\n\n return function () {\n return unobserve(currentElement, onInternalResize);\n };\n }, [elementRef.current, disabled]); // ============================ Render ============================\n\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperRef\n }, canRef ? /*#__PURE__*/React.cloneElement(mergedChildren, {\n ref: mergedRef\n }) : mergedChildren);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { warning } from \"rc-util/es/warning\";\nimport SingleObserver from './SingleObserver';\nimport { Collection } from './Collection';\nvar INTERNAL_PREFIX_KEY = 'rc-observer-key';\n\nfunction ResizeObserver(props) {\n var children = props.children;\n var childNodes = typeof children === 'function' ? [children] : toArray(children);\n\n if (process.env.NODE_ENV !== 'production') {\n if (childNodes.length > 1) {\n warning(false, 'Find more than one child node with `children` in ResizeObserver. Please use ResizeObserver.Collection instead.');\n } else if (childNodes.length === 0) {\n warning(false, '`children` of ResizeObserver is empty. Nothing is in observe.');\n }\n }\n\n return childNodes.map(function (child, index) {\n var key = (child === null || child === void 0 ? void 0 : child.key) || \"\".concat(INTERNAL_PREFIX_KEY, \"-\").concat(index);\n return /*#__PURE__*/React.createElement(SingleObserver, _extends({}, props, {\n key: key\n }), child);\n });\n}\n\nResizeObserver.Collection = Collection;\nexport default ResizeObserver;","import { Plot } from '../../core/plot';\nimport { deepAssign } from '../../utils';\nexport var Y_FIELD = '$$stock-range$$';\nexport var TREND_FIELD = 'trend';\nexport var TREND_UP = 'up';\nexport var TREND_DOWN = 'down';\n/** tooltip 配置 */\n\nexport var DEFAULT_TOOLTIP_OPTIONS = {\n showMarkers: false,\n showCrosshairs: true,\n shared: true,\n crosshairs: {\n type: 'xy',\n follow: true,\n text: function text(type, defaultContent, items) {\n var textContent;\n\n if (type === 'x') {\n var item = items[0];\n textContent = item ? item.title : defaultContent;\n } else {\n textContent = defaultContent;\n }\n\n return {\n position: type === 'y' ? 'start' : 'end',\n content: textContent,\n style: {\n fill: '#dfdfdf'\n }\n };\n },\n // 自定义 crosshairs textBackground 样式\n textBackground: {\n padding: [2, 4],\n style: {\n fill: '#666'\n }\n }\n }\n};\n/**\n * 散点图 默认配置项\n */\n\nexport var DEFAULT_OPTIONS = deepAssign({}, Plot.getDefaultOptions(), {\n // 设置默认图表 tooltips\n tooltip: DEFAULT_TOOLTIP_OPTIONS,\n interactions: [{\n type: 'tooltip'\n }],\n legend: {\n position: 'top-left'\n },\n risingFill: '#ef5350',\n fallingFill: '#26a69a'\n});","import warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nexport var HOOK_MARK = 'RC_FORM_INTERNAL_HOOKS'; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nvar warningFunc = function warningFunc() {\n warning(false, 'Can not find FormContext. Please make sure you wrap Field under Form.');\n};\n\nvar Context = /*#__PURE__*/React.createContext({\n getFieldValue: warningFunc,\n getFieldsValue: warningFunc,\n getFieldError: warningFunc,\n getFieldWarning: warningFunc,\n getFieldsError: warningFunc,\n isFieldsTouched: warningFunc,\n isFieldTouched: warningFunc,\n isFieldValidating: warningFunc,\n isFieldsValidating: warningFunc,\n resetFields: warningFunc,\n setFields: warningFunc,\n setFieldValue: warningFunc,\n setFieldsValue: warningFunc,\n validateFields: warningFunc,\n submit: warningFunc,\n getInternalHooks: function getInternalHooks() {\n warningFunc();\n return {\n dispatch: warningFunc,\n initEntityValue: warningFunc,\n registerField: warningFunc,\n useSubscribe: warningFunc,\n setInitialValues: warningFunc,\n destroyForm: warningFunc,\n setCallbacks: warningFunc,\n registerWatch: warningFunc,\n getFields: warningFunc,\n setValidateMessages: warningFunc,\n setPreserve: warningFunc,\n getInitialValue: warningFunc\n };\n }\n});\nexport default Context;","export function toArray(value) {\n if (value === undefined || value === null) {\n return [];\n }\n\n return Array.isArray(value) ? value : [value];\n}","var typeTemplate = \"'${name}' is not a valid ${type}\";\nexport var defaultValidateMessages = {\n \"default\": \"Validation error on field '${name}'\",\n required: \"'${name}' is required\",\n \"enum\": \"'${name}' must be one of [${enum}]\",\n whitespace: \"'${name}' cannot be empty\",\n date: {\n format: \"'${name}' is invalid for format date\",\n parse: \"'${name}' could not be parsed as date\",\n invalid: \"'${name}' is invalid date\"\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n \"boolean\": typeTemplate,\n integer: typeTemplate,\n \"float\": typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: \"'${name}' must be exactly ${len} characters\",\n min: \"'${name}' must be at least ${min} characters\",\n max: \"'${name}' cannot be longer than ${max} characters\",\n range: \"'${name}' must be between ${min} and ${max} characters\"\n },\n number: {\n len: \"'${name}' must equal ${len}\",\n min: \"'${name}' cannot be less than ${min}\",\n max: \"'${name}' cannot be greater than ${max}\",\n range: \"'${name}' must be between ${min} and ${max}\"\n },\n array: {\n len: \"'${name}' must be exactly ${len} in length\",\n min: \"'${name}' cannot be less than ${min} in length\",\n max: \"'${name}' cannot be greater than ${max} in length\",\n range: \"'${name}' must be between ${min} and ${max} in length\"\n },\n pattern: {\n mismatch: \"'${name}' does not match pattern ${pattern}\"\n }\n};","export default function get(entity, path) {\n var current = entity;\n\n for (var i = 0; i < path.length; i += 1) {\n if (current === null || current === undefined) {\n return undefined;\n }\n\n current = current[path[i]];\n }\n\n return current;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from './get';\n\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n\n var clone;\n\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n } // Delete prop if `removeIfUndefined` and value is undefined\n\n\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n\n return clone;\n}\n\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; // Do nothing if `removeIfUndefined` and parent object not exist\n\n if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n return entity;\n }\n\n return internalSet(entity, paths, value, removeIfUndefined);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\nfunction cloneDeep(val) {\n if (Array.isArray(val)) {\n return cloneArrayDeep(val);\n } else if (_typeof(val) === 'object' && val !== null) {\n return cloneObjectDeep(val);\n }\n\n return val;\n}\n\nfunction cloneObjectDeep(val) {\n if (Object.getPrototypeOf(val) === Object.prototype) {\n var res = {};\n\n for (var key in val) {\n res[key] = cloneDeep(val[key]);\n }\n\n return res;\n }\n\n return val;\n}\n\nfunction cloneArrayDeep(val) {\n return val.map(function (item) {\n return cloneDeep(item);\n });\n}\n\nexport default cloneDeep;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport get from \"rc-util/es/utils/get\";\nimport set from \"rc-util/es/utils/set\";\nimport { toArray } from './typeUtil';\nimport cloneDeep from '../utils/cloneDeep';\n/**\n * Convert name to internal supported format.\n * This function should keep since we still thinking if need support like `a.b.c` format.\n * 'a' => ['a']\n * 123 => [123]\n * ['a', 123] => ['a', 123]\n */\n\nexport function getNamePath(path) {\n return toArray(path);\n}\nexport function getValue(store, namePath) {\n var value = get(store, namePath);\n return value;\n}\nexport function setValue(store, namePath, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var newStore = set(store, namePath, value, removeIfUndefined);\n return newStore;\n}\nexport function cloneByNamePathList(store, namePathList) {\n var newStore = {};\n namePathList.forEach(function (namePath) {\n var value = getValue(store, namePath);\n newStore = setValue(newStore, namePath, value);\n });\n return newStore;\n}\nexport function containsNamePath(namePathList, namePath) {\n return namePathList && namePathList.some(function (path) {\n return matchNamePath(path, namePath);\n });\n}\n\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\n/**\n * Copy values into store and return a new values object\n * ({ a: 1, b: { c: 2 } }, { a: 4, b: { d: 5 } }) => { a: 4, b: { c: 2, d: 5 } }\n */\n\n\nfunction internalSetValues(store, values) {\n var newStore = Array.isArray(store) ? _toConsumableArray(store) : _objectSpread({}, store);\n\n if (!values) {\n return newStore;\n }\n\n Object.keys(values).forEach(function (key) {\n var prevValue = newStore[key];\n var value = values[key]; // If both are object (but target is not array), we use recursion to set deep value\n\n var recursive = isObject(prevValue) && isObject(value);\n newStore[key] = recursive ? internalSetValues(prevValue, value || {}) : cloneDeep(value); // Clone deep for arrays\n });\n return newStore;\n}\n\nexport function setValues(store) {\n for (var _len = arguments.length, restValues = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n restValues[_key - 1] = arguments[_key];\n }\n\n return restValues.reduce(function (current, newStore) {\n return internalSetValues(current, newStore);\n }, store);\n}\nexport function matchNamePath(namePath, changedNamePath) {\n if (!namePath || !changedNamePath || namePath.length !== changedNamePath.length) {\n return false;\n }\n\n return namePath.every(function (nameUnit, i) {\n return changedNamePath[i] === nameUnit;\n });\n}\nexport function isSimilar(source, target) {\n if (source === target) {\n return true;\n }\n\n if (!source && target || source && !target) {\n return false;\n }\n\n if (!source || !target || _typeof(source) !== 'object' || _typeof(target) !== 'object') {\n return false;\n }\n\n var sourceKeys = Object.keys(source);\n var targetKeys = Object.keys(target);\n var keys = new Set([].concat(sourceKeys, targetKeys));\n return _toConsumableArray(keys).every(function (key) {\n var sourceValue = source[key];\n var targetValue = target[key];\n\n if (typeof sourceValue === 'function' && typeof targetValue === 'function') {\n return true;\n }\n\n return sourceValue === targetValue;\n });\n}\nexport function defaultGetValueFromEvent(valuePropName) {\n var event = arguments.length <= 1 ? undefined : arguments[1];\n\n if (event && event.target && _typeof(event.target) === 'object' && valuePropName in event.target) {\n return event.target[valuePropName];\n }\n\n return event;\n}\n/**\n * Moves an array item from one position in an array to another.\n *\n * Note: This is a pure function so a new array will be returned, instead\n * of altering the array argument.\n *\n * @param array Array in which to move an item. (required)\n * @param moveIndex The index of the item to move. (required)\n * @param toIndex The index to move item at moveIndex to. (required)\n */\n\nexport function move(array, moveIndex, toIndex) {\n var length = array.length;\n\n if (moveIndex < 0 || moveIndex >= length || toIndex < 0 || toIndex >= length) {\n return array;\n }\n\n var item = array[moveIndex];\n var diff = moveIndex - toIndex;\n\n if (diff > 0) {\n // move left\n return [].concat(_toConsumableArray(array.slice(0, toIndex)), [item], _toConsumableArray(array.slice(toIndex, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, length)));\n }\n\n if (diff < 0) {\n // move right\n return [].concat(_toConsumableArray(array.slice(0, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, toIndex + 1)), [item], _toConsumableArray(array.slice(toIndex + 1, length)));\n }\n\n return array;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport RawAsyncValidator from 'async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { defaultValidateMessages } from './messages';\nimport { setValues } from './valueUtil'; // Remove incorrect original ts define\n\nvar AsyncValidator = RawAsyncValidator;\n/**\n * Replace with template.\n * `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\n\nfunction replaceMessage(template, kv) {\n return template.replace(/\\$\\{\\w+\\}/g, function (str) {\n var key = str.slice(2, -1);\n return kv[key];\n });\n}\n\nvar CODE_LOGIC_ERROR = 'CODE_LOGIC_ERROR';\n\nfunction validateRule(_x, _x2, _x3, _x4, _x5) {\n return _validateRule.apply(this, arguments);\n}\n/**\n * We use `async-validator` to validate the value.\n * But only check one value in a time to avoid namePath validate issue.\n */\n\n\nfunction _validateRule() {\n _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(name, value, rule, options, messageVariables) {\n var cloneRule, originValidator, subRuleField, validator, messages, result, subResults, kv, fillVariableResult;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n cloneRule = _objectSpread({}, rule); // Bug of `async-validator`\n // https://github.com/react-component/field-form/issues/316\n // https://github.com/react-component/field-form/issues/313\n\n delete cloneRule.ruleIndex;\n\n if (cloneRule.validator) {\n originValidator = cloneRule.validator;\n\n cloneRule.validator = function () {\n try {\n return originValidator.apply(void 0, arguments);\n } catch (error) {\n console.error(error);\n return Promise.reject(CODE_LOGIC_ERROR);\n }\n };\n } // We should special handle array validate\n\n\n subRuleField = null;\n\n if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n subRuleField = cloneRule.defaultField;\n delete cloneRule.defaultField;\n }\n\n validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n messages = setValues({}, defaultValidateMessages, options.validateMessages);\n validator.messages(messages);\n result = [];\n _context2.prev = 9;\n _context2.next = 12;\n return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n\n case 12:\n _context2.next = 17;\n break;\n\n case 14:\n _context2.prev = 14;\n _context2.t0 = _context2[\"catch\"](9);\n\n if (_context2.t0.errors) {\n result = _context2.t0.errors.map(function (_ref4, index) {\n var message = _ref4.message;\n var mergedMessage = message === CODE_LOGIC_ERROR ? messages[\"default\"] : message;\n return /*#__PURE__*/ /*#__PURE__*/React.isValidElement(mergedMessage) ?\n /*#__PURE__*/\n // Wrap ReactNode with `key`\n React.cloneElement(mergedMessage, {\n key: \"error_\".concat(index)\n }) : mergedMessage;\n });\n }\n\n case 17:\n if (!(!result.length && subRuleField)) {\n _context2.next = 22;\n break;\n }\n\n _context2.next = 20;\n return Promise.all(value.map(function (subValue, i) {\n return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n }));\n\n case 20:\n subResults = _context2.sent;\n return _context2.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n }, []));\n\n case 22:\n // Replace message with variables\n kv = _objectSpread(_objectSpread({}, rule), {}, {\n name: name,\n \"enum\": (rule[\"enum\"] || []).join(', ')\n }, messageVariables);\n fillVariableResult = result.map(function (error) {\n if (typeof error === 'string') {\n return replaceMessage(error, kv);\n }\n\n return error;\n });\n return _context2.abrupt(\"return\", fillVariableResult);\n\n case 25:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[9, 14]]);\n }));\n return _validateRule.apply(this, arguments);\n}\n\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n var name = namePath.join('.'); // Fill rule with context\n\n var filledRules = rules.map(function (currentRule, ruleIndex) {\n var originValidatorFunc = currentRule.validator;\n\n var cloneRule = _objectSpread(_objectSpread({}, currentRule), {}, {\n ruleIndex: ruleIndex\n }); // Replace validator if needed\n\n\n if (originValidatorFunc) {\n cloneRule.validator = function (rule, val, callback) {\n var hasPromise = false; // Wrap callback only accept when promise not provided\n\n var wrappedCallback = function wrappedCallback() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n } // Wait a tick to make sure return type is a promise\n\n\n Promise.resolve().then(function () {\n warning(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.');\n\n if (!hasPromise) {\n callback.apply(void 0, args);\n }\n });\n }; // Get promise\n\n\n var promise = originValidatorFunc(rule, val, wrappedCallback);\n hasPromise = promise && typeof promise.then === 'function' && typeof promise[\"catch\"] === 'function';\n /**\n * 1. Use promise as the first priority.\n * 2. If promise not exist, use callback with warning instead\n */\n\n warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n\n if (hasPromise) {\n promise.then(function () {\n callback();\n })[\"catch\"](function (err) {\n callback(err || ' ');\n });\n }\n };\n }\n\n return cloneRule;\n }).sort(function (_ref, _ref2) {\n var w1 = _ref.warningOnly,\n i1 = _ref.ruleIndex;\n var w2 = _ref2.warningOnly,\n i2 = _ref2.ruleIndex;\n\n if (!!w1 === !!w2) {\n // Let keep origin order\n return i1 - i2;\n }\n\n if (w1) {\n return 1;\n }\n\n return -1;\n }); // Do validate rules\n\n var summaryPromise;\n\n if (validateFirst === true) {\n // >>>>> Validate by serialization\n summaryPromise = new Promise( /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(resolve, reject) {\n var i, rule, errors;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n i = 0;\n\n case 1:\n if (!(i < filledRules.length)) {\n _context.next = 12;\n break;\n }\n\n rule = filledRules[i];\n _context.next = 5;\n return validateRule(name, value, rule, options, messageVariables);\n\n case 5:\n errors = _context.sent;\n\n if (!errors.length) {\n _context.next = 9;\n break;\n }\n\n reject([{\n errors: errors,\n rule: rule\n }]);\n return _context.abrupt(\"return\");\n\n case 9:\n i += 1;\n _context.next = 1;\n break;\n\n case 12:\n /* eslint-enable */\n resolve([]);\n\n case 13:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x6, _x7) {\n return _ref3.apply(this, arguments);\n };\n }());\n } else {\n // >>>>> Validate by parallel\n var rulePromises = filledRules.map(function (rule) {\n return validateRule(name, value, rule, options, messageVariables).then(function (errors) {\n return {\n errors: errors,\n rule: rule\n };\n });\n });\n summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n // Always change to rejection for Field to catch\n return Promise.reject(errors);\n });\n } // Internal catch error to avoid console error log.\n\n\n summaryPromise[\"catch\"](function (e) {\n return e;\n });\n return summaryPromise;\n}\n\nfunction finishOnAllFailed(_x8) {\n return _finishOnAllFailed.apply(this, arguments);\n}\n\nfunction _finishOnAllFailed() {\n _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(rulePromises) {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n var _ref5;\n\n var errors = (_ref5 = []).concat.apply(_ref5, _toConsumableArray(errorsList));\n\n return errors;\n }));\n\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n return _finishOnAllFailed.apply(this, arguments);\n}\n\nfunction finishOnFirstFailed(_x9) {\n return _finishOnFirstFailed.apply(this, arguments);\n}\n\nfunction _finishOnFirstFailed() {\n _finishOnFirstFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(rulePromises) {\n var count;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n count = 0;\n return _context4.abrupt(\"return\", new Promise(function (resolve) {\n rulePromises.forEach(function (promise) {\n promise.then(function (ruleError) {\n if (ruleError.errors.length) {\n resolve([ruleError]);\n }\n\n count += 1;\n\n if (count === rulePromises.length) {\n resolve([]);\n }\n });\n });\n }));\n\n case 2:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n return _finishOnFirstFailed.apply(this, arguments);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"name\"];\nimport toChildrenArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport { toArray } from './utils/typeUtil';\nimport { validateRules } from './utils/validateUtil';\nimport { containsNamePath, defaultGetValueFromEvent, getNamePath, getValue } from './utils/valueUtil';\nvar EMPTY_ERRORS = [];\n\nfunction requireUpdate(shouldUpdate, prev, next, prevValue, nextValue, info) {\n if (typeof shouldUpdate === 'function') {\n return shouldUpdate(prev, next, 'source' in info ? {\n source: info.source\n } : {});\n }\n\n return prevValue !== nextValue;\n} // We use Class instead of Hooks here since it will cost much code by using Hooks.\n\n\nvar Field = /*#__PURE__*/function (_React$Component) {\n _inherits(Field, _React$Component);\n\n var _super = _createSuper(Field);\n /**\n * Follow state should not management in State since it will async update by React.\n * This makes first render of form can not get correct state value.\n */\n\n /**\n * Mark when touched & validated. Currently only used for `dependencies`.\n * Note that we do not think field with `initialValue` is dirty\n * but this will be by `isFieldDirty` func.\n */\n // ============================== Subscriptions ==============================\n\n\n function Field(props) {\n var _this;\n\n _classCallCheck(this, Field);\n\n _this = _super.call(this, props); // Register on init\n\n _this.state = {\n resetCount: 0\n };\n _this.cancelRegisterFunc = null;\n _this.mounted = false;\n _this.touched = false;\n _this.dirty = false;\n _this.validatePromise = null;\n _this.prevValidating = void 0;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n\n _this.cancelRegister = function () {\n var _this$props = _this.props,\n preserve = _this$props.preserve,\n isListField = _this$props.isListField,\n name = _this$props.name;\n\n if (_this.cancelRegisterFunc) {\n _this.cancelRegisterFunc(isListField, preserve, getNamePath(name));\n }\n\n _this.cancelRegisterFunc = null;\n };\n\n _this.getNamePath = function () {\n var _this$props2 = _this.props,\n name = _this$props2.name,\n fieldContext = _this$props2.fieldContext;\n var _fieldContext$prefixN = fieldContext.prefixName,\n prefixName = _fieldContext$prefixN === void 0 ? [] : _fieldContext$prefixN;\n return name !== undefined ? [].concat(_toConsumableArray(prefixName), _toConsumableArray(name)) : [];\n };\n\n _this.getRules = function () {\n var _this$props3 = _this.props,\n _this$props3$rules = _this$props3.rules,\n rules = _this$props3$rules === void 0 ? [] : _this$props3$rules,\n fieldContext = _this$props3.fieldContext;\n return rules.map(function (rule) {\n if (typeof rule === 'function') {\n return rule(fieldContext);\n }\n\n return rule;\n });\n };\n\n _this.refresh = function () {\n if (!_this.mounted) return;\n /**\n * Clean up current node.\n */\n\n _this.setState(function (_ref) {\n var resetCount = _ref.resetCount;\n return {\n resetCount: resetCount + 1\n };\n });\n };\n\n _this.triggerMetaEvent = function (destroy) {\n var onMetaChange = _this.props.onMetaChange;\n onMetaChange === null || onMetaChange === void 0 ? void 0 : onMetaChange(_objectSpread(_objectSpread({}, _this.getMeta()), {}, {\n destroy: destroy\n }));\n };\n\n _this.onStoreChange = function (prevStore, namePathList, info) {\n var _this$props4 = _this.props,\n shouldUpdate = _this$props4.shouldUpdate,\n _this$props4$dependen = _this$props4.dependencies,\n dependencies = _this$props4$dependen === void 0 ? [] : _this$props4$dependen,\n onReset = _this$props4.onReset;\n var store = info.store;\n\n var namePath = _this.getNamePath();\n\n var prevValue = _this.getValue(prevStore);\n\n var curValue = _this.getValue(store);\n\n var namePathMatch = namePathList && containsNamePath(namePathList, namePath); // `setFieldsValue` is a quick access to update related status\n\n if (info.type === 'valueUpdate' && info.source === 'external' && prevValue !== curValue) {\n _this.touched = true;\n _this.dirty = true;\n _this.validatePromise = null;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n\n _this.triggerMetaEvent();\n }\n\n switch (info.type) {\n case 'reset':\n if (!namePathList || namePathMatch) {\n // Clean up state\n _this.touched = false;\n _this.dirty = false;\n _this.validatePromise = null;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n\n _this.triggerMetaEvent();\n\n onReset === null || onReset === void 0 ? void 0 : onReset();\n\n _this.refresh();\n\n return;\n }\n\n break;\n\n /**\n * In case field with `preserve = false` nest deps like:\n * - A = 1 => show B\n * - B = 1 => show C\n * - Reset A, need clean B, C\n */\n\n case 'remove':\n {\n if (shouldUpdate) {\n _this.reRender();\n\n return;\n }\n\n break;\n }\n\n case 'setField':\n {\n if (namePathMatch) {\n var data = info.data;\n\n if ('touched' in data) {\n _this.touched = data.touched;\n }\n\n if ('validating' in data && !('originRCField' in data)) {\n _this.validatePromise = data.validating ? Promise.resolve([]) : null;\n }\n\n if ('errors' in data) {\n _this.errors = data.errors || EMPTY_ERRORS;\n }\n\n if ('warnings' in data) {\n _this.warnings = data.warnings || EMPTY_ERRORS;\n }\n\n _this.dirty = true;\n\n _this.triggerMetaEvent();\n\n _this.reRender();\n\n return;\n } // Handle update by `setField` with `shouldUpdate`\n\n\n if (shouldUpdate && !namePath.length && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n\n return;\n }\n\n break;\n }\n\n case 'dependenciesUpdate':\n {\n /**\n * Trigger when marked `dependencies` updated. Related fields will all update\n */\n var dependencyList = dependencies.map(getNamePath); // No need for `namePathMath` check and `shouldUpdate` check, since `valueUpdate` will be\n // emitted earlier and they will work there\n // If set it may cause unnecessary twice rerendering\n\n if (dependencyList.some(function (dependency) {\n return containsNamePath(info.relatedFields, dependency);\n })) {\n _this.reRender();\n\n return;\n }\n\n break;\n }\n\n default:\n // 1. If `namePath` exists in `namePathList`, means it's related value and should update\n // For example \n // If `namePathList` is [['list']] (List value update), Field should be updated\n // If `namePathList` is [['list', 0]] (Field value update), List shouldn't be updated\n // 2.\n // 2.1 If `dependencies` is set, `name` is not set and `shouldUpdate` is not set,\n // don't use `shouldUpdate`. `dependencies` is view as a shortcut if `shouldUpdate`\n // is not provided\n // 2.2 If `shouldUpdate` provided, use customize logic to update the field\n // else to check if value changed\n if (namePathMatch || (!dependencies.length || namePath.length || shouldUpdate) && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n\n return;\n }\n\n break;\n }\n\n if (shouldUpdate === true) {\n _this.reRender();\n }\n };\n\n _this.validateRules = function (options) {\n // We should fixed namePath & value to avoid developer change then by form function\n var namePath = _this.getNamePath();\n\n var currentValue = _this.getValue(); // Force change to async to avoid rule OOD under renderProps field\n\n\n var rootPromise = Promise.resolve().then(function () {\n if (!_this.mounted) {\n return [];\n }\n\n var _this$props5 = _this.props,\n _this$props5$validate = _this$props5.validateFirst,\n validateFirst = _this$props5$validate === void 0 ? false : _this$props5$validate,\n messageVariables = _this$props5.messageVariables;\n\n var _ref2 = options || {},\n triggerName = _ref2.triggerName;\n\n var filteredRules = _this.getRules();\n\n if (triggerName) {\n filteredRules = filteredRules.filter(function (rule) {\n var validateTrigger = rule.validateTrigger;\n\n if (!validateTrigger) {\n return true;\n }\n\n var triggerList = toArray(validateTrigger);\n return triggerList.includes(triggerName);\n });\n }\n\n var promise = validateRules(namePath, currentValue, filteredRules, options, validateFirst, messageVariables);\n promise[\"catch\"](function (e) {\n return e;\n }).then(function () {\n var ruleErrors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EMPTY_ERRORS;\n\n if (_this.validatePromise === rootPromise) {\n var _ruleErrors$forEach;\n\n _this.validatePromise = null; // Get errors & warnings\n\n var nextErrors = [];\n var nextWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref3) {\n var warningOnly = _ref3.rule.warningOnly,\n _ref3$errors = _ref3.errors,\n errors = _ref3$errors === void 0 ? EMPTY_ERRORS : _ref3$errors;\n\n if (warningOnly) {\n nextWarnings.push.apply(nextWarnings, _toConsumableArray(errors));\n } else {\n nextErrors.push.apply(nextErrors, _toConsumableArray(errors));\n }\n });\n _this.errors = nextErrors;\n _this.warnings = nextWarnings;\n\n _this.triggerMetaEvent();\n\n _this.reRender();\n }\n });\n return promise;\n });\n _this.validatePromise = rootPromise;\n _this.dirty = true;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n\n _this.triggerMetaEvent(); // Force trigger re-render since we need sync renderProps with new meta\n\n\n _this.reRender();\n\n return rootPromise;\n };\n\n _this.isFieldValidating = function () {\n return !!_this.validatePromise;\n };\n\n _this.isFieldTouched = function () {\n return _this.touched;\n };\n\n _this.isFieldDirty = function () {\n // Touched or validate or has initialValue\n if (_this.dirty || _this.props.initialValue !== undefined) {\n return true;\n } // Form set initialValue\n\n\n var fieldContext = _this.props.fieldContext;\n\n var _fieldContext$getInte = fieldContext.getInternalHooks(HOOK_MARK),\n getInitialValue = _fieldContext$getInte.getInitialValue;\n\n if (getInitialValue(_this.getNamePath()) !== undefined) {\n return true;\n }\n\n return false;\n };\n\n _this.getErrors = function () {\n return _this.errors;\n };\n\n _this.getWarnings = function () {\n return _this.warnings;\n };\n\n _this.isListField = function () {\n return _this.props.isListField;\n };\n\n _this.isList = function () {\n return _this.props.isList;\n };\n\n _this.isPreserve = function () {\n return _this.props.preserve;\n };\n\n _this.getMeta = function () {\n // Make error & validating in cache to save perf\n _this.prevValidating = _this.isFieldValidating();\n var meta = {\n touched: _this.isFieldTouched(),\n validating: _this.prevValidating,\n errors: _this.errors,\n warnings: _this.warnings,\n name: _this.getNamePath()\n };\n return meta;\n };\n\n _this.getOnlyChild = function (children) {\n // Support render props\n if (typeof children === 'function') {\n var meta = _this.getMeta();\n\n return _objectSpread(_objectSpread({}, _this.getOnlyChild(children(_this.getControlled(), meta, _this.props.fieldContext))), {}, {\n isFunction: true\n });\n } // Filed element only\n\n\n var childList = toChildrenArray(children);\n\n if (childList.length !== 1 || ! /*#__PURE__*/React.isValidElement(childList[0])) {\n return {\n child: childList,\n isFunction: false\n };\n }\n\n return {\n child: childList[0],\n isFunction: false\n };\n };\n\n _this.getValue = function (store) {\n var getFieldsValue = _this.props.fieldContext.getFieldsValue;\n\n var namePath = _this.getNamePath();\n\n return getValue(store || getFieldsValue(true), namePath);\n };\n\n _this.getControlled = function () {\n var childProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _this$props6 = _this.props,\n trigger = _this$props6.trigger,\n validateTrigger = _this$props6.validateTrigger,\n getValueFromEvent = _this$props6.getValueFromEvent,\n normalize = _this$props6.normalize,\n valuePropName = _this$props6.valuePropName,\n getValueProps = _this$props6.getValueProps,\n fieldContext = _this$props6.fieldContext;\n var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : fieldContext.validateTrigger;\n\n var namePath = _this.getNamePath();\n\n var getInternalHooks = fieldContext.getInternalHooks,\n getFieldsValue = fieldContext.getFieldsValue;\n\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n dispatch = _getInternalHooks.dispatch;\n\n var value = _this.getValue();\n\n var mergedGetValueProps = getValueProps || function (val) {\n return _defineProperty({}, valuePropName, val);\n }; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n var originTriggerFunc = childProps[trigger];\n\n var control = _objectSpread(_objectSpread({}, childProps), mergedGetValueProps(value)); // Add trigger\n\n\n control[trigger] = function () {\n // Mark as touched\n _this.touched = true;\n _this.dirty = true;\n\n _this.triggerMetaEvent();\n\n var newValue;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (getValueFromEvent) {\n newValue = getValueFromEvent.apply(void 0, args);\n } else {\n newValue = defaultGetValueFromEvent.apply(void 0, [valuePropName].concat(args));\n }\n\n if (normalize) {\n newValue = normalize(newValue, value, getFieldsValue(true));\n }\n\n dispatch({\n type: 'updateValue',\n namePath: namePath,\n value: newValue\n });\n\n if (originTriggerFunc) {\n originTriggerFunc.apply(void 0, args);\n }\n }; // Add validateTrigger\n\n\n var validateTriggerList = toArray(mergedValidateTrigger || []);\n validateTriggerList.forEach(function (triggerName) {\n // Wrap additional function of component, so that we can get latest value from store\n var originTrigger = control[triggerName];\n\n control[triggerName] = function () {\n if (originTrigger) {\n originTrigger.apply(void 0, arguments);\n } // Always use latest rules\n\n\n var rules = _this.props.rules;\n\n if (rules && rules.length) {\n // We dispatch validate to root,\n // since it will update related data with other field with same name\n dispatch({\n type: 'validateField',\n namePath: namePath,\n triggerName: triggerName\n });\n }\n };\n });\n return control;\n };\n\n if (props.fieldContext) {\n var getInternalHooks = props.fieldContext.getInternalHooks;\n\n var _getInternalHooks2 = getInternalHooks(HOOK_MARK),\n initEntityValue = _getInternalHooks2.initEntityValue;\n\n initEntityValue(_assertThisInitialized(_this));\n }\n\n return _this;\n }\n\n _createClass(Field, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props7 = this.props,\n shouldUpdate = _this$props7.shouldUpdate,\n fieldContext = _this$props7.fieldContext;\n this.mounted = true; // Register on init\n\n if (fieldContext) {\n var getInternalHooks = fieldContext.getInternalHooks;\n\n var _getInternalHooks3 = getInternalHooks(HOOK_MARK),\n registerField = _getInternalHooks3.registerField;\n\n this.cancelRegisterFunc = registerField(this);\n } // One more render for component in case fields not ready\n\n\n if (shouldUpdate === true) {\n this.reRender();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelRegister();\n this.triggerMetaEvent(true);\n this.mounted = false;\n }\n }, {\n key: \"reRender\",\n value: function reRender() {\n if (!this.mounted) return;\n this.forceUpdate();\n }\n }, {\n key: \"render\",\n value: function render() {\n var resetCount = this.state.resetCount;\n var children = this.props.children;\n\n var _this$getOnlyChild = this.getOnlyChild(children),\n child = _this$getOnlyChild.child,\n isFunction = _this$getOnlyChild.isFunction; // Not need to `cloneElement` since user can handle this in render function self\n\n\n var returnChildNode;\n\n if (isFunction) {\n returnChildNode = child;\n } else if ( /*#__PURE__*/React.isValidElement(child)) {\n returnChildNode = /*#__PURE__*/React.cloneElement(child, this.getControlled(child.props));\n } else {\n warning(!child, '`children` of Field is not validate ReactElement.');\n returnChildNode = child;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: resetCount\n }, returnChildNode);\n }\n }]);\n\n return Field;\n}(React.Component);\n\nField.contextType = FieldContext;\nField.defaultProps = {\n trigger: 'onChange',\n valuePropName: 'value'\n};\n\nfunction WrapperField(_ref5) {\n var name = _ref5.name,\n restProps = _objectWithoutProperties(_ref5, _excluded);\n\n var fieldContext = React.useContext(FieldContext);\n var namePath = name !== undefined ? getNamePath(name) : undefined;\n var key = 'keep';\n\n if (!restProps.isListField) {\n key = \"_\".concat((namePath || []).join('_'));\n } // Warning if it's a directly list field.\n // We can still support multiple level field preserve.\n\n\n if (process.env.NODE_ENV !== 'production' && restProps.preserve === false && restProps.isListField && namePath.length <= 1) {\n warning(false, '`preserve` should not apply on Form.List fields.');\n }\n\n return /*#__PURE__*/React.createElement(Field, _extends({\n key: key,\n name: namePath\n }, restProps, {\n fieldContext: fieldContext\n }));\n}\n\nexport default WrapperField;","import * as React from 'react';\nvar ListContext = /*#__PURE__*/React.createContext(null);\nexport default ListContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport FieldContext from './FieldContext';\nimport Field from './Field';\nimport { move as _move, getNamePath } from './utils/valueUtil';\nimport ListContext from './ListContext';\n\nvar List = function List(_ref) {\n var name = _ref.name,\n initialValue = _ref.initialValue,\n children = _ref.children,\n rules = _ref.rules,\n validateTrigger = _ref.validateTrigger;\n var context = React.useContext(FieldContext);\n var keyRef = React.useRef({\n keys: [],\n id: 0\n });\n var keyManager = keyRef.current;\n var prefixName = React.useMemo(function () {\n var parentPrefixName = getNamePath(context.prefixName) || [];\n return [].concat(_toConsumableArray(parentPrefixName), _toConsumableArray(getNamePath(name)));\n }, [context.prefixName, name]);\n var fieldContext = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, context), {}, {\n prefixName: prefixName\n });\n }, [context, prefixName]); // List context\n\n var listContext = React.useMemo(function () {\n return {\n getKey: function getKey(namePath) {\n var len = prefixName.length;\n var pathName = namePath[len];\n return [keyManager.keys[pathName], namePath.slice(len + 1)];\n }\n };\n }, [prefixName]); // User should not pass `children` as other type.\n\n if (typeof children !== 'function') {\n warning(false, 'Form.List only accepts function as children.');\n return null;\n }\n\n var shouldUpdate = function shouldUpdate(prevValue, nextValue, _ref2) {\n var source = _ref2.source;\n\n if (source === 'internal') {\n return false;\n }\n\n return prevValue !== nextValue;\n };\n\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: listContext\n }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: fieldContext\n }, /*#__PURE__*/React.createElement(Field, {\n name: [],\n shouldUpdate: shouldUpdate,\n rules: rules,\n validateTrigger: validateTrigger,\n initialValue: initialValue,\n isList: true\n }, function (_ref3, meta) {\n var _ref3$value = _ref3.value,\n value = _ref3$value === void 0 ? [] : _ref3$value,\n onChange = _ref3.onChange;\n var getFieldValue = context.getFieldValue;\n\n var getNewValue = function getNewValue() {\n var values = getFieldValue(prefixName || []);\n return values || [];\n };\n /**\n * Always get latest value in case user update fields by `form` api.\n */\n\n\n var operations = {\n add: function add(defaultValue, index) {\n // Mapping keys\n var newValue = getNewValue();\n\n if (index >= 0 && index <= newValue.length) {\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys.slice(0, index)), [keyManager.id], _toConsumableArray(keyManager.keys.slice(index)));\n onChange([].concat(_toConsumableArray(newValue.slice(0, index)), [defaultValue], _toConsumableArray(newValue.slice(index))));\n } else {\n if (process.env.NODE_ENV !== 'production' && (index < 0 || index > newValue.length)) {\n warning(false, 'The second parameter of the add function should be a valid positive number.');\n }\n\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys), [keyManager.id]);\n onChange([].concat(_toConsumableArray(newValue), [defaultValue]));\n }\n\n keyManager.id += 1;\n },\n remove: function remove(index) {\n var newValue = getNewValue();\n var indexSet = new Set(Array.isArray(index) ? index : [index]);\n\n if (indexSet.size <= 0) {\n return;\n }\n\n keyManager.keys = keyManager.keys.filter(function (_, keysIndex) {\n return !indexSet.has(keysIndex);\n }); // Trigger store change\n\n onChange(newValue.filter(function (_, valueIndex) {\n return !indexSet.has(valueIndex);\n }));\n },\n move: function move(from, to) {\n if (from === to) {\n return;\n }\n\n var newValue = getNewValue(); // Do not handle out of range\n\n if (from < 0 || from >= newValue.length || to < 0 || to >= newValue.length) {\n return;\n }\n\n keyManager.keys = _move(keyManager.keys, from, to); // Trigger store change\n\n onChange(_move(newValue, from, to));\n }\n };\n var listValue = value || [];\n\n if (!Array.isArray(listValue)) {\n listValue = [];\n\n if (process.env.NODE_ENV !== 'production') {\n warning(false, \"Current value of '\".concat(prefixName.join(' > '), \"' is not an array type.\"));\n }\n }\n\n return children(listValue.map(function (__, index) {\n var key = keyManager.keys[index];\n\n if (key === undefined) {\n keyManager.keys[index] = keyManager.id;\n key = keyManager.keys[index];\n keyManager.id += 1;\n }\n\n return {\n name: index,\n key: key,\n isListField: true\n };\n }), operations, meta);\n })));\n};\n\nexport default List;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar SPLIT = '__@field_split__';\n/**\n * Convert name path into string to fast the fetch speed of Map.\n */\n\nfunction normalize(namePath) {\n return namePath.map(function (cell) {\n return \"\".concat(_typeof(cell), \":\").concat(cell);\n }) // Magic split\n .join(SPLIT);\n}\n/**\n * NameMap like a `Map` but accepts `string[]` as key.\n */\n\n\nvar NameMap = /*#__PURE__*/function () {\n function NameMap() {\n _classCallCheck(this, NameMap);\n\n this.kvs = new Map();\n }\n\n _createClass(NameMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.kvs.set(normalize(key), value);\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.kvs.get(normalize(key));\n }\n }, {\n key: \"update\",\n value: function update(key, updater) {\n var origin = this.get(key);\n var next = updater(origin);\n\n if (!next) {\n this[\"delete\"](key);\n } else {\n this.set(key, next);\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n this.kvs[\"delete\"](normalize(key));\n } // Since we only use this in test, let simply realize this\n\n }, {\n key: \"map\",\n value: function map(callback) {\n return _toConsumableArray(this.kvs.entries()).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n var cells = key.split(SPLIT);\n return callback({\n key: cells.map(function (cell) {\n var _cell$match = cell.match(/^([^:]*):(.*)$/),\n _cell$match2 = _slicedToArray(_cell$match, 3),\n type = _cell$match2[1],\n unit = _cell$match2[2];\n\n return type === 'number' ? Number(unit) : unit;\n }),\n value: value\n });\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var json = {};\n this.map(function (_ref3) {\n var key = _ref3.key,\n value = _ref3.value;\n json[key.join('.')] = value;\n return null;\n });\n return json;\n }\n }]);\n\n return NameMap;\n}();\n\nexport default NameMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nvar _excluded = [\"name\", \"errors\"];\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { HOOK_MARK } from './FieldContext';\nimport { allPromiseFinish } from './utils/asyncUtil';\nimport cloneDeep from './utils/cloneDeep';\nimport { defaultValidateMessages } from './utils/messages';\nimport NameMap from './utils/NameMap';\nimport { cloneByNamePathList, containsNamePath, getNamePath, getValue, matchNamePath, setValue, setValues } from './utils/valueUtil';\nexport var FormStore = /*#__PURE__*/_createClass(function FormStore(forceRootUpdate) {\n var _this = this;\n\n _classCallCheck(this, FormStore);\n\n this.formHooked = false;\n this.forceRootUpdate = void 0;\n this.subscribable = true;\n this.store = {};\n this.fieldEntities = [];\n this.initialValues = {};\n this.callbacks = {};\n this.validateMessages = null;\n this.preserve = null;\n this.lastValidatePromise = null;\n\n this.getForm = function () {\n return {\n getFieldValue: _this.getFieldValue,\n getFieldsValue: _this.getFieldsValue,\n getFieldError: _this.getFieldError,\n getFieldWarning: _this.getFieldWarning,\n getFieldsError: _this.getFieldsError,\n isFieldsTouched: _this.isFieldsTouched,\n isFieldTouched: _this.isFieldTouched,\n isFieldValidating: _this.isFieldValidating,\n isFieldsValidating: _this.isFieldsValidating,\n resetFields: _this.resetFields,\n setFields: _this.setFields,\n setFieldValue: _this.setFieldValue,\n setFieldsValue: _this.setFieldsValue,\n validateFields: _this.validateFields,\n submit: _this.submit,\n _init: true,\n getInternalHooks: _this.getInternalHooks\n };\n };\n\n this.getInternalHooks = function (key) {\n if (key === HOOK_MARK) {\n _this.formHooked = true;\n return {\n dispatch: _this.dispatch,\n initEntityValue: _this.initEntityValue,\n registerField: _this.registerField,\n useSubscribe: _this.useSubscribe,\n setInitialValues: _this.setInitialValues,\n destroyForm: _this.destroyForm,\n setCallbacks: _this.setCallbacks,\n setValidateMessages: _this.setValidateMessages,\n getFields: _this.getFields,\n setPreserve: _this.setPreserve,\n getInitialValue: _this.getInitialValue,\n registerWatch: _this.registerWatch\n };\n }\n\n warning(false, '`getInternalHooks` is internal usage. Should not call directly.');\n return null;\n };\n\n this.useSubscribe = function (subscribable) {\n _this.subscribable = subscribable;\n };\n\n this.prevWithoutPreserves = null;\n\n this.setInitialValues = function (initialValues, init) {\n _this.initialValues = initialValues || {};\n\n if (init) {\n var _this$prevWithoutPres;\n\n var nextStore = setValues({}, initialValues, _this.store); // We will take consider prev form unmount fields.\n // When the field is not `preserve`, we need fill this with initialValues instead of store.\n // eslint-disable-next-line array-callback-return\n\n (_this$prevWithoutPres = _this.prevWithoutPreserves) === null || _this$prevWithoutPres === void 0 ? void 0 : _this$prevWithoutPres.map(function (_ref) {\n var namePath = _ref.key;\n nextStore = setValue(nextStore, namePath, getValue(initialValues, namePath));\n });\n _this.prevWithoutPreserves = null;\n\n _this.updateStore(nextStore);\n }\n };\n\n this.destroyForm = function () {\n var prevWithoutPreserves = new NameMap();\n\n _this.getFieldEntities(true).forEach(function (entity) {\n if (!_this.isMergedPreserve(entity.isPreserve())) {\n prevWithoutPreserves.set(entity.getNamePath(), true);\n }\n });\n\n _this.prevWithoutPreserves = prevWithoutPreserves;\n };\n\n this.getInitialValue = function (namePath) {\n var initValue = getValue(_this.initialValues, namePath); // Not cloneDeep when without `namePath`\n\n return namePath.length ? cloneDeep(initValue) : initValue;\n };\n\n this.setCallbacks = function (callbacks) {\n _this.callbacks = callbacks;\n };\n\n this.setValidateMessages = function (validateMessages) {\n _this.validateMessages = validateMessages;\n };\n\n this.setPreserve = function (preserve) {\n _this.preserve = preserve;\n };\n\n this.watchList = [];\n\n this.registerWatch = function (callback) {\n _this.watchList.push(callback);\n\n return function () {\n _this.watchList = _this.watchList.filter(function (fn) {\n return fn !== callback;\n });\n };\n };\n\n this.notifyWatch = function () {\n var namePath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; // No need to cost perf when nothing need to watch\n\n if (_this.watchList.length) {\n var values = _this.getFieldsValue();\n\n _this.watchList.forEach(function (callback) {\n callback(values, namePath);\n });\n }\n };\n\n this.timeoutId = null;\n\n this.warningUnhooked = function () {\n if (process.env.NODE_ENV !== 'production' && !_this.timeoutId && typeof window !== 'undefined') {\n _this.timeoutId = setTimeout(function () {\n _this.timeoutId = null;\n\n if (!_this.formHooked) {\n warning(false, 'Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?');\n }\n });\n }\n };\n\n this.updateStore = function (nextStore) {\n _this.store = nextStore;\n };\n\n this.getFieldEntities = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (!pure) {\n return _this.fieldEntities;\n }\n\n return _this.fieldEntities.filter(function (field) {\n return field.getNamePath().length;\n });\n };\n\n this.getFieldsMap = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cache = new NameMap();\n\n _this.getFieldEntities(pure).forEach(function (field) {\n var namePath = field.getNamePath();\n cache.set(namePath, field);\n });\n\n return cache;\n };\n\n this.getFieldEntitiesForNamePathList = function (nameList) {\n if (!nameList) {\n return _this.getFieldEntities(true);\n }\n\n var cache = _this.getFieldsMap(true);\n\n return nameList.map(function (name) {\n var namePath = getNamePath(name);\n return cache.get(namePath) || {\n INVALIDATE_NAME_PATH: getNamePath(name)\n };\n });\n };\n\n this.getFieldsValue = function (nameList, filterFunc) {\n _this.warningUnhooked();\n\n if (nameList === true && !filterFunc) {\n return _this.store;\n }\n\n var fieldEntities = _this.getFieldEntitiesForNamePathList(Array.isArray(nameList) ? nameList : null);\n\n var filteredNameList = [];\n fieldEntities.forEach(function (entity) {\n var _entity$isListField;\n\n var namePath = 'INVALIDATE_NAME_PATH' in entity ? entity.INVALIDATE_NAME_PATH : entity.getNamePath(); // Ignore when it's a list item and not specific the namePath,\n // since parent field is already take in count\n\n if (!nameList && ((_entity$isListField = entity.isListField) === null || _entity$isListField === void 0 ? void 0 : _entity$isListField.call(entity))) {\n return;\n }\n\n if (!filterFunc) {\n filteredNameList.push(namePath);\n } else {\n var meta = 'getMeta' in entity ? entity.getMeta() : null;\n\n if (filterFunc(meta)) {\n filteredNameList.push(namePath);\n }\n }\n });\n return cloneByNamePathList(_this.store, filteredNameList.map(getNamePath));\n };\n\n this.getFieldValue = function (name) {\n _this.warningUnhooked();\n\n var namePath = getNamePath(name);\n return getValue(_this.store, namePath);\n };\n\n this.getFieldsError = function (nameList) {\n _this.warningUnhooked();\n\n var fieldEntities = _this.getFieldEntitiesForNamePathList(nameList);\n\n return fieldEntities.map(function (entity, index) {\n if (entity && !('INVALIDATE_NAME_PATH' in entity)) {\n return {\n name: entity.getNamePath(),\n errors: entity.getErrors(),\n warnings: entity.getWarnings()\n };\n }\n\n return {\n name: getNamePath(nameList[index]),\n errors: [],\n warnings: []\n };\n });\n };\n\n this.getFieldError = function (name) {\n _this.warningUnhooked();\n\n var namePath = getNamePath(name);\n\n var fieldError = _this.getFieldsError([namePath])[0];\n\n return fieldError.errors;\n };\n\n this.getFieldWarning = function (name) {\n _this.warningUnhooked();\n\n var namePath = getNamePath(name);\n\n var fieldError = _this.getFieldsError([namePath])[0];\n\n return fieldError.warnings;\n };\n\n this.isFieldsTouched = function () {\n _this.warningUnhooked();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var arg0 = args[0],\n arg1 = args[1];\n var namePathList;\n var isAllFieldsTouched = false;\n\n if (args.length === 0) {\n namePathList = null;\n } else if (args.length === 1) {\n if (Array.isArray(arg0)) {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = false;\n } else {\n namePathList = null;\n isAllFieldsTouched = arg0;\n }\n } else {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = arg1;\n }\n\n var fieldEntities = _this.getFieldEntities(true);\n\n var isFieldTouched = function isFieldTouched(field) {\n return field.isFieldTouched();\n }; // ===== Will get fully compare when not config namePathList =====\n\n\n if (!namePathList) {\n return isAllFieldsTouched ? fieldEntities.every(isFieldTouched) : fieldEntities.some(isFieldTouched);\n } // Generate a nest tree for validate\n\n\n var map = new NameMap();\n namePathList.forEach(function (shortNamePath) {\n map.set(shortNamePath, []);\n });\n fieldEntities.forEach(function (field) {\n var fieldNamePath = field.getNamePath(); // Find matched entity and put into list\n\n namePathList.forEach(function (shortNamePath) {\n if (shortNamePath.every(function (nameUnit, i) {\n return fieldNamePath[i] === nameUnit;\n })) {\n map.update(shortNamePath, function (list) {\n return [].concat(_toConsumableArray(list), [field]);\n });\n }\n });\n }); // Check if NameMap value is touched\n\n var isNamePathListTouched = function isNamePathListTouched(entities) {\n return entities.some(isFieldTouched);\n };\n\n var namePathListEntities = map.map(function (_ref2) {\n var value = _ref2.value;\n return value;\n });\n return isAllFieldsTouched ? namePathListEntities.every(isNamePathListTouched) : namePathListEntities.some(isNamePathListTouched);\n };\n\n this.isFieldTouched = function (name) {\n _this.warningUnhooked();\n\n return _this.isFieldsTouched([name]);\n };\n\n this.isFieldsValidating = function (nameList) {\n _this.warningUnhooked();\n\n var fieldEntities = _this.getFieldEntities();\n\n if (!nameList) {\n return fieldEntities.some(function (testField) {\n return testField.isFieldValidating();\n });\n }\n\n var namePathList = nameList.map(getNamePath);\n return fieldEntities.some(function (testField) {\n var fieldNamePath = testField.getNamePath();\n return containsNamePath(namePathList, fieldNamePath) && testField.isFieldValidating();\n });\n };\n\n this.isFieldValidating = function (name) {\n _this.warningUnhooked();\n\n return _this.isFieldsValidating([name]);\n };\n\n this.resetWithFieldInitialValue = function () {\n var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; // Create cache\n\n var cache = new NameMap();\n\n var fieldEntities = _this.getFieldEntities(true);\n\n fieldEntities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n var namePath = field.getNamePath(); // Record only if has `initialValue`\n\n if (initialValue !== undefined) {\n var records = cache.get(namePath) || new Set();\n records.add({\n entity: field,\n value: initialValue\n });\n cache.set(namePath, records);\n }\n }); // Reset\n\n var resetWithFields = function resetWithFields(entities) {\n entities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n\n if (initialValue !== undefined) {\n var namePath = field.getNamePath();\n\n var formInitialValue = _this.getInitialValue(namePath);\n\n if (formInitialValue !== undefined) {\n // Warning if conflict with form initialValues and do not modify value\n warning(false, \"Form already set 'initialValues' with path '\".concat(namePath.join('.'), \"'. Field can not overwrite it.\"));\n } else {\n var records = cache.get(namePath);\n\n if (records && records.size > 1) {\n // Warning if multiple field set `initialValue`and do not modify value\n warning(false, \"Multiple Field with path '\".concat(namePath.join('.'), \"' set 'initialValue'. Can not decide which one to pick.\"));\n } else if (records) {\n var originValue = _this.getFieldValue(namePath); // Set `initialValue`\n\n\n if (!info.skipExist || originValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, _toConsumableArray(records)[0].value));\n }\n }\n }\n }\n });\n };\n\n var requiredFieldEntities;\n\n if (info.entities) {\n requiredFieldEntities = info.entities;\n } else if (info.namePathList) {\n requiredFieldEntities = [];\n info.namePathList.forEach(function (namePath) {\n var records = cache.get(namePath);\n\n if (records) {\n var _requiredFieldEntitie;\n\n (_requiredFieldEntitie = requiredFieldEntities).push.apply(_requiredFieldEntitie, _toConsumableArray(_toConsumableArray(records).map(function (r) {\n return r.entity;\n })));\n }\n });\n } else {\n requiredFieldEntities = fieldEntities;\n }\n\n resetWithFields(requiredFieldEntities);\n };\n\n this.resetFields = function (nameList) {\n _this.warningUnhooked();\n\n var prevStore = _this.store;\n\n if (!nameList) {\n _this.updateStore(setValues({}, _this.initialValues));\n\n _this.resetWithFieldInitialValue();\n\n _this.notifyObservers(prevStore, null, {\n type: 'reset'\n });\n\n _this.notifyWatch();\n\n return;\n } // Reset by `nameList`\n\n\n var namePathList = nameList.map(getNamePath);\n namePathList.forEach(function (namePath) {\n var initialValue = _this.getInitialValue(namePath);\n\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n });\n\n _this.resetWithFieldInitialValue({\n namePathList: namePathList\n });\n\n _this.notifyObservers(prevStore, namePathList, {\n type: 'reset'\n });\n\n _this.notifyWatch(namePathList);\n };\n\n this.setFields = function (fields) {\n _this.warningUnhooked();\n\n var prevStore = _this.store;\n var namePathList = [];\n fields.forEach(function (fieldData) {\n var name = fieldData.name,\n errors = fieldData.errors,\n data = _objectWithoutProperties(fieldData, _excluded);\n\n var namePath = getNamePath(name);\n namePathList.push(namePath); // Value\n\n if ('value' in data) {\n _this.updateStore(setValue(_this.store, namePath, data.value));\n }\n\n _this.notifyObservers(prevStore, [namePath], {\n type: 'setField',\n data: fieldData\n });\n });\n\n _this.notifyWatch(namePathList);\n };\n\n this.getFields = function () {\n var entities = _this.getFieldEntities(true);\n\n var fields = entities.map(function (field) {\n var namePath = field.getNamePath();\n var meta = field.getMeta();\n\n var fieldData = _objectSpread(_objectSpread({}, meta), {}, {\n name: namePath,\n value: _this.getFieldValue(namePath)\n });\n\n Object.defineProperty(fieldData, 'originRCField', {\n value: true\n });\n return fieldData;\n });\n return fields;\n };\n\n this.initEntityValue = function (entity) {\n var initialValue = entity.props.initialValue;\n\n if (initialValue !== undefined) {\n var namePath = entity.getNamePath();\n var prevValue = getValue(_this.store, namePath);\n\n if (prevValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n }\n }\n };\n\n this.isMergedPreserve = function (fieldPreserve) {\n var mergedPreserve = fieldPreserve !== undefined ? fieldPreserve : _this.preserve;\n return mergedPreserve !== null && mergedPreserve !== void 0 ? mergedPreserve : true;\n };\n\n this.registerField = function (entity) {\n _this.fieldEntities.push(entity);\n\n var namePath = entity.getNamePath();\n\n _this.notifyWatch([namePath]); // Set initial values\n\n\n if (entity.props.initialValue !== undefined) {\n var prevStore = _this.store;\n\n _this.resetWithFieldInitialValue({\n entities: [entity],\n skipExist: true\n });\n\n _this.notifyObservers(prevStore, [entity.getNamePath()], {\n type: 'valueUpdate',\n source: 'internal'\n });\n } // un-register field callback\n\n\n return function (isListField, preserve) {\n var subNamePath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n _this.fieldEntities = _this.fieldEntities.filter(function (item) {\n return item !== entity;\n }); // Clean up store value if not preserve\n\n if (!_this.isMergedPreserve(preserve) && (!isListField || subNamePath.length > 1)) {\n var defaultValue = isListField ? undefined : _this.getInitialValue(namePath);\n\n if (namePath.length && _this.getFieldValue(namePath) !== defaultValue && _this.fieldEntities.every(function (field) {\n return (// Only reset when no namePath exist\n !matchNamePath(field.getNamePath(), namePath)\n );\n })) {\n var _prevStore = _this.store;\n\n _this.updateStore(setValue(_prevStore, namePath, defaultValue, true)); // Notify that field is unmount\n\n\n _this.notifyObservers(_prevStore, [namePath], {\n type: 'remove'\n }); // Dependencies update\n\n\n _this.triggerDependenciesUpdate(_prevStore, namePath);\n }\n }\n\n _this.notifyWatch([namePath]);\n };\n };\n\n this.dispatch = function (action) {\n switch (action.type) {\n case 'updateValue':\n {\n var namePath = action.namePath,\n value = action.value;\n\n _this.updateValue(namePath, value);\n\n break;\n }\n\n case 'validateField':\n {\n var _namePath = action.namePath,\n triggerName = action.triggerName;\n\n _this.validateFields([_namePath], {\n triggerName: triggerName\n });\n\n break;\n }\n\n default: // Currently we don't have other action. Do nothing.\n\n }\n };\n\n this.notifyObservers = function (prevStore, namePathList, info) {\n if (_this.subscribable) {\n var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {\n store: _this.getFieldsValue(true)\n });\n\n _this.getFieldEntities().forEach(function (_ref3) {\n var onStoreChange = _ref3.onStoreChange;\n onStoreChange(prevStore, namePathList, mergedInfo);\n });\n } else {\n _this.forceRootUpdate();\n }\n };\n\n this.triggerDependenciesUpdate = function (prevStore, namePath) {\n var childrenFields = _this.getDependencyChildrenFields(namePath);\n\n if (childrenFields.length) {\n _this.validateFields(childrenFields);\n }\n\n _this.notifyObservers(prevStore, childrenFields, {\n type: 'dependenciesUpdate',\n relatedFields: [namePath].concat(_toConsumableArray(childrenFields))\n });\n\n return childrenFields;\n };\n\n this.updateValue = function (name, value) {\n var namePath = getNamePath(name);\n var prevStore = _this.store;\n\n _this.updateStore(setValue(_this.store, namePath, value));\n\n _this.notifyObservers(prevStore, [namePath], {\n type: 'valueUpdate',\n source: 'internal'\n });\n\n _this.notifyWatch([namePath]); // Dependencies update\n\n\n var childrenFields = _this.triggerDependenciesUpdate(prevStore, namePath); // trigger callback function\n\n\n var onValuesChange = _this.callbacks.onValuesChange;\n\n if (onValuesChange) {\n var changedValues = cloneByNamePathList(_this.store, [namePath]);\n onValuesChange(changedValues, _this.getFieldsValue());\n }\n\n _this.triggerOnFieldsChange([namePath].concat(_toConsumableArray(childrenFields)));\n };\n\n this.setFieldsValue = function (store) {\n _this.warningUnhooked();\n\n var prevStore = _this.store;\n\n if (store) {\n var nextStore = setValues(_this.store, store);\n\n _this.updateStore(nextStore);\n }\n\n _this.notifyObservers(prevStore, null, {\n type: 'valueUpdate',\n source: 'external'\n });\n\n _this.notifyWatch();\n };\n\n this.setFieldValue = function (name, value) {\n _this.setFields([{\n name: name,\n value: value\n }]);\n };\n\n this.getDependencyChildrenFields = function (rootNamePath) {\n var children = new Set();\n var childrenFields = [];\n var dependencies2fields = new NameMap();\n /**\n * Generate maps\n * Can use cache to save perf if user report performance issue with this\n */\n\n _this.getFieldEntities().forEach(function (field) {\n var dependencies = field.props.dependencies;\n (dependencies || []).forEach(function (dependency) {\n var dependencyNamePath = getNamePath(dependency);\n dependencies2fields.update(dependencyNamePath, function () {\n var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Set();\n fields.add(field);\n return fields;\n });\n });\n });\n\n var fillChildren = function fillChildren(namePath) {\n var fields = dependencies2fields.get(namePath) || new Set();\n fields.forEach(function (field) {\n if (!children.has(field)) {\n children.add(field);\n var fieldNamePath = field.getNamePath();\n\n if (field.isFieldDirty() && fieldNamePath.length) {\n childrenFields.push(fieldNamePath);\n fillChildren(fieldNamePath);\n }\n }\n });\n };\n\n fillChildren(rootNamePath);\n return childrenFields;\n };\n\n this.triggerOnFieldsChange = function (namePathList, filedErrors) {\n var onFieldsChange = _this.callbacks.onFieldsChange;\n\n if (onFieldsChange) {\n var fields = _this.getFields();\n /**\n * Fill errors since `fields` may be replaced by controlled fields\n */\n\n\n if (filedErrors) {\n var cache = new NameMap();\n filedErrors.forEach(function (_ref4) {\n var name = _ref4.name,\n errors = _ref4.errors;\n cache.set(name, errors);\n });\n fields.forEach(function (field) {\n // eslint-disable-next-line no-param-reassign\n field.errors = cache.get(field.name) || field.errors;\n });\n }\n\n var changedFields = fields.filter(function (_ref5) {\n var fieldName = _ref5.name;\n return containsNamePath(namePathList, fieldName);\n });\n onFieldsChange(changedFields, fields);\n }\n };\n\n this.validateFields = function (nameList, options) {\n _this.warningUnhooked();\n\n var provideNameList = !!nameList;\n var namePathList = provideNameList ? nameList.map(getNamePath) : []; // Collect result in promise list\n\n var promiseList = [];\n\n _this.getFieldEntities(true).forEach(function (field) {\n // Add field if not provide `nameList`\n if (!provideNameList) {\n namePathList.push(field.getNamePath());\n }\n /**\n * Recursive validate if configured.\n * TODO: perf improvement @zombieJ\n */\n\n\n if ((options === null || options === void 0 ? void 0 : options.recursive) && provideNameList) {\n var namePath = field.getNamePath();\n\n if ( // nameList[i] === undefined 说明是以 nameList 开头的\n // ['name'] -> ['name','list']\n namePath.every(function (nameUnit, i) {\n return nameList[i] === nameUnit || nameList[i] === undefined;\n })) {\n namePathList.push(namePath);\n }\n } // Skip if without rule\n\n\n if (!field.props.rules || !field.props.rules.length) {\n return;\n }\n\n var fieldNamePath = field.getNamePath(); // Add field validate rule in to promise list\n\n if (!provideNameList || containsNamePath(namePathList, fieldNamePath)) {\n var promise = field.validateRules(_objectSpread({\n validateMessages: _objectSpread(_objectSpread({}, defaultValidateMessages), _this.validateMessages)\n }, options)); // Wrap promise with field\n\n promiseList.push(promise.then(function () {\n return {\n name: fieldNamePath,\n errors: [],\n warnings: []\n };\n })[\"catch\"](function (ruleErrors) {\n var _ruleErrors$forEach;\n\n var mergedErrors = [];\n var mergedWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref6) {\n var warningOnly = _ref6.rule.warningOnly,\n errors = _ref6.errors;\n\n if (warningOnly) {\n mergedWarnings.push.apply(mergedWarnings, _toConsumableArray(errors));\n } else {\n mergedErrors.push.apply(mergedErrors, _toConsumableArray(errors));\n }\n });\n\n if (mergedErrors.length) {\n return Promise.reject({\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n });\n }\n\n return {\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n };\n }));\n }\n });\n\n var summaryPromise = allPromiseFinish(promiseList);\n _this.lastValidatePromise = summaryPromise; // Notify fields with rule that validate has finished and need update\n\n summaryPromise[\"catch\"](function (results) {\n return results;\n }).then(function (results) {\n var resultNamePathList = results.map(function (_ref7) {\n var name = _ref7.name;\n return name;\n });\n\n _this.notifyObservers(_this.store, resultNamePathList, {\n type: 'validateFinish'\n });\n\n _this.triggerOnFieldsChange(resultNamePathList, results);\n });\n var returnPromise = summaryPromise.then(function () {\n if (_this.lastValidatePromise === summaryPromise) {\n return Promise.resolve(_this.getFieldsValue(namePathList));\n }\n\n return Promise.reject([]);\n })[\"catch\"](function (results) {\n var errorList = results.filter(function (result) {\n return result && result.errors.length;\n });\n return Promise.reject({\n values: _this.getFieldsValue(namePathList),\n errorFields: errorList,\n outOfDate: _this.lastValidatePromise !== summaryPromise\n });\n }); // Do not throw in console\n\n returnPromise[\"catch\"](function (e) {\n return e;\n });\n return returnPromise;\n };\n\n this.submit = function () {\n _this.warningUnhooked();\n\n _this.validateFields().then(function (values) {\n var onFinish = _this.callbacks.onFinish;\n\n if (onFinish) {\n try {\n onFinish(values);\n } catch (err) {\n // Should print error if user `onFinish` callback failed\n console.error(err);\n }\n }\n })[\"catch\"](function (e) {\n var onFinishFailed = _this.callbacks.onFinishFailed;\n\n if (onFinishFailed) {\n onFinishFailed(e);\n }\n });\n };\n\n this.forceRootUpdate = forceRootUpdate;\n});\n\nfunction useForm(form) {\n var formRef = React.useRef();\n\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n\n if (!formRef.current) {\n if (form) {\n formRef.current = form;\n } else {\n // Create a new FormStore if not provided\n var forceReRender = function forceReRender() {\n forceUpdate({});\n };\n\n var formStore = new FormStore(forceReRender);\n formRef.current = formStore.getForm();\n }\n }\n\n return [formRef.current];\n}\n\nexport default useForm;","export function allPromiseFinish(promiseList) {\n var hasError = false;\n var count = promiseList.length;\n var results = [];\n\n if (!promiseList.length) {\n return Promise.resolve([]);\n }\n\n return new Promise(function (resolve, reject) {\n promiseList.forEach(function (promise, index) {\n promise[\"catch\"](function (e) {\n hasError = true;\n return e;\n }).then(function (result) {\n count -= 1;\n results[index] = result;\n\n if (count > 0) {\n return;\n }\n\n if (hasError) {\n reject(results);\n }\n\n resolve(results);\n });\n });\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nvar FormContext = /*#__PURE__*/React.createContext({\n triggerFormChange: function triggerFormChange() {},\n triggerFormFinish: function triggerFormFinish() {},\n registerForm: function registerForm() {},\n unregisterForm: function unregisterForm() {}\n});\n\nvar FormProvider = function FormProvider(_ref) {\n var validateMessages = _ref.validateMessages,\n onFormChange = _ref.onFormChange,\n onFormFinish = _ref.onFormFinish,\n children = _ref.children;\n var formContext = React.useContext(FormContext);\n var formsRef = React.useRef({});\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: _objectSpread(_objectSpread({}, formContext), {}, {\n validateMessages: _objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages),\n // =========================================================\n // = Global Form Control =\n // =========================================================\n triggerFormChange: function triggerFormChange(name, changedFields) {\n if (onFormChange) {\n onFormChange(name, {\n changedFields: changedFields,\n forms: formsRef.current\n });\n }\n\n formContext.triggerFormChange(name, changedFields);\n },\n triggerFormFinish: function triggerFormFinish(name, values) {\n if (onFormFinish) {\n onFormFinish(name, {\n values: values,\n forms: formsRef.current\n });\n }\n\n formContext.triggerFormFinish(name, values);\n },\n registerForm: function registerForm(name, form) {\n if (name) {\n formsRef.current = _objectSpread(_objectSpread({}, formsRef.current), {}, _defineProperty({}, name, form));\n }\n\n formContext.registerForm(name, form);\n },\n unregisterForm: function unregisterForm(name) {\n var newForms = _objectSpread({}, formsRef.current);\n\n delete newForms[name];\n formsRef.current = newForms;\n formContext.unregisterForm(name);\n }\n })\n }, children);\n};\n\nexport { FormProvider };\nexport default FormContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"name\", \"initialValues\", \"fields\", \"form\", \"preserve\", \"children\", \"component\", \"validateMessages\", \"validateTrigger\", \"onValuesChange\", \"onFieldsChange\", \"onFinish\", \"onFinishFailed\"];\nimport * as React from 'react';\nimport useForm from './useForm';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport FormContext from './FormContext';\nimport { isSimilar } from './utils/valueUtil';\n\nvar Form = function Form(_ref, ref) {\n var name = _ref.name,\n initialValues = _ref.initialValues,\n fields = _ref.fields,\n form = _ref.form,\n preserve = _ref.preserve,\n children = _ref.children,\n _ref$component = _ref.component,\n Component = _ref$component === void 0 ? 'form' : _ref$component,\n validateMessages = _ref.validateMessages,\n _ref$validateTrigger = _ref.validateTrigger,\n validateTrigger = _ref$validateTrigger === void 0 ? 'onChange' : _ref$validateTrigger,\n onValuesChange = _ref.onValuesChange,\n _onFieldsChange = _ref.onFieldsChange,\n _onFinish = _ref.onFinish,\n onFinishFailed = _ref.onFinishFailed,\n restProps = _objectWithoutProperties(_ref, _excluded);\n\n var formContext = React.useContext(FormContext); // We customize handle event since Context will makes all the consumer re-render:\n // https://reactjs.org/docs/context.html#contextprovider\n\n var _useForm = useForm(form),\n _useForm2 = _slicedToArray(_useForm, 1),\n formInstance = _useForm2[0];\n\n var _formInstance$getInte = formInstance.getInternalHooks(HOOK_MARK),\n useSubscribe = _formInstance$getInte.useSubscribe,\n setInitialValues = _formInstance$getInte.setInitialValues,\n setCallbacks = _formInstance$getInte.setCallbacks,\n setValidateMessages = _formInstance$getInte.setValidateMessages,\n setPreserve = _formInstance$getInte.setPreserve,\n destroyForm = _formInstance$getInte.destroyForm; // Pass ref with form instance\n\n\n React.useImperativeHandle(ref, function () {\n return formInstance;\n }); // Register form into Context\n\n React.useEffect(function () {\n formContext.registerForm(name, formInstance);\n return function () {\n formContext.unregisterForm(name);\n };\n }, [formContext, formInstance, name]); // Pass props to store\n\n setValidateMessages(_objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages));\n setCallbacks({\n onValuesChange: onValuesChange,\n onFieldsChange: function onFieldsChange(changedFields) {\n formContext.triggerFormChange(name, changedFields);\n\n if (_onFieldsChange) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n _onFieldsChange.apply(void 0, [changedFields].concat(rest));\n }\n },\n onFinish: function onFinish(values) {\n formContext.triggerFormFinish(name, values);\n\n if (_onFinish) {\n _onFinish(values);\n }\n },\n onFinishFailed: onFinishFailed\n });\n setPreserve(preserve); // Set initial value, init store value when first mount\n\n var mountRef = React.useRef(null);\n setInitialValues(initialValues, !mountRef.current);\n\n if (!mountRef.current) {\n mountRef.current = true;\n }\n\n React.useEffect(function () {\n return destroyForm;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n []); // Prepare children by `children` type\n\n var childrenNode;\n var childrenRenderProps = typeof children === 'function';\n\n if (childrenRenderProps) {\n var values = formInstance.getFieldsValue(true);\n childrenNode = children(values, formInstance);\n } else {\n childrenNode = children;\n } // Not use subscribe when using render props\n\n\n useSubscribe(!childrenRenderProps); // Listen if fields provided. We use ref to save prev data here to avoid additional render\n\n var prevFieldsRef = React.useRef();\n React.useEffect(function () {\n if (!isSimilar(prevFieldsRef.current || [], fields || [])) {\n formInstance.setFields(fields || []);\n }\n\n prevFieldsRef.current = fields;\n }, [fields, formInstance]);\n var formContextValue = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, formInstance), {}, {\n validateTrigger: validateTrigger\n });\n }, [formInstance, validateTrigger]);\n var wrapperNode = /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: formContextValue\n }, childrenNode);\n\n if (Component === false) {\n return wrapperNode;\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n formInstance.submit();\n },\n onReset: function onReset(event) {\n var _restProps$onReset;\n\n event.preventDefault();\n formInstance.resetFields();\n (_restProps$onReset = restProps.onReset) === null || _restProps$onReset === void 0 ? void 0 : _restProps$onReset.call(restProps, event);\n }\n }), wrapperNode);\n};\n\nexport default Form;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { FieldContext } from '.';\nimport warning from \"rc-util/es/warning\";\nimport { HOOK_MARK } from './FieldContext';\nimport { useState, useContext, useEffect, useRef, useMemo } from 'react';\nimport { getNamePath, getValue } from './utils/valueUtil';\nexport function stringify(value) {\n try {\n return JSON.stringify(value);\n } catch (err) {\n return Math.random();\n }\n}\n\nfunction useWatch() {\n var dependencies = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var form = arguments.length > 1 ? arguments[1] : undefined;\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n setValue = _useState2[1];\n\n var valueStr = useMemo(function () {\n return stringify(value);\n }, [value]);\n var valueStrRef = useRef(valueStr);\n valueStrRef.current = valueStr;\n var fieldContext = useContext(FieldContext);\n var formInstance = form || fieldContext;\n var isValidForm = formInstance && formInstance._init; // Warning if not exist form instance\n\n if (process.env.NODE_ENV !== 'production') {\n warning(isValidForm, 'useWatch requires a form instance since it can not auto detect from context.');\n }\n\n var namePath = getNamePath(dependencies);\n var namePathRef = useRef(namePath);\n namePathRef.current = namePath;\n useEffect(function () {\n // Skip if not exist form instance\n if (!isValidForm) {\n return;\n }\n\n var getFieldsValue = formInstance.getFieldsValue,\n getInternalHooks = formInstance.getInternalHooks;\n\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n registerWatch = _getInternalHooks.registerWatch;\n\n var cancelRegister = registerWatch(function (store) {\n var newValue = getValue(store, namePathRef.current);\n var nextValueStr = stringify(newValue); // Compare stringify in case it's nest object\n\n if (valueStrRef.current !== nextValueStr) {\n valueStrRef.current = nextValueStr;\n setValue(newValue);\n }\n }); // TODO: We can improve this perf in future\n\n var initialValue = getValue(getFieldsValue(), namePathRef.current);\n setValue(initialValue);\n return cancelRegister;\n }, // We do not need re-register since namePath content is the same\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n return value;\n}\n\nexport default useWatch;","import * as React from 'react';\nimport Field from './Field';\nimport List from './List';\nimport useForm from './useForm';\nimport FieldForm from './Form';\nimport { FormProvider } from './FormContext';\nimport FieldContext from './FieldContext';\nimport ListContext from './ListContext';\nimport useWatch from './useWatch';\nvar InternalForm = /*#__PURE__*/React.forwardRef(FieldForm);\nvar RefForm = InternalForm;\nRefForm.FormProvider = FormProvider;\nRefForm.Field = Field;\nRefForm.List = List;\nRefForm.useForm = useForm;\nRefForm.useWatch = useWatch;\nexport { Field, List, useForm, FormProvider, FieldContext, ListContext, useWatch };\nexport default RefForm;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\n\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n\n setValue(updater);\n }\n\n return [value, safeSetState];\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*! *****************************************************************************\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***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\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 () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result[\"default\"] = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar attributes = \"accept acceptCharset accessKey action allowFullScreen allowTransparency\\n alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\\n charSet checked classID className colSpan cols content contentEditable contextMenu\\n controls coords crossOrigin data dateTime default defer dir disabled download draggable\\n encType form formAction formEncType formMethod formNoValidate formTarget frameBorder\\n headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\\n is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\\n mediaGroup method min minLength multiple muted name noValidate nonce open\\n optimum pattern placeholder poster preload radioGroup readOnly rel required\\n reversed role rowSpan rows sandbox scope scoped scrolling seamless selected\\n shape size sizes span spellCheck src srcDoc srcLang srcSet start step style\\n summary tabIndex target title type useMap value width wmode wrap\";\nvar eventsName = \"onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\\n onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\\n onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\\n onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\\n onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\\n onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\\n onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError\";\nvar propList = \"\".concat(attributes, \" \").concat(eventsName).split(/[\\s\\n]+/);\n/* eslint-enable max-len */\n\nvar ariaPrefix = 'aria-';\nvar dataPrefix = 'data-';\n\nfunction match(key, prefix) {\n return key.indexOf(prefix) === 0;\n}\n/**\n * Picker props from exist props with filter\n * @param props Passed props\n * @param ariaOnly boolean | { aria?: boolean; data?: boolean; attr?: boolean; } filter config\n */\n\n\nexport default function pickAttrs(props) {\n var ariaOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var mergedConfig;\n\n if (ariaOnly === false) {\n mergedConfig = {\n aria: true,\n data: true,\n attr: true\n };\n } else if (ariaOnly === true) {\n mergedConfig = {\n aria: true\n };\n } else {\n mergedConfig = _objectSpread({}, ariaOnly);\n }\n\n var attrs = {};\n Object.keys(props).forEach(function (key) {\n if ( // Aria\n mergedConfig.aria && (key === 'role' || match(key, ariaPrefix)) || // Data\n mergedConfig.data && match(key, dataPrefix) || // Attr\n mergedConfig.attr && propList.includes(key)) {\n attrs[key] = props[key];\n }\n });\n return attrs;\n}","import { each, isArray, isString } from '@antv/util';\nvar regexTags = /[MLHVQTCSAZ]([^MLHVQTCSAZ]*)/ig;\nvar regexDot = /[^\\s\\,]+/ig;\n\nfunction parsePath(p) {\n var path = p || [];\n\n if (isArray(path)) {\n return path;\n }\n\n if (isString(path)) {\n path = path.match(regexTags);\n each(path, function (item, index) {\n // @ts-ignore\n item = item.match(regexDot);\n\n if (item[0].length > 1) {\n var tag = item[0].charAt(0); // @ts-ignore\n\n item.splice(1, 0, item[0].substr(1)); // @ts-ignore\n\n item[0] = tag;\n } // @ts-ignore\n\n\n each(item, function (sub, i) {\n if (!isNaN(sub)) {\n // @ts-ignore\n item[i] = +sub;\n }\n }); // @ts-ignore\n\n path[index] = item;\n });\n return path;\n }\n}\n\nexport default parsePath;","import { vec2 } from '@antv/matrix-util';\n\nfunction smoothBezier(points, smooth, isLoop, constraint) {\n var cps = [];\n var hasConstraint = !!constraint;\n var prevPoint;\n var nextPoint;\n var min;\n var max;\n var nextCp0;\n var cp1;\n var cp0;\n\n if (hasConstraint) {\n min = constraint[0], max = constraint[1];\n\n for (var i = 0, l = points.length; i < l; i += 1) {\n var point = points[i];\n min = vec2.min([0, 0], min, point);\n max = vec2.max([0, 0], max, point);\n }\n }\n\n for (var i = 0, len = points.length; i < len; i += 1) {\n var point = points[i];\n\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 var prevIdx = [i ? i - 1 : len - 1, i - 1][isLoop ? 0 : 1];\n prevPoint = points[prevIdx];\n nextPoint = points[isLoop ? (i + 1) % len : i + 1];\n var v = [0, 0];\n v = vec2.sub(v, nextPoint, prevPoint);\n v = vec2.scale(v, v, smooth);\n var d0 = vec2.distance(point, prevPoint);\n var d1 = vec2.distance(point, nextPoint);\n var sum = d0 + d1;\n\n if (sum !== 0) {\n d0 /= sum;\n d1 /= sum;\n }\n\n var v1 = vec2.scale([0, 0], v, -d0);\n var v2 = vec2.scale([0, 0], v, d1);\n cp1 = vec2.add([0, 0], point, v1);\n nextCp0 = vec2.add([0, 0], point, v2); // 下一个控制点必须在这个点和下一个点之间\n\n nextCp0 = vec2.min([0, 0], nextCp0, vec2.max([0, 0], nextPoint, point));\n nextCp0 = vec2.max([0, 0], nextCp0, vec2.min([0, 0], nextPoint, point)); // 重新计算 cp1 的值\n\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); // 上一个控制点必须要在上一个点和这一个点之间\n\n cp1 = vec2.min([0, 0], cp1, vec2.max([0, 0], prevPoint, point));\n cp1 = vec2.max([0, 0], cp1, vec2.min([0, 0], prevPoint, point)); // 重新计算 nextCp0 的值\n\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);\n\n if (hasConstraint) {\n cp1 = vec2.max([0, 0], cp1, min);\n cp1 = vec2.min([0, 0], cp1, max);\n nextCp0 = vec2.max([0, 0], nextCp0, min);\n nextCp0 = vec2.min([0, 0], nextCp0, max);\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 * create bezier spline from catmull rom spline\n * @param {Array} crp Catmull Rom Points\n * @param {boolean} z Spline is loop\n * @param {Array} constraint Constraint\n */\n\n\nfunction catmullRom2Bezier(crp, z, constraint) {\n if (z === void 0) {\n z = false;\n }\n\n if (constraint === void 0) {\n constraint = [[0, 0], [1, 1]];\n }\n\n var isLoop = !!z;\n var pointList = [];\n\n for (var i = 0, l = crp.length; i < l; i += 2) {\n pointList.push([crp[i], crp[i + 1]]);\n }\n\n var controlPointList = smoothBezier(pointList, 0.4, isLoop, constraint);\n var len = pointList.length;\n var d1 = [];\n var cp1;\n var cp2;\n var p;\n\n for (var i = 0; i < len - 1; i += 1) {\n cp1 = controlPointList[i * 2];\n cp2 = controlPointList[i * 2 + 1];\n p = pointList[i + 1];\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 d1.push(['C', cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]]);\n }\n\n return d1;\n}\n\nexport default catmullRom2Bezier;","import { isArray } from '@antv/util';\nvar SPACES = \"\\t\\n\\x0B\\f\\r \\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\";\nvar PATH_COMMAND = new RegExp('([a-z])[' + SPACES + ',]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[' + SPACES + ']*,?[' + SPACES + ']*)+)', 'ig');\nvar PATH_VALUES = new RegExp('(-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?)[' + SPACES + ']*,?[' + SPACES + ']*', 'ig'); // Parses given path string into an array of arrays of path segments\n\nexport default function parsePathString(pathString) {\n if (!pathString) {\n return null;\n }\n\n if (isArray(pathString)) {\n return pathString;\n }\n\n var paramCounts = {\n a: 7,\n c: 6,\n o: 2,\n h: 1,\n l: 2,\n m: 2,\n r: 4,\n q: 4,\n s: 4,\n t: 2,\n v: 1,\n u: 3,\n z: 0\n };\n var data = [];\n String(pathString).replace(PATH_COMMAND, function (a, b, c) {\n var params = [];\n var name = b.toLowerCase();\n c.replace(PATH_VALUES, function (a, b) {\n b && params.push(+b);\n });\n\n if (name === 'm' && params.length > 2) {\n data.push([b].concat(params.splice(0, 2)));\n name = 'l';\n b = b === 'm' ? 'l' : 'L';\n }\n\n if (name === 'o' && params.length === 1) {\n data.push([b, params[0]]);\n }\n\n if (name === 'r') {\n data.push([b].concat(params));\n } else {\n while (params.length >= paramCounts[name]) {\n data.push([b].concat(params.splice(0, paramCounts[name])));\n\n if (!paramCounts[name]) {\n break;\n }\n }\n }\n\n return '';\n });\n return data;\n}","import parsePathString from './parse-path-string';\nvar REGEX_MD = /[a-z]/;\n\nfunction toSymmetry(p, c) {\n return [c[0] + (c[0] - p[0]), c[1] + (c[1] - p[1])];\n}\n\nexport default function pathToAbsolute(pathString) {\n var pathArray = parsePathString(pathString);\n\n if (!pathArray || !pathArray.length) {\n return [['M', 0, 0]];\n }\n\n var needProcess = false; // 如果存在小写的命令或者 V,H,T,S 则需要处理\n\n for (var i = 0; i < pathArray.length; i++) {\n var cmd = pathArray[i][0]; // 如果存在相对位置的命令,则中断返回\n\n if (REGEX_MD.test(cmd) || ['V', 'H', 'T', 'S'].indexOf(cmd) >= 0) {\n needProcess = true;\n break;\n }\n } // 如果不存在相对命令,则直接返回\n // 如果在业务上都写绝对路径,这种方式最快,仅做了一次检测\n\n\n if (!needProcess) {\n return pathArray;\n }\n\n var res = [];\n var x = 0;\n var y = 0;\n var mx = 0;\n var my = 0;\n var start = 0;\n var pa0;\n var dots;\n var first = pathArray[0];\n\n if (first[0] === 'M' || first[0] === 'm') {\n x = +first[1];\n y = +first[2];\n mx = x;\n my = y;\n start++;\n res[0] = ['M', x, y];\n }\n\n for (var i = start, ii = pathArray.length; i < ii; i++) {\n var pa = pathArray[i];\n var preParams = res[i - 1]; // 取前一个已经处理后的节点,否则会出现问题\n\n var r = [];\n var cmd = pa[0];\n var upCmd = cmd.toUpperCase();\n\n if (cmd !== upCmd) {\n r[0] = upCmd;\n\n switch (upCmd) {\n case 'A':\n r[1] = pa[1];\n r[2] = pa[2];\n r[3] = pa[3];\n r[4] = pa[4];\n r[5] = pa[5];\n r[6] = +pa[6] + x;\n r[7] = +pa[7] + y;\n break;\n\n case 'V':\n r[1] = +pa[1] + y;\n break;\n\n case 'H':\n r[1] = +pa[1] + x;\n break;\n\n case 'M':\n mx = +pa[1] + x;\n my = +pa[2] + y;\n r[1] = mx;\n r[2] = my;\n break;\n // for lint\n\n default:\n for (var j = 1, jj = pa.length; j < jj; j++) {\n r[j] = +pa[j] + (j % 2 ? x : y);\n }\n\n }\n } else {\n // 如果本来已经大写,则不处理\n r = pathArray[i];\n } // 需要在外面统一做,同时处理 V,H,S,T 等特殊指令\n\n\n switch (upCmd) {\n case 'Z':\n x = +mx;\n y = +my;\n break;\n\n case 'H':\n x = r[1];\n r = ['L', x, y];\n break;\n\n case 'V':\n y = r[1];\n r = ['L', x, y];\n break;\n\n case 'T':\n x = r[1];\n y = r[2]; // 以 x, y 为中心的,上一个控制点的对称点\n // 需要假设上一个节点的命令为 Q\n\n var symetricT = toSymmetry([preParams[1], preParams[2]], [preParams[3], preParams[4]]);\n r = ['Q', symetricT[0], symetricT[1], x, y];\n break;\n\n case 'S':\n x = r[r.length - 2];\n y = r[r.length - 1]; // 以 x,y 为中心,取上一个控制点,\n // 需要假设上一个线段为 C 或者 S\n\n var length_1 = preParams.length;\n var symetricS = toSymmetry([preParams[length_1 - 4], preParams[length_1 - 3]], [preParams[length_1 - 2], preParams[length_1 - 1]]);\n r = ['C', symetricS[0], symetricS[1], r[1], r[2], x, y];\n break;\n\n case 'M':\n mx = r[r.length - 2];\n my = r[r.length - 1];\n break;\n // for lint\n\n default:\n x = r[r.length - 2];\n y = r[r.length - 1];\n }\n\n res.push(r);\n }\n\n return res;\n}","var TAU = Math.PI * 2;\n\nvar mapToEllipse = function mapToEllipse(_a, rx, ry, cosphi, sinphi, centerx, centery) {\n var x = _a.x,\n y = _a.y;\n x *= rx;\n y *= ry;\n var xp = cosphi * x - sinphi * y;\n var yp = sinphi * x + cosphi * y;\n return {\n x: xp + centerx,\n y: yp + centery\n };\n};\n\nvar approxUnitArc = function approxUnitArc(ang1, ang2) {\n // If 90 degree circular arc, use a constant\n // as derived from http://spencermortensen.com/articles/bezier-circle\n var a = ang2 === 1.5707963267948966 ? 0.551915024494 : ang2 === -1.5707963267948966 ? -0.551915024494 : 4 / 3 * Math.tan(ang2 / 4);\n var x1 = Math.cos(ang1);\n var y1 = Math.sin(ang1);\n var x2 = Math.cos(ang1 + ang2);\n var y2 = Math.sin(ang1 + ang2);\n return [{\n x: x1 - y1 * a,\n y: y1 + x1 * a\n }, {\n x: x2 + y2 * a,\n y: y2 - x2 * a\n }, {\n x: x2,\n y: y2\n }];\n};\n\nvar vectorAngle = function vectorAngle(ux, uy, vx, vy) {\n var sign = ux * vy - uy * vx < 0 ? -1 : 1;\n var dot = ux * vx + uy * vy;\n\n if (dot > 1) {\n dot = 1;\n }\n\n if (dot < -1) {\n dot = -1;\n }\n\n return sign * Math.acos(dot);\n};\n\nvar getArcCenter = function getArcCenter(px, py, cx, cy, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp) {\n var rxsq = Math.pow(rx, 2);\n var rysq = Math.pow(ry, 2);\n var pxpsq = Math.pow(pxp, 2);\n var pypsq = Math.pow(pyp, 2);\n var radicant = rxsq * rysq - rxsq * pypsq - rysq * pxpsq;\n\n if (radicant < 0) {\n radicant = 0;\n }\n\n radicant /= rxsq * pypsq + rysq * pxpsq;\n radicant = Math.sqrt(radicant) * (largeArcFlag === sweepFlag ? -1 : 1);\n var centerxp = radicant * rx / ry * pyp;\n var centeryp = radicant * -ry / rx * pxp;\n var centerx = cosphi * centerxp - sinphi * centeryp + (px + cx) / 2;\n var centery = sinphi * centerxp + cosphi * centeryp + (py + cy) / 2;\n var vx1 = (pxp - centerxp) / rx;\n var vy1 = (pyp - centeryp) / ry;\n var vx2 = (-pxp - centerxp) / rx;\n var vy2 = (-pyp - centeryp) / ry;\n var ang1 = vectorAngle(1, 0, vx1, vy1);\n var ang2 = vectorAngle(vx1, vy1, vx2, vy2);\n\n if (sweepFlag === 0 && ang2 > 0) {\n ang2 -= TAU;\n }\n\n if (sweepFlag === 1 && ang2 < 0) {\n ang2 += TAU;\n }\n\n return [centerx, centery, ang1, ang2];\n};\n\nvar arcToBezier = function arcToBezier(_a) {\n var px = _a.px,\n py = _a.py,\n cx = _a.cx,\n cy = _a.cy,\n rx = _a.rx,\n ry = _a.ry,\n _b = _a.xAxisRotation,\n xAxisRotation = _b === void 0 ? 0 : _b,\n _c = _a.largeArcFlag,\n largeArcFlag = _c === void 0 ? 0 : _c,\n _d = _a.sweepFlag,\n sweepFlag = _d === void 0 ? 0 : _d;\n var curves = [];\n\n if (rx === 0 || ry === 0) {\n return [{\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 0,\n x: cx,\n y: cy\n }];\n }\n\n var sinphi = Math.sin(xAxisRotation * TAU / 360);\n var cosphi = Math.cos(xAxisRotation * TAU / 360);\n var pxp = cosphi * (px - cx) / 2 + sinphi * (py - cy) / 2;\n var pyp = -sinphi * (px - cx) / 2 + cosphi * (py - cy) / 2;\n\n if (pxp === 0 && pyp === 0) {\n return [{\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 0,\n x: cx,\n y: cy\n }];\n }\n\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n var lambda = Math.pow(pxp, 2) / Math.pow(rx, 2) + Math.pow(pyp, 2) / Math.pow(ry, 2);\n\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n\n var _e = getArcCenter(px, py, cx, cy, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp),\n centerx = _e[0],\n centery = _e[1],\n ang1 = _e[2],\n ang2 = _e[3]; // If 'ang2' == 90.0000000001, then `ratio` will evaluate to\n // 1.0000000001. This causes `segments` to be greater than one, which is an\n // unecessary split, and adds extra points to the bezier curve. To alleviate\n // this issue, we round to 1.0 when the ratio is close to 1.0.\n\n\n var ratio = Math.abs(ang2) / (TAU / 4);\n\n if (Math.abs(1.0 - ratio) < 0.0000001) {\n ratio = 1.0;\n }\n\n var segments = Math.max(Math.ceil(ratio), 1);\n ang2 /= segments;\n\n for (var i = 0; i < segments; i++) {\n curves.push(approxUnitArc(ang1, ang2));\n ang1 += ang2;\n }\n\n return curves.map(function (curve) {\n var _a = mapToEllipse(curve[0], rx, ry, cosphi, sinphi, centerx, centery),\n x1 = _a.x,\n y1 = _a.y;\n\n var _b = mapToEllipse(curve[1], rx, ry, cosphi, sinphi, centerx, centery),\n x2 = _b.x,\n y2 = _b.y;\n\n var _c = mapToEllipse(curve[2], rx, ry, cosphi, sinphi, centerx, centery),\n x = _c.x,\n y = _c.y;\n\n return {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n x: x,\n y: y\n };\n });\n};\n\nexport function arcToCubic(x1, y1, rx, ry, angle, LAF, SF, x2, y2) {\n var curves = arcToBezier({\n px: x1,\n py: y1,\n cx: x2,\n cy: y2,\n rx: rx,\n ry: ry,\n xAxisRotation: angle,\n largeArcFlag: LAF,\n sweepFlag: SF\n });\n return curves.reduce(function (prev, cur) {\n var x1 = cur.x1,\n y1 = cur.y1,\n x2 = cur.x2,\n y2 = cur.y2,\n x = cur.x,\n y = cur.y;\n prev.push(x1, y1, x2, y2, x, y);\n return prev;\n }, []);\n}","import { mod, toRadian } from '@antv/util'; // 向量长度\n\nfunction vMag(v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n} // u.v/|u||v|,计算夹角的余弦值\n\n\nfunction vRatio(u, v) {\n // 当存在一个向量的长度为 0 时,夹角也为 0,即夹角的余弦值为 1\n return vMag(u) * vMag(v) ? (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v)) : 1;\n} // 向量角度\n\n\nfunction vAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v));\n}\n/**\n * 判断两个点是否重合,点坐标的格式为 [x, y]\n * @param {Array} point1 第一个点\n * @param {Array} point2 第二个点\n */\n\n\nexport function isSamePoint(point1, point2) {\n return point1[0] === point2[0] && point1[1] === point2[1];\n} // A 0:rx 1:ry 2:x-axis-rotation 3:large-arc-flag 4:sweep-flag 5: x 6: y\n\nexport default function getArcParams(startPoint, params) {\n var rx = params[1];\n var ry = params[2];\n var xRotation = mod(toRadian(params[3]), Math.PI * 2);\n var arcFlag = params[4];\n var sweepFlag = params[5]; // 弧形起点坐标\n\n var x1 = startPoint[0];\n var y1 = startPoint[1]; // 弧形终点坐标\n\n var x2 = params[6];\n var y2 = params[7];\n var xp = Math.cos(xRotation) * (x1 - x2) / 2.0 + Math.sin(xRotation) * (y1 - y2) / 2.0;\n var yp = -1 * Math.sin(xRotation) * (x1 - x2) / 2.0 + Math.cos(xRotation) * (y1 - y2) / 2.0;\n var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry);\n\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n\n var diff = rx * rx * (yp * yp) + ry * ry * (xp * xp);\n var f = diff ? Math.sqrt((rx * rx * (ry * ry) - diff) / diff) : 1;\n\n if (arcFlag === sweepFlag) {\n f *= -1;\n }\n\n if (isNaN(f)) {\n f = 0;\n } // 旋转前的起点坐标,且当长半轴和短半轴的长度为 0 时,坐标按 (0, 0) 处理\n\n\n var cxp = ry ? f * rx * yp / ry : 0;\n var cyp = rx ? f * -ry * xp / rx : 0; // 椭圆圆心坐标\n\n var cx = (x1 + x2) / 2.0 + Math.cos(xRotation) * cxp - Math.sin(xRotation) * cyp;\n var cy = (y1 + y2) / 2.0 + Math.sin(xRotation) * cxp + Math.cos(xRotation) * cyp; // 起始点的单位向量\n\n var u = [(xp - cxp) / rx, (yp - cyp) / ry]; // 终止点的单位向量\n\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry]; // 计算起始点和圆心的连线,与 x 轴正方向的夹角\n\n var theta = vAngle([1, 0], u); // 计算圆弧起始点和终止点与椭圆圆心连线的夹角\n\n var dTheta = vAngle(u, v);\n\n if (vRatio(u, v) <= -1) {\n dTheta = Math.PI;\n }\n\n if (vRatio(u, v) >= 1) {\n dTheta = 0;\n }\n\n if (sweepFlag === 0 && dTheta > 0) {\n dTheta = dTheta - 2 * Math.PI;\n }\n\n if (sweepFlag === 1 && dTheta < 0) {\n dTheta = dTheta + 2 * Math.PI;\n }\n\n return {\n cx: cx,\n cy: cy,\n // 弧形的起点和终点相同时,长轴和短轴的长度按 0 处理\n rx: isSamePoint(startPoint, [x2, y2]) ? 0 : rx,\n ry: isSamePoint(startPoint, [x2, y2]) ? 0 : ry,\n startAngle: theta,\n endAngle: theta + dTheta,\n xRotation: xRotation,\n arcFlag: arcFlag,\n sweepFlag: sweepFlag\n };\n}","import getArcParams from './get-arc-params';\nimport { isSamePoint } from './get-arc-params';\nimport parsePath from './parse-path'; // 点对称\n\nfunction toSymmetry(point, center) {\n return [center[0] + (center[0] - point[0]), center[1] + (center[1] - point[1])];\n}\n\nexport default function getSegments(path) {\n path = parsePath(path);\n var segments = [];\n var currentPoint = null; // 当前图形\n\n var nextParams = null; // 下一节点的 path 参数\n\n var startMovePoint = null; // 开始 M 的点,可能会有多个\n\n var lastStartMovePointIndex = 0; // 最近一个开始点 M 的索引\n\n var count = path.length;\n\n for (var i = 0; i < count; i++) {\n var params = path[i];\n nextParams = path[i + 1];\n var command = params[0]; // 数学定义上的参数,便于后面的计算\n\n var segment = {\n command: command,\n prePoint: currentPoint,\n params: params,\n startTangent: null,\n endTangent: null\n };\n\n switch (command) {\n case 'M':\n startMovePoint = [params[1], params[2]];\n lastStartMovePointIndex = i;\n break;\n\n case 'A':\n var arcParams = getArcParams(currentPoint, params);\n segment['arcParams'] = arcParams;\n break;\n\n default:\n break;\n }\n\n if (command === 'Z') {\n // 有了 Z 后,当前节点从开始 M 的点开始\n currentPoint = startMovePoint; // 如果当前点的命令为 Z,相当于当前点为最近一个 M 点,则下一个点直接指向最近一个 M 点的下一个点\n\n nextParams = path[lastStartMovePointIndex + 1];\n } else {\n var len = params.length;\n currentPoint = [params[len - 2], params[len - 1]];\n }\n\n if (nextParams && nextParams[0] === 'Z') {\n // 如果下一个点的命令为 Z,则下一个点直接指向最近一个 M 点\n nextParams = path[lastStartMovePointIndex];\n\n if (segments[lastStartMovePointIndex]) {\n // 如果下一个点的命令为 Z,则最近一个 M 点的前一个点为当前点\n segments[lastStartMovePointIndex].prePoint = currentPoint;\n }\n }\n\n segment['currentPoint'] = currentPoint; // 如果当前点与最近一个 M 点相同,则最近一个 M 点的前一个点为当前点的前一个点\n\n if (segments[lastStartMovePointIndex] && isSamePoint(currentPoint, segments[lastStartMovePointIndex].currentPoint)) {\n segments[lastStartMovePointIndex].prePoint = segment.prePoint;\n }\n\n var nextPoint = nextParams ? [nextParams[nextParams.length - 2], nextParams[nextParams.length - 1]] : null;\n segment['nextPoint'] = nextPoint; // Add startTangent and endTangent\n\n var prePoint = segment.prePoint;\n\n if (['L', 'H', 'V'].includes(command)) {\n segment.startTangent = [prePoint[0] - currentPoint[0], prePoint[1] - currentPoint[1]];\n segment.endTangent = [currentPoint[0] - prePoint[0], currentPoint[1] - prePoint[1]];\n } else if (command === 'Q') {\n // 二次贝塞尔曲线只有一个控制点\n var cp = [params[1], params[2]]; // 二次贝塞尔曲线的终点为 currentPoint\n\n segment.startTangent = [prePoint[0] - cp[0], prePoint[1] - cp[1]];\n segment.endTangent = [currentPoint[0] - cp[0], currentPoint[1] - cp[1]];\n } else if (command === 'T') {\n var preSegment = segments[i - 1];\n var cp = toSymmetry(preSegment.currentPoint, prePoint);\n\n if (preSegment.command === 'Q') {\n segment.command = 'Q';\n segment.startTangent = [prePoint[0] - cp[0], prePoint[1] - cp[1]];\n segment.endTangent = [currentPoint[0] - cp[0], currentPoint[1] - cp[1]];\n } else {\n segment.command = 'TL';\n segment.startTangent = [prePoint[0] - currentPoint[0], prePoint[1] - currentPoint[1]];\n segment.endTangent = [currentPoint[0] - prePoint[0], currentPoint[1] - prePoint[1]];\n }\n } else if (command === 'C') {\n // 三次贝塞尔曲线有两个控制点\n var cp1 = [params[1], params[2]];\n var cp2 = [params[3], params[4]];\n segment.startTangent = [prePoint[0] - cp1[0], prePoint[1] - cp1[1]];\n segment.endTangent = [currentPoint[0] - cp2[0], currentPoint[1] - cp2[1]]; // horizontal line, eg. ['C', 100, 100, 100, 100, 200, 200]\n\n if (segment.startTangent[0] === 0 && segment.startTangent[1] === 0) {\n segment.startTangent = [cp1[0] - cp2[0], cp1[1] - cp2[1]];\n }\n\n if (segment.endTangent[0] === 0 && segment.endTangent[1] === 0) {\n segment.endTangent = [cp2[0] - cp1[0], cp2[1] - cp1[1]];\n }\n } else if (command === 'S') {\n var preSegment = segments[i - 1];\n var cp1 = toSymmetry(preSegment.currentPoint, prePoint);\n var cp2 = [params[1], params[2]];\n\n if (preSegment.command === 'C') {\n segment.command = 'C'; // 将 S 命令变换为 C 命令\n\n segment.startTangent = [prePoint[0] - cp1[0], prePoint[1] - cp1[1]];\n segment.endTangent = [currentPoint[0] - cp2[0], currentPoint[1] - cp2[1]];\n } else {\n segment.command = 'SQ'; // 将 S 命令变换为 SQ 命令\n\n segment.startTangent = [prePoint[0] - cp2[0], prePoint[1] - cp2[1]];\n segment.endTangent = [currentPoint[0] - cp2[0], currentPoint[1] - cp2[1]];\n }\n } else if (command === 'A') {\n var d = 0.001;\n\n var _a = segment['arcParams'] || {},\n _b = _a.cx,\n cx = _b === void 0 ? 0 : _b,\n _c = _a.cy,\n cy = _c === void 0 ? 0 : _c,\n _d = _a.rx,\n rx = _d === void 0 ? 0 : _d,\n _e = _a.ry,\n ry = _e === void 0 ? 0 : _e,\n _f = _a.sweepFlag,\n sweepFlag = _f === void 0 ? 0 : _f,\n _g = _a.startAngle,\n startAngle = _g === void 0 ? 0 : _g,\n _h = _a.endAngle,\n endAngle = _h === void 0 ? 0 : _h;\n\n if (sweepFlag === 0) {\n d *= -1;\n }\n\n var dx1 = rx * Math.cos(startAngle - d) + cx;\n var dy1 = ry * Math.sin(startAngle - d) + cy;\n segment.startTangent = [dx1 - startMovePoint[0], dy1 - startMovePoint[1]];\n var dx2 = rx * Math.cos(startAngle + endAngle + d) + cx;\n var dy2 = ry * Math.sin(startAngle + endAngle - d) + cy;\n segment.endTangent = [prePoint[0] - dx2, prePoint[1] - dy2];\n }\n\n segments.push(segment);\n }\n\n return segments;\n}","var isBetween = function isBetween(value, min, max) {\n return value >= min && value <= max;\n};\n\nexport default function getLineIntersect(p0, p1, p2, p3) {\n var tolerance = 0.001;\n var E = {\n x: p2.x - p0.x,\n y: p2.y - p0.y\n };\n var D0 = {\n x: p1.x - p0.x,\n y: p1.y - p0.y\n };\n var D1 = {\n x: p3.x - p2.x,\n y: p3.y - p2.y\n };\n var kross = D0.x * D1.y - D0.y * D1.x;\n var sqrKross = kross * kross;\n var sqrLen0 = D0.x * D0.x + D0.y * D0.y;\n var sqrLen1 = D1.x * D1.x + D1.y * D1.y;\n var point = null;\n\n if (sqrKross > tolerance * sqrLen0 * sqrLen1) {\n var s = (E.x * D1.y - E.y * D1.x) / kross;\n var t = (E.x * D0.y - E.y * D0.x) / kross;\n\n if (isBetween(s, 0, 1) && isBetween(t, 0, 1)) {\n point = {\n x: p0.x + s * D0.x,\n y: p0.y + s * D0.y\n };\n }\n }\n\n return point;\n}\n;","/**\n * @fileoverview 判断点是否在多边形内\n * @author dxq613@gmail.com\n */\n// 多边形的射线检测,参考:https://blog.csdn.net/WilliamSun0122/article/details/77994526\nvar tolerance = 1e-6; // 三态函数,判断两个double在eps精度下的大小关系\n\nfunction dcmp(x) {\n if (Math.abs(x) < tolerance) {\n return 0;\n }\n\n return x < 0 ? -1 : 1;\n} // 判断点Q是否在p1和p2的线段上\n\n\nfunction onSegment(p1, p2, q) {\n if ((q[0] - p1[0]) * (p2[1] - p1[1]) === (p2[0] - p1[0]) * (q[1] - p1[1]) && Math.min(p1[0], p2[0]) <= q[0] && q[0] <= Math.max(p1[0], p2[0]) && Math.min(p1[1], p2[1]) <= q[1] && q[1] <= Math.max(p1[1], p2[1])) {\n return true;\n }\n\n return false;\n} // 判断点P在多边形内-射线法\n\n\nexport default function isInPolygon(points, x, y) {\n var isHit = false;\n var n = points.length;\n\n if (n <= 2) {\n // svg 中点小于 3 个时,不显示,也无法被拾取\n return false;\n }\n\n for (var i = 0; i < n; i++) {\n var p1 = points[i];\n var p2 = points[(i + 1) % n];\n\n if (onSegment(p1, p2, [x, y])) {\n // 点在多边形一条边上\n return true;\n } // 前一个判断min(p1[1],p2[1]) 0 !== dcmp(p2[1] - y) > 0 && dcmp(x - (y - p1[1]) * (p1[0] - p2[0]) / (p1[1] - p2[1]) - p1[0]) < 0) {\n isHit = !isHit;\n }\n }\n\n return isHit;\n}","import isPointInPolygon from './point-in-polygon';\nimport getLineIntersect from './get-line-intersect';\nimport { each } from '@antv/util';\n\nfunction parseToLines(points) {\n var lines = [];\n var count = points.length;\n\n for (var i = 0; i < count - 1; i++) {\n var point = points[i];\n var next = points[i + 1];\n lines.push({\n from: {\n x: point[0],\n y: point[1]\n },\n to: {\n x: next[0],\n y: next[1]\n }\n });\n }\n\n if (lines.length > 1) {\n var first = points[0];\n var last = points[count - 1];\n lines.push({\n from: {\n x: last[0],\n y: last[1]\n },\n to: {\n x: first[0],\n y: first[1]\n }\n });\n }\n\n return lines;\n}\n\nfunction lineIntersectPolygon(lines, line) {\n var isIntersect = false;\n each(lines, function (l) {\n if (getLineIntersect(l.from, l.to, line.from, line.to)) {\n isIntersect = true;\n return false;\n }\n });\n return isIntersect;\n}\n\nfunction getBBox(points) {\n var xArr = points.map(function (p) {\n return p[0];\n });\n var yArr = points.map(function (p) {\n return p[1];\n });\n return {\n minX: Math.min.apply(null, xArr),\n maxX: Math.max.apply(null, xArr),\n minY: Math.min.apply(null, yArr),\n maxY: Math.max.apply(null, yArr)\n };\n}\n\nfunction intersectBBox(box1, box2) {\n return !(box2.minX > box1.maxX || box2.maxX < box1.minX || box2.minY > box1.maxY || box2.maxY < box1.minY);\n}\n\nexport default function isPolygonsIntersect(points1, points2) {\n // 空数组,或者一个点返回 false\n if (points1.length < 2 || points2.length < 2) {\n return false;\n }\n\n var bbox1 = getBBox(points1);\n var bbox2 = getBBox(points2); // 判定包围盒是否相交,比判定点是否在多边形内要快的多,可以筛选掉大多数情况\n\n if (!intersectBBox(bbox1, bbox2)) {\n return false;\n }\n\n var isIn = false; // 判定点是否在多边形内部,一旦有一个点在另一个多边形内,则返回\n\n each(points2, function (point) {\n if (isPointInPolygon(points1, point[0], point[1])) {\n isIn = true;\n return false;\n }\n });\n\n if (isIn) {\n return true;\n } // 两个多边形都需要判定\n\n\n each(points1, function (point) {\n if (isPointInPolygon(points2, point[0], point[1])) {\n isIn = true;\n return false;\n }\n });\n\n if (isIn) {\n return true;\n }\n\n var lines1 = parseToLines(points1);\n var lines2 = parseToLines(points2);\n var isIntersect = false;\n each(lines2, function (line) {\n if (lineIntersectPolygon(lines1, line)) {\n isIntersect = true;\n return false;\n }\n });\n return isIntersect;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"children\", \"locked\"];\nimport * as React from 'react';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport shallowEqual from 'shallowequal';\nexport var MenuContext = /*#__PURE__*/React.createContext(null);\n\nfunction mergeProps(origin, target) {\n var clone = _objectSpread({}, origin);\n\n Object.keys(target).forEach(function (key) {\n var value = target[key];\n\n if (value !== undefined) {\n clone[key] = value;\n }\n });\n return clone;\n}\n\nexport default function InheritableContextProvider(_ref) {\n var children = _ref.children,\n locked = _ref.locked,\n restProps = _objectWithoutProperties(_ref, _excluded);\n\n var context = React.useContext(MenuContext);\n var inheritableContext = useMemo(function () {\n return mergeProps(context, restProps);\n }, [context, restProps], function (prev, next) {\n return !locked && (prev[0] !== next[0] || !shallowEqual(prev[1], next[1]));\n });\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: inheritableContext\n }, children);\n}","import * as React from 'react';\nimport { MenuContext } from '../context/MenuContext';\nexport default function useActive(eventKey, disabled, onMouseEnter, onMouseLeave) {\n var _React$useContext = React.useContext(MenuContext),\n activeKey = _React$useContext.activeKey,\n onActive = _React$useContext.onActive,\n onInactive = _React$useContext.onInactive;\n\n var ret = {\n active: activeKey === eventKey\n }; // Skip when disabled\n\n if (!disabled) {\n ret.onMouseEnter = function (domEvent) {\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n key: eventKey,\n domEvent: domEvent\n });\n onActive(eventKey);\n };\n\n ret.onMouseLeave = function (domEvent) {\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n key: eventKey,\n domEvent: domEvent\n });\n onInactive(eventKey);\n };\n }\n\n return ret;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"item\"];\nimport warning from \"rc-util/es/warning\";\n/**\n * `onClick` event return `info.item` which point to react node directly.\n * We should warning this since it will not work on FC.\n */\n\nexport function warnItemProp(_ref) {\n var item = _ref.item,\n restInfo = _objectWithoutProperties(_ref, _excluded);\n\n Object.defineProperty(restInfo, 'item', {\n get: function get() {\n warning(false, '`info.item` is deprecated since we will move to function component that not provides React Node instance in future.');\n return item;\n }\n });\n return restInfo;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nexport default function Icon(_ref) {\n var icon = _ref.icon,\n props = _ref.props,\n children = _ref.children;\n var iconNode;\n\n if (typeof icon === 'function') {\n iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, props));\n } else {\n // Compatible for origin definition\n iconNode = icon;\n }\n\n return iconNode || children || null;\n}","import * as React from 'react';\nimport { MenuContext } from '../context/MenuContext';\nexport default function useDirectionStyle(level) {\n var _React$useContext = React.useContext(MenuContext),\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl,\n inlineIndent = _React$useContext.inlineIndent;\n\n if (mode !== 'inline') {\n return null;\n }\n\n var len = level;\n return rtl ? {\n paddingRight: len * inlineIndent\n } : {\n paddingLeft: len * inlineIndent\n };\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nvar EmptyList = [];\nexport var PathRegisterContext = /*#__PURE__*/React.createContext(null);\nexport function useMeasure() {\n return React.useContext(PathRegisterContext);\n} // ========================= Path Tracker ==========================\n\nexport var PathTrackerContext = /*#__PURE__*/React.createContext(EmptyList);\nexport function useFullPath(eventKey) {\n var parentKeyPath = React.useContext(PathTrackerContext);\n return React.useMemo(function () {\n return eventKey !== undefined ? [].concat(_toConsumableArray(parentKeyPath), [eventKey]) : parentKeyPath;\n }, [parentKeyPath, eventKey]);\n}\nexport var PathUserContext = /*#__PURE__*/React.createContext(null);","import * as React from 'react';\nexport var IdContext = /*#__PURE__*/React.createContext(null);\nexport function getMenuId(uuid, eventKey) {\n if (uuid === undefined) {\n return null;\n }\n\n return \"\".concat(uuid, \"-\").concat(eventKey);\n}\n/**\n * Get `data-menu-id`\n */\n\nexport function useMenuId(eventKey) {\n var id = React.useContext(IdContext);\n return getMenuId(id, eventKey);\n}","import * as React from 'react';\nvar PrivateContext = /*#__PURE__*/React.createContext({});\nexport default PrivateContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"title\", \"attribute\", \"elementRef\"],\n _excluded2 = [\"style\", \"className\", \"eventKey\", \"warnKey\", \"disabled\", \"itemIcon\", \"children\", \"role\", \"onMouseEnter\", \"onMouseLeave\", \"onClick\", \"onKeyDown\", \"onFocus\"],\n _excluded3 = [\"active\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport warning from \"rc-util/es/warning\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport omit from \"rc-util/es/omit\";\nimport { MenuContext } from './context/MenuContext';\nimport useActive from './hooks/useActive';\nimport { warnItemProp } from './utils/warnUtil';\nimport Icon from './Icon';\nimport useDirectionStyle from './hooks/useDirectionStyle';\nimport { useFullPath, useMeasure } from './context/PathContext';\nimport { useMenuId } from './context/IdContext';\nimport PrivateContext from './context/PrivateContext'; // Since Menu event provide the `info.item` which point to the MenuItem node instance.\n// We have to use class component here.\n// This should be removed from doc & api in future.\n\nvar LegacyMenuItem = /*#__PURE__*/function (_React$Component) {\n _inherits(LegacyMenuItem, _React$Component);\n\n var _super = _createSuper(LegacyMenuItem);\n\n function LegacyMenuItem() {\n _classCallCheck(this, LegacyMenuItem);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(LegacyMenuItem, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n title = _this$props.title,\n attribute = _this$props.attribute,\n elementRef = _this$props.elementRef,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n\n var passedProps = omit(restProps, ['eventKey']);\n warning(!attribute, '`attribute` of Menu.Item is deprecated. Please pass attribute directly.');\n return /*#__PURE__*/React.createElement(Overflow.Item, _extends({}, attribute, {\n title: typeof title === 'string' ? title : undefined\n }, passedProps, {\n ref: elementRef\n }));\n }\n }]);\n\n return LegacyMenuItem;\n}(React.Component);\n/**\n * Real Menu Item component\n */\n\n\nvar InternalMenuItem = function InternalMenuItem(props) {\n var _classNames;\n\n var style = props.style,\n className = props.className,\n eventKey = props.eventKey,\n warnKey = props.warnKey,\n disabled = props.disabled,\n itemIcon = props.itemIcon,\n children = props.children,\n role = props.role,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n onKeyDown = props.onKeyDown,\n onFocus = props.onFocus,\n restProps = _objectWithoutProperties(props, _excluded2);\n\n var domDataId = useMenuId(eventKey);\n\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n onItemClick = _React$useContext.onItemClick,\n contextDisabled = _React$useContext.disabled,\n overflowDisabled = _React$useContext.overflowDisabled,\n contextItemIcon = _React$useContext.itemIcon,\n selectedKeys = _React$useContext.selectedKeys,\n onActive = _React$useContext.onActive;\n\n var _React$useContext2 = React.useContext(PrivateContext),\n _internalRenderMenuItem = _React$useContext2._internalRenderMenuItem;\n\n var itemCls = \"\".concat(prefixCls, \"-item\");\n var legacyMenuItemRef = React.useRef();\n var elementRef = React.useRef();\n var mergedDisabled = contextDisabled || disabled;\n var connectedKeys = useFullPath(eventKey); // ================================ Warn ================================\n\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'MenuItem should not leave undefined `key`.');\n } // ============================= Info =============================\n\n\n var getEventInfo = function getEventInfo(e) {\n return {\n key: eventKey,\n // Note: For legacy code is reversed which not like other antd component\n keyPath: _toConsumableArray(connectedKeys).reverse(),\n item: legacyMenuItemRef.current,\n domEvent: e\n };\n }; // ============================= Icon =============================\n\n\n var mergedItemIcon = itemIcon || contextItemIcon; // ============================ Active ============================\n\n var _useActive = useActive(eventKey, mergedDisabled, onMouseEnter, onMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded3); // ============================ Select ============================\n\n\n var selected = selectedKeys.includes(eventKey); // ======================== DirectionStyle ========================\n\n var directionStyle = useDirectionStyle(connectedKeys.length); // ============================ Events ============================\n\n var onInternalClick = function onInternalClick(e) {\n if (mergedDisabled) {\n return;\n }\n\n var info = getEventInfo(e);\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n };\n\n var onInternalKeyDown = function onInternalKeyDown(e) {\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n\n if (e.which === KeyCode.ENTER) {\n var info = getEventInfo(e); // Legacy. Key will also trigger click event\n\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n }\n };\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n\n\n var onInternalFocus = function onInternalFocus(e) {\n onActive(eventKey);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n }; // ============================ Render ============================\n\n\n var optionRoleProps = {};\n\n if (props.role === 'option') {\n optionRoleProps['aria-selected'] = selected;\n }\n\n var renderNode = /*#__PURE__*/React.createElement(LegacyMenuItem, _extends({\n ref: legacyMenuItemRef,\n elementRef: elementRef,\n role: role === null ? 'none' : role || 'menuitem',\n tabIndex: disabled ? null : -1,\n \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId\n }, restProps, activeProps, optionRoleProps, {\n component: \"li\",\n \"aria-disabled\": disabled,\n style: _objectSpread(_objectSpread({}, directionStyle), style),\n className: classNames(itemCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(itemCls, \"-active\"), active), _defineProperty(_classNames, \"\".concat(itemCls, \"-selected\"), selected), _defineProperty(_classNames, \"\".concat(itemCls, \"-disabled\"), mergedDisabled), _classNames), className),\n onClick: onInternalClick,\n onKeyDown: onInternalKeyDown,\n onFocus: onInternalFocus\n }), children, /*#__PURE__*/React.createElement(Icon, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n isSelected: selected\n }),\n icon: mergedItemIcon\n }));\n\n if (_internalRenderMenuItem) {\n renderNode = _internalRenderMenuItem(renderNode, props, {\n selected: selected\n });\n }\n\n return renderNode;\n};\n\nfunction MenuItem(props) {\n var eventKey = props.eventKey; // ==================== Record KeyPath ====================\n\n var measure = useMeasure();\n var connectedKeyPath = useFullPath(eventKey); // eslint-disable-next-line consistent-return\n\n React.useEffect(function () {\n if (measure) {\n measure.registerPath(eventKey, connectedKeyPath);\n return function () {\n measure.unregisterPath(eventKey, connectedKeyPath);\n };\n }\n }, [connectedKeyPath]);\n\n if (measure) {\n return null;\n } // ======================== Render ========================\n\n\n return /*#__PURE__*/React.createElement(InternalMenuItem, props);\n}\n\nexport default MenuItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar _excluded = [\"label\", \"children\", \"key\", \"type\"];\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { Divider, MenuItem, MenuItemGroup, SubMenu } from '..';\nexport function parseChildren(children, keyPath) {\n return toArray(children).map(function (child, index) {\n if ( /*#__PURE__*/React.isValidElement(child)) {\n var _child$props$eventKey, _child$props;\n\n var key = child.key;\n var eventKey = (_child$props$eventKey = (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.eventKey) !== null && _child$props$eventKey !== void 0 ? _child$props$eventKey : key;\n var emptyKey = eventKey === null || eventKey === undefined;\n\n if (emptyKey) {\n eventKey = \"tmp_key-\".concat([].concat(_toConsumableArray(keyPath), [index]).join('-'));\n }\n\n var cloneProps = {\n key: eventKey,\n eventKey: eventKey\n };\n\n if (process.env.NODE_ENV !== 'production' && emptyKey) {\n cloneProps.warnKey = true;\n }\n\n return /*#__PURE__*/React.cloneElement(child, cloneProps);\n }\n\n return child;\n });\n}\n\nfunction convertItemsToNodes(list) {\n return (list || []).map(function (opt, index) {\n if (opt && _typeof(opt) === 'object') {\n var label = opt.label,\n children = opt.children,\n key = opt.key,\n type = opt.type,\n restProps = _objectWithoutProperties(opt, _excluded);\n\n var mergedKey = key !== null && key !== void 0 ? key : \"tmp-\".concat(index); // MenuItemGroup & SubMenuItem\n\n if (children || type === 'group') {\n if (type === 'group') {\n // Group\n return /*#__PURE__*/React.createElement(MenuItemGroup, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n } // Sub Menu\n\n\n return /*#__PURE__*/React.createElement(SubMenu, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n } // MenuItem & Divider\n\n\n if (type === 'divider') {\n return /*#__PURE__*/React.createElement(Divider, _extends({\n key: mergedKey\n }, restProps));\n }\n\n return /*#__PURE__*/React.createElement(MenuItem, _extends({\n key: mergedKey\n }, restProps), label);\n }\n\n return null;\n }).filter(function (opt) {\n return opt;\n });\n}\n\nexport function parseItems(children, items, keyPath) {\n var childNodes = children;\n\n if (items) {\n childNodes = convertItemsToNodes(items);\n }\n\n return parseChildren(childNodes, keyPath);\n}","import * as React from 'react';\n/**\n * Cache callback function that always return same ref instead.\n * This is used for context optimization.\n */\n\nexport default function useMemoCallback(func) {\n var funRef = React.useRef(func);\n funRef.current = func;\n var callback = React.useCallback(function () {\n var _funRef$current;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return (_funRef$current = funRef.current) === null || _funRef$current === void 0 ? void 0 : _funRef$current.call.apply(_funRef$current, [funRef].concat(args));\n }, []);\n return func ? callback : undefined;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"children\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from '../context/MenuContext';\n\nvar InternalSubMenuList = function InternalSubMenuList(_ref, ref) {\n var className = _ref.className,\n children = _ref.children,\n restProps = _objectWithoutProperties(_ref, _excluded);\n\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl;\n\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, rtl && \"\".concat(prefixCls, \"-rtl\"), \"\".concat(prefixCls, \"-sub\"), \"\".concat(prefixCls, \"-\").concat(mode === 'inline' ? 'inline' : 'vertical'), className)\n }, restProps, {\n \"data-menu-list\": true,\n ref: ref\n }), children);\n};\n\nvar SubMenuList = /*#__PURE__*/React.forwardRef(InternalSubMenuList);\nSubMenuList.displayName = 'SubMenuList';\nexport default SubMenuList;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nexport var placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\nexport var placementsRtl = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n rightTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n leftTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\nexport default placements;","export function getMotion(mode, motion, defaultMotions) {\n if (motion) {\n return motion;\n }\n\n if (defaultMotions) {\n return defaultMotions[mode] || defaultMotions.other;\n }\n\n return undefined;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nimport { MenuContext } from '../context/MenuContext';\nimport { placements, placementsRtl } from '../placements';\nimport { getMotion } from '../utils/motionUtil';\nvar popupPlacementMap = {\n horizontal: 'bottomLeft',\n vertical: 'rightTop',\n 'vertical-left': 'rightTop',\n 'vertical-right': 'leftTop'\n};\nexport default function PopupTrigger(_ref) {\n var prefixCls = _ref.prefixCls,\n visible = _ref.visible,\n children = _ref.children,\n popup = _ref.popup,\n popupClassName = _ref.popupClassName,\n popupOffset = _ref.popupOffset,\n disabled = _ref.disabled,\n mode = _ref.mode,\n onVisibleChange = _ref.onVisibleChange;\n\n var _React$useContext = React.useContext(MenuContext),\n getPopupContainer = _React$useContext.getPopupContainer,\n rtl = _React$useContext.rtl,\n subMenuOpenDelay = _React$useContext.subMenuOpenDelay,\n subMenuCloseDelay = _React$useContext.subMenuCloseDelay,\n builtinPlacements = _React$useContext.builtinPlacements,\n triggerSubMenuAction = _React$useContext.triggerSubMenuAction,\n forceSubMenuRender = _React$useContext.forceSubMenuRender,\n rootClassName = _React$useContext.rootClassName,\n motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions;\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerVisible = _React$useState2[0],\n setInnerVisible = _React$useState2[1];\n\n var placement = rtl ? _objectSpread(_objectSpread({}, placementsRtl), builtinPlacements) : _objectSpread(_objectSpread({}, placements), builtinPlacements);\n var popupPlacement = popupPlacementMap[mode];\n var targetMotion = getMotion(mode, motion, defaultMotions);\n\n var mergedMotion = _objectSpread(_objectSpread({}, targetMotion), {}, {\n leavedClassName: \"\".concat(prefixCls, \"-hidden\"),\n removeOnLeave: false,\n motionAppear: true\n }); // Delay to change visible\n\n\n var visibleRef = React.useRef();\n React.useEffect(function () {\n visibleRef.current = raf(function () {\n setInnerVisible(visible);\n });\n return function () {\n raf.cancel(visibleRef.current);\n };\n }, [visible]);\n return /*#__PURE__*/React.createElement(Trigger, {\n prefixCls: prefixCls,\n popupClassName: classNames(\"\".concat(prefixCls, \"-popup\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtl), popupClassName, rootClassName),\n stretch: mode === 'horizontal' ? 'minWidth' : null,\n getPopupContainer: getPopupContainer,\n builtinPlacements: placement,\n popupPlacement: popupPlacement,\n popupVisible: innerVisible,\n popup: popup,\n popupAlign: popupOffset && {\n offset: popupOffset\n },\n action: disabled ? [] : [triggerSubMenuAction],\n mouseEnterDelay: subMenuOpenDelay,\n mouseLeaveDelay: subMenuCloseDelay,\n onPopupVisibleChange: onVisibleChange,\n forceRender: forceSubMenuRender,\n popupMotion: mergedMotion\n }, children);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from '../utils/motionUtil';\nimport MenuContextProvider, { MenuContext } from '../context/MenuContext';\nimport SubMenuList from './SubMenuList';\nexport default function InlineSubMenuList(_ref) {\n var id = _ref.id,\n open = _ref.open,\n keyPath = _ref.keyPath,\n children = _ref.children;\n var fixedMode = 'inline';\n\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n forceSubMenuRender = _React$useContext.forceSubMenuRender,\n motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions,\n mode = _React$useContext.mode; // Always use latest mode check\n\n\n var sameModeRef = React.useRef(false);\n sameModeRef.current = mode === fixedMode; // We record `destroy` mark here since when mode change from `inline` to others.\n // The inline list should remove when motion end.\n\n var _React$useState = React.useState(!sameModeRef.current),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n destroy = _React$useState2[0],\n setDestroy = _React$useState2[1];\n\n var mergedOpen = sameModeRef.current ? open : false; // ================================= Effect =================================\n // Reset destroy state when mode change back\n\n React.useEffect(function () {\n if (sameModeRef.current) {\n setDestroy(false);\n }\n }, [mode]); // ================================= Render =================================\n\n var mergedMotion = _objectSpread({}, getMotion(fixedMode, motion, defaultMotions)); // No need appear since nest inlineCollapse changed\n\n\n if (keyPath.length > 1) {\n mergedMotion.motionAppear = false;\n } // Hide inline list when mode changed and motion end\n\n\n var originOnVisibleChanged = mergedMotion.onVisibleChanged;\n\n mergedMotion.onVisibleChanged = function (newVisible) {\n if (!sameModeRef.current && !newVisible) {\n setDestroy(true);\n }\n\n return originOnVisibleChanged === null || originOnVisibleChanged === void 0 ? void 0 : originOnVisibleChanged(newVisible);\n };\n\n if (destroy) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n mode: fixedMode,\n locked: !sameModeRef.current\n }, /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: mergedOpen\n }, mergedMotion, {\n forceRender: forceSubMenuRender,\n removeOnLeave: false,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }), function (_ref2) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(SubMenuList, {\n id: id,\n className: motionClassName,\n style: motionStyle\n }, children);\n }));\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"style\", \"className\", \"title\", \"eventKey\", \"warnKey\", \"disabled\", \"internalPopupClose\", \"children\", \"itemIcon\", \"expandIcon\", \"popupClassName\", \"popupOffset\", \"onClick\", \"onMouseEnter\", \"onMouseLeave\", \"onTitleClick\", \"onTitleMouseEnter\", \"onTitleMouseLeave\"],\n _excluded2 = [\"active\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport warning from \"rc-util/es/warning\";\nimport SubMenuList from './SubMenuList';\nimport { parseChildren } from '../utils/nodeUtil';\nimport MenuContextProvider, { MenuContext } from '../context/MenuContext';\nimport useMemoCallback from '../hooks/useMemoCallback';\nimport PopupTrigger from './PopupTrigger';\nimport Icon from '../Icon';\nimport useActive from '../hooks/useActive';\nimport { warnItemProp } from '../utils/warnUtil';\nimport useDirectionStyle from '../hooks/useDirectionStyle';\nimport InlineSubMenuList from './InlineSubMenuList';\nimport { PathTrackerContext, PathUserContext, useFullPath, useMeasure } from '../context/PathContext';\nimport { useMenuId } from '../context/IdContext';\nimport PrivateContext from '../context/PrivateContext';\n\nvar InternalSubMenu = function InternalSubMenu(props) {\n var _classNames;\n\n var style = props.style,\n className = props.className,\n title = props.title,\n eventKey = props.eventKey,\n warnKey = props.warnKey,\n disabled = props.disabled,\n internalPopupClose = props.internalPopupClose,\n children = props.children,\n itemIcon = props.itemIcon,\n expandIcon = props.expandIcon,\n popupClassName = props.popupClassName,\n popupOffset = props.popupOffset,\n onClick = props.onClick,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onTitleClick = props.onTitleClick,\n onTitleMouseEnter = props.onTitleMouseEnter,\n onTitleMouseLeave = props.onTitleMouseLeave,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var domDataId = useMenuId(eventKey);\n\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n openKeys = _React$useContext.openKeys,\n contextDisabled = _React$useContext.disabled,\n overflowDisabled = _React$useContext.overflowDisabled,\n activeKey = _React$useContext.activeKey,\n selectedKeys = _React$useContext.selectedKeys,\n contextItemIcon = _React$useContext.itemIcon,\n contextExpandIcon = _React$useContext.expandIcon,\n onItemClick = _React$useContext.onItemClick,\n onOpenChange = _React$useContext.onOpenChange,\n onActive = _React$useContext.onActive;\n\n var _React$useContext2 = React.useContext(PrivateContext),\n _internalRenderSubMenuItem = _React$useContext2._internalRenderSubMenuItem;\n\n var _React$useContext3 = React.useContext(PathUserContext),\n isSubPathKey = _React$useContext3.isSubPathKey;\n\n var connectedPath = useFullPath();\n var subMenuPrefixCls = \"\".concat(prefixCls, \"-submenu\");\n var mergedDisabled = contextDisabled || disabled;\n var elementRef = React.useRef();\n var popupRef = React.useRef(); // ================================ Warn ================================\n\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'SubMenu should not leave undefined `key`.');\n } // ================================ Icon ================================\n\n\n var mergedItemIcon = itemIcon || contextItemIcon;\n var mergedExpandIcon = expandIcon || contextExpandIcon; // ================================ Open ================================\n\n var originOpen = openKeys.includes(eventKey);\n var open = !overflowDisabled && originOpen; // =============================== Select ===============================\n\n var childrenSelected = isSubPathKey(selectedKeys, eventKey); // =============================== Active ===============================\n\n var _useActive = useActive(eventKey, mergedDisabled, onTitleMouseEnter, onTitleMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded2); // Fallback of active check to avoid hover on menu title or disabled item\n\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n childrenActive = _React$useState2[0],\n setChildrenActive = _React$useState2[1];\n\n var triggerChildrenActive = function triggerChildrenActive(newActive) {\n if (!mergedDisabled) {\n setChildrenActive(newActive);\n }\n };\n\n var onInternalMouseEnter = function onInternalMouseEnter(domEvent) {\n triggerChildrenActive(true);\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n key: eventKey,\n domEvent: domEvent\n });\n };\n\n var onInternalMouseLeave = function onInternalMouseLeave(domEvent) {\n triggerChildrenActive(false);\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n key: eventKey,\n domEvent: domEvent\n });\n };\n\n var mergedActive = React.useMemo(function () {\n if (active) {\n return active;\n }\n\n if (mode !== 'inline') {\n return childrenActive || isSubPathKey([activeKey], eventKey);\n }\n\n return false;\n }, [mode, active, activeKey, childrenActive, eventKey, isSubPathKey]); // ========================== DirectionStyle ==========================\n\n var directionStyle = useDirectionStyle(connectedPath.length); // =============================== Events ===============================\n // >>>> Title click\n\n var onInternalTitleClick = function onInternalTitleClick(e) {\n // Skip if disabled\n if (mergedDisabled) {\n return;\n }\n\n onTitleClick === null || onTitleClick === void 0 ? void 0 : onTitleClick({\n key: eventKey,\n domEvent: e\n }); // Trigger open by click when mode is `inline`\n\n if (mode === 'inline') {\n onOpenChange(eventKey, !originOpen);\n }\n }; // >>>> Context for children click\n\n\n var onMergedItemClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n }); // >>>>> Visible change\n\n var onPopupVisibleChange = function onPopupVisibleChange(newVisible) {\n if (mode !== 'inline') {\n onOpenChange(eventKey, newVisible);\n }\n };\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n\n\n var onInternalFocus = function onInternalFocus() {\n onActive(eventKey);\n }; // =============================== Render ===============================\n\n\n var popupId = domDataId && \"\".concat(domDataId, \"-popup\"); // >>>>> Title\n\n var titleNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n role: \"menuitem\",\n style: directionStyle,\n className: \"\".concat(subMenuPrefixCls, \"-title\"),\n tabIndex: mergedDisabled ? null : -1,\n ref: elementRef,\n title: typeof title === 'string' ? title : null,\n \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId,\n \"aria-expanded\": open,\n \"aria-haspopup\": true,\n \"aria-controls\": popupId,\n \"aria-disabled\": mergedDisabled,\n onClick: onInternalTitleClick,\n onFocus: onInternalFocus\n }, activeProps), title, /*#__PURE__*/React.createElement(Icon, {\n icon: mode !== 'horizontal' ? mergedExpandIcon : null,\n props: _objectSpread(_objectSpread({}, props), {}, {\n isOpen: open,\n // [Legacy] Not sure why need this mark\n isSubMenu: true\n })\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(subMenuPrefixCls, \"-arrow\")\n }))); // Cache mode if it change to `inline` which do not have popup motion\n\n var triggerModeRef = React.useRef(mode);\n\n if (mode !== 'inline') {\n triggerModeRef.current = connectedPath.length > 1 ? 'vertical' : mode;\n }\n\n if (!overflowDisabled) {\n var triggerMode = triggerModeRef.current; // Still wrap with Trigger here since we need avoid react re-mount dom node\n // Which makes motion failed\n\n titleNode = /*#__PURE__*/React.createElement(PopupTrigger, {\n mode: triggerMode,\n prefixCls: subMenuPrefixCls,\n visible: !internalPopupClose && open && mode !== 'inline',\n popupClassName: popupClassName,\n popupOffset: popupOffset,\n popup: /*#__PURE__*/React.createElement(MenuContextProvider // Special handle of horizontal mode\n , {\n mode: triggerMode === 'horizontal' ? 'vertical' : triggerMode\n }, /*#__PURE__*/React.createElement(SubMenuList, {\n id: popupId,\n ref: popupRef\n }, children)),\n disabled: mergedDisabled,\n onVisibleChange: onPopupVisibleChange\n }, titleNode);\n } // >>>>> List node\n\n\n var listNode = /*#__PURE__*/React.createElement(Overflow.Item, _extends({\n role: \"none\"\n }, restProps, {\n component: \"li\",\n style: style,\n className: classNames(subMenuPrefixCls, \"\".concat(subMenuPrefixCls, \"-\").concat(mode), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-open\"), open), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-active\"), mergedActive), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-selected\"), childrenSelected), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-disabled\"), mergedDisabled), _classNames)),\n onMouseEnter: onInternalMouseEnter,\n onMouseLeave: onInternalMouseLeave\n }), titleNode, !overflowDisabled && /*#__PURE__*/React.createElement(InlineSubMenuList, {\n id: popupId,\n open: open,\n keyPath: connectedPath\n }, children));\n\n if (_internalRenderSubMenuItem) {\n listNode = _internalRenderSubMenuItem(listNode, props, {\n selected: childrenSelected,\n active: mergedActive,\n open: open,\n disabled: mergedDisabled\n });\n } // >>>>> Render\n\n\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n onItemClick: onMergedItemClick,\n mode: mode === 'horizontal' ? 'vertical' : mode,\n itemIcon: mergedItemIcon,\n expandIcon: mergedExpandIcon\n }, listNode);\n};\n\nexport default function SubMenu(props) {\n var eventKey = props.eventKey,\n children = props.children;\n var connectedKeyPath = useFullPath(eventKey);\n var childList = parseChildren(children, connectedKeyPath); // ==================== Record KeyPath ====================\n\n var measure = useMeasure(); // eslint-disable-next-line consistent-return\n\n React.useEffect(function () {\n if (measure) {\n measure.registerPath(eventKey, connectedKeyPath);\n return function () {\n measure.unregisterPath(eventKey, connectedKeyPath);\n };\n }\n }, [connectedKeyPath]);\n var renderNode; // ======================== Render ========================\n\n if (measure) {\n renderNode = childList;\n } else {\n renderNode = /*#__PURE__*/React.createElement(InternalSubMenu, props, childList);\n }\n\n return /*#__PURE__*/React.createElement(PathTrackerContext.Provider, {\n value: connectedKeyPath\n }, renderNode);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport { getFocusNodeList } from \"rc-util/es/Dom/focus\";\nimport { getMenuId } from '../context/IdContext'; // destruct to reduce minify size\n\nvar LEFT = KeyCode.LEFT,\n RIGHT = KeyCode.RIGHT,\n UP = KeyCode.UP,\n DOWN = KeyCode.DOWN,\n ENTER = KeyCode.ENTER,\n ESC = KeyCode.ESC,\n HOME = KeyCode.HOME,\n END = KeyCode.END;\nvar ArrowKeys = [UP, DOWN, LEFT, RIGHT];\n\nfunction getOffset(mode, isRootLevel, isRtl, which) {\n var _inline, _horizontal, _vertical, _offsets;\n\n var prev = 'prev';\n var next = 'next';\n var children = 'children';\n var parent = 'parent'; // Inline enter is special that we use unique operation\n\n if (mode === 'inline' && which === ENTER) {\n return {\n inlineTrigger: true\n };\n }\n\n var inline = (_inline = {}, _defineProperty(_inline, UP, prev), _defineProperty(_inline, DOWN, next), _inline);\n var horizontal = (_horizontal = {}, _defineProperty(_horizontal, LEFT, isRtl ? next : prev), _defineProperty(_horizontal, RIGHT, isRtl ? prev : next), _defineProperty(_horizontal, DOWN, children), _defineProperty(_horizontal, ENTER, children), _horizontal);\n var vertical = (_vertical = {}, _defineProperty(_vertical, UP, prev), _defineProperty(_vertical, DOWN, next), _defineProperty(_vertical, ENTER, children), _defineProperty(_vertical, ESC, parent), _defineProperty(_vertical, LEFT, isRtl ? children : parent), _defineProperty(_vertical, RIGHT, isRtl ? parent : children), _vertical);\n var offsets = {\n inline: inline,\n horizontal: horizontal,\n vertical: vertical,\n inlineSub: inline,\n horizontalSub: vertical,\n verticalSub: vertical\n };\n var type = (_offsets = offsets[\"\".concat(mode).concat(isRootLevel ? '' : 'Sub')]) === null || _offsets === void 0 ? void 0 : _offsets[which];\n\n switch (type) {\n case prev:\n return {\n offset: -1,\n sibling: true\n };\n\n case next:\n return {\n offset: 1,\n sibling: true\n };\n\n case parent:\n return {\n offset: -1,\n sibling: false\n };\n\n case children:\n return {\n offset: 1,\n sibling: false\n };\n\n default:\n return null;\n }\n}\n\nfunction findContainerUL(element) {\n var current = element;\n\n while (current) {\n if (current.getAttribute('data-menu-list')) {\n return current;\n }\n\n current = current.parentElement;\n } // Normally should not reach this line\n\n /* istanbul ignore next */\n\n\n return null;\n}\n/**\n * Find focused element within element set provided\n */\n\n\nfunction getFocusElement(activeElement, elements) {\n var current = activeElement || document.activeElement;\n\n while (current) {\n if (elements.has(current)) {\n return current;\n }\n\n current = current.parentElement;\n }\n\n return null;\n}\n/**\n * Get focusable elements from the element set under provided container\n */\n\n\nfunction getFocusableElements(container, elements) {\n var list = getFocusNodeList(container, true);\n return list.filter(function (ele) {\n return elements.has(ele);\n });\n}\n\nfunction getNextFocusElement(parentQueryContainer, elements, focusMenuElement) {\n var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1; // Key on the menu item will not get validate parent container\n\n if (!parentQueryContainer) {\n return null;\n } // List current level menu item elements\n\n\n var sameLevelFocusableMenuElementList = getFocusableElements(parentQueryContainer, elements); // Find next focus index\n\n var count = sameLevelFocusableMenuElementList.length;\n var focusIndex = sameLevelFocusableMenuElementList.findIndex(function (ele) {\n return focusMenuElement === ele;\n });\n\n if (offset < 0) {\n if (focusIndex === -1) {\n focusIndex = count - 1;\n } else {\n focusIndex -= 1;\n }\n } else if (offset > 0) {\n focusIndex += 1;\n }\n\n focusIndex = (focusIndex + count) % count; // Focus menu item\n\n return sameLevelFocusableMenuElementList[focusIndex];\n}\n\nexport default function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKeys, getKeyPath, triggerActiveKey, triggerAccessibilityOpen, originOnKeyDown) {\n var rafRef = React.useRef();\n var activeRef = React.useRef();\n activeRef.current = activeKey;\n\n var cleanRaf = function cleanRaf() {\n raf.cancel(rafRef.current);\n };\n\n React.useEffect(function () {\n return function () {\n cleanRaf();\n };\n }, []);\n return function (e) {\n var which = e.which;\n\n if ([].concat(ArrowKeys, [ENTER, ESC, HOME, END]).includes(which)) {\n // Convert key to elements\n var elements;\n var key2element;\n var element2key; // >>> Wrap as function since we use raf for some case\n\n var refreshElements = function refreshElements() {\n elements = new Set();\n key2element = new Map();\n element2key = new Map();\n var keys = getKeys();\n keys.forEach(function (key) {\n var element = document.querySelector(\"[data-menu-id='\".concat(getMenuId(id, key), \"']\"));\n\n if (element) {\n elements.add(element);\n element2key.set(element, key);\n key2element.set(key, element);\n }\n });\n return elements;\n };\n\n refreshElements(); // First we should find current focused MenuItem/SubMenu element\n\n var activeElement = key2element.get(activeKey);\n var focusMenuElement = getFocusElement(activeElement, elements);\n var focusMenuKey = element2key.get(focusMenuElement);\n var offsetObj = getOffset(mode, getKeyPath(focusMenuKey, true).length === 1, isRtl, which); // Some mode do not have fully arrow operation like inline\n\n if (!offsetObj && which !== HOME && which !== END) {\n return;\n } // Arrow prevent default to avoid page scroll\n\n\n if (ArrowKeys.includes(which) || [HOME, END].includes(which)) {\n e.preventDefault();\n }\n\n var tryFocus = function tryFocus(menuElement) {\n if (menuElement) {\n var focusTargetElement = menuElement; // Focus to link instead of menu item if possible\n\n var link = menuElement.querySelector('a');\n\n if (link === null || link === void 0 ? void 0 : link.getAttribute('href')) {\n focusTargetElement = link;\n }\n\n var targetKey = element2key.get(menuElement);\n triggerActiveKey(targetKey);\n /**\n * Do not `useEffect` here since `tryFocus` may trigger async\n * which makes React sync update the `activeKey`\n * that force render before `useRef` set the next activeKey\n */\n\n cleanRaf();\n rafRef.current = raf(function () {\n if (activeRef.current === targetKey) {\n focusTargetElement.focus();\n }\n });\n }\n };\n\n if ([HOME, END].includes(which) || offsetObj.sibling || !focusMenuElement) {\n // ========================== Sibling ==========================\n // Find walkable focus menu element container\n var parentQueryContainer;\n\n if (!focusMenuElement || mode === 'inline') {\n parentQueryContainer = containerRef.current;\n } else {\n parentQueryContainer = findContainerUL(focusMenuElement);\n } // Get next focus element\n\n\n var targetElement;\n var focusableElements = getFocusableElements(parentQueryContainer, elements);\n\n if (which === HOME) {\n targetElement = focusableElements[0];\n } else if (which === END) {\n targetElement = focusableElements[focusableElements.length - 1];\n } else {\n targetElement = getNextFocusElement(parentQueryContainer, elements, focusMenuElement, offsetObj.offset);\n } // Focus menu item\n\n\n tryFocus(targetElement); // ======================= InlineTrigger =======================\n } else if (offsetObj.inlineTrigger) {\n // Inline trigger no need switch to sub menu item\n triggerAccessibilityOpen(focusMenuKey); // =========================== Level ===========================\n } else if (offsetObj.offset > 0) {\n triggerAccessibilityOpen(focusMenuKey, true);\n cleanRaf();\n rafRef.current = raf(function () {\n // Async should resync elements\n refreshElements();\n var controlId = focusMenuElement.getAttribute('aria-controls');\n var subQueryContainer = document.getElementById(controlId); // Get sub focusable menu item\n\n var targetElement = getNextFocusElement(subQueryContainer, elements); // Focus menu item\n\n tryFocus(targetElement);\n }, 5);\n } else if (offsetObj.offset < 0) {\n var keyPath = getKeyPath(focusMenuKey, true);\n var parentKey = keyPath[keyPath.length - 2];\n var parentMenuElement = key2element.get(parentKey); // Focus menu item\n\n triggerAccessibilityOpen(parentKey, false);\n tryFocus(parentMenuElement);\n }\n } // Pass origin key down event\n\n\n originOnKeyDown === null || originOnKeyDown === void 0 ? void 0 : originOnKeyDown(e);\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nvar uniquePrefix = Math.random().toFixed(5).toString().slice(2);\nvar internalId = 0;\nexport default function useUUID(id) {\n var _useMergedState = useMergedState(id, {\n value: id\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n uuid = _useMergedState2[0],\n setUUID = _useMergedState2[1];\n\n React.useEffect(function () {\n internalId += 1;\n var newId = process.env.NODE_ENV === 'test' ? 'test' : \"\".concat(uniquePrefix, \"-\").concat(internalId);\n setUUID(\"rc-menu-uuid-\".concat(newId));\n }, []);\n return uuid;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useCallback } from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { nextSlice } from '../utils/timeUtil';\nvar PATH_SPLIT = '__RC_UTIL_PATH_SPLIT__';\n\nvar getPathStr = function getPathStr(keyPath) {\n return keyPath.join(PATH_SPLIT);\n};\n\nvar getPathKeys = function getPathKeys(keyPathStr) {\n return keyPathStr.split(PATH_SPLIT);\n};\n\nexport var OVERFLOW_KEY = 'rc-menu-more';\nexport default function useKeyRecords() {\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n internalForceUpdate = _React$useState2[1];\n\n var key2pathRef = useRef(new Map());\n var path2keyRef = useRef(new Map());\n\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n overflowKeys = _React$useState4[0],\n setOverflowKeys = _React$useState4[1];\n\n var updateRef = useRef(0);\n var destroyRef = useRef(false);\n\n var forceUpdate = function forceUpdate() {\n if (!destroyRef.current) {\n internalForceUpdate({});\n }\n };\n\n var registerPath = useCallback(function (key, keyPath) {\n // Warning for invalidate or duplicated `key`\n if (process.env.NODE_ENV !== 'production') {\n warning(!key2pathRef.current.has(key), \"Duplicated key '\".concat(key, \"' used in Menu by path [\").concat(keyPath.join(' > '), \"]\"));\n } // Fill map\n\n\n var connectedPath = getPathStr(keyPath);\n path2keyRef.current.set(connectedPath, key);\n key2pathRef.current.set(key, connectedPath);\n updateRef.current += 1;\n var id = updateRef.current;\n nextSlice(function () {\n if (id === updateRef.current) {\n forceUpdate();\n }\n });\n }, []);\n var unregisterPath = useCallback(function (key, keyPath) {\n var connectedPath = getPathStr(keyPath);\n path2keyRef.current[\"delete\"](connectedPath);\n key2pathRef.current[\"delete\"](key);\n }, []);\n var refreshOverflowKeys = useCallback(function (keys) {\n setOverflowKeys(keys);\n }, []);\n var getKeyPath = useCallback(function (eventKey, includeOverflow) {\n var fullPath = key2pathRef.current.get(eventKey) || '';\n var keys = getPathKeys(fullPath);\n\n if (includeOverflow && overflowKeys.includes(keys[0])) {\n keys.unshift(OVERFLOW_KEY);\n }\n\n return keys;\n }, [overflowKeys]);\n var isSubPathKey = useCallback(function (pathKeys, eventKey) {\n return pathKeys.some(function (pathKey) {\n var pathKeyList = getKeyPath(pathKey, true);\n return pathKeyList.includes(eventKey);\n });\n }, [getKeyPath]);\n\n var getKeys = function getKeys() {\n var keys = _toConsumableArray(key2pathRef.current.keys());\n\n if (overflowKeys.length) {\n keys.push(OVERFLOW_KEY);\n }\n\n return keys;\n };\n /**\n * Find current key related child path keys\n */\n\n\n var getSubPathKeys = useCallback(function (key) {\n var connectedPath = \"\".concat(key2pathRef.current.get(key)).concat(PATH_SPLIT);\n var pathKeys = new Set();\n\n _toConsumableArray(path2keyRef.current.keys()).forEach(function (pathKey) {\n if (pathKey.startsWith(connectedPath)) {\n pathKeys.add(path2keyRef.current.get(pathKey));\n }\n });\n\n return pathKeys;\n }, []);\n React.useEffect(function () {\n return function () {\n destroyRef.current = true;\n };\n }, []);\n return {\n // Register\n registerPath: registerPath,\n unregisterPath: unregisterPath,\n refreshOverflowKeys: refreshOverflowKeys,\n // Util\n isSubPathKey: isSubPathKey,\n getKeyPath: getKeyPath,\n getKeys: getKeys,\n getSubPathKeys: getSubPathKeys\n };\n}","export function nextSlice(callback) {\n /* istanbul ignore next */\n Promise.resolve().then(callback);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"rootClassName\", \"style\", \"className\", \"tabIndex\", \"items\", \"children\", \"direction\", \"id\", \"mode\", \"inlineCollapsed\", \"disabled\", \"disabledOverflow\", \"subMenuOpenDelay\", \"subMenuCloseDelay\", \"forceSubMenuRender\", \"defaultOpenKeys\", \"openKeys\", \"activeKey\", \"defaultActiveFirst\", \"selectable\", \"multiple\", \"defaultSelectedKeys\", \"selectedKeys\", \"onSelect\", \"onDeselect\", \"inlineIndent\", \"motion\", \"defaultMotions\", \"triggerSubMenuAction\", \"builtinPlacements\", \"itemIcon\", \"expandIcon\", \"overflowedIndicator\", \"overflowedIndicatorPopupClassName\", \"getPopupContainer\", \"onClick\", \"onOpenChange\", \"onKeyDown\", \"openAnimation\", \"openTransitionName\", \"_internalRenderMenuItem\", \"_internalRenderSubMenuItem\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport shallowEqual from 'shallowequal';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport Overflow from 'rc-overflow';\nimport MenuItem from './MenuItem';\nimport { parseItems } from './utils/nodeUtil';\nimport MenuContextProvider from './context/MenuContext';\nimport useMemoCallback from './hooks/useMemoCallback';\nimport { warnItemProp } from './utils/warnUtil';\nimport SubMenu from './SubMenu';\nimport useAccessibility from './hooks/useAccessibility';\nimport useUUID from './hooks/useUUID';\nimport { PathRegisterContext, PathUserContext } from './context/PathContext';\nimport useKeyRecords, { OVERFLOW_KEY } from './hooks/useKeyRecords';\nimport { getMenuId, IdContext } from './context/IdContext';\nimport PrivateContext from './context/PrivateContext';\nimport { useImperativeHandle } from 'react';\n/**\n * Menu modify after refactor:\n * ## Add\n * - disabled\n *\n * ## Remove\n * - openTransitionName\n * - openAnimation\n * - onDestroy\n * - siderCollapsed: Seems antd do not use this prop (Need test in antd)\n * - collapsedWidth: Seems this logic should be handle by antd Layout.Sider\n */\n// optimize for render\n\nvar EMPTY_LIST = [];\nvar Menu = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _childList$, _classNames;\n\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-menu' : _props$prefixCls,\n rootClassName = props.rootClassName,\n style = props.style,\n className = props.className,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n items = props.items,\n children = props.children,\n direction = props.direction,\n id = props.id,\n _props$mode = props.mode,\n mode = _props$mode === void 0 ? 'vertical' : _props$mode,\n inlineCollapsed = props.inlineCollapsed,\n disabled = props.disabled,\n disabledOverflow = props.disabledOverflow,\n _props$subMenuOpenDel = props.subMenuOpenDelay,\n subMenuOpenDelay = _props$subMenuOpenDel === void 0 ? 0.1 : _props$subMenuOpenDel,\n _props$subMenuCloseDe = props.subMenuCloseDelay,\n subMenuCloseDelay = _props$subMenuCloseDe === void 0 ? 0.1 : _props$subMenuCloseDe,\n forceSubMenuRender = props.forceSubMenuRender,\n defaultOpenKeys = props.defaultOpenKeys,\n openKeys = props.openKeys,\n activeKey = props.activeKey,\n defaultActiveFirst = props.defaultActiveFirst,\n _props$selectable = props.selectable,\n selectable = _props$selectable === void 0 ? true : _props$selectable,\n _props$multiple = props.multiple,\n multiple = _props$multiple === void 0 ? false : _props$multiple,\n defaultSelectedKeys = props.defaultSelectedKeys,\n selectedKeys = props.selectedKeys,\n onSelect = props.onSelect,\n onDeselect = props.onDeselect,\n _props$inlineIndent = props.inlineIndent,\n inlineIndent = _props$inlineIndent === void 0 ? 24 : _props$inlineIndent,\n motion = props.motion,\n defaultMotions = props.defaultMotions,\n _props$triggerSubMenu = props.triggerSubMenuAction,\n triggerSubMenuAction = _props$triggerSubMenu === void 0 ? 'hover' : _props$triggerSubMenu,\n builtinPlacements = props.builtinPlacements,\n itemIcon = props.itemIcon,\n expandIcon = props.expandIcon,\n _props$overflowedIndi = props.overflowedIndicator,\n overflowedIndicator = _props$overflowedIndi === void 0 ? '...' : _props$overflowedIndi,\n overflowedIndicatorPopupClassName = props.overflowedIndicatorPopupClassName,\n getPopupContainer = props.getPopupContainer,\n onClick = props.onClick,\n onOpenChange = props.onOpenChange,\n onKeyDown = props.onKeyDown,\n openAnimation = props.openAnimation,\n openTransitionName = props.openTransitionName,\n _internalRenderMenuItem = props._internalRenderMenuItem,\n _internalRenderSubMenuItem = props._internalRenderSubMenuItem,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var childList = React.useMemo(function () {\n return parseItems(children, items, EMPTY_LIST);\n }, [children, items]);\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mounted = _React$useState2[0],\n setMounted = _React$useState2[1];\n\n var containerRef = React.useRef();\n var uuid = useUUID(id);\n var isRtl = direction === 'rtl'; // ========================= Warn =========================\n\n if (process.env.NODE_ENV !== 'production') {\n warning(!openAnimation && !openTransitionName, '`openAnimation` and `openTransitionName` is removed. Please use `motion` or `defaultMotion` instead.');\n } // ========================= Mode =========================\n\n\n var _React$useMemo = React.useMemo(function () {\n if ((mode === 'inline' || mode === 'vertical') && inlineCollapsed) {\n return ['vertical', inlineCollapsed];\n }\n\n return [mode, false];\n }, [mode, inlineCollapsed]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n mergedMode = _React$useMemo2[0],\n mergedInlineCollapsed = _React$useMemo2[1]; // ====================== Responsive ======================\n\n\n var _React$useState3 = React.useState(0),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n lastVisibleIndex = _React$useState4[0],\n setLastVisibleIndex = _React$useState4[1];\n\n var allVisible = lastVisibleIndex >= childList.length - 1 || mergedMode !== 'horizontal' || disabledOverflow; // ========================= Open =========================\n\n var _useMergedState = useMergedState(defaultOpenKeys, {\n value: openKeys,\n postState: function postState(keys) {\n return keys || EMPTY_LIST;\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedOpenKeys = _useMergedState2[0],\n setMergedOpenKeys = _useMergedState2[1];\n\n var triggerOpenKeys = function triggerOpenKeys(keys) {\n setMergedOpenKeys(keys);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(keys);\n }; // >>>>> Cache & Reset open keys when inlineCollapsed changed\n\n\n var _React$useState5 = React.useState(mergedOpenKeys),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n inlineCacheOpenKeys = _React$useState6[0],\n setInlineCacheOpenKeys = _React$useState6[1];\n\n var isInlineMode = mergedMode === 'inline';\n var mountRef = React.useRef(false); // Cache\n\n React.useEffect(function () {\n if (isInlineMode) {\n setInlineCacheOpenKeys(mergedOpenKeys);\n }\n }, [mergedOpenKeys]); // Restore\n\n React.useEffect(function () {\n if (!mountRef.current) {\n return;\n }\n\n if (isInlineMode) {\n setMergedOpenKeys(inlineCacheOpenKeys);\n } else {\n // Trigger open event in case its in control\n triggerOpenKeys(EMPTY_LIST);\n }\n }, [isInlineMode]);\n React.useEffect(function () {\n mountRef.current = true;\n return function () {\n mountRef.current = false;\n };\n }, []); // ========================= Path =========================\n\n var _useKeyRecords = useKeyRecords(),\n registerPath = _useKeyRecords.registerPath,\n unregisterPath = _useKeyRecords.unregisterPath,\n refreshOverflowKeys = _useKeyRecords.refreshOverflowKeys,\n isSubPathKey = _useKeyRecords.isSubPathKey,\n getKeyPath = _useKeyRecords.getKeyPath,\n getKeys = _useKeyRecords.getKeys,\n getSubPathKeys = _useKeyRecords.getSubPathKeys;\n\n var registerPathContext = React.useMemo(function () {\n return {\n registerPath: registerPath,\n unregisterPath: unregisterPath\n };\n }, [registerPath, unregisterPath]);\n var pathUserContext = React.useMemo(function () {\n return {\n isSubPathKey: isSubPathKey\n };\n }, [isSubPathKey]);\n React.useEffect(function () {\n refreshOverflowKeys(allVisible ? EMPTY_LIST : childList.slice(lastVisibleIndex + 1).map(function (child) {\n return child.key;\n }));\n }, [lastVisibleIndex, allVisible]); // ======================== Active ========================\n\n var _useMergedState3 = useMergedState(activeKey || defaultActiveFirst && ((_childList$ = childList[0]) === null || _childList$ === void 0 ? void 0 : _childList$.key), {\n value: activeKey\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedActiveKey = _useMergedState4[0],\n setMergedActiveKey = _useMergedState4[1];\n\n var onActive = useMemoCallback(function (key) {\n setMergedActiveKey(key);\n });\n var onInactive = useMemoCallback(function () {\n setMergedActiveKey(undefined);\n });\n useImperativeHandle(ref, function () {\n return {\n list: containerRef.current,\n focus: function focus(options) {\n var _childList$find;\n\n var shouldFocusKey = mergedActiveKey !== null && mergedActiveKey !== void 0 ? mergedActiveKey : (_childList$find = childList.find(function (node) {\n return !node.props.disabled;\n })) === null || _childList$find === void 0 ? void 0 : _childList$find.key;\n\n if (shouldFocusKey) {\n var _containerRef$current, _containerRef$current2, _containerRef$current3;\n\n (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : (_containerRef$current2 = _containerRef$current.querySelector(\"li[data-menu-id='\".concat(getMenuId(uuid, shouldFocusKey), \"']\"))) === null || _containerRef$current2 === void 0 ? void 0 : (_containerRef$current3 = _containerRef$current2.focus) === null || _containerRef$current3 === void 0 ? void 0 : _containerRef$current3.call(_containerRef$current2, options);\n }\n }\n };\n }); // ======================== Select ========================\n // >>>>> Select keys\n\n var _useMergedState5 = useMergedState(defaultSelectedKeys || [], {\n value: selectedKeys,\n // Legacy convert key to array\n postState: function postState(keys) {\n if (Array.isArray(keys)) {\n return keys;\n }\n\n if (keys === null || keys === undefined) {\n return EMPTY_LIST;\n }\n\n return [keys];\n }\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedSelectKeys = _useMergedState6[0],\n setMergedSelectKeys = _useMergedState6[1]; // >>>>> Trigger select\n\n\n var triggerSelection = function triggerSelection(info) {\n if (selectable) {\n // Insert or Remove\n var targetKey = info.key;\n var exist = mergedSelectKeys.includes(targetKey);\n var newSelectKeys;\n\n if (multiple) {\n if (exist) {\n newSelectKeys = mergedSelectKeys.filter(function (key) {\n return key !== targetKey;\n });\n } else {\n newSelectKeys = [].concat(_toConsumableArray(mergedSelectKeys), [targetKey]);\n }\n } else {\n newSelectKeys = [targetKey];\n }\n\n setMergedSelectKeys(newSelectKeys); // Trigger event\n\n var selectInfo = _objectSpread(_objectSpread({}, info), {}, {\n selectedKeys: newSelectKeys\n });\n\n if (exist) {\n onDeselect === null || onDeselect === void 0 ? void 0 : onDeselect(selectInfo);\n } else {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectInfo);\n }\n } // Whatever selectable, always close it\n\n\n if (!multiple && mergedOpenKeys.length && mergedMode !== 'inline') {\n triggerOpenKeys(EMPTY_LIST);\n }\n }; // ========================= Open =========================\n\n /**\n * Click for item. SubMenu do not have selection status\n */\n\n\n var onInternalClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n triggerSelection(info);\n });\n var onInternalOpenChange = useMemoCallback(function (key, open) {\n var newOpenKeys = mergedOpenKeys.filter(function (k) {\n return k !== key;\n });\n\n if (open) {\n newOpenKeys.push(key);\n } else if (mergedMode !== 'inline') {\n // We need find all related popup to close\n var subPathKeys = getSubPathKeys(key);\n newOpenKeys = newOpenKeys.filter(function (k) {\n return !subPathKeys.has(k);\n });\n }\n\n if (!shallowEqual(mergedOpenKeys, newOpenKeys)) {\n triggerOpenKeys(newOpenKeys);\n }\n });\n var getInternalPopupContainer = useMemoCallback(getPopupContainer); // ==================== Accessibility =====================\n\n var triggerAccessibilityOpen = function triggerAccessibilityOpen(key, open) {\n var nextOpen = open !== null && open !== void 0 ? open : !mergedOpenKeys.includes(key);\n onInternalOpenChange(key, nextOpen);\n };\n\n var onInternalKeyDown = useAccessibility(mergedMode, mergedActiveKey, isRtl, uuid, containerRef, getKeys, getKeyPath, setMergedActiveKey, triggerAccessibilityOpen, onKeyDown); // ======================== Effect ========================\n\n React.useEffect(function () {\n setMounted(true);\n }, []); // ======================= Context ========================\n\n var privateContext = React.useMemo(function () {\n return {\n _internalRenderMenuItem: _internalRenderMenuItem,\n _internalRenderSubMenuItem: _internalRenderSubMenuItem\n };\n }, [_internalRenderMenuItem, _internalRenderSubMenuItem]); // ======================== Render ========================\n // >>>>> Children\n\n var wrappedChildList = mergedMode !== 'horizontal' || disabledOverflow ? childList : // Need wrap for overflow dropdown that do not response for open\n childList.map(function (child, index) {\n return (\n /*#__PURE__*/\n // Always wrap provider to avoid sub node re-mount\n React.createElement(MenuContextProvider, {\n key: child.key,\n overflowDisabled: index > lastVisibleIndex\n }, child)\n );\n }); // >>>>> Container\n\n var container = /*#__PURE__*/React.createElement(Overflow, _extends({\n id: id,\n ref: containerRef,\n prefixCls: \"\".concat(prefixCls, \"-overflow\"),\n component: \"ul\",\n itemComponent: MenuItem,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-root\"), \"\".concat(prefixCls, \"-\").concat(mergedMode), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-inline-collapsed\"), mergedInlineCollapsed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), isRtl), _classNames), rootClassName),\n dir: direction,\n style: style,\n role: \"menu\",\n tabIndex: tabIndex,\n data: wrappedChildList,\n renderRawItem: function renderRawItem(node) {\n return node;\n },\n renderRawRest: function renderRawRest(omitItems) {\n // We use origin list since wrapped list use context to prevent open\n var len = omitItems.length;\n var originOmitItems = len ? childList.slice(-len) : null;\n return /*#__PURE__*/React.createElement(SubMenu, {\n eventKey: OVERFLOW_KEY,\n title: overflowedIndicator,\n disabled: allVisible,\n internalPopupClose: len === 0,\n popupClassName: overflowedIndicatorPopupClassName\n }, originOmitItems);\n },\n maxCount: mergedMode !== 'horizontal' || disabledOverflow ? Overflow.INVALIDATE : Overflow.RESPONSIVE,\n ssr: \"full\",\n \"data-menu-list\": true,\n onVisibleChange: function onVisibleChange(newLastIndex) {\n setLastVisibleIndex(newLastIndex);\n },\n onKeyDown: onInternalKeyDown\n }, restProps)); // >>>>> Render\n\n return /*#__PURE__*/React.createElement(PrivateContext.Provider, {\n value: privateContext\n }, /*#__PURE__*/React.createElement(IdContext.Provider, {\n value: uuid\n }, /*#__PURE__*/React.createElement(MenuContextProvider, {\n prefixCls: prefixCls,\n rootClassName: rootClassName,\n mode: mergedMode,\n openKeys: mergedOpenKeys,\n rtl: isRtl // Disabled\n ,\n disabled: disabled // Motion\n ,\n motion: mounted ? motion : null,\n defaultMotions: mounted ? defaultMotions : null // Active\n ,\n activeKey: mergedActiveKey,\n onActive: onActive,\n onInactive: onInactive // Selection\n ,\n selectedKeys: mergedSelectKeys // Level\n ,\n inlineIndent: inlineIndent // Popup\n ,\n subMenuOpenDelay: subMenuOpenDelay,\n subMenuCloseDelay: subMenuCloseDelay,\n forceSubMenuRender: forceSubMenuRender,\n builtinPlacements: builtinPlacements,\n triggerSubMenuAction: triggerSubMenuAction,\n getPopupContainer: getInternalPopupContainer // Icon\n ,\n itemIcon: itemIcon,\n expandIcon: expandIcon // Events\n ,\n onItemClick: onInternalClick,\n onOpenChange: onInternalOpenChange\n }, /*#__PURE__*/React.createElement(PathUserContext.Provider, {\n value: pathUserContext\n }, container), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n display: 'none'\n },\n \"aria-hidden\": true\n }, /*#__PURE__*/React.createElement(PathRegisterContext.Provider, {\n value: registerPathContext\n }, childList)))));\n});\nexport default Menu;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"title\", \"eventKey\", \"children\"],\n _excluded2 = [\"children\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { parseChildren } from './utils/nodeUtil';\nimport { MenuContext } from './context/MenuContext';\nimport { useFullPath, useMeasure } from './context/PathContext';\n\nvar InternalMenuItemGroup = function InternalMenuItemGroup(_ref) {\n var className = _ref.className,\n title = _ref.title,\n eventKey = _ref.eventKey,\n children = _ref.children,\n restProps = _objectWithoutProperties(_ref, _excluded);\n\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n\n var groupPrefixCls = \"\".concat(prefixCls, \"-item-group\");\n return /*#__PURE__*/React.createElement(\"li\", _extends({}, restProps, {\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n className: classNames(groupPrefixCls, className)\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(groupPrefixCls, \"-title\"),\n title: typeof title === 'string' ? title : undefined\n }, title), /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(groupPrefixCls, \"-list\")\n }, children));\n};\n\nexport default function MenuItemGroup(_ref2) {\n var children = _ref2.children,\n props = _objectWithoutProperties(_ref2, _excluded2);\n\n var connectedKeyPath = useFullPath(props.eventKey);\n var childList = parseChildren(children, connectedKeyPath);\n var measure = useMeasure();\n\n if (measure) {\n return childList;\n }\n\n return /*#__PURE__*/React.createElement(InternalMenuItemGroup, omit(props, ['warnKey']), childList);\n}","import * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from './context/MenuContext';\nimport { useMeasure } from './context/PathContext';\nexport default function Divider(_ref) {\n var className = _ref.className,\n style = _ref.style;\n\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n\n var measure = useMeasure();\n\n if (measure) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n className: classNames(\"\".concat(prefixCls, \"-item-divider\"), className),\n style: style\n });\n}","import Menu from './Menu';\nimport MenuItem from './MenuItem';\nimport SubMenu from './SubMenu';\nimport MenuItemGroup from './MenuItemGroup';\nimport { useFullPath as useOriginFullPath } from './context/PathContext';\nimport Divider from './Divider';\n/** @private Only used for antd internal. Do not use in your production. */\n\nvar useFullPath = useOriginFullPath;\nexport { SubMenu, MenuItem as Item, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider, useFullPath };\nvar ExportMenu = Menu;\nExportMenu.Item = MenuItem;\nExportMenu.SubMenu = SubMenu;\nExportMenu.ItemGroup = MenuItemGroup;\nExportMenu.Divider = Divider;\nexport default ExportMenu;","import { isArray, isString, filter } from '@antv/util';\n/** export 一些字段常量 */\n\n/** 在同层级,同一父节点下的节点索引顺序 */\n\nexport var NODE_INDEX_FIELD = 'nodeIndex';\n/** child 节点数量 */\n\nexport var CHILD_NODE_COUNT = 'childNodeCount';\n/** 节点的祖先节点 */\n\nexport var NODE_ANCESTORS_FIELD = 'nodeAncestor';\nvar INVALID_FIELD_ERR_MSG = 'Invalid field: it must be a string!';\nexport function getField(options, defaultField) {\n var field = options.field,\n fields = options.fields;\n\n if (isString(field)) {\n return field;\n }\n\n if (isArray(field)) {\n console.warn(INVALID_FIELD_ERR_MSG);\n return field[0];\n }\n\n console.warn(INVALID_FIELD_ERR_MSG + \" will try to get fields instead.\");\n\n if (isString(fields)) {\n return fields;\n }\n\n if (isArray(fields) && fields.length) {\n return fields[0];\n }\n\n if (defaultField) {\n return defaultField;\n }\n\n throw new TypeError(INVALID_FIELD_ERR_MSG);\n}\nexport function getAllNodes(root) {\n var nodes = [];\n\n if (root && root.each) {\n var parent_1;\n var index_1; // d3-hierarchy: Invokes the specified function for node and each descendant in **breadth-first order**\n\n root.each(function (node) {\n var _a, _b;\n\n if (node.parent !== parent_1) {\n parent_1 = node.parent;\n index_1 = 0;\n } else {\n index_1 += 1;\n }\n\n var ancestors = filter((((_a = node.ancestors) === null || _a === void 0 ? void 0 : _a.call(node)) || []).map(function (d) {\n return nodes.find(function (n) {\n return n.name === d.name;\n }) || d;\n }), function (_a) {\n var depth = _a.depth;\n return depth > 0 && depth < node.depth;\n });\n node[NODE_ANCESTORS_FIELD] = ancestors;\n node[CHILD_NODE_COUNT] = ((_b = node.children) === null || _b === void 0 ? void 0 : _b.length) || 0;\n node[NODE_INDEX_FIELD] = index_1;\n nodes.push(node);\n });\n } else if (root && root.eachNode) {\n // @antv/hierarchy\n root.eachNode(function (node) {\n nodes.push(node);\n });\n }\n\n return nodes;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport { tuple } from './type';\nvar InputStatuses = tuple('warning', 'error', '');\nexport function getStatusClassNames(prefixCls, status, hasFeedback) {\n var _classNames;\n\n return classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-status-success\"), status === 'success'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-status-warning\"), status === 'warning'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-status-error\"), status === 'error'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-status-validating\"), status === 'validating'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-feedback\"), hasFeedback), _classNames));\n}\nexport var getMergedStatus = function getMergedStatus(contextStatus, customStatus) {\n return customStatus || contextStatus;\n};","export function constantZero() {\n return 0;\n}\nexport default function (x) {\n return function () {\n return x;\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport React, { createContext, useState, useReducer, useRef, useEffect, useCallback, useMemo, useContext } from 'react';\n/*! *****************************************************************************\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***************************************************************************** */\n\n/* global Reflect, Promise */\n\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nfunction __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nfunction __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nfunction __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nfunction __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n\n\nvar _e2 = function e(t, n) {\n return _e2 = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (e, t) {\n e.__proto__ = t;\n } || function (e, t) {\n for (var n in t) {\n Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);\n }\n }, _e2(t, n);\n};\n\nfunction t(t, n) {\n if (\"function\" != typeof n && null !== n) throw new TypeError(\"Class extends value \" + String(n) + \" is not a constructor or null\");\n\n function r() {\n this.constructor = t;\n }\n\n _e2(t, n), t.prototype = null === n ? Object.create(n) : (r.prototype = n.prototype, new r());\n}\n\nvar _n2 = function n() {\n return _n2 = Object.assign || function (e) {\n for (var t, n = 1, r = arguments.length; n < r; n++) {\n for (var o in t = arguments[n]) {\n Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);\n }\n }\n\n return e;\n }, _n2.apply(this, arguments);\n};\n\nfunction r(e, t) {\n var n = {};\n\n for (var r in e) {\n Object.prototype.hasOwnProperty.call(e, r) && t.indexOf(r) < 0 && (n[r] = e[r]);\n }\n\n if (null != e && \"function\" == typeof Object.getOwnPropertySymbols) {\n var o = 0;\n\n for (r = Object.getOwnPropertySymbols(e); o < r.length; o++) {\n t.indexOf(r[o]) < 0 && Object.prototype.propertyIsEnumerable.call(e, r[o]) && (n[r[o]] = e[r[o]]);\n }\n }\n\n return n;\n}\n\nfunction o(e, t, n, r) {\n return new (n || (n = Promise))(function (o, i) {\n function a(e) {\n try {\n s(r.next(e));\n } catch (e) {\n i(e);\n }\n }\n\n function c(e) {\n try {\n s(r[\"throw\"](e));\n } catch (e) {\n i(e);\n }\n }\n\n function s(e) {\n var t;\n e.done ? o(e.value) : (t = e.value, t instanceof n ? t : new n(function (e) {\n e(t);\n })).then(a, c);\n }\n\n s((r = r.apply(e, t || [])).next());\n });\n}\n\nfunction i(e, t) {\n var n,\n r,\n o,\n i,\n a = {\n label: 0,\n sent: function sent() {\n if (1 & o[0]) throw o[1];\n return o[1];\n },\n trys: [],\n ops: []\n };\n return i = {\n next: c(0),\n \"throw\": c(1),\n \"return\": c(2)\n }, \"function\" == typeof Symbol && (i[Symbol.iterator] = function () {\n return this;\n }), i;\n\n function c(i) {\n return function (c) {\n return function (i) {\n if (n) throw new TypeError(\"Generator is already executing.\");\n\n for (; a;) {\n try {\n if (n = 1, r && (o = 2 & i[0] ? r[\"return\"] : i[0] ? r[\"throw\"] || ((o = r[\"return\"]) && o.call(r), 0) : r.next) && !(o = o.call(r, i[1])).done) return o;\n\n switch (r = 0, o && (i = [2 & i[0], o.value]), i[0]) {\n case 0:\n case 1:\n o = i;\n break;\n\n case 4:\n return a.label++, {\n value: i[1],\n done: !1\n };\n\n case 5:\n a.label++, r = i[1], i = [0];\n continue;\n\n case 7:\n i = a.ops.pop(), a.trys.pop();\n continue;\n\n default:\n if (!(o = a.trys, (o = o.length > 0 && o[o.length - 1]) || 6 !== i[0] && 2 !== i[0])) {\n a = 0;\n continue;\n }\n\n if (3 === i[0] && (!o || i[1] > o[0] && i[1] < o[3])) {\n a.label = i[1];\n break;\n }\n\n if (6 === i[0] && a.label < o[1]) {\n a.label = o[1], o = i;\n break;\n }\n\n if (o && a.label < o[2]) {\n a.label = o[2], a.ops.push(i);\n break;\n }\n\n o[2] && a.ops.pop(), a.trys.pop();\n continue;\n }\n\n i = t.call(e, a);\n } catch (e) {\n i = [6, e], r = 0;\n } finally {\n n = o = 0;\n }\n }\n\n if (5 & i[0]) throw i[1];\n return {\n value: i[0] ? i[1] : void 0,\n done: !0\n };\n }([i, c]);\n };\n }\n}\n\nfunction a(e, t) {\n var n = \"function\" == typeof Symbol && e[Symbol.iterator];\n if (!n) return e;\n var r,\n o,\n i = n.call(e),\n a = [];\n\n try {\n for (; (void 0 === t || t-- > 0) && !(r = i.next()).done;) {\n a.push(r.value);\n }\n } catch (e) {\n o = {\n error: e\n };\n } finally {\n try {\n r && !r.done && (n = i[\"return\"]) && n.call(i);\n } finally {\n if (o) throw o.error;\n }\n }\n\n return a;\n}\n\nfunction c(e, t, n) {\n if (n || 2 === arguments.length) for (var r, o = 0, i = t.length; o < i; o++) {\n !r && o in t || (r || (r = Array.prototype.slice.call(t, 0, o)), r[o] = t[o]);\n }\n return e.concat(r || Array.prototype.slice.call(t));\n}\n\nvar s = \"undefined\" != typeof globalThis ? globalThis : \"undefined\" != typeof window ? window : \"undefined\" != typeof global ? global : \"undefined\" != typeof self ? self : {};\n\nfunction u(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e[\"default\"] : e;\n}\n\nfunction l(e, t) {\n return e(t = {\n exports: {}\n }, t.exports), t.exports;\n}\n\nvar f,\n d,\n h = function h(e) {\n return e && e.Math == Math && e;\n},\n p = h(\"object\" == (typeof globalThis === \"undefined\" ? \"undefined\" : _typeof(globalThis)) && globalThis) || h(\"object\" == (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) && window) || h(\"object\" == (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) && self) || h(\"object\" == _typeof(s) && s) || function () {\n return this;\n}() || Function(\"return this\")(),\n y = function y(e) {\n try {\n return !!e();\n } catch (e) {\n return !0;\n }\n},\n v = !y(function () {\n return 7 != Object.defineProperty({}, 1, {\n get: function get() {\n return 7;\n }\n })[1];\n}),\n m = !y(function () {\n var e = function () {}.bind();\n\n return \"function\" != typeof e || e.hasOwnProperty(\"prototype\");\n}),\n b = Function.prototype.call,\n g = m ? b.bind(b) : function () {\n return b.apply(b, arguments);\n},\n w = {}.propertyIsEnumerable,\n S = Object.getOwnPropertyDescriptor,\n k = S && !w.call({\n 1: 2\n}, 1) ? function (e) {\n var t = S(this, e);\n return !!t && t.enumerable;\n} : w,\n _ = {\n f: k\n},\n I = function I(e, t) {\n return {\n enumerable: !(1 & e),\n configurable: !(2 & e),\n writable: !(4 & e),\n value: t\n };\n},\n T = Function.prototype,\n O = T.bind,\n x = T.call,\n C = m && O.bind(x, x),\n R = m ? function (e) {\n return e && C(e);\n} : function (e) {\n return e && function () {\n return x.apply(e, arguments);\n };\n},\n E = R({}.toString),\n j = R(\"\".slice),\n K = function K(e) {\n return j(E(e), 8, -1);\n},\n U = p.Object,\n F = R(\"\".split),\n W = y(function () {\n return !U(\"z\").propertyIsEnumerable(0);\n}) ? function (e) {\n return \"String\" == K(e) ? F(e, \"\") : U(e);\n} : U,\n Z = p.TypeError,\n L = function L(e) {\n if (null == e) throw Z(\"Can't call method on \" + e);\n return e;\n},\n G = function G(e) {\n return W(L(e));\n},\n P = function P(e) {\n return \"function\" == typeof e;\n},\n A = function A(e) {\n return \"object\" == _typeof(e) ? null !== e : P(e);\n},\n X = function X(e) {\n return P(e) ? e : void 0;\n},\n V = function V(e, t) {\n return arguments.length < 2 ? X(p[e]) : p[e] && p[e][t];\n},\n N = R({}.isPrototypeOf),\n J = V(\"navigator\", \"userAgent\") || \"\",\n Y = p.process,\n H = p.Deno,\n D = Y && Y.versions || H && H.version,\n B = D && D.v8;\n\nB && (d = (f = B.split(\".\"))[0] > 0 && f[0] < 4 ? 1 : +(f[0] + f[1])), !d && J && (!(f = J.match(/Edge\\/(\\d+)/)) || f[1] >= 74) && (f = J.match(/Chrome\\/(\\d+)/)) && (d = +f[1]);\n\nvar z = d,\n M = !!Object.getOwnPropertySymbols && !y(function () {\n var e = Symbol();\n return !String(e) || !(Object(e) instanceof Symbol) || !Symbol.sham && z && z < 41;\n}),\n q = M && !Symbol.sham && \"symbol\" == _typeof(Symbol.iterator),\n Q = p.Object,\n $ = q ? function (e) {\n return \"symbol\" == _typeof(e);\n} : function (e) {\n var t = V(\"Symbol\");\n return P(t) && N(t.prototype, Q(e));\n},\n ee = p.String,\n te = function te(e) {\n try {\n return ee(e);\n } catch (e) {\n return \"Object\";\n }\n},\n ne = p.TypeError,\n re = function re(e) {\n if (P(e)) return e;\n throw ne(te(e) + \" is not a function\");\n},\n oe = function oe(e, t) {\n var n = e[t];\n return null == n ? void 0 : re(n);\n},\n ie = p.TypeError,\n ae = Object.defineProperty,\n ce = function ce(e, t) {\n try {\n ae(p, e, {\n value: t,\n configurable: !0,\n writable: !0\n });\n } catch (n) {\n p[e] = t;\n }\n\n return t;\n},\n se = p[\"__core-js_shared__\"] || ce(\"__core-js_shared__\", {}),\n ue = l(function (e) {\n (e.exports = function (e, t) {\n return se[e] || (se[e] = void 0 !== t ? t : {});\n })(\"versions\", []).push({\n version: \"3.22.4\",\n mode: \"global\",\n copyright: \"© 2014-2022 Denis Pushkarev (zloirock.ru)\",\n license: \"https://github.com/zloirock/core-js/blob/v3.22.4/LICENSE\",\n source: \"https://github.com/zloirock/core-js\"\n });\n}),\n le = p.Object,\n fe = function fe(e) {\n return le(L(e));\n},\n de = R({}.hasOwnProperty),\n he = Object.hasOwn || function (e, t) {\n return de(fe(e), t);\n},\n pe = 0,\n ye = Math.random(),\n ve = R(1..toString),\n me = function me(e) {\n return \"Symbol(\" + (void 0 === e ? \"\" : e) + \")_\" + ve(++pe + ye, 36);\n},\n be = ue(\"wks\"),\n ge = p.Symbol,\n we = ge && ge[\"for\"],\n Se = q ? ge : ge && ge.withoutSetter || me,\n ke = function ke(e) {\n if (!he(be, e) || !M && \"string\" != typeof be[e]) {\n var t = \"Symbol.\" + e;\n M && he(ge, e) ? be[e] = ge[e] : be[e] = q && we ? we(t) : Se(t);\n }\n\n return be[e];\n},\n _e = p.TypeError,\n Ie = ke(\"toPrimitive\"),\n Te = function Te(e, t) {\n if (!A(e) || $(e)) return e;\n var n,\n r = oe(e, Ie);\n\n if (r) {\n if (void 0 === t && (t = \"default\"), n = g(r, e, t), !A(n) || $(n)) return n;\n throw _e(\"Can't convert object to primitive value\");\n }\n\n return void 0 === t && (t = \"number\"), function (e, t) {\n var n, r;\n if (\"string\" === t && P(n = e.toString) && !A(r = g(n, e))) return r;\n if (P(n = e.valueOf) && !A(r = g(n, e))) return r;\n if (\"string\" !== t && P(n = e.toString) && !A(r = g(n, e))) return r;\n throw ie(\"Can't convert object to primitive value\");\n }(e, t);\n},\n Oe = function Oe(e) {\n var t = Te(e, \"string\");\n return $(t) ? t : t + \"\";\n},\n xe = p.document,\n Ce = A(xe) && A(xe.createElement),\n Re = function Re(e) {\n return Ce ? xe.createElement(e) : {};\n},\n Ee = !v && !y(function () {\n return 7 != Object.defineProperty(Re(\"div\"), \"a\", {\n get: function get() {\n return 7;\n }\n }).a;\n}),\n je = Object.getOwnPropertyDescriptor,\n Ke = {\n f: v ? je : function (e, t) {\n if (e = G(e), t = Oe(t), Ee) try {\n return je(e, t);\n } catch (e) {}\n if (he(e, t)) return I(!g(_.f, e, t), e[t]);\n }\n},\n Ue = v && y(function () {\n return 42 != Object.defineProperty(function () {}, \"prototype\", {\n value: 42,\n writable: !1\n }).prototype;\n}),\n Fe = p.String,\n We = p.TypeError,\n Ze = function Ze(e) {\n if (A(e)) return e;\n throw We(Fe(e) + \" is not an object\");\n},\n Le = p.TypeError,\n Ge = Object.defineProperty,\n Pe = Object.getOwnPropertyDescriptor,\n Ae = {\n f: v ? Ue ? function (e, t, n) {\n if (Ze(e), t = Oe(t), Ze(n), \"function\" == typeof e && \"prototype\" === t && \"value\" in n && \"writable\" in n && !n.writable) {\n var r = Pe(e, t);\n r && r.writable && (e[t] = n.value, n = {\n configurable: \"configurable\" in n ? n.configurable : r.configurable,\n enumerable: \"enumerable\" in n ? n.enumerable : r.enumerable,\n writable: !1\n });\n }\n\n return Ge(e, t, n);\n } : Ge : function (e, t, n) {\n if (Ze(e), t = Oe(t), Ze(n), Ee) try {\n return Ge(e, t, n);\n } catch (e) {}\n if (\"get\" in n || \"set\" in n) throw Le(\"Accessors not supported\");\n return \"value\" in n && (e[t] = n.value), e;\n }\n},\n Xe = v ? function (e, t, n) {\n return Ae.f(e, t, I(1, n));\n} : function (e, t, n) {\n return e[t] = n, e;\n},\n Ve = Function.prototype,\n Ne = v && Object.getOwnPropertyDescriptor,\n Je = he(Ve, \"name\"),\n Ye = {\n EXISTS: Je,\n PROPER: Je && \"something\" === function () {}.name,\n CONFIGURABLE: Je && (!v || v && Ne(Ve, \"name\").configurable)\n},\n He = R(Function.toString);\n\nP(se.inspectSource) || (se.inspectSource = function (e) {\n return He(e);\n});\n\nvar De,\n Be,\n ze,\n Me = se.inspectSource,\n qe = p.WeakMap,\n Qe = P(qe) && /native code/.test(Me(qe)),\n $e = ue(\"keys\"),\n et = function et(e) {\n return $e[e] || ($e[e] = me(e));\n},\n tt = {},\n nt = p.TypeError,\n rt = p.WeakMap;\n\nif (Qe || se.state) {\n var ot = se.state || (se.state = new rt()),\n it = R(ot.get),\n at = R(ot.has),\n ct = R(ot.set);\n De = function De(e, t) {\n if (at(ot, e)) throw new nt(\"Object already initialized\");\n return t.facade = e, ct(ot, e, t), t;\n }, Be = function Be(e) {\n return it(ot, e) || {};\n }, ze = function ze(e) {\n return at(ot, e);\n };\n} else {\n var st = et(\"state\");\n tt[st] = !0, De = function De(e, t) {\n if (he(e, st)) throw new nt(\"Object already initialized\");\n return t.facade = e, Xe(e, st, t), t;\n }, Be = function Be(e) {\n return he(e, st) ? e[st] : {};\n }, ze = function ze(e) {\n return he(e, st);\n };\n}\n\nvar ut = {\n set: De,\n get: Be,\n has: ze,\n enforce: function enforce(e) {\n return ze(e) ? Be(e) : De(e, {});\n },\n getterFor: function getterFor(e) {\n return function (t) {\n var n;\n if (!A(t) || (n = Be(t)).type !== e) throw nt(\"Incompatible receiver, \" + e + \" required\");\n return n;\n };\n }\n},\n lt = l(function (e) {\n var t = Ae.f,\n n = Ye.CONFIGURABLE,\n r = ut.enforce,\n o = ut.get,\n i = !y(function () {\n return 8 !== t(function () {}, \"length\", {\n value: 8\n }).length;\n }),\n a = String(String).split(\"String\"),\n c = e.exports = function (e, o, c) {\n \"Symbol(\" === String(o).slice(0, 7) && (o = \"[\" + String(o).replace(/^Symbol\\(([^)]*)\\)/, \"$1\") + \"]\"), c && c.getter && (o = \"get \" + o), c && c.setter && (o = \"set \" + o), (!he(e, \"name\") || n && e.name !== o) && t(e, \"name\", {\n value: o,\n configurable: !0\n }), i && c && he(c, \"arity\") && e.length !== c.arity && t(e, \"length\", {\n value: c.arity\n });\n var s = r(e);\n return he(s, \"source\") || (s.source = a.join(\"string\" == typeof o ? o : \"\")), e;\n };\n\n Function.prototype.toString = c(function () {\n return P(this) && o(this).source || Me(this);\n }, \"toString\");\n}),\n ft = function ft(e, t, n, r) {\n var o = !!r && !!r.unsafe,\n i = !!r && !!r.enumerable,\n a = !!r && !!r.noTargetGet,\n c = r && void 0 !== r.name ? r.name : t;\n return P(n) && lt(n, c, r), e === p ? (i ? e[t] = n : ce(t, n), e) : (o ? !a && e[t] && (i = !0) : delete e[t], i ? e[t] = n : Xe(e, t, n), e);\n},\n dt = Math.ceil,\n ht = Math.floor,\n pt = function pt(e) {\n var t = +e;\n return t != t || 0 === t ? 0 : (t > 0 ? ht : dt)(t);\n},\n yt = Math.max,\n vt = Math.min,\n mt = function mt(e, t) {\n var n = pt(e);\n return n < 0 ? yt(n + t, 0) : vt(n, t);\n},\n bt = Math.min,\n gt = function gt(e) {\n return e > 0 ? bt(pt(e), 9007199254740991) : 0;\n},\n wt = function wt(e) {\n return gt(e.length);\n},\n St = function St(e) {\n return function (t, n, r) {\n var o,\n i = G(t),\n a = wt(i),\n c = mt(r, a);\n\n if (e && n != n) {\n for (; a > c;) {\n if ((o = i[c++]) != o) return !0;\n }\n } else for (; a > c; c++) {\n if ((e || c in i) && i[c] === n) return e || c || 0;\n }\n\n return !e && -1;\n };\n},\n kt = {\n includes: St(!0),\n indexOf: St(!1)\n},\n _t = kt.indexOf,\n It = R([].push),\n Tt = function Tt(e, t) {\n var n,\n r = G(e),\n o = 0,\n i = [];\n\n for (n in r) {\n !he(tt, n) && he(r, n) && It(i, n);\n }\n\n for (; t.length > o;) {\n he(r, n = t[o++]) && (~_t(i, n) || It(i, n));\n }\n\n return i;\n},\n Ot = [\"constructor\", \"hasOwnProperty\", \"isPrototypeOf\", \"propertyIsEnumerable\", \"toLocaleString\", \"toString\", \"valueOf\"],\n xt = Ot.concat(\"length\", \"prototype\"),\n Ct = {\n f: Object.getOwnPropertyNames || function (e) {\n return Tt(e, xt);\n }\n},\n Rt = {\n f: Object.getOwnPropertySymbols\n},\n Et = R([].concat),\n jt = V(\"Reflect\", \"ownKeys\") || function (e) {\n var t = Ct.f(Ze(e)),\n n = Rt.f;\n return n ? Et(t, n(e)) : t;\n},\n Kt = function Kt(e, t, n) {\n for (var r = jt(t), o = Ae.f, i = Ke.f, a = 0; a < r.length; a++) {\n var c = r[a];\n he(e, c) || n && he(n, c) || o(e, c, i(t, c));\n }\n},\n Ut = /#|\\.prototype\\./,\n Ft = function Ft(e, t) {\n var n = Zt[Wt(e)];\n return n == Gt || n != Lt && (P(t) ? y(t) : !!t);\n},\n Wt = Ft.normalize = function (e) {\n return String(e).replace(Ut, \".\").toLowerCase();\n},\n Zt = Ft.data = {},\n Lt = Ft.NATIVE = \"N\",\n Gt = Ft.POLYFILL = \"P\",\n Pt = Ft,\n At = Ke.f,\n Xt = function Xt(e, t) {\n var n,\n r,\n o,\n i,\n a,\n c = e.target,\n s = e.global,\n u = e.stat;\n if (n = s ? p : u ? p[c] || ce(c, {}) : (p[c] || {}).prototype) for (r in t) {\n if (i = t[r], o = e.noTargetGet ? (a = At(n, r)) && a.value : n[r], !Pt(s ? r : c + (u ? \".\" : \"#\") + r, e.forced) && void 0 !== o) {\n if (_typeof(i) == _typeof(o)) continue;\n Kt(i, o);\n }\n\n (e.sham || o && o.sham) && Xe(i, \"sham\", !0), ft(n, r, i, e);\n }\n},\n Vt = {};\n\nVt[ke(\"toStringTag\")] = \"z\";\n\nvar Nt,\n Jt = \"[object z]\" === String(Vt),\n Yt = ke(\"toStringTag\"),\n Ht = p.Object,\n Dt = \"Arguments\" == K(function () {\n return arguments;\n}()),\n Bt = Jt ? K : function (e) {\n var t, n, r;\n return void 0 === e ? \"Undefined\" : null === e ? \"Null\" : \"string\" == typeof (n = function (e, t) {\n try {\n return e[t];\n } catch (e) {}\n }(t = Ht(e), Yt)) ? n : Dt ? K(t) : \"Object\" == (r = K(t)) && P(t.callee) ? \"Arguments\" : r;\n},\n zt = p.String,\n Mt = function Mt(e) {\n if (\"Symbol\" === Bt(e)) throw TypeError(\"Cannot convert a Symbol value to a string\");\n return zt(e);\n},\n qt = ke(\"match\"),\n Qt = p.TypeError,\n $t = function $t(e) {\n if (function (e) {\n var t;\n return A(e) && (void 0 !== (t = e[qt]) ? !!t : \"RegExp\" == K(e));\n }(e)) throw Qt(\"The method doesn't accept regular expressions\");\n return e;\n},\n en = ke(\"match\"),\n tn = function tn(e) {\n var t = /./;\n\n try {\n \"/./\"[e](t);\n } catch (n) {\n try {\n return t[en] = !1, \"/./\"[e](t);\n } catch (e) {}\n }\n\n return !1;\n},\n nn = Ke.f,\n rn = R(\"\".startsWith),\n on = R(\"\".slice),\n an = Math.min,\n cn = tn(\"startsWith\"),\n sn = !(cn || (Nt = nn(String.prototype, \"startsWith\"), !Nt || Nt.writable));\n\nXt({\n target: \"String\",\n proto: !0,\n forced: !sn && !cn\n}, {\n startsWith: function startsWith(e) {\n var t = Mt(L(this));\n $t(e);\n var n = gt(an(arguments.length > 1 ? arguments[1] : void 0, t.length)),\n r = Mt(e);\n return rn ? rn(t, r, n) : on(t, n, n + r.length) === r;\n }\n});\n\nvar un = function un(e, t) {\n return R(p[e].prototype[t]);\n};\n\nun(\"String\", \"startsWith\");\n\nvar ln = Array.isArray || function (e) {\n return \"Array\" == K(e);\n},\n fn = function fn(e, t, n) {\n var r = Oe(t);\n r in e ? Ae.f(e, r, I(0, n)) : e[r] = n;\n},\n dn = function dn() {},\n hn = [],\n pn = V(\"Reflect\", \"construct\"),\n yn = /^\\s*(?:class|function)\\b/,\n vn = R(yn.exec),\n mn = !yn.exec(dn),\n bn = function bn(e) {\n if (!P(e)) return !1;\n\n try {\n return pn(dn, hn, e), !0;\n } catch (e) {\n return !1;\n }\n},\n gn = function gn(e) {\n if (!P(e)) return !1;\n\n switch (Bt(e)) {\n case \"AsyncFunction\":\n case \"GeneratorFunction\":\n case \"AsyncGeneratorFunction\":\n return !1;\n }\n\n try {\n return mn || !!vn(yn, Me(e));\n } catch (e) {\n return !0;\n }\n};\n\ngn.sham = !0;\n\nvar wn,\n Sn = !pn || y(function () {\n var e;\n return bn(bn.call) || !bn(Object) || !bn(function () {\n e = !0;\n }) || e;\n}) ? gn : bn,\n kn = ke(\"species\"),\n _n = p.Array,\n In = function In(e, t) {\n return new (function (e) {\n var t;\n return ln(e) && (t = e.constructor, (Sn(t) && (t === _n || ln(t.prototype)) || A(t) && null === (t = t[kn])) && (t = void 0)), void 0 === t ? _n : t;\n }(e))(0 === t ? 0 : t);\n},\n Tn = ke(\"species\"),\n On = ke(\"isConcatSpreadable\"),\n xn = p.TypeError,\n Cn = z >= 51 || !y(function () {\n var e = [];\n return e[On] = !1, e.concat()[0] !== e;\n}),\n Rn = (wn = \"concat\", z >= 51 || !y(function () {\n var e = [];\n return (e.constructor = {})[Tn] = function () {\n return {\n foo: 1\n };\n }, 1 !== e[wn](Boolean).foo;\n})),\n En = function En(e) {\n if (!A(e)) return !1;\n var t = e[On];\n return void 0 !== t ? !!t : ln(e);\n};\n\nXt({\n target: \"Array\",\n proto: !0,\n arity: 1,\n forced: !Cn || !Rn\n}, {\n concat: function concat(e) {\n var t,\n n,\n r,\n o,\n i,\n a = fe(this),\n c = In(a, 0),\n s = 0;\n\n for (t = -1, r = arguments.length; t < r; t++) {\n if (En(i = -1 === t ? a : arguments[t])) {\n if (s + (o = wt(i)) > 9007199254740991) throw xn(\"Maximum allowed index exceeded\");\n\n for (n = 0; n < o; n++, s++) {\n n in i && fn(c, s, i[n]);\n }\n } else {\n if (s >= 9007199254740991) throw xn(\"Maximum allowed index exceeded\");\n fn(c, s++, i);\n }\n }\n\n return c.length = s, c;\n }\n});\nvar jn = Jt ? {}.toString : function () {\n return \"[object \" + Bt(this) + \"]\";\n};\nJt || ft(Object.prototype, \"toString\", jn, {\n unsafe: !0\n});\n\nvar Kn,\n Un = Object.keys || function (e) {\n return Tt(e, Ot);\n},\n Fn = v && !Ue ? Object.defineProperties : function (e, t) {\n Ze(e);\n\n for (var n, r = G(t), o = Un(t), i = o.length, a = 0; i > a;) {\n Ae.f(e, n = o[a++], r[n]);\n }\n\n return e;\n},\n Wn = {\n f: Fn\n},\n Zn = V(\"document\", \"documentElement\"),\n Ln = et(\"IE_PROTO\"),\n Gn = function Gn() {},\n Pn = function Pn(e) {\n return \"