@visactor/vchart 1.1.1 → 1.2.0-beta.1

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.
Files changed (163) hide show
  1. package/build/index.js +183 -61
  2. package/build/index.min.js +1 -1
  3. package/cjs/chart/base-chart.d.ts +1 -0
  4. package/cjs/chart/base-chart.js +17 -12
  5. package/cjs/chart/base-chart.js.map +1 -1
  6. package/cjs/chart/interface/chart.d.ts +1 -0
  7. package/cjs/chart/interface/chart.js.map +1 -1
  8. package/cjs/chart/sequence/sequence.js +5 -3
  9. package/cjs/chart/sequence/sequence.js.map +1 -1
  10. package/cjs/compile/compiler.js +9 -5
  11. package/cjs/compile/compiler.js.map +1 -1
  12. package/cjs/compile/interface/compiler.d.ts +1 -0
  13. package/cjs/compile/interface/compiler.js.map +1 -1
  14. package/cjs/component/axis/cartesian/axis.js +1 -1
  15. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  16. package/cjs/component/axis/interface.d.ts +25 -27
  17. package/cjs/component/axis/interface.js.map +1 -1
  18. package/cjs/component/axis/polar/axis.js +2 -2
  19. package/cjs/component/axis/polar/axis.js.map +1 -1
  20. package/cjs/component/geo/geo-coordinate.js +1 -1
  21. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  22. package/cjs/component/geo/projection.js +1 -2
  23. package/cjs/component/geo/projection.js.map +1 -1
  24. package/cjs/component/label/label.d.ts +7 -0
  25. package/cjs/component/label/label.js +4 -0
  26. package/cjs/component/label/label.js.map +1 -1
  27. package/cjs/component/marker/base-marker.js +1 -1
  28. package/cjs/component/marker/base-marker.js.map +1 -1
  29. package/cjs/component/marker/interface.d.ts +2 -2
  30. package/cjs/component/marker/interface.js.map +1 -1
  31. package/cjs/constant/event.d.ts +2 -0
  32. package/cjs/constant/event.js +2 -1
  33. package/cjs/constant/event.js.map +1 -1
  34. package/cjs/core/index.d.ts +1 -1
  35. package/cjs/core/index.js +1 -1
  36. package/cjs/core/index.js.map +1 -1
  37. package/cjs/core/vchart.d.ts +6 -0
  38. package/cjs/core/vchart.js +66 -23
  39. package/cjs/core/vchart.js.map +1 -1
  40. package/cjs/data/initialize.d.ts +2 -1
  41. package/cjs/data/initialize.js +8 -5
  42. package/cjs/data/initialize.js.map +1 -1
  43. package/cjs/event/events/dimension/base.js +5 -3
  44. package/cjs/event/events/dimension/base.js.map +1 -1
  45. package/cjs/layout/base-layout.d.ts +3 -0
  46. package/cjs/layout/base-layout.js +8 -4
  47. package/cjs/layout/base-layout.js.map +1 -1
  48. package/cjs/layout/grid-layout/grid-layout.d.ts +3 -1
  49. package/cjs/layout/grid-layout/grid-layout.js +3 -2
  50. package/cjs/layout/grid-layout/grid-layout.js.map +1 -1
  51. package/cjs/layout/interface.d.ts +2 -1
  52. package/cjs/layout/interface.js.map +1 -1
  53. package/cjs/model/interface.d.ts +1 -0
  54. package/cjs/model/interface.js.map +1 -1
  55. package/cjs/series/base/base-series.js +2 -4
  56. package/cjs/series/base/base-series.js.map +1 -1
  57. package/cjs/series/geo/geo.js +3 -3
  58. package/cjs/series/geo/geo.js.map +1 -1
  59. package/cjs/series/map/map.js +6 -6
  60. package/cjs/series/map/map.js.map +1 -1
  61. package/cjs/series/scatter/scatter.js +7 -4
  62. package/cjs/series/scatter/scatter.js.map +1 -1
  63. package/cjs/series/sunburst/sunburst.d.ts +1 -1
  64. package/cjs/typings/params.d.ts +5 -0
  65. package/cjs/typings/params.js.map +1 -1
  66. package/cjs/typings/spec/common.d.ts +1 -0
  67. package/cjs/typings/spec/common.js.map +1 -1
  68. package/cjs/typings/visual.js.map +1 -1
  69. package/cjs/util/debug.d.ts +2 -2
  70. package/cjs/util/debug.js +4 -3
  71. package/cjs/util/debug.js.map +1 -1
  72. package/cjs/util/image.d.ts +2 -1
  73. package/cjs/util/image.js +10 -6
  74. package/cjs/util/image.js.map +1 -1
  75. package/cjs/util/math.js +5 -3
  76. package/cjs/util/math.js.map +1 -1
  77. package/esm/chart/base-chart.d.ts +1 -0
  78. package/esm/chart/base-chart.js +17 -12
  79. package/esm/chart/base-chart.js.map +1 -1
  80. package/esm/chart/interface/chart.d.ts +1 -0
  81. package/esm/chart/interface/chart.js.map +1 -1
  82. package/esm/chart/sequence/sequence.js +5 -3
  83. package/esm/chart/sequence/sequence.js.map +1 -1
  84. package/esm/compile/compiler.js +10 -6
  85. package/esm/compile/compiler.js.map +1 -1
  86. package/esm/compile/interface/compiler.d.ts +1 -0
  87. package/esm/compile/interface/compiler.js.map +1 -1
  88. package/esm/component/axis/cartesian/axis.js +1 -1
  89. package/esm/component/axis/cartesian/axis.js.map +1 -1
  90. package/esm/component/axis/interface.d.ts +25 -27
  91. package/esm/component/axis/interface.js.map +1 -1
  92. package/esm/component/axis/polar/axis.js +2 -2
  93. package/esm/component/axis/polar/axis.js.map +1 -1
  94. package/esm/component/geo/geo-coordinate.js +1 -1
  95. package/esm/component/geo/geo-coordinate.js.map +1 -1
  96. package/esm/component/geo/projection.js +1 -1
  97. package/esm/component/geo/projection.js.map +1 -1
  98. package/esm/component/label/label.d.ts +7 -0
  99. package/esm/component/label/label.js +4 -0
  100. package/esm/component/label/label.js.map +1 -1
  101. package/esm/component/marker/base-marker.js +1 -1
  102. package/esm/component/marker/base-marker.js.map +1 -1
  103. package/esm/component/marker/interface.d.ts +2 -2
  104. package/esm/component/marker/interface.js.map +1 -1
  105. package/esm/constant/event.d.ts +2 -0
  106. package/esm/constant/event.js +2 -1
  107. package/esm/constant/event.js.map +1 -1
  108. package/esm/core/index.d.ts +1 -1
  109. package/esm/core/index.js +1 -1
  110. package/esm/core/index.js.map +1 -1
  111. package/esm/core/vchart.d.ts +6 -0
  112. package/esm/core/vchart.js +68 -23
  113. package/esm/core/vchart.js.map +1 -1
  114. package/esm/data/initialize.d.ts +2 -1
  115. package/esm/data/initialize.js +9 -4
  116. package/esm/data/initialize.js.map +1 -1
  117. package/esm/event/events/dimension/base.js +6 -2
  118. package/esm/event/events/dimension/base.js.map +1 -1
  119. package/esm/layout/base-layout.d.ts +3 -0
  120. package/esm/layout/base-layout.js +8 -4
  121. package/esm/layout/base-layout.js.map +1 -1
  122. package/esm/layout/grid-layout/grid-layout.d.ts +3 -1
  123. package/esm/layout/grid-layout/grid-layout.js +3 -2
  124. package/esm/layout/grid-layout/grid-layout.js.map +1 -1
  125. package/esm/layout/interface.d.ts +2 -1
  126. package/esm/layout/interface.js.map +1 -1
  127. package/esm/model/interface.d.ts +1 -0
  128. package/esm/model/interface.js.map +1 -1
  129. package/esm/series/base/base-series.js +1 -4
  130. package/esm/series/base/base-series.js.map +1 -1
  131. package/esm/series/geo/geo.js +3 -3
  132. package/esm/series/geo/geo.js.map +1 -1
  133. package/esm/series/map/map.js +6 -6
  134. package/esm/series/map/map.js.map +1 -1
  135. package/esm/series/scatter/scatter.js +5 -4
  136. package/esm/series/scatter/scatter.js.map +1 -1
  137. package/esm/series/sunburst/sunburst.d.ts +1 -1
  138. package/esm/typings/params.d.ts +5 -0
  139. package/esm/typings/params.js.map +1 -1
  140. package/esm/typings/spec/common.d.ts +1 -0
  141. package/esm/typings/spec/common.js.map +1 -1
  142. package/esm/typings/visual.js.map +1 -1
  143. package/esm/util/debug.d.ts +2 -2
  144. package/esm/util/debug.js +4 -3
  145. package/esm/util/debug.js.map +1 -1
  146. package/esm/util/image.d.ts +2 -1
  147. package/esm/util/image.js +6 -3
  148. package/esm/util/image.js.map +1 -1
  149. package/esm/util/math.js +4 -2
  150. package/esm/util/math.js.map +1 -1
  151. package/package.json +9 -19
  152. package/chart.d.ts +0 -1
  153. package/chart.js +0 -1
  154. package/component.d.ts +0 -1
  155. package/component.js +0 -1
  156. package/core.d.ts +0 -1
  157. package/core.js +0 -1
  158. package/layout.d.ts +0 -1
  159. package/layout.js +0 -1
  160. package/mark.d.ts +0 -1
  161. package/mark.js +0 -1
  162. package/series.d.ts +0 -1
  163. package/series.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/axis/polar/axis.ts"],"names":[],"mappings":"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","file":"axis.js","sourcesContent":["import { POLAR_DEFAULT_RADIUS, POLAR_END_ANGLE, POLAR_END_RADIAN } from '../../../constant/polar';\nimport { DataView } from '@visactor/vdataset';\nimport type { IBaseScale, BandScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport { ChartEvent, LayoutZIndex, POLAR_START_ANGLE, POLAR_START_RADIAN } from '../../../constant';\nimport type { LayoutItem } from '../../../model/layout-item';\nimport type { IPolarAxis, IPolarAxisCommonTheme } from './interface';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface';\nimport { Factory } from '../../../core/factory';\nimport { isArray, isValidNumber, merge, polarToCartesian, radians, eachSeries, getFieldAlias } from '../../../util';\nimport { scaleParser } from '../../../data/parser/scale';\nimport type { IPolarTickDataOpt } from '../../../data/transforms/tick-data';\n// eslint-disable-next-line no-duplicate-imports\nimport { ticks } from '../../../data/transforms/tick-data';\nimport type { IPolarSeries } from '../../../series/interface';\nimport type { IPoint, IPolarOrientType, IPolarPoint, Datum, StringOrNumber } from '../../../typings';\nimport { registerDataSetInstanceParser, registerDataSetInstanceTransform } from '../../../data/register';\nimport { isPolarAxisSeries } from '../../../series/util/utils';\nimport { isValidPolarAxis } from '../utils';\n\nimport type { Dict } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { PointService, isValid } from '@visactor/vutils';\nimport type { IEffect } from '../../../model/interface';\nimport { CompilableData } from '../../../compile/data';\nimport { AxisComponent } from '../base-axis';\nimport type { ITick } from '../interface';\n\nexport abstract class PolarAxis extends AxisComponent implements IPolarAxis {\n static type = ComponentTypeEnum.polarAxis;\n type = ComponentTypeEnum.polarAxis;\n name: string = ComponentTypeEnum.polarAxis;\n\n layoutType: LayoutItem['layoutType'] = 'absolute';\n layoutZIndex: number = LayoutZIndex.Axis;\n protected _tick: ITick | undefined = undefined;\n\n protected _center: IPoint | null = null;\n get center() {\n return this._center;\n }\n\n protected _startAngle: number = POLAR_START_RADIAN;\n get startAngle() {\n return this._startAngle;\n }\n\n protected _endAngle: number = POLAR_END_RADIAN;\n get endAngle() {\n return this._endAngle;\n }\n\n protected declare _theme: IPolarAxisCommonTheme;\n\n protected _orient: IPolarOrientType = 'radius';\n get orient() {\n return this._orient;\n }\n\n protected _groupScales: IBaseScale[] = [];\n getGroupScales() {\n return this._groupScales;\n }\n\n protected _refAngleAxis!: IPolarAxis;\n setRefAngleAxis(axes: IPolarAxis): this {\n this._refAngleAxis = axes;\n return this;\n }\n\n private _axisStyle: any;\n\n static createAxis(spec: any, options: IComponentOption): IPolarAxis {\n // TODO: 基于数据处理 axis 类型\n const axisType = spec.type ?? (spec.orient === 'angle' ? 'band' : 'linear');\n const componentName = `${PolarAxis.type}-${axisType}`;\n const C = Factory.getComponentInKey(componentName);\n if (C) {\n return new C(spec, options) as IPolarAxis;\n }\n throw `Component ${componentName} not found`;\n }\n\n static createComponent(spec: any, options: IComponentOption) {\n if (!this.type.startsWith(PolarAxis.type)) {\n return null;\n }\n const axesSpec = spec.axes || options.defaultSpec;\n if (!axesSpec) {\n return null;\n }\n if (!isArray(axesSpec)) {\n if (!isValidPolarAxis(axesSpec)) {\n return null;\n }\n axesSpec.center = spec.center;\n axesSpec.startAngle = spec.startAngle ?? POLAR_START_ANGLE;\n axesSpec.endAngle = spec.endAngle ?? (isValid(spec.startAngle) ? spec.startAngle + 360 : POLAR_END_ANGLE);\n return PolarAxis.createAxis(axesSpec, {\n ...options,\n specKey: 'axes'\n });\n }\n const axes: IPolarAxis[] = [];\n let angleAxes: IPolarAxis;\n const radiusAxes: IPolarAxis[] = [];\n axesSpec.forEach((s: any, i: number) => {\n if (!isValidPolarAxis(s)) {\n return;\n }\n s.center = spec.center;\n s.startAngle = spec.startAngle ?? POLAR_START_ANGLE;\n s.endAngle = spec.endAngle ?? (isValid(spec.startAngle) ? spec.startAngle + 360 : POLAR_END_ANGLE);\n // 优先使用outerRadius, 但要兼容s.radius, spec.radius\n s.outerRadius = s.radius ?? spec.outerRadius ?? spec.radius ?? POLAR_DEFAULT_RADIUS;\n const polarAxes = PolarAxis.createAxis(s, {\n ...options,\n specIndex: i,\n specKey: 'axes'\n }) as IPolarAxis;\n axes.push(polarAxes);\n if (s.orient === 'radius') {\n radiusAxes.push(polarAxes);\n } else {\n angleAxes = polarAxes;\n }\n });\n radiusAxes.forEach(axes => axes.setRefAngleAxis(angleAxes));\n return axes;\n }\n\n effect: IEffect = {\n scaleUpdate: () => {\n this.computeData();\n eachSeries(\n this._regions,\n s => {\n if (this.orient === 'radius') {\n (s as IPolarSeries).radiusAxisHelper = this.axisHelper();\n } else {\n (s as IPolarSeries).angleAxisHelper = this.axisHelper();\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n };\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n const axisStyle = this._getAxisAttributes();\n this._axisStyle = axisStyle;\n\n this._tick = this._spec.tick;\n this._orient = this._spec.orient === 'angle' ? 'angle' : 'radius';\n this._center = this._spec.center;\n this._startAngle = radians(this._spec.startAngle ?? POLAR_START_ANGLE);\n this._endAngle = radians(\n this._spec.endAngle ?? (isValid(this._spec.startAngle) ? this._spec.startAngle + 360 : POLAR_END_ANGLE)\n );\n }\n\n setLayoutStartPosition(pos: Partial<IPoint>): void {\n const region = this.getRegions()?.[0];\n const startPoint = region ? region.getLayoutStartPoint() : pos;\n super.setLayoutStartPosition(startPoint);\n }\n\n onLayoutEnd(ctx: any): void {\n this.updateScaleRange();\n this.updateSeriesScale();\n this.event.emit(ChartEvent.scaleUpdate, { model: this });\n\n super.onLayoutEnd(ctx);\n }\n\n onRender(ctx: any): void {\n // do nothing\n }\n\n changeRegions(/** regions: IRegion[] */): void {\n // do nothing\n }\n\n // data\n protected _initData() {\n registerDataSetInstanceParser(this._option.dataSet, 'scale', scaleParser);\n registerDataSetInstanceTransform(this._option.dataSet, 'ticks', ticks);\n\n const label = this._spec.label || {};\n const tick = this._spec.tick || {};\n const tickData = new DataView(this._option.dataSet)\n .parse(this._scale, {\n type: 'scale'\n })\n .transform(\n {\n type: 'ticks',\n options: {\n sampling: this._spec.sampling !== false, // default do sampling\n tickCount: tick.tickCount,\n forceTickCount: tick.forceTickCount,\n tickStep: tick.tickStep,\n\n coordinateType: 'polar',\n axisOrientType: this._orient,\n startAngle: this.startAngle,\n\n labelStyle: label.style,\n labelFormatter: label.formatMethod,\n labelGap: label.minGap,\n\n axisSpec: this._spec,\n getRadius: () => this.getOuterRadius()\n } as IPolarTickDataOpt\n },\n false\n );\n tickData.target.addListener('change', this._forceLayout.bind(this));\n\n this._tickData = new CompilableData(this._option, tickData);\n }\n\n protected initEvent() {\n super.initEvent();\n\n if (this.visible) {\n this.event.on('afterElementEncode', eventParams => {\n const mark = eventParams.item;\n if (this._option.getChart().getLayoutTag() === false && mark.context?.model === this) {\n // 代理组件上的事件,目前坐标轴组件比较特殊,包含了网格线,但是事件这块只提供不包含网格线部分的响应\n this._delegateAxisContainerEvent(mark.getGroupGraphicItem());\n }\n });\n }\n }\n\n protected updateScaleRange() {\n const inverse = this._spec.inverse;\n if (this.orient === 'radius') {\n this._scale.range(\n inverse\n ? [this.computeLayoutOuterRadius(), this.computeLayoutInnerRadius()]\n : [this.computeLayoutInnerRadius(), this.computeLayoutOuterRadius()]\n );\n } else {\n this._scale.range(inverse ? [this._endAngle, this._startAngle] : [this._startAngle, this._endAngle]);\n }\n }\n\n protected collectData(depth: number) {\n const data: { min: number; max: number; values: any[] }[] = [];\n eachSeries(\n this._regions,\n s => {\n let field: string | string[];\n if (depth > 0) {\n field = s.getGroups()?.fields?.[depth];\n } else {\n field = this.orient === 'radius' ? (s as IPolarSeries).getRadiusField() : (s as IPolarSeries).getAngleField();\n }\n field = (isArray(field) ? (isContinuous(this._scale.type) ? field : [field[0]]) : [field]) as string[];\n if (!depth) {\n this._dataFieldText = s.getFieldAlias(field[0]);\n }\n const seriesData = s.getViewDataStatistics?.();\n if (field) {\n field.forEach(f => {\n if (seriesData?.latestData?.[f]) {\n data.push(seriesData.latestData[f]);\n }\n });\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return data;\n }\n\n protected abstract computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[];\n\n protected updateSeriesScale(): void {\n eachSeries(\n this._regions,\n s => {\n if (this.orient === 'radius') {\n (s as IPolarSeries).setRadiusScale(this._scale);\n (s as IPolarSeries).radiusAxisHelper = this.axisHelper();\n } else {\n (s as IPolarSeries).setAngleScale(this._scale);\n (s as IPolarSeries).angleAxisHelper = this.axisHelper();\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n protected getSeriesStatisticsField(s: IPolarSeries) {\n const f = this.orient === 'radius' ? s.getRadiusField() : s.getAngleField();\n if (isContinuous(this._scale.type)) {\n return f;\n }\n return [f[0]];\n }\n\n protected initGroupScales() {\n // do nothing\n }\n\n // axisHelper\n protected axisHelper() {\n const getScale = (depth: number) => {\n return this._scales[depth];\n };\n\n const helper = {\n dataToPosition: this.dataToPosition.bind(this),\n coordToPoint: this.coordToPoint.bind(this),\n pointToCoord: this.pointToCoord.bind(this),\n center: this.getCenter.bind(this),\n getScale,\n getAxisId: () => this.id\n };\n return helper;\n }\n\n dataToPosition(values: any[]): number {\n return this._scale.scale(values);\n }\n\n positionToData(position: IPoint) {\n const coord = this.pointToCoord(position);\n if (this.orient === 'radius') {\n return this._scale.invert(coord.radius);\n }\n\n if (this._scale.type === 'band') {\n //极坐标轴需要手动取模,超出range时默认会截断\n const range = this._scale.range();\n const rangeValue = range[range.length - 1] - range[0];\n if (range[0] < 0) {\n const angle = coord.angle + (this._scale as BandScale).bandwidth() / 2;\n const transformedAngle = ((angle + Math.abs(range[0])) % rangeValue) - Math.abs(range[0]);\n return this._scale.invert(transformedAngle);\n }\n\n return this._scale.invert((coord.angle + (this._scale as BandScale).bandwidth() / 2) % rangeValue);\n }\n\n return this._scale.invert(coord.angle);\n }\n\n /**\n * 将半径和角度转换为笛卡尔坐标点\n * @param point 角度 & 弧度信息\n * @returns 笛卡尔坐标点 { x, y }\n */\n coordToPoint(point: IPolarPoint): IPoint {\n // center & startAngle 都是坐标系转换的配置,在 scale 中不生效,仅在最终转换时生效\n const angle = point.angle;\n const { x: centerX, y: centerY } = this.getCenter();\n const p = polarToCartesian({ angle, radius: point.radius });\n return {\n x: p.x + centerX,\n y: p.y + centerY\n };\n }\n\n /**\n * 将笛卡尔坐标转换为对应的半径和弧度\n * @param point 笛卡尔坐标点 { x, y }\n * @returns 角度 & 弧度信息 { radius, angle }\n */\n pointToCoord(point: IPoint): IPolarPoint {\n const { x: centerX, y: centerY } = this.getCenter();\n let dx = point.x - centerX;\n let dy = point.y - centerY;\n const startAngle = this._startAngle;\n const endAngle = this._endAngle;\n const radius = Math.sqrt(dx * dx + dy * dy);\n dx /= radius;\n dy /= radius;\n\n let radian = Math.atan2(dy, dx);\n const dir = radian < startAngle ? 1 : -1;\n while (radian < startAngle || radian > endAngle) {\n radian += dir * Math.PI * 2;\n }\n\n return {\n radius,\n angle: radian\n };\n }\n\n /**\n * 获取坐标轴圆心位置\n * @returns 圆心位置\n */\n getCenter(): IPoint {\n return {\n x: this._center?.x || this.getRefLayoutRect().width / 2,\n y: this._center?.y || this.getRefLayoutRect().height / 2\n };\n }\n\n /**\n * 获取极坐标半径值\n * @returns 半径数值\n */\n getOuterRadius(): number {\n return this.computeLayoutOuterRadius();\n }\n\n /**\n * 获取极坐标内半径值\n * @returns 内半径数值\n */\n getInnerRadius(): number {\n return this.computeLayoutInnerRadius();\n }\n\n tickValues(): number[] {\n return this._tickData.getLatestData() || [];\n }\n\n updateLayoutAttribute(): void {\n if (this._visible) {\n if (this.orient === 'radius') {\n this._layoutRadiusAxis();\n } else {\n this._layoutAngleAxis();\n }\n }\n\n super.updateLayoutAttribute();\n }\n\n private _layoutAngleAxis(): void {\n const center = this.getCenter();\n const radius = this.computeLayoutOuterRadius();\n const innerRadius = this.computeLayoutInnerRadius();\n const angleRange = this._endAngle - this._startAngle;\n const attrs = {\n ...this.getLayoutStartPoint(),\n inside: this._spec.inside,\n center,\n radius,\n innerRadius,\n startAngle: this._startAngle,\n endAngle: this._endAngle,\n grid: {\n type: 'line',\n smoothLink: true\n },\n title: {\n text: this._spec.title.text || this._dataFieldText\n },\n items: isArray(this._tickData.getLatestData())\n ? [\n this._tickData.getLatestData().map((obj: Datum) => {\n const angle = this.dataToPosition([obj.value]);\n return {\n id: obj.value,\n label: obj.value,\n value: (angle - this._startAngle) / angleRange,\n rawValue: obj.value\n };\n })\n ]\n : []\n };\n this._update(attrs);\n }\n\n private _layoutRadiusAxis(): void {\n const center = this.getCenter();\n const radius = this.computeLayoutOuterRadius();\n const innerRadius = this.computeLayoutInnerRadius();\n const endPoint = this.coordToPoint({ angle: this._startAngle, radius });\n const startPoint = this.coordToPoint({ angle: this._startAngle, radius: innerRadius });\n const distance = PointService.distancePP(startPoint, endPoint);\n const attrs = {\n ...this.getLayoutStartPoint(),\n start: startPoint,\n end: endPoint,\n verticalFactor: -1,\n grid: {\n type: this._spec.grid?.smooth ? 'circle' : 'polygon',\n center,\n closed: true,\n sides: this._refAngleAxis.tickValues().length,\n startAngle: this._startAngle,\n endAngle: this._endAngle\n },\n title: {\n text: this._spec.title.text || this._dataFieldText\n },\n items: isArray(this._tickData.getLatestData())\n ? [\n this._tickData.getLatestData().map((obj: Datum) => {\n const value = this.dataToPosition([obj.value]);\n return {\n id: obj.value,\n label: obj.value,\n value: (value - innerRadius) / distance,\n rawValue: obj.value\n };\n })\n ]\n : []\n };\n this._update(attrs);\n }\n\n private computeLayoutOuterRadius() {\n /**\n * 兼容radius旧配置\n * @deprecated use outerRadius instead\n */\n const radius = this._spec.outerRadius ?? this._spec.radius;\n const outerRadius = radius ?? this.getRefSeriesRadius().outerRadius;\n const { width, height } = this.getRefLayoutRect();\n return (Math.min(width, height) / 2) * outerRadius;\n }\n\n private computeLayoutInnerRadius() {\n const innerRadius = this._spec.innerRadius ?? this.getRefSeriesRadius().innerRadius;\n const { width, height } = this.getRefLayoutRect();\n return (Math.min(width, height) / 2) * innerRadius;\n }\n\n private getRefLayoutRect() {\n return this.getRegions()[0].getLayoutRect();\n }\n\n private getRefSeriesRadius() {\n let outerRadius: number = POLAR_DEFAULT_RADIUS;\n let innerRadius: number = 0;\n const chartSpec = this.getChart().getSpec() as any;\n // FIXME: 为了保证 common 图表能够应用系列的 radius 配置,当前从相应的 region 中取到 radius 信息\n eachSeries(\n this.getRegions(),\n s => {\n const series = s as IPolarSeries;\n if (isPolarAxisSeries(series.type)) {\n const {\n outerRadius: seriesRadius = chartSpec.outerRadius,\n innerRadius: seriesInnerRadius = chartSpec.innerRadius\n } = series;\n if (isValidNumber(seriesRadius)) {\n outerRadius = seriesRadius;\n }\n if (isValidNumber(seriesInnerRadius)) {\n innerRadius = seriesInnerRadius;\n }\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return { outerRadius, innerRadius };\n }\n\n private _update(attrs: Dict<unknown>) {\n const product = this.getMarks()[0].getProduct(); // 获取语法元素并更新\n product.encode(merge({}, this._axisStyle, attrs));\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/axis/polar/axis.ts"],"names":[],"mappings":"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","file":"axis.js","sourcesContent":["import { POLAR_DEFAULT_RADIUS, POLAR_END_ANGLE, POLAR_END_RADIAN } from '../../../constant/polar';\nimport { DataView } from '@visactor/vdataset';\nimport type { IBaseScale, BandScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport { ChartEvent, LayoutZIndex, POLAR_START_ANGLE, POLAR_START_RADIAN } from '../../../constant';\nimport type { LayoutItem } from '../../../model/layout-item';\nimport type { IPolarAxis, IPolarAxisCommonTheme } from './interface';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface';\nimport { Factory } from '../../../core/factory';\nimport { isArray, isValidNumber, merge, polarToCartesian, radians, eachSeries, getFieldAlias } from '../../../util';\nimport { scaleParser } from '../../../data/parser/scale';\nimport type { IPolarTickDataOpt } from '../../../data/transforms/tick-data';\n// eslint-disable-next-line no-duplicate-imports\nimport { ticks } from '../../../data/transforms/tick-data';\nimport type { IPolarSeries } from '../../../series/interface';\nimport type { IPoint, IPolarOrientType, IPolarPoint, Datum, StringOrNumber } from '../../../typings';\nimport { registerDataSetInstanceParser, registerDataSetInstanceTransform } from '../../../data/register';\nimport { isPolarAxisSeries } from '../../../series/util/utils';\nimport { isValidPolarAxis } from '../utils';\n\nimport type { Dict } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { PointService, isValid } from '@visactor/vutils';\nimport type { IEffect } from '../../../model/interface';\nimport { CompilableData } from '../../../compile/data';\nimport { AxisComponent } from '../base-axis';\nimport type { ITick } from '../interface';\n\nexport abstract class PolarAxis extends AxisComponent implements IPolarAxis {\n static type = ComponentTypeEnum.polarAxis;\n type = ComponentTypeEnum.polarAxis;\n name: string = ComponentTypeEnum.polarAxis;\n\n layoutType: LayoutItem['layoutType'] = 'absolute';\n layoutZIndex: number = LayoutZIndex.Axis;\n protected _tick: ITick | undefined = undefined;\n\n protected _center: IPoint | null = null;\n get center() {\n return this._center;\n }\n\n protected _startAngle: number = POLAR_START_RADIAN;\n get startAngle() {\n return this._startAngle;\n }\n\n protected _endAngle: number = POLAR_END_RADIAN;\n get endAngle() {\n return this._endAngle;\n }\n\n protected declare _theme: IPolarAxisCommonTheme;\n\n protected _orient: IPolarOrientType = 'radius';\n get orient() {\n return this._orient;\n }\n\n protected _groupScales: IBaseScale[] = [];\n getGroupScales() {\n return this._groupScales;\n }\n\n protected _refAngleAxis!: IPolarAxis;\n setRefAngleAxis(axes: IPolarAxis): this {\n this._refAngleAxis = axes;\n return this;\n }\n\n private _axisStyle: any;\n\n static createAxis(spec: any, options: IComponentOption): IPolarAxis {\n // TODO: 基于数据处理 axis 类型\n const axisType = spec.type ?? (spec.orient === 'angle' ? 'band' : 'linear');\n const componentName = `${PolarAxis.type}-${axisType}`;\n const C = Factory.getComponentInKey(componentName);\n if (C) {\n return new C(spec, options) as IPolarAxis;\n }\n options.onError(`Component ${componentName} not found`);\n return null;\n }\n\n static createComponent(spec: any, options: IComponentOption) {\n if (!this.type.startsWith(PolarAxis.type)) {\n return null;\n }\n const axesSpec = spec.axes || options.defaultSpec;\n if (!axesSpec) {\n return null;\n }\n if (!isArray(axesSpec)) {\n if (!isValidPolarAxis(axesSpec)) {\n return null;\n }\n axesSpec.center = spec.center;\n axesSpec.startAngle = spec.startAngle ?? POLAR_START_ANGLE;\n axesSpec.endAngle = spec.endAngle ?? (isValid(spec.startAngle) ? spec.startAngle + 360 : POLAR_END_ANGLE);\n return PolarAxis.createAxis(axesSpec, {\n ...options,\n specKey: 'axes'\n });\n }\n const axes: IPolarAxis[] = [];\n let angleAxes: IPolarAxis;\n const radiusAxes: IPolarAxis[] = [];\n axesSpec.forEach((s: any, i: number) => {\n if (!isValidPolarAxis(s)) {\n return;\n }\n s.center = spec.center;\n s.startAngle = spec.startAngle ?? POLAR_START_ANGLE;\n s.endAngle = spec.endAngle ?? (isValid(spec.startAngle) ? spec.startAngle + 360 : POLAR_END_ANGLE);\n // 优先使用outerRadius, 但要兼容s.radius, spec.radius\n s.outerRadius = s.radius ?? spec.outerRadius ?? spec.radius ?? POLAR_DEFAULT_RADIUS;\n const polarAxes = PolarAxis.createAxis(s, {\n ...options,\n specIndex: i,\n specKey: 'axes'\n }) as IPolarAxis;\n axes.push(polarAxes);\n if (s.orient === 'radius') {\n radiusAxes.push(polarAxes);\n } else {\n angleAxes = polarAxes;\n }\n });\n radiusAxes.forEach(axes => axes.setRefAngleAxis(angleAxes));\n return axes;\n }\n\n effect: IEffect = {\n scaleUpdate: () => {\n this.computeData();\n eachSeries(\n this._regions,\n s => {\n if (this.orient === 'radius') {\n (s as IPolarSeries).radiusAxisHelper = this.axisHelper();\n } else {\n (s as IPolarSeries).angleAxisHelper = this.axisHelper();\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n };\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n const axisStyle = this._getAxisAttributes();\n this._axisStyle = axisStyle;\n\n this._tick = this._spec.tick;\n this._orient = this._spec.orient === 'angle' ? 'angle' : 'radius';\n this._center = this._spec.center;\n this._startAngle = radians(this._spec.startAngle ?? POLAR_START_ANGLE);\n this._endAngle = radians(\n this._spec.endAngle ?? (isValid(this._spec.startAngle) ? this._spec.startAngle + 360 : POLAR_END_ANGLE)\n );\n }\n\n setLayoutStartPosition(pos: Partial<IPoint>): void {\n const region = this.getRegions()?.[0];\n const startPoint = region ? region.getLayoutStartPoint() : pos;\n super.setLayoutStartPosition(startPoint);\n }\n\n onLayoutEnd(ctx: any): void {\n this.updateScaleRange();\n this.updateSeriesScale();\n this.event.emit(ChartEvent.scaleUpdate, { model: this });\n\n super.onLayoutEnd(ctx);\n }\n\n onRender(ctx: any): void {\n // do nothing\n }\n\n changeRegions(/** regions: IRegion[] */): void {\n // do nothing\n }\n\n // data\n protected _initData() {\n registerDataSetInstanceParser(this._option.dataSet, 'scale', scaleParser);\n registerDataSetInstanceTransform(this._option.dataSet, 'ticks', ticks);\n\n const label = this._spec.label || {};\n const tick = this._spec.tick || {};\n const tickData = new DataView(this._option.dataSet)\n .parse(this._scale, {\n type: 'scale'\n })\n .transform(\n {\n type: 'ticks',\n options: {\n sampling: this._spec.sampling !== false, // default do sampling\n tickCount: tick.tickCount,\n forceTickCount: tick.forceTickCount,\n tickStep: tick.tickStep,\n\n coordinateType: 'polar',\n axisOrientType: this._orient,\n startAngle: this.startAngle,\n\n labelStyle: label.style,\n labelFormatter: label.formatMethod,\n labelGap: label.minGap,\n\n axisSpec: this._spec,\n getRadius: () => this.getOuterRadius()\n } as IPolarTickDataOpt\n },\n false\n );\n tickData.target.addListener('change', this._forceLayout.bind(this));\n\n this._tickData = new CompilableData(this._option, tickData);\n }\n\n protected initEvent() {\n super.initEvent();\n\n if (this.visible) {\n this.event.on('afterElementEncode', eventParams => {\n const mark = eventParams.item;\n if (this._option.getChart().getLayoutTag() === false && mark.context?.model === this) {\n // 代理组件上的事件,目前坐标轴组件比较特殊,包含了网格线,但是事件这块只提供不包含网格线部分的响应\n this._delegateAxisContainerEvent(mark.getGroupGraphicItem());\n }\n });\n }\n }\n\n protected updateScaleRange() {\n const inverse = this._spec.inverse;\n if (this.orient === 'radius') {\n this._scale.range(\n inverse\n ? [this.computeLayoutOuterRadius(), this.computeLayoutInnerRadius()]\n : [this.computeLayoutInnerRadius(), this.computeLayoutOuterRadius()]\n );\n } else {\n this._scale.range(inverse ? [this._endAngle, this._startAngle] : [this._startAngle, this._endAngle]);\n }\n }\n\n protected collectData(depth: number) {\n const data: { min: number; max: number; values: any[] }[] = [];\n eachSeries(\n this._regions,\n s => {\n let field: string | string[];\n if (depth > 0) {\n field = s.getGroups()?.fields?.[depth];\n } else {\n field = this.orient === 'radius' ? (s as IPolarSeries).getRadiusField() : (s as IPolarSeries).getAngleField();\n }\n field = (isArray(field) ? (isContinuous(this._scale.type) ? field : [field[0]]) : [field]) as string[];\n if (!depth) {\n this._dataFieldText = s.getFieldAlias(field[0]);\n }\n const seriesData = s.getViewDataStatistics?.();\n if (field) {\n field.forEach(f => {\n if (seriesData?.latestData?.[f]) {\n data.push(seriesData.latestData[f]);\n }\n });\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return data;\n }\n\n protected abstract computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[];\n\n protected updateSeriesScale(): void {\n eachSeries(\n this._regions,\n s => {\n if (this.orient === 'radius') {\n (s as IPolarSeries).setRadiusScale(this._scale);\n (s as IPolarSeries).radiusAxisHelper = this.axisHelper();\n } else {\n (s as IPolarSeries).setAngleScale(this._scale);\n (s as IPolarSeries).angleAxisHelper = this.axisHelper();\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n protected getSeriesStatisticsField(s: IPolarSeries) {\n const f = this.orient === 'radius' ? s.getRadiusField() : s.getAngleField();\n if (isContinuous(this._scale.type)) {\n return f;\n }\n return [f[0]];\n }\n\n protected initGroupScales() {\n // do nothing\n }\n\n // axisHelper\n protected axisHelper() {\n const getScale = (depth: number) => {\n return this._scales[depth];\n };\n\n const helper = {\n dataToPosition: this.dataToPosition.bind(this),\n coordToPoint: this.coordToPoint.bind(this),\n pointToCoord: this.pointToCoord.bind(this),\n center: this.getCenter.bind(this),\n getScale,\n getAxisId: () => this.id\n };\n return helper;\n }\n\n dataToPosition(values: any[]): number {\n return this._scale.scale(values);\n }\n\n positionToData(position: IPoint) {\n const coord = this.pointToCoord(position);\n if (this.orient === 'radius') {\n return this._scale.invert(coord.radius);\n }\n\n if (this._scale.type === 'band') {\n //极坐标轴需要手动取模,超出range时默认会截断\n const range = this._scale.range();\n const rangeValue = range[range.length - 1] - range[0];\n if (range[0] < 0) {\n const angle = coord.angle + (this._scale as BandScale).bandwidth() / 2;\n const transformedAngle = ((angle + Math.abs(range[0])) % rangeValue) - Math.abs(range[0]);\n return this._scale.invert(transformedAngle);\n }\n\n return this._scale.invert((coord.angle + (this._scale as BandScale).bandwidth() / 2) % rangeValue);\n }\n\n return this._scale.invert(coord.angle);\n }\n\n /**\n * 将半径和角度转换为笛卡尔坐标点\n * @param point 角度 & 弧度信息\n * @returns 笛卡尔坐标点 { x, y }\n */\n coordToPoint(point: IPolarPoint): IPoint {\n // center & startAngle 都是坐标系转换的配置,在 scale 中不生效,仅在最终转换时生效\n const angle = point.angle;\n const { x: centerX, y: centerY } = this.getCenter();\n const p = polarToCartesian({ angle, radius: point.radius });\n return {\n x: p.x + centerX,\n y: p.y + centerY\n };\n }\n\n /**\n * 将笛卡尔坐标转换为对应的半径和弧度\n * @param point 笛卡尔坐标点 { x, y }\n * @returns 角度 & 弧度信息 { radius, angle }\n */\n pointToCoord(point: IPoint): IPolarPoint {\n const { x: centerX, y: centerY } = this.getCenter();\n let dx = point.x - centerX;\n let dy = point.y - centerY;\n const startAngle = this._startAngle;\n const endAngle = this._endAngle;\n const radius = Math.sqrt(dx * dx + dy * dy);\n dx /= radius;\n dy /= radius;\n\n let radian = Math.atan2(dy, dx);\n const dir = radian < startAngle ? 1 : -1;\n while (radian < startAngle || radian > endAngle) {\n radian += dir * Math.PI * 2;\n }\n\n return {\n radius,\n angle: radian\n };\n }\n\n /**\n * 获取坐标轴圆心位置\n * @returns 圆心位置\n */\n getCenter(): IPoint {\n return {\n x: this._center?.x || this.getRefLayoutRect().width / 2,\n y: this._center?.y || this.getRefLayoutRect().height / 2\n };\n }\n\n /**\n * 获取极坐标半径值\n * @returns 半径数值\n */\n getOuterRadius(): number {\n return this.computeLayoutOuterRadius();\n }\n\n /**\n * 获取极坐标内半径值\n * @returns 内半径数值\n */\n getInnerRadius(): number {\n return this.computeLayoutInnerRadius();\n }\n\n tickValues(): number[] {\n return this._tickData.getLatestData() || [];\n }\n\n updateLayoutAttribute(): void {\n if (this._visible) {\n if (this.orient === 'radius') {\n this._layoutRadiusAxis();\n } else {\n this._layoutAngleAxis();\n }\n }\n\n super.updateLayoutAttribute();\n }\n\n private _layoutAngleAxis(): void {\n const center = this.getCenter();\n const radius = this.computeLayoutOuterRadius();\n const innerRadius = this.computeLayoutInnerRadius();\n const angleRange = this._endAngle - this._startAngle;\n const attrs = {\n ...this.getLayoutStartPoint(),\n inside: this._spec.inside,\n center,\n radius,\n innerRadius,\n startAngle: this._startAngle,\n endAngle: this._endAngle,\n grid: {\n type: 'line',\n smoothLink: true\n },\n title: {\n text: this._spec.title.text || this._dataFieldText\n },\n items: isArray(this._tickData.getLatestData())\n ? [\n this._tickData.getLatestData().map((obj: Datum) => {\n const angle = this.dataToPosition([obj.value]);\n return {\n id: obj.value,\n label: obj.value,\n value: (angle - this._startAngle) / angleRange,\n rawValue: obj.value\n };\n })\n ]\n : []\n };\n this._update(attrs);\n }\n\n private _layoutRadiusAxis(): void {\n const center = this.getCenter();\n const radius = this.computeLayoutOuterRadius();\n const innerRadius = this.computeLayoutInnerRadius();\n const endPoint = this.coordToPoint({ angle: this._startAngle, radius });\n const startPoint = this.coordToPoint({ angle: this._startAngle, radius: innerRadius });\n const distance = PointService.distancePP(startPoint, endPoint);\n const attrs = {\n ...this.getLayoutStartPoint(),\n start: startPoint,\n end: endPoint,\n verticalFactor: -1,\n grid: {\n type: this._spec.grid?.smooth ? 'circle' : 'polygon',\n center,\n closed: true,\n sides: this._refAngleAxis.tickValues().length,\n startAngle: this._startAngle,\n endAngle: this._endAngle\n },\n title: {\n text: this._spec.title.text || this._dataFieldText\n },\n items: isArray(this._tickData.getLatestData())\n ? [\n this._tickData.getLatestData().map((obj: Datum) => {\n const value = this.dataToPosition([obj.value]);\n return {\n id: obj.value,\n label: obj.value,\n value: (value - innerRadius) / distance,\n rawValue: obj.value\n };\n })\n ]\n : []\n };\n this._update(attrs);\n }\n\n private computeLayoutOuterRadius() {\n /**\n * 兼容radius旧配置\n * @deprecated use outerRadius instead\n */\n const radius = this._spec.outerRadius ?? this._spec.radius;\n const outerRadius = radius ?? this.getRefSeriesRadius().outerRadius;\n const { width, height } = this.getRefLayoutRect();\n return (Math.min(width, height) / 2) * outerRadius;\n }\n\n private computeLayoutInnerRadius() {\n const innerRadius = this._spec.innerRadius ?? this.getRefSeriesRadius().innerRadius;\n const { width, height } = this.getRefLayoutRect();\n return (Math.min(width, height) / 2) * innerRadius;\n }\n\n private getRefLayoutRect() {\n return this.getRegions()[0].getLayoutRect();\n }\n\n private getRefSeriesRadius() {\n let outerRadius: number = POLAR_DEFAULT_RADIUS;\n let innerRadius: number = 0;\n const chartSpec = this.getChart().getSpec() as any;\n // FIXME: 为了保证 common 图表能够应用系列的 radius 配置,当前从相应的 region 中取到 radius 信息\n eachSeries(\n this.getRegions(),\n s => {\n const series = s as IPolarSeries;\n if (isPolarAxisSeries(series.type)) {\n const {\n outerRadius: seriesRadius = chartSpec.outerRadius,\n innerRadius: seriesInnerRadius = chartSpec.innerRadius\n } = series;\n if (isValidNumber(seriesRadius)) {\n outerRadius = seriesRadius;\n }\n if (isValidNumber(seriesInnerRadius)) {\n innerRadius = seriesInnerRadius;\n }\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return { outerRadius, innerRadius };\n }\n\n private _update(attrs: Dict<unknown>) {\n const product = this.getMarks()[0].getProduct(); // 获取语法元素并更新\n product.encode(merge({}, this._axisStyle, attrs));\n }\n}\n"]}
@@ -87,7 +87,7 @@ class GeoCoordinate extends base_1.BaseComponent {
87
87
  })));
