@visactor/vchart 1.4.0-alpha.6 → 1.4.0-alpha.7

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 (203) hide show
  1. package/build/es5/index.js +2 -2
  2. package/build/index.js +7918 -9986
  3. package/build/index.min.js +2 -2
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/bar/bar.js +2 -1
  6. package/cjs/chart/bar/bar.js.map +1 -1
  7. package/cjs/chart/histogram/base.js +2 -1
  8. package/cjs/chart/histogram/base.js.map +1 -1
  9. package/cjs/chart/pie/base.js +2 -1
  10. package/cjs/chart/pie/base.js.map +1 -1
  11. package/cjs/chart/progress/circular/circular.js +1 -1
  12. package/cjs/chart/progress/circular/circular.js.map +1 -1
  13. package/cjs/component/axis/cartesian/axis.d.ts +8 -0
  14. package/cjs/component/axis/cartesian/axis.js +10 -9
  15. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  16. package/cjs/component/axis/cartesian/interface/common.d.ts +2 -2
  17. package/cjs/component/axis/cartesian/interface/common.js.map +1 -1
  18. package/cjs/component/axis/cartesian/linear-axis.js +1 -1
  19. package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
  20. package/cjs/component/axis/cartesian/util/common.d.ts +1 -0
  21. package/cjs/component/axis/cartesian/util/common.js +8 -2
  22. package/cjs/component/axis/cartesian/util/common.js.map +1 -1
  23. package/cjs/component/axis/interface.d.ts +6 -1
  24. package/cjs/component/axis/interface.js.map +1 -1
  25. package/cjs/component/axis/mixin/linear-axis-mixin.d.ts +0 -1
  26. package/cjs/component/axis/mixin/linear-axis-mixin.js +4 -17
  27. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  28. package/cjs/component/base/base-component.js +2 -1
  29. package/cjs/component/base/base-component.js.map +1 -1
  30. package/cjs/component/brush/brush.js +3 -1
  31. package/cjs/component/brush/brush.js.map +1 -1
  32. package/cjs/component/crosshair/cartesian.js +2 -1
  33. package/cjs/component/crosshair/cartesian.js.map +1 -1
  34. package/cjs/component/crosshair/polar.js +2 -1
  35. package/cjs/component/crosshair/polar.js.map +1 -1
  36. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +2 -1
  37. package/cjs/component/data-zoom/data-zoom/data-zoom.js +13 -6
  38. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  39. package/cjs/component/data-zoom/util.js +6 -1
  40. package/cjs/component/data-zoom/util.js.map +1 -1
  41. package/cjs/component/geo/geo-coordinate.d.ts +1 -1
  42. package/cjs/component/geo/geo-coordinate.js +3 -2
  43. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  44. package/cjs/component/indicator/indicator.js +2 -1
  45. package/cjs/component/indicator/indicator.js.map +1 -1
  46. package/cjs/component/legend/base-legend.js +4 -2
  47. package/cjs/component/legend/base-legend.js.map +1 -1
  48. package/cjs/component/legend/util.d.ts +1 -1
  49. package/cjs/component/marker/base-marker.js +3 -2
  50. package/cjs/component/marker/base-marker.js.map +1 -1
  51. package/cjs/component/player/player.js +7 -3
  52. package/cjs/component/player/player.js.map +1 -1
  53. package/cjs/component/title/title.js +3 -2
  54. package/cjs/component/title/title.js.map +1 -1
  55. package/cjs/component/tooltip/tooltip.js +1 -0
  56. package/cjs/component/tooltip/tooltip.js.map +1 -1
  57. package/cjs/constant/polar.d.ts +1 -0
  58. package/cjs/constant/polar.js +12 -12
  59. package/cjs/constant/polar.js.map +1 -1
  60. package/cjs/core/index.d.ts +1 -1
  61. package/cjs/core/index.js +1 -1
  62. package/cjs/core/index.js.map +1 -1
  63. package/cjs/core/vchart.d.ts +1 -2
  64. package/cjs/core/vchart.js +16 -9
  65. package/cjs/core/vchart.js.map +1 -1
  66. package/cjs/data/transforms/dimension-statistics.js +3 -3
  67. package/cjs/data/transforms/dimension-statistics.js.map +1 -1
  68. package/cjs/data/transforms/pie.d.ts +1 -0
  69. package/cjs/data/transforms/pie.js +28 -12
  70. package/cjs/data/transforms/pie.js.map +1 -1
  71. package/cjs/mark/progress-arc.js +2 -2
  72. package/cjs/mark/progress-arc.js.map +1 -1
  73. package/cjs/model/layout-item.js +1 -1
  74. package/cjs/model/layout-item.js.map +1 -1
  75. package/cjs/region/region.js +1 -1
  76. package/cjs/region/region.js.map +1 -1
  77. package/cjs/series/bar/bar.d.ts +4 -0
  78. package/cjs/series/bar/bar.js +83 -6
  79. package/cjs/series/bar/bar.js.map +1 -1
  80. package/cjs/series/bar/interface.d.ts +1 -0
  81. package/cjs/series/bar/interface.js.map +1 -1
  82. package/cjs/series/base/base-series.d.ts +0 -1
  83. package/cjs/series/base/base-series.js +1 -1
  84. package/cjs/series/base/base-series.js.map +1 -1
  85. package/cjs/series/cartesian/cartesian.js +2 -4
  86. package/cjs/series/cartesian/cartesian.js.map +1 -1
  87. package/cjs/series/interface/series.js.map +1 -1
  88. package/cjs/series/map/map.js +1 -1
  89. package/cjs/series/map/map.js.map +1 -1
  90. package/cjs/series/pie/interface.d.ts +1 -0
  91. package/cjs/series/pie/interface.js.map +1 -1
  92. package/cjs/series/pie/pie.js +3 -0
  93. package/cjs/series/pie/pie.js.map +1 -1
  94. package/cjs/series/progress/circular/circular.js +3 -2
  95. package/cjs/series/progress/circular/circular.js.map +1 -1
  96. package/cjs/series/progress/linear/linear.js +8 -9
  97. package/cjs/series/progress/linear/linear.js.map +1 -1
  98. package/cjs/series/sankey/sankey.d.ts +1 -1
  99. package/cjs/series/sankey/sankey.js +72 -61
  100. package/cjs/series/sankey/sankey.js.map +1 -1
  101. package/cjs/series/sunburst/sunburst.d.ts +1 -1
  102. package/cjs/typings/visual.d.ts +1 -1
  103. package/cjs/typings/visual.js.map +1 -1
  104. package/esm/chart/bar/bar.js +2 -1
  105. package/esm/chart/bar/bar.js.map +1 -1
  106. package/esm/chart/histogram/base.js +2 -1
  107. package/esm/chart/histogram/base.js.map +1 -1
  108. package/esm/chart/pie/base.js +2 -1
  109. package/esm/chart/pie/base.js.map +1 -1
  110. package/esm/chart/progress/circular/circular.js +1 -1
  111. package/esm/chart/progress/circular/circular.js.map +1 -1
  112. package/esm/component/axis/cartesian/axis.d.ts +8 -0
  113. package/esm/component/axis/cartesian/axis.js +11 -10
  114. package/esm/component/axis/cartesian/axis.js.map +1 -1
  115. package/esm/component/axis/cartesian/interface/common.d.ts +2 -2
  116. package/esm/component/axis/cartesian/interface/common.js.map +1 -1
  117. package/esm/component/axis/cartesian/linear-axis.js +1 -1
  118. package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
  119. package/esm/component/axis/cartesian/util/common.d.ts +1 -0
  120. package/esm/component/axis/cartesian/util/common.js +7 -1
  121. package/esm/component/axis/cartesian/util/common.js.map +1 -1
  122. package/esm/component/axis/interface.d.ts +6 -1
  123. package/esm/component/axis/interface.js.map +1 -1
  124. package/esm/component/axis/mixin/linear-axis-mixin.d.ts +0 -1
  125. package/esm/component/axis/mixin/linear-axis-mixin.js +5 -11
  126. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  127. package/esm/component/base/base-component.js +2 -1
  128. package/esm/component/base/base-component.js.map +1 -1
  129. package/esm/component/brush/brush.js +3 -1
  130. package/esm/component/brush/brush.js.map +1 -1
  131. package/esm/component/crosshair/cartesian.js +2 -1
  132. package/esm/component/crosshair/cartesian.js.map +1 -1
  133. package/esm/component/crosshair/polar.js +2 -1
  134. package/esm/component/crosshair/polar.js.map +1 -1
  135. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +2 -1
  136. package/esm/component/data-zoom/data-zoom/data-zoom.js +14 -8
  137. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  138. package/esm/component/data-zoom/util.js +6 -1
  139. package/esm/component/data-zoom/util.js.map +1 -1
  140. package/esm/component/geo/geo-coordinate.d.ts +1 -1
  141. package/esm/component/geo/geo-coordinate.js +3 -2
  142. package/esm/component/geo/geo-coordinate.js.map +1 -1
  143. package/esm/component/indicator/indicator.js +2 -1
  144. package/esm/component/indicator/indicator.js.map +1 -1
  145. package/esm/component/legend/base-legend.js +4 -2
  146. package/esm/component/legend/base-legend.js.map +1 -1
  147. package/esm/component/legend/util.d.ts +1 -1
  148. package/esm/component/marker/base-marker.js +3 -2
  149. package/esm/component/marker/base-marker.js.map +1 -1
  150. package/esm/component/player/player.js +7 -3
  151. package/esm/component/player/player.js.map +1 -1
  152. package/esm/component/title/title.js +3 -2
  153. package/esm/component/title/title.js.map +1 -1
  154. package/esm/component/tooltip/tooltip.js +1 -0
  155. package/esm/component/tooltip/tooltip.js.map +1 -1
  156. package/esm/constant/polar.d.ts +1 -0
  157. package/esm/constant/polar.js +2 -0
  158. package/esm/constant/polar.js.map +1 -1
  159. package/esm/core/index.d.ts +1 -1
  160. package/esm/core/index.js +1 -1
  161. package/esm/core/index.js.map +1 -1
  162. package/esm/core/vchart.d.ts +1 -2
  163. package/esm/core/vchart.js +16 -9
  164. package/esm/core/vchart.js.map +1 -1
  165. package/esm/data/transforms/dimension-statistics.js +3 -3
  166. package/esm/data/transforms/dimension-statistics.js.map +1 -1
  167. package/esm/data/transforms/pie.d.ts +1 -0
  168. package/esm/data/transforms/pie.js +29 -11
  169. package/esm/data/transforms/pie.js.map +1 -1
  170. package/esm/mark/progress-arc.js +2 -2
  171. package/esm/mark/progress-arc.js.map +1 -1
  172. package/esm/model/layout-item.js +1 -1
  173. package/esm/model/layout-item.js.map +1 -1
  174. package/esm/region/region.js +1 -1
  175. package/esm/region/region.js.map +1 -1
  176. package/esm/series/bar/bar.d.ts +4 -0
  177. package/esm/series/bar/bar.js +78 -5
  178. package/esm/series/bar/bar.js.map +1 -1
  179. package/esm/series/bar/interface.d.ts +1 -0
  180. package/esm/series/bar/interface.js.map +1 -1
  181. package/esm/series/base/base-series.d.ts +0 -1
  182. package/esm/series/base/base-series.js +1 -1
  183. package/esm/series/base/base-series.js.map +1 -1
  184. package/esm/series/cartesian/cartesian.js +2 -4
  185. package/esm/series/cartesian/cartesian.js.map +1 -1
  186. package/esm/series/interface/series.js.map +1 -1
  187. package/esm/series/map/map.js +1 -1
  188. package/esm/series/map/map.js.map +1 -1
  189. package/esm/series/pie/interface.d.ts +1 -0
  190. package/esm/series/pie/interface.js.map +1 -1
  191. package/esm/series/pie/pie.js +2 -0
  192. package/esm/series/pie/pie.js.map +1 -1
  193. package/esm/series/progress/circular/circular.js +3 -3
  194. package/esm/series/progress/circular/circular.js.map +1 -1
  195. package/esm/series/progress/linear/linear.js +7 -9
  196. package/esm/series/progress/linear/linear.js.map +1 -1
  197. package/esm/series/sankey/sankey.d.ts +1 -1
  198. package/esm/series/sankey/sankey.js +72 -61
  199. package/esm/series/sankey/sankey.js.map +1 -1
  200. package/esm/series/sunburst/sunburst.d.ts +1 -1
  201. package/esm/typings/visual.d.ts +1 -1
  202. package/esm/typings/visual.js.map +1 -1
  203. package/package.json +10 -10
