@visactor/vchart 2.1.3-alpha.0 → 2.1.3-alpha.2

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 (252) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.es.js +65821 -65779
  3. package/build/index.js +65879 -65832
  4. package/build/index.min.js +2 -2
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/animation/config.js +1 -2
  7. package/cjs/animation/grammar-dector.js +2 -1
  8. package/cjs/animation/index.d.ts +2 -1
  9. package/cjs/animation/index.js +8 -4
  10. package/cjs/animation/index.js.map +1 -1
  11. package/cjs/animation/state-transition.js +2 -2
  12. package/cjs/animation/state-transition.js.map +1 -1
  13. package/cjs/chart/index.js +1 -1
  14. package/cjs/chart/stack.js +1 -1
  15. package/cjs/chart/util.js +3 -3
  16. package/cjs/chart/util.js.map +1 -1
  17. package/cjs/compile/compiler.js +9 -9
  18. package/cjs/compile/compiler.js.map +1 -1
  19. package/cjs/compile/util.js +2 -1
  20. package/cjs/component/axis/cartesian/axis.js +3 -2
  21. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  22. package/cjs/component/base/base-component.d.ts +1 -1
  23. package/cjs/component/base/base-component.js +2 -2
  24. package/cjs/component/base/base-component.js.map +1 -1
  25. package/cjs/component/label/util.js +2 -2
  26. package/cjs/component/label/util.js.map +1 -1
  27. package/cjs/component/tooltip/processor/mark-tooltip.js +2 -2
  28. package/cjs/component/tooltip/processor/mark-tooltip.js.map +1 -1
  29. package/cjs/component/tooltip/tooltip-transformer.js +2 -2
  30. package/cjs/component/tooltip/tooltip-transformer.js.map +1 -1
  31. package/cjs/component/util.js +1 -2
  32. package/cjs/constant/polar.js +2 -1
  33. package/cjs/constant/scroll-bar.js +1 -2
  34. package/cjs/core/factory-registry.js +33 -2
  35. package/cjs/core/factory-registry.js.map +1 -1
  36. package/cjs/core/factory.js +1 -1
  37. package/cjs/core/index.d.ts +2 -1
  38. package/cjs/core/index.js +16 -12
  39. package/cjs/core/index.js.map +1 -1
  40. package/cjs/core/vchart.js +4 -4
  41. package/cjs/core/vchart.js.map +1 -1
  42. package/cjs/env/env.js +9 -9
  43. package/cjs/env/env.js.map +1 -1
  44. package/cjs/index-harmony-simple.d.ts +1 -1
  45. package/cjs/index-harmony-simple.js +2 -2
  46. package/cjs/index-harmony-simple.js.map +1 -1
  47. package/cjs/index-harmony.d.ts +1 -1
  48. package/cjs/index-harmony.js +2 -2
  49. package/cjs/index-harmony.js.map +1 -1
  50. package/cjs/index.d.ts +7 -2
  51. package/cjs/index.js +39 -23
  52. package/cjs/index.js.map +1 -1
  53. package/cjs/mark/arc.js +2 -2
  54. package/cjs/mark/arc.js.map +1 -1
  55. package/cjs/mark/area.js +2 -2
  56. package/cjs/mark/area.js.map +1 -1
  57. package/cjs/mark/base/base-mark.js +4 -4
  58. package/cjs/mark/base/base-mark.js.map +1 -1
  59. package/cjs/mark/box-plot.js +3 -3
  60. package/cjs/mark/box-plot.js.map +1 -1
  61. package/cjs/mark/cell.js +3 -3
  62. package/cjs/mark/cell.js.map +1 -1
  63. package/cjs/mark/glyph.js +3 -3
  64. package/cjs/mark/glyph.js.map +1 -1
  65. package/cjs/mark/image.js +2 -2
  66. package/cjs/mark/image.js.map +1 -1
  67. package/cjs/mark/line.js +2 -2
  68. package/cjs/mark/line.js.map +1 -1
  69. package/cjs/mark/link-path.js +2 -2
  70. package/cjs/mark/link-path.js.map +1 -1
  71. package/cjs/mark/liquid.d.ts +1 -1
  72. package/cjs/mark/liquid.js +2 -2
  73. package/cjs/mark/liquid.js.map +1 -1
  74. package/cjs/mark/path.js +2 -2
  75. package/cjs/mark/path.js.map +1 -1
  76. package/cjs/mark/polygon/polygon.js +2 -2
  77. package/cjs/mark/polygon/polygon.js.map +1 -1
  78. package/cjs/mark/rect.js +2 -2
  79. package/cjs/mark/rect.js.map +1 -1
  80. package/cjs/mark/ripple.d.ts +1 -1
  81. package/cjs/mark/ripple.js +2 -2
  82. package/cjs/mark/ripple.js.map +1 -1
  83. package/cjs/mark/rule.js +3 -3
  84. package/cjs/mark/rule.js.map +1 -1
  85. package/cjs/mark/symbol.js +2 -2
  86. package/cjs/mark/symbol.js.map +1 -1
  87. package/cjs/mark/text.js +4 -3
  88. package/cjs/mark/text.js.map +1 -1
  89. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.d.ts +1 -0
  90. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js +9 -5
  91. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
  92. package/cjs/plugin/components/tooltip-handler/utils/attribute.js +2 -2
  93. package/cjs/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
  94. package/cjs/plugin/components/tooltip-handler/utils/svg.js +4 -4
  95. package/cjs/plugin/components/tooltip-handler/utils/svg.js.map +1 -1
  96. package/cjs/plugin/other.d.ts +1 -1
  97. package/cjs/plugin/other.js +6 -6
  98. package/cjs/plugin/other.js.map +1 -1
  99. package/cjs/series/bar/bar.js +2 -2
  100. package/cjs/series/bar/bar.js.map +1 -1
  101. package/cjs/series/box-plot/animation.d.ts +1 -1
  102. package/cjs/series/box-plot/animation.js +7 -7
  103. package/cjs/series/box-plot/animation.js.map +1 -1
  104. package/cjs/series/liquid/liquid.js +3 -3
  105. package/cjs/series/liquid/liquid.js.map +1 -1
  106. package/cjs/series/polar/animation.d.ts +2 -1
  107. package/cjs/series/polar/animation.js +3 -3
  108. package/cjs/series/polar/animation.js.map +1 -1
  109. package/cjs/series/polar/progress-like/progress-like.js +3 -3
  110. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  111. package/cjs/series/radar/animation.js +2 -2
  112. package/cjs/series/radar/animation.js.map +1 -1
  113. package/cjs/series/sankey/animation.d.ts +1 -1
  114. package/cjs/series/sankey/animation.js +6 -6
  115. package/cjs/series/sankey/animation.js.map +1 -1
  116. package/cjs/series/venn/animation.d.ts +1 -1
  117. package/cjs/series/venn/animation.js +2 -2
  118. package/cjs/series/venn/animation.js.map +1 -1
  119. package/cjs/series/word-cloud/base.js +4 -4
  120. package/cjs/series/word-cloud/base.js.map +1 -1
  121. package/cjs/util/env.js +2 -2
  122. package/cjs/util/env.js.map +1 -1
  123. package/cjs/vrender-bridge.d.ts +11 -0
  124. package/cjs/vrender-bridge.js +158 -0
  125. package/cjs/vrender-bridge.js.map +1 -0
  126. package/cjs/vrender-tools.d.ts +1 -1
  127. package/cjs/vrender-tools.js +21 -21
  128. package/cjs/vrender-tools.js.map +1 -1
  129. package/esm/animation/config.js +1 -2
  130. package/esm/animation/grammar-dector.js +2 -1
  131. package/esm/animation/index.d.ts +2 -1
  132. package/esm/animation/index.js +3 -1
  133. package/esm/animation/index.js.map +1 -1
  134. package/esm/animation/state-transition.js +1 -1
  135. package/esm/animation/state-transition.js.map +1 -1
  136. package/esm/chart/index.js +1 -1
  137. package/esm/chart/stack.js +1 -1
  138. package/esm/chart/util.js +2 -2
  139. package/esm/chart/util.js.map +1 -1
  140. package/esm/compile/compiler.js +1 -1
  141. package/esm/compile/compiler.js.map +1 -1
  142. package/esm/compile/util.js +2 -1
  143. package/esm/component/axis/cartesian/axis.js +1 -1
  144. package/esm/component/axis/cartesian/axis.js.map +1 -1
  145. package/esm/component/base/base-component.d.ts +1 -1
  146. package/esm/component/base/base-component.js +1 -1
  147. package/esm/component/base/base-component.js.map +1 -1
  148. package/esm/component/label/util.js +1 -1
  149. package/esm/component/label/util.js.map +1 -1
  150. package/esm/component/tooltip/processor/mark-tooltip.js +1 -1
  151. package/esm/component/tooltip/processor/mark-tooltip.js.map +1 -1
  152. package/esm/component/tooltip/tooltip-transformer.js +1 -1
  153. package/esm/component/tooltip/tooltip-transformer.js.map +1 -1
  154. package/esm/component/util.js +1 -2
  155. package/esm/constant/polar.js +2 -1
  156. package/esm/constant/scroll-bar.js +1 -2
  157. package/esm/core/factory-registry.js +34 -1
  158. package/esm/core/factory-registry.js.map +1 -1
  159. package/esm/core/factory.js +1 -1
  160. package/esm/core/index.d.ts +2 -1
  161. package/esm/core/index.js +4 -2
  162. package/esm/core/index.js.map +1 -1
  163. package/esm/core/vchart.js +1 -1
  164. package/esm/core/vchart.js.map +1 -1
  165. package/esm/env/env.js +1 -1
  166. package/esm/env/env.js.map +1 -1
  167. package/esm/index-harmony-simple.d.ts +1 -1
  168. package/esm/index-harmony-simple.js +1 -1
  169. package/esm/index-harmony-simple.js.map +1 -1
  170. package/esm/index-harmony.d.ts +1 -1
  171. package/esm/index-harmony.js +1 -1
  172. package/esm/index-harmony.js.map +1 -1
  173. package/esm/index.d.ts +7 -2
  174. package/esm/index.js +10 -2
  175. package/esm/index.js.map +1 -1
  176. package/esm/mark/arc.js +1 -1
  177. package/esm/mark/arc.js.map +1 -1
  178. package/esm/mark/area.js +1 -1
  179. package/esm/mark/area.js.map +1 -1
  180. package/esm/mark/base/base-mark.js +1 -1
  181. package/esm/mark/base/base-mark.js.map +1 -1
  182. package/esm/mark/box-plot.js +1 -1
  183. package/esm/mark/box-plot.js.map +1 -1
  184. package/esm/mark/cell.js +1 -1
  185. package/esm/mark/cell.js.map +1 -1
  186. package/esm/mark/glyph.js +1 -1
  187. package/esm/mark/glyph.js.map +1 -1
  188. package/esm/mark/image.js +1 -1
  189. package/esm/mark/image.js.map +1 -1
  190. package/esm/mark/line.js +1 -1
  191. package/esm/mark/line.js.map +1 -1
  192. package/esm/mark/link-path.js +1 -1
  193. package/esm/mark/link-path.js.map +1 -1
  194. package/esm/mark/liquid.d.ts +1 -1
  195. package/esm/mark/liquid.js +1 -1
  196. package/esm/mark/liquid.js.map +1 -1
  197. package/esm/mark/path.js +1 -1
  198. package/esm/mark/path.js.map +1 -1
  199. package/esm/mark/polygon/polygon.js +1 -1
  200. package/esm/mark/polygon/polygon.js.map +1 -1
  201. package/esm/mark/rect.js +1 -1
  202. package/esm/mark/rect.js.map +1 -1
  203. package/esm/mark/ripple.d.ts +1 -1
  204. package/esm/mark/ripple.js +1 -1
  205. package/esm/mark/ripple.js.map +1 -1
  206. package/esm/mark/rule.js +1 -1
  207. package/esm/mark/rule.js.map +1 -1
  208. package/esm/mark/symbol.js +1 -1
  209. package/esm/mark/symbol.js.map +1 -1
  210. package/esm/mark/text.js +1 -1
  211. package/esm/mark/text.js.map +1 -1
  212. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.d.ts +1 -0
  213. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js +10 -4
  214. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
  215. package/esm/plugin/components/tooltip-handler/utils/attribute.js +1 -1
  216. package/esm/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
  217. package/esm/plugin/components/tooltip-handler/utils/svg.js +3 -1
  218. package/esm/plugin/components/tooltip-handler/utils/svg.js.map +1 -1
  219. package/esm/plugin/other.d.ts +1 -1
  220. package/esm/plugin/other.js +2 -4
  221. package/esm/plugin/other.js.map +1 -1
  222. package/esm/series/bar/bar.js +1 -1
  223. package/esm/series/bar/bar.js.map +1 -1
  224. package/esm/series/box-plot/animation.d.ts +1 -1
  225. package/esm/series/box-plot/animation.js +3 -1
  226. package/esm/series/box-plot/animation.js.map +1 -1
  227. package/esm/series/liquid/liquid.js +1 -1
  228. package/esm/series/liquid/liquid.js.map +1 -1
  229. package/esm/series/polar/animation.d.ts +2 -1
  230. package/esm/series/polar/animation.js +3 -1
  231. package/esm/series/polar/animation.js.map +1 -1
  232. package/esm/series/polar/progress-like/progress-like.js +1 -1
  233. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  234. package/esm/series/radar/animation.js +1 -1
  235. package/esm/series/radar/animation.js.map +1 -1
  236. package/esm/series/sankey/animation.d.ts +1 -1
  237. package/esm/series/sankey/animation.js +3 -1
  238. package/esm/series/sankey/animation.js.map +1 -1
  239. package/esm/series/venn/animation.d.ts +1 -1
  240. package/esm/series/venn/animation.js +1 -1
  241. package/esm/series/venn/animation.js.map +1 -1
  242. package/esm/series/word-cloud/base.js +3 -1
  243. package/esm/series/word-cloud/base.js.map +1 -1
  244. package/esm/util/env.js +1 -1
  245. package/esm/util/env.js.map +1 -1
  246. package/esm/vrender-bridge.d.ts +11 -0
  247. package/esm/vrender-bridge.js +45 -0
  248. package/esm/vrender-bridge.js.map +1 -0
  249. package/esm/vrender-tools.d.ts +1 -1
  250. package/esm/vrender-tools.js +1 -1
  251. package/esm/vrender-tools.js.map +1 -1
  252. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/polar/animation.ts"],"names":[],"mappings":"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","file":"animation.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport type { EasingType, ILineAttribute } from '@visactor/vrender-core';\nimport type { IPointLike } from '@visactor/vutils';\nimport { ACustomAnimate, TagPointsUpdate } from '@visactor/vrender-animate';\nimport { Point, isValidNumber, polarToCartesian, cartesianToPolar } from '@visactor/vutils';\nimport { isClose, isValidPoint, normalizeAngle } from '../../util';\nimport type { IPoint } from '../../typings';\n\nexport class PolarPointUpdate extends ACustomAnimate<{ x: number; y: number }> {\n declare valid: boolean;\n\n private _fromAngle: number;\n private _fromRadius: number;\n\n private _toAngle: number;\n private _toRadius: number;\n\n private _center: IPointLike;\n private _prevCenter: IPointLike;\n\n constructor(\n from: { x: number; y: number; center: IPointLike },\n to: { x: number; y: number; center: IPointLike },\n duration: number,\n easing: EasingType,\n params: any\n ) {\n super(from, to, duration, easing, params);\n this._center = to.center;\n }\n\n getEndProps(): Record<string, any> {\n if (this.valid === false) {\n return {};\n }\n return polarToCartesian(this._center, this._toRadius, this._toAngle);\n }\n\n onBind(): void {\n this.from = this.target.attribute as any;\n this.to = this.target.getFinalAttribute();\n this._prevCenter = (this.target.attribute as any).center;\n if (!this._center || !this._prevCenter) {\n this.valid = false;\n }\n const { angle: fromAngle, radius: fromRadius } = cartesianToPolar(this.from, this._prevCenter);\n const { angle: toAngle, radius: toRadius } = cartesianToPolar(this.to, this._center);\n if (!isValidNumber(toAngle * toRadius)) {\n this.valid = false;\n }\n this._fromAngle = isValidNumber(fromAngle) ? fromAngle : toAngle;\n this._fromRadius = isValidNumber(fromRadius) ? fromRadius : toRadius;\n this._toAngle = toAngle;\n this._toRadius = toRadius;\n if (isClose(this._fromAngle, this._toAngle) && isClose(this._fromRadius, this._toRadius)) {\n this.valid = false;\n }\n this.props = this.getEndProps() as any;\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n if (this.valid === false) {\n out.x = this.to.x;\n out.y = this.to.y;\n return;\n }\n const { x, y } = polarToCartesian(\n {\n x: this._prevCenter.x + (this._center.x - this._prevCenter.x) * ratio,\n y: this._prevCenter.y + (this._center.y - this._prevCenter.y) * ratio\n },\n this._fromRadius + (this._toRadius - this._fromRadius) * ratio,\n this._fromAngle + (this._toAngle - this._fromAngle) * ratio\n );\n this.target.setAttributes({ x, y });\n this.target.addUpdatePositionTag();\n this.target.addUpdateShapeAndBoundsTag();\n }\n}\n\n// @ts-ignore\n// FIXME: some private attribute should be changed to protected for better inheritance\nexport class PolarTagPointsUpdate extends TagPointsUpdate {\n private declare points: IPointLike[];\n private declare interpolatePoints: [IPointLike, IPointLike][];\n\n private _center: IPointLike;\n private _prevCenter: IPointLike;\n\n onBind(): void {\n super.onBind();\n const { center } = this.target.attribute as any;\n const { center: centerTo } = this.target.getFinalAttribute() as any;\n this._center = centerTo;\n this._prevCenter = center;\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n // if not create new points, multi points animation might not work well.\n this.points = this.points.map((point, index) => {\n const newPoint = this.polarPointInterpolation(\n this.interpolatePoints[index][0],\n this.interpolatePoints[index][1],\n ratio\n );\n if (end) {\n out.center = this._center;\n }\n newPoint.context = point.context;\n return newPoint;\n });\n (this.target.attribute as ILineAttribute).points = this.points;\n this.target.addUpdatePositionTag();\n this.target.addUpdateShapeAndBoundsTag();\n }\n\n private _interpolationSinglePoint(pointA: IPoint, pointB: IPoint, ratio: number): IPoint {\n if (!isValidPoint(pointA) && !isValidPoint(pointB)) {\n return pointB;\n }\n const polarPointA = cartesianToPolar(pointA, this._prevCenter);\n const polarPointB = cartesianToPolar(pointB, this._center);\n let angleA = normalizeAngle(polarPointA.angle);\n let angleB = normalizeAngle(polarPointB.angle);\n\n // handle center point radius\n if (!isValidNumber(angleA) && isValidNumber(angleB)) {\n angleA = angleB;\n }\n if (isValidNumber(angleA) && !isValidNumber(angleB)) {\n angleB = angleA;\n }\n const angle = angleA + (angleB - angleA) * ratio;\n const radius = polarPointA.radius + (polarPointB.radius - polarPointA.radius) * ratio;\n\n return polarToCartesian(\n {\n x: this._prevCenter.x + (this._center.x - this._prevCenter.x) * ratio,\n y: this._prevCenter.y + (this._center.y - this._prevCenter.y) * ratio\n },\n radius,\n angle\n );\n }\n\n private polarPointInterpolation(pointA: IPointLike, pointB: IPointLike, ratio: number): IPointLike {\n const { x, y } = this._interpolationSinglePoint(pointA, pointB, ratio);\n const { x: x1, y: y1 } = this._interpolationSinglePoint(\n {\n x: pointA.x1,\n y: pointA.y1\n },\n {\n x: pointB.x1,\n y: pointB.y1\n },\n ratio\n );\n\n const point = new Point(x as number, y as number, x1, y1);\n point.defined = pointB.defined;\n return point;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/series/polar/animation.ts"],"names":[],"mappings":"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","file":"animation.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport type { EasingType, ILineAttribute } from '@visactor/vrender-core';\nimport type { IPointLike } from '@visactor/vutils';\nimport { ACustomAnimate } from '@visactor/vrender-animate/custom/custom-animate';\nimport { TagPointsUpdate } from '@visactor/vrender-animate/custom/tag-points';\nimport { Point, isValidNumber, polarToCartesian, cartesianToPolar } from '@visactor/vutils';\nimport { isClose, isValidPoint, normalizeAngle } from '../../util';\nimport type { IPoint } from '../../typings';\n\nexport class PolarPointUpdate extends ACustomAnimate<{ x: number; y: number }> {\n declare valid: boolean;\n\n private _fromAngle: number;\n private _fromRadius: number;\n\n private _toAngle: number;\n private _toRadius: number;\n\n private _center: IPointLike;\n private _prevCenter: IPointLike;\n\n constructor(\n from: { x: number; y: number; center: IPointLike },\n to: { x: number; y: number; center: IPointLike },\n duration: number,\n easing: EasingType,\n params: any\n ) {\n super(from, to, duration, easing, params);\n this._center = to.center;\n }\n\n getEndProps(): Record<string, any> {\n if (this.valid === false) {\n return {};\n }\n return polarToCartesian(this._center, this._toRadius, this._toAngle);\n }\n\n onBind(): void {\n this.from = this.target.attribute as any;\n this.to = this.target.getFinalAttribute();\n this._prevCenter = (this.target.attribute as any).center;\n if (!this._center || !this._prevCenter) {\n this.valid = false;\n }\n const { angle: fromAngle, radius: fromRadius } = cartesianToPolar(this.from, this._prevCenter);\n const { angle: toAngle, radius: toRadius } = cartesianToPolar(this.to, this._center);\n if (!isValidNumber(toAngle * toRadius)) {\n this.valid = false;\n }\n this._fromAngle = isValidNumber(fromAngle) ? fromAngle : toAngle;\n this._fromRadius = isValidNumber(fromRadius) ? fromRadius : toRadius;\n this._toAngle = toAngle;\n this._toRadius = toRadius;\n if (isClose(this._fromAngle, this._toAngle) && isClose(this._fromRadius, this._toRadius)) {\n this.valid = false;\n }\n this.props = this.getEndProps() as any;\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n if (this.valid === false) {\n out.x = this.to.x;\n out.y = this.to.y;\n return;\n }\n const { x, y } = polarToCartesian(\n {\n x: this._prevCenter.x + (this._center.x - this._prevCenter.x) * ratio,\n y: this._prevCenter.y + (this._center.y - this._prevCenter.y) * ratio\n },\n this._fromRadius + (this._toRadius - this._fromRadius) * ratio,\n this._fromAngle + (this._toAngle - this._fromAngle) * ratio\n );\n this.target.setAttributes({ x, y });\n this.target.addUpdatePositionTag();\n this.target.addUpdateShapeAndBoundsTag();\n }\n}\n\n// @ts-ignore\n// FIXME: some private attribute should be changed to protected for better inheritance\nexport class PolarTagPointsUpdate extends TagPointsUpdate {\n private declare points: IPointLike[];\n private declare interpolatePoints: [IPointLike, IPointLike][];\n\n private _center: IPointLike;\n private _prevCenter: IPointLike;\n\n onBind(): void {\n super.onBind();\n const { center } = this.target.attribute as any;\n const { center: centerTo } = this.target.getFinalAttribute() as any;\n this._center = centerTo;\n this._prevCenter = center;\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n // if not create new points, multi points animation might not work well.\n this.points = this.points.map((point, index) => {\n const newPoint = this.polarPointInterpolation(\n this.interpolatePoints[index][0],\n this.interpolatePoints[index][1],\n ratio\n );\n if (end) {\n out.center = this._center;\n }\n newPoint.context = point.context;\n return newPoint;\n });\n (this.target.attribute as ILineAttribute).points = this.points;\n this.target.addUpdatePositionTag();\n this.target.addUpdateShapeAndBoundsTag();\n }\n\n private _interpolationSinglePoint(pointA: IPoint, pointB: IPoint, ratio: number): IPoint {\n if (!isValidPoint(pointA) && !isValidPoint(pointB)) {\n return pointB;\n }\n const polarPointA = cartesianToPolar(pointA, this._prevCenter);\n const polarPointB = cartesianToPolar(pointB, this._center);\n let angleA = normalizeAngle(polarPointA.angle);\n let angleB = normalizeAngle(polarPointB.angle);\n\n // handle center point radius\n if (!isValidNumber(angleA) && isValidNumber(angleB)) {\n angleA = angleB;\n }\n if (isValidNumber(angleA) && !isValidNumber(angleB)) {\n angleB = angleA;\n }\n const angle = angleA + (angleB - angleA) * ratio;\n const radius = polarPointA.radius + (polarPointB.radius - polarPointA.radius) * ratio;\n\n return polarToCartesian(\n {\n x: this._prevCenter.x + (this._center.x - this._prevCenter.x) * ratio,\n y: this._prevCenter.y + (this._center.y - this._prevCenter.y) * ratio\n },\n radius,\n angle\n );\n }\n\n private polarPointInterpolation(pointA: IPointLike, pointB: IPointLike, ratio: number): IPointLike {\n const { x, y } = this._interpolationSinglePoint(pointA, pointB, ratio);\n const { x: x1, y: y1 } = this._interpolationSinglePoint(\n {\n x: pointA.x1,\n y: pointA.y1\n },\n {\n x: pointB.x1,\n y: pointB.y1\n },\n ratio\n );\n\n const point = new Point(x as number, y as number, x1, y1);\n point.defined = pointB.defined;\n return point;\n }\n}\n"]}