88
88
  }
89
89
  initProjection() {
90
- this._projection = new projection_1.Projection(this._projectionSpec);
90
+ this._projection = new projection_1.Projection(this._projectionSpec), null !== this._projection.projection || this._option.onError("unsupported projection type!");
91
91
  }
92
92
  coordinateHelper() {
93
93
  const helper = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/geo/geo-coordinate.ts"],"names":[],"mappings":"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","file":"geo-coordinate.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport type { IPoint } from '../../typings/coordinate';\nimport { Projection } from './projection';\nimport type { IEffect, IModelLayoutOption, IModelRenderOption, ILayoutItem } from '../../model/interface';\nimport type { IComponentOption } from '../interface';\nimport { ComponentTypeEnum } from '../interface';\nimport { BaseComponent } from '../base';\nimport type { IGeoRegionSpec, IRegion, IRegionSpec } from '../../region/interface';\nimport { isNil, merge } from '../../util';\nimport { ChartEvent, PREFIX } from '../../constant/index';\nimport type { ICartesianSeries, IGeoSeries } from '../../series/interface';\nimport { SeriesTypeEnum } from '../../series/interface/type';\nimport type { ISymbolMark } from '../../mark/symbol';\nimport type { IGeoCoordinate, IGeoCoordinateHelper, IGeoCoordinateSpec, IProjectionSpec } from './interface';\nimport type { IPathMark } from '../../mark/path';\nimport type { BaseEventParams, ExtendEventParam, PanEventParam, ZoomEventParam } from '../../event/interface';\nimport type { Datum, IChartSpec } from '../../typings';\nimport type { IZoomable } from '../../interaction/zoom/zoomable';\nimport { Zoomable } from '../../interaction/zoom/zoomable';\nimport { mixin } from '@visactor/vutils';\n\nexport function projectionName(key: string, id: number) {\n return `${PREFIX}_${id}_${key}`;\n}\nexport class GeoCoordinate extends BaseComponent implements IGeoCoordinate {\n static type = ComponentTypeEnum.geoCoordinate;\n type = ComponentTypeEnum.geoCoordinate;\n name: string = ComponentTypeEnum.geoCoordinate;\n\n layoutType: ILayoutItem['layoutType'] = 'absolute';\n\n protected declare _spec: IGeoRegionSpec;\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 private _actualScale = 1;\n private _evaluated = false;\n private _lastHeight = 0;\n private _lastWidth = 0;\n\n static createComponent(spec: IChartSpec, options: IComponentOption) {\n if (isNil(spec)) {\n return null;\n }\n const result: IGeoCoordinate[] = [];\n spec.region.forEach((r: IRegionSpec, i: number) => {\n if (r.coordinate === 'geo') {\n // 去除 padding 配置,避免重复计算\n const spec = { ...r, padding: 0 };\n const c = new GeoCoordinate(spec, options);\n // FIXME: hack,regions的关联关系不应该在具体的component中处理\n c._regions = options.getRegionsInIndex([i]);\n result.push(c);\n }\n });\n return result;\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 = merge(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 this._longitudeField = this._spec.longitudeField;\n this._latitudeField = this._spec.latitudeField;\n }\n\n // life cycle\n created() {\n super.created();\n this.initProjection();\n this.coordinateHelper();\n this.initEvent();\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 (event as any).zoomDelta = scale;\n this.zoom(scale, [params.zoomX, params.zoomY]);\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 }\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 unknown as IGeoSeries).setCoordinateHelper(helper);\n } else {\n // 散点地图\n (s as unknown as ICartesianSeries).setXAxisHelper({\n ...helper,\n dataToPosition: (values: any[]) => {\n return this.dataToLongitude(values[0]);\n },\n getAxisType: () => this.type,\n getAxisId: () => this.id\n });\n (s as unknown as ICartesianSeries).setYAxisHelper({\n ...helper,\n dataToPosition: (values: any[]) => {\n return this.dataToLatitude(values[0]);\n },\n getAxisType: () => this.type,\n getAxisId: () => this.id\n });\n this._longitudeField && (s as unknown as ICartesianSeries).setFieldX(this._longitudeField);\n this._latitudeField && (s as unknown as ICartesianSeries).setFieldY(this._latitudeField);\n }\n });\n });\n }\n\n onLayoutEnd(ctx: IModelLayoutOption) {\n this.setLayoutRect(this._regions[0].getLayoutRect());\n this.setLayoutStartPosition(this._regions[0].getLayoutStartPoint());\n const { width, height } = this.getLayoutRect();\n if (!this._evaluated) {\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 this._evaluated = true;\n } else {\n const dx = (width - this._lastWidth) / 2;\n const dy = (height - this._lastHeight) / 2;\n this.pan([dx, dy]);\n this.event.emit('panmove', { delta: [dx, dy], model: this } as ExtendEventParam);\n }\n this._lastWidth = width;\n this._lastHeight = height;\n\n super.onLayoutEnd(ctx);\n }\n onRender(ctx: IModelRenderOption) {\n // do nothing\n }\n\n // region\n changeRegions(regions: IRegion[]): void {\n // do nothing\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 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;\n center && (translate = [size[0] / 2, size[1] / 2]);\n return { translate, scale, center };\n }\n\n private rescaleMark() {\n this._regions.forEach(r => {\n const mapMark = r.getSeriesInType(SeriesTypeEnum.map)[0]?.getMarkInName('area') as IPathMark;\n if (mapMark) {\n r.getSeries().forEach(s => {\n if (s.type !== SeriesTypeEnum.map) {\n s.getMarksInType('symbol').forEach((s: ISymbolMark) => {\n s.setAttribute('scaleX', (datum: Datum) => {\n return (s.getAttribute('size', datum) as number) * (mapMark.getAttribute('scaleX', datum) as number);\n });\n s.setAttribute('scaleY', (datum: Datum) => {\n return (s.getAttribute('size', datum) as number) * (mapMark.getAttribute('scaleY', datum) as number);\n });\n });\n }\n });\n }\n });\n }\n}\n\nmixin(GeoCoordinate, Zoomable);\n"]}
1
+ {"version":3,"sources":["../src/component/geo/geo-coordinate.ts"],"names":[],"mappings":"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","file":"geo-coordinate.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport type { IPoint } from '../../typings/coordinate';\nimport { Projection } from './projection';\nimport type { IEffect, IModelLayoutOption, IModelRenderOption, ILayoutItem } from '../../model/interface';\nimport type { IComponentOption } from '../interface';\nimport { ComponentTypeEnum } from '../interface';\nimport { BaseComponent } from '../base';\nimport type { IGeoRegionSpec, IRegion, IRegionSpec } from '../../region/interface';\nimport { isNil, merge } from '../../util';\nimport { ChartEvent, PREFIX } from '../../constant/index';\nimport type { ICartesianSeries, IGeoSeries } from '../../series/interface';\nimport { SeriesTypeEnum } from '../../series/interface/type';\nimport type { ISymbolMark } from '../../mark/symbol';\nimport type { IGeoCoordinate, IGeoCoordinateHelper, IGeoCoordinateSpec, IProjectionSpec } from './interface';\nimport type { IPathMark } from '../../mark/path';\nimport type { BaseEventParams, ExtendEventParam, PanEventParam, ZoomEventParam } from '../../event/interface';\nimport type { Datum, IChartSpec } from '../../typings';\nimport type { IZoomable } from '../../interaction/zoom/zoomable';\nimport { Zoomable } from '../../interaction/zoom/zoomable';\nimport { mixin } from '@visactor/vutils';\n\nexport function projectionName(key: string, id: number) {\n return `${PREFIX}_${id}_${key}`;\n}\nexport class GeoCoordinate extends BaseComponent implements IGeoCoordinate {\n static type = ComponentTypeEnum.geoCoordinate;\n type = ComponentTypeEnum.geoCoordinate;\n name: string = ComponentTypeEnum.geoCoordinate;\n\n layoutType: ILayoutItem['layoutType'] = 'absolute';\n\n protected declare _spec: IGeoRegionSpec;\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 private _actualScale = 1;\n private _evaluated = false;\n private _lastHeight = 0;\n private _lastWidth = 0;\n\n static createComponent(spec: IChartSpec, options: IComponentOption) {\n if (isNil(spec)) {\n return null;\n }\n const result: IGeoCoordinate[] = [];\n spec.region.forEach((r: IRegionSpec, i: number) => {\n if (r.coordinate === 'geo') {\n // 去除 padding 配置,避免重复计算\n const spec = { ...r, padding: 0 };\n const c = new GeoCoordinate(spec, options);\n // FIXME: hack,regions的关联关系不应该在具体的component中处理\n c._regions = options.getRegionsInIndex([i]);\n result.push(c);\n }\n });\n return result;\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 = merge(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 this._longitudeField = this._spec.longitudeField;\n this._latitudeField = this._spec.latitudeField;\n }\n\n // life cycle\n created() {\n super.created();\n this.initProjection();\n this.coordinateHelper();\n this.initEvent();\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 (event as any).zoomDelta = scale;\n this.zoom(scale, [params.zoomX, params.zoomY]);\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 unknown as IGeoSeries).setCoordinateHelper(helper);\n } else {\n // 散点地图\n (s as unknown as ICartesianSeries).setXAxisHelper({\n ...helper,\n dataToPosition: (values: any[]) => {\n return this.dataToLongitude(values[0]);\n },\n getAxisType: () => this.type,\n getAxisId: () => this.id\n });\n (s as unknown as ICartesianSeries).setYAxisHelper({\n ...helper,\n dataToPosition: (values: any[]) => {\n return this.dataToLatitude(values[0]);\n },\n getAxisType: () => this.type,\n getAxisId: () => this.id\n });\n this._longitudeField && (s as unknown as ICartesianSeries).setFieldX(this._longitudeField);\n this._latitudeField && (s as unknown as ICartesianSeries).setFieldY(this._latitudeField);\n }\n });\n });\n }\n\n onLayoutEnd(ctx: IModelLayoutOption) {\n this.setLayoutRect(this._regions[0].getLayoutRect());\n this.setLayoutStartPosition(this._regions[0].getLayoutStartPoint());\n const { width, height } = this.getLayoutRect();\n if (!this._evaluated) {\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 this._evaluated = true;\n } else {\n const dx = (width - this._lastWidth) / 2;\n const dy = (height - this._lastHeight) / 2;\n this.pan([dx, dy]);\n this.event.emit('panmove', { delta: [dx, dy], model: this } as ExtendEventParam);\n }\n this._lastWidth = width;\n this._lastHeight = height;\n\n super.onLayoutEnd(ctx);\n }\n onRender(ctx: IModelRenderOption) {\n // do nothing\n }\n\n // region\n changeRegions(regions: IRegion[]): void {\n // do nothing\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 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;\n center && (translate = [size[0] / 2, size[1] / 2]);\n return { translate, scale, center };\n }\n\n private rescaleMark() {\n this._regions.forEach(r => {\n const mapMark = r.getSeriesInType(SeriesTypeEnum.map)[0]?.getMarkInName('area') as IPathMark;\n if (mapMark) {\n r.getSeries().forEach(s => {\n if (s.type !== SeriesTypeEnum.map) {\n s.getMarksInType('symbol').forEach((s: ISymbolMark) => {\n s.setAttribute('scaleX', (datum: Datum) => {\n return (s.getAttribute('size', datum) as number) * (mapMark.getAttribute('scaleX', datum) as number);\n });\n s.setAttribute('scaleY', (datum: Datum) => {\n return (s.getAttribute('size', datum) as number) * (mapMark.getAttribute('scaleY', datum) as number);\n });\n });\n }\n });\n }\n });\n }\n}\n\nmixin(GeoCoordinate, Zoomable);\n"]}
@@ -8,8 +8,7 @@ const vgrammar_projection_1 = require("@visactor/vgrammar-projection");
8
8
 
9
9
  class Projection {
10
10
  constructor(projectionSpec) {
11
- if (this.projection = (0, vgrammar_projection_1.projection)(projectionSpec.type)(),
12
- null === this.projection) throw Error("unsupported projection type!");
11
+ this.projection = (0, vgrammar_projection_1.projection)(projectionSpec.type)();
13
12
  }
14
13
  fit(start, size, features) {
15
14
  const fitData = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/geo/projection.ts"],"names":[],"mappings":";;;AAEA,uEAA2D;AAK3D,MAAa,UAAU;IAGrB,YAAY,cAA+B;QAIzC,IAAI,CAAC,UAAU,GAAG,IAAA,gCAAU,EAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;YAC5B,MAAM,KAAK,CAAC,8BAA8B,CAAC,CAAC;SAC7C;IACH,CAAC;IAED,GAAG,CAAC,KAAe,EAAE,IAAc,EAAE,QAA8B;QACjE,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC;QACxD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,MAAwB;;QAC7B,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,mDAAG,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,KAAuB;;QAC7B,OAAO,MAAA,IAAI,CAAC,UAAU,qDAAG,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAwB;;QAC5B,OAAO,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,IAAI,mDAAG,IAAI,CAAC,CAAC;IACvC,CAAC;IAID,KAAK,CAAC,KAAc;;QAClB,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,mDAAG,KAAK,CAAC,CAAC;SACjC;aAAM;YACL,OAAO,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,kDAAc,CAAC;SAC7C;IACH,CAAC;IAID,SAAS,CAAC,KAA+B;;QACvC,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,SAAS,mDAAG,KAAK,CAAC,CAAC;SACrC;aAAM;YACL,OAAO,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,SAAS,kDAAI,CAAC;SACvC;IACH,CAAC;IAED,QAAQ,CAAC,KAAe,EAAE,IAAc,EAAE,QAA8B;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;YACnC,IAAI,EAAE,mBAAmB;YACzB,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;CACF;AAzDD,gCAyDC","file":"projection.js","sourcesContent":["// import type { GeoJsonFeatureSpec } from '@visactor/vgrammar';\n\nimport { projection } from '@visactor/vgrammar-projection';\nimport type { IProjectionSpec } from './interface';\n\n// TODO: 待 vgrammar 补充上后修改回去\ntype GeoJsonFeatureSpec = any;\nexport class Projection {\n projection: any;\n\n constructor(projectionSpec: IProjectionSpec) {\n // TODO: vgrammar 类型问题\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.projection = projection(projectionSpec.type)();\n if (this.projection === null) {\n throw Error('unsupported projection type!');\n }\n }\n\n fit(start: number[], size: number[], features: GeoJsonFeatureSpec[]) {\n const fitData = { type: 'FeatureCollection', features };\n this.projection.fitExtent([start, size], fitData);\n }\n\n center(center: [number, number]) {\n this.projection?.center?.(center);\n }\n\n project(point: [number, number]) {\n return this.projection?.(point);\n }\n\n shape(data: GeoJsonFeatureSpec) {\n return this.projection?.path?.(data);\n }\n\n scale(): number;\n scale(scale: number): void;\n scale(scale?: number): number | void {\n if (scale !== undefined) {\n this.projection?.scale?.(scale);\n } else {\n return this.projection?.scale?.() as number;\n }\n }\n\n translate(): [number, number];\n translate(point: [number, number]): void;\n translate(point?: [number, number] | void) {\n if (point !== undefined) {\n this.projection?.translate?.(point);\n } else {\n return this.projection?.translate?.();\n }\n }\n\n evaluate(start: number[], size: number[], features: GeoJsonFeatureSpec[]) {\n const tmp = this.projection.copy();\n return tmp?.fitExtent([start, size], {\n type: 'FeatureCollection',\n features\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/geo/projection.ts"],"names":[],"mappings":";;;AAEA,uEAA2D;AAK3D,MAAa,UAAU;IAGrB,YAAY,cAA+B;QAIzC,IAAI,CAAC,UAAU,GAAG,IAAA,gCAAU,EAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IACtD,CAAC;IAED,GAAG,CAAC,KAAe,EAAE,IAAc,EAAE,QAA8B;QACjE,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC;QACxD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,MAAwB;;QAC7B,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,mDAAG,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,KAAuB;;QAC7B,OAAO,MAAA,IAAI,CAAC,UAAU,qDAAG,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAwB;;QAC5B,OAAO,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,IAAI,mDAAG,IAAI,CAAC,CAAC;IACvC,CAAC;IAID,KAAK,CAAC,KAAc;;QAClB,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,mDAAG,KAAK,CAAC,CAAC;SACjC;aAAM;YACL,OAAO,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,kDAAc,CAAC;SAC7C;IACH,CAAC;IAID,SAAS,CAAC,KAA+B;;QACvC,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,SAAS,mDAAG,KAAK,CAAC,CAAC;SACrC;aAAM;YACL,OAAO,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,SAAS,kDAAI,CAAC;SACvC;IACH,CAAC;IAED,QAAQ,CAAC,KAAe,EAAE,IAAc,EAAE,QAA8B;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;YACnC,IAAI,EAAE,mBAAmB;YACzB,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;CACF;AAtDD,gCAsDC","file":"projection.js","sourcesContent":["// import type { GeoJsonFeatureSpec } from '@visactor/vgrammar';\n\nimport { projection } from '@visactor/vgrammar-projection';\nimport type { IProjectionSpec } from './interface';\n\n// TODO: 待 vgrammar 补充上后修改回去\ntype GeoJsonFeatureSpec = any;\nexport class Projection {\n projection: any;\n\n constructor(projectionSpec: IProjectionSpec) {\n // TODO: vgrammar 类型问题\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.projection = projection(projectionSpec.type)();\n }\n\n fit(start: number[], size: number[], features: GeoJsonFeatureSpec[]) {\n const fitData = { type: 'FeatureCollection', features };\n this.projection.fitExtent([start, size], fitData);\n }\n\n center(center: [number, number]) {\n this.projection?.center?.(center);\n }\n\n project(point: [number, number]) {\n return this.projection?.(point);\n }\n\n shape(data: GeoJsonFeatureSpec) {\n return this.projection?.path?.(data);\n }\n\n scale(): number;\n scale(scale: number): void;\n scale(scale?: number): number | void {\n if (scale !== undefined) {\n this.projection?.scale?.(scale);\n } else {\n return this.projection?.scale?.() as number;\n }\n }\n\n translate(): [number, number];\n translate(point: [number, number]): void;\n translate(point?: [number, number] | void) {\n if (point !== undefined) {\n this.projection?.translate?.(point);\n } else {\n return this.projection?.translate?.();\n }\n }\n\n evaluate(start: number[], size: number[], features: GeoJsonFeatureSpec[]) {\n const tmp = this.projection.copy();\n return tmp?.fitExtent([start, size], {\n type: 'FeatureCollection',\n features\n });\n }\n}\n"]}
@@ -49,6 +49,13 @@ export declare class Label extends BaseComponent {
49
49
  setLayoutStartPosition(): void;
50
50
  updateLayoutAttribute(): void;
51
51
  compileMarks(): void;
52
+ updateSpec(spec: any): {
53
+ change: boolean;
54
+ reMake: boolean;
55
+ reRender: boolean;
56
+ reSize: boolean;
57
+ reCompile: boolean;
58
+ };
52
59
  onRender(ctx: IModelRenderOption): void;
53
60
  changeRegions(regions: IRegion[]): void;
54
61
  clear(): void;
@@ -150,6 +150,10 @@ class Label extends base_1.BaseComponent {
150
150
  });
151
151
  }));
152
152
  }
153
+ updateSpec(spec) {
154
+ const result = super.updateSpec(spec);
155
+ return result.reRender = !0, result.reMake = !0, result;
156
+ }
153
157
  onRender(ctx) {}
154
158
  changeRegions(regions) {}
155
159
  clear() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/label/label.ts"],"names":[],"mappings":";;;AAAA,kCAAwC;AAGxC,4CAAiD;AAIjD,6CAA+E;AAC/E,oDAAgE;AAEhE,qCAA+C;AAG/C,iCAA4D;AAgB5D,MAAa,KAAM,SAAQ,oBAAa;IActC,YAAY,IAAS,EAAE,OAAyB;QAC9C,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAbvB,SAAI,GAAG,6BAAiB,CAAC,KAAK,CAAC;QAC/B,SAAI,GAAW,6BAAiB,CAAC,KAAK,CAAC;QAEvC,eAAU,GAA6B,UAAU,CAAC;QAClD,iBAAY,GAA+B,uBAAY,CAAC,KAAK,CAAC;QAU5D,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,IAAS,EAAE,OAAyB;QACzD,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QACxC,MAAM,eAAe,GAAG,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC;iBACrB,SAAS,EAAE;iBACX,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;iBACjC,IAAI,EAAE,CAAC;YACV,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,IAAI,CAAC,YAAY,EAAE,0CAAE,OAAO,MAAK,IAAI,CAAA,EAAA,CAAC,CAAC;YAC/E,IAAI,YAAY,EAAE;gBAChB,eAAe,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,kCAAO,OAAO,KAAE,SAAS,EAAE,CAAC,IAAG,CAAC,CAAC;gBACpE,SAAS;aACV;SACF;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,IAAI,CAAC,MAAwB;QAC3B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,SAAS;QACP,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,qBAAU,CAAC,cAAc,EAAE,GAAG,EAAE;YAC5C,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;gBAClD,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC,mBAAmB,EAAE,CAAC;gBACjE,IAAI,WAAW,EAAE;oBACf,WAAW,CAAC,gBAAgB,EAAE,CAAC;iBAChC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,8BAAmB,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,GAAG,EAAE;YAC3B,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;gBAClD,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC,mBAAmB,EAAE,CAAC;gBACjE,IAAI,WAAW,EAAE;oBACf,WAAW,CAAC,eAAe,EAAE,CAAC;iBAC/B;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,8BAAmB,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;QAC7E,CAAC,CAAC;IACJ,CAAC;IAES,aAAa;QACrB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;SAC7B;QAED,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAC;SACrC;QACD,IAAA,iBAAU,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAU,EAAE,EAAE;;YACvC,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;YAE7B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;aACjC;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,MAAA,IAAI,CAAC,YAAY,EAAE,0CAAE,OAAO,EAAE;oBAChC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACzC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,wBAAY,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;oBAC5F,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;oBAC3D,MAAA,CAAC,CAAC,kBAAkB,kDAAG,SAAS,CAAC,CAAC;oBAClC,MAAM,SAAS,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;oBAC3D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBACtB;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAES,mBAAmB;QAC3B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE;YAClD,IAAI,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE;gBACjC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAChC,EAAE,IAAI,EAAE,wBAAY,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,IAAI,kBAAkB,EAAE,EACvF;oBACE,aAAa,EAAE,OAAO;oBACtB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;iBAChC,CACF,CAAC;gBACF,IAAI,SAAS,EAAE;oBACb,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBAC/B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;iBAChF;aACF;iBAAM;gBACL,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;oBAClC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAChC,EAAE,IAAI,EAAE,wBAAY,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,YAAY,EAAE,EAC/E;wBACE,aAAa,EAAE,OAAO;wBACtB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;qBAChC,CACF,CAAC;oBACF,IAAI,SAAS,EAAE;wBACb,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;wBAC/B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;qBAC5E;gBACH,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACS,kBAAkB,CAAC,SAAqB;QAChD,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;QAClC,IAAI,WAAW,KAAK,IAAI,EAAE;YACxB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;SACxC;QACD,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC;QAEvE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC;QAC5D,IAAI,KAAK,KAAK,KAAK,IAAK,KAA+B,CAAC,MAAM,KAAK,KAAK,EAAE;YACxE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;SACrB;QACD,IAAI,MAAM,KAAK,KAAK,IAAK,MAAiC,CAAC,MAAM,KAAK,KAAK,EAAE;YAC3E,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;SACtB;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sBAAsB;IAEtB,CAAC;IAED,qBAAqB;QACnB,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAC9B,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,cAAc,EAAE,EAAE;YACxE,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvD,MAAM,SAAS,GAAG,cAAc,CAAC,UAAU,EAAgC,CAAC;YAC5E,SAAS;iBACN,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;iBAChD,SAAS,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;iBACjC,UAAU,CAAC,IAAI,CAAC,EAAE;;gBACjB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;gBACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC7D,IAAI,QAAQ,EAAE;oBACZ,MAAM,UAAU,GAAG,MAAA,0BAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,mCAAI,0BAAmB,CAAC,MAAM,CAAC;oBACpF,MAAM,SAAS,GAAG,MAAA,QAAQ,CAAC,YAAY,EAAE,mCAAI,EAAE,CAAC;oBAChD,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;oBAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;oBACvD,OAAO,IAAA,YAAK,EACV;wBACE,SAAS,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,WAAW,KAAK,IAAI,EAAE;qBACxD,EACD,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAEnE,WAAW;wBACX,MAAM;wBACN,SAAS;wBACT,OAAO,IACJ,WAAW,EAEjB,CAAC;iBACH;YACH,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBACzB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC7D,OAAO,IAAA,oBAAa,EAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACzF,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,UAAU,EAAgB,CAAC;YAC9F,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACrB,MAAA,CAAC,CAAC,UAAU,EAAE,0CAAE,SAAS,CAAC;gBACxB,OAAO,EAAE;oBACP,KAAK,EAAE,IAAI;iBACZ;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,GAAuB;IAEhC,CAAC;IACD,aAAa,CAAC,OAAkB;IAEhC,CAAC;IAED,KAAK;QACH,KAAK,CAAC,KAAK,EAAE,CAAC;QAEd,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;YAChD,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;gBACrB,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC;aAC7B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AAvNH,sBAwNC;AAvNQ,UAAI,GAAG,6BAAiB,CAAC,KAAK,CAAC","file":"label.js","sourcesContent":["import { BaseComponent } from '../base';\nimport type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface';\nimport type { IRegion } from '../../region/interface';\nimport type { IModelInitOption, IModelRenderOption } from '../../model/interface';\nimport type { LayoutItem } from '../../model/layout-item';\nimport { ChartEvent, LayoutZIndex, VGRAMMAR_HOOK_EVENT } from '../../constant';\nimport { MarkTypeEnum, type IMark } from '../../mark/interface';\nimport type { ITextMark } from '../../mark/text';\nimport { eachSeries, merge } from '../../util';\nimport type { ISeries } from '../../series/interface';\nimport type { IGroupMark, IView } from '@visactor/vgrammar';\nimport { markLabelConfigFunc, textAttribute } from './util';\nimport type { IComponentMark } from '../../mark/component';\nimport type { ILabelSpec } from './interface';\nimport type { IHoverSpec, ISelectSpec } from '../../interaction/interface';\n\nexport interface ILabelInfo {\n baseMark: IMark;\n labelMark: ITextMark;\n series: ISeries;\n}\n\nexport interface ILabelComponentContext {\n region: IRegion;\n labelInfo: ILabelInfo[];\n}\n\nexport class Label extends BaseComponent {\n static type = ComponentTypeEnum.label;\n type = ComponentTypeEnum.label;\n name: string = ComponentTypeEnum.label;\n\n layoutType: LayoutItem['layoutType'] = 'absolute';\n layoutZIndex: LayoutItem['layoutZIndex'] = LayoutZIndex.Label;\n\n protected _labelInfo: Map<IRegion, ILabelInfo[]>;\n\n protected _labelComponentMap: Map<IComponentMark, ILabelComponentContext>;\n\n protected _layoutRule: 'series' | 'region';\n\n constructor(spec: any, options: IComponentOption) {\n super(spec, options);\n this._regions = options.getRegionsInIndex([options.specIndex]);\n this.layoutBindRegionID = this._regions.map(x => x.id);\n this._layoutRule = spec.labelLayout || 'series';\n }\n\n static createComponent(spec: any, options: IComponentOption) {\n const regions = options.getAllRegions();\n const labelComponents = [];\n for (let i = 0; i < regions.length; i++) {\n const marks = regions[i]\n .getSeries()\n .map(s => s.getMarksWithoutRoot())\n .flat();\n const labelVisible = marks.some(mark => mark.getLabelSpec()?.visible === true);\n if (labelVisible) {\n labelComponents.push(new Label(spec, { ...options, specIndex: i }));\n continue;\n }\n }\n return labelComponents;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n this.initEvent();\n\n this._initTextMark();\n this._initLabelComponent();\n }\n\n initEvent() {\n this.event.on(ChartEvent.dataZoomChange, () => {\n this._labelComponentMap.forEach((info, component) => {\n const graphicItem = component.getProduct().getGroupGraphicItem();\n if (graphicItem) {\n graphicItem.disableAnimation();\n }\n });\n this.event.on(VGRAMMAR_HOOK_EVENT.AFTER_MARK_RENDER_END, enableAnimation);\n });\n const enableAnimation = () => {\n this._labelComponentMap.forEach((info, component) => {\n const graphicItem = component.getProduct().getGroupGraphicItem();\n if (graphicItem) {\n graphicItem.enableAnimation();\n }\n });\n this.event.off(VGRAMMAR_HOOK_EVENT.AFTER_MARK_RENDER_END, enableAnimation);\n };\n }\n\n protected _initTextMark() {\n if (!this._labelInfo) {\n this._labelInfo = new Map();\n }\n\n if (!this._labelComponentMap) {\n this._labelComponentMap = new Map();\n }\n eachSeries(this._regions, (s: ISeries) => {\n const marks = s.getMarks();\n const region = s.getRegion();\n\n if (!this._labelInfo.get(region)) {\n this._labelInfo.set(region, []);\n }\n for (let i = 0; i < marks.length; i++) {\n const mark = marks[i];\n if (mark.getLabelSpec()?.visible) {\n const info = this._labelInfo.get(region);\n const labelMark = this._createMark({ type: MarkTypeEnum.text, name: `${mark.name}-label` });\n this.initMarkStyleWithSpec(labelMark, mark.getLabelSpec());\n s.initLabelMarkStyle?.(labelMark);\n const labelInfo = { labelMark, baseMark: mark, series: s };\n info.push(labelInfo);\n }\n }\n });\n }\n\n protected _initLabelComponent() {\n this._labelInfo.forEach((regionLabelInfo, region) => {\n if (this._layoutRule === 'region') {\n const component = this._createMark(\n { type: MarkTypeEnum.component, name: `${region.getGroupMark().name}-label-component` },\n {\n componentType: 'label',\n support3d: this._spec.support3d\n }\n );\n if (component) {\n this._marks.addMark(component);\n this._labelComponentMap.set(component, { region, labelInfo: regionLabelInfo });\n }\n } else {\n regionLabelInfo.forEach(labelInfo => {\n const component = this._createMark(\n { type: MarkTypeEnum.component, name: `${labelInfo.labelMark.name}-component` },\n {\n componentType: 'label',\n support3d: this._spec.support3d\n }\n );\n if (component) {\n this._marks.addMark(component);\n this._labelComponentMap.set(component, { region, labelInfo: [labelInfo] });\n }\n });\n }\n });\n }\n protected _interactiveConfig(labelSpec: ILabelSpec) {\n const { interactive } = labelSpec;\n if (interactive !== true) {\n return { hover: false, select: false };\n }\n const result = { hover: false, select: false, state: labelSpec.state };\n\n const { hover, select } = this._option.getChart().getSpec();\n if (hover !== false || (hover as unknown as IHoverSpec).enable !== false) {\n result.hover = true;\n }\n if (select !== false || (select as unknown as ISelectSpec).enable !== false) {\n result.select = true;\n }\n return result;\n }\n\n setLayoutStartPosition() {\n // do nothing\n }\n\n updateLayoutAttribute(): void {\n super.updateLayoutAttribute();\n this._labelComponentMap.forEach(({ region, labelInfo }, labelComponent) => {\n const baseMarks = labelInfo.map(info => info.baseMark);\n const component = labelComponent.getProduct() as ReturnType<IView['label']>;\n component\n .target(baseMarks.map(mark => mark.getProduct()))\n .configure({ interactive: false })\n .labelStyle(mark => {\n const markId = mark.context.markId;\n const baseMark = this._option.getChart().getMarkById(markId);\n if (baseMark) {\n const configFunc = markLabelConfigFunc[baseMark.type] ?? markLabelConfigFunc.symbol;\n const labelSpec = baseMark.getLabelSpec() ?? {};\n const { smartInvert, offset, overlap, animation } = labelSpec;\n const interactive = this._interactiveConfig(labelSpec);\n return merge(\n {\n textStyle: { pickable: labelSpec.interactive === true }\n },\n configFunc(labelInfo[baseMarks.findIndex(mark => mark === baseMark)]),\n {\n smartInvert,\n offset,\n animation,\n overlap,\n ...interactive\n }\n );\n }\n })\n .encode((datum, element) => {\n const markId = element.mark.context.markId;\n const baseMark = this._option.getChart().getMarkById(markId);\n return textAttribute(labelInfo[baseMarks.findIndex(mark => mark === baseMark)], datum);\n })\n .size(() => region.getLayoutRect());\n });\n }\n\n compileMarks() {\n this.getMarks().forEach(m => {\n const group = this._labelComponentMap.get(m).region.getGroupMark().getProduct() as IGroupMark;\n m.compile({ group });\n m.getProduct()?.configure({\n context: {\n model: this\n }\n });\n });\n }\n\n onRender(ctx: IModelRenderOption): void {\n // do nothing\n }\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n clear(): void {\n super.clear();\n\n this._labelComponentMap.forEach((context, mark) => {\n if (mark.getProduct()) {\n mark.getProduct().release();\n }\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/label/label.ts"],"names":[],"mappings":"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","file":"label.js","sourcesContent":["import { BaseComponent } from '../base';\nimport type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface';\nimport type { IRegion } from '../../region/interface';\nimport type { IModelInitOption, IModelRenderOption } from '../../model/interface';\nimport type { LayoutItem } from '../../model/layout-item';\nimport { ChartEvent, LayoutZIndex, VGRAMMAR_HOOK_EVENT } from '../../constant';\nimport { MarkTypeEnum, type IMark } from '../../mark/interface';\nimport type { ITextMark } from '../../mark/text';\nimport { eachSeries, merge } from '../../util';\nimport type { ISeries } from '../../series/interface';\nimport type { IGroupMark, IView } from '@visactor/vgrammar';\nimport { markLabelConfigFunc, textAttribute } from './util';\nimport type { IComponentMark } from '../../mark/component';\nimport type { ILabelSpec } from './interface';\nimport type { IHoverSpec, ISelectSpec } from '../../interaction/interface';\n\nexport interface ILabelInfo {\n baseMark: IMark;\n labelMark: ITextMark;\n series: ISeries;\n}\n\nexport interface ILabelComponentContext {\n region: IRegion;\n labelInfo: ILabelInfo[];\n}\n\nexport class Label extends BaseComponent {\n static type = ComponentTypeEnum.label;\n type = ComponentTypeEnum.label;\n name: string = ComponentTypeEnum.label;\n\n layoutType: LayoutItem['layoutType'] = 'absolute';\n layoutZIndex: LayoutItem['layoutZIndex'] = LayoutZIndex.Label;\n\n protected _labelInfo: Map<IRegion, ILabelInfo[]>;\n\n protected _labelComponentMap: Map<IComponentMark, ILabelComponentContext>;\n\n protected _layoutRule: 'series' | 'region';\n\n constructor(spec: any, options: IComponentOption) {\n super(spec, options);\n this._regions = options.getRegionsInIndex([options.specIndex]);\n this.layoutBindRegionID = this._regions.map(x => x.id);\n this._layoutRule = spec.labelLayout || 'series';\n }\n\n static createComponent(spec: any, options: IComponentOption) {\n const regions = options.getAllRegions();\n const labelComponents = [];\n for (let i = 0; i < regions.length; i++) {\n const marks = regions[i]\n .getSeries()\n .map(s => s.getMarksWithoutRoot())\n .flat();\n const labelVisible = marks.some(mark => mark.getLabelSpec()?.visible === true);\n if (labelVisible) {\n labelComponents.push(new Label(spec, { ...options, specIndex: i }));\n continue;\n }\n }\n return labelComponents;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n this.initEvent();\n\n this._initTextMark();\n this._initLabelComponent();\n }\n\n initEvent() {\n this.event.on(ChartEvent.dataZoomChange, () => {\n this._labelComponentMap.forEach((info, component) => {\n const graphicItem = component.getProduct().getGroupGraphicItem();\n if (graphicItem) {\n graphicItem.disableAnimation();\n }\n });\n this.event.on(VGRAMMAR_HOOK_EVENT.AFTER_MARK_RENDER_END, enableAnimation);\n });\n const enableAnimation = () => {\n this._labelComponentMap.forEach((info, component) => {\n const graphicItem = component.getProduct().getGroupGraphicItem();\n if (graphicItem) {\n graphicItem.enableAnimation();\n }\n });\n this.event.off(VGRAMMAR_HOOK_EVENT.AFTER_MARK_RENDER_END, enableAnimation);\n };\n }\n\n protected _initTextMark() {\n if (!this._labelInfo) {\n this._labelInfo = new Map();\n }\n\n if (!this._labelComponentMap) {\n this._labelComponentMap = new Map();\n }\n eachSeries(this._regions, (s: ISeries) => {\n const marks = s.getMarks();\n const region = s.getRegion();\n\n if (!this._labelInfo.get(region)) {\n this._labelInfo.set(region, []);\n }\n for (let i = 0; i < marks.length; i++) {\n const mark = marks[i];\n if (mark.getLabelSpec()?.visible) {\n const info = this._labelInfo.get(region);\n const labelMark = this._createMark({ type: MarkTypeEnum.text, name: `${mark.name}-label` });\n this.initMarkStyleWithSpec(labelMark, mark.getLabelSpec());\n s.initLabelMarkStyle?.(labelMark);\n const labelInfo = { labelMark, baseMark: mark, series: s };\n info.push(labelInfo);\n }\n }\n });\n }\n\n protected _initLabelComponent() {\n this._labelInfo.forEach((regionLabelInfo, region) => {\n if (this._layoutRule === 'region') {\n const component = this._createMark(\n { type: MarkTypeEnum.component, name: `${region.getGroupMark().name}-label-component` },\n {\n componentType: 'label',\n support3d: this._spec.support3d\n }\n );\n if (component) {\n this._marks.addMark(component);\n this._labelComponentMap.set(component, { region, labelInfo: regionLabelInfo });\n }\n } else {\n regionLabelInfo.forEach(labelInfo => {\n const component = this._createMark(\n { type: MarkTypeEnum.component, name: `${labelInfo.labelMark.name}-component` },\n {\n componentType: 'label',\n support3d: this._spec.support3d\n }\n );\n if (component) {\n this._marks.addMark(component);\n this._labelComponentMap.set(component, { region, labelInfo: [labelInfo] });\n }\n });\n }\n });\n }\n protected _interactiveConfig(labelSpec: ILabelSpec) {\n const { interactive } = labelSpec;\n if (interactive !== true) {\n return { hover: false, select: false };\n }\n const result = { hover: false, select: false, state: labelSpec.state };\n\n const { hover, select } = this._option.getChart().getSpec();\n if (hover !== false || (hover as unknown as IHoverSpec).enable !== false) {\n result.hover = true;\n }\n if (select !== false || (select as unknown as ISelectSpec).enable !== false) {\n result.select = true;\n }\n return result;\n }\n\n setLayoutStartPosition() {\n // do nothing\n }\n\n updateLayoutAttribute(): void {\n super.updateLayoutAttribute();\n this._labelComponentMap.forEach(({ region, labelInfo }, labelComponent) => {\n const baseMarks = labelInfo.map(info => info.baseMark);\n const component = labelComponent.getProduct() as ReturnType<IView['label']>;\n component\n .target(baseMarks.map(mark => mark.getProduct()))\n .configure({ interactive: false })\n .labelStyle(mark => {\n const markId = mark.context.markId;\n const baseMark = this._option.getChart().getMarkById(markId);\n if (baseMark) {\n const configFunc = markLabelConfigFunc[baseMark.type] ?? markLabelConfigFunc.symbol;\n const labelSpec = baseMark.getLabelSpec() ?? {};\n const { smartInvert, offset, overlap, animation } = labelSpec;\n const interactive = this._interactiveConfig(labelSpec);\n return merge(\n {\n textStyle: { pickable: labelSpec.interactive === true }\n },\n configFunc(labelInfo[baseMarks.findIndex(mark => mark === baseMark)]),\n {\n smartInvert,\n offset,\n animation,\n overlap,\n ...interactive\n }\n );\n }\n })\n .encode((datum, element) => {\n const markId = element.mark.context.markId;\n const baseMark = this._option.getChart().getMarkById(markId);\n return textAttribute(labelInfo[baseMarks.findIndex(mark => mark === baseMark)], datum);\n })\n .size(() => region.getLayoutRect());\n });\n }\n\n compileMarks() {\n this.getMarks().forEach(m => {\n const group = this._labelComponentMap.get(m).region.getGroupMark().getProduct() as IGroupMark;\n m.compile({ group });\n m.getProduct()?.configure({\n context: {\n model: this\n }\n });\n });\n }\n\n /** Update API **/\n updateSpec(spec: any) {\n const result = super.updateSpec(spec);\n result.reRender = true;\n result.reMake = true;\n return result;\n }\n\n onRender(ctx: IModelRenderOption): void {\n // do nothing\n }\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n clear(): void {\n super.clear();\n\n this._labelComponentMap.forEach((context, mark) => {\n if (mark.getProduct()) {\n mark.getProduct().release();\n }\n });\n }\n}\n"]}
@@ -87,7 +87,7 @@ class BaseMarker extends base_1.BaseComponent {
87
87
  if (s) return s;
88
88
  }
89
89
  }
90
- throw new Error("need at least one series");
90
+ return this._option.onError("need at least one series"), null;
91
91
  }
92
92
  clear() {
93
93
  this._markerComponent && (this._container.removeChild(this._markerComponent), this._markerComponent = null),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/marker/base-marker.ts"],"names":[],"mappings":"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","file":"base-marker.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport { array, merge } from '@visactor/vutils';\nimport { AGGR_TYPE } from '../../constant/marker';\nimport type { IOptionAggr } from '../../data/transforms/aggregation';\nimport type { IOptionRegr } from '../../data/transforms/regression';\nimport type { IModelRenderOption } from '../../model/interface';\nimport type { LayoutItem } from '../../model/layout-item';\nimport type { IRegion } from '../../region/interface';\nimport type { ICartesianSeries } from '../../series/interface';\nimport type { StringOrNumber } from '../../typings';\nimport { BaseComponent } from '../base';\nimport type { IAggrType, IDataPointSpec, IDataPos } from './interface';\nimport type { IRegressType } from './mark-area/interface';\nimport type { INode } from '@visactor/vrender';\n\nexport abstract class BaseMarker extends BaseComponent {\n layoutType: LayoutItem['layoutType'] = 'absolute';\n\n protected _startRelativeSeries!: ICartesianSeries;\n protected _endRelativeSeries!: ICartesianSeries;\n protected _relativeSeries!: ICartesianSeries;\n\n // marker 组件数据\n protected _markerData!: DataView;\n // marker 组件\n protected _markerComponent!: any;\n\n created() {\n super.created();\n // event\n this.initEvent();\n this._bindSeries();\n this._initDataView();\n }\n\n private _isSpecAggrOrRege(spec: IDataPos) {\n return spec === 'regression' || AGGR_TYPE.includes(spec as any);\n }\n\n protected _processSpecX(specX: IDataPos) {\n const relativeSeries = this._relativeSeries;\n let processType: IAggrType | IRegressType;\n if (this._isSpecAggrOrRege(specX)) {\n processType = specX as unknown as IAggrType;\n return {\n x: {\n field: relativeSeries.getSpec().xField,\n aggrType: processType\n }\n };\n }\n return { x: specX };\n }\n\n protected _processSpecY(specY: IDataPos) {\n const relativeSeries = this._relativeSeries;\n let processType: IAggrType | IRegressType;\n if (this._isSpecAggrOrRege(specY)) {\n processType = specY as unknown as IAggrType;\n return {\n y: {\n field: relativeSeries.getSpec().yField,\n aggrType: processType\n }\n };\n }\n return { y: specY };\n }\n\n protected _processSpecCoo(spec: any) {\n const coordinates = spec.coordinates ?? array(spec.coordinate);\n return coordinates.map((coordinate: IDataPointSpec) => {\n const refRelativeSeries = this._getSeriesByIdOrIndex(\n coordinate.refRelativeSeriesId,\n coordinate.refRelativeSeriesIndex\n );\n\n const { xField, yField } = refRelativeSeries.getSpec();\n const { [xField]: coordinateX, [yField]: coordinateY } = coordinate;\n const option: IOptionAggr | IOptionRegr = { x: null, y: null };\n if (this._isSpecAggrOrRege(coordinateX)) {\n option.x = { field: xField, aggrType: coordinateX as IAggrType };\n } else {\n option.x = coordinateX;\n }\n\n if (this._isSpecAggrOrRege(coordinateY)) {\n option.y = { field: yField, aggrType: coordinateY as IAggrType };\n } else {\n option.y = coordinateY;\n }\n option.getRefRelativeSeries = () => refRelativeSeries;\n return option;\n });\n }\n\n updateLayoutAttribute(): void {\n const markerVisible = this._spec.visible ?? true;\n if (markerVisible) {\n // 创建marker组件\n if (!this._markerComponent) {\n this._createMarkerComponent();\n // 代理 marker 组件上的事件\n this._markerComponent.on('*', (event: any, type: string) =>\n this._delegateEvent(this._markerComponent as unknown as INode, event, type)\n );\n }\n this._markerLayout();\n }\n\n super.updateLayoutAttribute();\n }\n\n protected _getSeriesByIdOrIndex(seriesUserId: StringOrNumber, seriesIndex: number) {\n let series: ICartesianSeries;\n series = this._option.getSeriesInUserIdOrIndex(array(seriesUserId), [seriesIndex])?.[0] as ICartesianSeries;\n if (!series) {\n series = this._relativeSeries ?? this.getFirstSeries();\n }\n return series;\n }\n\n protected _bindSeries() {\n const spec = this._spec;\n this._relativeSeries = this._getSeriesByIdOrIndex(spec.relativeSeriesId, spec.relativeSeriesIndex);\n this._startRelativeSeries = this._getSeriesByIdOrIndex(spec.startRelativeSeriesId, spec.startRelativeSeriesIndex);\n this._endRelativeSeries = this._getSeriesByIdOrIndex(spec.endRelativeSeriesId, spec.endRelativeSeriesIndex);\n }\n\n protected abstract _initDataView(): void;\n protected abstract _createMarkerComponent(): void;\n protected abstract _markerLayout(): void;\n\n protected initEvent() {\n // do nothing\n }\n onRender(ctx: IModelRenderOption): void {\n // do nothing\n }\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n protected getFirstSeries(): ICartesianSeries {\n for (let i = 0; i < this._regions.length; i++) {\n const r = this._regions[i];\n const series = r.getSeries();\n for (let j = 0; j < series.length; j++) {\n const s = series[j];\n if (s) {\n return s as ICartesianSeries;\n }\n }\n }\n throw new Error('need at least one series');\n }\n\n clear(): void {\n if (this._markerComponent) {\n this._container.removeChild(this._markerComponent as unknown as INode);\n this._markerComponent = null;\n }\n super.clear();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/marker/base-marker.ts"],"names":[],"mappings":"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","file":"base-marker.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport { array } from '@visactor/vutils';\nimport { AGGR_TYPE } from '../../constant/marker';\nimport type { IOptionAggr } from '../../data/transforms/aggregation';\nimport type { IOptionRegr } from '../../data/transforms/regression';\nimport type { IModelRenderOption } from '../../model/interface';\nimport type { LayoutItem } from '../../model/layout-item';\nimport type { IRegion } from '../../region/interface';\nimport type { ICartesianSeries } from '../../series/interface';\nimport type { StringOrNumber } from '../../typings';\nimport { BaseComponent } from '../base';\nimport type { IAggrType, IDataPointSpec, IDataPos } from './interface';\nimport type { IRegressType } from './mark-area/interface';\nimport type { INode } from '@visactor/vrender';\n\nexport abstract class BaseMarker extends BaseComponent {\n layoutType: LayoutItem['layoutType'] = 'absolute';\n\n protected _startRelativeSeries!: ICartesianSeries;\n protected _endRelativeSeries!: ICartesianSeries;\n protected _relativeSeries!: ICartesianSeries;\n\n // marker 组件数据\n protected _markerData!: DataView;\n // marker 组件\n protected _markerComponent!: any;\n\n created() {\n super.created();\n // event\n this.initEvent();\n this._bindSeries();\n this._initDataView();\n }\n\n private _isSpecAggrOrRege(spec: IDataPos) {\n return spec === 'regression' || AGGR_TYPE.includes(spec as any);\n }\n\n protected _processSpecX(specX: IDataPos) {\n const relativeSeries = this._relativeSeries;\n let processType: IAggrType | IRegressType;\n if (this._isSpecAggrOrRege(specX)) {\n processType = specX as unknown as IAggrType;\n return {\n x: {\n field: relativeSeries.getSpec().xField,\n aggrType: processType\n }\n };\n }\n return { x: specX };\n }\n\n protected _processSpecY(specY: IDataPos) {\n const relativeSeries = this._relativeSeries;\n let processType: IAggrType | IRegressType;\n if (this._isSpecAggrOrRege(specY)) {\n processType = specY as unknown as IAggrType;\n return {\n y: {\n field: relativeSeries.getSpec().yField,\n aggrType: processType\n }\n };\n }\n return { y: specY };\n }\n\n protected _processSpecCoo(spec: any) {\n const coordinates = spec.coordinates ?? array(spec.coordinate);\n return coordinates.map((coordinate: IDataPointSpec) => {\n const refRelativeSeries = this._getSeriesByIdOrIndex(\n coordinate.refRelativeSeriesId,\n coordinate.refRelativeSeriesIndex\n );\n\n const { xField, yField } = refRelativeSeries.getSpec();\n const { [xField]: coordinateX, [yField]: coordinateY } = coordinate;\n const option: IOptionAggr | IOptionRegr = { x: null, y: null };\n if (this._isSpecAggrOrRege(coordinateX)) {\n option.x = { field: xField, aggrType: coordinateX as IAggrType };\n } else {\n option.x = coordinateX;\n }\n\n if (this._isSpecAggrOrRege(coordinateY)) {\n option.y = { field: yField, aggrType: coordinateY as IAggrType };\n } else {\n option.y = coordinateY;\n }\n option.getRefRelativeSeries = () => refRelativeSeries;\n return option;\n });\n }\n\n updateLayoutAttribute(): void {\n const markerVisible = this._spec.visible ?? true;\n if (markerVisible) {\n // 创建marker组件\n if (!this._markerComponent) {\n this._createMarkerComponent();\n // 代理 marker 组件上的事件\n this._markerComponent.on('*', (event: any, type: string) =>\n this._delegateEvent(this._markerComponent as unknown as INode, event, type)\n );\n }\n this._markerLayout();\n }\n\n super.updateLayoutAttribute();\n }\n\n protected _getSeriesByIdOrIndex(seriesUserId: StringOrNumber, seriesIndex: number) {\n let series: ICartesianSeries;\n series = this._option.getSeriesInUserIdOrIndex(array(seriesUserId), [seriesIndex])?.[0] as ICartesianSeries;\n if (!series) {\n series = this._relativeSeries ?? this.getFirstSeries();\n }\n return series;\n }\n\n protected _bindSeries() {\n const spec = this._spec;\n this._relativeSeries = this._getSeriesByIdOrIndex(spec.relativeSeriesId, spec.relativeSeriesIndex);\n this._startRelativeSeries = this._getSeriesByIdOrIndex(spec.startRelativeSeriesId, spec.startRelativeSeriesIndex);\n this._endRelativeSeries = this._getSeriesByIdOrIndex(spec.endRelativeSeriesId, spec.endRelativeSeriesIndex);\n }\n\n protected abstract _initDataView(): void;\n protected abstract _createMarkerComponent(): void;\n protected abstract _markerLayout(): void;\n\n protected initEvent() {\n // do nothing\n }\n onRender(ctx: IModelRenderOption): void {\n // do nothing\n }\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n protected getFirstSeries(): ICartesianSeries {\n for (let i = 0; i < this._regions.length; i++) {\n const r = this._regions[i];\n const series = r.getSeries();\n for (let j = 0; j < series.length; j++) {\n const s = series[j];\n if (s) {\n return s as ICartesianSeries;\n }\n }\n }\n this._option.onError('need at least one series');\n return null;\n }\n\n clear(): void {\n if (this._markerComponent) {\n this._container.removeChild(this._markerComponent as unknown as INode);\n this._markerComponent = null;\n }\n super.clear();\n }\n}\n"]}
@@ -50,9 +50,9 @@ export interface IMarkerSpec extends IModelSpec {
50
50
  interactive?: boolean;
51
51
  autoRange?: boolean;
52
52
  }
53
- export type IMarkerSymbol = {
53
+ export interface IMarkerSymbol extends IMarkerRef {
54
54
  visible: boolean;
55
55
  symbolType?: SymbolType;
56
56
  size?: number;
57
57
  style?: Omit<ISymbolMarkSpec, 'visible'>;
58
- } & IMarkerRef;
58
+ }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/marker/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IPadding, IPointLike } from '@visactor/vutils';\nimport type { SymbolType } from '@visactor/vrender';\nimport type { IModelSpec } from '../../model/interface';\nimport type { IRectMarkSpec, ISymbolMarkSpec, ITextMarkSpec, StringOrNumber } from '../../typings';\n\nexport type IAggrType = 'sum' | 'average' | 'min' | 'max' | 'variance' | 'standardDeviation' | 'median';\nexport type IDataPos = string | number | IAggrType;\nexport type IDataPointSpec = {\n [key: string]: IDataPos;\n /**\n * 具体某个数据元素关联的series(仅在标注目标:数据元素下有效)\n */\n refRelativeSeriesIndex?: number;\n refRelativeSeriesId?: StringOrNumber;\n};\nexport type IMarkerPositionsSpec = {\n positions: IPointLike[];\n};\n\nexport type IMarkerLabelSpec = {\n visible?: boolean;\n /**\n * label整体 - 是否自动旋转\n */\n autoRotate?: boolean;\n /**\n * label整体 - 最小宽度,像素值\n * @default 30\n */\n minWidth?: number;\n /**\n * label整体 - 最大宽度,像素值。当文字超过最大宽度时,会自动省略。\n */\n maxWidth?: number;\n /**\n * label整体 - 背景面板配置\n */\n labelBackground?: {\n visible?: boolean;\n /**\n * 内部边距\n */\n padding?: IPadding;\n style: Omit<IRectMarkSpec, 'visible'>;\n };\n /**\n * label文本 - 文本内容,如果需要进行换行,则使用数组形式,如 ['abc', '123']\n */\n text?: string;\n /**\n * label文本 - 文本格式化\n */\n formatMethod?: (text: string | string[], datum?: any) => string | string[];\n /**\n * label文本 - 文本样式\n */\n style?: Omit<ITextMarkSpec, 'visible'>;\n\n /**\n * label文本 - 文本前 mark 图元\n */\n shape?: {\n visible?: boolean;\n style: Omit<ISymbolMarkSpec, 'visible'>;\n };\n /**\n * label文本 - shape 同文本之间的间距\n */\n space?: number;\n} & IMarkerRef;\n\nexport interface IMarkerRef {\n /**\n * label or symbol 相对line平行方向上的偏移\n */\n refX?: number;\n /**\n * label or symbol 相对line正交方向上的偏移\n */\n refY?: number;\n /**\n * label or symbol 相对默认角度的偏移 (label跟随line的角度做自动旋转时,默认按照line的平行向量作为初始角度)\n */\n refAngle?: number;\n}\n\nexport interface IMarkerAxisSpec {\n /**\n * 起点和终点关联的series(仅在标注目标:坐标空间下有效)\n */\n startRelativeSeriesIndex?: number;\n endRelativeSeriesIndex?: number;\n startRelativeSeriesId?: string;\n endRelativeSeriesId?: string;\n /**\n * 被标注数据关联的series\n */\n relativeRelativeSeriesIndex?: number;\n}\n\nexport interface IMarkerSpec extends IModelSpec {\n /**\n * 标注数据关联的series\n */\n relativeSeriesIndex?: number;\n relativeSeriesId?: number;\n /**\n * marker组件是否可见\n * @default true\n */\n visible?: boolean;\n /**\n * marker组件是否可交互\n * @default false\n */\n interactive?: boolean;\n /**\n * marker组件是否自动拓展轴范围\n * @default false\n */\n autoRange?: boolean;\n}\n\nexport type IMarkerSymbol = {\n /** 是否展示 symbol */\n visible: boolean;\n /**\n * symbol 形状,默认为带左右方向的箭头\n */\n symbolType?: SymbolType;\n /**\n * symbol 大小\n */\n size?: number;\n style?: Omit<ISymbolMarkSpec, 'visible'>;\n} & IMarkerRef;\n"]}
1
+ {"version":3,"sources":["../src/component/marker/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IPadding, IPointLike } from '@visactor/vutils';\nimport type { SymbolType } from '@visactor/vrender';\nimport type { IModelSpec } from '../../model/interface';\nimport type { IRectMarkSpec, ISymbolMarkSpec, ITextMarkSpec, StringOrNumber } from '../../typings';\n\nexport type IAggrType = 'sum' | 'average' | 'min' | 'max' | 'variance' | 'standardDeviation' | 'median';\nexport type IDataPos = string | number | IAggrType;\nexport type IDataPointSpec = {\n [key: string]: IDataPos;\n /**\n * 具体某个数据元素关联的series(仅在标注目标:数据元素下有效)\n */\n refRelativeSeriesIndex?: number;\n refRelativeSeriesId?: StringOrNumber;\n};\nexport type IMarkerPositionsSpec = {\n positions: IPointLike[];\n};\n\nexport type IMarkerLabelSpec = {\n visible?: boolean;\n /**\n * label整体 - 是否自动旋转\n */\n autoRotate?: boolean;\n /**\n * label整体 - 最小宽度,像素值\n * @default 30\n */\n minWidth?: number;\n /**\n * label整体 - 最大宽度,像素值。当文字超过最大宽度时,会自动省略。\n */\n maxWidth?: number;\n /**\n * label整体 - 背景面板配置\n */\n labelBackground?: {\n visible?: boolean;\n /**\n * 内部边距\n */\n padding?: IPadding;\n style: Omit<IRectMarkSpec, 'visible'>;\n };\n /**\n * label文本 - 文本内容,如果需要进行换行,则使用数组形式,如 ['abc', '123']\n */\n text?: string;\n /**\n * label文本 - 文本格式化\n */\n formatMethod?: (text: string | string[], datum?: any) => string | string[];\n /**\n * label文本 - 文本样式\n */\n style?: Omit<ITextMarkSpec, 'visible'>;\n\n /**\n * label文本 - 文本前 mark 图元\n */\n shape?: {\n visible?: boolean;\n style: Omit<ISymbolMarkSpec, 'visible'>;\n };\n /**\n * label文本 - shape 同文本之间的间距\n */\n space?: number;\n} & IMarkerRef;\n\nexport interface IMarkerRef {\n /**\n * label or symbol 相对line平行方向上的偏移\n */\n refX?: number;\n /**\n * label or symbol 相对line正交方向上的偏移\n */\n refY?: number;\n /**\n * label or symbol 相对默认角度的偏移 (label跟随line的角度做自动旋转时,默认按照line的平行向量作为初始角度)\n */\n refAngle?: number;\n}\n\nexport interface IMarkerAxisSpec {\n /**\n * 起点和终点关联的series(仅在标注目标:坐标空间下有效)\n */\n startRelativeSeriesIndex?: number;\n endRelativeSeriesIndex?: number;\n startRelativeSeriesId?: string;\n endRelativeSeriesId?: string;\n /**\n * 被标注数据关联的series\n */\n relativeRelativeSeriesIndex?: number;\n}\n\nexport interface IMarkerSpec extends IModelSpec {\n /**\n * 标注数据关联的series\n */\n relativeSeriesIndex?: number;\n relativeSeriesId?: number;\n /**\n * marker组件是否可见\n * @default true\n */\n visible?: boolean;\n /**\n * marker组件是否可交互\n * @default false\n */\n interactive?: boolean;\n /**\n * marker组件是否自动拓展轴范围\n * @default false\n * @since 1.1.0\n */\n autoRange?: boolean;\n}\n\nexport interface IMarkerSymbol extends IMarkerRef {\n /** 是否展示 symbol */\n visible: boolean;\n /**\n * symbol 形状,默认为带左右方向的箭头\n */\n symbolType?: SymbolType;\n /**\n * symbol 大小\n */\n size?: number;\n style?: Omit<ISymbolMarkSpec, 'visible'>;\n}\n"]}
@@ -3,6 +3,8 @@ export declare const BASE_EVENTS: string[];
3
3
  export declare enum ChartEvent {
4
4
  initialized = "initialized",
5
5
  rendered = "rendered",
6
+ renderFinished = "renderFinished",
7
+ animationFinished = "animationFinished",
6
8
  regionSeriesDataFilterOver = "regionSeriesDataFilterOver",
7
9
  afterInitData = "afterInitData",
8
10
  afterInitEvent = "afterInitEvent",
@@ -13,7 +13,8 @@ Object.defineProperty(exports, "VGRAMMAR_HOOK_EVENT", {
13
13
  }
14
14
  }), exports.BASE_EVENTS = [ "pointerdown", "pointerup", "pointerupoutside", "pointertap", "pointerover", "pointermove", "pointerenter", "pointerleave", "pointerout", "mousedown", "mouseup", "mouseupoutside", "rightdown", "rightup", "rightupoutside", "click", "dblclick", "mousemove", "mouseover", "mouseout", "mouseenter", "mouseleave", "wheel", "touchstart", "touchend", "touchendoutside", "touchmove", "touchcancel", "tap", "dragstart", "drag", "dragenter", "dragleave", "dragover", "dragend", "drop", "pan", "panstart", "panend", "press", "pressup", "pressend", "pinch", "pinchstart", "pinchend", "swipe" ],
15
15
  function(ChartEvent) {
16
- ChartEvent.initialized = "initialized", ChartEvent.rendered = "rendered", ChartEvent.regionSeriesDataFilterOver = "regionSeriesDataFilterOver",
16
+ ChartEvent.initialized = "initialized", ChartEvent.rendered = "rendered", ChartEvent.renderFinished = "renderFinished",
17
+ ChartEvent.animationFinished = "animationFinished", ChartEvent.regionSeriesDataFilterOver = "regionSeriesDataFilterOver",
17
18
  ChartEvent.afterInitData = "afterInitData", ChartEvent.afterInitEvent = "afterInitEvent",
18
19
  ChartEvent.afterInitMark = "afterInitMark", ChartEvent.rawDataUpdate = "rawDataUpdate",
19
20
  ChartEvent.rawDataStatisticsUpdate = "rawDataStatisticsUpdate", ChartEvent.viewDataFilterOver = "viewDataFilterOver",
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constant/event.ts"],"names":[],"mappings":";;;AAAA,+CAAuE;AAA9D,+GAAA,UAAU,OAAuB;AAE7B,QAAA,WAAW,GAAG;IACzB,aAAa;IACb,WAAW;IACX,kBAAkB;IAClB,YAAY;IACZ,aAAa;IACb,aAAa;IACb,cAAc;IACd,cAAc;IACd,YAAY;IACZ,WAAW;IACX,SAAS;IACT,gBAAgB;IAChB,WAAW;IACX,SAAS;IACT,gBAAgB;IAChB,OAAO;IACP,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,OAAO;IACP,YAAY;IACZ,UAAU;IACV,iBAAiB;IACjB,WAAW;IACX,aAAa;IACb,KAAK;IACL,WAAW;IACX,MAAM;IACN,WAAW;IACX,WAAW;IACX,UAAU;IACV,SAAS;IACT,MAAM;IAEN,KAAK;IACL,UAAU;IACV,QAAQ;IACR,OAAO;IACP,SAAS;IACT,UAAU;IACV,OAAO;IACP,YAAY;IACZ,UAAU;IACV,OAAO;CACR,CAAC;AAEF,IAAY,UAkDX;AAlDD,WAAY,UAAU;IACpB,yCAA2B,CAAA;IAC3B,mCAAqB,CAAA;IAErB,uEAAyD,CAAA;IAGzD,6CAA+B,CAAA;IAC/B,+CAAiC,CAAA;IACjC,6CAA+B,CAAA;IAE/B,6CAA+B,CAAA;IAC/B,iEAAmD,CAAA;IACnD,uDAAyC,CAAA;IACzC,+CAAiC,CAAA;IACjC,mEAAqD,CAAA;IAErD,mDAAqC,CAAA;IAErC,yDAA2C,CAAA;IAG3C,qDAAuC,CAAA;IACvC,yCAA2B,CAAA;IAE3B,+CAAiC,CAAA;IAEjC,6BAAe,CAAA;IACf,yCAA2B,CAAA;IAC3B,qCAAuB,CAAA;IAGvB,uCAAyB,CAAA;IACzB,yCAA2B,CAAA;IAC3B,qCAAuB,CAAA;IACvB,2CAA6B,CAAA;IAC7B,6CAA+B,CAAA;IAC/B,+CAAiC,CAAA;IAEjC,iDAAmC,CAAA;IAEnC,uCAAyB,CAAA;IACzB,yCAA2B,CAAA;IAC3B,mCAAqB,CAAA;IAErB,mEAAqD,CAAA;IACrD,2CAA6B,CAAA;IAC7B,iDAAmC,CAAA;IACnC,iDAAmC,CAAA;IACnC,qDAAuC,CAAA;AACzC,CAAC,EAlDW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAkDrB;AAED,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,oCAAe,CAAA;IACf,sCAAiB,CAAA;AACnB,CAAC,EAHW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAG5B;AAED,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,uCAAiB,CAAA;IACjB,qCAAe,CAAA;IACf,qCAAe,CAAA;IACf,mCAAa,CAAA;AACf,CAAC,EALW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAK7B","file":"event.js","sourcesContent":["export { HOOK_EVENT as VGRAMMAR_HOOK_EVENT } from '@visactor/vgrammar';\n\nexport const BASE_EVENTS = [\n 'pointerdown',\n 'pointerup',\n 'pointerupoutside',\n 'pointertap', // pointerEvent 下的 click 事件\n 'pointerover',\n 'pointermove',\n 'pointerenter',\n 'pointerleave',\n 'pointerout',\n 'mousedown',\n 'mouseup',\n 'mouseupoutside',\n 'rightdown',\n 'rightup',\n 'rightupoutside',\n 'click',\n 'dblclick',\n 'mousemove',\n 'mouseover',\n 'mouseout',\n 'mouseenter',\n 'mouseleave',\n 'wheel',\n 'touchstart',\n 'touchend',\n 'touchendoutside',\n 'touchmove',\n 'touchcancel',\n 'tap',\n 'dragstart',\n 'drag',\n 'dragenter',\n 'dragleave',\n 'dragover',\n 'dragend',\n 'drop',\n // 手势事件\n 'pan',\n 'panstart',\n 'panend',\n 'press',\n 'pressup',\n 'pressend',\n 'pinch',\n 'pinchstart',\n 'pinchend',\n 'swipe'\n];\n\nexport enum ChartEvent {\n initialized = 'initialized',\n rendered = 'rendered',\n // region\n regionSeriesDataFilterOver = 'regionSeriesDataFilterOver',\n // series start\n // series.liftCircle\n afterInitData = 'afterInitData',\n afterInitEvent = 'afterInitEvent',\n afterInitMark = 'afterInitMark',\n // series.data\n rawDataUpdate = 'rawDataUpdate',\n rawDataStatisticsUpdate = 'rawDataStatisticsUpdate',\n viewDataFilterOver = 'viewDataFilterOver',\n viewDataUpdate = 'viewDataUpdate',\n viewDataStatisticsUpdate = 'viewDataStatisticsUpdate',\n // dot series\n markDeltaYUpdate = 'markDeltaYUpdate',\n // pie series\n viewDataLabelUpdate = 'viewDataLabelUpdate',\n /** series end */\n // scale\n scaleDomainUpdate = 'scaleDomainUpdate',\n scaleUpdate = 'scaleUpdate',\n // datazoom\n dataZoomChange = 'dataZoomChange',\n // Hierarchy\n drill = 'drill',\n layoutStart = 'layoutStart',\n layoutEnd = 'layoutEnd',\n\n // player\n playerPlay = 'playerPlay',\n playerPause = 'playerPause',\n playerEnd = 'playerEnd',\n playerChange = 'playerChange',\n playerForward = 'playerForward',\n playerBackward = 'playerBackward',\n // scrollBar\n scrollBarChange = 'scrollBarChange',\n // brush\n brushStart = 'brushStart',\n brushChange = 'brushChange',\n brushEnd = 'brushEnd',\n // legend\n legendSelectedDataChange = 'legendSelectedDataChange',\n legendFilter = 'legendFilter',\n legendItemClick = 'legendItemClick',\n legendItemHover = 'legendItemHover',\n legendItemUnHover = 'legendItemUnHover'\n}\n\nexport enum Event_Source_Type {\n chart = 'chart',\n window = 'window'\n}\n\nexport enum Event_Bubble_Level {\n vchart = 'vchart',\n chart = 'chart',\n model = 'model',\n mark = 'mark'\n}\n"]}
1
+ {"version":3,"sources":["../src/constant/event.ts"],"names":[],"mappings":";;;AAAA,+CAAuE;AAA9D,+GAAA,UAAU,OAAuB;AAE7B,QAAA,WAAW,GAAG;IACzB,aAAa;IACb,WAAW;IACX,kBAAkB;IAClB,YAAY;IACZ,aAAa;IACb,aAAa;IACb,cAAc;IACd,cAAc;IACd,YAAY;IACZ,WAAW;IACX,SAAS;IACT,gBAAgB;IAChB,WAAW;IACX,SAAS;IACT,gBAAgB;IAChB,OAAO;IACP,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,OAAO;IACP,YAAY;IACZ,UAAU;IACV,iBAAiB;IACjB,WAAW;IACX,aAAa;IACb,KAAK;IACL,WAAW;IACX,MAAM;IACN,WAAW;IACX,WAAW;IACX,UAAU;IACV,SAAS;IACT,MAAM;IAEN,KAAK;IACL,UAAU;IACV,QAAQ;IACR,OAAO;IACP,SAAS;IACT,UAAU;IACV,OAAO;IACP,YAAY;IACZ,UAAU;IACV,OAAO;CACR,CAAC;AAEF,IAAY,UAoDX;AApDD,WAAY,UAAU;IACpB,yCAA2B,CAAA;IAC3B,mCAAqB,CAAA;IACrB,+CAAiC,CAAA;IACjC,qDAAuC,CAAA;IAEvC,uEAAyD,CAAA;IAGzD,6CAA+B,CAAA;IAC/B,+CAAiC,CAAA;IACjC,6CAA+B,CAAA;IAE/B,6CAA+B,CAAA;IAC/B,iEAAmD,CAAA;IACnD,uDAAyC,CAAA;IACzC,+CAAiC,CAAA;IACjC,mEAAqD,CAAA;IAErD,mDAAqC,CAAA;IAErC,yDAA2C,CAAA;IAG3C,qDAAuC,CAAA;IACvC,yCAA2B,CAAA;IAE3B,+CAAiC,CAAA;IAEjC,6BAAe,CAAA;IACf,yCAA2B,CAAA;IAC3B,qCAAuB,CAAA;IAGvB,uCAAyB,CAAA;IACzB,yCAA2B,CAAA;IAC3B,qCAAuB,CAAA;IACvB,2CAA6B,CAAA;IAC7B,6CAA+B,CAAA;IAC/B,+CAAiC,CAAA;IAEjC,iDAAmC,CAAA;IAEnC,uCAAyB,CAAA;IACzB,yCAA2B,CAAA;IAC3B,mCAAqB,CAAA;IAErB,mEAAqD,CAAA;IACrD,2CAA6B,CAAA;IAC7B,iDAAmC,CAAA;IACnC,iDAAmC,CAAA;IACnC,qDAAuC,CAAA;AACzC,CAAC,EApDW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAoDrB;AAED,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,oCAAe,CAAA;IACf,sCAAiB,CAAA;AACnB,CAAC,EAHW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAG5B;AAED,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,uCAAiB,CAAA;IACjB,qCAAe,CAAA;IACf,qCAAe,CAAA;IACf,mCAAa,CAAA;AACf,CAAC,EALW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAK7B","file":"event.js","sourcesContent":["export { HOOK_EVENT as VGRAMMAR_HOOK_EVENT } from '@visactor/vgrammar';\n\nexport const BASE_EVENTS = [\n 'pointerdown',\n 'pointerup',\n 'pointerupoutside',\n 'pointertap', // pointerEvent 下的 click 事件\n 'pointerover',\n 'pointermove',\n 'pointerenter',\n 'pointerleave',\n 'pointerout',\n 'mousedown',\n 'mouseup',\n 'mouseupoutside',\n 'rightdown',\n 'rightup',\n 'rightupoutside',\n 'click',\n 'dblclick',\n 'mousemove',\n 'mouseover',\n 'mouseout',\n 'mouseenter',\n 'mouseleave',\n 'wheel',\n 'touchstart',\n 'touchend',\n 'touchendoutside',\n 'touchmove',\n 'touchcancel',\n 'tap',\n 'dragstart',\n 'drag',\n 'dragenter',\n 'dragleave',\n 'dragover',\n 'dragend',\n 'drop',\n // 手势事件\n 'pan',\n 'panstart',\n 'panend',\n 'press',\n 'pressup',\n 'pressend',\n 'pinch',\n 'pinchstart',\n 'pinchend',\n 'swipe'\n];\n\nexport enum ChartEvent {\n initialized = 'initialized', // 图表实例初始化完成\n rendered = 'rendered', // 图表渲染方法被调用时触发,表明图表已经执行过渲染逻辑,只会触发一次\n renderFinished = 'renderFinished', // 每次画布渲染完成触发的事件,不包含动画结束\n animationFinished = 'animationFinished', // 图表动画结束时触发的事件\n // region\n regionSeriesDataFilterOver = 'regionSeriesDataFilterOver',\n // series start\n // series.liftCircle\n afterInitData = 'afterInitData',\n afterInitEvent = 'afterInitEvent',\n afterInitMark = 'afterInitMark',\n // series.data\n rawDataUpdate = 'rawDataUpdate',\n rawDataStatisticsUpdate = 'rawDataStatisticsUpdate',\n viewDataFilterOver = 'viewDataFilterOver',\n viewDataUpdate = 'viewDataUpdate',\n viewDataStatisticsUpdate = 'viewDataStatisticsUpdate',\n // dot series\n markDeltaYUpdate = 'markDeltaYUpdate',\n // pie series\n viewDataLabelUpdate = 'viewDataLabelUpdate',\n /** series end */\n // scale\n scaleDomainUpdate = 'scaleDomainUpdate',\n scaleUpdate = 'scaleUpdate',\n // datazoom\n dataZoomChange = 'dataZoomChange',\n // Hierarchy\n drill = 'drill',\n layoutStart = 'layoutStart',\n layoutEnd = 'layoutEnd',\n\n // player\n playerPlay = 'playerPlay',\n playerPause = 'playerPause',\n playerEnd = 'playerEnd',\n playerChange = 'playerChange',\n playerForward = 'playerForward',\n playerBackward = 'playerBackward',\n // scrollBar\n scrollBarChange = 'scrollBarChange',\n // brush\n brushStart = 'brushStart',\n brushChange = 'brushChange',\n brushEnd = 'brushEnd',\n // legend\n legendSelectedDataChange = 'legendSelectedDataChange',\n legendFilter = 'legendFilter',\n legendItemClick = 'legendItemClick',\n legendItemHover = 'legendItemHover',\n legendItemUnHover = 'legendItemUnHover'\n}\n\nexport enum Event_Source_Type {\n chart = 'chart',\n window = 'window'\n}\n\nexport enum Event_Bubble_Level {\n vchart = 'vchart',\n chart = 'chart',\n model = 'model',\n mark = 'mark'\n}\n"]}
@@ -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.1.1";
4
+ export declare const version = "1.2.0-beta.1";
5
5
  export type { IVChart } from './interface';
6
6
  export * from '../event/interface';
7
7
  export * from '../typings/spec/common';
package/cjs/core/index.js CHANGED
@@ -41,7 +41,7 @@ const region_1 = require("../region/region"), base_layout_1 = require("../layout
41
41
 
42
42
  vchart_1.VChart.useMark([ component_1.ComponentMark, group_1.GroupMark, image_1.ImageMark ]),
43
43
  factory_1.Factory.registerRegion("region", region_1.Region), factory_1.Factory.registerLayout("base", base_layout_1.Layout),
44
- exports.version = "1.1.1", __exportStar(require("../event/interface"), exports),
44
+ exports.version = "1.2.0-beta.1", __exportStar(require("../event/interface"), exports),
45
45
  __exportStar(require("../typings/spec/common"), exports), __exportStar(require("../theme/interface"), exports),
46
46
  vutils_1.Logger.getInstance(vutils_1.LoggerLevel.Error);
47
47
  //# sourceMappingURL=index.js.map