@@ -281,7 +281,8 @@ export class PolarCrossHair extends BaseCrossHair {
281
281
  clear() {
282
282
  [ (this._radiusCrosshair, this._radiusLabelCrosshair, this._angleCrosshair, this._angleLabelCrosshair) ].forEach((c => {
283
283
  var _a;
284
- c && (null === (_a = this._container) || void 0 === _a || _a.removeChild(c), c = null);
284
+ c && (null === (_a = this.getContainer()) || void 0 === _a || _a.removeChild(c),
285
+ c = null);
285
286
  })), super.clear();
286
287
  }
287
288
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/crosshair/polar.ts"],"names":[],"mappings":"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","file":"polar.js","sourcesContent":["import type { IPolarSeries } from '../../series/interface/series';\nimport { isArray, isValid, isValidNumber, mergeSpec, isNil, clamp } from '../../util';\nimport type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface';\nimport type { IPolarCrosshairSpec } from './interface';\nimport type { BandScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isDiscrete, isContinuous } from '@visactor/vscale';\n// import { registerComponent } from '@visactor/vgrammar-core';\nimport { Tag } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { LineCrosshair, SectorCrosshair, CircleCrosshair, PolygonCrosshair } from '@visactor/vrender-components';\nimport type { IPolarAxis } from '../axis/polar/interface';\nimport type { IPoint, StringOrNumber } from '../../typings';\nimport type { IHair } from './base';\n// eslint-disable-next-line no-duplicate-imports\nimport { BaseCrossHair } from './base';\nimport { polarToCartesian, getIntersectPoint, PointService, getAngleByPoint } from '@visactor/vutils';\nimport type { IGroup, INode } from '@visactor/vrender';\nimport { angleLabelOrientAttribute, radiusLabelOrientAttribute } from '../../util/math';\nimport { limitTagInBounds } from './util';\nimport { getAxisLabelOffset } from '../axis/util';\n\ninterface ICrosshairInfo {\n x: number;\n y: number;\n center: IPoint;\n radius: number;\n distance: number;\n startAngle: number;\n endAngle: number;\n innerRadius: number;\n visible: boolean;\n sides: number;\n angle: number;\n point: IPoint;\n _isCache?: boolean;\n label?: { visible: boolean; text: StringOrNumber; offset: number };\n axis?: IPolarAxis;\n}\n\nenum LayoutType {\n ALL = 0b0011,\n HORIZONTAL = 0b0010,\n VERTICAL = 0b0001,\n NONE = 0b0000\n}\n\ntype IBound = { x1: number; y1: number; x2: number; y2: number };\ntype IAxisInfo = Map<number, IBound & { axis: IPolarAxis }>;\n\nexport class PolarCrossHair<T extends IPolarCrosshairSpec = IPolarCrosshairSpec> extends BaseCrossHair<T> {\n static type = ComponentTypeEnum.polarCrosshair;\n type = ComponentTypeEnum.polarCrosshair;\n name: string = ComponentTypeEnum.polarCrosshair;\n currValueX: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>;\n currValueY: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>;\n\n xHair: IHair | undefined;\n yHair: (IHair & { smooth: boolean }) | undefined;\n\n private _cacheXCrossHairInfo: ICrosshairInfo | undefined;\n private _cacheYCrossHairInfo: ICrosshairInfo | undefined;\n\n private _radiusCrosshair: IGroup;\n private _radiusLabelCrosshair: Tag;\n private _angleCrosshair: IGroup;\n private _angleLabelCrosshair: Tag;\n\n static createComponent(spec: any, options: IComponentOption) {\n const crosshairSpec = spec.crosshair || options.defaultSpec;\n if (isNil(crosshairSpec)) {\n return undefined;\n }\n if (!isArray(crosshairSpec)) {\n if (crosshairSpec.categoryField || crosshairSpec.valueField) {\n return new PolarCrossHair(crosshairSpec, { ...options, specKey: 'crosshair' });\n }\n return undefined;\n }\n const components: PolarCrossHair[] = [];\n crosshairSpec.forEach((s: IPolarCrosshairSpec, i: number) => {\n if (s.categoryField || s.valueField) {\n components.push(new PolarCrossHair(s, { ...options, specIndex: i, specKey: 'crosshair' }));\n }\n });\n return components;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, {\n ...options\n });\n this.currValueX = new Map();\n this.currValueY = new Map();\n }\n\n protected _showDefaultCrosshair() {\n if (!this.showDefault) {\n return;\n }\n // TODO: 待支持\n }\n\n hide() {\n this._radiusCrosshair && this._radiusCrosshair.hideAll();\n this._radiusLabelCrosshair && this._radiusLabelCrosshair.hideAll();\n this._angleCrosshair && this._angleCrosshair.hideAll();\n this._angleLabelCrosshair && this._angleLabelCrosshair.hideAll();\n }\n\n /**\n * 查找所有落在x和y区域的轴\n * @param relativeX\n * @param relativeY\n */\n findAllAxisContains(relativeX: number, relativeY: number) {\n const xAxisMap = this._getAxisInfoByField<IPolarAxis>('category');\n const yAxisMap = this._getAxisInfoByField<IPolarAxis>('value');\n return {\n xAxisMap: this._filterAxisByPoint<IPolarAxis>(xAxisMap, relativeX, relativeY),\n yAxisMap: this._filterAxisByPoint<IPolarAxis>(yAxisMap, relativeX, relativeY)\n };\n }\n\n /**\n * 根据位置获取所有轴上的value\n * @param axisMap\n * @param p\n * @returns\n */\n getAllAxisValues(\n axisMap: IAxisInfo,\n point: IPoint,\n currValue: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>\n ): boolean {\n // 首先不能存在两个离散轴\n let discrete = false;\n axisMap.forEach(item => {\n if (isDiscrete(item.axis.getScale().type)) {\n if (!discrete) {\n discrete = true;\n } else {\n this.enable = false;\n }\n }\n });\n if (!this.enable) {\n return false;\n }\n // 获取所有的value\n axisMap.forEach((item, id) => {\n const axis = item.axis;\n const { x: axisStartX, y: axisStartY } = item.axis.getLayoutStartPoint();\n const { x, y } = this.getLayoutStartPoint();\n let value = axis.positionToData({\n x: point.x - (axisStartX - x),\n y: point.y - (axisStartY - y)\n });\n if (isContinuous(axis.getScale().type) && isValidNumber(+value)) {\n value = (+value as number).toFixed(2);\n }\n const center = {\n x: axis.getCenter().x + this.getLayoutStartPoint().x,\n y: axis.getCenter().y + this.getLayoutStartPoint().y\n };\n currValue.set(id, {\n v: value,\n axis: item.axis,\n center,\n innerRadius: axis.getInnerRadius(),\n radius: axis.getOuterRadius(),\n startAngle: axis.startAngle,\n endAngle: axis.endAngle,\n distance: PointService.distancePP(point, axis.getCenter()),\n coord: axis.pointToCoord(point),\n point\n });\n });\n return true;\n }\n\n protected _layoutCrosshair(relativeX: number, relativeY: number) {\n // 找到所有的包含这个点的轴\n const { xAxisMap, yAxisMap } = this.findAllAxisContains(relativeX, relativeY);\n if (xAxisMap.size === 0 && yAxisMap.size === 0) {\n if (this.enableRemain) {\n return;\n }\n // 隐藏\n this.hide();\n return;\n }\n // 删除之前的currValue\n this.currValueX.clear();\n this.currValueY.clear();\n // 将数据保存到这个对象中,如果不存在,就直接不执行后续逻辑\n xAxisMap && this.getAllAxisValues(xAxisMap, { x: relativeX, y: relativeY }, this.currValueX);\n yAxisMap && this.getAllAxisValues(yAxisMap, { x: relativeX, y: relativeY }, this.currValueY);\n\n this.layoutByValue(LayoutType.ALL);\n }\n\n private layoutByValue(tag: number) {\n if (!this.enable) {\n return;\n }\n // 获取axisHelper\n const series = this._firstSeries<IPolarSeries>();\n if (!series) {\n return;\n }\n let xCrossHairInfo = {\n x: 0,\n y: 0,\n center: { x: 0, y: 0 },\n radius: 0,\n distance: 0,\n startAngle: 0,\n endAngle: 0,\n innerRadius: 0,\n visible: false,\n label: { visible: false, text: '', offset: 0 }\n } as ICrosshairInfo;\n let yCrossHairInfo = {\n x: 0,\n y: 0,\n center: { x: 0, y: 0 },\n radius: 0,\n distance: 0,\n startAngle: 0,\n endAngle: 0,\n innerRadius: 0,\n visible: false,\n sides: (series.angleAxisHelper.getScale(0) as BandScale).ticks().length,\n label: { visible: false, text: '', offset: 0 }\n } as ICrosshairInfo;\n\n // 计算x轴和y轴的数据,只允许最多一对x和一对y\n if (this.xHair) {\n xCrossHairInfo.visible = !!this.currValueX.size;\n const bandWidth = series.angleAxisHelper.getBandwidth(0);\n this.currValueX.forEach(({ axis, v, coord, ...rest }) => {\n v = v ?? '';\n mergeSpec(xCrossHairInfo, rest);\n const angle = series.angleAxisHelper.dataToPosition([v]);\n xCrossHairInfo.angle = angle;\n if (this.xHair.label?.visible) {\n xCrossHairInfo.label.visible = true;\n xCrossHairInfo.label.text = v;\n xCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec());\n }\n\n xCrossHairInfo.startAngle = angle - bandWidth / 2;\n xCrossHairInfo.endAngle = angle + bandWidth / 2;\n });\n }\n\n if (this.yHair) {\n yCrossHairInfo.visible = !!this.currValueY.size;\n this.currValueY.forEach(({ axis, v, coord, ...rest }) => {\n v = v ?? '';\n if (this.yHair.label?.visible) {\n yCrossHairInfo.label.visible = true;\n yCrossHairInfo.label.text = v;\n yCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec());\n }\n yCrossHairInfo.angle = coord.angle;\n yCrossHairInfo.axis = axis;\n mergeSpec(yCrossHairInfo, rest);\n });\n }\n\n if (this.enableRemain && !xCrossHairInfo.visible && isValid(this._cacheXCrossHairInfo)) {\n xCrossHairInfo = this._cacheXCrossHairInfo;\n } else {\n if (this.xHair?.label?.formatMethod && xCrossHairInfo.label.visible) {\n const { label } = xCrossHairInfo;\n label.text = this.xHair.label.formatMethod(label.text, 'angle') as string;\n }\n }\n\n if (this.enableRemain && !yCrossHairInfo.visible && isValid(this._cacheYCrossHairInfo)) {\n yCrossHairInfo = this._cacheYCrossHairInfo;\n } else {\n if (this.yHair?.label?.formatMethod && yCrossHairInfo.label.visible) {\n const { label } = yCrossHairInfo;\n label.text = this.yHair.label.formatMethod(label.text, 'radius') as string;\n }\n }\n\n if (tag) {\n LayoutType.HORIZONTAL && this._layoutHorizontal(yCrossHairInfo);\n LayoutType.VERTICAL && this._layoutVertical(xCrossHairInfo);\n }\n\n if (this.enableRemain) {\n this._cacheXCrossHairInfo = { ...xCrossHairInfo, _isCache: true };\n this._cacheYCrossHairInfo = { ...yCrossHairInfo, _isCache: true };\n }\n }\n\n private _layoutVertical(crosshairInfo: ICrosshairInfo) {\n if (crosshairInfo._isCache && this.enableRemain) {\n return;\n }\n\n const container = this.getContainer();\n const { angle, innerRadius, radius, label, startAngle, endAngle, center, visible } = crosshairInfo;\n if (visible) {\n const crosshairType = this.xHair.type === 'rect' ? 'sector' : 'line';\n let positionAttrs;\n if (crosshairType === 'sector') {\n positionAttrs = {\n center,\n innerRadius,\n radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n } else {\n positionAttrs = {\n start: polarToCartesian(center, innerRadius, angle),\n end: polarToCartesian(center, radius, angle)\n };\n }\n\n if (this._angleCrosshair) {\n this._angleCrosshair.setAttributes(positionAttrs as unknown as any);\n } else {\n let crosshair;\n // 创建\n if (crosshairType === 'line') {\n crosshair = new LineCrosshair({\n ...(positionAttrs as { start: IPoint; end: IPoint }),\n lineStyle: this.xHair.style,\n zIndex: this.gridZIndex\n });\n } else if (crosshairType === 'sector') {\n crosshair = new SectorCrosshair({\n ...(positionAttrs as {\n center: IPoint;\n innerRadius: number;\n radius: number;\n startAngle: number;\n endAngle: number;\n }),\n sectorStyle: this.xHair.style,\n zIndex: this.gridZIndex\n });\n }\n this._angleCrosshair = crosshair as unknown as IGroup;\n // 添加至场景树\n container.add(crosshair as unknown as INode);\n }\n\n // 文本\n if (label.visible) {\n const orient = angleLabelOrientAttribute(angle);\n const labelAttrs = {\n ...polarToCartesian(center, radius + label.offset, angle),\n ...this.xHair.label,\n ...label,\n textStyle: {\n ...this.xHair.label?.textStyle,\n textAlign: orient.align,\n textBaseline: orient.baseline\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._angleLabelCrosshair, labelAttrs, label => {\n label.name = 'crosshair-angle-label';\n this._angleLabelCrosshair = label;\n });\n } else {\n this._angleLabelCrosshair && this._angleLabelCrosshair.hideAll();\n }\n }\n }\n\n private _layoutHorizontal(crosshairInfo: ICrosshairInfo) {\n if (crosshairInfo._isCache && this.enableRemain) {\n return;\n }\n\n const { center, startAngle, endAngle, distance, sides, axis, label, point, radius, innerRadius, visible } =\n crosshairInfo;\n const container = this.getContainer();\n if (visible) {\n const crosshairType = this.yHair.smooth ? 'circle' : 'polygon';\n\n let polygonRadius = distance;\n if (crosshairType === 'polygon') {\n const axisCenter = axis.getCenter();\n // 需要计算半径\n // 获取当前点的角度\n const curAngle = getAngleByPoint(axisCenter, point);\n const stepAngle = (endAngle - startAngle) / sides;\n const index = Math.floor((curAngle - startAngle) / stepAngle);\n const preAngle = index * stepAngle + startAngle;\n const nextAngle = Math.min((index + 1) * stepAngle + startAngle, endAngle);\n\n const prePoint = polarToCartesian(axisCenter, distance, preAngle);\n const nextPoint = polarToCartesian(axisCenter, distance, nextAngle);\n // 求交点\n const insertPoint = getIntersectPoint(\n [nextPoint.x, nextPoint.y],\n [prePoint.x, prePoint.y],\n [axisCenter.x, axisCenter.y],\n [point.x, point.y]\n );\n if (insertPoint) {\n polygonRadius = clamp(\n PointService.distancePN(point, insertPoint[0], insertPoint[1]) + distance,\n innerRadius,\n radius\n );\n }\n }\n const positionAttrs = {\n center,\n startAngle: startAngle,\n endAngle: endAngle,\n radius: polygonRadius,\n sides\n };\n\n if (this._radiusCrosshair) {\n this._radiusCrosshair.setAttributes(positionAttrs as unknown as any);\n } else {\n let crosshair;\n if (crosshairType === 'polygon') {\n crosshair = new PolygonCrosshair({\n ...positionAttrs,\n lineStyle: this.yHair.style,\n zIndex: this.gridZIndex + 1 // 样式优化:线盖在面上\n });\n } else {\n crosshair = new CircleCrosshair({\n ...positionAttrs,\n lineStyle: this.yHair.style,\n zIndex: this.gridZIndex\n });\n }\n this._radiusCrosshair = crosshair as unknown as IGroup;\n // 添加至场景树\n container.add(crosshair as unknown as INode);\n }\n\n // 文本\n if (label.visible) {\n const orient = radiusLabelOrientAttribute(startAngle);\n const labelAttrs = {\n ...polarToCartesian(center, polygonRadius, startAngle),\n ...this.yHair.label,\n ...label,\n textStyle: {\n ...this.yHair.label?.textStyle,\n textAlign: orient.align,\n textBaseline: orient.baseline\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._radiusLabelCrosshair, labelAttrs, label => {\n label.name = 'crosshair-radius-label';\n this._radiusLabelCrosshair = label;\n });\n } else {\n this._radiusLabelCrosshair && this._radiusLabelCrosshair.hideAll();\n }\n }\n }\n\n protected _parseFieldInfo() {\n const { categoryField, valueField } = this._crosshairConfig as IPolarCrosshairSpec;\n if (categoryField && categoryField.visible) {\n this.xHair = this._parseField(categoryField, 'categoryField');\n }\n if (valueField && valueField.visible) {\n this.yHair = this._parseField(valueField, 'valueField');\n this.yHair.smooth = valueField?.line?.smooth;\n }\n }\n\n private _updateCrosshairLabel(label: Tag, labelAttrs: any, callback: (label: Tag) => void) {\n // 文本\n const container = this.getContainer();\n if (label) {\n label.setAttributes(labelAttrs);\n } else {\n label = new Tag(labelAttrs);\n container.add(label as unknown as INode);\n callback(label);\n }\n limitTagInBounds(label, this._getLimitBounds());\n }\n\n clear() {\n [(this._radiusCrosshair, this._radiusLabelCrosshair, this._angleCrosshair, this._angleLabelCrosshair)].forEach(\n c => {\n if (c) {\n this._container?.removeChild(c as unknown as INode);\n c = null;\n }\n }\n );\n\n super.clear();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/crosshair/polar.ts"],"names":[],"mappings":"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","file":"polar.js","sourcesContent":["import type { IPolarSeries } from '../../series/interface/series';\nimport { isArray, isValid, isValidNumber, mergeSpec, isNil, clamp } from '../../util';\nimport type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface';\nimport type { IPolarCrosshairSpec } from './interface';\nimport type { BandScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isDiscrete, isContinuous } from '@visactor/vscale';\n// import { registerComponent } from '@visactor/vgrammar-core';\nimport { Tag } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { LineCrosshair, SectorCrosshair, CircleCrosshair, PolygonCrosshair } from '@visactor/vrender-components';\nimport type { IPolarAxis } from '../axis/polar/interface';\nimport type { IPoint, StringOrNumber } from '../../typings';\nimport type { IHair } from './base';\n// eslint-disable-next-line no-duplicate-imports\nimport { BaseCrossHair } from './base';\nimport { polarToCartesian, getIntersectPoint, PointService, getAngleByPoint } from '@visactor/vutils';\nimport type { IGroup, INode } from '@visactor/vrender';\nimport { angleLabelOrientAttribute, radiusLabelOrientAttribute } from '../../util/math';\nimport { limitTagInBounds } from './util';\nimport { getAxisLabelOffset } from '../axis/util';\n\ninterface ICrosshairInfo {\n x: number;\n y: number;\n center: IPoint;\n radius: number;\n distance: number;\n startAngle: number;\n endAngle: number;\n innerRadius: number;\n visible: boolean;\n sides: number;\n angle: number;\n point: IPoint;\n _isCache?: boolean;\n label?: { visible: boolean; text: StringOrNumber; offset: number };\n axis?: IPolarAxis;\n}\n\nenum LayoutType {\n ALL = 0b0011,\n HORIZONTAL = 0b0010,\n VERTICAL = 0b0001,\n NONE = 0b0000\n}\n\ntype IBound = { x1: number; y1: number; x2: number; y2: number };\ntype IAxisInfo = Map<number, IBound & { axis: IPolarAxis }>;\n\nexport class PolarCrossHair<T extends IPolarCrosshairSpec = IPolarCrosshairSpec> extends BaseCrossHair<T> {\n static type = ComponentTypeEnum.polarCrosshair;\n type = ComponentTypeEnum.polarCrosshair;\n name: string = ComponentTypeEnum.polarCrosshair;\n currValueX: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>;\n currValueY: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>;\n\n xHair: IHair | undefined;\n yHair: (IHair & { smooth: boolean }) | undefined;\n\n private _cacheXCrossHairInfo: ICrosshairInfo | undefined;\n private _cacheYCrossHairInfo: ICrosshairInfo | undefined;\n\n private _radiusCrosshair: IGroup;\n private _radiusLabelCrosshair: Tag;\n private _angleCrosshair: IGroup;\n private _angleLabelCrosshair: Tag;\n\n static createComponent(spec: any, options: IComponentOption) {\n const crosshairSpec = spec.crosshair || options.defaultSpec;\n if (isNil(crosshairSpec)) {\n return undefined;\n }\n if (!isArray(crosshairSpec)) {\n if (crosshairSpec.categoryField || crosshairSpec.valueField) {\n return new PolarCrossHair(crosshairSpec, { ...options, specKey: 'crosshair' });\n }\n return undefined;\n }\n const components: PolarCrossHair[] = [];\n crosshairSpec.forEach((s: IPolarCrosshairSpec, i: number) => {\n if (s.categoryField || s.valueField) {\n components.push(new PolarCrossHair(s, { ...options, specIndex: i, specKey: 'crosshair' }));\n }\n });\n return components;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, {\n ...options\n });\n this.currValueX = new Map();\n this.currValueY = new Map();\n }\n\n protected _showDefaultCrosshair() {\n if (!this.showDefault) {\n return;\n }\n // TODO: 待支持\n }\n\n hide() {\n this._radiusCrosshair && this._radiusCrosshair.hideAll();\n this._radiusLabelCrosshair && this._radiusLabelCrosshair.hideAll();\n this._angleCrosshair && this._angleCrosshair.hideAll();\n this._angleLabelCrosshair && this._angleLabelCrosshair.hideAll();\n }\n\n /**\n * 查找所有落在x和y区域的轴\n * @param relativeX\n * @param relativeY\n */\n findAllAxisContains(relativeX: number, relativeY: number) {\n const xAxisMap = this._getAxisInfoByField<IPolarAxis>('category');\n const yAxisMap = this._getAxisInfoByField<IPolarAxis>('value');\n return {\n xAxisMap: this._filterAxisByPoint<IPolarAxis>(xAxisMap, relativeX, relativeY),\n yAxisMap: this._filterAxisByPoint<IPolarAxis>(yAxisMap, relativeX, relativeY)\n };\n }\n\n /**\n * 根据位置获取所有轴上的value\n * @param axisMap\n * @param p\n * @returns\n */\n getAllAxisValues(\n axisMap: IAxisInfo,\n point: IPoint,\n currValue: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>\n ): boolean {\n // 首先不能存在两个离散轴\n let discrete = false;\n axisMap.forEach(item => {\n if (isDiscrete(item.axis.getScale().type)) {\n if (!discrete) {\n discrete = true;\n } else {\n this.enable = false;\n }\n }\n });\n if (!this.enable) {\n return false;\n }\n // 获取所有的value\n axisMap.forEach((item, id) => {\n const axis = item.axis;\n const { x: axisStartX, y: axisStartY } = item.axis.getLayoutStartPoint();\n const { x, y } = this.getLayoutStartPoint();\n let value = axis.positionToData({\n x: point.x - (axisStartX - x),\n y: point.y - (axisStartY - y)\n });\n if (isContinuous(axis.getScale().type) && isValidNumber(+value)) {\n value = (+value as number).toFixed(2);\n }\n const center = {\n x: axis.getCenter().x + this.getLayoutStartPoint().x,\n y: axis.getCenter().y + this.getLayoutStartPoint().y\n };\n currValue.set(id, {\n v: value,\n axis: item.axis,\n center,\n innerRadius: axis.getInnerRadius(),\n radius: axis.getOuterRadius(),\n startAngle: axis.startAngle,\n endAngle: axis.endAngle,\n distance: PointService.distancePP(point, axis.getCenter()),\n coord: axis.pointToCoord(point),\n point\n });\n });\n return true;\n }\n\n protected _layoutCrosshair(relativeX: number, relativeY: number) {\n // 找到所有的包含这个点的轴\n const { xAxisMap, yAxisMap } = this.findAllAxisContains(relativeX, relativeY);\n if (xAxisMap.size === 0 && yAxisMap.size === 0) {\n if (this.enableRemain) {\n return;\n }\n // 隐藏\n this.hide();\n return;\n }\n // 删除之前的currValue\n this.currValueX.clear();\n this.currValueY.clear();\n // 将数据保存到这个对象中,如果不存在,就直接不执行后续逻辑\n xAxisMap && this.getAllAxisValues(xAxisMap, { x: relativeX, y: relativeY }, this.currValueX);\n yAxisMap && this.getAllAxisValues(yAxisMap, { x: relativeX, y: relativeY }, this.currValueY);\n\n this.layoutByValue(LayoutType.ALL);\n }\n\n private layoutByValue(tag: number) {\n if (!this.enable) {\n return;\n }\n // 获取axisHelper\n const series = this._firstSeries<IPolarSeries>();\n if (!series) {\n return;\n }\n let xCrossHairInfo = {\n x: 0,\n y: 0,\n center: { x: 0, y: 0 },\n radius: 0,\n distance: 0,\n startAngle: 0,\n endAngle: 0,\n innerRadius: 0,\n visible: false,\n label: { visible: false, text: '', offset: 0 }\n } as ICrosshairInfo;\n let yCrossHairInfo = {\n x: 0,\n y: 0,\n center: { x: 0, y: 0 },\n radius: 0,\n distance: 0,\n startAngle: 0,\n endAngle: 0,\n innerRadius: 0,\n visible: false,\n sides: (series.angleAxisHelper.getScale(0) as BandScale).ticks().length,\n label: { visible: false, text: '', offset: 0 }\n } as ICrosshairInfo;\n\n // 计算x轴和y轴的数据,只允许最多一对x和一对y\n if (this.xHair) {\n xCrossHairInfo.visible = !!this.currValueX.size;\n const bandWidth = series.angleAxisHelper.getBandwidth(0);\n this.currValueX.forEach(({ axis, v, coord, ...rest }) => {\n v = v ?? '';\n mergeSpec(xCrossHairInfo, rest);\n const angle = series.angleAxisHelper.dataToPosition([v]);\n xCrossHairInfo.angle = angle;\n if (this.xHair.label?.visible) {\n xCrossHairInfo.label.visible = true;\n xCrossHairInfo.label.text = v;\n xCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec());\n }\n\n xCrossHairInfo.startAngle = angle - bandWidth / 2;\n xCrossHairInfo.endAngle = angle + bandWidth / 2;\n });\n }\n\n if (this.yHair) {\n yCrossHairInfo.visible = !!this.currValueY.size;\n this.currValueY.forEach(({ axis, v, coord, ...rest }) => {\n v = v ?? '';\n if (this.yHair.label?.visible) {\n yCrossHairInfo.label.visible = true;\n yCrossHairInfo.label.text = v;\n yCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec());\n }\n yCrossHairInfo.angle = coord.angle;\n yCrossHairInfo.axis = axis;\n mergeSpec(yCrossHairInfo, rest);\n });\n }\n\n if (this.enableRemain && !xCrossHairInfo.visible && isValid(this._cacheXCrossHairInfo)) {\n xCrossHairInfo = this._cacheXCrossHairInfo;\n } else {\n if (this.xHair?.label?.formatMethod && xCrossHairInfo.label.visible) {\n const { label } = xCrossHairInfo;\n label.text = this.xHair.label.formatMethod(label.text, 'angle') as string;\n }\n }\n\n if (this.enableRemain && !yCrossHairInfo.visible && isValid(this._cacheYCrossHairInfo)) {\n yCrossHairInfo = this._cacheYCrossHairInfo;\n } else {\n if (this.yHair?.label?.formatMethod && yCrossHairInfo.label.visible) {\n const { label } = yCrossHairInfo;\n label.text = this.yHair.label.formatMethod(label.text, 'radius') as string;\n }\n }\n\n if (tag) {\n LayoutType.HORIZONTAL && this._layoutHorizontal(yCrossHairInfo);\n LayoutType.VERTICAL && this._layoutVertical(xCrossHairInfo);\n }\n\n if (this.enableRemain) {\n this._cacheXCrossHairInfo = { ...xCrossHairInfo, _isCache: true };\n this._cacheYCrossHairInfo = { ...yCrossHairInfo, _isCache: true };\n }\n }\n\n private _layoutVertical(crosshairInfo: ICrosshairInfo) {\n if (crosshairInfo._isCache && this.enableRemain) {\n return;\n }\n\n const container = this.getContainer();\n const { angle, innerRadius, radius, label, startAngle, endAngle, center, visible } = crosshairInfo;\n if (visible) {\n const crosshairType = this.xHair.type === 'rect' ? 'sector' : 'line';\n let positionAttrs;\n if (crosshairType === 'sector') {\n positionAttrs = {\n center,\n innerRadius,\n radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n } else {\n positionAttrs = {\n start: polarToCartesian(center, innerRadius, angle),\n end: polarToCartesian(center, radius, angle)\n };\n }\n\n if (this._angleCrosshair) {\n this._angleCrosshair.setAttributes(positionAttrs as unknown as any);\n } else {\n let crosshair;\n // 创建\n if (crosshairType === 'line') {\n crosshair = new LineCrosshair({\n ...(positionAttrs as { start: IPoint; end: IPoint }),\n lineStyle: this.xHair.style,\n zIndex: this.gridZIndex\n });\n } else if (crosshairType === 'sector') {\n crosshair = new SectorCrosshair({\n ...(positionAttrs as {\n center: IPoint;\n innerRadius: number;\n radius: number;\n startAngle: number;\n endAngle: number;\n }),\n sectorStyle: this.xHair.style,\n zIndex: this.gridZIndex\n });\n }\n this._angleCrosshair = crosshair as unknown as IGroup;\n // 添加至场景树\n container.add(crosshair as unknown as INode);\n }\n\n // 文本\n if (label.visible) {\n const orient = angleLabelOrientAttribute(angle);\n const labelAttrs = {\n ...polarToCartesian(center, radius + label.offset, angle),\n ...this.xHair.label,\n ...label,\n textStyle: {\n ...this.xHair.label?.textStyle,\n textAlign: orient.align,\n textBaseline: orient.baseline\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._angleLabelCrosshair, labelAttrs, label => {\n label.name = 'crosshair-angle-label';\n this._angleLabelCrosshair = label;\n });\n } else {\n this._angleLabelCrosshair && this._angleLabelCrosshair.hideAll();\n }\n }\n }\n\n private _layoutHorizontal(crosshairInfo: ICrosshairInfo) {\n if (crosshairInfo._isCache && this.enableRemain) {\n return;\n }\n\n const { center, startAngle, endAngle, distance, sides, axis, label, point, radius, innerRadius, visible } =\n crosshairInfo;\n const container = this.getContainer();\n if (visible) {\n const crosshairType = this.yHair.smooth ? 'circle' : 'polygon';\n\n let polygonRadius = distance;\n if (crosshairType === 'polygon') {\n const axisCenter = axis.getCenter();\n // 需要计算半径\n // 获取当前点的角度\n const curAngle = getAngleByPoint(axisCenter, point);\n const stepAngle = (endAngle - startAngle) / sides;\n const index = Math.floor((curAngle - startAngle) / stepAngle);\n const preAngle = index * stepAngle + startAngle;\n const nextAngle = Math.min((index + 1) * stepAngle + startAngle, endAngle);\n\n const prePoint = polarToCartesian(axisCenter, distance, preAngle);\n const nextPoint = polarToCartesian(axisCenter, distance, nextAngle);\n // 求交点\n const insertPoint = getIntersectPoint(\n [nextPoint.x, nextPoint.y],\n [prePoint.x, prePoint.y],\n [axisCenter.x, axisCenter.y],\n [point.x, point.y]\n );\n if (insertPoint) {\n polygonRadius = clamp(\n PointService.distancePN(point, insertPoint[0], insertPoint[1]) + distance,\n innerRadius,\n radius\n );\n }\n }\n const positionAttrs = {\n center,\n startAngle: startAngle,\n endAngle: endAngle,\n radius: polygonRadius,\n sides\n };\n\n if (this._radiusCrosshair) {\n this._radiusCrosshair.setAttributes(positionAttrs as unknown as any);\n } else {\n let crosshair;\n if (crosshairType === 'polygon') {\n crosshair = new PolygonCrosshair({\n ...positionAttrs,\n lineStyle: this.yHair.style,\n zIndex: this.gridZIndex + 1 // 样式优化:线盖在面上\n });\n } else {\n crosshair = new CircleCrosshair({\n ...positionAttrs,\n lineStyle: this.yHair.style,\n zIndex: this.gridZIndex\n });\n }\n this._radiusCrosshair = crosshair as unknown as IGroup;\n // 添加至场景树\n container.add(crosshair as unknown as INode);\n }\n\n // 文本\n if (label.visible) {\n const orient = radiusLabelOrientAttribute(startAngle);\n const labelAttrs = {\n ...polarToCartesian(center, polygonRadius, startAngle),\n ...this.yHair.label,\n ...label,\n textStyle: {\n ...this.yHair.label?.textStyle,\n textAlign: orient.align,\n textBaseline: orient.baseline\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._radiusLabelCrosshair, labelAttrs, label => {\n label.name = 'crosshair-radius-label';\n this._radiusLabelCrosshair = label;\n });\n } else {\n this._radiusLabelCrosshair && this._radiusLabelCrosshair.hideAll();\n }\n }\n }\n\n protected _parseFieldInfo() {\n const { categoryField, valueField } = this._crosshairConfig as IPolarCrosshairSpec;\n if (categoryField && categoryField.visible) {\n this.xHair = this._parseField(categoryField, 'categoryField');\n }\n if (valueField && valueField.visible) {\n this.yHair = this._parseField(valueField, 'valueField');\n this.yHair.smooth = valueField?.line?.smooth;\n }\n }\n\n private _updateCrosshairLabel(label: Tag, labelAttrs: any, callback: (label: Tag) => void) {\n // 文本\n const container = this.getContainer();\n if (label) {\n label.setAttributes(labelAttrs);\n } else {\n label = new Tag(labelAttrs);\n container.add(label as unknown as INode);\n callback(label);\n }\n limitTagInBounds(label, this._getLimitBounds());\n }\n\n clear() {\n [(this._radiusCrosshair, this._radiusLabelCrosshair, this._angleCrosshair, this._angleLabelCrosshair)].forEach(\n c => {\n if (c) {\n this.getContainer()?.removeChild(c as unknown as INode);\n c = null;\n }\n }\n );\n\n super.clear();\n }\n}\n"]}
@@ -4,7 +4,7 @@ import { DataFilterBaseComponent } from '../data-filter-base-component';
4
4
  import { DataZoom as DataZoomComponent } from '@visactor/vrender-components';
5
5
  import type { IRectGraphicAttribute, ISymbolGraphicAttribute } from '@visactor/vrender';
6
6
  import type { Datum } from '../../../typings';
7
- import type { ILinearScale } from '@visactor/vscale';
7
+ import type { ILinearScale, IBaseScale } from '@visactor/vscale';
8
8
  import type { IDataZoomSpec } from './interface';
9
9
  export declare class DataZoom<T extends IDataZoomSpec = IDataZoomSpec> extends DataFilterBaseComponent<T> {
10
10
  static type: ComponentTypeEnum;
@@ -30,6 +30,7 @@ export declare class DataZoom<T extends IDataZoomSpec = IDataZoomSpec> extends D
30
30
  protected _computeMiddleHandlerSize(): number;
31
31
  protected _computeWidth(): number;
32
32
  protected _computeHeight(): number;
33
+ protected _isScaleValid(scale: IBaseScale | ILinearScale): boolean;
33
34
  protected _dataToPositionX: (datum: Datum) => number;
34
35
  protected _dataToPositionX2: (datum: Datum) => number;
35
36
  protected _dataToPositionY: (datum: Datum) => number;
@@ -1,4 +1,4 @@
1
- import { isArray, isNil, isNumber } from "@visactor/vutils";
1
+ import { isArray, isNil, isNumber, uniqArray } from "@visactor/vutils";
2
2
 
3
3
  import { mergeSpec } from "../../../util";
4
4
 
@@ -10,7 +10,7 @@ import { DataZoom as DataZoomComponent } from "@visactor/vrender-components";
10
10
 
11
11
  import { transformToGraphic } from "../../../util/style";
12
12
 
13
- import { LinearScale } from "@visactor/vscale";
13
+ import { LinearScale, isContinuous, isDiscrete } from "@visactor/vscale";
14
14
 
15
15
  import { ChartEvent, LayoutLevel, LayoutZIndex } from "../../../constant";
16
16
 
@@ -119,10 +119,15 @@ export class DataZoom extends DataFilterBaseComponent {
119
119
  _computeHeight() {
120
120
  return !1 === this._visible ? 0 : isNumber(this._spec.height) ? this._spec.height : this._isHorizontal ? this._backgroundSize + this._middleHandlerSize : this.getLayoutRect().height - (this._startHandlerSize + this._endHandlerSize) / 2;
121
121
  }
122
+ _isScaleValid(scale) {
123
+ if (!scale || !scale.domain()) return !1;
124
+ const domain = scale.domain();
125
+ return (!isContinuous(scale.type) || domain[0] !== domain[1]) && (!isDiscrete(scale.type) || 1 !== uniqArray(domain).length);
126
+ }
122
127
  _createOrUpdateComponent() {
123
128
  var _a, _b, _c;
124
129
  if (!this._component && this._visible) {
125
- const container = this.getContainer();
130
+ const container = this.getContainer(), xScale = this._isHorizontal ? this._stateScale : this._valueScale, yScale = this._isHorizontal ? this._valueScale : this._stateScale, isNeedPreview = this._isScaleValid(xScale) && this._isScaleValid(yScale);
126
131
  this._component = new DataZoomComponent(Object.assign({
127
132
  zIndex: this.layoutZIndex,
128
133
  start: this._start,
@@ -139,9 +144,9 @@ export class DataZoom extends DataFilterBaseComponent {
139
144
  showDetail: null === (_a = this._spec) || void 0 === _a ? void 0 : _a.showDetail,
140
145
  brushSelect: null !== (_c = null === (_b = this._spec) || void 0 === _b ? void 0 : _b.brushSelect) && void 0 !== _c && _c,
141
146
  previewData: this._data.getLatestData(),
142
- previewCallbackX: this._dataToPositionX,
143
- previewCallbackY: this._dataToPositionY
144
- }, this._getComponentAttrs())), this._isHorizontal ? this._component.setPreviewCallbackY1(this._dataToPositionY2) : this._component.setPreviewCallbackX1(this._dataToPositionX2),
147
+ previewCallbackX: isNeedPreview && this._dataToPositionX,
148
+ previewCallbackY: isNeedPreview && this._dataToPositionY
149
+ }, this._getComponentAttrs())), this._isHorizontal ? isNeedPreview && this._component.setPreviewCallbackY1(this._dataToPositionY2) : isNeedPreview && this._component.setPreviewCallbackX1(this._dataToPositionX2),
145
150
  this._component.setStatePointToData((state => this._statePointToData(state))), this._component.setUpdateStateCallback(((start, end) => {
146
151
  this._handleChange(start, end);
147
152
  })), container.add(this._component), this._updateScaleRange();
@@ -219,8 +224,9 @@ export class DataZoom extends DataFilterBaseComponent {
219
224
  };
220
225
  }
221
226
  clear() {
222
- this._component && (this._container.removeChild(this._component), this._component = null),
223
- super.clear();
227
+ var _a;
228
+ this._component && (null === (_a = this.getContainer()) || void 0 === _a || _a.removeChild(this._component),
229
+ this._component = null), super.clear();
224
230
  }
225
231
  }
226
232
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/data-zoom/data-zoom/data-zoom.ts"],"names":[],"mappings":"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","file":"data-zoom.js","sourcesContent":["import { isArray, isNil, isNumber } from '@visactor/vutils';\nimport { mergeSpec } from '../../../util';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface';\nimport { DataFilterBaseComponent } from '../data-filter-base-component';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataZoom as DataZoomComponent } from '@visactor/vrender-components';\nimport { transformToGraphic } from '../../../util/style';\nimport type { IRectGraphicAttribute, INode, ISymbolGraphicAttribute } from '@visactor/vrender';\nimport type { Datum } from '../../../typings';\nimport type { ILinearScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { LinearScale } from '@visactor/vscale';\nimport { ChartEvent, LayoutLevel, LayoutZIndex } from '../../../constant';\nimport type { IDataZoomSpec } from './interface';\nimport { IFilterMode } from '../constant';\n\nexport class DataZoom<T extends IDataZoomSpec = IDataZoomSpec> extends DataFilterBaseComponent<T> {\n static type = ComponentTypeEnum.dataZoom;\n type = ComponentTypeEnum.dataZoom;\n name: string = ComponentTypeEnum.dataZoom;\n\n layoutZIndex: number = LayoutZIndex.DataZoom;\n layoutLevel: number = LayoutLevel.DataZoom;\n\n // datazoom组件\n protected _component!: DataZoomComponent;\n\n protected _valueScale!: ILinearScale;\n\n protected _backgroundSize!: number;\n protected _middleHandlerSize!: number;\n protected _startHandlerSize!: number;\n protected _endHandlerSize!: number;\n\n static createComponent(spec: any, options: IComponentOption) {\n const compSpec = spec.dataZoom || options.defaultSpec;\n if (isNil(compSpec)) {\n return undefined;\n }\n if (!isArray(compSpec)) {\n return new DataZoom(compSpec, { ...options, specKey: 'dataZoom' });\n }\n const zooms: DataZoom[] = [];\n compSpec.forEach((s, i: number) => {\n zooms.push(new DataZoom(s, { ...options, specIndex: i, specKey: 'dataZoom' }));\n });\n return zooms;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, {\n ...options\n });\n\n this._valueField = 'y';\n this._filterMode = spec.filterMode ?? IFilterMode.filter;\n }\n\n created() {\n super.created();\n this._initValueScale();\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n // size相关\n this._backgroundSize = this._spec.background?.size ?? 30;\n this._middleHandlerSize = this._computeMiddleHandlerSize();\n this._width = this._computeWidth();\n this._height = this._computeHeight();\n // startHandler和endHandler size如果没有配置,则默认跟随background宽 or 高\n if (isNil(this._originalSpec?.startHandler?.style?.size)) {\n this._spec.startHandler.style.size = this._isHorizontal\n ? this._height - this._middleHandlerSize\n : this._width - this._middleHandlerSize;\n }\n if (isNil(this._originalSpec?.startHandler?.style?.size)) {\n this._spec.endHandler.style.size = this._isHorizontal\n ? this._height - this._middleHandlerSize\n : this._width - this._middleHandlerSize;\n }\n const startHandlerVisble = this._spec.startHandler.style.visible ?? true;\n const endHandlerVisble = this._spec.endHandler.style.visible ?? true;\n this._startHandlerSize = startHandlerVisble ? this._spec.startHandler.style.size : 0;\n this._endHandlerSize = endHandlerVisble ? this._spec.endHandler.style.size : 0;\n }\n\n protected _prepareSpecBeforeMergingTheme(originalSpec: T): T {\n const newSpec: T = {\n ...originalSpec\n };\n // 为了减少主题更改造成的影响,如果用户在 spec 配置了主题默认关闭的 mark,则自动加上 visible: true\n const { selectedBackgroundChart = {} } = newSpec;\n const { line, area } = selectedBackgroundChart;\n if (line || area) {\n newSpec.selectedBackgroundChart = {\n ...selectedBackgroundChart,\n line:\n line && line.visible !== false\n ? {\n ...line,\n style: {\n ...line.style,\n visible: true // FIXME: visible 应该提到更上面,等 datazoom 支持\n }\n }\n : line,\n area:\n area && area.visible !== false\n ? {\n ...area,\n style: {\n ...area.style,\n visible: true // FIXME: visible 应该提到更上面,等 datazoom 支持\n }\n }\n : area\n };\n }\n return newSpec;\n }\n\n /** LifeCycle API**/\n onLayoutEnd(ctx: any): void {\n this._updateScaleRange();\n super.onLayoutEnd(ctx);\n }\n\n protected _initValueScale() {\n const domain = this._computeDomainOfValueScale();\n\n if (domain) {\n const valueScale = new LinearScale();\n valueScale.domain(domain);\n this._valueScale = valueScale;\n }\n }\n\n protected _updateScaleRange() {\n const handlerSize = (this._startHandlerSize + this._endHandlerSize) / 2;\n if (!this._stateScale || !this._valueScale) {\n return;\n }\n if (this._isHorizontal) {\n this._stateScale.range([0, this._computeWidth() - handlerSize]);\n this._valueScale.range([this._computeHeight() - this._middleHandlerSize, 0]);\n } else if (this.layoutOrient === 'left') {\n this._stateScale.range([0, this._computeHeight() - handlerSize]);\n this._valueScale.range([this._computeWidth() - this._middleHandlerSize, 0]);\n } else {\n this._stateScale.range([0, this._computeHeight() - handlerSize]);\n this._valueScale.range([0, this._computeWidth() - this._middleHandlerSize]);\n }\n\n if (this._component) {\n this._component.setAttributes({\n size: {\n width: this._computeWidth(),\n height: this._computeHeight()\n }\n });\n }\n }\n\n protected _computeDomainOfValueScale() {\n const domain = this._data.getLatestData().map((d: any) => d[this._valueField]);\n\n return domain.length ? [Math.min.apply(null, domain), Math.max.apply(null, domain)] : null;\n }\n\n protected _computeMiddleHandlerSize(): number {\n let size = 0;\n if (this._spec?.middleHandler?.visible) {\n const middleHandlerIconSize = this._spec.middleHandler.icon.style.size ?? 8;\n const middleHandlerBackSize = this._spec.middleHandler.background.size ?? 40;\n size += Math.max(middleHandlerIconSize as number, middleHandlerBackSize);\n }\n return size;\n }\n\n protected _computeWidth(): number {\n if (this._visible === false) {\n return 0;\n }\n\n if (isNumber(this._spec.width)) {\n return this._spec.width;\n }\n\n if (this._isHorizontal) {\n return this.getLayoutRect().width;\n }\n\n return this._backgroundSize + this._middleHandlerSize;\n }\n\n protected _computeHeight(): number {\n if (this._visible === false) {\n return 0;\n }\n\n if (isNumber(this._spec.height)) {\n return this._spec.height;\n }\n\n if (this._isHorizontal) {\n return this._backgroundSize + this._middleHandlerSize;\n }\n return this.getLayoutRect().height - (this._startHandlerSize + this._endHandlerSize) / 2;\n }\n\n protected _dataToPositionX = (datum: Datum): number => {\n const offsetLeft = this._orient === 'left' ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? this._startHandlerSize / 2 : 0;\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const xField = this._isHorizontal ? this._stateField : this._valueField;\n return xScale.scale(datum[xField]) + this.getLayoutStartPoint().x + offsetLeft + offsetHandler;\n };\n\n protected _dataToPositionX2 = (datum: Datum): number => {\n const offsetLeft = this._orient === 'left' ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? this._startHandlerSize / 2 : 0;\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const min = xScale.domain()[0];\n return xScale.scale(min) + this.getLayoutStartPoint().x + offsetLeft + offsetHandler;\n };\n\n protected _dataToPositionY = (datum: Datum): number => {\n const offsetTop = this._isHorizontal ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? 0 : this._startHandlerSize / 2;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const yField = this._isHorizontal ? this._valueField : this._stateField;\n return yScale.scale(datum[yField]) + this.getLayoutStartPoint().y + offsetTop + offsetHandler;\n };\n\n protected _dataToPositionY2 = (datum: Datum): number => {\n const offsetTop = this._isHorizontal ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? 0 : this._startHandlerSize / 2;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const min = yScale.domain()[0];\n return yScale.scale(min) + this.getLayoutStartPoint().y + offsetTop + offsetHandler;\n };\n\n protected _createOrUpdateComponent() {\n if (!this._component && this._visible) {\n const container = this.getContainer();\n this._component = new DataZoomComponent({\n zIndex: this.layoutZIndex,\n start: this._start,\n end: this._end,\n position: {\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y\n },\n orient: this._orient,\n size: {\n width: this.getLayoutRect().width,\n height: this.getLayoutRect().height\n },\n showDetail: this._spec?.showDetail,\n brushSelect: this._spec?.brushSelect ?? false,\n previewData: this._data.getLatestData(),\n previewCallbackX: this._dataToPositionX,\n previewCallbackY: this._dataToPositionY,\n ...(this._getComponentAttrs() as any)\n });\n\n if (this._isHorizontal) {\n this._component.setPreviewCallbackY1(this._dataToPositionY2);\n } else {\n this._component.setPreviewCallbackX1(this._dataToPositionX2);\n }\n this._component.setStatePointToData((state: number) => this._statePointToData(state));\n this._component.setUpdateStateCallback((start: number, end: number) => {\n this._handleChange(start, end);\n });\n\n container.add(this._component as unknown as INode);\n\n this._updateScaleRange();\n }\n }\n\n protected _handleChange(start: number, end: number, updateComponent?: boolean) {\n if (updateComponent && this._component) {\n this._component.setStartAndEnd(start, end);\n }\n\n this._start = start;\n this._end = end;\n const hasChange = this._handleStateChange(this._statePointToData(start), this._statePointToData(end));\n if (hasChange) {\n this.event.emit(ChartEvent.dataZoomChange, {\n model: this,\n value: {\n filterData: this._filterMode !== IFilterMode.axis,\n start,\n end,\n startValue: this._startValue,\n endValue: this._endValue,\n newDomain: this._newDomain\n }\n });\n }\n }\n\n protected _handleDataCollectionChange() {\n const data = this._data.getDataView();\n data.reRunAllTransform();\n this._component?.setPreviewData(data.latestData);\n\n if (this._valueScale) {\n const domain = this._computeDomainOfValueScale();\n\n if (domain) {\n this._valueScale.domain(domain);\n }\n }\n }\n\n protected _initEvent() {\n // do nothing\n }\n\n protected _getComponentAttrs() {\n return {\n backgroundStyle: transformToGraphic(this._spec.background?.style) as unknown as IRectGraphicAttribute,\n startHandlerStyle: transformToGraphic(this._spec.startHandler?.style) as unknown as ISymbolGraphicAttribute,\n middleHandlerStyle: {\n visible: this._spec.middleHandler?.visible ?? false,\n icon: transformToGraphic(this._spec.middleHandler?.icon?.style) as unknown as ISymbolGraphicAttribute,\n background: {\n size: this._spec.middleHandler?.background?.size,\n style: transformToGraphic(this._spec.middleHandler.background?.style)\n } as any\n },\n endHandlerStyle: transformToGraphic(this._spec.endHandler?.style) as unknown as ISymbolGraphicAttribute,\n startTextStyle: {\n padding: this._spec.startText?.padding,\n formatMethod: this._spec.startText?.formatMethod,\n textStyle: transformToGraphic(this._spec.startText?.style)\n } as unknown,\n endTextStyle: {\n padding: this._spec.endText?.padding,\n formatMethod: this._spec.endText?.formatMethod,\n textStyle: transformToGraphic(this._spec.endText?.style)\n } as unknown,\n selectedBackgroundStyle: transformToGraphic(\n this._spec.selectedBackground.style\n ) as unknown as IRectGraphicAttribute,\n dragMaskStyle: transformToGraphic(this._spec.dragMask?.style) as unknown as IRectGraphicAttribute,\n backgroundChartStyle: {\n line: mergeSpec(transformToGraphic(this._spec.backgroundChart?.line?.style), { fill: false }),\n area: {\n curveType: 'basis',\n visible: true,\n ...transformToGraphic(this._spec.backgroundChart?.area?.style)\n }\n },\n selectedBackgroundChartStyle: {\n line: mergeSpec(transformToGraphic(this._spec.selectedBackgroundChart?.line?.style), { fill: false }),\n area: {\n curveType: 'basis',\n visible: true,\n ...transformToGraphic(this._spec.selectedBackgroundChart?.area?.style)\n }\n }\n };\n }\n\n clear(): void {\n if (this._component) {\n this._container.removeChild(this._component as unknown as INode);\n this._component = null;\n }\n super.clear();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/data-zoom/data-zoom/data-zoom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAKzD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,OAAO,QAAkD,SAAQ,uBAA0B;IAkB/F,MAAM,CAAC,eAAe,CAAC,IAAS,EAAE,OAAyB;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;QACtD,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE;YACnB,OAAO,SAAS,CAAC;SAClB;QACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YACtB,OAAO,IAAI,QAAQ,CAAC,QAAQ,kCAAO,OAAO,KAAE,OAAO,EAAE,UAAU,IAAG,CAAC;SACpE;QACD,MAAM,KAAK,GAAe,EAAE,CAAC;QAC7B,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAS,EAAE,EAAE;YAChC,KAAK,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,kCAAO,OAAO,KAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,IAAG,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,YAAY,IAAO,EAAE,OAAyB;;QAC5C,KAAK,CAAC,IAAI,oBACL,OAAO,EACV,CAAC;QAlCL,SAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC;QAClC,SAAI,GAAW,iBAAiB,CAAC,QAAQ,CAAC;QAE1C,iBAAY,GAAW,YAAY,CAAC,QAAQ,CAAC;QAC7C,gBAAW,GAAW,WAAW,CAAC,QAAQ,CAAC;QA4MjC,qBAAgB,GAAG,CAAC,KAAY,EAAU,EAAE;YACpD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;YACxE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;YACxE,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,UAAU,GAAG,aAAa,CAAC;QACjG,CAAC,CAAC;QAEQ,sBAAiB,GAAG,CAAC,KAAY,EAAU,EAAE;YACrD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;YACxE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,UAAU,GAAG,aAAa,CAAC;QACvF,CAAC,CAAC;QAEQ,qBAAgB,GAAG,CAAC,KAAY,EAAU,EAAE;YACpD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;YACnE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;YAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;YACxE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;YACxE,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,SAAS,GAAG,aAAa,CAAC;QAChG,CAAC,CAAC;QAEQ,sBAAiB,GAAG,CAAC,KAAY,EAAU,EAAE;YACrD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;YACnE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;YAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;YACxE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,SAAS,GAAG,aAAa,CAAC;QACtF,CAAC,CAAC;QA1MA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,MAAA,IAAI,CAAC,UAAU,mCAAI,WAAW,CAAC,MAAM,CAAC;IAC3D,CAAC;IAED,OAAO;QACL,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,eAAe;;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QAGxB,IAAI,CAAC,eAAe,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,UAAU,0CAAE,IAAI,mCAAI,EAAE,CAAC;QACzD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC3D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAErC,IAAI,KAAK,CAAC,MAAA,MAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,YAAY,0CAAE,KAAK,0CAAE,IAAI,CAAC,EAAE;YACxD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa;gBACrD,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB;gBACxC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC;SAC3C;QACD,IAAI,KAAK,CAAC,MAAA,MAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,YAAY,0CAAE,KAAK,0CAAE,IAAI,CAAC,EAAE;YACxD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa;gBACnD,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB;gBACxC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC;SAC3C;QACD,MAAM,kBAAkB,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,mCAAI,IAAI,CAAC;QACzE,MAAM,gBAAgB,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,mCAAI,IAAI,CAAC;QACrE,IAAI,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,CAAC;IAES,8BAA8B,CAAC,YAAe;QACtD,MAAM,OAAO,qBACR,YAAY,CAChB,CAAC;QAEF,MAAM,EAAE,uBAAuB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QACjD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,uBAAuB,CAAC;QAC/C,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,OAAO,CAAC,uBAAuB,mCAC1B,uBAAuB,KAC1B,IAAI,EACF,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK;oBAC5B,CAAC,iCACM,IAAI,KACP,KAAK,kCACA,IAAI,CAAC,KAAK,KACb,OAAO,EAAE,IAAI,OAGnB,CAAC,CAAC,IAAI,EACV,IAAI,EACF,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK;oBAC5B,CAAC,iCACM,IAAI,KACP,KAAK,kCACA,IAAI,CAAC,KAAK,KACb,OAAO,EAAE,IAAI,OAGnB,CAAC,CAAC,IAAI,GACX,CAAC;SACH;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAGD,WAAW,CAAC,GAAQ;QAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAES,eAAe;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAEjD,IAAI,MAAM,EAAE;YACV,MAAM,UAAU,GAAG,IAAI,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;SAC/B;IACH,CAAC;IAES,iBAAiB;QACzB,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAC1C,OAAO;SACR;QACD,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;SAC9E;aAAM,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE;YACvC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;SAC7E;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;SAC7E;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;gBAC5B,IAAI,EAAE;oBACJ,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE;oBAC3B,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE;iBAC9B;aACF,CAAC,CAAC;SACJ;IACH,CAAC;IAES,0BAA0B;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAE/E,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7F,CAAC;IAES,yBAAyB;;QACjC,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,aAAa,0CAAE,OAAO,EAAE;YACtC,MAAM,qBAAqB,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,mCAAI,CAAC,CAAC;YAC5E,MAAM,qBAAqB,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,mCAAI,EAAE,CAAC;YAC7E,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,qBAA+B,EAAE,qBAAqB,CAAC,CAAC;SAC1E;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAES,aAAa;QACrB,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAC3B,OAAO,CAAC,CAAC;SACV;QAED,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;SACzB;QAED,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC;SACnC;QAED,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC;IACxD,CAAC;IAES,cAAc;QACtB,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAC3B,OAAO,CAAC,CAAC;SACV;QAED,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;SAC1B;QAED,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC;SACvD;QACD,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3F,CAAC;IAES,aAAa,CAAC,KAAgC;QACtD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE;YAC7B,OAAO,KAAK,CAAC;SACd;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC9B,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;YACvD,OAAO,KAAK,CAAC;SACd;QACD,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5D,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAkCS,wBAAwB;;QAChC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;YACxE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;YACxE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC/E,IAAI,CAAC,UAAU,GAAG,IAAI,iBAAiB,iBACrC,MAAM,EAAE,IAAI,CAAC,YAAY,EACzB,KAAK,EAAE,IAAI,CAAC,MAAM,EAClB,GAAG,EAAE,IAAI,CAAC,IAAI,EACd,QAAQ,EAAE;oBACR,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;oBAC/B,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;iBAChC,EACD,MAAM,EAAE,IAAI,CAAC,OAAO,EACpB,IAAI,EAAE;oBACJ,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK;oBACjC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM;iBACpC,EACD,UAAU,EAAE,MAAA,IAAI,CAAC,KAAK,0CAAE,UAAU,EAClC,WAAW,EAAE,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,WAAW,mCAAI,KAAK,EAC7C,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,EACvC,gBAAgB,EAAE,aAAa,IAAI,IAAI,CAAC,gBAAgB,EACxD,gBAAgB,EAAE,aAAa,IAAI,IAAI,CAAC,gBAAgB,IACpD,IAAI,CAAC,kBAAkB,EAAU,EACrC,CAAC;YAEH,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aAC/E;iBAAM;gBACL,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aAC/E;YACD,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;YACtF,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,KAAa,EAAE,GAAW,EAAE,EAAE;gBACpE,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YAEH,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,UAA8B,CAAC,CAAC;YAEnD,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;IACH,CAAC;IAES,aAAa,CAAC,KAAa,EAAE,GAAW,EAAE,eAAyB;QAC3E,IAAI,eAAe,IAAI,IAAI,CAAC,UAAU,EAAE;YACtC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SAC5C;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;QACtG,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;gBACzC,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE;oBACL,UAAU,EAAE,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,IAAI;oBACjD,KAAK;oBACL,GAAG;oBACH,UAAU,EAAE,IAAI,CAAC,WAAW;oBAC5B,QAAQ,EAAE,IAAI,CAAC,SAAS;oBACxB,SAAS,EAAE,IAAI,CAAC,UAAU;iBAC3B;aACF,CAAC,CAAC;SACJ;IACH,CAAC;IAES,2BAA2B;;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAA,IAAI,CAAC,UAAU,0CAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEjD,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,MAAM,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAEjD,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;aACjC;SACF;IACH,CAAC;IAES,UAAU;IAEpB,CAAC;IAES,kBAAkB;;QAC1B,OAAO;YACL,eAAe,EAAE,kBAAkB,CAAC,MAAA,IAAI,CAAC,KAAK,CAAC,UAAU,0CAAE,KAAK,CAAqC;YACrG,iBAAiB,EAAE,kBAAkB,CAAC,MAAA,IAAI,CAAC,KAAK,CAAC,YAAY,0CAAE,KAAK,CAAuC;YAC3G,kBAAkB,EAAE;gBAClB,OAAO,EAAE,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,aAAa,0CAAE,OAAO,mCAAI,KAAK;gBACnD,IAAI,EAAE,kBAAkB,CAAC,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,aAAa,0CAAE,IAAI,0CAAE,KAAK,CAAuC;gBACrG,UAAU,EAAE;oBACV,IAAI,EAAE,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,aAAa,0CAAE,UAAU,0CAAE,IAAI;oBAChD,KAAK,EAAE,kBAAkB,CAAC,MAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,0CAAE,KAAK,CAAC;iBAC/D;aACT;YACD,eAAe,EAAE,kBAAkB,CAAC,MAAA,IAAI,CAAC,KAAK,CAAC,UAAU,0CAAE,KAAK,CAAuC;YACvG,cAAc,EAAE;gBACd,OAAO,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,SAAS,0CAAE,OAAO;gBACtC,YAAY,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,SAAS,0CAAE,YAAY;gBAChD,SAAS,EAAE,kBAAkB,CAAC,MAAA,IAAI,CAAC,KAAK,CAAC,SAAS,0CAAE,KAAK,CAAC;aAChD;YACZ,YAAY,EAAE;gBACZ,OAAO,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,OAAO,0CAAE,OAAO;gBACpC,YAAY,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,OAAO,0CAAE,YAAY;gBAC9C,SAAS,EAAE,kBAAkB,CAAC,MAAA,IAAI,CAAC,KAAK,CAAC,OAAO,0CAAE,KAAK,CAAC;aAC9C;YACZ,uBAAuB,EAAE,kBAAkB,CACzC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,CACA;YACrC,aAAa,EAAE,kBAAkB,CAAC,MAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,0CAAE,KAAK,CAAqC;YACjG,oBAAoB,EAAE;gBACpB,IAAI,EAAE,SAAS,CAAC,kBAAkB,CAAC,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,eAAe,0CAAE,IAAI,0CAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBAC7F,IAAI,kBACF,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,IAAI,IACV,kBAAkB,CAAC,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,eAAe,0CAAE,IAAI,0CAAE,KAAK,CAAC,CAC/D;aACF;YACD,4BAA4B,EAAE;gBAC5B,IAAI,EAAE,SAAS,CAAC,kBAAkB,CAAC,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,uBAAuB,0CAAE,IAAI,0CAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACrG,IAAI,kBACF,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,IAAI,IACV,kBAAkB,CAAC,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,uBAAuB,0CAAE,IAAI,0CAAE,KAAK,CAAC,CACvE;aACF;SACF,CAAC;IACJ,CAAC;IAED,KAAK;;QACH,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,MAAA,IAAI,CAAC,YAAY,EAAE,0CAAE,WAAW,CAAC,IAAI,CAAC,UAA8B,CAAC,CAAC;YACtE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACxB;QACD,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;;AAzXM,aAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC","file":"data-zoom.js","sourcesContent":["import { isArray, isNil, isNumber, uniqArray } from '@visactor/vutils';\nimport { mergeSpec } from '../../../util';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface';\nimport { DataFilterBaseComponent } from '../data-filter-base-component';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataZoom as DataZoomComponent } from '@visactor/vrender-components';\nimport { transformToGraphic } from '../../../util/style';\nimport type { IRectGraphicAttribute, INode, ISymbolGraphicAttribute } from '@visactor/vrender';\nimport type { Datum } from '../../../typings';\nimport type { ILinearScale, IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { LinearScale, isContinuous, isDiscrete } from '@visactor/vscale';\nimport { ChartEvent, LayoutLevel, LayoutZIndex } from '../../../constant';\nimport type { IDataZoomSpec } from './interface';\nimport { IFilterMode } from '../constant';\n\nexport class DataZoom<T extends IDataZoomSpec = IDataZoomSpec> extends DataFilterBaseComponent<T> {\n static type = ComponentTypeEnum.dataZoom;\n type = ComponentTypeEnum.dataZoom;\n name: string = ComponentTypeEnum.dataZoom;\n\n layoutZIndex: number = LayoutZIndex.DataZoom;\n layoutLevel: number = LayoutLevel.DataZoom;\n\n // datazoom组件\n protected _component!: DataZoomComponent;\n\n protected _valueScale!: ILinearScale;\n\n protected _backgroundSize!: number;\n protected _middleHandlerSize!: number;\n protected _startHandlerSize!: number;\n protected _endHandlerSize!: number;\n\n static createComponent(spec: any, options: IComponentOption) {\n const compSpec = spec.dataZoom || options.defaultSpec;\n if (isNil(compSpec)) {\n return undefined;\n }\n if (!isArray(compSpec)) {\n return new DataZoom(compSpec, { ...options, specKey: 'dataZoom' });\n }\n const zooms: DataZoom[] = [];\n compSpec.forEach((s, i: number) => {\n zooms.push(new DataZoom(s, { ...options, specIndex: i, specKey: 'dataZoom' }));\n });\n return zooms;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, {\n ...options\n });\n\n this._valueField = 'y';\n this._filterMode = spec.filterMode ?? IFilterMode.filter;\n }\n\n created() {\n super.created();\n this._initValueScale();\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n // size相关\n this._backgroundSize = this._spec.background?.size ?? 30;\n this._middleHandlerSize = this._computeMiddleHandlerSize();\n this._width = this._computeWidth();\n this._height = this._computeHeight();\n // startHandler和endHandler size如果没有配置,则默认跟随background宽 or 高\n if (isNil(this._originalSpec?.startHandler?.style?.size)) {\n this._spec.startHandler.style.size = this._isHorizontal\n ? this._height - this._middleHandlerSize\n : this._width - this._middleHandlerSize;\n }\n if (isNil(this._originalSpec?.startHandler?.style?.size)) {\n this._spec.endHandler.style.size = this._isHorizontal\n ? this._height - this._middleHandlerSize\n : this._width - this._middleHandlerSize;\n }\n const startHandlerVisble = this._spec.startHandler.style.visible ?? true;\n const endHandlerVisble = this._spec.endHandler.style.visible ?? true;\n this._startHandlerSize = startHandlerVisble ? this._spec.startHandler.style.size : 0;\n this._endHandlerSize = endHandlerVisble ? this._spec.endHandler.style.size : 0;\n }\n\n protected _prepareSpecBeforeMergingTheme(originalSpec: T): T {\n const newSpec: T = {\n ...originalSpec\n };\n // 为了减少主题更改造成的影响,如果用户在 spec 配置了主题默认关闭的 mark,则自动加上 visible: true\n const { selectedBackgroundChart = {} } = newSpec;\n const { line, area } = selectedBackgroundChart;\n if (line || area) {\n newSpec.selectedBackgroundChart = {\n ...selectedBackgroundChart,\n line:\n line && line.visible !== false\n ? {\n ...line,\n style: {\n ...line.style,\n visible: true // FIXME: visible 应该提到更上面,等 datazoom 支持\n }\n }\n : line,\n area:\n area && area.visible !== false\n ? {\n ...area,\n style: {\n ...area.style,\n visible: true // FIXME: visible 应该提到更上面,等 datazoom 支持\n }\n }\n : area\n };\n }\n return newSpec;\n }\n\n /** LifeCycle API**/\n onLayoutEnd(ctx: any): void {\n this._updateScaleRange();\n super.onLayoutEnd(ctx);\n }\n\n protected _initValueScale() {\n const domain = this._computeDomainOfValueScale();\n\n if (domain) {\n const valueScale = new LinearScale();\n valueScale.domain(domain);\n this._valueScale = valueScale;\n }\n }\n\n protected _updateScaleRange() {\n const handlerSize = (this._startHandlerSize + this._endHandlerSize) / 2;\n if (!this._stateScale || !this._valueScale) {\n return;\n }\n if (this._isHorizontal) {\n this._stateScale.range([0, this._computeWidth() - handlerSize]);\n this._valueScale.range([this._computeHeight() - this._middleHandlerSize, 0]);\n } else if (this.layoutOrient === 'left') {\n this._stateScale.range([0, this._computeHeight() - handlerSize]);\n this._valueScale.range([this._computeWidth() - this._middleHandlerSize, 0]);\n } else {\n this._stateScale.range([0, this._computeHeight() - handlerSize]);\n this._valueScale.range([0, this._computeWidth() - this._middleHandlerSize]);\n }\n\n if (this._component) {\n this._component.setAttributes({\n size: {\n width: this._computeWidth(),\n height: this._computeHeight()\n }\n });\n }\n }\n\n protected _computeDomainOfValueScale() {\n const domain = this._data.getLatestData().map((d: any) => d[this._valueField]);\n\n return domain.length ? [Math.min.apply(null, domain), Math.max.apply(null, domain)] : null;\n }\n\n protected _computeMiddleHandlerSize(): number {\n let size = 0;\n if (this._spec?.middleHandler?.visible) {\n const middleHandlerIconSize = this._spec.middleHandler.icon.style.size ?? 8;\n const middleHandlerBackSize = this._spec.middleHandler.background.size ?? 40;\n size += Math.max(middleHandlerIconSize as number, middleHandlerBackSize);\n }\n return size;\n }\n\n protected _computeWidth(): number {\n if (this._visible === false) {\n return 0;\n }\n\n if (isNumber(this._spec.width)) {\n return this._spec.width;\n }\n\n if (this._isHorizontal) {\n return this.getLayoutRect().width;\n }\n\n return this._backgroundSize + this._middleHandlerSize;\n }\n\n protected _computeHeight(): number {\n if (this._visible === false) {\n return 0;\n }\n\n if (isNumber(this._spec.height)) {\n return this._spec.height;\n }\n\n if (this._isHorizontal) {\n return this._backgroundSize + this._middleHandlerSize;\n }\n return this.getLayoutRect().height - (this._startHandlerSize + this._endHandlerSize) / 2;\n }\n\n protected _isScaleValid(scale: IBaseScale | ILinearScale) {\n if (!scale || !scale.domain()) {\n return false;\n }\n const domain = scale.domain();\n if (isContinuous(scale.type) && domain[0] === domain[1]) {\n return false;\n }\n if (isDiscrete(scale.type) && uniqArray(domain).length === 1) {\n return false;\n }\n return true;\n }\n\n protected _dataToPositionX = (datum: Datum): number => {\n const offsetLeft = this._orient === 'left' ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? this._startHandlerSize / 2 : 0;\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const xField = this._isHorizontal ? this._stateField : this._valueField;\n return xScale.scale(datum[xField]) + this.getLayoutStartPoint().x + offsetLeft + offsetHandler;\n };\n\n protected _dataToPositionX2 = (datum: Datum): number => {\n const offsetLeft = this._orient === 'left' ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? this._startHandlerSize / 2 : 0;\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const min = xScale.domain()[0];\n return xScale.scale(min) + this.getLayoutStartPoint().x + offsetLeft + offsetHandler;\n };\n\n protected _dataToPositionY = (datum: Datum): number => {\n const offsetTop = this._isHorizontal ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? 0 : this._startHandlerSize / 2;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const yField = this._isHorizontal ? this._valueField : this._stateField;\n return yScale.scale(datum[yField]) + this.getLayoutStartPoint().y + offsetTop + offsetHandler;\n };\n\n protected _dataToPositionY2 = (datum: Datum): number => {\n const offsetTop = this._isHorizontal ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? 0 : this._startHandlerSize / 2;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const min = yScale.domain()[0];\n return yScale.scale(min) + this.getLayoutStartPoint().y + offsetTop + offsetHandler;\n };\n\n protected _createOrUpdateComponent() {\n if (!this._component && this._visible) {\n const container = this.getContainer();\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const isNeedPreview = this._isScaleValid(xScale) && this._isScaleValid(yScale);\n this._component = new DataZoomComponent({\n zIndex: this.layoutZIndex,\n start: this._start,\n end: this._end,\n position: {\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y\n },\n orient: this._orient,\n size: {\n width: this.getLayoutRect().width,\n height: this.getLayoutRect().height\n },\n showDetail: this._spec?.showDetail,\n brushSelect: this._spec?.brushSelect ?? false,\n previewData: this._data.getLatestData(),\n previewCallbackX: isNeedPreview && this._dataToPositionX,\n previewCallbackY: isNeedPreview && this._dataToPositionY,\n ...(this._getComponentAttrs() as any)\n });\n\n if (this._isHorizontal) {\n isNeedPreview && this._component.setPreviewCallbackY1(this._dataToPositionY2);\n } else {\n isNeedPreview && this._component.setPreviewCallbackX1(this._dataToPositionX2);\n }\n this._component.setStatePointToData((state: number) => this._statePointToData(state));\n this._component.setUpdateStateCallback((start: number, end: number) => {\n this._handleChange(start, end);\n });\n\n container.add(this._component as unknown as INode);\n\n this._updateScaleRange();\n }\n }\n\n protected _handleChange(start: number, end: number, updateComponent?: boolean) {\n if (updateComponent && this._component) {\n this._component.setStartAndEnd(start, end);\n }\n\n this._start = start;\n this._end = end;\n const hasChange = this._handleStateChange(this._statePointToData(start), this._statePointToData(end));\n if (hasChange) {\n this.event.emit(ChartEvent.dataZoomChange, {\n model: this,\n value: {\n filterData: this._filterMode !== IFilterMode.axis,\n start,\n end,\n startValue: this._startValue,\n endValue: this._endValue,\n newDomain: this._newDomain\n }\n });\n }\n }\n\n protected _handleDataCollectionChange() {\n const data = this._data.getDataView();\n data.reRunAllTransform();\n this._component?.setPreviewData(data.latestData);\n\n if (this._valueScale) {\n const domain = this._computeDomainOfValueScale();\n\n if (domain) {\n this._valueScale.domain(domain);\n }\n }\n }\n\n protected _initEvent() {\n // do nothing\n }\n\n protected _getComponentAttrs() {\n return {\n backgroundStyle: transformToGraphic(this._spec.background?.style) as unknown as IRectGraphicAttribute,\n startHandlerStyle: transformToGraphic(this._spec.startHandler?.style) as unknown as ISymbolGraphicAttribute,\n middleHandlerStyle: {\n visible: this._spec.middleHandler?.visible ?? false,\n icon: transformToGraphic(this._spec.middleHandler?.icon?.style) as unknown as ISymbolGraphicAttribute,\n background: {\n size: this._spec.middleHandler?.background?.size,\n style: transformToGraphic(this._spec.middleHandler.background?.style)\n } as any\n },\n endHandlerStyle: transformToGraphic(this._spec.endHandler?.style) as unknown as ISymbolGraphicAttribute,\n startTextStyle: {\n padding: this._spec.startText?.padding,\n formatMethod: this._spec.startText?.formatMethod,\n textStyle: transformToGraphic(this._spec.startText?.style)\n } as unknown,\n endTextStyle: {\n padding: this._spec.endText?.padding,\n formatMethod: this._spec.endText?.formatMethod,\n textStyle: transformToGraphic(this._spec.endText?.style)\n } as unknown,\n selectedBackgroundStyle: transformToGraphic(\n this._spec.selectedBackground.style\n ) as unknown as IRectGraphicAttribute,\n dragMaskStyle: transformToGraphic(this._spec.dragMask?.style) as unknown as IRectGraphicAttribute,\n backgroundChartStyle: {\n line: mergeSpec(transformToGraphic(this._spec.backgroundChart?.line?.style), { fill: false }),\n area: {\n curveType: 'basis',\n visible: true,\n ...transformToGraphic(this._spec.backgroundChart?.area?.style)\n }\n },\n selectedBackgroundChartStyle: {\n line: mergeSpec(transformToGraphic(this._spec.selectedBackgroundChart?.line?.style), { fill: false }),\n area: {\n curveType: 'basis',\n visible: true,\n ...transformToGraphic(this._spec.selectedBackgroundChart?.area?.style)\n }\n }\n };\n }\n\n clear(): void {\n if (this._component) {\n this.getContainer()?.removeChild(this._component as unknown as INode);\n this._component = null;\n }\n super.clear();\n }\n}\n"]}
@@ -12,7 +12,12 @@ export const dataFilterWithNewDomain = (data, op) => {
12
12
  export const dataFilterComputeDomain = (data, op) => {
13
13
  const {stateFields: stateFields, valueFields: valueFields, dataCollection: dataCollection} = op.input, {stateField: stateField, valueField: valueField} = op.output, resultObj = {}, resultData = [];
14
14
  return dataCollection.forEach(((dv, i) => {
15
- isNil(stateFields[i]) || dv.latestData.forEach((d => {
15
+ var _a;
16
+ if (isNil(stateFields[i])) return;
17
+ const stateFieldInfo = null === (_a = dv.getFields()) || void 0 === _a ? void 0 : _a[stateFields[i]];
18
+ stateFieldInfo && stateFieldInfo.lockStatisticsByDomain && stateFieldInfo.domain.forEach((d => {
19
+ resultObj[d] = 0;
20
+ })), dv.latestData.forEach((d => {
16
21
  array(stateFields[i]).forEach((state => {
17
22
  isNil(d[state]) || (isNil(resultObj[d[state]]) && (resultObj[d[state]] = 0), isNil(valueFields[i]) || (resultObj[d[state]] += isNaN(parseFloat(d[valueFields[i]])) ? 1 : parseFloat(d[valueFields[i]])));
18
23
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/data-zoom/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import { array, isNil } from '../../util';\nimport type { DataView } from '@visactor/vdataset';\n\nexport interface IDataFilterWithNewDomainOption {\n getNewDomain: () => any[];\n isContinuous: () => boolean;\n field: () => string;\n}\n\n/**\n * 保证数据筛选的结果全都在坐标轴的新domain范围中,防止出现point数据因为超出domain范围而绘制在原点的情况\n */\nexport const dataFilterWithNewDomain = (data: Array<any>, op: IDataFilterWithNewDomainOption) => {\n const { getNewDomain, isContinuous, field } = op;\n const datumField = field();\n const newDomain = getNewDomain();\n if (isNil(newDomain) || isNil(datumField)) {\n return data;\n }\n if (newDomain.length === 0) {\n return [];\n }\n\n let filter = null;\n if (isContinuous()) {\n filter = (d: any) => d[datumField] >= newDomain[0] && d[datumField] <= newDomain[1];\n } else {\n filter = (d: any) => {\n // 这里d[f] + ''的原因是:数据是number类型的,但轴声明为band轴,domain会强制将number => string,所以filter的时候要将data中的number => string\n return newDomain.indexOf(d[datumField] + '') >= 0 || newDomain.indexOf(d[datumField]) >= 0;\n };\n }\n\n return data.filter(filter);\n};\n\nexport interface IDataFilterComputeDomainOption {\n input: {\n dataCollection: any[];\n stateFields: string[];\n valueFields: string[];\n method: 'sum'; // todo: 也许可以提供多种数据统计方法 @chensiji\n };\n output: {\n stateField: string;\n valueField: string;\n };\n}\n\nexport const dataFilterComputeDomain = (data: Array<any>, op: IDataFilterComputeDomainOption) => {\n const { stateFields, valueFields, dataCollection } = op.input;\n const { stateField, valueField } = op.output;\n const resultObj = {};\n const resultData: any[] = [];\n\n dataCollection.forEach((dv: DataView, i) => {\n if (isNil(stateFields[i])) {\n return;\n }\n\n dv.latestData.forEach((d: any) => {\n // 针对rangeColumn等xField为数组形式的图表,需要将xField的所有value都记录下来\n array(stateFields[i]).forEach(state => {\n if (!isNil(d[state])) {\n if (isNil(resultObj[d[state]])) {\n resultObj[d[state]] = 0;\n }\n if (!isNil(valueFields[i])) {\n // 传进来的d[yFields[i]]可能是stringnumber\n // 传进来的d[yFields[i]]可能是普通的字符串,这时计数按1计算(其实相当于计算数据条数)\n resultObj[d[state]] += isNaN(parseFloat(d[valueFields[i]])) ? 1 : parseFloat(d[valueFields[i]]);\n }\n }\n });\n });\n });\n Object.keys(resultObj).forEach((d, i) => {\n const res = { [stateField]: d };\n\n if (valueField) {\n res[valueField] = resultObj[d];\n }\n\n resultData.push(res);\n });\n\n return resultData;\n};\n"]}
1
+ {"version":3,"sources":["../src/component/data-zoom/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import { array, isNil } from '../../util';\nimport type { DataView } from '@visactor/vdataset';\n\nexport interface IDataFilterWithNewDomainOption {\n getNewDomain: () => any[];\n isContinuous: () => boolean;\n field: () => string;\n}\n\n/**\n * 保证数据筛选的结果全都在坐标轴的新domain范围中,防止出现point数据因为超出domain范围而绘制在原点的情况\n */\nexport const dataFilterWithNewDomain = (data: Array<any>, op: IDataFilterWithNewDomainOption) => {\n const { getNewDomain, isContinuous, field } = op;\n const datumField = field();\n const newDomain = getNewDomain();\n if (isNil(newDomain) || isNil(datumField)) {\n return data;\n }\n if (newDomain.length === 0) {\n return [];\n }\n\n let filter = null;\n if (isContinuous()) {\n filter = (d: any) => d[datumField] >= newDomain[0] && d[datumField] <= newDomain[1];\n } else {\n filter = (d: any) => {\n // 这里d[f] + ''的原因是:数据是number类型的,但轴声明为band轴,domain会强制将number => string,所以filter的时候要将data中的number => string\n return newDomain.indexOf(d[datumField] + '') >= 0 || newDomain.indexOf(d[datumField]) >= 0;\n };\n }\n\n return data.filter(filter);\n};\n\nexport interface IDataFilterComputeDomainOption {\n input: {\n dataCollection: any[];\n stateFields: string[];\n valueFields: string[];\n method: 'sum'; // todo: 也许可以提供多种数据统计方法 @chensiji\n };\n output: {\n stateField: string;\n valueField: string;\n };\n}\n\nexport const dataFilterComputeDomain = (data: Array<any>, op: IDataFilterComputeDomainOption) => {\n const { stateFields, valueFields, dataCollection } = op.input;\n const { stateField, valueField } = op.output;\n const resultObj = {};\n const resultData: any[] = [];\n\n dataCollection.forEach((dv: DataView, i) => {\n if (isNil(stateFields[i])) {\n return;\n }\n // 按照用户指定的domain进行排序(这里不通过getRawDataStatistics来取是因为时机不对,此时getRawDataStatistics还没有正确结果)\n const stateFieldInfo = dv.getFields()?.[stateFields[i]];\n if (stateFieldInfo && stateFieldInfo.lockStatisticsByDomain) {\n stateFieldInfo.domain.forEach((d: any) => {\n resultObj[d] = 0;\n });\n }\n dv.latestData.forEach((d: any) => {\n // 针对rangeColumn等xField为数组形式的图表,需要将xField的所有value都记录下来\n array(stateFields[i]).forEach(state => {\n if (!isNil(d[state])) {\n if (isNil(resultObj[d[state]])) {\n resultObj[d[state]] = 0;\n }\n if (!isNil(valueFields[i])) {\n // 传进来的d[yFields[i]]可能是stringnumber\n // 传进来的d[yFields[i]]可能是普通的字符串,这时计数按1计算(其实相当于计算数据条数)\n resultObj[d[state]] += isNaN(parseFloat(d[valueFields[i]])) ? 1 : parseFloat(d[valueFields[i]]);\n }\n }\n });\n });\n });\n Object.keys(resultObj).forEach((d, i) => {\n const res = { [stateField]: d };\n\n if (valueField) {\n res[valueField] = resultObj[d];\n }\n\n resultData.push(res);\n });\n\n return resultData;\n};\n"]}
@@ -26,7 +26,7 @@ export declare class GeoCoordinate extends BaseComponent<IGeoRegionSpec> impleme
26
26
  y: number;
27
27
  }>;
28
28
  private _actualScale;
29
- getScale(): number;
29
+ getZoom(): number;
30
30
  private _evaluated;
31
31
  private _lastHeight;
32
32
  private _lastWidth;
@@ -61,7 +61,7 @@ export class GeoCoordinate extends BaseComponent {
61
61
  name: this._projectionSpec.name
62
62
  });
63
63
  }
64
- getScale() {
64
+ getZoom() {
65
65
  return this._actualScale;
66
66
  }
67
67
  static createComponent(spec, options) {
@@ -77,10 +77,11 @@ export class GeoCoordinate extends BaseComponent {
77
77
  })), result;
78
78
  }
79
79
  setAttrFromSpec() {
80
- var _a, _b;
80
+ var _a, _b, _c;
81
81
  super.setAttrFromSpec(), this._spec.roam && this.initZoomable(this.event, this._option.mode),
82
82
  this._projectionSpec = mergeSpec(this._projectionSpec, this._spec.projection), this._projectionSpec.zoom > (null === (_a = this._spec.zoomLimit) || void 0 === _a ? void 0 : _a.max) && (this._projectionSpec.zoom = this._spec.zoomLimit.max),
83
83
  this._projectionSpec.zoom < (null === (_b = this._spec.zoomLimit) || void 0 === _b ? void 0 : _b.min) && (this._projectionSpec.zoom = this._spec.zoomLimit.min),
84
+ this._actualScale = null !== (_c = this._projectionSpec.zoom) && void 0 !== _c ? _c : 1,
84
85
  this._longitudeField = this._spec.longitudeField, this._latitudeField = this._spec.latitudeField;
85
86
  }
86
87
  created() {
@@ -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 { eachSeries, isNil, mergeSpec } from '../../util';\nimport { ChartEvent, PREFIX } from '../../constant/index';\nimport type { ICartesianSeries, IGeoSeries } from '../../series/interface';\nimport { SeriesTypeEnum } from '../../series/interface/type';\nimport type { IGeoCoordinate, IGeoCoordinateHelper, IGeoCoordinateSpec, IProjectionSpec } from './interface';\nimport type { BaseEventParams, ExtendEventParam, PanEventParam, ZoomEventParam } from '../../event/interface';\nimport type { IChartSpec, StringOrNumber } from '../../typings';\nimport type { IZoomable } from '../../interaction/zoom/zoomable';\nimport { Zoomable } from '../../interaction/zoom/zoomable';\nimport { isValid, mixin } from '@visactor/vutils';\nimport { DEFAULT_MAP_LOOK_UP_KEY } from '../../data/transforms/map';\n\nexport function projectionName(key: string, id: number) {\n return `${PREFIX}_${id}_${key}`;\n}\nexport class GeoCoordinate extends BaseComponent<IGeoRegionSpec> implements IGeoCoordinate {\n static type = ComponentTypeEnum.geoCoordinate;\n type = ComponentTypeEnum.geoCoordinate;\n name: string = ComponentTypeEnum.geoCoordinate;\n\n layoutType: ILayoutItem['layoutType'] = 'absolute';\n\n _longitudeField?: string;\n get longitudeField() {\n return this._longitudeField;\n }\n\n _latitudeField?: string;\n get latitudeField() {\n return this._latitudeField;\n }\n\n protected _projectionSpec: IProjectionSpec = {\n name: projectionName(this.type, this.id),\n type: 'mercator'\n };\n get projectionSpec() {\n return this._projectionSpec;\n }\n setProjection(projectionSpec: IGeoCoordinateSpec['projection']) {\n this._projectionSpec = {\n ...projectionSpec,\n name: this._projectionSpec.name\n };\n }\n\n protected _projection!: Projection;\n\n protected _centerCache: Map<StringOrNumber, { x: number; y: number }>;\n\n private _actualScale = 1;\n getScale() {\n return this._actualScale;\n }\n\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 } as any;\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 = mergeSpec(this._projectionSpec, this._spec.projection);\n if (this._projectionSpec.zoom > this._spec.zoomLimit?.max) {\n this._projectionSpec.zoom = this._spec.zoomLimit.max;\n }\n if (this._projectionSpec.zoom < this._spec.zoomLimit?.min) {\n this._projectionSpec.zoom = this._spec.zoomLimit.min;\n }\n 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 this._initCenterCache();\n // FIXME: 这里是在开启缩放时,处理关联的symbol等mark,在地图缩放时应该同步缩放\n // this.rescaleMark();\n }\n\n private _handleChartZoom = (\n params: { zoomDelta: number; zoomX?: number; zoomY?: number },\n event?: BaseEventParams['event']\n ) => {\n let scale = params.zoomDelta;\n // check if the next scale will outrange\n const _lastActualScale = this._actualScale;\n this._actualScale *= scale;\n if (this._actualScale < this._spec.zoomLimit?.min) {\n this._actualScale = this._spec.zoomLimit?.min;\n scale = this._spec.zoomLimit?.min / _lastActualScale;\n } else if (this._actualScale > this._spec.zoomLimit?.max) {\n this._actualScale = this._spec.zoomLimit?.max;\n scale = this._spec.zoomLimit?.max / _lastActualScale;\n }\n if (event) {\n (event as any).zoomDelta = scale;\n }\n this.zoom(scale, [params.zoomX, params.zoomY]);\n return scale;\n };\n\n dispatchZoom(zoomDelta: number, center?: { x: number; y: number }) {\n const scaleCenter = center || {\n x: this.getLayoutStartPoint().x + this.getLayoutRect().width / 2,\n y: this.getLayoutStartPoint().y + this.getLayoutRect().height / 2\n };\n const scale = this._handleChartZoom({ zoomDelta, zoomX: scaleCenter.x, zoomY: scaleCenter.y });\n if (scale !== 1) {\n this.event.emit('zoom', {\n scale,\n scaleCenter,\n model: this\n } as unknown as ExtendEventParam);\n }\n }\n\n initEvent() {\n this.event.on(\n ChartEvent.scaleUpdate,\n { filter: ({ model }) => model?.id === this.id },\n this.effect.scaleUpdate.bind(this)\n );\n\n if (this._spec.roam) {\n (this as unknown as IZoomable).initZoomEventOfRegions(this._regions, null, this._handleChartZoom);\n (this as unknown as IZoomable).initDragEventOfRegions(this._regions, () => true, this.pan);\n\n this._regions.forEach(r => {\n r.getSeries().forEach(s => {\n s.event.on('zoom', e => {\n s.handleZoom(e as ZoomEventParam);\n return true;\n });\n\n s.event.on('panmove', e => {\n s.handlePan(e as PanEventParam);\n return true;\n });\n });\n });\n }\n }\n\n initProjection() {\n this._projection = new Projection(this._projectionSpec);\n if (this._projection.projection === null) {\n this._option?.onError('unsupported projection type!');\n return;\n }\n }\n\n coordinateHelper() {\n const helper: IGeoCoordinateHelper = {\n longitudeField: this._longitudeField,\n latitudeField: this._latitudeField,\n dataToPosition: this.dataToPosition.bind(this),\n dataToLongitude: this.dataToLongitude.bind(this),\n dataToLatitude: this.dataToLatitude.bind(this),\n shape: this.shape.bind(this),\n getCoordinateId: () => this.id\n };\n\n this._regions.forEach(r => {\n r.getSeries().forEach(s => {\n if (s.type === SeriesTypeEnum.map) {\n (s as IGeoSeries).setCoordinateHelper(helper);\n } else {\n // 散点地图\n (s as ICartesianSeries).setXAxisHelper({\n ...helper,\n isContinuous: true,\n dataToPosition: (values: any[], option) => {\n let value = values[0];\n if (isNil(value) && option?.datum) {\n const nameFieldValue = option.datum[(s as ICartesianSeries).getDimensionField()[0]];\n value = this._centerCache.get(nameFieldValue)?.x;\n }\n return this.dataToLongitude(value);\n },\n valueToPosition: (value: any, option) => {\n if (isNil(value) && option?.datum) {\n const nameFieldValue = option.datum[(s as ICartesianSeries).getDimensionField()[0]];\n value = this._centerCache.get(nameFieldValue)?.x;\n }\n return this.dataToLongitude(value);\n },\n getFields: () => [this._longitudeField],\n getAxisType: () => this.type,\n getAxisId: () => this.id,\n isInverse: () => false\n });\n (s as unknown as ICartesianSeries).setYAxisHelper({\n ...helper,\n isContinuous: true,\n dataToPosition: (values: any[], option) => {\n let value = values[0];\n if (isNil(value) && option?.datum) {\n const nameFieldValue = option.datum[(s as ICartesianSeries).getDimensionField()[0]];\n value = this._centerCache.get(nameFieldValue)?.y;\n }\n return this.dataToLatitude(value);\n },\n valueToPosition: (value: any, option) => {\n if (isNil(value) && option?.datum) {\n const nameFieldValue = option.datum[(s as ICartesianSeries).getDimensionField()[0]];\n value = this._centerCache.get(nameFieldValue)?.y;\n }\n return this.dataToLatitude(value);\n },\n getFields: () => [this._latitudeField],\n getAxisType: () => this.type,\n getAxisId: () => this.id,\n isInverse: () => false\n });\n }\n });\n });\n }\n\n onLayoutEnd(ctx: IModelLayoutOption) {\n this.setLayoutRect(this._regions[0].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 eachSeries(this._regions, s => {\n // 其他系列会根据 projection 进行 encode.x/y 上的位置更新\n // 只有地图系列,位置不依赖 encode,而是通过 translate 进行更新\n if (s.type === SeriesTypeEnum.map) {\n s.handlePan({ delta: [dx, dy] });\n }\n });\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 /**\n * 根据像素坐标获取经纬度位置\n */\n invert(point: [number, number]) {\n return this._projection.invert(point);\n }\n\n private evaluateProjection(start: [number, number], size: [number, number]) {\n const evaluated = this._projection.evaluate(start, size, this.collectFeatures());\n let translate = evaluated.translate();\n const scale = evaluated.scale() * (this._projectionSpec.zoom ?? 1);\n const center = this._projectionSpec.center;\n center && (translate = [size[0] / 2, size[1] / 2]);\n return { translate, scale, center };\n }\n\n protected _initCenterCache() {\n if (!this._centerCache) {\n this._centerCache = new Map();\n }\n this._regions.forEach(r => {\n r.getSeries().forEach(s => {\n if (s.type === 'map') {\n const mapData = (s as IGeoSeries).getMapViewData()?.latestData ?? [];\n mapData.forEach((feature: any = {}) => {\n const key = feature[s.getDimensionField()[0]] || feature[DEFAULT_MAP_LOOK_UP_KEY];\n const { centroidX, centroidY } = feature;\n if (key && isValid(centroidX * centroidY)) {\n this._centerCache.set(key, { x: centroidX, y: centroidY });\n }\n });\n }\n });\n });\n }\n\n release(): void {\n super.release();\n this._centerCache && this._centerCache.clear();\n this._centerCache = null;\n }\n}\n\nmixin(GeoCoordinate, Zoomable);\n"]}
1
+ {"version":3,"sources":["../src/component/geo/geo-coordinate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAK7D,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,EAAU;IACpD,OAAO,GAAG,MAAM,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC;AAClC,CAAC;AACD,MAAM,OAAO,aAAc,SAAQ,aAA6B;IAAhE;;QAEE,SAAI,GAAG,iBAAiB,CAAC,aAAa,CAAC;QACvC,SAAI,GAAW,iBAAiB,CAAC,aAAa,CAAC;QAE/C,eAAU,GAA8B,UAAU,CAAC;QAYzC,oBAAe,GAAoB;YAC3C,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACxC,IAAI,EAAE,UAAU;SACjB,CAAC;QAeM,iBAAY,GAAG,CAAC,CAAC;QAMjB,eAAU,GAAG,KAAK,CAAC;QACnB,gBAAW,GAAG,CAAC,CAAC;QAChB,eAAU,GAAG,CAAC,CAAC;QAoBvB,WAAM,GAAY;YAChB,WAAW,EAAE,GAAG,EAAE;gBAChB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,CAAC;SACF,CAAC;QAiCM,qBAAgB,GAAG,CACzB,MAA6D,EAC7D,KAAgC,EAChC,EAAE;;YACF,IAAI,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC;YAE7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC;YAC3C,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC;YAC3B,IAAI,IAAI,CAAC,YAAY,IAAG,MAAA,IAAI,CAAC,KAAK,CAAC,SAAS,0CAAE,GAAG,CAAA,EAAE;gBACjD,IAAI,CAAC,YAAY,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,SAAS,0CAAE,GAAG,CAAC;gBAC9C,KAAK,GAAG,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,SAAS,0CAAE,GAAG,IAAG,gBAAgB,CAAC;aACtD;iBAAM,IAAI,IAAI,CAAC,YAAY,IAAG,MAAA,IAAI,CAAC,KAAK,CAAC,SAAS,0CAAE,GAAG,CAAA,EAAE;gBACxD,IAAI,CAAC,YAAY,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,SAAS,0CAAE,GAAG,CAAC;gBAC9C,KAAK,GAAG,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,SAAS,0CAAE,GAAG,IAAG,gBAAgB,CAAC;aACtD;YACD,IAAI,KAAK,EAAE;gBACR,KAAa,CAAC,SAAS,GAAG,KAAK,CAAC;aAClC;YACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QA0MF,QAAG,GAAG,CAAC,QAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;;YACzC,MAAM,CAAC,GAAG,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,SAAS,EAAE,mCAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClD,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACf,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACf,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;YAChB,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;YAChB,MAAA,IAAI,CAAC,WAAW,0CAAE,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC;IA+CJ,CAAC;IAhXC,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAGD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAMD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IACD,aAAa,CAAC,cAAgD;QAC5D,IAAI,CAAC,eAAe,mCACf,cAAc,KACjB,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,GAChC,CAAC;IACJ,CAAC;IAQD,OAAO;QACL,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAMD,MAAM,CAAC,eAAe,CAAC,IAAgB,EAAE,OAAyB;QAChE,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;YACf,OAAO,IAAI,CAAC;SACb;QACD,MAAM,MAAM,GAAqB,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAc,EAAE,CAAS,EAAE,EAAE;YAChD,IAAI,CAAC,CAAC,UAAU,KAAK,KAAK,EAAE;gBAE1B,MAAM,IAAI,GAAG,gCAAK,CAAC,KAAE,OAAO,EAAE,CAAC,GAAS,CAAC;gBACzC,MAAM,CAAC,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAE3C,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAChB;QACH,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAQD,eAAe;;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAClB,IAA6B,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC5E;QAED,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC9E,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,IAAG,MAAA,IAAI,CAAC,KAAK,CAAC,SAAS,0CAAE,GAAG,CAAA,EAAE;YACzD,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;SACtD;QACD,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,IAAG,MAAA,IAAI,CAAC,KAAK,CAAC,SAAS,0CAAE,GAAG,CAAA,EAAE;YACzD,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;SACtD;QAED,IAAI,CAAC,YAAY,GAAG,MAAA,IAAI,CAAC,eAAe,CAAC,IAAI,mCAAI,CAAC,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QACjD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;IACjD,CAAC;IAGD,OAAO;QACL,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAG1B,CAAC;IAwBD,YAAY,CAAC,SAAiB,EAAE,MAAiC;QAC/D,MAAM,WAAW,GAAG,MAAM,IAAI;YAC5B,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,GAAG,CAAC;YAChE,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC;SAClE,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/F,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;gBACtB,KAAK;gBACL,WAAW;gBACX,KAAK,EAAE,IAAI;aACmB,CAAC,CAAC;SACnC;IACH,CAAC;IAED,SAAS;QACP,IAAI,CAAC,KAAK,CAAC,EAAE,CACX,UAAU,CAAC,WAAW,EACtB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,MAAK,IAAI,CAAC,EAAE,EAAE,EAChD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CACnC,CAAC;QAEF,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAClB,IAA6B,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACjG,IAA6B,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAE3F,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACxB,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACxB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;wBACrB,CAAC,CAAC,UAAU,CAAC,CAAmB,CAAC,CAAC;wBAClC,OAAO,IAAI,CAAC;oBACd,CAAC,CAAC,CAAC;oBAEH,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE;wBACxB,CAAC,CAAC,SAAS,CAAC,CAAkB,CAAC,CAAC;wBAChC,OAAO,IAAI,CAAC;oBACd,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,cAAc;;QACZ,IAAI,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,KAAK,IAAI,EAAE;YACxC,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;YACtD,OAAO;SACR;IACH,CAAC;IAED,gBAAgB;QACd,MAAM,MAAM,GAAyB;YACnC,cAAc,EAAE,IAAI,CAAC,eAAe;YACpC,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9C,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;YAChD,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5B,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;SAC/B,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACxB,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACxB,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,GAAG,EAAE;oBAChC,CAAgB,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;iBAC/C;qBAAM;oBAEJ,CAAsB,CAAC,cAAc,iCACjC,MAAM,KACT,YAAY,EAAE,IAAI,EAClB,cAAc,EAAE,CAAC,MAAa,EAAE,MAAM,EAAE,EAAE;;4BACxC,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACtB,IAAI,KAAK,CAAC,KAAK,CAAC,KAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAA,EAAE;gCACjC,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAE,CAAsB,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gCACpF,KAAK,GAAG,MAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,0CAAE,CAAC,CAAC;6BAClD;4BACD,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;wBACrC,CAAC,EACD,eAAe,EAAE,CAAC,KAAU,EAAE,MAAM,EAAE,EAAE;;4BACtC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAA,EAAE;gCACjC,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAE,CAAsB,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gCACpF,KAAK,GAAG,MAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,0CAAE,CAAC,CAAC;6BAClD;4BACD,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;wBACrC,CAAC,EACD,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,EACvC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAC5B,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,EACxB,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,IACtB,CAAC;oBACF,CAAiC,CAAC,cAAc,iCAC5C,MAAM,KACT,YAAY,EAAE,IAAI,EAClB,cAAc,EAAE,CAAC,MAAa,EAAE,MAAM,EAAE,EAAE;;4BACxC,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACtB,IAAI,KAAK,CAAC,KAAK,CAAC,KAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAA,EAAE;gCACjC,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAE,CAAsB,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gCACpF,KAAK,GAAG,MAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,0CAAE,CAAC,CAAC;6BAClD;4BACD,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;wBACpC,CAAC,EACD,eAAe,EAAE,CAAC,KAAU,EAAE,MAAM,EAAE,EAAE;;4BACtC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAA,EAAE;gCACjC,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAE,CAAsB,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gCACpF,KAAK,GAAG,MAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,0CAAE,CAAC,CAAC;6BAClD;4BACD,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;wBACpC,CAAC,EACD,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,EACtC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAC5B,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,EACxB,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,IACtB,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,GAAuB;QACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC;QACpE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YACtF,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACnD,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACxB;aAAM;YACL,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACnB,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE;gBAG5B,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,GAAG,EAAE;oBACjC,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;iBAClC;YACH,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAE1B,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,QAAQ,CAAC,GAAuB;IAEhC,CAAC;IAGD,aAAa,CAAC,OAAkB;IAEhC,CAAC;IAGS,eAAe;QACvB,MAAM,QAAQ,GAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACxB,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;;gBACxB,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,GAAG,EAAE;oBACjC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAA,MAAC,CAA2B,CAAC,cAAc,EAAE,0CAAE,UAAU,mCAAI,EAAE,CAAC,CAAC,CAAC;iBACrF;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAGD,cAAc,CAAC,SAAmB,EAAE;;QAClC,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,WAAW,0CAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,OAAO;YACL,CAAC,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,CAAC,CAAC;YACb,CAAC,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,CAAC,CAAC;SACd,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,GAAW;;QACxB,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,WAAW,0CAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAClD,OAAO,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,eAAe,CAAC,GAAW;;QACzB,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,WAAW,0CAAE,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,OAAO,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,CAAC,CAAC,CAAC;IACpB,CAAC;IAGD,IAAI,CAAC,CAAS,EAAE,SAA2B,CAAC,CAAC,EAAE,CAAC,CAAC;;QAC/C,IAAI,CAAC,GAAG,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,KAAK,EAAE,mCAAI,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,SAAS,EAAE,mCAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClD,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACf,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACf,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACV,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEnC,MAAA,IAAI,CAAC,WAAW,0CAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAA,IAAI,CAAC,WAAW,0CAAE,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IAWD,KAAK,CAAC,KAAW;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAKD,MAAM,CAAC,KAAuB;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAEO,kBAAkB,CAAC,KAAuB,EAAE,IAAsB;;QACxE,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QACjF,IAAI,SAAS,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAA,IAAI,CAAC,eAAe,CAAC,IAAI,mCAAI,CAAC,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;QAC3C,MAAM,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACtC,CAAC;IAES,gBAAgB;QACxB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;SAC/B;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACxB,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;;gBACxB,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE;oBACpB,MAAM,OAAO,GAAG,MAAA,MAAC,CAAgB,CAAC,cAAc,EAAE,0CAAE,UAAU,mCAAI,EAAE,CAAC;oBACrE,OAAO,CAAC,OAAO,CAAC,CAAC,UAAe,EAAE,EAAE,EAAE;wBACpC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAAC;wBAClF,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;wBACzC,IAAI,GAAG,IAAI,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,EAAE;4BACzC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;yBAC5D;oBACH,CAAC,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;;AAtXM,kBAAI,GAAG,iBAAiB,CAAC,aAAa,CAAC;AAyXhD,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC","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 { eachSeries, isNil, mergeSpec } from '../../util';\nimport { ChartEvent, PREFIX } from '../../constant/index';\nimport type { ICartesianSeries, IGeoSeries } from '../../series/interface';\nimport { SeriesTypeEnum } from '../../series/interface/type';\nimport type { IGeoCoordinate, IGeoCoordinateHelper, IGeoCoordinateSpec, IProjectionSpec } from './interface';\nimport type { BaseEventParams, ExtendEventParam, PanEventParam, ZoomEventParam } from '../../event/interface';\nimport type { IChartSpec, StringOrNumber } from '../../typings';\nimport type { IZoomable } from '../../interaction/zoom/zoomable';\nimport { Zoomable } from '../../interaction/zoom/zoomable';\nimport { isValid, mixin } from '@visactor/vutils';\nimport { DEFAULT_MAP_LOOK_UP_KEY } from '../../data/transforms/map';\n\nexport function projectionName(key: string, id: number) {\n return `${PREFIX}_${id}_${key}`;\n}\nexport class GeoCoordinate extends BaseComponent<IGeoRegionSpec> implements IGeoCoordinate {\n static type = ComponentTypeEnum.geoCoordinate;\n type = ComponentTypeEnum.geoCoordinate;\n name: string = ComponentTypeEnum.geoCoordinate;\n\n layoutType: ILayoutItem['layoutType'] = 'absolute';\n\n _longitudeField?: string;\n get longitudeField() {\n return this._longitudeField;\n }\n\n _latitudeField?: string;\n get latitudeField() {\n return this._latitudeField;\n }\n\n protected _projectionSpec: IProjectionSpec = {\n name: projectionName(this.type, this.id),\n type: 'mercator'\n };\n get projectionSpec() {\n return this._projectionSpec;\n }\n setProjection(projectionSpec: IGeoCoordinateSpec['projection']) {\n this._projectionSpec = {\n ...projectionSpec,\n name: this._projectionSpec.name\n };\n }\n\n protected _projection!: Projection;\n\n protected _centerCache: Map<StringOrNumber, { x: number; y: number }>;\n\n private _actualScale = 1;\n\n getZoom() {\n return this._actualScale;\n }\n\n private _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 } as any;\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 = mergeSpec(this._projectionSpec, this._spec.projection);\n if (this._projectionSpec.zoom > this._spec.zoomLimit?.max) {\n this._projectionSpec.zoom = this._spec.zoomLimit.max;\n }\n if (this._projectionSpec.zoom < this._spec.zoomLimit?.min) {\n this._projectionSpec.zoom = this._spec.zoomLimit.min;\n }\n\n this._actualScale = this._projectionSpec.zoom ?? 1;\n this._longitudeField = this._spec.longitudeField;\n this._latitudeField = this._spec.latitudeField;\n }\n\n // life cycle\n created() {\n super.created();\n this.initProjection();\n this.coordinateHelper();\n this.initEvent();\n this._initCenterCache();\n // FIXME: 这里是在开启缩放时,处理关联的symbol等mark,在地图缩放时应该同步缩放\n // this.rescaleMark();\n }\n\n private _handleChartZoom = (\n params: { zoomDelta: number; zoomX?: number; zoomY?: number },\n event?: BaseEventParams['event']\n ) => {\n let scale = params.zoomDelta;\n // check if the next scale will outrange\n const _lastActualScale = this._actualScale;\n this._actualScale *= scale;\n if (this._actualScale < this._spec.zoomLimit?.min) {\n this._actualScale = this._spec.zoomLimit?.min;\n scale = this._spec.zoomLimit?.min / _lastActualScale;\n } else if (this._actualScale > this._spec.zoomLimit?.max) {\n this._actualScale = this._spec.zoomLimit?.max;\n scale = this._spec.zoomLimit?.max / _lastActualScale;\n }\n if (event) {\n (event as any).zoomDelta = scale;\n }\n this.zoom(scale, [params.zoomX, params.zoomY]);\n return scale;\n };\n\n dispatchZoom(zoomDelta: number, center?: { x: number; y: number }) {\n const scaleCenter = center || {\n x: this.getLayoutStartPoint().x + this.getLayoutRect().width / 2,\n y: this.getLayoutStartPoint().y + this.getLayoutRect().height / 2\n };\n const scale = this._handleChartZoom({ zoomDelta, zoomX: scaleCenter.x, zoomY: scaleCenter.y });\n if (scale !== 1) {\n this.event.emit('zoom', {\n scale,\n scaleCenter,\n model: this\n } as unknown as ExtendEventParam);\n }\n }\n\n initEvent() {\n this.event.on(\n ChartEvent.scaleUpdate,\n { filter: ({ model }) => model?.id === this.id },\n this.effect.scaleUpdate.bind(this)\n );\n\n if (this._spec.roam) {\n (this as unknown as IZoomable).initZoomEventOfRegions(this._regions, null, this._handleChartZoom);\n (this as unknown as IZoomable).initDragEventOfRegions(this._regions, () => true, this.pan);\n\n this._regions.forEach(r => {\n r.getSeries().forEach(s => {\n s.event.on('zoom', e => {\n s.handleZoom(e as ZoomEventParam);\n return true;\n });\n\n s.event.on('panmove', e => {\n s.handlePan(e as PanEventParam);\n return true;\n });\n });\n });\n }\n }\n\n initProjection() {\n this._projection = new Projection(this._projectionSpec);\n if (this._projection.projection === null) {\n this._option?.onError('unsupported projection type!');\n return;\n }\n }\n\n coordinateHelper() {\n const helper: IGeoCoordinateHelper = {\n longitudeField: this._longitudeField,\n latitudeField: this._latitudeField,\n dataToPosition: this.dataToPosition.bind(this),\n dataToLongitude: this.dataToLongitude.bind(this),\n dataToLatitude: this.dataToLatitude.bind(this),\n shape: this.shape.bind(this),\n getCoordinateId: () => this.id\n };\n\n this._regions.forEach(r => {\n r.getSeries().forEach(s => {\n if (s.type === SeriesTypeEnum.map) {\n (s as IGeoSeries).setCoordinateHelper(helper);\n } else {\n // 散点地图\n (s as ICartesianSeries).setXAxisHelper({\n ...helper,\n isContinuous: true,\n dataToPosition: (values: any[], option) => {\n let value = values[0];\n if (isNil(value) && option?.datum) {\n const nameFieldValue = option.datum[(s as ICartesianSeries).getDimensionField()[0]];\n value = this._centerCache.get(nameFieldValue)?.x;\n }\n return this.dataToLongitude(value);\n },\n valueToPosition: (value: any, option) => {\n if (isNil(value) && option?.datum) {\n const nameFieldValue = option.datum[(s as ICartesianSeries).getDimensionField()[0]];\n value = this._centerCache.get(nameFieldValue)?.x;\n }\n return this.dataToLongitude(value);\n },\n getFields: () => [this._longitudeField],\n getAxisType: () => this.type,\n getAxisId: () => this.id,\n isInverse: () => false\n });\n (s as unknown as ICartesianSeries).setYAxisHelper({\n ...helper,\n isContinuous: true,\n dataToPosition: (values: any[], option) => {\n let value = values[0];\n if (isNil(value) && option?.datum) {\n const nameFieldValue = option.datum[(s as ICartesianSeries).getDimensionField()[0]];\n value = this._centerCache.get(nameFieldValue)?.y;\n }\n return this.dataToLatitude(value);\n },\n valueToPosition: (value: any, option) => {\n if (isNil(value) && option?.datum) {\n const nameFieldValue = option.datum[(s as ICartesianSeries).getDimensionField()[0]];\n value = this._centerCache.get(nameFieldValue)?.y;\n }\n return this.dataToLatitude(value);\n },\n getFields: () => [this._latitudeField],\n getAxisType: () => this.type,\n getAxisId: () => this.id,\n isInverse: () => false\n });\n }\n });\n });\n }\n\n onLayoutEnd(ctx: IModelLayoutOption) {\n this.setLayoutRect(this._regions[0].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 eachSeries(this._regions, s => {\n // 其他系列会根据 projection 进行 encode.x/y 上的位置更新\n // 只有地图系列,位置不依赖 encode,而是通过 translate 进行更新\n if (s.type === SeriesTypeEnum.map) {\n s.handlePan({ delta: [dx, dy] });\n }\n });\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 /**\n * 根据像素坐标获取经纬度位置\n */\n invert(point: [number, number]) {\n return this._projection.invert(point);\n }\n\n private evaluateProjection(start: [number, number], size: [number, number]) {\n const evaluated = this._projection.evaluate(start, size, this.collectFeatures());\n let translate = evaluated.translate();\n const scale = evaluated.scale() * (this._projectionSpec.zoom ?? 1);\n const center = this._projectionSpec.center;\n center && (translate = [size[0] / 2, size[1] / 2]);\n return { translate, scale, center };\n }\n\n protected _initCenterCache() {\n if (!this._centerCache) {\n this._centerCache = new Map();\n }\n this._regions.forEach(r => {\n r.getSeries().forEach(s => {\n if (s.type === 'map') {\n const mapData = (s as IGeoSeries).getMapViewData()?.latestData ?? [];\n mapData.forEach((feature: any = {}) => {\n const key = feature[s.getDimensionField()[0]] || feature[DEFAULT_MAP_LOOK_UP_KEY];\n const { centroidX, centroidY } = feature;\n if (key && isValid(centroidX * centroidY)) {\n this._centerCache.set(key, { x: centroidX, y: centroidY });\n }\n });\n }\n });\n });\n }\n\n release(): void {\n super.release();\n this._centerCache && this._centerCache.clear();\n this._centerCache = null;\n }\n}\n\nmixin(GeoCoordinate, Zoomable);\n"]}
@@ -132,7 +132,8 @@ export class Indicator extends BaseComponent {
132
132
  return eachSeries(this._regions, (s => model === s)) || this._regions.includes(model);
133
133
  }
134
134
  clear() {
135
- this._indicatorComponent && (this._container.removeChild(this._indicatorComponent),
135
+ var _a;
136
+ this._indicatorComponent && (null === (_a = this.getContainer()) || void 0 === _a || _a.removeChild(this._indicatorComponent),
136
137
  this._indicatorComponent = null), this._cacheAttrs = null, super.clear();
137
138
  }
138
139
  }