@@ -10,7 +10,7 @@ import { valueInScaleRange } from "../../../util/scale";
10
10
 
11
11
  import { PolarSeries } from "../polar";
12
12
 
13
- import { createArc, createRect } from "@visactor/vrender-core";
13
+ import { createArc, createRect } from "../../../vrender-bridge";
14
14
 
15
15
  import { progressLikeSeriesMark } from "./constant";
16
16
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/polar/progress-like/progress-like.ts"],"names":[],"mappings":"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","file":"progress-like.js","sourcesContent":["import { degreeToRadian, isNil, isValid, isValidNumber, binaryFuzzySearch } from '@visactor/vutils';\nimport { SEGMENT_FIELD_START, STACK_FIELD_END, STACK_FIELD_START } from '../../../constant/data';\nimport { POLAR_END_RADIAN, POLAR_START_RADIAN } from '../../../constant/polar';\nimport { AttributeLevel } from '../../../constant/attribute';\nimport type { IGroupMark, IMarkStyle } from '../../../mark/interface';\nimport type { ConvertToMarkStyleSpec, Datum, ICommonSpec } from '../../../typings';\nimport { valueInScaleRange } from '../../../util/scale';\nimport { PolarSeries } from '../polar';\nimport type { IContinuousTickData, IProgressLikeSeriesSpec } from './interface';\nimport type { IPolarAxis, IPolarAxisSpec } from '../../../component/axis';\nimport { createArc, createRect } from '@visactor/vrender-core';\nimport type { SeriesMarkMap } from '../../interface';\nimport { progressLikeSeriesMark } from './constant';\nimport type { ISeriesSpecUpdatePolicy } from '../../base/base-series';\n\nconst PROGRESS_LIKE_SERIES_COMPILE_ONLY_KEYS: Record<\n 'radius' | 'outerRadius' | 'innerRadius' | 'startAngle' | 'endAngle' | 'centerX' | 'centerY' | 'clamp',\n true\n> = {\n radius: true,\n outerRadius: true,\n innerRadius: true,\n startAngle: true,\n endAngle: true,\n centerX: true,\n centerY: true,\n clamp: true\n};\n\nexport abstract class ProgressLikeSeries<T extends IProgressLikeSeriesSpec> extends PolarSeries<T> {\n static readonly mark: SeriesMarkMap = progressLikeSeriesMark;\n\n protected _startAngle: number;\n protected _endAngle: number;\n\n protected _arcGroupMark: IGroupMark | null = null;\n\n protected _getSpecUpdatePolicy(): ISeriesSpecUpdatePolicy {\n const policy = super._getSpecUpdatePolicy();\n return {\n ...policy,\n compileOnlyKeys: {\n ...policy.compileOnlyKeys,\n ...PROGRESS_LIKE_SERIES_COMPILE_ONLY_KEYS\n }\n };\n }\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n const chartSpec = this._option.globalInstance.getChart()?.getSpec() as any;\n const startAngle = this._spec.startAngle ?? chartSpec?.startAngle;\n this._startAngle = isValid(startAngle) ? degreeToRadian(startAngle) : POLAR_START_RADIAN;\n const endAngle = this._spec.endAngle ?? chartSpec?.endAngle;\n this._endAngle = isValid(endAngle) ? degreeToRadian(endAngle) : POLAR_END_RADIAN;\n\n // 值信息给角度\n this.setAngleField(this._spec.valueField || this._spec.angleField);\n // 分类信息给半径\n this.setRadiusField(this._spec.categoryField || this._spec.radiusField);\n\n this._specAngleField = this._angleField.slice();\n this._specRadiusField = this._radiusField.slice();\n }\n\n getStackGroupFields(): string[] {\n return this._radiusField;\n }\n\n getStackValueField() {\n return this._angleField?.[0];\n }\n\n getGroupFields() {\n return this._angleField;\n }\n\n /** 重载 mark style 赋值前转换逻辑 */\n protected _convertMarkStyle<T extends ICommonSpec = ICommonSpec>(\n style: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>\n ): Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>> {\n const newStyle = super._convertMarkStyle(style) as unknown as any;\n\n const fillKey = 'fill';\n if (newStyle[fillKey]) {\n const value = style[fillKey] as unknown as any;\n // 为环形渐变色自动加 startAngle 和 endAngle\n if (value?.gradient === 'conical' && !isValid(value?.startAngle) && !isValid(value?.endAngle)) {\n newStyle[fillKey] = {\n ...value,\n startAngle: this._startAngle,\n endAngle: this._endAngle\n };\n }\n }\n\n return newStyle;\n }\n\n protected _getAngleValueStart = (datum: Datum) => {\n const axis = this._getAngleAxis();\n const { tickMask } = this._spec;\n\n if (tickMask?.forceAlign && this._isTickMaskVisible(axis)) {\n const field = this.getStack() ? STACK_FIELD_START : SEGMENT_FIELD_START;\n const originValue = datum[field];\n const subTickData = this._getAngleAxisSubTickData(axis);\n const step = subTickData[1].value - subTickData[0].value;\n const offsetAngle = degreeToRadian(tickMask.offsetAngle);\n\n let pos: number | undefined;\n if (isValid(originValue)) {\n // 找到第一个大于等于数据值的 tick\n const index = binaryFuzzySearch(subTickData, tick => tick.value - originValue);\n // 对齐\n const targetIndex =\n index >= subTickData.length || originValue > subTickData[index].value - step / 2\n ? Math.min(index, subTickData.length - 1)\n : index > 0\n ? index - 1\n : undefined;\n if (targetIndex !== undefined) {\n pos = this.angleAxisHelper.dataToPosition([\n subTickData[targetIndex].value - step / 2 // 确保占满整个 tick mask\n ]);\n }\n }\n if (isNil(pos)) {\n pos = this.angleAxisHelper.dataToPosition(\n [subTickData[0].value - step / 2] // 确保空出整个 tick mask\n );\n }\n return pos + offsetAngle;\n }\n return this._getAngleValueStartWithoutMask(datum);\n };\n\n protected _getAngleValueEnd = (datum: Datum) => {\n const axis = this._getAngleAxis();\n const { tickMask } = this._spec;\n\n if (tickMask?.forceAlign && this._isTickMaskVisible(axis)) {\n const field = this.getStack() ? STACK_FIELD_END : this._angleField[0];\n const originValue = datum[field];\n const subTickData = this._getAngleAxisSubTickData(axis);\n const step = subTickData[1].value - subTickData[0].value;\n const offsetAngle = degreeToRadian(tickMask.offsetAngle);\n\n // 找到第一个大于等于数据值的 tick\n const index = binaryFuzzySearch(subTickData, tick => tick.value - originValue);\n // 对齐\n const targetIndex =\n index >= subTickData.length || originValue > subTickData[index].value - step / 2\n ? Math.min(index, subTickData.length - 1)\n : index > 0\n ? index - 1\n : undefined;\n let pos: number;\n if (targetIndex !== undefined) {\n pos = this.angleAxisHelper.dataToPosition([\n subTickData[targetIndex].value + step / 2 // 确保占满整个 tick mask\n ]);\n } else {\n pos = this.angleAxisHelper.dataToPosition([\n subTickData[0].value - step / 2 // 确保空出整个 tick mask\n ]);\n }\n return pos + offsetAngle;\n }\n return this._getAngleValueEndWithoutMask(datum);\n };\n\n protected _getAngleValueStartWithoutMask(datum: Datum) {\n if (this.getStack()) {\n const value = valueInScaleRange(\n this.angleAxisHelper.dataToPosition([datum[STACK_FIELD_START]]),\n this.angleAxisHelper.getScale(0)\n );\n if (isValidNumber(value)) {\n return value;\n }\n }\n return this._startAngle;\n }\n\n protected _getAngleValueEndWithoutMask(datum: Datum) {\n if (this.getStack()) {\n const value = valueInScaleRange(\n this.angleAxisHelper.dataToPosition([datum[STACK_FIELD_END]]),\n this.angleAxisHelper.getScale(0)\n );\n if (isValidNumber(value)) {\n return value;\n }\n }\n const angle = this.angleAxisHelper.dataToPosition([datum[this._angleField[0]]]);\n return this._spec.clamp ? valueInScaleRange(angle, this.angleAxisHelper.getScale(0)) : angle;\n }\n\n getDimensionField(): string[] {\n return this._specRadiusField;\n }\n\n getMeasureField(): string[] {\n return this._specAngleField;\n }\n\n initMark(): void {\n this._initArcGroupMark();\n }\n\n initMarkStyle(): void {\n this._initArcGroupMarkStyle();\n }\n\n protected _initArcGroupMark() {\n // FIXME: disable group mark layout to prevent reevaluate after layout end\n this._arcGroupMark = this._createMark(ProgressLikeSeries.mark.group, {\n skipBeforeLayouted: false\n }) as IGroupMark;\n return this._arcGroupMark;\n }\n\n protected _initArcGroupMarkStyle() {\n const groupMark = this._arcGroupMark;\n groupMark.created();\n this.setMarkStyle(\n groupMark,\n {\n x: 0,\n y: 0\n },\n 'normal',\n AttributeLevel.Series\n );\n this._arcGroupMark.setMarkConfig({\n interactive: false,\n zIndex: this.layoutZIndex,\n clip: true,\n clipPath: () => {\n const axis = this._getAngleAxis();\n const { x, y } = this.angleAxisHelper.center();\n const radius = this._computeLayoutRadius();\n if (this._isTickMaskVisible(axis)) {\n const { tickMask } = this._spec;\n const { angle, offsetAngle, style = {} } = tickMask;\n const subTickData = this._getAngleAxisSubTickData(axis);\n const markStyle = style as any;\n return subTickData.map(({ value }) => {\n const pos = this.angleAxisHelper.dataToPosition([value]) + degreeToRadian(offsetAngle);\n const angleUnit = degreeToRadian(angle) / 2;\n return createArc({\n ...markStyle,\n x,\n y,\n startAngle: pos - angleUnit,\n endAngle: pos + angleUnit,\n innerRadius: radius * this._innerRadius,\n outerRadius: radius * this._outerRadius,\n fill: true\n });\n });\n }\n const { width, height } = this.getLayoutRect();\n return [\n createRect({\n width,\n height,\n fill: true\n })\n ];\n }\n });\n }\n\n protected _getAngleAxis() {\n if (!this.angleAxisHelper) {\n return undefined;\n }\n const angleAxisId = this.angleAxisHelper.getAxisId();\n const angleAxis = this._option\n .getChart()\n .getAllComponents()\n .find(component => component.id === angleAxisId) as IPolarAxis;\n return angleAxis;\n }\n\n protected _getAngleAxisTickData(angleAxis?: IPolarAxis): IContinuousTickData[] {\n const tickData = angleAxis?.getTickData()?.getLatestData();\n return tickData;\n }\n\n protected _isTickMaskVisible(angleAxis?: IPolarAxis) {\n const tickData = this._getAngleAxisTickData(angleAxis);\n const { tickMask } = this._spec;\n return tickMask && tickMask.visible !== false && tickData?.length > 1;\n }\n\n protected _getAngleAxisSubTickData(angleAxis: IPolarAxis) {\n const tickData = this._getAngleAxisTickData(angleAxis);\n // TODO: 这块照搬了 vrender-components 的计算方法,需要抽出这块的公用逻辑\n const subTickData: IContinuousTickData[] = [];\n const { subTick = {}, tick = {} } = (angleAxis?.getSpec() ?? {}) as IPolarAxisSpec;\n const { tickCount: subTickCount = 4 } = subTick;\n const { alignWithLabel } = tick;\n // 刻度线的数量大于 2 时,才绘制子刻度\n if (tickData?.length >= 2) {\n const tickSegment = tickData[1].value - tickData[0].value;\n for (let i = 0; i < tickData.length - 1; i++) {\n const pre = tickData[i];\n const next = tickData[i + 1];\n subTickData.push(pre);\n for (let j = 0; j < subTickCount; j++) {\n const percent = (j + 1) / (subTickCount + 1);\n const value =\n (1 - percent) * pre.value + percent * (next ? next.value : alignWithLabel ? 1 : pre.value + tickSegment);\n subTickData.push({\n value\n });\n }\n }\n subTickData.push(tickData[tickData.length - 1]);\n return subTickData;\n }\n return tickData;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/series/polar/progress-like/progress-like.ts"],"names":[],"mappings":"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","file":"progress-like.js","sourcesContent":["import { degreeToRadian, isNil, isValid, isValidNumber, binaryFuzzySearch } from '@visactor/vutils';\nimport { SEGMENT_FIELD_START, STACK_FIELD_END, STACK_FIELD_START } from '../../../constant/data';\nimport { POLAR_END_RADIAN, POLAR_START_RADIAN } from '../../../constant/polar';\nimport { AttributeLevel } from '../../../constant/attribute';\nimport type { IGroupMark, IMarkStyle } from '../../../mark/interface';\nimport type { ConvertToMarkStyleSpec, Datum, ICommonSpec } from '../../../typings';\nimport { valueInScaleRange } from '../../../util/scale';\nimport { PolarSeries } from '../polar';\nimport type { IContinuousTickData, IProgressLikeSeriesSpec } from './interface';\nimport type { IPolarAxis, IPolarAxisSpec } from '../../../component/axis';\nimport { createArc, createRect } from '../../../vrender-bridge';\nimport type { SeriesMarkMap } from '../../interface';\nimport { progressLikeSeriesMark } from './constant';\nimport type { ISeriesSpecUpdatePolicy } from '../../base/base-series';\n\nconst PROGRESS_LIKE_SERIES_COMPILE_ONLY_KEYS: Record<\n 'radius' | 'outerRadius' | 'innerRadius' | 'startAngle' | 'endAngle' | 'centerX' | 'centerY' | 'clamp',\n true\n> = {\n radius: true,\n outerRadius: true,\n innerRadius: true,\n startAngle: true,\n endAngle: true,\n centerX: true,\n centerY: true,\n clamp: true\n};\n\nexport abstract class ProgressLikeSeries<T extends IProgressLikeSeriesSpec> extends PolarSeries<T> {\n static readonly mark: SeriesMarkMap = progressLikeSeriesMark;\n\n protected _startAngle: number;\n protected _endAngle: number;\n\n protected _arcGroupMark: IGroupMark | null = null;\n\n protected _getSpecUpdatePolicy(): ISeriesSpecUpdatePolicy {\n const policy = super._getSpecUpdatePolicy();\n return {\n ...policy,\n compileOnlyKeys: {\n ...policy.compileOnlyKeys,\n ...PROGRESS_LIKE_SERIES_COMPILE_ONLY_KEYS\n }\n };\n }\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n const chartSpec = this._option.globalInstance.getChart()?.getSpec() as any;\n const startAngle = this._spec.startAngle ?? chartSpec?.startAngle;\n this._startAngle = isValid(startAngle) ? degreeToRadian(startAngle) : POLAR_START_RADIAN;\n const endAngle = this._spec.endAngle ?? chartSpec?.endAngle;\n this._endAngle = isValid(endAngle) ? degreeToRadian(endAngle) : POLAR_END_RADIAN;\n\n // 值信息给角度\n this.setAngleField(this._spec.valueField || this._spec.angleField);\n // 分类信息给半径\n this.setRadiusField(this._spec.categoryField || this._spec.radiusField);\n\n this._specAngleField = this._angleField.slice();\n this._specRadiusField = this._radiusField.slice();\n }\n\n getStackGroupFields(): string[] {\n return this._radiusField;\n }\n\n getStackValueField() {\n return this._angleField?.[0];\n }\n\n getGroupFields() {\n return this._angleField;\n }\n\n /** 重载 mark style 赋值前转换逻辑 */\n protected _convertMarkStyle<T extends ICommonSpec = ICommonSpec>(\n style: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>\n ): Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>> {\n const newStyle = super._convertMarkStyle(style) as unknown as any;\n\n const fillKey = 'fill';\n if (newStyle[fillKey]) {\n const value = style[fillKey] as unknown as any;\n // 为环形渐变色自动加 startAngle 和 endAngle\n if (value?.gradient === 'conical' && !isValid(value?.startAngle) && !isValid(value?.endAngle)) {\n newStyle[fillKey] = {\n ...value,\n startAngle: this._startAngle,\n endAngle: this._endAngle\n };\n }\n }\n\n return newStyle;\n }\n\n protected _getAngleValueStart = (datum: Datum) => {\n const axis = this._getAngleAxis();\n const { tickMask } = this._spec;\n\n if (tickMask?.forceAlign && this._isTickMaskVisible(axis)) {\n const field = this.getStack() ? STACK_FIELD_START : SEGMENT_FIELD_START;\n const originValue = datum[field];\n const subTickData = this._getAngleAxisSubTickData(axis);\n const step = subTickData[1].value - subTickData[0].value;\n const offsetAngle = degreeToRadian(tickMask.offsetAngle);\n\n let pos: number | undefined;\n if (isValid(originValue)) {\n // 找到第一个大于等于数据值的 tick\n const index = binaryFuzzySearch(subTickData, tick => tick.value - originValue);\n // 对齐\n const targetIndex =\n index >= subTickData.length || originValue > subTickData[index].value - step / 2\n ? Math.min(index, subTickData.length - 1)\n : index > 0\n ? index - 1\n : undefined;\n if (targetIndex !== undefined) {\n pos = this.angleAxisHelper.dataToPosition([\n subTickData[targetIndex].value - step / 2 // 确保占满整个 tick mask\n ]);\n }\n }\n if (isNil(pos)) {\n pos = this.angleAxisHelper.dataToPosition(\n [subTickData[0].value - step / 2] // 确保空出整个 tick mask\n );\n }\n return pos + offsetAngle;\n }\n return this._getAngleValueStartWithoutMask(datum);\n };\n\n protected _getAngleValueEnd = (datum: Datum) => {\n const axis = this._getAngleAxis();\n const { tickMask } = this._spec;\n\n if (tickMask?.forceAlign && this._isTickMaskVisible(axis)) {\n const field = this.getStack() ? STACK_FIELD_END : this._angleField[0];\n const originValue = datum[field];\n const subTickData = this._getAngleAxisSubTickData(axis);\n const step = subTickData[1].value - subTickData[0].value;\n const offsetAngle = degreeToRadian(tickMask.offsetAngle);\n\n // 找到第一个大于等于数据值的 tick\n const index = binaryFuzzySearch(subTickData, tick => tick.value - originValue);\n // 对齐\n const targetIndex =\n index >= subTickData.length || originValue > subTickData[index].value - step / 2\n ? Math.min(index, subTickData.length - 1)\n : index > 0\n ? index - 1\n : undefined;\n let pos: number;\n if (targetIndex !== undefined) {\n pos = this.angleAxisHelper.dataToPosition([\n subTickData[targetIndex].value + step / 2 // 确保占满整个 tick mask\n ]);\n } else {\n pos = this.angleAxisHelper.dataToPosition([\n subTickData[0].value - step / 2 // 确保空出整个 tick mask\n ]);\n }\n return pos + offsetAngle;\n }\n return this._getAngleValueEndWithoutMask(datum);\n };\n\n protected _getAngleValueStartWithoutMask(datum: Datum) {\n if (this.getStack()) {\n const value = valueInScaleRange(\n this.angleAxisHelper.dataToPosition([datum[STACK_FIELD_START]]),\n this.angleAxisHelper.getScale(0)\n );\n if (isValidNumber(value)) {\n return value;\n }\n }\n return this._startAngle;\n }\n\n protected _getAngleValueEndWithoutMask(datum: Datum) {\n if (this.getStack()) {\n const value = valueInScaleRange(\n this.angleAxisHelper.dataToPosition([datum[STACK_FIELD_END]]),\n this.angleAxisHelper.getScale(0)\n );\n if (isValidNumber(value)) {\n return value;\n }\n }\n const angle = this.angleAxisHelper.dataToPosition([datum[this._angleField[0]]]);\n return this._spec.clamp ? valueInScaleRange(angle, this.angleAxisHelper.getScale(0)) : angle;\n }\n\n getDimensionField(): string[] {\n return this._specRadiusField;\n }\n\n getMeasureField(): string[] {\n return this._specAngleField;\n }\n\n initMark(): void {\n this._initArcGroupMark();\n }\n\n initMarkStyle(): void {\n this._initArcGroupMarkStyle();\n }\n\n protected _initArcGroupMark() {\n // FIXME: disable group mark layout to prevent reevaluate after layout end\n this._arcGroupMark = this._createMark(ProgressLikeSeries.mark.group, {\n skipBeforeLayouted: false\n }) as IGroupMark;\n return this._arcGroupMark;\n }\n\n protected _initArcGroupMarkStyle() {\n const groupMark = this._arcGroupMark;\n groupMark.created();\n this.setMarkStyle(\n groupMark,\n {\n x: 0,\n y: 0\n },\n 'normal',\n AttributeLevel.Series\n );\n this._arcGroupMark.setMarkConfig({\n interactive: false,\n zIndex: this.layoutZIndex,\n clip: true,\n clipPath: () => {\n const axis = this._getAngleAxis();\n const { x, y } = this.angleAxisHelper.center();\n const radius = this._computeLayoutRadius();\n if (this._isTickMaskVisible(axis)) {\n const { tickMask } = this._spec;\n const { angle, offsetAngle, style = {} } = tickMask;\n const subTickData = this._getAngleAxisSubTickData(axis);\n const markStyle = style as any;\n return subTickData.map(({ value }) => {\n const pos = this.angleAxisHelper.dataToPosition([value]) + degreeToRadian(offsetAngle);\n const angleUnit = degreeToRadian(angle) / 2;\n return createArc({\n ...markStyle,\n x,\n y,\n startAngle: pos - angleUnit,\n endAngle: pos + angleUnit,\n innerRadius: radius * this._innerRadius,\n outerRadius: radius * this._outerRadius,\n fill: true\n });\n });\n }\n const { width, height } = this.getLayoutRect();\n return [\n createRect({\n width,\n height,\n fill: true\n })\n ];\n }\n });\n }\n\n protected _getAngleAxis() {\n if (!this.angleAxisHelper) {\n return undefined;\n }\n const angleAxisId = this.angleAxisHelper.getAxisId();\n const angleAxis = this._option\n .getChart()\n .getAllComponents()\n .find(component => component.id === angleAxisId) as IPolarAxis;\n return angleAxis;\n }\n\n protected _getAngleAxisTickData(angleAxis?: IPolarAxis): IContinuousTickData[] {\n const tickData = angleAxis?.getTickData()?.getLatestData();\n return tickData;\n }\n\n protected _isTickMaskVisible(angleAxis?: IPolarAxis) {\n const tickData = this._getAngleAxisTickData(angleAxis);\n const { tickMask } = this._spec;\n return tickMask && tickMask.visible !== false && tickData?.length > 1;\n }\n\n protected _getAngleAxisSubTickData(angleAxis: IPolarAxis) {\n const tickData = this._getAngleAxisTickData(angleAxis);\n // TODO: 这块照搬了 vrender-components 的计算方法,需要抽出这块的公用逻辑\n const subTickData: IContinuousTickData[] = [];\n const { subTick = {}, tick = {} } = (angleAxis?.getSpec() ?? {}) as IPolarAxisSpec;\n const { tickCount: subTickCount = 4 } = subTick;\n const { alignWithLabel } = tick;\n // 刻度线的数量大于 2 时,才绘制子刻度\n if (tickData?.length >= 2) {\n const tickSegment = tickData[1].value - tickData[0].value;\n for (let i = 0; i < tickData.length - 1; i++) {\n const pre = tickData[i];\n const next = tickData[i + 1];\n subTickData.push(pre);\n for (let j = 0; j < subTickCount; j++) {\n const percent = (j + 1) / (subTickCount + 1);\n const value =\n (1 - percent) * pre.value + percent * (next ? next.value : alignWithLabel ? 1 : pre.value + tickSegment);\n subTickData.push({\n value\n });\n }\n }\n subTickData.push(tickData[tickData.length - 1]);\n return subTickData;\n }\n return tickData;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { ClipAngleAnimate } from "@visactor/vrender-animate";
1
+ import { ClipAngleAnimate } from "@visactor/vrender-animate/custom/clip-graphic";
2
2
 
3
3
  import { Factory } from "../../core/factory";
4
4
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/radar/animation.ts"],"names":[],"mappings":"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","file":"animation.js","sourcesContent":["import type { IGraphic } from '@visactor/vrender-core';\nimport { ClipAngleAnimate, AnimateExecutor } from '@visactor/vrender-animate';\nimport { Factory } from '../../core/factory';\nimport { PolarPointUpdate, PolarTagPointsUpdate } from '../polar/animation';\nimport { DEFAULT_ANIMATION_CONFIG } from '../../animation/config';\nimport { registerArc } from '@visactor/vrender-kits/register/register-arc';\nimport type { IRadarAnimationParams, RadarAppearPreset } from './interface';\nimport type { IAnimationTypeConfig, MarkAnimationSpec } from '../../animation/interface';\nimport type { Datum } from '../../typings/common';\n\nexport const radarFadeAnimation = (animationType: 'in' | 'out') => ({\n type: animationType === 'in' ? 'fadeIn' : 'fadeOut'\n});\n\nexport const radarGrowAnimation = (params: IRadarAnimationParams, animationType: 'in' | 'out') => ({\n type: animationType === 'in' ? 'growPointsIn' : 'growPointsOut',\n options: () => ({\n center: params.center()\n })\n});\n\nexport function radarPresetAnimation(\n params: IRadarAnimationParams,\n preset: RadarAppearPreset,\n animationType: 'in' | 'out'\n) {\n switch (preset) {\n case 'fadeIn':\n return radarFadeAnimation(animationType);\n case 'clipIn':\n case 'grow':\n default:\n return radarGrowAnimation(params, animationType);\n }\n}\n\nexport const radarSymbolMoveAnimation = (params: IRadarAnimationParams, animationType: 'in' | 'out') => {\n const xFrom = () => params.center()?.x;\n const xTo = (datum: Datum, element: IGraphic) => element.getGraphicAttribute('x');\n const yFrom = () => params.center()?.y;\n const yTo = (datum: Datum, element: IGraphic) => element.getGraphicAttribute('y');\n if (animationType === 'in') {\n return {\n channel: {\n x: { from: xFrom, to: xTo },\n y: { from: yFrom, to: yTo }\n }\n };\n }\n return {\n channel: {\n x: { from: xTo, to: xFrom },\n y: { from: yTo, to: yFrom }\n }\n };\n};\n\nexport function radarSymbolPresetAnimation(\n params: IRadarAnimationParams,\n preset: RadarAppearPreset,\n animationType: 'in' | 'out'\n) {\n switch (preset) {\n case 'fadeIn':\n return radarFadeAnimation(animationType);\n case 'clipIn':\n case 'grow':\n default:\n return radarSymbolMoveAnimation(params, animationType);\n }\n}\n\nexport const radarGroupClipAnimation = (\n params: IRadarAnimationParams,\n animationType: 'in' | 'out'\n): IAnimationTypeConfig => {\n return {\n custom: ClipAngleAnimate,\n customParameters: (datum: any, graphic: IGraphic) => {\n return {\n group: graphic,\n startAngle: params.startAngle ?? Math.PI / 2,\n orient: 'clockwise',\n center: params.center(),\n radius: params.radius(),\n animationType\n };\n }\n };\n};\n\nexport const registerRadarAnimation = () => {\n Factory.registerAnimation('radar', (params: IRadarAnimationParams, preset: RadarAppearPreset) => {\n return {\n appear: preset === 'clipIn' ? undefined : radarPresetAnimation(params, preset, 'in'),\n enter: radarPresetAnimation(params, preset, 'in'),\n exit: radarPresetAnimation(params, preset, 'out'),\n disappear: preset === 'clipIn' ? undefined : { duration: DEFAULT_ANIMATION_CONFIG.disappear.duration },\n update: [\n {\n channel: ['points', 'center'],\n custom: PolarTagPointsUpdate,\n customParameters: params,\n duration: DEFAULT_ANIMATION_CONFIG.update.duration,\n easing: DEFAULT_ANIMATION_CONFIG.update.easing\n },\n {\n type: 'update',\n options: { excludeChannels: ['points', 'defined', 'center'] }\n }\n ]\n } as MarkAnimationSpec;\n });\n Factory.registerAnimation(\n 'radarSymbol',\n (params: IRadarAnimationParams, preset: RadarAppearPreset) =>\n ({\n appear: preset === 'clipIn' ? undefined : radarSymbolPresetAnimation(params, preset, 'in'),\n enter: { type: 'scaleIn' },\n exit: { type: 'scaleOut' },\n disappear: preset === 'clipIn' ? undefined : { duration: DEFAULT_ANIMATION_CONFIG.disappear.duration },\n update: [\n {\n options: { excludeChannels: ['x', 'y', 'center'] }\n },\n {\n channel: ['x', 'y', 'center'],\n custom: PolarPointUpdate,\n customParameters: params,\n duration: DEFAULT_ANIMATION_CONFIG.update.duration,\n easing: DEFAULT_ANIMATION_CONFIG.update.easing\n }\n ]\n } as MarkAnimationSpec)\n );\n Factory.registerAnimation('radarGroup', (params: IRadarAnimationParams, preset: RadarAppearPreset) => {\n return {\n appear: radarGroupClipAnimation(params, 'in'),\n disappear: { duration: DEFAULT_ANIMATION_CONFIG.disappear.duration }\n };\n });\n registerArc(); // clipAngle animation will use arc graphic\n};\n"]}
1
+ {"version":3,"sources":["../src/series/radar/animation.ts"],"names":[],"mappings":"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","file":"animation.js","sourcesContent":["import type { IGraphic } from '@visactor/vrender-core';\nimport { ClipAngleAnimate } from '@visactor/vrender-animate/custom/clip-graphic';\nimport { AnimateExecutor } from '@visactor/vrender-animate/executor/animate-executor';\nimport { Factory } from '../../core/factory';\nimport { PolarPointUpdate, PolarTagPointsUpdate } from '../polar/animation';\nimport { DEFAULT_ANIMATION_CONFIG } from '../../animation/config';\nimport { registerArc } from '@visactor/vrender-kits/register/register-arc';\nimport type { IRadarAnimationParams, RadarAppearPreset } from './interface';\nimport type { IAnimationTypeConfig, MarkAnimationSpec } from '../../animation/interface';\nimport type { Datum } from '../../typings/common';\n\nexport const radarFadeAnimation = (animationType: 'in' | 'out') => ({\n type: animationType === 'in' ? 'fadeIn' : 'fadeOut'\n});\n\nexport const radarGrowAnimation = (params: IRadarAnimationParams, animationType: 'in' | 'out') => ({\n type: animationType === 'in' ? 'growPointsIn' : 'growPointsOut',\n options: () => ({\n center: params.center()\n })\n});\n\nexport function radarPresetAnimation(\n params: IRadarAnimationParams,\n preset: RadarAppearPreset,\n animationType: 'in' | 'out'\n) {\n switch (preset) {\n case 'fadeIn':\n return radarFadeAnimation(animationType);\n case 'clipIn':\n case 'grow':\n default:\n return radarGrowAnimation(params, animationType);\n }\n}\n\nexport const radarSymbolMoveAnimation = (params: IRadarAnimationParams, animationType: 'in' | 'out') => {\n const xFrom = () => params.center()?.x;\n const xTo = (datum: Datum, element: IGraphic) => element.getGraphicAttribute('x');\n const yFrom = () => params.center()?.y;\n const yTo = (datum: Datum, element: IGraphic) => element.getGraphicAttribute('y');\n if (animationType === 'in') {\n return {\n channel: {\n x: { from: xFrom, to: xTo },\n y: { from: yFrom, to: yTo }\n }\n };\n }\n return {\n channel: {\n x: { from: xTo, to: xFrom },\n y: { from: yTo, to: yFrom }\n }\n };\n};\n\nexport function radarSymbolPresetAnimation(\n params: IRadarAnimationParams,\n preset: RadarAppearPreset,\n animationType: 'in' | 'out'\n) {\n switch (preset) {\n case 'fadeIn':\n return radarFadeAnimation(animationType);\n case 'clipIn':\n case 'grow':\n default:\n return radarSymbolMoveAnimation(params, animationType);\n }\n}\n\nexport const radarGroupClipAnimation = (\n params: IRadarAnimationParams,\n animationType: 'in' | 'out'\n): IAnimationTypeConfig => {\n return {\n custom: ClipAngleAnimate,\n customParameters: (datum: any, graphic: IGraphic) => {\n return {\n group: graphic,\n startAngle: params.startAngle ?? Math.PI / 2,\n orient: 'clockwise',\n center: params.center(),\n radius: params.radius(),\n animationType\n };\n }\n };\n};\n\nexport const registerRadarAnimation = () => {\n Factory.registerAnimation('radar', (params: IRadarAnimationParams, preset: RadarAppearPreset) => {\n return {\n appear: preset === 'clipIn' ? undefined : radarPresetAnimation(params, preset, 'in'),\n enter: radarPresetAnimation(params, preset, 'in'),\n exit: radarPresetAnimation(params, preset, 'out'),\n disappear: preset === 'clipIn' ? undefined : { duration: DEFAULT_ANIMATION_CONFIG.disappear.duration },\n update: [\n {\n channel: ['points', 'center'],\n custom: PolarTagPointsUpdate,\n customParameters: params,\n duration: DEFAULT_ANIMATION_CONFIG.update.duration,\n easing: DEFAULT_ANIMATION_CONFIG.update.easing\n },\n {\n type: 'update',\n options: { excludeChannels: ['points', 'defined', 'center'] }\n }\n ]\n } as MarkAnimationSpec;\n });\n Factory.registerAnimation(\n 'radarSymbol',\n (params: IRadarAnimationParams, preset: RadarAppearPreset) =>\n ({\n appear: preset === 'clipIn' ? undefined : radarSymbolPresetAnimation(params, preset, 'in'),\n enter: { type: 'scaleIn' },\n exit: { type: 'scaleOut' },\n disappear: preset === 'clipIn' ? undefined : { duration: DEFAULT_ANIMATION_CONFIG.disappear.duration },\n update: [\n {\n options: { excludeChannels: ['x', 'y', 'center'] }\n },\n {\n channel: ['x', 'y', 'center'],\n custom: PolarPointUpdate,\n customParameters: params,\n duration: DEFAULT_ANIMATION_CONFIG.update.duration,\n easing: DEFAULT_ANIMATION_CONFIG.update.easing\n }\n ]\n } as MarkAnimationSpec)\n );\n Factory.registerAnimation('radarGroup', (params: IRadarAnimationParams, preset: RadarAppearPreset) => {\n return {\n appear: radarGroupClipAnimation(params, 'in'),\n disappear: { duration: DEFAULT_ANIMATION_CONFIG.disappear.duration }\n };\n });\n registerArc(); // clipAngle animation will use arc graphic\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  import type { ISankeyAnimationParams, SankeyAppearPreset } from './interface';
2
2
  import type { IAnimationTypeConfig } from '../../animation/interface';
3
- import { ACustomAnimate } from '@visactor/vrender-animate';
3
+ import { ACustomAnimate } from '@visactor/vrender-animate/custom/custom-animate';
4
4
  export declare const sankeyGrowIn: (params: ISankeyAnimationParams, isOverall?: boolean) => IAnimationTypeConfig;
5
5
  export declare const sankeyGrowOut: (params: ISankeyAnimationParams, isOverall?: boolean) => IAnimationTypeConfig;
6
6
  export declare const sankeyNodePresetAnimation: (params: ISankeyAnimationParams, preset: SankeyAppearPreset) => IAnimationTypeConfig;
@@ -4,7 +4,9 @@ import { DEFAULT_ANIMATION_CONFIG } from "../../animation/config";
4
4
 
5
5
  import { FadeInOutAnimation } from "../../animation/config";
6
6
 
7
- import { ACustomAnimate, AnimateExecutor } from "@visactor/vrender-animate";
7
+ import { ACustomAnimate } from "@visactor/vrender-animate/custom/custom-animate";
8
+
9
+ import { AnimateExecutor } from "@visactor/vrender-animate/executor/animate-executor";
8
10
 
9
11
  export const sankeyGrowIn = (params, isOverall = !0) => ({
10
12
  type: "horizontal" === params.direction ? "growWidthIn" : "growHeightIn",
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/sankey/animation.ts"],"names":[],"mappings":"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","file":"animation.js","sourcesContent":["// eslint-disable-next-line no-duplicate-imports\nimport { Direction } from '../../typings/space';\nimport { Factory } from '../../core/factory';\nimport { DEFAULT_ANIMATION_CONFIG } from '../../animation/config';\nimport { FadeInOutAnimation } from '../../animation/config';\nimport type { ISankeyAnimationParams, SankeyAppearPreset } from './interface';\nimport type { IAnimationTypeConfig, IAnimationParameters } from '../../animation/interface';\nimport { ACustomAnimate, AnimateExecutor } from '@visactor/vrender-animate';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type { ILinkPathMarkSpec } from '../../typings';\n\nexport const sankeyGrowIn = (params: ISankeyAnimationParams, isOverall: boolean = true): IAnimationTypeConfig => {\n return {\n type: params.direction === Direction.horizontal ? 'growWidthIn' : 'growHeightIn',\n options: {\n overall: isOverall ? params.growFrom() : isOverall,\n orient: Direction.horizontal ? 'positive' : 'negative'\n }\n };\n};\n\nexport const sankeyGrowOut = (params: ISankeyAnimationParams, isOverall: boolean = true): IAnimationTypeConfig => {\n return {\n type: params.direction === Direction.horizontal ? 'growWidthOut' : 'growHeightOut',\n options: {\n overall: isOverall ? params.growFrom() : isOverall,\n orient: Direction.horizontal ? 'positive' : 'negative'\n }\n };\n};\n\nexport const sankeyNodePresetAnimation = (\n params: ISankeyAnimationParams,\n preset: SankeyAppearPreset\n): IAnimationTypeConfig => {\n switch (preset) {\n case 'fadeIn': {\n return {\n type: 'fadeIn'\n };\n }\n case 'growIn': {\n return sankeyGrowIn(params);\n }\n default: {\n return sankeyGrowIn(params);\n }\n }\n};\n\nexport const sankeyLinkPresetAnimation = (preset: SankeyAppearPreset): IAnimationTypeConfig => {\n switch (preset) {\n case 'fadeIn': {\n return {\n type: 'fadeIn'\n };\n }\n case 'growIn': {\n return { type: 'linkPathGrowIn' };\n }\n default: {\n return { type: 'linkPathGrowIn' };\n }\n }\n};\n\ntype TypeAnimation<T extends IGraphic> = (\n graphic: T,\n options: any,\n animationParameters: IAnimationParameters\n) => { from?: { [channel: string]: any }; to?: { [channel: string]: any } };\n\nconst linkPathGrowIn: TypeAnimation<IGraphic> = (\n graphic: IGraphic,\n options: any,\n animationParameters: IAnimationParameters\n) => {\n const linkValues: ILinkPathMarkSpec = {\n x0: graphic.getFinalAttribute().x0,\n x1: graphic.getFinalAttribute().x1,\n y0: graphic.getFinalAttribute().y0,\n y1: graphic.getFinalAttribute().y1,\n thickness: graphic.getFinalAttribute().thickness\n };\n // // FIXME: undefined channel animation will cause vRender warning\n // Object.keys(linkValues).forEach(key => {\n // if (isNil(linkValues[key])) {\n // delete linkValues[key];\n // }\n // });\n return {\n from: Object.assign({}, linkValues, { x1: linkValues.x0, y1: linkValues.y0 }),\n to: linkValues\n };\n};\n\nconst linkPathGrowOut: TypeAnimation<IGraphic> = (\n element: IGraphic,\n options: any,\n animationParameters: IAnimationParameters\n) => {\n const linkValues: ILinkPathMarkSpec = {\n x0: element.getFinalAttribute().x0,\n x1: element.getFinalAttribute().x1,\n y0: element.getFinalAttribute().y0,\n y1: element.getFinalAttribute().y1,\n thickness: element.getFinalAttribute().thickness\n };\n // // FIXME: undefined channel animation will cause vRender warning\n // Object.keys(linkValues).forEach(key => {\n // if (isNil(linkValues[key])) {\n // delete linkValues[key];\n // }\n // });\n return {\n from: linkValues,\n to: Object.assign({}, linkValues, { x1: linkValues.x0, y1: linkValues.y0 })\n };\n};\n\nconst linkPathUpdate: TypeAnimation<IGraphic> = (\n graphic: IGraphic,\n options: any,\n animationParameters: IAnimationParameters\n) => {\n let from;\n let to;\n {\n const { x0, x1, y0, y1 } = graphic.getFinalAttribute();\n from = { x0, x1, y0, y1 };\n }\n {\n const { x0, x1, y0, y1 } = graphic.attribute as any;\n to = { x0, x1, y0, y1 };\n }\n\n return {\n from,\n to\n };\n};\n\nexport class LinkPathGrowIn extends ACustomAnimate<Record<string, number>> {\n onBind(): void {\n super.onBind();\n if (this.params?.diffAttrs) {\n this.target.setAttributes(this.params.diffAttrs);\n }\n const { from, to } = linkPathGrowIn(this.target, this.params.options, this.params);\n const fromAttrs = this.target.context?.lastAttrs ?? from;\n const finalAttribute = this.target.getFinalAttribute();\n if (finalAttribute) {\n Object.assign(this.target.attribute, finalAttribute);\n }\n this.props = to;\n this.propKeys = Object.keys(to).filter(key => to[key] != null);\n this.animate.reSyncProps();\n this.from = fromAttrs;\n this.to = to;\n this.target.setAttributes(fromAttrs);\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n const attribute: Record<string, any> = this.target.attribute;\n this.propKeys.forEach(key => {\n attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;\n });\n this.target.setAttributes(attribute);\n }\n}\n\nexport class LinkPathGrowOut extends ACustomAnimate<Record<string, number>> {\n onBind(): void {\n super.onBind();\n if (this.params?.diffAttrs) {\n this.target.setAttributes(this.params.diffAttrs);\n }\n const { from, to } = linkPathGrowOut(this.target, this.params.options, this.params);\n const fromAttrs = this.target.context?.lastAttrs ?? from;\n this.props = to;\n this.propKeys = Object.keys(to).filter(key => to[key] != null);\n this.animate.reSyncProps();\n this.from = fromAttrs;\n this.to = to;\n this.target.setAttributes(fromAttrs);\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n const attribute: Record<string, any> = this.target.attribute;\n this.propKeys.forEach(key => {\n attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;\n });\n this.target.setAttributes(attribute);\n }\n}\n\nexport class LinkPathUpdate extends ACustomAnimate<Record<string, number>> {\n onBind(): void {\n if (this.params?.diffAttrs) {\n this.target.setAttributes(this.params.diffAttrs);\n }\n const { from, to } = linkPathUpdate(this.target, this.params.options, this.params);\n const fromAttrs = this.target.context?.lastAttrs ?? from;\n this.props = to;\n this.propKeys = Object.keys(to).filter(key => to[key] != null);\n this.animate.reSyncProps();\n this.from = fromAttrs;\n this.to = to;\n this.target.setAttributes(fromAttrs);\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n const attribute: Record<string, any> = this.target.attribute;\n this.propKeys.forEach(key => {\n attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;\n });\n this.target.setAttributes(attribute);\n }\n}\n\nexport const registerSankeyAnimation = () => {\n Factory.registerAnimation('sankeyNode', (params: ISankeyAnimationParams, preset: SankeyAppearPreset) => ({\n appear: sankeyNodePresetAnimation(params, preset),\n ...FadeInOutAnimation\n }));\n Factory.registerAnimation('sankeyLinkPath', (params: unknown, preset: SankeyAppearPreset) => ({\n appear: sankeyLinkPresetAnimation(preset),\n enter: { type: 'linkPathGrowIn' },\n exit: { type: 'linkPathGrowOut' },\n disappear: { duration: DEFAULT_ANIMATION_CONFIG.disappear.duration }\n }));\n AnimateExecutor.registerBuiltInAnimate('linkPathGrowOut', LinkPathGrowOut);\n AnimateExecutor.registerBuiltInAnimate('linkPathGrowIn', LinkPathGrowIn);\n};\n"]}
1
+ {"version":3,"sources":["../src/series/sankey/animation.ts"],"names":[],"mappings":"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","file":"animation.js","sourcesContent":["// eslint-disable-next-line no-duplicate-imports\nimport { Direction } from '../../typings/space';\nimport { Factory } from '../../core/factory';\nimport { DEFAULT_ANIMATION_CONFIG } from '../../animation/config';\nimport { FadeInOutAnimation } from '../../animation/config';\nimport type { ISankeyAnimationParams, SankeyAppearPreset } from './interface';\nimport type { IAnimationTypeConfig, IAnimationParameters } from '../../animation/interface';\nimport { ACustomAnimate } from '@visactor/vrender-animate/custom/custom-animate';\nimport { AnimateExecutor } from '@visactor/vrender-animate/executor/animate-executor';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type { ILinkPathMarkSpec } from '../../typings';\n\nexport const sankeyGrowIn = (params: ISankeyAnimationParams, isOverall: boolean = true): IAnimationTypeConfig => {\n return {\n type: params.direction === Direction.horizontal ? 'growWidthIn' : 'growHeightIn',\n options: {\n overall: isOverall ? params.growFrom() : isOverall,\n orient: Direction.horizontal ? 'positive' : 'negative'\n }\n };\n};\n\nexport const sankeyGrowOut = (params: ISankeyAnimationParams, isOverall: boolean = true): IAnimationTypeConfig => {\n return {\n type: params.direction === Direction.horizontal ? 'growWidthOut' : 'growHeightOut',\n options: {\n overall: isOverall ? params.growFrom() : isOverall,\n orient: Direction.horizontal ? 'positive' : 'negative'\n }\n };\n};\n\nexport const sankeyNodePresetAnimation = (\n params: ISankeyAnimationParams,\n preset: SankeyAppearPreset\n): IAnimationTypeConfig => {\n switch (preset) {\n case 'fadeIn': {\n return {\n type: 'fadeIn'\n };\n }\n case 'growIn': {\n return sankeyGrowIn(params);\n }\n default: {\n return sankeyGrowIn(params);\n }\n }\n};\n\nexport const sankeyLinkPresetAnimation = (preset: SankeyAppearPreset): IAnimationTypeConfig => {\n switch (preset) {\n case 'fadeIn': {\n return {\n type: 'fadeIn'\n };\n }\n case 'growIn': {\n return { type: 'linkPathGrowIn' };\n }\n default: {\n return { type: 'linkPathGrowIn' };\n }\n }\n};\n\ntype TypeAnimation<T extends IGraphic> = (\n graphic: T,\n options: any,\n animationParameters: IAnimationParameters\n) => { from?: { [channel: string]: any }; to?: { [channel: string]: any } };\n\nconst linkPathGrowIn: TypeAnimation<IGraphic> = (\n graphic: IGraphic,\n options: any,\n animationParameters: IAnimationParameters\n) => {\n const linkValues: ILinkPathMarkSpec = {\n x0: graphic.getFinalAttribute().x0,\n x1: graphic.getFinalAttribute().x1,\n y0: graphic.getFinalAttribute().y0,\n y1: graphic.getFinalAttribute().y1,\n thickness: graphic.getFinalAttribute().thickness\n };\n // // FIXME: undefined channel animation will cause vRender warning\n // Object.keys(linkValues).forEach(key => {\n // if (isNil(linkValues[key])) {\n // delete linkValues[key];\n // }\n // });\n return {\n from: Object.assign({}, linkValues, { x1: linkValues.x0, y1: linkValues.y0 }),\n to: linkValues\n };\n};\n\nconst linkPathGrowOut: TypeAnimation<IGraphic> = (\n element: IGraphic,\n options: any,\n animationParameters: IAnimationParameters\n) => {\n const linkValues: ILinkPathMarkSpec = {\n x0: element.getFinalAttribute().x0,\n x1: element.getFinalAttribute().x1,\n y0: element.getFinalAttribute().y0,\n y1: element.getFinalAttribute().y1,\n thickness: element.getFinalAttribute().thickness\n };\n // // FIXME: undefined channel animation will cause vRender warning\n // Object.keys(linkValues).forEach(key => {\n // if (isNil(linkValues[key])) {\n // delete linkValues[key];\n // }\n // });\n return {\n from: linkValues,\n to: Object.assign({}, linkValues, { x1: linkValues.x0, y1: linkValues.y0 })\n };\n};\n\nconst linkPathUpdate: TypeAnimation<IGraphic> = (\n graphic: IGraphic,\n options: any,\n animationParameters: IAnimationParameters\n) => {\n let from;\n let to;\n {\n const { x0, x1, y0, y1 } = graphic.getFinalAttribute();\n from = { x0, x1, y0, y1 };\n }\n {\n const { x0, x1, y0, y1 } = graphic.attribute as any;\n to = { x0, x1, y0, y1 };\n }\n\n return {\n from,\n to\n };\n};\n\nexport class LinkPathGrowIn extends ACustomAnimate<Record<string, number>> {\n onBind(): void {\n super.onBind();\n if (this.params?.diffAttrs) {\n this.target.setAttributes(this.params.diffAttrs);\n }\n const { from, to } = linkPathGrowIn(this.target, this.params.options, this.params);\n const fromAttrs = this.target.context?.lastAttrs ?? from;\n const finalAttribute = this.target.getFinalAttribute();\n if (finalAttribute) {\n Object.assign(this.target.attribute, finalAttribute);\n }\n this.props = to;\n this.propKeys = Object.keys(to).filter(key => to[key] != null);\n this.animate.reSyncProps();\n this.from = fromAttrs;\n this.to = to;\n this.target.setAttributes(fromAttrs);\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n const attribute: Record<string, any> = this.target.attribute;\n this.propKeys.forEach(key => {\n attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;\n });\n this.target.setAttributes(attribute);\n }\n}\n\nexport class LinkPathGrowOut extends ACustomAnimate<Record<string, number>> {\n onBind(): void {\n super.onBind();\n if (this.params?.diffAttrs) {\n this.target.setAttributes(this.params.diffAttrs);\n }\n const { from, to } = linkPathGrowOut(this.target, this.params.options, this.params);\n const fromAttrs = this.target.context?.lastAttrs ?? from;\n this.props = to;\n this.propKeys = Object.keys(to).filter(key => to[key] != null);\n this.animate.reSyncProps();\n this.from = fromAttrs;\n this.to = to;\n this.target.setAttributes(fromAttrs);\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n const attribute: Record<string, any> = this.target.attribute;\n this.propKeys.forEach(key => {\n attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;\n });\n this.target.setAttributes(attribute);\n }\n}\n\nexport class LinkPathUpdate extends ACustomAnimate<Record<string, number>> {\n onBind(): void {\n if (this.params?.diffAttrs) {\n this.target.setAttributes(this.params.diffAttrs);\n }\n const { from, to } = linkPathUpdate(this.target, this.params.options, this.params);\n const fromAttrs = this.target.context?.lastAttrs ?? from;\n this.props = to;\n this.propKeys = Object.keys(to).filter(key => to[key] != null);\n this.animate.reSyncProps();\n this.from = fromAttrs;\n this.to = to;\n this.target.setAttributes(fromAttrs);\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n const attribute: Record<string, any> = this.target.attribute;\n this.propKeys.forEach(key => {\n attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;\n });\n this.target.setAttributes(attribute);\n }\n}\n\nexport const registerSankeyAnimation = () => {\n Factory.registerAnimation('sankeyNode', (params: ISankeyAnimationParams, preset: SankeyAppearPreset) => ({\n appear: sankeyNodePresetAnimation(params, preset),\n ...FadeInOutAnimation\n }));\n Factory.registerAnimation('sankeyLinkPath', (params: unknown, preset: SankeyAppearPreset) => ({\n appear: sankeyLinkPresetAnimation(preset),\n enter: { type: 'linkPathGrowIn' },\n exit: { type: 'linkPathGrowOut' },\n disappear: { duration: DEFAULT_ANIMATION_CONFIG.disappear.duration }\n }));\n AnimateExecutor.registerBuiltInAnimate('linkPathGrowOut', LinkPathGrowOut);\n AnimateExecutor.registerBuiltInAnimate('linkPathGrowIn', LinkPathGrowIn);\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { ACustomAnimate } from '@visactor/vrender-animate';
1
+ import { ACustomAnimate } from '@visactor/vrender-animate/custom/custom-animate';
2
2
  import type { IVennCircle, IVennOverlapArc, VennCircleName } from '@visactor/vlayouts';
3
3
  import type { VennAppearPreset } from './interface';
4
4
  import type { IAnimationTypeConfig } from '../../animation/interface';
@@ -1,4 +1,4 @@
1
- import { ACustomAnimate } from "@visactor/vrender-animate";
1
+ import { ACustomAnimate } from "@visactor/vrender-animate/custom/custom-animate";
2
2
 
3
3
  import { getArcsFromCircles, getCirclesFromArcs, getPathFromArcs } from "@visactor/vlayouts";
4
4
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/venn/animation.ts"],"names":[],"mappings":"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","file":"animation.js","sourcesContent":["import { ACustomAnimate } from '@visactor/vrender-animate';\nimport type { IVennCircle, IVennOverlapArc, VennCircleName } from '@visactor/vlayouts';\nimport { getArcsFromCircles, getCirclesFromArcs, getPathFromArcs } from '@visactor/vlayouts';\n\nimport type { VennAppearPreset } from './interface';\nimport type { IAnimationTypeConfig } from '../../animation/interface';\n// import { ACustomAnimate } from '@visactor/vrender-animate';\nimport { Factory } from '../../core/factory';\nimport { DEFAULT_ANIMATION_CONFIG } from '../../animation/config';\n\nexport const vennCirclePresetAnimation = (preset: VennAppearPreset): IAnimationTypeConfig => {\n switch (preset) {\n case 'fadeIn': {\n return {\n type: 'fadeIn'\n };\n }\n case 'growIn': {\n return {\n type: 'growRadiusIn'\n };\n }\n case 'scaleIn': {\n return {\n type: 'scaleIn'\n };\n }\n default: {\n return {\n type: 'fadeIn'\n };\n }\n }\n};\n\nexport const vennOverlapPresetAnimation = (preset: VennAppearPreset): IAnimationTypeConfig => {\n switch (preset) {\n case 'fadeIn': {\n return {\n type: 'fadeIn'\n };\n }\n case 'scaleIn': {\n return {\n type: 'scaleIn'\n };\n }\n default: {\n return {\n type: 'fadeIn'\n };\n }\n }\n};\n\nexport class VennOverlapAnimation extends ACustomAnimate<{ path: string; arcs: IVennOverlapArc[] }> {\n protected fromCircles: Record<VennCircleName, IVennCircle>;\n protected toCircles: Record<VennCircleName, IVennCircle>;\n\n onBind(): void {\n this.fromCircles = {};\n getCirclesFromArcs((this.target.attribute as any).arcs)?.forEach((c: IVennCircle) => {\n this.fromCircles[c.setId] = c;\n });\n this.toCircles = {};\n getCirclesFromArcs(this.target.getFinalAttribute().arcs)?.forEach((c: IVennCircle) => {\n this.toCircles[c.setId] = c;\n });\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n const circles: IVennCircle[] = [];\n Object.keys(this.fromCircles).forEach(key => {\n const fromC = this.fromCircles[key];\n const toC = this.toCircles[key];\n if (fromC && toC) {\n circles.push({\n radius: fromC.radius + (toC.radius - fromC.radius) * ratio,\n x: fromC.x + (toC.x - fromC.x) * ratio,\n y: fromC.y + (toC.y - fromC.y) * ratio,\n setId: key\n } as IVennCircle);\n }\n });\n const arcs = getArcsFromCircles(circles);\n\n this.target.setAttributes({\n arcs,\n path: getPathFromArcs(arcs)\n } as any);\n }\n}\n\nexport const registerVennAnimation = () => {\n Factory.registerAnimation('vennCircle', (params: unknown, preset: VennAppearPreset) => {\n return {\n appear: vennCirclePresetAnimation(preset),\n enter: { type: 'growRadiusIn' },\n exit: { type: 'growRadiusOut' },\n disappear: { duration: DEFAULT_ANIMATION_CONFIG.disappear.duration }\n };\n });\n Factory.registerAnimation('vennOverlap', (params: unknown, preset: VennAppearPreset) => {\n return {\n appear: vennOverlapPresetAnimation(preset),\n update: { custom: VennOverlapAnimation },\n enter: { type: 'fadeIn' },\n exit: { type: 'fadeOut' },\n disappear: { duration: DEFAULT_ANIMATION_CONFIG.disappear.duration }\n };\n });\n};\n"]}
1
+ {"version":3,"sources":["../src/series/venn/animation.ts"],"names":[],"mappings":"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","file":"animation.js","sourcesContent":["import { ACustomAnimate } from '@visactor/vrender-animate/custom/custom-animate';\nimport type { IVennCircle, IVennOverlapArc, VennCircleName } from '@visactor/vlayouts';\nimport { getArcsFromCircles, getCirclesFromArcs, getPathFromArcs } from '@visactor/vlayouts';\n\nimport type { VennAppearPreset } from './interface';\nimport type { IAnimationTypeConfig } from '../../animation/interface';\nimport { Factory } from '../../core/factory';\nimport { DEFAULT_ANIMATION_CONFIG } from '../../animation/config';\n\nexport const vennCirclePresetAnimation = (preset: VennAppearPreset): IAnimationTypeConfig => {\n switch (preset) {\n case 'fadeIn': {\n return {\n type: 'fadeIn'\n };\n }\n case 'growIn': {\n return {\n type: 'growRadiusIn'\n };\n }\n case 'scaleIn': {\n return {\n type: 'scaleIn'\n };\n }\n default: {\n return {\n type: 'fadeIn'\n };\n }\n }\n};\n\nexport const vennOverlapPresetAnimation = (preset: VennAppearPreset): IAnimationTypeConfig => {\n switch (preset) {\n case 'fadeIn': {\n return {\n type: 'fadeIn'\n };\n }\n case 'scaleIn': {\n return {\n type: 'scaleIn'\n };\n }\n default: {\n return {\n type: 'fadeIn'\n };\n }\n }\n};\n\nexport class VennOverlapAnimation extends ACustomAnimate<{ path: string; arcs: IVennOverlapArc[] }> {\n protected fromCircles: Record<VennCircleName, IVennCircle>;\n protected toCircles: Record<VennCircleName, IVennCircle>;\n\n onBind(): void {\n this.fromCircles = {};\n getCirclesFromArcs((this.target.attribute as any).arcs)?.forEach((c: IVennCircle) => {\n this.fromCircles[c.setId] = c;\n });\n this.toCircles = {};\n getCirclesFromArcs(this.target.getFinalAttribute().arcs)?.forEach((c: IVennCircle) => {\n this.toCircles[c.setId] = c;\n });\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n const circles: IVennCircle[] = [];\n Object.keys(this.fromCircles).forEach(key => {\n const fromC = this.fromCircles[key];\n const toC = this.toCircles[key];\n if (fromC && toC) {\n circles.push({\n radius: fromC.radius + (toC.radius - fromC.radius) * ratio,\n x: fromC.x + (toC.x - fromC.x) * ratio,\n y: fromC.y + (toC.y - fromC.y) * ratio,\n setId: key\n } as IVennCircle);\n }\n });\n const arcs = getArcsFromCircles(circles);\n\n this.target.setAttributes({\n arcs,\n path: getPathFromArcs(arcs)\n } as any);\n }\n}\n\nexport const registerVennAnimation = () => {\n Factory.registerAnimation('vennCircle', (params: unknown, preset: VennAppearPreset) => {\n return {\n appear: vennCirclePresetAnimation(preset),\n enter: { type: 'growRadiusIn' },\n exit: { type: 'growRadiusOut' },\n disappear: { duration: DEFAULT_ANIMATION_CONFIG.disappear.duration }\n };\n });\n Factory.registerAnimation('vennOverlap', (params: unknown, preset: VennAppearPreset) => {\n return {\n appear: vennOverlapPresetAnimation(preset),\n update: { custom: VennOverlapAnimation },\n enter: { type: 'fadeIn' },\n exit: { type: 'fadeOut' },\n disappear: { duration: DEFAULT_ANIMATION_CONFIG.disappear.duration }\n };\n });\n};\n"]}
@@ -26,7 +26,9 @@ import { Factory } from "../../core/factory";
26
26
 
27
27
  import { LinearScale } from "@visactor/vscale";
28
28
 
29
- import { vglobal, getTextBounds, createImage } from "@visactor/vrender-core";
29
+ import { createImage, vglobal } from "../../vrender-bridge";
30
+
31
+ import { getTextBounds } from "@visactor/vrender-core/text";
30
32
 
31
33
  import { wordCloud } from "../../theme/builtin/common/series/word-cloud";
32
34
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/word-cloud/base.ts"],"names":[],"mappings":"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","file":"base.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport type { IPadding } from '@visactor/vutils';\nimport { isNil, isObject, isValidNumber } from '@visactor/vutils';\nimport { isValid } from '@visactor/vutils';\nimport { DEFAULT_DATA_INDEX, DEFAULT_DATA_KEY, DEFAULT_DATA_SERIES_FIELD } from '../../constant/data';\nimport { AttributeLevel } from '../../constant/attribute';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum } from '../interface/type';\nimport { isTrueBrowser } from '../../util/env';\nimport {\n DEFAULT_DRAW_OUT_OF_BOUND,\n DEFAULT_FONTSIZE_RANGE,\n DEFAULT_FONT_PADDING,\n DEFAULT_FONT_WEIGHT_RANGE,\n DEFAULT_MASK_SHAPE,\n DEFAULT_MIN_FONT_SIZE,\n DEFAULT_RANDOM,\n DEFAULT_ROTATE_ANGLES,\n DEFAULT_ZOOM_TO_FIT,\n SHAPE_TYPE\n} from './config';\nimport type {\n IWordCloudSeriesSpec,\n IWordCloudSeriesTheme,\n WordCloudConfigType,\n WordCloudShapeConfigType,\n WordCloudShapeType\n} from './interface';\nimport { WordMeasureCache } from './measure-cache';\nimport type { Datum, IMarkSpec, IPoint, ITextMarkSpec } from '../../typings';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { WORD_CLOUD_TEXT } from '../../constant/word-cloud';\nimport { BaseSeries } from '../base/base-series';\nimport { ColorOrdinalScale } from '../../scale/color-ordinal-scale';\nimport { wordCloudSeriesMark } from './constant';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport { Factory } from '../../core/factory';\nimport type { IMark, IRectMark, ITextMark } from '../../mark/interface';\nimport { LinearScale } from '@visactor/vscale';\nimport type { GeometricMaskShape, TextShapeMask } from '@visactor/vlayouts';\nimport type { ITransformSpec } from '../../compile/interface';\nimport { vglobal, getTextBounds, createImage } from '@visactor/vrender-core';\nimport { wordCloud } from '../../theme/builtin/common/series/word-cloud';\nimport { LayoutZIndex } from '../../constant/layout';\nimport { ChartEvent } from '../../core';\n\nexport type IBaseWordCloudSeriesSpec = Omit<IWordCloudSeriesSpec, 'type'> & { type: string };\n\nexport class BaseWordCloudSeries<T extends IBaseWordCloudSeriesSpec = IBaseWordCloudSeriesSpec> extends BaseSeries<T> {\n static readonly mark: SeriesMarkMap = wordCloudSeriesMark;\n static readonly builtInTheme: Record<string, IWordCloudSeriesTheme> = { wordCloud };\n\n protected _nameField: string;\n protected _valueField?: string;\n setValueField(field: string) {\n if (isValid(field)) {\n this._valueField = field;\n }\n }\n\n protected _colorMode: 'linear' | 'ordinal';\n protected _colorList: string[];\n protected _rotateAngles?: number[];\n protected _fontWeightRange?: [number, number];\n protected _textField?: string;\n protected _maskCanvas?: HTMLCanvasElement;\n protected _maskMark?: IRectMark;\n\n protected _fontSizeRange?: [number, number] | 'auto' = [DEFAULT_MIN_FONT_SIZE, DEFAULT_MIN_FONT_SIZE];\n setFontSizeRange(fontSizeRange: [number, number] | 'auto') {\n if (isValid(fontSizeRange)) {\n this._fontSizeRange = fontSizeRange;\n } else {\n this._fontSizeRange = DEFAULT_FONTSIZE_RANGE;\n }\n }\n\n protected _maskShape?: string | WordCloudShapeType | TextShapeMask | GeometricMaskShape;\n protected _isWordCloudShape: boolean = false;\n\n protected _wordCloudConfig?: WordCloudConfigType;\n protected _wordCloudShapeConfig?: WordCloudShapeConfigType;\n\n private _wordMeasureCache?: WordMeasureCache;\n\n protected _padding?: IPadding;\n protected _defaultFontFamily: string;\n\n protected _keyWordColorCallback: (datum: Datum) => string;\n protected _fillingColorCallback: (datum: Datum) => string;\n protected _dataChange: boolean = true;\n\n protected handleMaskCanvasUpdate = (canvas: HTMLCanvasElement, imageUrl?: string) => {\n this._maskCanvas = canvas;\n };\n /**\n * @override\n */\n setAttrFromSpec() {\n super.setAttrFromSpec();\n // series布局相关\n this._padding = this._option.getChart().padding;\n\n // 普通词云 & 形状词云 共有spec相关\n this._nameField = this._spec.nameField;\n this._colorMode = this._spec.colorMode ?? 'ordinal';\n this._colorList = this._spec.colorList;\n this.setValueField(this._spec.valueField);\n this._fontWeightRange = this._spec.fontWeightRange ?? DEFAULT_FONT_WEIGHT_RANGE;\n this._rotateAngles = this._spec.rotateAngles ?? DEFAULT_ROTATE_ANGLES;\n this.setFontSizeRange(this._spec.fontSizeRange);\n this._maskShape = this._spec.maskShape ?? DEFAULT_MASK_SHAPE;\n this._textField = this._spec.word?.formatMethod ? WORD_CLOUD_TEXT : this._nameField;\n const wordCloudConfig = this._spec.wordCloudConfig;\n // 普通词云spec相关\n this._wordCloudConfig = {\n drawOutOfBound: DEFAULT_DRAW_OUT_OF_BOUND,\n layoutMode: 'default',\n zoomToFit: DEFAULT_ZOOM_TO_FIT,\n ...this._spec.wordCloudConfig\n };\n\n if ((!wordCloudConfig || isNil(wordCloudConfig.layoutMode)) && !isTrueBrowser(this._option.mode)) {\n this._wordCloudConfig.layoutMode = 'fast';\n }\n\n // 形状词云spec相关\n this._wordCloudShapeConfig = {\n fillingSeriesField: this.getSeriesField(),\n fillingRotateAngles: DEFAULT_ROTATE_ANGLES,\n layoutMode: 'default',\n ...this._spec.wordCloudShapeConfig\n };\n\n this._isWordCloudShape =\n !SHAPE_TYPE.includes(this._maskShape as string) &&\n !['fast', 'grid', 'cloud'].includes(this._wordCloudConfig.layoutMode);\n this._defaultFontFamily = this._option.getTheme('fontFamily') as string;\n\n if (!this._wordMeasureCache) {\n this._wordMeasureCache = new WordMeasureCache(1000);\n }\n }\n\n /**\n * @override\n */\n protected initData(): void {\n super.initData();\n // data改变时, 需要重新编译, 重新布局\n this.getViewData()?.target?.addListener('change', () => {\n this._wordMeasureCache?.clear();\n this._dataChange = true;\n this.compile();\n });\n }\n\n protected _wordMark: ITextMark;\n\n initMark(): void {\n this._wordMark = this._createMark(\n BaseWordCloudSeries.mark.word,\n {\n key: DEFAULT_DATA_KEY,\n groupKey: this._seriesField,\n isSeriesMark: true\n },\n {\n morphElementKey: this._seriesField\n }\n ) as ITextMark;\n if (this._spec.wordMask?.visible) {\n this._maskMark = this._createMark(BaseWordCloudSeries.mark.wordMask, { dataView: false }) as IRectMark;\n\n this._maskMark.setMarkConfig({\n zIndex: LayoutZIndex.Mark - 1\n });\n }\n }\n\n initMarkStyle() {\n this.initMarkStyleOfWord(this._wordMark, this._spec.word, this._spec.colorHexField, this._seriesField);\n\n if (this._maskMark) {\n this.setMarkStyle(\n this._maskMark,\n {\n width: () => {\n return this._region.getLayoutRect().width;\n },\n height: () => {\n return this._region.getLayoutRect().height;\n },\n background: () => {\n return this._maskCanvas;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n initMarkStyleOfWord(\n wordMark: ITextMark,\n wordSpec?: IMarkSpec<ITextMarkSpec>,\n colorHexField?: string,\n seriesField?: string,\n isFillingWord?: boolean\n ): void {\n if (!wordMark) {\n return;\n }\n this.setMarkStyle(\n wordMark,\n {\n text: (wordSpec as any)?.formatMethod\n ? (datum: Datum) => {\n return (wordSpec as any).formatMethod(datum);\n }\n : (datum: Datum) => datum[this._textField],\n x: (datum: Datum) => datum.x,\n y: (datum: Datum) => datum.y,\n fontSize: (datum: Datum) => datum.fontSize,\n fontStyle: (datum: Datum) => datum.fontStyle,\n\n angle: (datum: Datum) => datum.angle,\n visible: (datum: Datum) => datum.visible\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n wordMark,\n {\n fill: wordSpec?.style?.fill ?? this.getWordColor,\n // style和field相关的配置都已经传给vgrammar, 所以这里直接拿结果就可以\n fontWeight: (datum: Datum) => datum.fontWeight,\n fontFamily: (datum: Datum) => datum.fontFamily\n },\n 'normal',\n AttributeLevel.User_Mark\n );\n }\n\n protected initTooltip() {\n super.initTooltip();\n\n this._wordMark && this._tooltipHelper.activeTriggerSet.mark.add(this._wordMark);\n }\n\n initAnimation() {\n [this._wordMark].forEach(mark => {\n if (mark) {\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<any>)?.preset;\n const params = {\n animationConfig: () => mark.getAnimationConfig()?.appear?.[0]\n };\n mark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('wordCloud')(params, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.word, this._spec, this._markAttributeContext)\n )\n );\n }\n });\n }\n\n protected getWordOrdinalColorScale(field: string, isFillingWord: boolean) {\n const colorList = isFillingWord ? this._wordCloudShapeConfig.fillingColorList : this._colorList;\n const colorDomain = field ? this.getViewData()?.latestData.map((datum: Datum) => datum[field]) : [];\n const colorRange = colorList ?? this._option.globalScale.getScale('color')?.range() ?? this._getDataScheme();\n return new ColorOrdinalScale().domain(colorDomain).range?.(colorRange);\n }\n\n protected initColorCallback(field: string, isFillingWord: boolean) {\n if (this._colorMode === 'ordinal') {\n const scale = this.getWordOrdinalColorScale(field, isFillingWord);\n return (datum: Datum) => {\n return scale.scale(datum[field ?? DEFAULT_DATA_SERIES_FIELD]);\n };\n }\n\n const colorList =\n (isFillingWord ? this._colorList : this._wordCloudShapeConfig.fillingColorList) ??\n this._option.globalScale.getScale('color').range();\n\n if (colorList.length === 1) {\n return (datum: Datum) => colorList[0];\n }\n\n if (this._valueField) {\n const stats = this.getRawDataStatisticsByField(this._valueField, true);\n if (stats.min === stats.max) {\n return colorList[0];\n }\n const scale = new LinearScale().domain([stats.min, stats.max]).range(colorList);\n\n return (datum: Datum) => {\n return scale.scale(datum[this._valueField]);\n };\n }\n\n const scale = new LinearScale().domain([0, this.getViewData()?.latestData?.length ?? 1]).range(colorList);\n\n return (datum: Datum) => {\n return scale.scale(datum[DEFAULT_DATA_INDEX]);\n };\n }\n\n getWordColor = (datum: Datum) => {\n if (datum.isFillingWord) {\n if (!this._fillingColorCallback || this._dataChange) {\n // 如果updateData数据变更了, 颜色映射也需要重新计算\n this._fillingColorCallback = this._wordCloudShapeConfig.fillingColorHexField\n ? (datum: Datum) => datum[this._wordCloudShapeConfig.fillingColorHexField]\n : this.initColorCallback(this._wordCloudShapeConfig.fillingSeriesField, true);\n }\n\n return this._fillingColorCallback(datum);\n }\n\n if (!this._keyWordColorCallback || this._dataChange) {\n // 如果updateData数据变更了, 颜色映射也需要重新计算\n this._keyWordColorCallback = this._spec.colorHexField\n ? datum => datum[this._spec.colorHexField]\n : this.initColorCallback(this._seriesField, false);\n }\n\n return this._keyWordColorCallback(datum);\n };\n\n private _calculateFontWeight = (datum: Datum) => {\n const stats = this.getRawDataStatisticsByField(this._valueField, true);\n\n if (stats.min === stats.max) {\n return this._fontWeightRange[0];\n }\n\n return (\n this._fontWeightRange[0] +\n ((this._fontWeightRange[this._fontWeightRange.length - 1] - this._fontWeightRange[0]) *\n (datum[this._valueField] - stats.min)) /\n (stats.max - stats.min)\n );\n };\n\n compile(): void {\n super.compile();\n const { width, height } = this._region.getLayoutRect();\n // 非正常尺寸下不进行布局\n if (!isValidNumber(width) || !isValidNumber(height) || !(height > 0 && width > 0)) {\n return;\n }\n\n const wordCloudTransforms: ITransformSpec[] = [];\n\n // 词云 transform\n if (!this._isWordCloudShape) {\n wordCloudTransforms.push({\n type: 'wordcloud',\n ...this._wordCloudTransformOption()\n });\n }\n // 形状词云 transform\n else {\n wordCloudTransforms.push({\n type: 'wordcloudShape',\n // 形状词云中必须要传入dataIndexKey, 否则填充词无法绘制\n ...this._wordCloudShapeTransformOption()\n });\n }\n\n // 挂到mark的transform上\n this._wordMark.setTransform(wordCloudTransforms);\n }\n\n protected _getCommonTransformOptions(): any {\n const { width, height } = this._region.getLayoutRect();\n const wordSpec = this._spec.word ?? {};\n const wordStyleSpec = wordSpec.style ?? {};\n\n return {\n size: [width, height],\n shape:\n isObject(this._maskShape) &&\n (this._maskShape as TextShapeMask).type === 'text' &&\n isNil((this._maskShape as TextShapeMask).fontFamily)\n ? {\n fontFamily: this._option.getTheme('fontFamily'),\n ...this._maskShape\n }\n : this._maskShape,\n onUpdateMaskCanvas: this.handleMaskCanvasUpdate,\n onLayoutFinished: () => {\n const afterWordcloudShapeDraw = () => {\n // 需要等到真正渲染完成\n this._option.globalInstance.getStage().hooks.afterRender.taps = this._option.globalInstance\n .getStage()\n .hooks.afterRender.taps.filter(tap => tap.fn !== afterWordcloudShapeDraw);\n\n this._option.dispatchEvent?.(ChartEvent.afterWordcloudShapeDraw, {\n instance: this._option.globalInstance\n });\n this._option.globalInstance\n .getChart()\n .getOption()\n .performanceHook?.afterWordcloudShapeDraw?.(this._option.globalInstance);\n };\n this._option.globalInstance.getStage().hooks.afterRender.taps.push({\n type: 'sync',\n name: 'afterWordcloudShapeDraw',\n fn: afterWordcloudShapeDraw\n });\n },\n dataIndexKey: DEFAULT_DATA_KEY,\n text: wordSpec.formatMethod\n ? (datum: Datum) => {\n return wordSpec.formatMethod(datum);\n }\n : { field: this._textField },\n fontSize: this._valueField ? { field: this._valueField } : this._fontSizeRange[0],\n fontSizeRange: this._fontSizeRange === 'auto' ? null : this._fontSizeRange,\n\n padding: this._spec.word?.padding ?? DEFAULT_FONT_PADDING,\n fontFamily: isValid(this._spec.fontFamilyField)\n ? { field: this._spec.fontFamilyField }\n : wordStyleSpec.fontFamily ?? this._defaultFontFamily,\n // 为了保持和旧版逻辑一致,优先级如下: spec field > mark style > default (根据valueField映射)\n fontWeight: isValid(this._spec.fontWeightField)\n ? { field: this._spec.fontWeightField }\n : isValid(wordStyleSpec.fontWeight)\n ? wordStyleSpec.fontWeight\n : isValid(this._valueField)\n ? this._calculateFontWeight\n : 'normal',\n fontStyle: isValid(this._spec.fontStyleField) ? { field: this._spec.fontStyleField } : wordStyleSpec.fontStyle,\n createCanvas: vglobal.createCanvas.bind(vglobal),\n getTextBounds\n };\n }\n\n protected _wordCloudTransformOption(): Object {\n const wordCloudConfig = this._wordCloudConfig ?? {};\n\n return {\n ...wordCloudConfig,\n ...this._getCommonTransformOptions(),\n // TIP: 非浏览器环境下,使用 fast 布局,否则会出现兼容问题\n layoutType: this._wordCloudConfig.layoutMode,\n\n rotate: this._rotateAngles,\n\n randomVisible: this._spec.random ?? DEFAULT_RANDOM,\n clip: this._wordCloudConfig.drawOutOfBound === 'clip',\n shrink: this._wordCloudConfig.zoomToFit.shrink,\n enlarge: this._wordCloudConfig.zoomToFit.enlarge,\n minFontSize: this._wordCloudConfig.zoomToFit.fontSizeLimitMin,\n progressiveTime: this._wordCloudConfig.progressiveTime,\n progressiveStep: this._wordCloudConfig.progressiveStep,\n repeatFill: this._wordCloudConfig.zoomToFit.repeat\n };\n }\n\n protected _wordCloudShapeTransformOption(): Object {\n const fillingWordStyleSpec = this._spec.fillingWord?.style ?? {};\n const wordCloudShapeConfig = this._wordCloudShapeConfig ?? {};\n\n return {\n ...wordCloudShapeConfig,\n ...this._getCommonTransformOptions(),\n createImage,\n measureCache: this._wordMeasureCache,\n\n rotateList: this._rotateAngles,\n fillingRotateList: wordCloudShapeConfig.fillingRotateAngles,\n\n fillingFontFamily: isValid(wordCloudShapeConfig.fillingFontFamilyField)\n ? { field: wordCloudShapeConfig.fillingFontFamilyField }\n : fillingWordStyleSpec.fontFamily ?? this._defaultFontFamily,\n fillingPadding: this._spec.fillingWord?.padding ?? DEFAULT_FONT_PADDING,\n fillingFontStyle: isValid(wordCloudShapeConfig.fillingFontStyleField)\n ? { field: wordCloudShapeConfig.fillingFontStyleField }\n : fillingWordStyleSpec.fontStyle,\n // 如果配置了字段映射,优先按照映射进行展示\n fillingFontWeight: isValid(wordCloudShapeConfig.fillingFontWeightField)\n ? {\n field: wordCloudShapeConfig.fillingFontWeightField\n }\n : fillingWordStyleSpec.fontWeight // 填充词fontWeight默认不跟随valueField\n };\n }\n\n getStatisticFields() {\n const fields: { key: string; operations: Array<'max' | 'min' | 'values'> }[] = [];\n fields.push({ key: this._nameField, operations: ['values'] });\n fields.push({ key: this._valueField, operations: ['max', 'min'] });\n return fields;\n }\n dataToPosition(data: Datum): IPoint {\n return null;\n }\n dataToPositionX(data: any): number {\n return null;\n }\n dataToPositionY(data: any): number {\n return null;\n }\n dataToPositionZ(data: any): number {\n return null;\n }\n valueToPosition(value1: any, value2?: any): IPoint {\n return null;\n }\n\n getGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackValueField(): string {\n // do nothing\n return '';\n }\n\n onLayoutEnd(): void {\n super.onLayoutEnd();\n this.compile();\n this._dataChange = false;\n }\n\n getActiveMarks(): IMark[] {\n return [this._wordMark];\n }\n\n reInit() {\n super.reInit();\n if (this._keyWordColorCallback) {\n this._keyWordColorCallback = null;\n }\n\n if (this._fillingColorCallback) {\n this._fillingColorCallback = null;\n }\n\n this._wordMeasureCache?.clear();\n }\n\n release() {\n super.release();\n this._wordMeasureCache?.clear();\n this._wordMeasureCache = undefined;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/series/word-cloud/base.ts"],"names":[],"mappings":"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","file":"base.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport type { IPadding } from '@visactor/vutils';\nimport { isNil, isObject, isValidNumber } from '@visactor/vutils';\nimport { isValid } from '@visactor/vutils';\nimport { DEFAULT_DATA_INDEX, DEFAULT_DATA_KEY, DEFAULT_DATA_SERIES_FIELD } from '../../constant/data';\nimport { AttributeLevel } from '../../constant/attribute';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum } from '../interface/type';\nimport { isTrueBrowser } from '../../util/env';\nimport {\n DEFAULT_DRAW_OUT_OF_BOUND,\n DEFAULT_FONTSIZE_RANGE,\n DEFAULT_FONT_PADDING,\n DEFAULT_FONT_WEIGHT_RANGE,\n DEFAULT_MASK_SHAPE,\n DEFAULT_MIN_FONT_SIZE,\n DEFAULT_RANDOM,\n DEFAULT_ROTATE_ANGLES,\n DEFAULT_ZOOM_TO_FIT,\n SHAPE_TYPE\n} from './config';\nimport type {\n IWordCloudSeriesSpec,\n IWordCloudSeriesTheme,\n WordCloudConfigType,\n WordCloudShapeConfigType,\n WordCloudShapeType\n} from './interface';\nimport { WordMeasureCache } from './measure-cache';\nimport type { Datum, IMarkSpec, IPoint, ITextMarkSpec } from '../../typings';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { WORD_CLOUD_TEXT } from '../../constant/word-cloud';\nimport { BaseSeries } from '../base/base-series';\nimport { ColorOrdinalScale } from '../../scale/color-ordinal-scale';\nimport { wordCloudSeriesMark } from './constant';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport { Factory } from '../../core/factory';\nimport type { IMark, IRectMark, ITextMark } from '../../mark/interface';\nimport { LinearScale } from '@visactor/vscale';\nimport type { GeometricMaskShape, TextShapeMask } from '@visactor/vlayouts';\nimport type { ITransformSpec } from '../../compile/interface';\nimport { createImage, vglobal } from '../../vrender-bridge';\nimport { getTextBounds } from '@visactor/vrender-core/text';\nimport { wordCloud } from '../../theme/builtin/common/series/word-cloud';\nimport { LayoutZIndex } from '../../constant/layout';\nimport { ChartEvent } from '../../core';\n\nexport type IBaseWordCloudSeriesSpec = Omit<IWordCloudSeriesSpec, 'type'> & { type: string };\n\nexport class BaseWordCloudSeries<T extends IBaseWordCloudSeriesSpec = IBaseWordCloudSeriesSpec> extends BaseSeries<T> {\n static readonly mark: SeriesMarkMap = wordCloudSeriesMark;\n static readonly builtInTheme: Record<string, IWordCloudSeriesTheme> = { wordCloud };\n\n protected _nameField: string;\n protected _valueField?: string;\n setValueField(field: string) {\n if (isValid(field)) {\n this._valueField = field;\n }\n }\n\n protected _colorMode: 'linear' | 'ordinal';\n protected _colorList: string[];\n protected _rotateAngles?: number[];\n protected _fontWeightRange?: [number, number];\n protected _textField?: string;\n protected _maskCanvas?: HTMLCanvasElement;\n protected _maskMark?: IRectMark;\n\n protected _fontSizeRange?: [number, number] | 'auto' = [DEFAULT_MIN_FONT_SIZE, DEFAULT_MIN_FONT_SIZE];\n setFontSizeRange(fontSizeRange: [number, number] | 'auto') {\n if (isValid(fontSizeRange)) {\n this._fontSizeRange = fontSizeRange;\n } else {\n this._fontSizeRange = DEFAULT_FONTSIZE_RANGE;\n }\n }\n\n protected _maskShape?: string | WordCloudShapeType | TextShapeMask | GeometricMaskShape;\n protected _isWordCloudShape: boolean = false;\n\n protected _wordCloudConfig?: WordCloudConfigType;\n protected _wordCloudShapeConfig?: WordCloudShapeConfigType;\n\n private _wordMeasureCache?: WordMeasureCache;\n\n protected _padding?: IPadding;\n protected _defaultFontFamily: string;\n\n protected _keyWordColorCallback: (datum: Datum) => string;\n protected _fillingColorCallback: (datum: Datum) => string;\n protected _dataChange: boolean = true;\n\n protected handleMaskCanvasUpdate = (canvas: HTMLCanvasElement, imageUrl?: string) => {\n this._maskCanvas = canvas;\n };\n /**\n * @override\n */\n setAttrFromSpec() {\n super.setAttrFromSpec();\n // series布局相关\n this._padding = this._option.getChart().padding;\n\n // 普通词云 & 形状词云 共有spec相关\n this._nameField = this._spec.nameField;\n this._colorMode = this._spec.colorMode ?? 'ordinal';\n this._colorList = this._spec.colorList;\n this.setValueField(this._spec.valueField);\n this._fontWeightRange = this._spec.fontWeightRange ?? DEFAULT_FONT_WEIGHT_RANGE;\n this._rotateAngles = this._spec.rotateAngles ?? DEFAULT_ROTATE_ANGLES;\n this.setFontSizeRange(this._spec.fontSizeRange);\n this._maskShape = this._spec.maskShape ?? DEFAULT_MASK_SHAPE;\n this._textField = this._spec.word?.formatMethod ? WORD_CLOUD_TEXT : this._nameField;\n const wordCloudConfig = this._spec.wordCloudConfig;\n // 普通词云spec相关\n this._wordCloudConfig = {\n drawOutOfBound: DEFAULT_DRAW_OUT_OF_BOUND,\n layoutMode: 'default',\n zoomToFit: DEFAULT_ZOOM_TO_FIT,\n ...this._spec.wordCloudConfig\n };\n\n if ((!wordCloudConfig || isNil(wordCloudConfig.layoutMode)) && !isTrueBrowser(this._option.mode)) {\n this._wordCloudConfig.layoutMode = 'fast';\n }\n\n // 形状词云spec相关\n this._wordCloudShapeConfig = {\n fillingSeriesField: this.getSeriesField(),\n fillingRotateAngles: DEFAULT_ROTATE_ANGLES,\n layoutMode: 'default',\n ...this._spec.wordCloudShapeConfig\n };\n\n this._isWordCloudShape =\n !SHAPE_TYPE.includes(this._maskShape as string) &&\n !['fast', 'grid', 'cloud'].includes(this._wordCloudConfig.layoutMode);\n this._defaultFontFamily = this._option.getTheme('fontFamily') as string;\n\n if (!this._wordMeasureCache) {\n this._wordMeasureCache = new WordMeasureCache(1000);\n }\n }\n\n /**\n * @override\n */\n protected initData(): void {\n super.initData();\n // data改变时, 需要重新编译, 重新布局\n this.getViewData()?.target?.addListener('change', () => {\n this._wordMeasureCache?.clear();\n this._dataChange = true;\n this.compile();\n });\n }\n\n protected _wordMark: ITextMark;\n\n initMark(): void {\n this._wordMark = this._createMark(\n BaseWordCloudSeries.mark.word,\n {\n key: DEFAULT_DATA_KEY,\n groupKey: this._seriesField,\n isSeriesMark: true\n },\n {\n morphElementKey: this._seriesField\n }\n ) as ITextMark;\n if (this._spec.wordMask?.visible) {\n this._maskMark = this._createMark(BaseWordCloudSeries.mark.wordMask, { dataView: false }) as IRectMark;\n\n this._maskMark.setMarkConfig({\n zIndex: LayoutZIndex.Mark - 1\n });\n }\n }\n\n initMarkStyle() {\n this.initMarkStyleOfWord(this._wordMark, this._spec.word, this._spec.colorHexField, this._seriesField);\n\n if (this._maskMark) {\n this.setMarkStyle(\n this._maskMark,\n {\n width: () => {\n return this._region.getLayoutRect().width;\n },\n height: () => {\n return this._region.getLayoutRect().height;\n },\n background: () => {\n return this._maskCanvas;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n initMarkStyleOfWord(\n wordMark: ITextMark,\n wordSpec?: IMarkSpec<ITextMarkSpec>,\n colorHexField?: string,\n seriesField?: string,\n isFillingWord?: boolean\n ): void {\n if (!wordMark) {\n return;\n }\n this.setMarkStyle(\n wordMark,\n {\n text: (wordSpec as any)?.formatMethod\n ? (datum: Datum) => {\n return (wordSpec as any).formatMethod(datum);\n }\n : (datum: Datum) => datum[this._textField],\n x: (datum: Datum) => datum.x,\n y: (datum: Datum) => datum.y,\n fontSize: (datum: Datum) => datum.fontSize,\n fontStyle: (datum: Datum) => datum.fontStyle,\n\n angle: (datum: Datum) => datum.angle,\n visible: (datum: Datum) => datum.visible\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n wordMark,\n {\n fill: wordSpec?.style?.fill ?? this.getWordColor,\n // style和field相关的配置都已经传给vgrammar, 所以这里直接拿结果就可以\n fontWeight: (datum: Datum) => datum.fontWeight,\n fontFamily: (datum: Datum) => datum.fontFamily\n },\n 'normal',\n AttributeLevel.User_Mark\n );\n }\n\n protected initTooltip() {\n super.initTooltip();\n\n this._wordMark && this._tooltipHelper.activeTriggerSet.mark.add(this._wordMark);\n }\n\n initAnimation() {\n [this._wordMark].forEach(mark => {\n if (mark) {\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<any>)?.preset;\n const params = {\n animationConfig: () => mark.getAnimationConfig()?.appear?.[0]\n };\n mark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('wordCloud')(params, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.word, this._spec, this._markAttributeContext)\n )\n );\n }\n });\n }\n\n protected getWordOrdinalColorScale(field: string, isFillingWord: boolean) {\n const colorList = isFillingWord ? this._wordCloudShapeConfig.fillingColorList : this._colorList;\n const colorDomain = field ? this.getViewData()?.latestData.map((datum: Datum) => datum[field]) : [];\n const colorRange = colorList ?? this._option.globalScale.getScale('color')?.range() ?? this._getDataScheme();\n return new ColorOrdinalScale().domain(colorDomain).range?.(colorRange);\n }\n\n protected initColorCallback(field: string, isFillingWord: boolean) {\n if (this._colorMode === 'ordinal') {\n const scale = this.getWordOrdinalColorScale(field, isFillingWord);\n return (datum: Datum) => {\n return scale.scale(datum[field ?? DEFAULT_DATA_SERIES_FIELD]);\n };\n }\n\n const colorList =\n (isFillingWord ? this._colorList : this._wordCloudShapeConfig.fillingColorList) ??\n this._option.globalScale.getScale('color').range();\n\n if (colorList.length === 1) {\n return (datum: Datum) => colorList[0];\n }\n\n if (this._valueField) {\n const stats = this.getRawDataStatisticsByField(this._valueField, true);\n if (stats.min === stats.max) {\n return colorList[0];\n }\n const scale = new LinearScale().domain([stats.min, stats.max]).range(colorList);\n\n return (datum: Datum) => {\n return scale.scale(datum[this._valueField]);\n };\n }\n\n const scale = new LinearScale().domain([0, this.getViewData()?.latestData?.length ?? 1]).range(colorList);\n\n return (datum: Datum) => {\n return scale.scale(datum[DEFAULT_DATA_INDEX]);\n };\n }\n\n getWordColor = (datum: Datum) => {\n if (datum.isFillingWord) {\n if (!this._fillingColorCallback || this._dataChange) {\n // 如果updateData数据变更了, 颜色映射也需要重新计算\n this._fillingColorCallback = this._wordCloudShapeConfig.fillingColorHexField\n ? (datum: Datum) => datum[this._wordCloudShapeConfig.fillingColorHexField]\n : this.initColorCallback(this._wordCloudShapeConfig.fillingSeriesField, true);\n }\n\n return this._fillingColorCallback(datum);\n }\n\n if (!this._keyWordColorCallback || this._dataChange) {\n // 如果updateData数据变更了, 颜色映射也需要重新计算\n this._keyWordColorCallback = this._spec.colorHexField\n ? datum => datum[this._spec.colorHexField]\n : this.initColorCallback(this._seriesField, false);\n }\n\n return this._keyWordColorCallback(datum);\n };\n\n private _calculateFontWeight = (datum: Datum) => {\n const stats = this.getRawDataStatisticsByField(this._valueField, true);\n\n if (stats.min === stats.max) {\n return this._fontWeightRange[0];\n }\n\n return (\n this._fontWeightRange[0] +\n ((this._fontWeightRange[this._fontWeightRange.length - 1] - this._fontWeightRange[0]) *\n (datum[this._valueField] - stats.min)) /\n (stats.max - stats.min)\n );\n };\n\n compile(): void {\n super.compile();\n const { width, height } = this._region.getLayoutRect();\n // 非正常尺寸下不进行布局\n if (!isValidNumber(width) || !isValidNumber(height) || !(height > 0 && width > 0)) {\n return;\n }\n\n const wordCloudTransforms: ITransformSpec[] = [];\n\n // 词云 transform\n if (!this._isWordCloudShape) {\n wordCloudTransforms.push({\n type: 'wordcloud',\n ...this._wordCloudTransformOption()\n });\n }\n // 形状词云 transform\n else {\n wordCloudTransforms.push({\n type: 'wordcloudShape',\n // 形状词云中必须要传入dataIndexKey, 否则填充词无法绘制\n ...this._wordCloudShapeTransformOption()\n });\n }\n\n // 挂到mark的transform上\n this._wordMark.setTransform(wordCloudTransforms);\n }\n\n protected _getCommonTransformOptions(): any {\n const { width, height } = this._region.getLayoutRect();\n const wordSpec = this._spec.word ?? {};\n const wordStyleSpec = wordSpec.style ?? {};\n\n return {\n size: [width, height],\n shape:\n isObject(this._maskShape) &&\n (this._maskShape as TextShapeMask).type === 'text' &&\n isNil((this._maskShape as TextShapeMask).fontFamily)\n ? {\n fontFamily: this._option.getTheme('fontFamily'),\n ...this._maskShape\n }\n : this._maskShape,\n onUpdateMaskCanvas: this.handleMaskCanvasUpdate,\n onLayoutFinished: () => {\n const afterWordcloudShapeDraw = () => {\n // 需要等到真正渲染完成\n this._option.globalInstance.getStage().hooks.afterRender.taps = this._option.globalInstance\n .getStage()\n .hooks.afterRender.taps.filter(tap => tap.fn !== afterWordcloudShapeDraw);\n\n this._option.dispatchEvent?.(ChartEvent.afterWordcloudShapeDraw, {\n instance: this._option.globalInstance\n });\n this._option.globalInstance\n .getChart()\n .getOption()\n .performanceHook?.afterWordcloudShapeDraw?.(this._option.globalInstance);\n };\n this._option.globalInstance.getStage().hooks.afterRender.taps.push({\n type: 'sync',\n name: 'afterWordcloudShapeDraw',\n fn: afterWordcloudShapeDraw\n });\n },\n dataIndexKey: DEFAULT_DATA_KEY,\n text: wordSpec.formatMethod\n ? (datum: Datum) => {\n return wordSpec.formatMethod(datum);\n }\n : { field: this._textField },\n fontSize: this._valueField ? { field: this._valueField } : this._fontSizeRange[0],\n fontSizeRange: this._fontSizeRange === 'auto' ? null : this._fontSizeRange,\n\n padding: this._spec.word?.padding ?? DEFAULT_FONT_PADDING,\n fontFamily: isValid(this._spec.fontFamilyField)\n ? { field: this._spec.fontFamilyField }\n : wordStyleSpec.fontFamily ?? this._defaultFontFamily,\n // 为了保持和旧版逻辑一致,优先级如下: spec field > mark style > default (根据valueField映射)\n fontWeight: isValid(this._spec.fontWeightField)\n ? { field: this._spec.fontWeightField }\n : isValid(wordStyleSpec.fontWeight)\n ? wordStyleSpec.fontWeight\n : isValid(this._valueField)\n ? this._calculateFontWeight\n : 'normal',\n fontStyle: isValid(this._spec.fontStyleField) ? { field: this._spec.fontStyleField } : wordStyleSpec.fontStyle,\n createCanvas: vglobal.createCanvas.bind(vglobal),\n getTextBounds\n };\n }\n\n protected _wordCloudTransformOption(): Object {\n const wordCloudConfig = this._wordCloudConfig ?? {};\n\n return {\n ...wordCloudConfig,\n ...this._getCommonTransformOptions(),\n // TIP: 非浏览器环境下,使用 fast 布局,否则会出现兼容问题\n layoutType: this._wordCloudConfig.layoutMode,\n\n rotate: this._rotateAngles,\n\n randomVisible: this._spec.random ?? DEFAULT_RANDOM,\n clip: this._wordCloudConfig.drawOutOfBound === 'clip',\n shrink: this._wordCloudConfig.zoomToFit.shrink,\n enlarge: this._wordCloudConfig.zoomToFit.enlarge,\n minFontSize: this._wordCloudConfig.zoomToFit.fontSizeLimitMin,\n progressiveTime: this._wordCloudConfig.progressiveTime,\n progressiveStep: this._wordCloudConfig.progressiveStep,\n repeatFill: this._wordCloudConfig.zoomToFit.repeat\n };\n }\n\n protected _wordCloudShapeTransformOption(): Object {\n const fillingWordStyleSpec = this._spec.fillingWord?.style ?? {};\n const wordCloudShapeConfig = this._wordCloudShapeConfig ?? {};\n\n return {\n ...wordCloudShapeConfig,\n ...this._getCommonTransformOptions(),\n createImage,\n measureCache: this._wordMeasureCache,\n\n rotateList: this._rotateAngles,\n fillingRotateList: wordCloudShapeConfig.fillingRotateAngles,\n\n fillingFontFamily: isValid(wordCloudShapeConfig.fillingFontFamilyField)\n ? { field: wordCloudShapeConfig.fillingFontFamilyField }\n : fillingWordStyleSpec.fontFamily ?? this._defaultFontFamily,\n fillingPadding: this._spec.fillingWord?.padding ?? DEFAULT_FONT_PADDING,\n fillingFontStyle: isValid(wordCloudShapeConfig.fillingFontStyleField)\n ? { field: wordCloudShapeConfig.fillingFontStyleField }\n : fillingWordStyleSpec.fontStyle,\n // 如果配置了字段映射,优先按照映射进行展示\n fillingFontWeight: isValid(wordCloudShapeConfig.fillingFontWeightField)\n ? {\n field: wordCloudShapeConfig.fillingFontWeightField\n }\n : fillingWordStyleSpec.fontWeight // 填充词fontWeight默认不跟随valueField\n };\n }\n\n getStatisticFields() {\n const fields: { key: string; operations: Array<'max' | 'min' | 'values'> }[] = [];\n fields.push({ key: this._nameField, operations: ['values'] });\n fields.push({ key: this._valueField, operations: ['max', 'min'] });\n return fields;\n }\n dataToPosition(data: Datum): IPoint {\n return null;\n }\n dataToPositionX(data: any): number {\n return null;\n }\n dataToPositionY(data: any): number {\n return null;\n }\n dataToPositionZ(data: any): number {\n return null;\n }\n valueToPosition(value1: any, value2?: any): IPoint {\n return null;\n }\n\n getGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackValueField(): string {\n // do nothing\n return '';\n }\n\n onLayoutEnd(): void {\n super.onLayoutEnd();\n this.compile();\n this._dataChange = false;\n }\n\n getActiveMarks(): IMark[] {\n return [this._wordMark];\n }\n\n reInit() {\n super.reInit();\n if (this._keyWordColorCallback) {\n this._keyWordColorCallback = null;\n }\n\n if (this._fillingColorCallback) {\n this._fillingColorCallback = null;\n }\n\n this._wordMeasureCache?.clear();\n }\n\n release() {\n super.release();\n this._wordMeasureCache?.clear();\n this._wordMeasureCache = undefined;\n }\n}\n"]}
package/esm/util/env.js CHANGED
@@ -1,4 +1,4 @@
1
- import { isBrowserEnv } from "@visactor/vrender-core";
1
+ import { isBrowserEnv } from "@visactor/vrender-core/env";
2
2
 
3
3
  export const isBrowser = isBrowserEnv();
4
4
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;AACxC,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAGrF,MAAM,UAAU,aAAa,CAAC,IAAgB;IAC5C,OAAO,CAAC,IAAI,KAAK,iBAAiB,IAAI,IAAI,KAAK,gBAAgB,CAAC,IAAI,SAAS,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,OAAO,IAAI,KAAK,iBAAiB,IAAI,IAAI,KAAK,iBAAiB,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAgB;IAC/C,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,gBAAgB,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAgB;IAChD,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC;AAC5F,CAAC","file":"env.js","sourcesContent":["import { isBrowserEnv } from '@visactor/vrender-core';\nimport type { RenderMode } from '../typings/spec';\n\nexport const isBrowser = isBrowserEnv();\nexport const domDocument = isBrowser && globalThis ? globalThis.document : undefined;\n\n// Taro 会模拟实现 DOM,所以还是加上 mode 的判断\nexport function isTrueBrowser(mode: RenderMode): boolean {\n return (mode === 'desktop-browser' || mode === 'mobile-browser') && isBrowser;\n}\n\nexport function isPcLikeMode(mode: RenderMode) {\n return mode === 'desktop-miniApp' || mode === 'desktop-browser';\n}\n\nexport function isMobileLikeMode(mode: RenderMode) {\n return isMiniAppLikeMode(mode) || mode === 'mobile-browser';\n}\n\nexport function isMiniAppLikeMode(mode: RenderMode) {\n return mode.includes('miniApp') || mode === 'lynx' || mode === 'wx' || mode === 'harmony';\n}\n"]}
1
+ {"version":3,"sources":["../src/util/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;AACxC,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAGrF,MAAM,UAAU,aAAa,CAAC,IAAgB;IAC5C,OAAO,CAAC,IAAI,KAAK,iBAAiB,IAAI,IAAI,KAAK,gBAAgB,CAAC,IAAI,SAAS,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,OAAO,IAAI,KAAK,iBAAiB,IAAI,IAAI,KAAK,iBAAiB,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAgB;IAC/C,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,gBAAgB,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAgB;IAChD,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC;AAC5F,CAAC","file":"env.js","sourcesContent":["import { isBrowserEnv } from '@visactor/vrender-core/env';\nimport type { RenderMode } from '../typings/spec';\n\nexport const isBrowser = isBrowserEnv();\nexport const domDocument = isBrowser && globalThis ? globalThis.document : undefined;\n\n// Taro 会模拟实现 DOM,所以还是加上 mode 的判断\nexport function isTrueBrowser(mode: RenderMode): boolean {\n return (mode === 'desktop-browser' || mode === 'mobile-browser') && isBrowser;\n}\n\nexport function isPcLikeMode(mode: RenderMode) {\n return mode === 'desktop-miniApp' || mode === 'desktop-browser';\n}\n\nexport function isMobileLikeMode(mode: RenderMode) {\n return isMiniAppLikeMode(mode) || mode === 'mobile-browser';\n}\n\nexport function isMiniAppLikeMode(mode: RenderMode) {\n return mode.includes('miniApp') || mode === 'lynx' || mode === 'wx' || mode === 'harmony';\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import { createArc, createArea, createGlyph, createGraphic, createGroup, createImage, createLine, createPath, createPolygon, createRect, createRichText, createSymbol, createText, graphicCreator } from '@visactor/vrender-core/graphic/creator';
2
+ import { vglobal } from '@visactor/vrender-core/global';
3
+ import { CustomPath2D } from '@visactor/vrender-core/path';
4
+ import { registerHtmlAttributePlugin, registerReactAttributePlugin } from '@visactor/vrender-core/plugin/attribute';
5
+ import { registerAnimate as registerVRenderAnimate } from '@visactor/vrender-animate/register';
6
+ import type { IArc3d, IArc3dGraphicAttribute, IPyramid3d, IPyramid3dGraphicAttribute, IRect3d, IRect3dGraphicAttribute, IStage } from '@visactor/vrender-core';
7
+ export { createArc, createArea, createGlyph, createGraphic, createGroup, createImage, createLine, createPath, createPolygon, createRect, createRichText, createSymbol, createText, graphicCreator, CustomPath2D, registerHtmlAttributePlugin, registerReactAttributePlugin, registerVRenderAnimate, vglobal };
8
+ export declare const createArc3d: (attributes: IArc3dGraphicAttribute) => IArc3d;
9
+ export declare const createPyramid3d: (attributes: IPyramid3dGraphicAttribute) => IPyramid3d;
10
+ export declare const createRect3d: (attributes: IRect3dGraphicAttribute) => IRect3d;
11
+ export declare const waitForAllSubLayers: (stage: IStage) => Promise<null[]>;