@visactor/vchart 1.8.8-alpha.0 → 1.8.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/es5/index.js +1 -1
- package/build/index.js +500 -346
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/component/axis/base-axis.d.ts +2 -1
- package/cjs/component/axis/base-axis.js +11 -1
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/axis.d.ts +1 -1
- package/cjs/component/axis/cartesian/axis.js +2 -2
- package/cjs/component/axis/cartesian/axis.js.map +1 -1
- package/cjs/component/axis/mixin/band-axis-mixin.d.ts +6 -1
- package/cjs/component/axis/mixin/band-axis-mixin.js +17 -1
- package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.d.ts +9 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.js +18 -5
- package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/cjs/component/axis/polar/axis.d.ts +1 -1
- package/cjs/component/axis/polar/axis.js +2 -2
- package/cjs/component/axis/polar/axis.js.map +1 -1
- package/cjs/component/crosshair/cartesian.js +20 -17
- package/cjs/component/crosshair/cartesian.js.map +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.d.ts +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.js +5 -2
- package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/cjs/component/geo/geo-coordinate.d.ts +1 -0
- package/cjs/component/geo/geo-coordinate.js +6 -5
- package/cjs/component/geo/geo-coordinate.js.map +1 -1
- package/cjs/component/player/player.js +2 -1
- package/cjs/component/player/player.js.map +1 -1
- package/cjs/core/index.d.ts +1 -1
- package/cjs/core/index.js +1 -1
- package/cjs/core/index.js.map +1 -1
- package/cjs/event/event-dispatcher.js +3 -4
- package/cjs/event/event-dispatcher.js.map +1 -1
- package/cjs/interaction/zoom/zoomable.js +9 -9
- package/cjs/interaction/zoom/zoomable.js.map +1 -1
- package/cjs/layout/base-layout.d.ts +46 -2
- package/cjs/layout/base-layout.js +185 -29
- package/cjs/layout/base-layout.js.map +1 -1
- package/cjs/layout/layout3d/index.d.ts +1 -8
- package/cjs/layout/layout3d/index.js +10 -69
- package/cjs/layout/layout3d/index.js.map +1 -1
- package/cjs/model/base-model-transformer.d.ts +2 -1
- package/cjs/model/base-model-transformer.js +6 -2
- package/cjs/model/base-model-transformer.js.map +1 -1
- package/cjs/series/area/area-transformer.d.ts +2 -0
- package/cjs/series/area/area-transformer.js +18 -1
- package/cjs/series/area/area-transformer.js.map +1 -1
- package/cjs/series/area/area.d.ts +0 -1
- package/cjs/series/area/area.js +1 -17
- package/cjs/series/area/area.js.map +1 -1
- package/cjs/series/base/base-series-transformer.js +1 -2
- package/cjs/series/base/base-series-transformer.js.map +1 -1
- package/cjs/series/base/base-series.js +10 -6
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/cartesian/cartesian.js +4 -3
- package/cjs/series/cartesian/cartesian.js.map +1 -1
- package/cjs/theme/builtin/index.js +3 -1
- package/cjs/theme/builtin/index.js.map +1 -1
- package/cjs/typings/layout.d.ts +1 -1
- package/cjs/typings/layout.js.map +1 -1
- package/esm/component/axis/base-axis.d.ts +2 -1
- package/esm/component/axis/base-axis.js +11 -1
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/axis.d.ts +1 -1
- package/esm/component/axis/cartesian/axis.js +2 -2
- package/esm/component/axis/cartesian/axis.js.map +1 -1
- package/esm/component/axis/mixin/band-axis-mixin.d.ts +6 -1
- package/esm/component/axis/mixin/band-axis-mixin.js +17 -1
- package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
- package/esm/component/axis/mixin/linear-axis-mixin.d.ts +9 -1
- package/esm/component/axis/mixin/linear-axis-mixin.js +19 -5
- package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/esm/component/axis/polar/axis.d.ts +1 -1
- package/esm/component/axis/polar/axis.js +2 -2
- package/esm/component/axis/polar/axis.js.map +1 -1
- package/esm/component/crosshair/cartesian.js +20 -17
- package/esm/component/crosshair/cartesian.js.map +1 -1
- package/esm/component/data-zoom/data-filter-base-component.d.ts +1 -1
- package/esm/component/data-zoom/data-filter-base-component.js +5 -3
- package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/esm/component/geo/geo-coordinate.d.ts +1 -0
- package/esm/component/geo/geo-coordinate.js +6 -5
- package/esm/component/geo/geo-coordinate.js.map +1 -1
- package/esm/component/player/player.js +2 -1
- package/esm/component/player/player.js.map +1 -1
- package/esm/core/index.d.ts +1 -1
- package/esm/core/index.js +1 -1
- package/esm/core/index.js.map +1 -1
- package/esm/event/event-dispatcher.js +3 -4
- package/esm/event/event-dispatcher.js.map +1 -1
- package/esm/interaction/zoom/zoomable.js +8 -9
- package/esm/interaction/zoom/zoomable.js.map +1 -1
- package/esm/layout/base-layout.d.ts +46 -2
- package/esm/layout/base-layout.js +185 -29
- package/esm/layout/base-layout.js.map +1 -1
- package/esm/layout/layout3d/index.d.ts +1 -8
- package/esm/layout/layout3d/index.js +10 -69
- package/esm/layout/layout3d/index.js.map +1 -1
- package/esm/model/base-model-transformer.d.ts +2 -1
- package/esm/model/base-model-transformer.js +6 -2
- package/esm/model/base-model-transformer.js.map +1 -1
- package/esm/series/area/area-transformer.d.ts +2 -0
- package/esm/series/area/area-transformer.js +19 -0
- package/esm/series/area/area-transformer.js.map +1 -1
- package/esm/series/area/area.d.ts +0 -1
- package/esm/series/area/area.js +1 -18
- package/esm/series/area/area.js.map +1 -1
- package/esm/series/base/base-series-transformer.js +1 -2
- package/esm/series/base/base-series-transformer.js.map +1 -1
- package/esm/series/base/base-series.js +9 -5
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/cartesian/cartesian.js +3 -2
- package/esm/series/cartesian/cartesian.js.map +1 -1
- package/esm/theme/builtin/index.js +2 -1
- package/esm/theme/builtin/index.js.map +1 -1
- package/esm/typings/layout.d.ts +1 -1
- package/esm/typings/layout.js.map +1 -1
- package/package.json +12 -12
- package/cjs/theme/builtin/common-mobile/component/axis/band-axis.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/component/axis/band-axis.js +0 -22
- package/cjs/theme/builtin/common-mobile/component/axis/band-axis.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.d.ts +0 -4
- package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.js +0 -40
- package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/axis/common-axis.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/component/axis/common-axis.js +0 -42
- package/cjs/theme/builtin/common-mobile/component/axis/common-axis.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.js +0 -22
- package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.d.ts +0 -3
- package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.js +0 -25
- package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/crosshair.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/component/crosshair.js +0 -39
- package/cjs/theme/builtin/common-mobile/component/crosshair.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/data-zoom.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/component/data-zoom.js +0 -40
- package/cjs/theme/builtin/common-mobile/component/data-zoom.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/index.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/component/index.js +0 -34
- package/cjs/theme/builtin/common-mobile/component/index.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/indicator.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/component/indicator.js +0 -23
- package/cjs/theme/builtin/common-mobile/component/indicator.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/legend/color-legend.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/component/legend/color-legend.js +0 -23
- package/cjs/theme/builtin/common-mobile/component/legend/color-legend.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/legend/continuous.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/component/legend/continuous.js +0 -44
- package/cjs/theme/builtin/common-mobile/component/legend/continuous.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.js +0 -39
- package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/legend/size-legend.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/component/legend/size-legend.js +0 -23
- package/cjs/theme/builtin/common-mobile/component/legend/size-legend.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/map-label.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/component/map-label.js +0 -39
- package/cjs/theme/builtin/common-mobile/component/map-label.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/mark-area.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/component/mark-area.js +0 -24
- package/cjs/theme/builtin/common-mobile/component/mark-area.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/mark-line.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/component/mark-line.js +0 -33
- package/cjs/theme/builtin/common-mobile/component/mark-line.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/mark-point.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/component/mark-point.js +0 -19
- package/cjs/theme/builtin/common-mobile/component/mark-point.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/player.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/component/player.js +0 -51
- package/cjs/theme/builtin/common-mobile/component/player.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/poptip.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/component/poptip.js +0 -25
- package/cjs/theme/builtin/common-mobile/component/poptip.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/title.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/component/title.js +0 -23
- package/cjs/theme/builtin/common-mobile/component/title.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/tooltip.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/component/tooltip.js +0 -43
- package/cjs/theme/builtin/common-mobile/component/tooltip.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/component/total-label.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/component/total-label.js +0 -16
- package/cjs/theme/builtin/common-mobile/component/total-label.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/constants.d.ts +0 -2
- package/cjs/theme/builtin/common-mobile/constants.js +0 -23
- package/cjs/theme/builtin/common-mobile/constants.js.map +0 -1
- package/cjs/theme/builtin/common-mobile/mark.d.ts +0 -3
- package/cjs/theme/builtin/common-mobile/mark.js +0 -35
- package/cjs/theme/builtin/common-mobile/mark.js.map +0 -1
- package/cjs/theme/builtin/dark-mobile/index.d.ts +0 -2
- package/cjs/theme/builtin/dark-mobile/index.js +0 -18
- package/cjs/theme/builtin/dark-mobile/index.js.map +0 -1
- package/cjs/theme/builtin/light-mobile/index.d.ts +0 -2
- package/cjs/theme/builtin/light-mobile/index.js +0 -18
- package/cjs/theme/builtin/light-mobile/index.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/axis/band-axis.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/component/axis/band-axis.js +0 -18
- package/esm/theme/builtin/common-mobile/component/axis/band-axis.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.d.ts +0 -4
- package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.js +0 -38
- package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/axis/common-axis.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/component/axis/common-axis.js +0 -36
- package/esm/theme/builtin/common-mobile/component/axis/common-axis.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/axis/linear-axis.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/component/axis/linear-axis.js +0 -18
- package/esm/theme/builtin/common-mobile/component/axis/linear-axis.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/axis/polar-axis.d.ts +0 -3
- package/esm/theme/builtin/common-mobile/component/axis/polar-axis.js +0 -23
- package/esm/theme/builtin/common-mobile/component/axis/polar-axis.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/crosshair.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/component/crosshair.js +0 -35
- package/esm/theme/builtin/common-mobile/component/crosshair.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/data-zoom.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/component/data-zoom.js +0 -34
- package/esm/theme/builtin/common-mobile/component/data-zoom.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/index.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/component/index.js +0 -66
- package/esm/theme/builtin/common-mobile/component/index.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/indicator.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/component/indicator.js +0 -17
- package/esm/theme/builtin/common-mobile/component/indicator.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/legend/color-legend.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/component/legend/color-legend.js +0 -17
- package/esm/theme/builtin/common-mobile/component/legend/color-legend.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/legend/continuous.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/component/legend/continuous.js +0 -38
- package/esm/theme/builtin/common-mobile/component/legend/continuous.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.js +0 -33
- package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/legend/size-legend.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/component/legend/size-legend.js +0 -17
- package/esm/theme/builtin/common-mobile/component/legend/size-legend.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/map-label.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/component/map-label.js +0 -33
- package/esm/theme/builtin/common-mobile/component/map-label.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/mark-area.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/component/mark-area.js +0 -18
- package/esm/theme/builtin/common-mobile/component/mark-area.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/mark-line.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/component/mark-line.js +0 -27
- package/esm/theme/builtin/common-mobile/component/mark-line.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/mark-point.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/component/mark-point.js +0 -15
- package/esm/theme/builtin/common-mobile/component/mark-point.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/player.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/component/player.js +0 -47
- package/esm/theme/builtin/common-mobile/component/player.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/poptip.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/component/poptip.js +0 -19
- package/esm/theme/builtin/common-mobile/component/poptip.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/title.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/component/title.js +0 -17
- package/esm/theme/builtin/common-mobile/component/title.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/tooltip.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/component/tooltip.js +0 -37
- package/esm/theme/builtin/common-mobile/component/tooltip.js.map +0 -1
- package/esm/theme/builtin/common-mobile/component/total-label.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/component/total-label.js +0 -10
- package/esm/theme/builtin/common-mobile/component/total-label.js.map +0 -1
- package/esm/theme/builtin/common-mobile/constants.d.ts +0 -2
- package/esm/theme/builtin/common-mobile/constants.js +0 -19
- package/esm/theme/builtin/common-mobile/constants.js.map +0 -1
- package/esm/theme/builtin/common-mobile/mark.d.ts +0 -3
- package/esm/theme/builtin/common-mobile/mark.js +0 -31
- package/esm/theme/builtin/common-mobile/mark.js.map +0 -1
- package/esm/theme/builtin/dark-mobile/index.d.ts +0 -2
- package/esm/theme/builtin/dark-mobile/index.js +0 -16
- package/esm/theme/builtin/dark-mobile/index.js.map +0 -1
- package/esm/theme/builtin/light-mobile/index.d.ts +0 -2
- package/esm/theme/builtin/light-mobile/index.js +0 -16
- package/esm/theme/builtin/light-mobile/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/geo/geo-coordinate.ts"],"names":[],"mappings":"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","file":"geo-coordinate.js","sourcesContent":["import { LayoutZIndex } from './../../constant/index';\n/* eslint-disable no-duplicate-imports */\nimport type { IPoint } from '../../typings/coordinate';\nimport { Projection } from './projection';\nimport type { IEffect, IModelLayoutOption, IModelRenderOption, IModelSpecInfo } from '../../model/interface';\nimport type { IComponentOption } from '../interface';\nimport { ComponentTypeEnum } from '../interface/type';\nimport { BaseComponent } from '../base/base-component';\nimport type { IGeoRegionSpec, IRegion, IRegionSpec } from '../../region/interface';\nimport { eachSeries } from '../../util/model';\nimport { mergeSpec } from '../../util/spec/merge-spec';\nimport { ChartEvent, PREFIX } from '../../constant/index';\nimport type { ICartesianSeries, IGeoSeries } from '../../series/interface';\nimport { SeriesTypeEnum } from '../../series/interface/type';\nimport type { IGeoCoordinate, IGeoCoordinateHelper, IGeoCoordinateSpec, IProjectionSpec } from './interface';\nimport type { BaseEventParams, ExtendEventParam, PanEventParam, ZoomEventParam } from '../../event/interface';\nimport type { IChartSpec, StringOrNumber } from '../../typings';\nimport type { IZoomable } from '../../interaction/zoom/zoomable';\nimport { Zoomable } from '../../interaction/zoom/zoomable';\nimport { isValid, mixin, isNil, Matrix } from '@visactor/vutils';\nimport type { Maybe } from '@visactor/vutils';\nimport { DEFAULT_MAP_LOOK_UP_KEY } from '../../data/transforms/map';\nimport { Factory } from '../../core/factory';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type { MapSeries } from '../../series';\n\nexport function projectionName(key: string, id: number) {\n return `${PREFIX}_${id}_${key}`;\n}\nexport class GeoCoordinate extends BaseComponent<IGeoRegionSpec> implements IGeoCoordinate {\n static type = ComponentTypeEnum.geoCoordinate;\n type = ComponentTypeEnum.geoCoordinate;\n name: string = ComponentTypeEnum.geoCoordinate;\n\n layoutType: 'none' = 'none';\n protected layoutZIndex: number = LayoutZIndex.Mark;\n\n _longitudeField?: string;\n get longitudeField() {\n return this._longitudeField;\n }\n\n _latitudeField?: string;\n get latitudeField() {\n return this._latitudeField;\n }\n\n protected _projectionSpec: IProjectionSpec = {\n name: projectionName(this.type, this.id),\n type: 'mercator'\n };\n get projectionSpec() {\n return this._projectionSpec;\n }\n setProjection(projectionSpec: IGeoCoordinateSpec['projection']) {\n this._projectionSpec = {\n ...projectionSpec,\n name: this._projectionSpec.name\n };\n }\n\n protected _projection!: Projection;\n\n protected _centerCache: Map<StringOrNumber, { x: number; y: number }>;\n\n private _actualScale = 1;\n\n getZoom() {\n return this._actualScale;\n }\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n if (isNil(chartSpec)) {\n return null;\n }\n const specInfos: IModelSpecInfo[] = [];\n chartSpec.region.forEach((r: IRegionSpec, i: number) => {\n if (r.coordinate === 'geo') {\n // 去除 padding 配置,避免重复计算\n const spec = { ...r, padding: 0 };\n specInfos.push({\n spec,\n regionIndex: i,\n type: ComponentTypeEnum.geoCoordinate,\n specInfoPath: ['region', i, 'geoCoordinate']\n } as any);\n }\n });\n return specInfos;\n }\n\n effect: IEffect = {\n scaleUpdate: () => {\n this.coordinateHelper();\n }\n };\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n if (this._spec.roam) {\n (this as unknown as IZoomable).initZoomable(this.event, this._option.mode);\n }\n\n this._projectionSpec = mergeSpec(this._projectionSpec, this._spec.projection);\n if (this._projectionSpec.zoom > this._spec.zoomLimit?.max) {\n this._projectionSpec.zoom = this._spec.zoomLimit.max;\n }\n if (this._projectionSpec.zoom < this._spec.zoomLimit?.min) {\n this._projectionSpec.zoom = this._spec.zoomLimit.min;\n }\n\n this._actualScale = this._projectionSpec.zoom ?? 1;\n this._longitudeField = this._spec.longitudeField;\n this._latitudeField = this._spec.latitudeField;\n }\n\n // life cycle\n created() {\n super.created();\n this._regions = this._option.getRegionsInIndex([(this._option as any).regionIndex]);\n this.initProjection();\n this.coordinateHelper();\n this.initEvent();\n this._initCenterCache();\n // FIXME: 这里是在开启缩放时,处理关联的symbol等mark,在地图缩放时应该同步缩放\n // this.rescaleMark();\n }\n\n private _handleChartZoom = (\n params: { zoomDelta: number; zoomX?: number; zoomY?: number },\n event?: BaseEventParams['event']\n ) => {\n let scale = params.zoomDelta;\n // check if the next scale will outrange\n const _lastActualScale = this._actualScale;\n this._actualScale *= scale;\n if (this._actualScale < this._spec.zoomLimit?.min) {\n this._actualScale = this._spec.zoomLimit?.min;\n scale = this._spec.zoomLimit?.min / _lastActualScale;\n } else if (this._actualScale > this._spec.zoomLimit?.max) {\n this._actualScale = this._spec.zoomLimit?.max;\n scale = this._spec.zoomLimit?.max / _lastActualScale;\n }\n if (event) {\n (event as any).zoomDelta = scale;\n }\n this.zoom(scale, [params.zoomX, params.zoomY]);\n return scale;\n };\n\n dispatchZoom(zoomDelta: number, center?: { x: number; y: number }) {\n const scaleCenter = center || {\n x: this.getLayoutStartPoint().x + this.getLayoutRect().width / 2,\n y: this.getLayoutStartPoint().y + this.getLayoutRect().height / 2\n };\n const scale = this._handleChartZoom({ zoomDelta, zoomX: scaleCenter.x, zoomY: scaleCenter.y });\n if (scale !== 1) {\n this.event.emit('zoom', {\n scale,\n scaleCenter,\n model: this\n } as unknown as ExtendEventParam);\n }\n }\n\n initEvent() {\n this.event.on(\n ChartEvent.scaleUpdate,\n { filter: ({ model }) => model?.id === this.id },\n this.effect.scaleUpdate.bind(this)\n );\n\n if (this._spec.roam) {\n (this as unknown as IZoomable).initZoomEventOfRegions(this._regions, null, this._handleChartZoom);\n (this as unknown as IZoomable).initDragEventOfRegions(this._regions, () => true, this.pan);\n\n this._regions.forEach(r => {\n r.getSeries().forEach(s => {\n s.event.on('zoom', e => {\n s.handleZoom(e as ZoomEventParam);\n return true;\n });\n\n s.event.on('panmove', e => {\n s.handlePan(e as PanEventParam);\n return true;\n });\n });\n });\n }\n }\n\n initProjection() {\n this._projection = new Projection(this._projectionSpec);\n if (this._projection.projection === null) {\n this._option?.onError('unsupported projection type!');\n return;\n }\n }\n\n coordinateHelper() {\n const helper: IGeoCoordinateHelper = {\n longitudeField: this._longitudeField,\n latitudeField: this._latitudeField,\n dataToPosition: this.dataToPosition.bind(this),\n dataToLongitude: this.dataToLongitude.bind(this),\n dataToLatitude: this.dataToLatitude.bind(this),\n shape: this.shape.bind(this),\n getCoordinateId: () => this.id\n };\n\n this._regions.forEach(r => {\n r.getSeries().forEach(s => {\n if (s.type === SeriesTypeEnum.map) {\n (s as IGeoSeries).setCoordinateHelper(helper);\n } else {\n // 散点地图\n (s as ICartesianSeries).setXAxisHelper({\n ...helper,\n isContinuous: true,\n dataToPosition: (values: any[], option) => {\n let value = values[0];\n if (isNil(value) && option?.datum) {\n const nameFieldValue = option.datum[(s as ICartesianSeries).getDimensionField()[0]];\n value = this._centerCache.get(nameFieldValue)?.x;\n }\n return this.dataToLongitude(value);\n },\n valueToPosition: (value: any, option) => {\n if (isNil(value) && option?.datum) {\n const nameFieldValue = option.datum[(s as ICartesianSeries).getDimensionField()[0]];\n value = this._centerCache.get(nameFieldValue)?.x;\n }\n return this.dataToLongitude(value);\n },\n getFields: () => [this._longitudeField],\n getAxisType: () => this.type,\n getAxisId: () => this.id,\n isInverse: () => false\n });\n (s as unknown as ICartesianSeries).setYAxisHelper({\n ...helper,\n isContinuous: true,\n dataToPosition: (values: any[], option) => {\n let value = values[0];\n if (isNil(value) && option?.datum) {\n const nameFieldValue = option.datum[(s as ICartesianSeries).getDimensionField()[0]];\n value = this._centerCache.get(nameFieldValue)?.y;\n }\n return this.dataToLatitude(value);\n },\n valueToPosition: (value: any, option) => {\n if (isNil(value) && option?.datum) {\n const nameFieldValue = option.datum[(s as ICartesianSeries).getDimensionField()[0]];\n value = this._centerCache.get(nameFieldValue)?.y;\n }\n return this.dataToLatitude(value);\n },\n getFields: () => [this._latitudeField],\n getAxisType: () => this.type,\n getAxisId: () => this.id,\n isInverse: () => false\n });\n }\n });\n });\n }\n\n onLayoutEnd(ctx: IModelLayoutOption) {\n this.setLayoutRect(this._regions[0].getLayoutRectExcludeIndent());\n this.setLayoutStartPosition(this._regions[0].getLayoutPositionExcludeIndent());\n const { width, height } = this.getLayoutRect();\n const { translate, scale, center } = this.evaluateProjection([0, 0], [width, height]);\n translate && this._projection.translate(translate);\n scale && this._projection.scale(scale);\n center && this._projection.center(center);\n eachSeries(this._regions, s => {\n if (s.type === SeriesTypeEnum.map) {\n (s as MapSeries).areaPath.clear();\n const pathGroup = s.getRootMark().getProduct()?.getGroupGraphicItem();\n if (pathGroup) {\n if (pathGroup.attribute.postMatrix) {\n pathGroup.setAttributes({\n postMatrix: new Matrix()\n });\n }\n }\n }\n });\n this._actualScale = 1;\n\n super.onLayoutEnd(ctx);\n }\n\n onRender(ctx: IModelRenderOption) {\n // do nothing\n }\n\n // region\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [];\n }\n\n // util\n protected collectFeatures() {\n const features: any[] = [];\n this._regions.forEach(r => {\n r.getSeries().forEach(s => {\n if (s.type === SeriesTypeEnum.map) {\n features.push(...((s as unknown as IGeoSeries).getMapViewData()?.latestData ?? []));\n }\n });\n });\n return features;\n }\n\n // API\n dataToPosition(values: number[] = []): IPoint {\n const point = this._projection?.project([values[0], values[1]]);\n return {\n x: point?.[0],\n y: point?.[1]\n };\n }\n\n dataToLatitude(lat: number): number {\n const point = this._projection?.project([0, lat]);\n return point?.[1];\n }\n\n dataToLongitude(lon: number): number {\n const point = this._projection?.project([lon, 0]);\n return point?.[0];\n }\n\n // interaction\n zoom(p: number, anchor: [number, number] = [0, 0]) {\n let s = this._projection?.scale() ?? 0;\n const t = this._projection?.translate() ?? [0, 0];\n let t_x = t[0];\n let t_y = t[1];\n s = s * p;\n t_x -= (anchor[0] - t_x) * (p - 1);\n t_y -= (anchor[1] - t_y) * (p - 1);\n\n this._projection?.scale(s);\n this._projection?.translate([t_x, t_y]);\n }\n\n pan = (delta: [number, number] = [0, 0]) => {\n const t = this._projection?.translate() ?? [0, 0];\n let t_x = t[0];\n let t_y = t[1];\n t_x += delta[0];\n t_y += delta[1];\n this._projection?.translate([t_x, t_y]);\n };\n\n shape(datum?: any) {\n return this._projection.shape(datum);\n }\n\n /**\n * 根据像素坐标获取经纬度位置\n */\n invert(point: [number, number]) {\n return this._projection.invert(point);\n }\n\n private evaluateProjection(start: [number, number], size: [number, number]) {\n const evaluated = this._projection.evaluate(start, size, this.collectFeatures());\n let translate = evaluated.translate();\n const scale = evaluated.scale() * (this._projectionSpec.zoom ?? 1);\n const center = this._projectionSpec.center ?? evaluated.invert([size[0] / 2, size[1] / 2]);\n center && (translate = [size[0] / 2, size[1] / 2]);\n return { translate, scale, center };\n }\n\n protected _initCenterCache() {\n if (!this._centerCache) {\n this._centerCache = new Map();\n }\n this._regions.forEach(r => {\n r.getSeries().forEach(s => {\n if (s.type === 'map') {\n const mapData = (s as IGeoSeries).getMapViewData()?.latestData ?? [];\n mapData.forEach((feature: any = {}) => {\n const key = feature[s.getDimensionField()[0]] || feature[DEFAULT_MAP_LOOK_UP_KEY];\n const center = (s as IGeoSeries).getDatumCenter(feature);\n if (key && isValid(center)) {\n this._centerCache.set(key, { x: center[0], y: center[1] });\n }\n });\n }\n });\n });\n }\n\n release(): void {\n super.release();\n this._centerCache && this._centerCache.clear();\n this._centerCache = null;\n }\n}\n\nmixin(GeoCoordinate, Zoomable);\n\nexport const registerGeoCoordinate = () => {\n Factory.registerComponent(GeoCoordinate.type, GeoCoordinate);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/geo/geo-coordinate.ts"],"names":[],"mappings":"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","file":"geo-coordinate.js","sourcesContent":["import { LayoutZIndex } from './../../constant/index';\n/* eslint-disable no-duplicate-imports */\nimport type { IPoint } from '../../typings/coordinate';\nimport { Projection } from './projection';\nimport type { IEffect, IModelLayoutOption, IModelRenderOption, IModelSpecInfo } from '../../model/interface';\nimport type { IComponentOption } from '../interface';\nimport { ComponentTypeEnum } from '../interface/type';\nimport { BaseComponent } from '../base/base-component';\nimport type { IGeoRegionSpec, IRegion, IRegionSpec } from '../../region/interface';\nimport { eachSeries } from '../../util/model';\nimport { mergeSpec } from '../../util/spec/merge-spec';\nimport { ChartEvent, PREFIX } from '../../constant/index';\nimport type { ICartesianSeries, IGeoSeries } from '../../series/interface';\nimport { SeriesTypeEnum } from '../../series/interface/type';\nimport type { IGeoCoordinate, IGeoCoordinateHelper, IGeoCoordinateSpec, IProjectionSpec } from './interface';\nimport type { BaseEventParams, ExtendEventParam, PanEventParam, ZoomEventParam } from '../../event/interface';\nimport type { IChartSpec, StringOrNumber } from '../../typings';\nimport type { IZoomable } from '../../interaction/zoom/zoomable';\nimport { Zoomable } from '../../interaction/zoom/zoomable';\nimport { isValid, mixin, isNil, Matrix } from '@visactor/vutils';\nimport type { Maybe } from '@visactor/vutils';\nimport { DEFAULT_MAP_LOOK_UP_KEY } from '../../data/transforms/map';\nimport { Factory } from '../../core/factory';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type { MapSeries } from '../../series';\n\nexport function projectionName(key: string, id: number) {\n return `${PREFIX}_${id}_${key}`;\n}\nexport class GeoCoordinate extends BaseComponent<IGeoRegionSpec> implements IGeoCoordinate {\n static type = ComponentTypeEnum.geoCoordinate;\n type = ComponentTypeEnum.geoCoordinate;\n name: string = ComponentTypeEnum.geoCoordinate;\n\n layoutType: 'none' = 'none';\n protected layoutZIndex: number = LayoutZIndex.Mark;\n\n _longitudeField?: string;\n get longitudeField() {\n return this._longitudeField;\n }\n\n _latitudeField?: string;\n get latitudeField() {\n return this._latitudeField;\n }\n\n protected _projectionSpec: IProjectionSpec = {\n name: projectionName(this.type, this.id),\n type: 'mercator'\n };\n get projectionSpec() {\n return this._projectionSpec;\n }\n setProjection(projectionSpec: IGeoCoordinateSpec['projection']) {\n this._projectionSpec = {\n ...projectionSpec,\n name: this._projectionSpec.name\n };\n }\n\n protected _projection!: Projection;\n\n protected _centerCache: Map<StringOrNumber, { x: number; y: number }>;\n\n private _actualScale = 1;\n\n getZoom() {\n return this._actualScale;\n }\n\n private _initialScale = 1;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n if (isNil(chartSpec)) {\n return null;\n }\n const specInfos: IModelSpecInfo[] = [];\n chartSpec.region.forEach((r: IRegionSpec, i: number) => {\n if (r.coordinate === 'geo') {\n // 去除 padding 配置,避免重复计算\n const spec = { ...r, padding: 0 };\n specInfos.push({\n spec,\n regionIndex: i,\n type: ComponentTypeEnum.geoCoordinate,\n specInfoPath: ['region', i, 'geoCoordinate']\n } as any);\n }\n });\n return specInfos;\n }\n\n effect: IEffect = {\n scaleUpdate: () => {\n this.coordinateHelper();\n }\n };\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n if (this._spec.roam) {\n (this as unknown as IZoomable).initZoomable(this.event, this._option.mode);\n }\n\n this._projectionSpec = mergeSpec(this._projectionSpec, this._spec.projection);\n if (this._projectionSpec.zoom > this._spec.zoomLimit?.max) {\n this._projectionSpec.zoom = this._spec.zoomLimit.max;\n }\n if (this._projectionSpec.zoom < this._spec.zoomLimit?.min) {\n this._projectionSpec.zoom = this._spec.zoomLimit.min;\n }\n\n this._actualScale = this._projectionSpec.zoom ?? 1;\n this._initialScale = this._actualScale;\n this._longitudeField = this._spec.longitudeField;\n this._latitudeField = this._spec.latitudeField;\n }\n\n // life cycle\n created() {\n super.created();\n this._regions = this._option.getRegionsInIndex([(this._option as any).regionIndex]);\n this.initProjection();\n this.coordinateHelper();\n this.initEvent();\n this._initCenterCache();\n // FIXME: 这里是在开启缩放时,处理关联的symbol等mark,在地图缩放时应该同步缩放\n // this.rescaleMark();\n }\n\n private _handleChartZoom = (\n params: { zoomDelta: number; zoomX?: number; zoomY?: number },\n event?: BaseEventParams['event']\n ) => {\n let scale = params.zoomDelta;\n // check if the next scale will outrange\n const _lastActualScale = this._actualScale;\n this._actualScale *= scale;\n if (this._actualScale < this._spec.zoomLimit?.min) {\n this._actualScale = this._spec.zoomLimit?.min;\n scale = this._spec.zoomLimit?.min / _lastActualScale;\n } else if (this._actualScale > this._spec.zoomLimit?.max) {\n this._actualScale = this._spec.zoomLimit?.max;\n scale = this._spec.zoomLimit?.max / _lastActualScale;\n }\n if (event) {\n (event as any).zoomDelta = scale;\n }\n this.zoom(scale, [params.zoomX, params.zoomY]);\n return scale;\n };\n\n dispatchZoom(zoomDelta: number, center?: { x: number; y: number }) {\n const scaleCenter = center || {\n x: this.getLayoutStartPoint().x + this.getLayoutRect().width / 2,\n y: this.getLayoutStartPoint().y + this.getLayoutRect().height / 2\n };\n const scale = this._handleChartZoom({ zoomDelta, zoomX: scaleCenter.x, zoomY: scaleCenter.y });\n if (scale !== 1) {\n this.event.emit('zoom', {\n scale,\n scaleCenter,\n model: this\n } as unknown as ExtendEventParam);\n }\n }\n\n initEvent() {\n this.event.on(\n ChartEvent.scaleUpdate,\n { filter: ({ model }) => model?.id === this.id },\n this.effect.scaleUpdate.bind(this)\n );\n\n if (this._spec.roam) {\n (this as unknown as IZoomable).initZoomEventOfRegions(this._regions, null, this._handleChartZoom);\n (this as unknown as IZoomable).initDragEventOfRegions(this._regions, () => true, this.pan);\n\n this._regions.forEach(r => {\n r.getSeries().forEach(s => {\n s.event.on('zoom', e => {\n s.handleZoom(e as ZoomEventParam);\n return true;\n });\n\n s.event.on('panmove', e => {\n s.handlePan(e as PanEventParam);\n return true;\n });\n });\n });\n }\n }\n\n initProjection() {\n this._projection = new Projection(this._projectionSpec);\n if (this._projection.projection === null) {\n this._option?.onError('unsupported projection type!');\n return;\n }\n }\n\n coordinateHelper() {\n const helper: IGeoCoordinateHelper = {\n longitudeField: this._longitudeField,\n latitudeField: this._latitudeField,\n dataToPosition: this.dataToPosition.bind(this),\n dataToLongitude: this.dataToLongitude.bind(this),\n dataToLatitude: this.dataToLatitude.bind(this),\n shape: this.shape.bind(this),\n getCoordinateId: () => this.id\n };\n\n this._regions.forEach(r => {\n r.getSeries().forEach(s => {\n if (s.type === SeriesTypeEnum.map) {\n (s as IGeoSeries).setCoordinateHelper(helper);\n } else {\n // 散点地图\n (s as ICartesianSeries).setXAxisHelper({\n ...helper,\n isContinuous: true,\n dataToPosition: (values: any[], option) => {\n let value = values[0];\n if (isNil(value) && option?.datum) {\n const nameFieldValue = option.datum[(s as ICartesianSeries).getDimensionField()[0]];\n value = this._centerCache.get(nameFieldValue)?.x;\n }\n return this.dataToLongitude(value);\n },\n valueToPosition: (value: any, option) => {\n if (isNil(value) && option?.datum) {\n const nameFieldValue = option.datum[(s as ICartesianSeries).getDimensionField()[0]];\n value = this._centerCache.get(nameFieldValue)?.x;\n }\n return this.dataToLongitude(value);\n },\n getFields: () => [this._longitudeField],\n getAxisType: () => this.type,\n getAxisId: () => this.id,\n isInverse: () => false\n });\n (s as unknown as ICartesianSeries).setYAxisHelper({\n ...helper,\n isContinuous: true,\n dataToPosition: (values: any[], option) => {\n let value = values[0];\n if (isNil(value) && option?.datum) {\n const nameFieldValue = option.datum[(s as ICartesianSeries).getDimensionField()[0]];\n value = this._centerCache.get(nameFieldValue)?.y;\n }\n return this.dataToLatitude(value);\n },\n valueToPosition: (value: any, option) => {\n if (isNil(value) && option?.datum) {\n const nameFieldValue = option.datum[(s as ICartesianSeries).getDimensionField()[0]];\n value = this._centerCache.get(nameFieldValue)?.y;\n }\n return this.dataToLatitude(value);\n },\n getFields: () => [this._latitudeField],\n getAxisType: () => this.type,\n getAxisId: () => this.id,\n isInverse: () => false\n });\n }\n });\n });\n }\n\n onLayoutEnd(ctx: IModelLayoutOption) {\n this.setLayoutRect(this._regions[0].getLayoutRectExcludeIndent());\n this.setLayoutStartPosition(this._regions[0].getLayoutPositionExcludeIndent());\n const { width, height } = this.getLayoutRect();\n const { translate, scale, center } = this.evaluateProjection([0, 0], [width, height]);\n translate && this._projection.translate(translate);\n scale && this._projection.scale(scale);\n center && this._projection.center(center);\n eachSeries(this._regions, s => {\n if (s.type === SeriesTypeEnum.map) {\n (s as MapSeries).areaPath.clear();\n const pathGroup = s.getRootMark().getProduct()?.getGroupGraphicItem();\n if (pathGroup) {\n if (pathGroup.attribute.postMatrix) {\n pathGroup.setAttributes({\n postMatrix: new Matrix()\n });\n }\n }\n }\n });\n this._actualScale = this._initialScale;\n\n super.onLayoutEnd(ctx);\n }\n\n onRender(ctx: IModelRenderOption) {\n // do nothing\n }\n\n // region\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [];\n }\n\n // util\n protected collectFeatures() {\n const features: any[] = [];\n this._regions.forEach(r => {\n r.getSeries().forEach(s => {\n if (s.type === SeriesTypeEnum.map) {\n features.push(...((s as unknown as IGeoSeries).getMapViewData()?.latestData ?? []));\n }\n });\n });\n return features;\n }\n\n // API\n dataToPosition(values: number[] = []): IPoint {\n const point = this._projection?.project([values[0], values[1]]);\n return {\n x: point?.[0],\n y: point?.[1]\n };\n }\n\n dataToLatitude(lat: number): number {\n const point = this._projection?.project([0, lat]);\n return point?.[1];\n }\n\n dataToLongitude(lon: number): number {\n const point = this._projection?.project([lon, 0]);\n return point?.[0];\n }\n\n // interaction\n zoom(p: number, anchor: [number, number] = [0, 0]) {\n let s = this._projection?.scale() ?? 0;\n const t = this._projection?.translate() ?? [0, 0];\n let t_x = t[0];\n let t_y = t[1];\n s = s * p;\n t_x -= (anchor[0] - t_x) * (p - 1);\n t_y -= (anchor[1] - t_y) * (p - 1);\n\n this._projection?.scale(s);\n this._projection?.translate([t_x, t_y]);\n }\n\n pan = (delta: [number, number] = [0, 0]) => {\n const t = this._projection?.translate() ?? [0, 0];\n let t_x = t[0];\n let t_y = t[1];\n t_x += delta[0];\n t_y += delta[1];\n this._projection?.translate([t_x, t_y]);\n };\n\n shape(datum?: any) {\n return this._projection.shape(datum);\n }\n\n /**\n * 根据像素坐标获取经纬度位置\n */\n invert(point: [number, number]) {\n return this._projection.invert(point);\n }\n\n private evaluateProjection(start: [number, number], size: [number, number]) {\n const evaluated = this._projection.evaluate(start, size, this.collectFeatures());\n let translate = evaluated.translate();\n const scale = evaluated.scale() * this._initialScale;\n const center = this._projectionSpec.center ?? evaluated.invert([size[0] / 2, size[1] / 2]);\n center && (translate = [size[0] / 2, size[1] / 2]);\n return { translate, scale, center };\n }\n\n protected _initCenterCache() {\n if (!this._centerCache) {\n this._centerCache = new Map();\n }\n this._regions.forEach(r => {\n r.getSeries().forEach(s => {\n if (s.type === 'map') {\n const mapData = (s as IGeoSeries).getMapViewData()?.latestData ?? [];\n mapData.forEach((feature: any = {}) => {\n const key = feature[s.getDimensionField()[0]] || feature[DEFAULT_MAP_LOOK_UP_KEY];\n const center = (s as IGeoSeries).getDatumCenter(feature);\n if (key && isValid(center)) {\n this._centerCache.set(key, { x: center[0], y: center[1] });\n }\n });\n }\n });\n });\n }\n\n release(): void {\n super.release();\n this._centerCache && this._centerCache.clear();\n this._centerCache = null;\n }\n}\n\nmixin(GeoCoordinate, Zoomable);\n\nexport const registerGeoCoordinate = () => {\n Factory.registerComponent(GeoCoordinate.type, GeoCoordinate);\n};\n"]}
|
|
@@ -28,7 +28,8 @@ class Player extends base_component_1.BaseComponent {
|
|
|
28
28
|
}, this._createOrUpdatePlayerComponent = () => {
|
|
29
29
|
const attrs = Object.assign({}, this._getPlayerAttrs()), container = this.getContainer();
|
|
30
30
|
this._playerComponent ? (0, vutils_1.isEqual)(attrs, this._cacheAttrs) || (this._cacheAttrs = attrs,
|
|
31
|
-
this._playerComponent.setAttributes(attrs)
|
|
31
|
+
this._playerComponent.setAttributes(attrs), this._playerComponent._initAttributes(),
|
|
32
|
+
this._playerComponent.render()) : ("discrete" === attrs.type ? this._playerComponent = new vrender_components_1.DiscretePlayer(attrs) : this._playerComponent = new vrender_components_1.ContinuousPlayer(attrs),
|
|
32
33
|
this._cacheAttrs = attrs, this._playerComponent.name = "player", container.add(this._playerComponent),
|
|
33
34
|
this._initEvent());
|
|
34
35
|
}, this._maxSize = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/player/player.ts"],"names":[],"mappings":"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","file":"player.js","sourcesContent":["import { Factory } from './../../core/factory';\nimport type { INode, IGroup, IGraphic } from '@visactor/vrender-core';\nimport type { ContinuousPlayerAttributes, DiscretePlayerAttributes } from '@visactor/vrender-components';\n\n// eslint-disable-next-line no-duplicate-imports\nimport { DiscretePlayer, ContinuousPlayer, PlayerEventEnum } from '@visactor/vrender-components';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isNumber, array, isEqual, isNil, isValidNumber } from '@visactor/vutils';\n\nimport type { IModelRenderOption, IModelSpecInfo } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport type { IComponentOption } from '../interface';\n\nimport type { DirectionType, IPlayer } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IComponent } from '../interface';\nimport type { IPoint, IOrientType, ILayoutRect, IChartSpec, IDataValues } from '../../typings';\n\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport { BaseComponent } from '../base/base-component';\nimport { transformContinuousSpecToAttrs, transformDiscreteSpecToAttrs } from './utils/transform';\nimport { isHorizontal, isVertical } from './utils/orient';\nimport { ChartEvent, LayoutLevel, LayoutZIndex } from '../../constant';\n\nexport class Player extends BaseComponent<IPlayer> implements IComponent {\n layoutZIndex: number = LayoutZIndex.Player;\n layoutLevel: number = LayoutLevel.Player;\n\n static specKey = 'player';\n specKey: string = 'player';\n\n static type = ComponentTypeEnum.player;\n type = ComponentTypeEnum.player;\n protected _orient: IOrientType = 'bottom';\n private _specs: Partial<IChartSpec>[];\n\n private _playerComponent: DiscretePlayer | ContinuousPlayer;\n private _cacheAttrs: ContinuousPlayerAttributes | DiscretePlayerAttributes;\n\n private _direction: DirectionType;\n private _alternate: boolean;\n private _dx: number;\n private _dy: number;\n private _width: number;\n private _height: number;\n private _position: 'start' | 'middle' | 'end';\n\n get orient() {\n return this._orient;\n }\n\n set layoutOrient(v: IOrientType) {\n this._orient = v;\n }\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const playerSpec = chartSpec[this.specKey];\n if (isNil(playerSpec) || playerSpec.visible === false) {\n return null;\n }\n return [\n {\n spec: playerSpec,\n specPath: [this.specKey],\n type: ComponentTypeEnum.player\n }\n ];\n }\n\n /**\n * 设置Attr\n */\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._orient = this._spec.orient ?? 'bottom';\n this._specs = this._spec.specs ?? [];\n this._direction = this._spec.direction ?? 'default';\n this._alternate = this._spec.alternate ?? false;\n this._dx = this._spec.dx ?? 0;\n this._dy = this._spec.dy ?? 0;\n this._position = this._spec.position ?? 'middle';\n }\n\n /**\n * 计算组件位置(布局的左上角起点)\n * @param pos\n */\n afterSetLayoutStartPoint(pos: IPoint) {\n super.afterSetLayoutStartPoint(pos);\n if (isValidNumber(pos.x)) {\n const offsetX = isVertical(this._orient) ? pos.x + this._sliderExceededSize() / 2 : pos.x;\n this._playerComponent && this._playerComponent.setAttribute('x', offsetX);\n }\n if (isValidNumber(pos.y)) {\n const offsetY = isHorizontal(this._orient) ? pos.y + this._sliderExceededSize() / 2 : pos.y;\n this._playerComponent && this._playerComponent.setAttribute('y', offsetY);\n }\n }\n\n /**\n * 计算组件占用的bound box\n * @param rect\n * @returns\n */\n getBoundsInRect(rect: ILayoutRect, fullSpace: ILayoutRect) {\n this._width = this._computeWidth(rect);\n this._height = this._computeHeight(rect);\n this._dx = this._computeDx(fullSpace);\n this._dy = this._computeDy(fullSpace);\n\n const bounds = this._computeLayoutRect(rect, this._width, this._height);\n\n this._createOrUpdatePlayerComponent();\n\n return bounds;\n }\n\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n onRender(ctx: IModelRenderOption): void {\n // do nothing\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._playerComponent] as unknown as IGroup[];\n }\n\n /**\n * 播放器属性\n */\n private _getPlayerAttrs = () => {\n const type = this._spec.type;\n const layoutAttrs = {\n size: {\n width: this._width,\n height: this._height\n },\n dx: this._spec.dx ?? 0 + this._dx,\n dy: this._spec.dy ?? 0 + this._dy\n };\n // 离散类型Attrs\n if (type === 'discrete') {\n return {\n ...transformDiscreteSpecToAttrs(this._spec, this._specs),\n ...layoutAttrs,\n disableTriggerEvent: this._option.disableTriggerEvent\n };\n }\n // 连续类型Attrs\n return {\n ...transformContinuousSpecToAttrs(this._spec, this._specs),\n ...layoutAttrs,\n disableTriggerEvent: this._option.disableTriggerEvent\n };\n };\n\n /**\n * 创建或更新播放器组件\n */\n private _createOrUpdatePlayerComponent = () => {\n const attrs = { ...this._getPlayerAttrs() };\n const container = this.getContainer();\n if (this._playerComponent) {\n if (!isEqual(attrs, this._cacheAttrs)) {\n this._cacheAttrs = attrs;\n this._playerComponent.setAttributes(attrs);\n }\n } else {\n if (attrs.type === 'discrete') {\n this._playerComponent = new DiscretePlayer(attrs);\n } else {\n this._playerComponent = new ContinuousPlayer(attrs);\n }\n\n this._cacheAttrs = attrs;\n this._playerComponent.name = `player`;\n\n container.add(this._playerComponent as unknown as INode);\n\n this._initEvent();\n }\n };\n\n /**\n * 计算起点\n */\n private _computeLayoutRect(rect: ILayoutRect, width: number, height: number) {\n switch (this._orient) {\n case 'top': {\n return { x1: 0, y1: 0, x2: width, y2: height };\n }\n case 'right': {\n return { x1: rect.width - width, y1: 0, x2: rect.width, y2: rect.height };\n }\n case 'left': {\n return { x1: 0, y1: 0, x2: width, y2: height };\n }\n case 'bottom':\n default: {\n return { x1: 0, y1: rect.height - height, x2: rect.width, y2: rect.height };\n }\n }\n }\n\n /**\n * 计算组件宽度\n */\n private _computeWidth(rect: ILayoutRect) {\n // 若设置的是数值则直接返回\n if (isNumber(this._spec.width)) {\n return Math.min(rect.width, Number(this._spec.width));\n }\n\n if (isVertical(this._orient)) {\n return this._maxSize();\n }\n return rect.width;\n }\n\n /**\n * 计算组件高度\n */\n private _computeHeight(rect: ILayoutRect) {\n // 若设置的是数值则直接返回\n if (isNumber(this._spec.height)) {\n this._height = this._spec.height;\n return Math.min(rect.height, Number(this._spec.height));\n }\n\n if (isHorizontal(this._orient)) {\n return this._maxSize();\n }\n return rect.height;\n }\n\n /**\n * 计算x方向的偏移, 用于实现对齐\n */\n private _computeDx(rect: ILayoutRect) {\n // 垂直时, x不偏移\n if (isVertical(this._orient)) {\n return 0;\n }\n\n // start\n if (this._position === 'start') {\n return 0;\n }\n // middle\n else if (this._position === 'middle') {\n return (rect.width - this._width) / 2;\n }\n // end\n return rect.width - this._width;\n }\n\n /**\n * 计算y方向的偏移, 用于实现对齐\n */\n private _computeDy(rect: ILayoutRect) {\n // 水平时, y不偏移\n if (isHorizontal(this._orient)) {\n return 0;\n }\n\n // start\n if (this._position === 'start') {\n return 0;\n }\n // middle\n else if (this._position === 'middle') {\n return (rect.height - this._height) / 2;\n }\n\n // end\n return rect.height - this._height;\n }\n\n /**\n * 播放器宽度取计算子组件中最高的一个\n */\n private _maxSize = () => {\n return Math.max(\n ...array(this._spec.controller.start?.style?.size),\n ...array(this._spec.controller.pause?.style?.size),\n ...array(this._spec.controller.backward?.style?.size),\n ...array(this._spec.controller.forward?.style?.size),\n (isVertical(this._orient) ? this._spec.slider.railStyle.width : this._spec.slider.railStyle.height) ?? 10\n );\n };\n\n /**\n * 滑动条超过按钮的高度\n */\n private _sliderExceededSize = () => {\n const sliderHeight =\n (isVertical(this._orient) ? this._spec.slider.railStyle.width : this._spec.slider.railStyle.height) ?? 10;\n const controllersHeight = Math.max(\n ...array(this._spec.controller.start?.style?.size),\n ...array(this._spec.controller.pause?.style?.size),\n ...array(this._spec.controller.backward?.style?.size),\n ...array(this._spec.controller.forward?.style?.size)\n );\n if (sliderHeight >= controllersHeight) {\n return sliderHeight - controllersHeight;\n }\n return 0;\n };\n\n /**\n * 事件\n */\n private _initEvent = () => {\n if (this._option.disableTriggerEvent) {\n return;\n }\n // 自动播放\n this._option.globalInstance.on(ChartEvent.rendered, () => {\n if (this._spec?.auto) {\n this._playerComponent.play();\n }\n });\n\n // 循环播放 与 交替方向\n this._playerComponent.addEventListener(PlayerEventEnum.OnEnd, () => {\n this.event.emit(ChartEvent.playerEnd, { model: this });\n\n // 交替方向, 仅离散轴支持\n if (this._alternate && this._spec.type === 'discrete') {\n this._direction = this._direction === 'default' ? 'reverse' : 'default';\n this._playerComponent.setAttributes({\n direction: this._direction,\n dataIndex: this._direction === 'reverse' ? this._specs.length - 2 : 1\n });\n }\n\n // 循环播放\n if (this._spec?.loop) {\n this._playerComponent.play();\n }\n });\n\n // 数据更新\n this._playerComponent.addEventListener(PlayerEventEnum.OnChange, (e: { detail: { index: number } }) => {\n // 更新data\n const { index } = e.detail;\n const spec = this._specs[index];\n (array(spec.data) as IDataValues[]).forEach(data => {\n this._option?.globalInstance?.updateData(data.id, data.values);\n });\n\n this.event.emit(ChartEvent.playerChange, {\n model: this,\n value: {\n spec: spec,\n index: index,\n specs: this._specs\n }\n });\n });\n\n // 后退\n this._playerComponent.addEventListener(PlayerEventEnum.OnBackward, (e: { detail: { index: number } }) => {\n const { index } = e.detail;\n const spec = this._specs[index];\n this.event.emit(ChartEvent.playerBackward, {\n model: this,\n value: {\n spec: spec,\n index: index,\n specs: this._specs\n }\n });\n });\n\n // 前进\n this._playerComponent.addEventListener(PlayerEventEnum.OnForward, (e: { detail: { index: number } }) => {\n const { index } = e.detail;\n const spec = this._specs[index];\n this.event.emit(ChartEvent.playerForward, {\n model: this,\n value: {\n spec: spec,\n index: index,\n specs: this._specs\n }\n });\n });\n\n // 播放\n this._playerComponent.addEventListener(PlayerEventEnum.OnPlay, (e: { detail: { index: number } }) => {\n const { index } = e.detail;\n const spec = this._specs[index];\n this.event.emit(ChartEvent.playerPlay, {\n model: this,\n value: {\n spec: spec,\n index: index,\n specs: this._specs\n }\n });\n });\n\n // 暂停\n this._playerComponent.addEventListener(PlayerEventEnum.OnPause, (e: { detail: { index: number } }) => {\n const { index } = e.detail;\n const spec = this._specs[index];\n this.event.emit(ChartEvent.playerPause, {\n model: this,\n value: {\n spec: spec,\n index: index,\n specs: this._specs\n }\n });\n });\n };\n}\n\nexport const registerPlayer = () => {\n Factory.registerComponent(Player.type, Player);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/player/player.ts"],"names":[],"mappings":"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","file":"player.js","sourcesContent":["import { Factory } from './../../core/factory';\nimport type { INode, IGroup, IGraphic } from '@visactor/vrender-core';\nimport type { ContinuousPlayerAttributes, DiscretePlayerAttributes } from '@visactor/vrender-components';\n\n// eslint-disable-next-line no-duplicate-imports\nimport { DiscretePlayer, ContinuousPlayer, PlayerEventEnum } from '@visactor/vrender-components';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isNumber, array, isEqual, isNil, isValidNumber } from '@visactor/vutils';\n\nimport type { IModelRenderOption, IModelSpecInfo } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport type { IComponentOption } from '../interface';\n\nimport type { DirectionType, IPlayer } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IComponent } from '../interface';\nimport type { IPoint, IOrientType, ILayoutRect, IChartSpec, IDataValues } from '../../typings';\n\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport { BaseComponent } from '../base/base-component';\nimport { transformContinuousSpecToAttrs, transformDiscreteSpecToAttrs } from './utils/transform';\nimport { isHorizontal, isVertical } from './utils/orient';\nimport { ChartEvent, LayoutLevel, LayoutZIndex } from '../../constant';\n\nexport class Player extends BaseComponent<IPlayer> implements IComponent {\n layoutZIndex: number = LayoutZIndex.Player;\n layoutLevel: number = LayoutLevel.Player;\n\n static specKey = 'player';\n specKey: string = 'player';\n\n static type = ComponentTypeEnum.player;\n type = ComponentTypeEnum.player;\n protected _orient: IOrientType = 'bottom';\n private _specs: Partial<IChartSpec>[];\n\n private _playerComponent: DiscretePlayer | ContinuousPlayer;\n private _cacheAttrs: ContinuousPlayerAttributes | DiscretePlayerAttributes;\n\n private _direction: DirectionType;\n private _alternate: boolean;\n private _dx: number;\n private _dy: number;\n private _width: number;\n private _height: number;\n private _position: 'start' | 'middle' | 'end';\n\n get orient() {\n return this._orient;\n }\n\n set layoutOrient(v: IOrientType) {\n this._orient = v;\n }\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const playerSpec = chartSpec[this.specKey];\n if (isNil(playerSpec) || playerSpec.visible === false) {\n return null;\n }\n return [\n {\n spec: playerSpec,\n specPath: [this.specKey],\n type: ComponentTypeEnum.player\n }\n ];\n }\n\n /**\n * 设置Attr\n */\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._orient = this._spec.orient ?? 'bottom';\n this._specs = this._spec.specs ?? [];\n this._direction = this._spec.direction ?? 'default';\n this._alternate = this._spec.alternate ?? false;\n this._dx = this._spec.dx ?? 0;\n this._dy = this._spec.dy ?? 0;\n this._position = this._spec.position ?? 'middle';\n }\n\n /**\n * 计算组件位置(布局的左上角起点)\n * @param pos\n */\n afterSetLayoutStartPoint(pos: IPoint) {\n super.afterSetLayoutStartPoint(pos);\n if (isValidNumber(pos.x)) {\n const offsetX = isVertical(this._orient) ? pos.x + this._sliderExceededSize() / 2 : pos.x;\n this._playerComponent && this._playerComponent.setAttribute('x', offsetX);\n }\n if (isValidNumber(pos.y)) {\n const offsetY = isHorizontal(this._orient) ? pos.y + this._sliderExceededSize() / 2 : pos.y;\n this._playerComponent && this._playerComponent.setAttribute('y', offsetY);\n }\n }\n\n /**\n * 计算组件占用的bound box\n * @param rect\n * @returns\n */\n getBoundsInRect(rect: ILayoutRect, fullSpace: ILayoutRect) {\n this._width = this._computeWidth(rect);\n this._height = this._computeHeight(rect);\n this._dx = this._computeDx(fullSpace);\n this._dy = this._computeDy(fullSpace);\n\n const bounds = this._computeLayoutRect(rect, this._width, this._height);\n\n this._createOrUpdatePlayerComponent();\n\n return bounds;\n }\n\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n onRender(ctx: IModelRenderOption): void {\n // do nothing\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._playerComponent] as unknown as IGroup[];\n }\n\n /**\n * 播放器属性\n */\n private _getPlayerAttrs = () => {\n const type = this._spec.type;\n const layoutAttrs = {\n size: {\n width: this._width,\n height: this._height\n },\n dx: this._spec.dx ?? 0 + this._dx,\n dy: this._spec.dy ?? 0 + this._dy\n };\n // 离散类型Attrs\n if (type === 'discrete') {\n return {\n ...transformDiscreteSpecToAttrs(this._spec, this._specs),\n ...layoutAttrs,\n disableTriggerEvent: this._option.disableTriggerEvent\n };\n }\n // 连续类型Attrs\n return {\n ...transformContinuousSpecToAttrs(this._spec, this._specs),\n ...layoutAttrs,\n disableTriggerEvent: this._option.disableTriggerEvent\n };\n };\n\n /**\n * 创建或更新播放器组件\n */\n private _createOrUpdatePlayerComponent = () => {\n const attrs = { ...this._getPlayerAttrs() };\n const container = this.getContainer();\n if (this._playerComponent) {\n if (!isEqual(attrs, this._cacheAttrs)) {\n this._cacheAttrs = attrs;\n this._playerComponent.setAttributes(attrs);\n // FIXME: player 组件没有重写 setAttributes 方法,因此不能正常更新样式。以下两句模拟执行了 setAttributes 方法,但是应在 vrender-component 的后续版本中实现 setAttributes 方法\n this._playerComponent._initAttributes();\n this._playerComponent.render();\n }\n } else {\n if (attrs.type === 'discrete') {\n this._playerComponent = new DiscretePlayer(attrs);\n } else {\n this._playerComponent = new ContinuousPlayer(attrs);\n }\n\n this._cacheAttrs = attrs;\n this._playerComponent.name = `player`;\n\n container.add(this._playerComponent as unknown as INode);\n\n this._initEvent();\n }\n };\n\n /**\n * 计算起点\n */\n private _computeLayoutRect(rect: ILayoutRect, width: number, height: number) {\n switch (this._orient) {\n case 'top': {\n return { x1: 0, y1: 0, x2: width, y2: height };\n }\n case 'right': {\n return { x1: rect.width - width, y1: 0, x2: rect.width, y2: rect.height };\n }\n case 'left': {\n return { x1: 0, y1: 0, x2: width, y2: height };\n }\n case 'bottom':\n default: {\n return { x1: 0, y1: rect.height - height, x2: rect.width, y2: rect.height };\n }\n }\n }\n\n /**\n * 计算组件宽度\n */\n private _computeWidth(rect: ILayoutRect) {\n // 若设置的是数值则直接返回\n if (isNumber(this._spec.width)) {\n return Math.min(rect.width, Number(this._spec.width));\n }\n\n if (isVertical(this._orient)) {\n return this._maxSize();\n }\n return rect.width;\n }\n\n /**\n * 计算组件高度\n */\n private _computeHeight(rect: ILayoutRect) {\n // 若设置的是数值则直接返回\n if (isNumber(this._spec.height)) {\n this._height = this._spec.height;\n return Math.min(rect.height, Number(this._spec.height));\n }\n\n if (isHorizontal(this._orient)) {\n return this._maxSize();\n }\n return rect.height;\n }\n\n /**\n * 计算x方向的偏移, 用于实现对齐\n */\n private _computeDx(rect: ILayoutRect) {\n // 垂直时, x不偏移\n if (isVertical(this._orient)) {\n return 0;\n }\n\n // start\n if (this._position === 'start') {\n return 0;\n }\n // middle\n else if (this._position === 'middle') {\n return (rect.width - this._width) / 2;\n }\n // end\n return rect.width - this._width;\n }\n\n /**\n * 计算y方向的偏移, 用于实现对齐\n */\n private _computeDy(rect: ILayoutRect) {\n // 水平时, y不偏移\n if (isHorizontal(this._orient)) {\n return 0;\n }\n\n // start\n if (this._position === 'start') {\n return 0;\n }\n // middle\n else if (this._position === 'middle') {\n return (rect.height - this._height) / 2;\n }\n\n // end\n return rect.height - this._height;\n }\n\n /**\n * 播放器宽度取计算子组件中最高的一个\n */\n private _maxSize = () => {\n return Math.max(\n ...array(this._spec.controller.start?.style?.size),\n ...array(this._spec.controller.pause?.style?.size),\n ...array(this._spec.controller.backward?.style?.size),\n ...array(this._spec.controller.forward?.style?.size),\n (isVertical(this._orient) ? this._spec.slider.railStyle.width : this._spec.slider.railStyle.height) ?? 10\n );\n };\n\n /**\n * 滑动条超过按钮的高度\n */\n private _sliderExceededSize = () => {\n const sliderHeight =\n (isVertical(this._orient) ? this._spec.slider.railStyle.width : this._spec.slider.railStyle.height) ?? 10;\n const controllersHeight = Math.max(\n ...array(this._spec.controller.start?.style?.size),\n ...array(this._spec.controller.pause?.style?.size),\n ...array(this._spec.controller.backward?.style?.size),\n ...array(this._spec.controller.forward?.style?.size)\n );\n if (sliderHeight >= controllersHeight) {\n return sliderHeight - controllersHeight;\n }\n return 0;\n };\n\n /**\n * 事件\n */\n private _initEvent = () => {\n if (this._option.disableTriggerEvent) {\n return;\n }\n // 自动播放\n this._option.globalInstance.on(ChartEvent.rendered, () => {\n if (this._spec?.auto) {\n this._playerComponent.play();\n }\n });\n\n // 循环播放 与 交替方向\n this._playerComponent.addEventListener(PlayerEventEnum.OnEnd, () => {\n this.event.emit(ChartEvent.playerEnd, { model: this });\n\n // 交替方向, 仅离散轴支持\n if (this._alternate && this._spec.type === 'discrete') {\n this._direction = this._direction === 'default' ? 'reverse' : 'default';\n this._playerComponent.setAttributes({\n direction: this._direction,\n dataIndex: this._direction === 'reverse' ? this._specs.length - 2 : 1\n });\n }\n\n // 循环播放\n if (this._spec?.loop) {\n this._playerComponent.play();\n }\n });\n\n // 数据更新\n this._playerComponent.addEventListener(PlayerEventEnum.OnChange, (e: { detail: { index: number } }) => {\n // 更新data\n const { index } = e.detail;\n const spec = this._specs[index];\n (array(spec.data) as IDataValues[]).forEach(data => {\n this._option?.globalInstance?.updateData(data.id, data.values);\n });\n\n this.event.emit(ChartEvent.playerChange, {\n model: this,\n value: {\n spec: spec,\n index: index,\n specs: this._specs\n }\n });\n });\n\n // 后退\n this._playerComponent.addEventListener(PlayerEventEnum.OnBackward, (e: { detail: { index: number } }) => {\n const { index } = e.detail;\n const spec = this._specs[index];\n this.event.emit(ChartEvent.playerBackward, {\n model: this,\n value: {\n spec: spec,\n index: index,\n specs: this._specs\n }\n });\n });\n\n // 前进\n this._playerComponent.addEventListener(PlayerEventEnum.OnForward, (e: { detail: { index: number } }) => {\n const { index } = e.detail;\n const spec = this._specs[index];\n this.event.emit(ChartEvent.playerForward, {\n model: this,\n value: {\n spec: spec,\n index: index,\n specs: this._specs\n }\n });\n });\n\n // 播放\n this._playerComponent.addEventListener(PlayerEventEnum.OnPlay, (e: { detail: { index: number } }) => {\n const { index } = e.detail;\n const spec = this._specs[index];\n this.event.emit(ChartEvent.playerPlay, {\n model: this,\n value: {\n spec: spec,\n index: index,\n specs: this._specs\n }\n });\n });\n\n // 暂停\n this._playerComponent.addEventListener(PlayerEventEnum.OnPause, (e: { detail: { index: number } }) => {\n const { index } = e.detail;\n const spec = this._specs[index];\n this.event.emit(ChartEvent.playerPause, {\n model: this,\n value: {\n spec: spec,\n index: index,\n specs: this._specs\n }\n });\n });\n };\n}\n\nexport const registerPlayer = () => {\n Factory.registerComponent(Player.type, Player);\n};\n"]}
|
package/cjs/core/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VChart } from './vchart';
|
|
2
2
|
import { Factory } from './factory';
|
|
3
3
|
export { VChart, Factory };
|
|
4
|
-
export declare const version = "1.8.8
|
|
4
|
+
export declare const version = "1.8.8";
|
|
5
5
|
export type { IVChart } from './interface';
|
|
6
6
|
export type { IStateSpec, StateValueType } from '../compile/mark';
|
|
7
7
|
export * from '../typings/spec/common';
|
package/cjs/core/index.js
CHANGED
|
@@ -35,7 +35,7 @@ Object.defineProperty(exports, "Factory", {
|
|
|
35
35
|
get: function() {
|
|
36
36
|
return factory_1.Factory;
|
|
37
37
|
}
|
|
38
|
-
}), exports.version = "1.8.8
|
|
38
|
+
}), exports.version = "1.8.8", __exportStar(require("../typings/spec/common"), exports),
|
|
39
39
|
__exportStar(require("../event/interface"), exports), __exportStar(require("../theme/interface"), exports),
|
|
40
40
|
__exportStar(require("../constant"), exports), __exportStar(require("./interface"), exports),
|
|
41
41
|
__exportStar(require("../typings/spec/index"), exports), __exportStar(require("../theme/index"), exports);
|
package/cjs/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAIA,qCAAkC;AAGzB,uFAHA,eAAM,OAGA;AAFf,uCAAoC;AAEnB,wFAFR,iBAAO,OAEQ;AAGX,QAAA,OAAO,GAAG,
|
|
1
|
+
{"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAIA,qCAAkC;AAGzB,uFAHA,eAAM,OAGA;AAFf,uCAAoC;AAEnB,wFAFR,iBAAO,OAEQ;AAGX,QAAA,OAAO,GAAG,OAAO,CAAC;AAM/B,yDAAuC;AACvC,qDAAmC;AACnC,qDAAmC;AACnC,8CAA4B;AAC5B,8CAA4B;AAK5B,wDAAsC;AAGtC,iDAA+B;AAG/B,uDAAiD;AAAxC,uGAAA,OAAO,OAAA;AAGhB,4CAA0B","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.8.8\";\n\n// export necessary types\nexport type { IVChart } from './interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\n\nexport * from '../typings/spec/common';\nexport * from '../event/interface';\nexport * from '../theme/interface';\nexport * from '../constant';\nexport * from './interface';\n\n/**\n * spec\n */\nexport * from '../typings/spec/index';\n\n// theme\nexport * from '../theme/index';\n\n// vrender\nexport { vglobal } from '@visactor/vrender-core';\n\n// plugin\nexport * from '../plugin';\n"]}
|
|
@@ -143,10 +143,9 @@ class EventDispatcher {
|
|
|
143
143
|
var _a, _b, _c;
|
|
144
144
|
const filter = handler.filter;
|
|
145
145
|
if (!handler.query || this._filter(filter, type, params)) {
|
|
146
|
-
|
|
147
|
-
return (null === (
|
|
148
|
-
null === (
|
|
149
|
-
stopBubble;
|
|
146
|
+
const stopBubble = (handler.wrappedCallback || handler.callback).call(null, this._prepareParams(filter, params)), doStopBubble = null != stopBubble ? stopBubble : null === (_a = handler.query) || void 0 === _a ? void 0 : _a.consume;
|
|
147
|
+
return doStopBubble && (null === (_b = params.event) || void 0 === _b || _b.stopPropagation(),
|
|
148
|
+
null === (_c = params.event) || void 0 === _c || _c.preventDefault()), !!doStopBubble;
|
|
150
149
|
}
|
|
151
150
|
})).some((r => !0 === r));
|
|
152
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/event/event-dispatcher.ts"],"names":[],"mappings":"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","file":"event-dispatcher.js","sourcesContent":["import { Bubble } from './bubble';\nimport { isValid, debounce, throttle, get, isFunction } from '@visactor/vutils';\nimport { BASE_EVENTS, ChartEvent, Event_Bubble_Level, Event_Source_Type, VGRAMMAR_HOOK_EVENT } from '../constant/event';\nimport type {\n EventType,\n EventQuery,\n EventHandler,\n EventParamsDefinition,\n IEventDispatcher,\n EventBubbleLevel,\n BaseEventParams,\n EventParams,\n EventFilter,\n EventSourceType\n} from './interface';\nimport type { VChart } from '../core/vchart';\nimport type { CompilerListenerParameters } from '../compile/interface';\nimport type { Compiler } from '../compile/compiler';\nimport type { StringOrNumber } from '../typings';\n\nconst componentTypeMap = {\n cartesianAxis: 'axis',\n 'cartesianAxis-band': 'axis',\n 'cartesianAxis-linear': 'axis',\n 'cartesianAxis-time': 'axis',\n polarAxis: 'axis',\n 'polarAxis-band': 'axis',\n 'polarAxis-linear': 'axis',\n discreteLegend: 'legend',\n continuousLegend: 'legend',\n colorLegend: 'legend',\n sizeLegend: 'legend',\n label: 'label'\n};\n\nexport class EventDispatcher implements IEventDispatcher {\n globalInstance: VChart;\n\n // view 事件与 window 事件视作为不同类型的事件信息,进行独立的冒泡处理\n private _viewBubbles: Map<EventType, Bubble> = new Map<EventType, Bubble>();\n private _windowBubbles: Map<EventType, Bubble> = new Map<EventType, Bubble>();\n private _canvasBubbles: Map<EventType, Bubble> = new Map<EventType, Bubble>();\n\n private _viewListeners: Map<string, (params: CompilerListenerParameters) => void> = new Map<\n string,\n (params: CompilerListenerParameters) => void\n >();\n private _windowListeners: Map<string, (params: CompilerListenerParameters) => void> = new Map<\n string,\n (params: CompilerListenerParameters) => void\n >();\n private _canvasListeners: Map<string, (params: CompilerListenerParameters) => void> = new Map<\n string,\n (params: CompilerListenerParameters) => void\n >();\n\n private _compiler: Compiler;\n\n constructor(vchart: VChart, compiler: Compiler) {\n this.globalInstance = vchart;\n this._compiler = compiler;\n }\n\n register<Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>): this {\n // 解析 query 配置并生成最终 handler 内容\n this._parseQuery(handler);\n // view/window 事件做独立的处理\n const bubbles = this.getEventBubble(handler.filter?.source || Event_Source_Type.chart);\n const listeners = this.getEventListeners(handler.filter?.source || Event_Source_Type.chart);\n\n if (!bubbles.get(eType)) {\n bubbles.set(eType, new Bubble());\n }\n\n // 挂载事件监听\n const bubble = bubbles.get(eType) as Bubble;\n bubble.addHandler(handler, handler.filter?.level as EventBubbleLevel);\n if (this._isValidEvent(eType) && !listeners.has(eType)) {\n const callback = this._onDelegate.bind(this);\n this._compiler.addEventListener(handler.filter?.source as EventSourceType, eType, callback);\n listeners.set(eType, callback);\n }\n return this;\n }\n\n unregister<Evt extends EventType>(eType: Evt, handler?: EventHandler<EventParamsDefinition[Evt]>): this {\n let clean: boolean = false;\n // view/window 事件做独立的处理\n const bubbles = this.getEventBubble(handler?.filter?.source || Event_Source_Type.chart);\n const listeners = this.getEventListeners(handler?.filter?.source || Event_Source_Type.chart);\n\n if (!handler) {\n const bubble = bubbles.get(eType);\n bubble?.release();\n bubbles.delete(eType);\n clean = true;\n } else {\n const bubble = bubbles.get(eType);\n bubble?.removeHandler(handler);\n if (bubble?.getCount() === 0) {\n bubble?.release();\n bubbles.delete(eType);\n clean = true;\n }\n\n if ((handler?.wrappedCallback as any)?.cancel) {\n // 取消debounce/throttle事件,释放闭包内部的上下文对象\n (handler.wrappedCallback as any).cancel();\n }\n }\n // 某个事件下所有的监听取消之后删除语法层事件的代理\n if (clean && this._isValidEvent(eType)) {\n const callback = listeners.get(eType) as (params: CompilerListenerParameters) => void;\n this._compiler.removeEventListener(handler?.filter?.source || Event_Source_Type.chart, eType, callback);\n listeners.delete(eType);\n }\n return this;\n }\n\n dispatch<Evt extends EventType>(eType: Evt, params: EventParamsDefinition[Evt], level?: EventBubbleLevel): this {\n // 默认事件类别为 view\n const bubble = this.getEventBubble((params as BaseEventParams).source || Event_Source_Type.chart).get(\n eType\n ) as Bubble;\n // 没有任何监听事件时,bubble 不存在\n if (!bubble) {\n return this;\n }\n\n // 事件冒泡逻辑:Mark -> Model -> Chart -> VChart\n let stopBubble: boolean = false;\n\n if (level) {\n // 如果指定了 level,则直接处理,不进行冒泡\n const handlers = bubble.getHandlers(level);\n stopBubble = this._invoke(handlers, eType, params);\n } else {\n // Mark 级别的事件只包含对语法层代理的基础事件\n const handlers = bubble.getHandlers(Event_Bubble_Level.mark);\n stopBubble = this._invoke(handlers, eType, params);\n\n if (!stopBubble) {\n const handlers = bubble.getHandlers(Event_Bubble_Level.model);\n stopBubble = this._invoke(handlers, eType, params);\n }\n if (!stopBubble) {\n const handlers = bubble.getHandlers(Event_Bubble_Level.chart);\n stopBubble = this._invoke(handlers, eType, params);\n }\n if (!stopBubble) {\n const handlers = bubble.getHandlers(Event_Bubble_Level.vchart);\n stopBubble = this._invoke(handlers, eType, params);\n }\n }\n\n return this;\n }\n\n release(): void {\n for (const entry of this._viewListeners.entries()) {\n this._compiler.removeEventListener(Event_Source_Type.chart, entry[0], entry[1]);\n }\n this._viewListeners.clear();\n for (const entry of this._windowListeners.entries()) {\n this._compiler.removeEventListener(Event_Source_Type.window, entry[0], entry[1]);\n }\n this._windowListeners.clear();\n for (const entry of this._canvasListeners.entries()) {\n this._compiler.removeEventListener(Event_Source_Type.canvas, entry[0], entry[1]);\n }\n this._canvasListeners.clear();\n for (const bubble of this._viewBubbles.values()) {\n bubble.release();\n }\n this._viewBubbles.clear();\n for (const bubble of this._windowBubbles.values()) {\n bubble.release();\n }\n this._windowBubbles.clear();\n for (const bubble of this._canvasBubbles.values()) {\n bubble.release();\n }\n this._canvasBubbles.clear();\n }\n\n /**\n * 基于转换后的事件筛选配置过滤需要调用的 handler\n */\n private _filter<Evt extends EventType>(filter: EventFilter, evt: Evt, params: EventParamsDefinition[Evt]): boolean {\n if (isFunction(filter.filter) && !filter.filter(params)) {\n return false;\n }\n\n // 事件 level 不需要筛选,在冒泡流程中已经处理了 level 的逻辑\n if (filter.nodeName && get(params, 'node.name') !== filter.nodeName) {\n return false;\n }\n\n if (filter.markName && (params as BaseEventParams)?.mark?.name !== filter.markName) {\n // 对于 markName 的筛选需要包含所有父级 mark 的 name\n return false;\n }\n\n let modelType = params.model?.type;\n if (componentTypeMap[modelType]) {\n modelType = componentTypeMap[modelType];\n }\n if (filter.type && modelType !== filter.type) {\n return false;\n }\n\n // 如果配置了 level 为 'mark' 并且没有配置 type,则只在事件参数中包含了 mark 时才触发\n if (filter.level === 'mark' && !filter.type && !(params as BaseEventParams)?.mark) {\n return false;\n }\n\n // 如果配置了 level 为 'model' 并且没有配置 type,则只在事件参数中包含了 model 时才触发\n if (filter.level === 'model' && !filter.type && !(params as BaseEventParams)?.model) {\n return false;\n }\n\n if (isValid(filter.userId) && params.model?.userId !== filter.userId) {\n return false;\n }\n\n return true;\n }\n\n private _prepareParams<Evt extends EventType>(\n filter: EventFilter,\n params: EventParamsDefinition[Evt]\n ): EventParamsDefinition[Evt] {\n // 如果针对于 mark 做了筛选,则事件参数转为筛选器制定的父级 mark\n if (filter.markName && params.mark && (params as BaseEventParams).itemMap) {\n const markId = params.mark.getProductId();\n const item = (params as BaseEventParams).itemMap.get(markId);\n const datum = item?.getDatum();\n return { ...params, item, datum };\n }\n return { ...params };\n }\n\n /**\n * 代理语法层事件的监听回调\n */\n private _onDelegate(listenerParams: CompilerListenerParameters) {\n const chart = this.globalInstance.getChart();\n const model = (isValid(listenerParams.modelId) && chart?.getModelById(listenerParams.modelId)) || undefined;\n const mark = (isValid(listenerParams.markId) && chart?.getMarkById(listenerParams.markId)) || null;\n\n // FIXME: 这里操作的应当是场景树结构,与 vgrammar 结构无关\n // 遍历取到所有父级的 mark 以支持子元素响应父元素事件\n const itemMap = new Map<string, any>();\n let targetMark: any = listenerParams.item?.mark;\n if (targetMark && isValid(targetMark.id())) {\n itemMap.set(targetMark.id(), listenerParams.item);\n }\n while (targetMark?.elements) {\n const id = targetMark.id();\n // 由于父级的 markName 可能重复,因此只取最近的父级 mark\n if (isValid(id) && !itemMap.has(id)) {\n itemMap.set(id, targetMark.elements[0]);\n }\n targetMark = targetMark.group;\n }\n\n const params: BaseEventParams = {\n event: listenerParams.event,\n item: listenerParams.item,\n datum: listenerParams.datum,\n source: listenerParams.source,\n itemMap,\n chart,\n model,\n mark: mark ?? undefined,\n node: get(listenerParams.event, 'target')\n };\n this.dispatch(listenerParams.type, params);\n }\n\n /**\n * 调用相应事件监听下的 handlers\n */\n private _invoke<Evt extends EventType>(\n handlers: EventHandler<EventParams>[],\n type: EventType,\n params: EventParamsDefinition[Evt]\n ): boolean {\n const result = handlers.map(handler => {\n const filter = handler.filter as EventFilter;\n if (!handler.query || this._filter(filter, type, params)) {\n const callback = handler.wrappedCallback || handler.callback;\n let stopBubble = callback.call(null, this._prepareParams(filter, params));\n if (handler.query?.consume) {\n stopBubble = true;\n (params as BaseEventParams).event?.stopPropagation();\n (params as BaseEventParams).event?.preventDefault();\n }\n return stopBubble;\n }\n return undefined;\n });\n // 如果某个事件回调阻止了冒泡,则阻止更高级别事件的调用过程\n return result.some(r => r === true);\n }\n\n /**\n * 依据事件 query 得到事件冒泡层级\n */\n private _getQueryLevel(query: EventQuery | null): EventBubbleLevel {\n // 事件默认监听在 vchart 层\n if (!query) {\n return Event_Bubble_Level.vchart;\n }\n if (query.level) {\n return query.level;\n }\n if (isValid(query.id)) {\n return Event_Bubble_Level.model;\n }\n\n return Event_Bubble_Level.vchart;\n }\n\n /**\n * 将用户 query 配置转换为最终事件筛选参数\n */\n private _parseQuery(handler: EventHandler<EventParams>): EventHandler<EventParams> {\n const query = handler.query;\n // 处理 query 带来的函数封装\n if (query?.throttle) {\n handler.wrappedCallback = throttle(handler.callback, query.throttle);\n } else if (query?.debounce) {\n handler.wrappedCallback = debounce(handler.callback, query.debounce);\n }\n let level = this._getQueryLevel(query);\n let type: string | null = null;\n let source: EventSourceType = Event_Source_Type.chart;\n let nodeName: string | null = null;\n let markName: string | null = null;\n let userId: StringOrNumber | null = null;\n\n if (query?.nodeName) {\n nodeName = query.nodeName;\n }\n\n if (query?.markName) {\n markName = query.markName;\n }\n\n if (query?.type && (level === Event_Bubble_Level.model || level === Event_Bubble_Level.mark)) {\n type = query.type;\n }\n if (query?.source) {\n source = query.source;\n }\n\n if (isValid(query?.id)) {\n userId = query?.id;\n level = Event_Bubble_Level.model; // 如果用户配置了 id,那么默认 level 为 model\n }\n handler.filter = {\n level,\n markName,\n type,\n source,\n nodeName,\n userId,\n filter: query?.filter ?? null\n };\n return handler;\n }\n\n private getEventBubble(source: EventSourceType) {\n switch (source) {\n case Event_Source_Type.chart:\n return this._viewBubbles;\n case Event_Source_Type.window:\n return this._windowBubbles;\n case Event_Source_Type.canvas:\n return this._canvasBubbles;\n default:\n return this._viewBubbles;\n }\n }\n\n private getEventListeners(source: EventSourceType) {\n switch (source) {\n case Event_Source_Type.chart:\n return this._viewListeners;\n case Event_Source_Type.window:\n return this._windowListeners;\n case Event_Source_Type.canvas:\n return this._canvasListeners;\n default:\n return this._viewListeners;\n }\n }\n\n private _isValidEvent(eType: string) {\n return (\n BASE_EVENTS.includes(eType) ||\n (Object.values(VGRAMMAR_HOOK_EVENT) as string[]).includes(eType) ||\n (Object.values(ChartEvent) as string[]).includes(eType)\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/event/event-dispatcher.ts"],"names":[],"mappings":"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","file":"event-dispatcher.js","sourcesContent":["import { Bubble } from './bubble';\nimport { isValid, debounce, throttle, get, isFunction } from '@visactor/vutils';\nimport { BASE_EVENTS, ChartEvent, Event_Bubble_Level, Event_Source_Type, VGRAMMAR_HOOK_EVENT } from '../constant/event';\nimport type {\n EventType,\n EventQuery,\n EventHandler,\n EventParamsDefinition,\n IEventDispatcher,\n EventBubbleLevel,\n BaseEventParams,\n EventParams,\n EventFilter,\n EventSourceType\n} from './interface';\nimport type { VChart } from '../core/vchart';\nimport type { CompilerListenerParameters } from '../compile/interface';\nimport type { Compiler } from '../compile/compiler';\nimport type { StringOrNumber } from '../typings';\n\nconst componentTypeMap = {\n cartesianAxis: 'axis',\n 'cartesianAxis-band': 'axis',\n 'cartesianAxis-linear': 'axis',\n 'cartesianAxis-time': 'axis',\n polarAxis: 'axis',\n 'polarAxis-band': 'axis',\n 'polarAxis-linear': 'axis',\n discreteLegend: 'legend',\n continuousLegend: 'legend',\n colorLegend: 'legend',\n sizeLegend: 'legend',\n label: 'label'\n};\n\nexport class EventDispatcher implements IEventDispatcher {\n globalInstance: VChart;\n\n // view 事件与 window 事件视作为不同类型的事件信息,进行独立的冒泡处理\n private _viewBubbles: Map<EventType, Bubble> = new Map<EventType, Bubble>();\n private _windowBubbles: Map<EventType, Bubble> = new Map<EventType, Bubble>();\n private _canvasBubbles: Map<EventType, Bubble> = new Map<EventType, Bubble>();\n\n private _viewListeners: Map<string, (params: CompilerListenerParameters) => void> = new Map<\n string,\n (params: CompilerListenerParameters) => void\n >();\n private _windowListeners: Map<string, (params: CompilerListenerParameters) => void> = new Map<\n string,\n (params: CompilerListenerParameters) => void\n >();\n private _canvasListeners: Map<string, (params: CompilerListenerParameters) => void> = new Map<\n string,\n (params: CompilerListenerParameters) => void\n >();\n\n private _compiler: Compiler;\n\n constructor(vchart: VChart, compiler: Compiler) {\n this.globalInstance = vchart;\n this._compiler = compiler;\n }\n\n register<Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>): this {\n // 解析 query 配置并生成最终 handler 内容\n this._parseQuery(handler);\n // view/window 事件做独立的处理\n const bubbles = this.getEventBubble(handler.filter?.source || Event_Source_Type.chart);\n const listeners = this.getEventListeners(handler.filter?.source || Event_Source_Type.chart);\n\n if (!bubbles.get(eType)) {\n bubbles.set(eType, new Bubble());\n }\n\n // 挂载事件监听\n const bubble = bubbles.get(eType) as Bubble;\n bubble.addHandler(handler, handler.filter?.level as EventBubbleLevel);\n if (this._isValidEvent(eType) && !listeners.has(eType)) {\n const callback = this._onDelegate.bind(this);\n this._compiler.addEventListener(handler.filter?.source as EventSourceType, eType, callback);\n listeners.set(eType, callback);\n }\n return this;\n }\n\n unregister<Evt extends EventType>(eType: Evt, handler?: EventHandler<EventParamsDefinition[Evt]>): this {\n let clean: boolean = false;\n // view/window 事件做独立的处理\n const bubbles = this.getEventBubble(handler?.filter?.source || Event_Source_Type.chart);\n const listeners = this.getEventListeners(handler?.filter?.source || Event_Source_Type.chart);\n\n if (!handler) {\n const bubble = bubbles.get(eType);\n bubble?.release();\n bubbles.delete(eType);\n clean = true;\n } else {\n const bubble = bubbles.get(eType);\n bubble?.removeHandler(handler);\n if (bubble?.getCount() === 0) {\n bubble?.release();\n bubbles.delete(eType);\n clean = true;\n }\n\n if ((handler?.wrappedCallback as any)?.cancel) {\n // 取消debounce/throttle事件,释放闭包内部的上下文对象\n (handler.wrappedCallback as any).cancel();\n }\n }\n // 某个事件下所有的监听取消之后删除语法层事件的代理\n if (clean && this._isValidEvent(eType)) {\n const callback = listeners.get(eType) as (params: CompilerListenerParameters) => void;\n this._compiler.removeEventListener(handler?.filter?.source || Event_Source_Type.chart, eType, callback);\n listeners.delete(eType);\n }\n return this;\n }\n\n dispatch<Evt extends EventType>(eType: Evt, params: EventParamsDefinition[Evt], level?: EventBubbleLevel): this {\n // 默认事件类别为 view\n const bubble = this.getEventBubble((params as BaseEventParams).source || Event_Source_Type.chart).get(\n eType\n ) as Bubble;\n // 没有任何监听事件时,bubble 不存在\n if (!bubble) {\n return this;\n }\n\n // 事件冒泡逻辑:Mark -> Model -> Chart -> VChart\n let stopBubble: boolean = false;\n\n if (level) {\n // 如果指定了 level,则直接处理,不进行冒泡\n const handlers = bubble.getHandlers(level);\n stopBubble = this._invoke(handlers, eType, params);\n } else {\n // Mark 级别的事件只包含对语法层代理的基础事件\n const handlers = bubble.getHandlers(Event_Bubble_Level.mark);\n stopBubble = this._invoke(handlers, eType, params);\n\n if (!stopBubble) {\n const handlers = bubble.getHandlers(Event_Bubble_Level.model);\n stopBubble = this._invoke(handlers, eType, params);\n }\n if (!stopBubble) {\n const handlers = bubble.getHandlers(Event_Bubble_Level.chart);\n stopBubble = this._invoke(handlers, eType, params);\n }\n if (!stopBubble) {\n const handlers = bubble.getHandlers(Event_Bubble_Level.vchart);\n stopBubble = this._invoke(handlers, eType, params);\n }\n }\n\n return this;\n }\n\n release(): void {\n for (const entry of this._viewListeners.entries()) {\n this._compiler.removeEventListener(Event_Source_Type.chart, entry[0], entry[1]);\n }\n this._viewListeners.clear();\n for (const entry of this._windowListeners.entries()) {\n this._compiler.removeEventListener(Event_Source_Type.window, entry[0], entry[1]);\n }\n this._windowListeners.clear();\n for (const entry of this._canvasListeners.entries()) {\n this._compiler.removeEventListener(Event_Source_Type.canvas, entry[0], entry[1]);\n }\n this._canvasListeners.clear();\n for (const bubble of this._viewBubbles.values()) {\n bubble.release();\n }\n this._viewBubbles.clear();\n for (const bubble of this._windowBubbles.values()) {\n bubble.release();\n }\n this._windowBubbles.clear();\n for (const bubble of this._canvasBubbles.values()) {\n bubble.release();\n }\n this._canvasBubbles.clear();\n }\n\n /**\n * 基于转换后的事件筛选配置过滤需要调用的 handler\n */\n private _filter<Evt extends EventType>(filter: EventFilter, evt: Evt, params: EventParamsDefinition[Evt]): boolean {\n if (isFunction(filter.filter) && !filter.filter(params)) {\n return false;\n }\n\n // 事件 level 不需要筛选,在冒泡流程中已经处理了 level 的逻辑\n if (filter.nodeName && get(params, 'node.name') !== filter.nodeName) {\n return false;\n }\n\n if (filter.markName && (params as BaseEventParams)?.mark?.name !== filter.markName) {\n // 对于 markName 的筛选需要包含所有父级 mark 的 name\n return false;\n }\n\n let modelType = params.model?.type;\n if (componentTypeMap[modelType]) {\n modelType = componentTypeMap[modelType];\n }\n if (filter.type && modelType !== filter.type) {\n return false;\n }\n\n // 如果配置了 level 为 'mark' 并且没有配置 type,则只在事件参数中包含了 mark 时才触发\n if (filter.level === 'mark' && !filter.type && !(params as BaseEventParams)?.mark) {\n return false;\n }\n\n // 如果配置了 level 为 'model' 并且没有配置 type,则只在事件参数中包含了 model 时才触发\n if (filter.level === 'model' && !filter.type && !(params as BaseEventParams)?.model) {\n return false;\n }\n\n if (isValid(filter.userId) && params.model?.userId !== filter.userId) {\n return false;\n }\n\n return true;\n }\n\n private _prepareParams<Evt extends EventType>(\n filter: EventFilter,\n params: EventParamsDefinition[Evt]\n ): EventParamsDefinition[Evt] {\n // 如果针对于 mark 做了筛选,则事件参数转为筛选器制定的父级 mark\n if (filter.markName && params.mark && (params as BaseEventParams).itemMap) {\n const markId = params.mark.getProductId();\n const item = (params as BaseEventParams).itemMap.get(markId);\n const datum = item?.getDatum();\n return { ...params, item, datum };\n }\n return { ...params };\n }\n\n /**\n * 代理语法层事件的监听回调\n */\n private _onDelegate(listenerParams: CompilerListenerParameters) {\n const chart = this.globalInstance.getChart();\n const model = (isValid(listenerParams.modelId) && chart?.getModelById(listenerParams.modelId)) || undefined;\n const mark = (isValid(listenerParams.markId) && chart?.getMarkById(listenerParams.markId)) || null;\n\n // FIXME: 这里操作的应当是场景树结构,与 vgrammar 结构无关\n // 遍历取到所有父级的 mark 以支持子元素响应父元素事件\n const itemMap = new Map<string, any>();\n let targetMark: any = listenerParams.item?.mark;\n if (targetMark && isValid(targetMark.id())) {\n itemMap.set(targetMark.id(), listenerParams.item);\n }\n while (targetMark?.elements) {\n const id = targetMark.id();\n // 由于父级的 markName 可能重复,因此只取最近的父级 mark\n if (isValid(id) && !itemMap.has(id)) {\n itemMap.set(id, targetMark.elements[0]);\n }\n targetMark = targetMark.group;\n }\n\n const params: BaseEventParams = {\n event: listenerParams.event,\n item: listenerParams.item,\n datum: listenerParams.datum,\n source: listenerParams.source,\n itemMap,\n chart,\n model,\n mark: mark ?? undefined,\n node: get(listenerParams.event, 'target')\n };\n this.dispatch(listenerParams.type, params);\n }\n\n /**\n * 调用相应事件监听下的 handlers\n */\n private _invoke<Evt extends EventType>(\n handlers: EventHandler<EventParams>[],\n type: EventType,\n params: EventParamsDefinition[Evt]\n ): boolean {\n const result = handlers.map(handler => {\n const filter = handler.filter as EventFilter;\n if (!handler.query || this._filter(filter, type, params)) {\n const callback = handler.wrappedCallback || handler.callback;\n const stopBubble = callback.call(null, this._prepareParams(filter, params));\n const doStopBubble = stopBubble ?? handler.query?.consume;\n if (doStopBubble) {\n (params as BaseEventParams).event?.stopPropagation();\n (params as BaseEventParams).event?.preventDefault();\n }\n return !!doStopBubble;\n }\n return undefined;\n });\n // 如果某个事件回调阻止了冒泡,则阻止更高级别事件的调用过程\n return result.some(r => r === true);\n }\n\n /**\n * 依据事件 query 得到事件冒泡层级\n */\n private _getQueryLevel(query: EventQuery | null): EventBubbleLevel {\n // 事件默认监听在 vchart 层\n if (!query) {\n return Event_Bubble_Level.vchart;\n }\n if (query.level) {\n return query.level;\n }\n if (isValid(query.id)) {\n return Event_Bubble_Level.model;\n }\n\n return Event_Bubble_Level.vchart;\n }\n\n /**\n * 将用户 query 配置转换为最终事件筛选参数\n */\n private _parseQuery(handler: EventHandler<EventParams>): EventHandler<EventParams> {\n const query = handler.query;\n // 处理 query 带来的函数封装\n if (query?.throttle) {\n handler.wrappedCallback = throttle(handler.callback, query.throttle);\n } else if (query?.debounce) {\n handler.wrappedCallback = debounce(handler.callback, query.debounce);\n }\n let level = this._getQueryLevel(query);\n let type: string | null = null;\n let source: EventSourceType = Event_Source_Type.chart;\n let nodeName: string | null = null;\n let markName: string | null = null;\n let userId: StringOrNumber | null = null;\n\n if (query?.nodeName) {\n nodeName = query.nodeName;\n }\n\n if (query?.markName) {\n markName = query.markName;\n }\n\n if (query?.type && (level === Event_Bubble_Level.model || level === Event_Bubble_Level.mark)) {\n type = query.type;\n }\n if (query?.source) {\n source = query.source;\n }\n\n if (isValid(query?.id)) {\n userId = query?.id;\n level = Event_Bubble_Level.model; // 如果用户配置了 id,那么默认 level 为 model\n }\n handler.filter = {\n level,\n markName,\n type,\n source,\n nodeName,\n userId,\n filter: query?.filter ?? null\n };\n return handler;\n }\n\n private getEventBubble(source: EventSourceType) {\n switch (source) {\n case Event_Source_Type.chart:\n return this._viewBubbles;\n case Event_Source_Type.window:\n return this._windowBubbles;\n case Event_Source_Type.canvas:\n return this._canvasBubbles;\n default:\n return this._viewBubbles;\n }\n }\n\n private getEventListeners(source: EventSourceType) {\n switch (source) {\n case Event_Source_Type.chart:\n return this._viewListeners;\n case Event_Source_Type.window:\n return this._windowListeners;\n case Event_Source_Type.canvas:\n return this._canvasListeners;\n default:\n return this._viewListeners;\n }\n }\n\n private _isValidEvent(eType: string) {\n return (\n BASE_EVENTS.includes(eType) ||\n (Object.values(VGRAMMAR_HOOK_EVENT) as string[]).includes(eType) ||\n (Object.values(ChartEvent) as string[]).includes(eType)\n );\n }\n}\n"]}
|
|
@@ -80,22 +80,24 @@ class Zoomable {
|
|
|
80
80
|
}));
|
|
81
81
|
}
|
|
82
82
|
_scrollEventDispatch(params, regionOrSeries, callback) {
|
|
83
|
-
|
|
83
|
+
let stopBubble = !1;
|
|
84
|
+
if (!this._isGestureListener && (!params.event || this._option.disableTriggerEvent)) return stopBubble;
|
|
84
85
|
const event = this._isGestureListener ? params : params.event;
|
|
85
86
|
this._zoomableTrigger.parserScrollEvent(event);
|
|
86
87
|
const {scrollX: scrollX, scrollY: scrollY, canvasX: canvasX, canvasY: canvasY} = event;
|
|
87
|
-
(0, vutils_1.isNil)(scrollX) && (0, vutils_1.isNil)(scrollY)
|
|
88
|
+
return (0, vutils_1.isNil)(scrollX) && (0, vutils_1.isNil)(scrollY) ? stopBubble : (0,
|
|
89
|
+
vutils_1.pointInRect)({
|
|
88
90
|
x: canvasX,
|
|
89
91
|
y: canvasY
|
|
90
|
-
}, this._getRegionOrSeriesLayout(regionOrSeries), !1)
|
|
91
|
-
callback && callback({
|
|
92
|
+
}, this._getRegionOrSeriesLayout(regionOrSeries), !1) ? (this._clickEnable = !1,
|
|
93
|
+
callback && (stopBubble = callback({
|
|
92
94
|
scrollX: scrollX,
|
|
93
95
|
scrollY: scrollY
|
|
94
|
-
}, event), this._eventObj.emit("scroll", {
|
|
96
|
+
}, event)), this._eventObj.emit("scroll", {
|
|
95
97
|
scrollX: scrollX,
|
|
96
98
|
scrollY: scrollY,
|
|
97
99
|
model: this
|
|
98
|
-
}));
|
|
100
|
+
}), stopBubble) : stopBubble;
|
|
99
101
|
}
|
|
100
102
|
_bindScrollEventAsRegion(eventObj, regionOrSeries, callback, option) {
|
|
101
103
|
var _a, _b;
|
|
@@ -108,9 +110,7 @@ class Zoomable {
|
|
|
108
110
|
} ];
|
|
109
111
|
event.on(...scrollEndParams, delayMap[delayType]((params => {
|
|
110
112
|
this._zoomableTrigger.clearScroll();
|
|
111
|
-
}), delayTime)), event.on(...scrollParams, delayMap[delayType]((params =>
|
|
112
|
-
this._scrollEventDispatch(params, regionOrSeries, callback);
|
|
113
|
-
}), delayTime));
|
|
113
|
+
}), delayTime)), event.on(...scrollParams, delayMap[delayType]((params => this._scrollEventDispatch(params, regionOrSeries, callback)), delayTime));
|
|
114
114
|
}
|
|
115
115
|
initScrollEventOfSeries(s, callback, option) {
|
|
116
116
|
(0, config_1.getDefaultTriggerEventByMode)(this._renderMode) && this._bindScrollEventAsRegion(s.event, s, callback, option);
|