@visactor/vchart 1.2.0-beta.4 → 1.2.0-beta.6

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 (255) hide show
  1. package/build/index.js +513 -234
  2. package/build/index.min.js +1 -1
  3. package/cjs/chart/bar/bar-3d.d.ts +1 -0
  4. package/cjs/chart/bar/bar-3d.js +8 -0
  5. package/cjs/chart/bar/bar-3d.js.map +1 -1
  6. package/cjs/chart/bar/bar.js +2 -1
  7. package/cjs/chart/bar/bar.js.map +1 -1
  8. package/cjs/chart/base-chart.js +5 -4
  9. package/cjs/chart/base-chart.js.map +1 -1
  10. package/cjs/chart/range-column/range-column-3d.js +3 -1
  11. package/cjs/chart/range-column/range-column-3d.js.map +1 -1
  12. package/cjs/chart/range-column/range-column.js +3 -1
  13. package/cjs/chart/range-column/range-column.js.map +1 -1
  14. package/cjs/component/axis/cartesian/axis.js +4 -3
  15. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  16. package/cjs/component/axis/cartesian/band-axis.d.ts +1 -0
  17. package/cjs/component/axis/cartesian/band-axis.js +2 -1
  18. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  19. package/cjs/component/axis/cartesian/interface/common.d.ts +1 -0
  20. package/cjs/component/axis/cartesian/interface/common.js.map +1 -1
  21. package/cjs/component/axis/interface.js.map +1 -1
  22. package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
  23. package/cjs/component/geo/geo-coordinate.js +4 -2
  24. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  25. package/cjs/component/label/bar.js +13 -5
  26. package/cjs/component/label/bar.js.map +1 -1
  27. package/cjs/component/legend/interface.d.ts +2 -2
  28. package/cjs/component/legend/interface.js.map +1 -1
  29. package/cjs/component/marker/base-marker.d.ts +3 -3
  30. package/cjs/component/marker/base-marker.js +4 -2
  31. package/cjs/component/marker/base-marker.js.map +1 -1
  32. package/cjs/component/marker/interface.d.ts +3 -2
  33. package/cjs/component/marker/interface.js.map +1 -1
  34. package/cjs/component/marker/mark-area/interface/spec.d.ts +9 -9
  35. package/cjs/component/marker/mark-area/interface/spec.js.map +1 -1
  36. package/cjs/component/marker/mark-area/mark-area.js +7 -3
  37. package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
  38. package/cjs/component/marker/mark-line/interface/spec.d.ts +5 -5
  39. package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
  40. package/cjs/component/marker/mark-line/mark-line.js +7 -3
  41. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  42. package/cjs/component/marker/mark-point/mark-point.js +9 -3
  43. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  44. package/cjs/component/title/interface/theme.d.ts +1 -1
  45. package/cjs/component/title/interface/theme.js.map +1 -1
  46. package/cjs/component/tooltip/handler/base.js +9 -9
  47. package/cjs/component/tooltip/handler/base.js.map +1 -1
  48. package/cjs/component/tooltip/handler/dom/interface.d.ts +1 -0
  49. package/cjs/component/tooltip/handler/dom/interface.js.map +1 -1
  50. package/cjs/component/tooltip/handler/dom/util.js +1 -1
  51. package/cjs/component/tooltip/handler/dom/util.js.map +1 -1
  52. package/cjs/component/tooltip/interface/spec.d.ts +1 -0
  53. package/cjs/component/tooltip/interface/spec.js.map +1 -1
  54. package/cjs/component/tooltip/processor/base.d.ts +3 -0
  55. package/cjs/component/tooltip/processor/base.js +40 -1
  56. package/cjs/component/tooltip/processor/base.js.map +1 -1
  57. package/cjs/component/tooltip/processor/dimension-tooltip.d.ts +0 -1
  58. package/cjs/component/tooltip/processor/dimension-tooltip.js +8 -43
  59. package/cjs/component/tooltip/processor/dimension-tooltip.js.map +1 -1
  60. package/cjs/component/tooltip/processor/interface.d.ts +1 -0
  61. package/cjs/component/tooltip/processor/interface.js.map +1 -1
  62. package/cjs/component/tooltip/processor/mark-tooltip.js +4 -2
  63. package/cjs/component/tooltip/processor/mark-tooltip.js.map +1 -1
  64. package/cjs/component/tooltip/tooltip.js +5 -1
  65. package/cjs/component/tooltip/tooltip.js.map +1 -1
  66. package/cjs/constant/event.d.ts +2 -1
  67. package/cjs/constant/event.js +1 -1
  68. package/cjs/constant/event.js.map +1 -1
  69. package/cjs/core/index.d.ts +1 -1
  70. package/cjs/core/index.js +1 -1
  71. package/cjs/core/index.js.map +1 -1
  72. package/cjs/core/interface.d.ts +2 -2
  73. package/cjs/core/interface.js.map +1 -1
  74. package/cjs/core/vchart.d.ts +2 -2
  75. package/cjs/data/transforms/lookup.d.ts +2 -0
  76. package/cjs/data/transforms/lookup.js +4 -1
  77. package/cjs/data/transforms/lookup.js.map +1 -1
  78. package/cjs/data/transforms/map.d.ts +1 -0
  79. package/cjs/data/transforms/map.js +7 -3
  80. package/cjs/data/transforms/map.js.map +1 -1
  81. package/cjs/data/transforms/tick-data/continuous.js +2 -0
  82. package/cjs/data/transforms/tick-data/continuous.js.map +1 -1
  83. package/cjs/data/transforms/tick-data/discrete/linear.js +26 -2
  84. package/cjs/data/transforms/tick-data/discrete/linear.js.map +1 -1
  85. package/cjs/event/events/dimension/util/common.js +14 -3
  86. package/cjs/event/events/dimension/util/common.js.map +1 -1
  87. package/cjs/event/interface.d.ts +1 -0
  88. package/cjs/event/interface.js.map +1 -1
  89. package/cjs/plugin/components/axis-label-overlap-plugin.js +20 -2
  90. package/cjs/plugin/components/axis-label-overlap-plugin.js.map +1 -1
  91. package/cjs/series/bar/bar.d.ts +3 -2
  92. package/cjs/series/bar/bar.js +29 -16
  93. package/cjs/series/bar/bar.js.map +1 -1
  94. package/cjs/series/bar/interface.d.ts +5 -3
  95. package/cjs/series/bar/interface.js.map +1 -1
  96. package/cjs/series/base/base-series.d.ts +1 -0
  97. package/cjs/series/base/base-series.js +28 -18
  98. package/cjs/series/base/base-series.js.map +1 -1
  99. package/cjs/series/circle-packing/circle-packing.d.ts +2 -0
  100. package/cjs/series/circle-packing/circle-packing.js +1 -0
  101. package/cjs/series/circle-packing/circle-packing.js.map +1 -1
  102. package/cjs/series/geo/geo.js +2 -2
  103. package/cjs/series/geo/geo.js.map +1 -1
  104. package/cjs/series/map/map.js +8 -5
  105. package/cjs/series/map/map.js.map +1 -1
  106. package/cjs/series/pie/pie.d.ts +3 -0
  107. package/cjs/series/pie/pie.js +28 -23
  108. package/cjs/series/pie/pie.js.map +1 -1
  109. package/cjs/series/radar/radar.js +2 -2
  110. package/cjs/series/radar/radar.js.map +1 -1
  111. package/cjs/series/range-column/range-column.js +15 -29
  112. package/cjs/series/range-column/range-column.js.map +1 -1
  113. package/cjs/series/sankey/sankey.d.ts +2 -0
  114. package/cjs/series/sankey/sankey.js +1 -0
  115. package/cjs/series/sankey/sankey.js.map +1 -1
  116. package/cjs/series/sunburst/sunburst.d.ts +2 -0
  117. package/cjs/series/sunburst/sunburst.js +1 -0
  118. package/cjs/series/sunburst/sunburst.js.map +1 -1
  119. package/cjs/theme/buildin-theme/light/component/title.js +2 -2
  120. package/cjs/theme/buildin-theme/light/component/title.js.map +1 -1
  121. package/cjs/theme/buildin-theme/light/index.js +2 -1
  122. package/cjs/theme/buildin-theme/light/index.js.map +1 -1
  123. package/cjs/theme/interface.d.ts +1 -0
  124. package/cjs/theme/interface.js.map +1 -1
  125. package/cjs/typings/spec/common.d.ts +2 -0
  126. package/cjs/typings/spec/common.js.map +1 -1
  127. package/cjs/typings/tooltip/handler.d.ts +0 -1
  128. package/cjs/typings/tooltip/handler.js.map +1 -1
  129. package/esm/chart/bar/bar-3d.d.ts +1 -0
  130. package/esm/chart/bar/bar-3d.js +8 -0
  131. package/esm/chart/bar/bar-3d.js.map +1 -1
  132. package/esm/chart/bar/bar.js +2 -1
  133. package/esm/chart/bar/bar.js.map +1 -1
  134. package/esm/chart/base-chart.js +5 -4
  135. package/esm/chart/base-chart.js.map +1 -1
  136. package/esm/chart/range-column/range-column-3d.js +3 -1
  137. package/esm/chart/range-column/range-column-3d.js.map +1 -1
  138. package/esm/chart/range-column/range-column.js +3 -1
  139. package/esm/chart/range-column/range-column.js.map +1 -1
  140. package/esm/component/axis/cartesian/axis.js +4 -3
  141. package/esm/component/axis/cartesian/axis.js.map +1 -1
  142. package/esm/component/axis/cartesian/band-axis.d.ts +1 -0
  143. package/esm/component/axis/cartesian/band-axis.js +2 -1
  144. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  145. package/esm/component/axis/cartesian/interface/common.d.ts +1 -0
  146. package/esm/component/axis/cartesian/interface/common.js.map +1 -1
  147. package/esm/component/axis/interface.js.map +1 -1
  148. package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
  149. package/esm/component/geo/geo-coordinate.js +4 -2
  150. package/esm/component/geo/geo-coordinate.js.map +1 -1
  151. package/esm/component/label/bar.js +13 -5
  152. package/esm/component/label/bar.js.map +1 -1
  153. package/esm/component/legend/interface.d.ts +2 -2
  154. package/esm/component/legend/interface.js.map +1 -1
  155. package/esm/component/marker/base-marker.d.ts +3 -3
  156. package/esm/component/marker/base-marker.js +5 -3
  157. package/esm/component/marker/base-marker.js.map +1 -1
  158. package/esm/component/marker/interface.d.ts +3 -2
  159. package/esm/component/marker/interface.js.map +1 -1
  160. package/esm/component/marker/mark-area/interface/spec.d.ts +9 -9
  161. package/esm/component/marker/mark-area/interface/spec.js.map +1 -1
  162. package/esm/component/marker/mark-area/mark-area.js +7 -3
  163. package/esm/component/marker/mark-area/mark-area.js.map +1 -1
  164. package/esm/component/marker/mark-line/interface/spec.d.ts +5 -5
  165. package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
  166. package/esm/component/marker/mark-line/mark-line.js +7 -3
  167. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  168. package/esm/component/marker/mark-point/mark-point.js +9 -3
  169. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  170. package/esm/component/title/interface/theme.d.ts +1 -1
  171. package/esm/component/title/interface/theme.js.map +1 -1
  172. package/esm/component/tooltip/handler/base.js +8 -8
  173. package/esm/component/tooltip/handler/base.js.map +1 -1
  174. package/esm/component/tooltip/handler/dom/interface.d.ts +1 -0
  175. package/esm/component/tooltip/handler/dom/interface.js.map +1 -1
  176. package/esm/component/tooltip/handler/dom/util.js +1 -1
  177. package/esm/component/tooltip/handler/dom/util.js.map +1 -1
  178. package/esm/component/tooltip/interface/spec.d.ts +1 -0
  179. package/esm/component/tooltip/interface/spec.js.map +1 -1
  180. package/esm/component/tooltip/processor/base.d.ts +3 -0
  181. package/esm/component/tooltip/processor/base.js +43 -0
  182. package/esm/component/tooltip/processor/base.js.map +1 -1
  183. package/esm/component/tooltip/processor/dimension-tooltip.d.ts +0 -1
  184. package/esm/component/tooltip/processor/dimension-tooltip.js +8 -47
  185. package/esm/component/tooltip/processor/dimension-tooltip.js.map +1 -1
  186. package/esm/component/tooltip/processor/interface.d.ts +1 -0
  187. package/esm/component/tooltip/processor/interface.js.map +1 -1
  188. package/esm/component/tooltip/processor/mark-tooltip.js +4 -2
  189. package/esm/component/tooltip/processor/mark-tooltip.js.map +1 -1
  190. package/esm/component/tooltip/tooltip.js +5 -1
  191. package/esm/component/tooltip/tooltip.js.map +1 -1
  192. package/esm/constant/event.d.ts +2 -1
  193. package/esm/constant/event.js +1 -1
  194. package/esm/constant/event.js.map +1 -1
  195. package/esm/core/index.d.ts +1 -1
  196. package/esm/core/index.js +1 -1
  197. package/esm/core/index.js.map +1 -1
  198. package/esm/core/interface.d.ts +2 -2
  199. package/esm/core/interface.js.map +1 -1
  200. package/esm/core/vchart.d.ts +2 -2
  201. package/esm/data/transforms/lookup.d.ts +2 -0
  202. package/esm/data/transforms/lookup.js +5 -2
  203. package/esm/data/transforms/lookup.js.map +1 -1
  204. package/esm/data/transforms/map.d.ts +1 -0
  205. package/esm/data/transforms/map.js +4 -2
  206. package/esm/data/transforms/map.js.map +1 -1
  207. package/esm/data/transforms/tick-data/continuous.js +2 -0
  208. package/esm/data/transforms/tick-data/continuous.js.map +1 -1
  209. package/esm/data/transforms/tick-data/discrete/linear.js +24 -2
  210. package/esm/data/transforms/tick-data/discrete/linear.js.map +1 -1
  211. package/esm/event/events/dimension/util/common.js +14 -3
  212. package/esm/event/events/dimension/util/common.js.map +1 -1
  213. package/esm/event/interface.d.ts +1 -0
  214. package/esm/event/interface.js.map +1 -1
  215. package/esm/plugin/components/axis-label-overlap-plugin.js +20 -2
  216. package/esm/plugin/components/axis-label-overlap-plugin.js.map +1 -1
  217. package/esm/series/bar/bar.d.ts +3 -2
  218. package/esm/series/bar/bar.js +27 -13
  219. package/esm/series/bar/bar.js.map +1 -1
  220. package/esm/series/bar/interface.d.ts +5 -3
  221. package/esm/series/bar/interface.js.map +1 -1
  222. package/esm/series/base/base-series.d.ts +1 -0
  223. package/esm/series/base/base-series.js +28 -18
  224. package/esm/series/base/base-series.js.map +1 -1
  225. package/esm/series/circle-packing/circle-packing.d.ts +2 -0
  226. package/esm/series/circle-packing/circle-packing.js +1 -0
  227. package/esm/series/circle-packing/circle-packing.js.map +1 -1
  228. package/esm/series/geo/geo.js +2 -2
  229. package/esm/series/geo/geo.js.map +1 -1
  230. package/esm/series/map/map.js +10 -7
  231. package/esm/series/map/map.js.map +1 -1
  232. package/esm/series/pie/pie.d.ts +3 -0
  233. package/esm/series/pie/pie.js +27 -23
  234. package/esm/series/pie/pie.js.map +1 -1
  235. package/esm/series/radar/radar.js +2 -2
  236. package/esm/series/radar/radar.js.map +1 -1
  237. package/esm/series/range-column/range-column.js +14 -27
  238. package/esm/series/range-column/range-column.js.map +1 -1
  239. package/esm/series/sankey/sankey.d.ts +2 -0
  240. package/esm/series/sankey/sankey.js +1 -0
  241. package/esm/series/sankey/sankey.js.map +1 -1
  242. package/esm/series/sunburst/sunburst.d.ts +2 -0
  243. package/esm/series/sunburst/sunburst.js +1 -0
  244. package/esm/series/sunburst/sunburst.js.map +1 -1
  245. package/esm/theme/buildin-theme/light/component/title.js +2 -2
  246. package/esm/theme/buildin-theme/light/component/title.js.map +1 -1
  247. package/esm/theme/buildin-theme/light/index.js +2 -1
  248. package/esm/theme/buildin-theme/light/index.js.map +1 -1
  249. package/esm/theme/interface.d.ts +1 -0
  250. package/esm/theme/interface.js.map +1 -1
  251. package/esm/typings/spec/common.d.ts +2 -0
  252. package/esm/typings/spec/common.js.map +1 -1
  253. package/esm/typings/tooltip/handler.d.ts +0 -1
  254. package/esm/typings/tooltip/handler.js.map +1 -1
  255. package/package.json +1 -1
@@ -1,6 +1,7 @@
1
1
  import type { Maybe, IPoint, Datum, StateValueType } from '../../typings';
2
2
  import type { IModelLayoutOption } from '../../model/interface';
3
3
  import { PolarSeries } from '../polar/polar';
4
+ import type { IMark } from '../../mark/interface';
4
5
  import { MarkTypeEnum } from '../../mark/interface';
5
6
  import type { IArcMark } from '../../mark/arc';
6
7
  import type { ITextMark } from '../../mark/text';
@@ -33,6 +34,7 @@ export declare class BasePieSeries<T extends IBasePieSeriesSpec> extends PolarSe
33
34
  initData(): void;
34
35
  initMark(): void;
35
36
  initMarkStyle(): void;
37
+ initMarkStyleWithSpec(mark?: IMark, spec?: any, key?: string): void;
36
38
  afterInitMark(): void;
37
39
  initEvent(): void;
38
40
  initGroups(): void;
@@ -68,6 +70,7 @@ export declare class BasePieSeries<T extends IBasePieSeriesSpec> extends PolarSe
68
70
  getStackValueField(): string;
69
71
  setValueFieldToStack(): void;
70
72
  setValueFieldToPercent(): void;
73
+ protected _noAnimationDataKey(datum: Datum, index: number): number;
71
74
  }
72
75
  export declare class PieSeries extends BasePieSeries<IPieSeriesSpec> implements IArcSeries {
73
76
  static readonly type: string;
@@ -115,29 +115,25 @@ class BasePieSeries extends polar_1.PolarSeries {
115
115
  initMarkStyle() {
116
116
  var _a, _b, _c, _d, _e, _f, _g;
117
117
  const pieMark = this._pieMark;
118
- if (pieMark) {
119
- this.setMarkStyle(pieMark, {
120
- x: () => {
121
- var _a, _b;
122
- return null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.x) && void 0 !== _b ? _b : this._region.getLayoutRect().width / 2;
123
- },
124
- y: () => {
125
- var _a, _b;
126
- return null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.y) && void 0 !== _b ? _b : this._region.getLayoutRect().height / 2;
127
- },
128
- fill: this.getColorAttribute(),
129
- outerRadius: (0, util_1.isSpecValueWithScale)(this._outerRadius) ? this._outerRadius : () => this.computeLayoutRadius() * this._outerRadius,
130
- innerRadius: (0, util_1.isSpecValueWithScale)(this._innerRadius) ? this._innerRadius : () => this.computeLayoutRadius() * this._innerRadius,
131
- cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,
132
- startAngle: (0, util_1.field)(constant_1.ARC_START_ANGLE).bind(this),
133
- endAngle: (0, util_1.field)(constant_1.ARC_END_ANGLE).bind(this),
134
- padAngle: this._padAngle,
135
- centerOffset: this._centerOffset
136
- }, "normal", constant_1.AttributeLevel.Series);
137
- const pieSpec = this.getSpec()[pieMark.name];
138
- if (pieSpec) for (const state in pieSpec.state || {}) this.setMarkStyle(pieMark, this.generateRadiusStyle(pieSpec.state[state]), state, constant_1.AttributeLevel.User_Mark);
139
- this._trigger.registerMark(pieMark), null === (_a = this._tooltipHelper) || void 0 === _a || _a.activeTriggerSet.mark.add(pieMark);
140
- }
118
+ pieMark && (this.setMarkStyle(pieMark, {
119
+ x: () => {
120
+ var _a, _b;
121
+ return null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.x) && void 0 !== _b ? _b : this._region.getLayoutRect().width / 2;
122
+ },
123
+ y: () => {
124
+ var _a, _b;
125
+ return null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.y) && void 0 !== _b ? _b : this._region.getLayoutRect().height / 2;
126
+ },
127
+ fill: this.getColorAttribute(),
128
+ outerRadius: (0, util_1.isSpecValueWithScale)(this._outerRadius) ? this._outerRadius : () => this.computeLayoutRadius() * this._outerRadius,
129
+ innerRadius: (0, util_1.isSpecValueWithScale)(this._innerRadius) ? this._innerRadius : () => this.computeLayoutRadius() * this._innerRadius,
130
+ cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,
131
+ startAngle: (0, util_1.field)(constant_1.ARC_START_ANGLE).bind(this),
132
+ endAngle: (0, util_1.field)(constant_1.ARC_END_ANGLE).bind(this),
133
+ padAngle: this._padAngle,
134
+ centerOffset: this._centerOffset
135
+ }, "normal", constant_1.AttributeLevel.Series), this._trigger.registerMark(pieMark),
136
+ null === (_a = this._tooltipHelper) || void 0 === _a || _a.activeTriggerSet.mark.add(pieMark));
141
137
  const labelMark = this._labelMark;
142
138
  labelMark && (this.setMarkStyle(labelMark, {
143
139
  visible: (0, util_1.field)(constant_1.DEFAULT_LABEL_VISIBLE).bind(this),
@@ -164,6 +160,12 @@ class BasePieSeries extends polar_1.PolarSeries {
164
160
  this.setMarkStyle(labelLineMark, this.generateLinePath("selected"), "selected"),
165
161
  this._trigger.registerMark(labelLineMark));
166
162
  }
163
+ initMarkStyleWithSpec(mark, spec, key) {
164
+ if (super.initMarkStyleWithSpec(mark, spec, key), mark.name === this._pieMarkName) {
165
+ const pieSpec = this.getSpec()[mark.name];
166
+ if (pieSpec) for (const state in pieSpec.state || {}) this.setMarkStyle(mark, this.generateRadiusStyle(pieSpec.state[state]), state, constant_1.AttributeLevel.User_Mark);
167
+ }
168
+ }
167
169
  afterInitMark() {
168
170
  super.afterInitMark(), this._trigger.setStateKeys([ this._seriesField, ...this._radiusField ]);
169
171
  }
@@ -321,6 +323,9 @@ class BasePieSeries extends polar_1.PolarSeries {
321
323
  }
322
324
  setValueFieldToStack() {}
323
325
  setValueFieldToPercent() {}
326
+ _noAnimationDataKey(datum, index) {
327
+ return index;
328
+ }
324
329
  }
325
330
 
326
331
  exports.BasePieSeries = BasePieSeries, BasePieSeries.mark = Object.assign(Object.assign({}, base_series_1.BaseSeries.mark), {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/pie/pie.ts"],"names":[],"mappings":";;;AACA,6CAA2C;AAC3C,iDAA8C;AAC9C,6CAyBwB;AAExB,qCAQoB;AAEpB,0CAA6C;AAC7C,oDAAoD;AAMpD,4CAAkD;AAClD,4CAAmD;AAGnD,mDAAgD;AAChD,4DAAwD;AACxD,kDAAuE;AAEvE,iDAA4F;AAC5F,yDAA+D;AAC/D,mDAAgE;AAEhE,qDAAiD;AAGjD,2DAA8D;AAC9D,qDAAiD;AACjD,8CAA2C;AAC3C,0CAA2C;AAC3C,0CAA2C;AAC3C,wCAAyC;AAEzC,eAAM,CAAC,OAAO,CAAC,CAAC,eAAQ,EAAE,eAAQ,EAAE,aAAO,CAAC,CAAC,CAAC;AAI9C,MAAa,aAA4C,SAAQ,mBAAc;IAA/E;;QACY,iBAAY,GAAuB,8BAAkB,CAAC,GAAG,CAAC;QAC1D,iBAAY,GAAiB,wBAAY,CAAC,GAAG,CAAC;QAsB9C,gBAAW,GAAW,6BAAkB,CAAC;QACzC,cAAS,GAAW,2BAAgB,CAAC;QAGrC,aAAQ,GAAoB,IAAI,CAAC;QACjC,eAAU,GAAqB,IAAI,CAAC;QACpC,mBAAc,GAAqB,IAAI,CAAC;QAwWlD,0BAAqB,GAAG,CAAC,KAAY,EAAiB,EAAE;YAEtD,MAAM,KAAK,GAAG,KAAK,CAAC,2BAAgB,CAAC,CAAC;YACtC,IAAI,IAAA,YAAK,EAAC,KAAK,CAAC,EAAE;gBAChB,OAAO,IAAI,CAAC;aACb;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,IAAA,uBAAgB,EAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9E,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1D,CAAC,CAAC;IA8FJ,CAAC;IAjeC,IAAW,MAAM;;QACf,OAAO;YACL,CAAC,EAAE,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,OAAO,mCAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,GAAG,CAAC;YAChE,CAAC,EAAE,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,OAAO,mCAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC;SAClE,CAAC;IACJ,CAAC;IAeD,eAAe;;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,YAAY,mCAAI,CAAC,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,YAAY,mCAAI,CAAC,CAAC;QAEnD,MAAM,UAAU,GAAG,IAAA,6BAAsB,EACvC,IAAA,gBAAO,EAAC,MAAA,IAAI,CAAC,KAAK,0CAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAA,cAAO,EAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EACnF,IAAA,gBAAO,EAAC,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,cAAO,EAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAC9E,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAA,gBAAO,EAAC,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,cAAO,EAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAGlF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACnE,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YAC5B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SAC/C;QACD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,QAAQ;QACN,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO;SACR;QAED,IAAA,2CAAgC,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAG,CAAC,CAAC;QAC5D,IAAA,2CAAgC,EAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,oBAAQ,CAAC,CAAC;QAEtE,QAAQ,CAAC,SAAS,CAChB;YACE,IAAI,EAAE,KAAK;YACX,OAAO,EAAE;gBACP,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC/B,UAAU,EAAE,IAAI,CAAC,WAAW;gBAC5B,QAAQ,EAAE,IAAI,CAAC,SAAS;gBACxB,YAAY,EAAE,0BAAe;gBAC7B,UAAU,EAAE,wBAAa;gBACzB,OAAO,EAAE,oBAAS;gBAClB,aAAa,EAAE,2BAAgB;gBAC/B,QAAQ,EAAE,qBAAU;gBACpB,UAAU,EAAE,uBAAY;gBACxB,GAAG,EAAE,gBAAK;aACA;SACb,EACD,KAAK,CACN,CAAC;QAEF,MAAM,aAAa,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE;YACxC,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC;QACH,aAAa,CAAC,IAAI,GAAG,GAAG,iBAAM,WAAW,IAAI,CAAC,EAAE,gBAAgB,CAAC;QACjE,aAAa,CAAC,SAAS,CACrB;YACE,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SAC1B,EACD,KAAK,CACN,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,IAAI,wBAAU,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACpE,CAAC;IAED,QAAQ;;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,iCAEzB,aAAa,CAAC,IAAI,CAAC,GAAG,KACzB,IAAI,EAAE,IAAI,CAAC,YAAY,EACvB,IAAI,EAAE,IAAI,CAAC,YAAY,KAEzB;YACE,KAAK,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAA,2BAAmB,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACxG,sBAAsB,EAAE,IAAI,CAAC,YAAY;YACzC,GAAG,EAAE,2BAAgB;YACrB,QAAQ,EAAE,IAAI,CAAC,YAAY;YAC3B,kBAAkB,EAAE,IAAI;YACxB,YAAY,EAAE,IAAI;SACnB,CACU,CAAC;QAEd,IAAI,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,0CAAE,OAAO,EAAE;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE;gBAC3D,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;gBAC3C,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;gBACjD,kBAAkB,EAAE,IAAI;gBACxB,SAAS,EAAE,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK;gBAC7B,SAAS,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,SAAS;gBACjC,QAAQ,kBACN,OAAO,EAAE,IAAI,IACV,MAAA,IAAI,CAAC,OAAO,EAAE,0CAAE,KAAK,CACzB;aACF,CAAc,CAAC;YAEhB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;gBAC3C,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;gBACjD,kBAAkB,EAAE,IAAI;gBACxB,SAAS,EAAE,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,0CAAE,IAAI;gBACnC,SAAS,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,SAAS;gBACjC,QAAQ,kBACN,OAAO,EAAE,IAAI,IACV,MAAA,MAAA,IAAI,CAAC,OAAO,EAAE,0CAAE,KAAK,0CAAE,IAAI,CAC/B;aACF,CAAc,CAAC;SACjB;IACH,CAAC;IAED,aAAa;;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,YAAY,CACf,OAAO,EACP;gBACE,CAAC,EAAE,GAAG,EAAE,eAAC,OAAA,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,CAAC,mCAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,GAAG,CAAC,CAAA,EAAA;gBAClE,CAAC,EAAE,GAAG,EAAE,eAAC,OAAA,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,CAAC,mCAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA,EAAA;gBACnE,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBAC9B,WAAW,EAAE,IAAA,2BAAoB,EAAC,IAAI,CAAC,YAAY,CAAC;oBAClD,CAAC,CAAC,IAAI,CAAC,YAAY;oBACnB,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,YAAY;gBACxD,WAAW,EAAE,IAAA,2BAAoB,EAAC,IAAI,CAAC,YAAY,CAAC;oBAClD,CAAC,CAAC,IAAI,CAAC,YAAY;oBACnB,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,YAAY;gBACxD,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,aAAa;gBACnE,UAAU,EAAE,IAAA,YAAK,EAAC,0BAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC7C,QAAQ,EAAE,IAAA,YAAK,EAAC,wBAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACzC,QAAQ,EAAE,IAAI,CAAC,SAAS;gBACxB,YAAY,EAAE,IAAI,CAAC,aAAa;aACjC,EACD,QAAQ,EACR,yBAAc,CAAC,MAAM,CACtB,CAAC;YAGF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,OAAO,EAAE;gBAEX,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE;oBACvC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,yBAAc,CAAC,SAAS,CAAC,CAAC;iBAC7G;aACF;YAED,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACpC,MAAA,IAAI,CAAC,cAAc,0CAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SACzD;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,YAAY,CACf,SAAS,EACT;gBACE,OAAO,EAAE,IAAA,YAAK,EAAC,gCAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChD,CAAC,EAAE,IAAA,YAAK,EAAC,0BAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACpC,CAAC,EAAE,IAAA,YAAK,EAAC,0BAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACpC,IAAI,EAAE,IAAA,YAAK,EAAC,6BAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1C,IAAI,EAAE,CAAA,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,KAAK,0CAAE,IAAI,KAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC/D,SAAS,EAAE,IAAA,YAAK,EAAC,8BAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChD,YAAY,EAAE,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,QAAQ,MAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;gBACxE,KAAK,EAAE,CAAC,KAAY,EAAE,EAAE;;oBACtB,MAAM,KAAK,GAAG,KAAK,CAAC,2BAAgB,CAAC,CAAC;oBACtC,OAAO,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,QAAQ,MAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,cAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtE,CAAC;gBACD,KAAK,EAAE,IAAA,YAAK,EAAC,8BAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;aAC7C,EACD,SAAS,EAET,yBAAc,CAAC,SAAS,CACzB,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SACvC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,aAAa,EAAE;YACjB,IAAI,CAAC,YAAY,CAAC,aAAa,kBAC7B,OAAO,EAAE,IAAA,YAAK,EAAC,gCAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAChD,MAAM,EAAE,CAAC,MAAA,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,IAAI,0CAAE,KAAK,0CAAE,MAAc,KAAI,IAAI,CAAC,iBAAiB,EAAE,EAClF,SAAS,EAAE,CAAC,IACT,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAClC,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;YAC1E,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;YAEhF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;SAC3C;IACH,CAAC;IAED,aAAa;QACX,KAAK,CAAC,aAAa,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,YAAsB,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,SAAS;;QACP,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,MAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,0CAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvG,CAAC;IAGD,UAAU;QACR,OAAO;IACT,CAAC;IAMD,WAAW,CAAC,GAAuB;QACjC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,iBAAiB,EAAE,CAAC;QACtD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,CAAC;IACD,eAAe;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAU,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC;IAES,mBAAmB,CAAC,IAAS;QACrC,MAAM,KAAK,GAAQ,EAAE,CAAC;QACtB,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,KAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAA,CAAC,CAAC;QAChG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,KAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAA,CAAC,CAAC;QAChG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,KAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,CAAA,CAAC,CAAC;QACnG,OAAO,KAAK,CAAC;IACf,CAAC;IAES,mBAAmB;QAC3B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,aAAa,CAAC,KAAY;QACxB,OAAO;YACL,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAW;YAC7D,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAW;SAC9D,CAAC;IACJ,CAAC;IAES,gBAAgB,CAAC,KAAqB;QAC9C,MAAM,GAAG,GAAG,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC/D,OAAO;YACL,IAAI,EAAE,CAAC,KAAY,EAAE,EAAE;gBACrB,OAAO,CACL,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,iBAAM,cAAc,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAClE,KAAK,CAAC,GAAG,iBAAM,cAAc,GAAG,KAAK,CAAC,CACvC,EAAE;oBACH,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,6BAAkB,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,6BAAkB,CAAC,CAAC,EAAE;oBACrF,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,6BAAkB,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,6BAAkB,CAAC,CAAC,EAAE,CACtF,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,QAAwB,QAAQ;;QACxC,MAAM,WAAW,GACf,KAAK,KAAK,QAAQ;YAChB,CAAC,CAAC,MAAA,MAAA,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,KAAI,KAAK,CAAC,0CAAE,KAAK,0CAAE,WAAW;YAClE,CAAC,CAAC,MAAA,MAAA,MAAA,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,KAAI,KAAK,CAAC,0CAAE,KAAK,0CAAG,KAAK,CAAC,0CAAE,WAAW,CAAC;QAChF,OAAO,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,CAAC,YAAY,CAAC;IAC1C,CAAC;IAED,cAAc,CAAC,QAAwB,QAAQ;;QAC7C,MAAM,WAAW,GACf,KAAK,KAAK,QAAQ;YAChB,CAAC,CAAC,MAAA,MAAA,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,KAAI,KAAK,CAAC,0CAAE,KAAK,0CAAE,WAAW;YAClE,CAAC,CAAC,MAAA,MAAA,MAAA,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,KAAI,KAAK,CAAC,0CAAE,KAAK,0CAAG,KAAK,CAAC,0CAAE,WAAW,CAAC;QAChF,OAAO,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,CAAC,YAAY,CAAC;IAC1C,CAAC;IAED,cAAc;;QAEZ,qCACE,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,KAAK,EACf,MAAM,EAAE,IAAI,EACZ,WAAW,EAAE,KAAK,EAClB,UAAU,EAAE,CAAC,EACb,YAAY,EAAE,CAAC,IACZ,IAAI,CAAC,KAAK,CAAC,KAAK,KAEnB,KAAK,kBACH,OAAO,EAAE,IAAI,IACV,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,KAAK,GAE5B,IAAI,kBACF,OAAO,EAAE,IAAI,EACb,cAAc,EAAE,MAAA,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,IAAI,0CAAE,cAAc,mCAAI,EAAE,EAC5D,cAAc,EAAE,MAAA,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,IAAI,0CAAE,cAAc,mCAAI,EAAE,IACzD,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,IAAI,GAE3B,MAAM,kBACJ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,UAAU,EACpB,iBAAiB,EAAE,IAAI,IACpB,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,MAAM,KAE7B;IACJ,CAAC;IAED,aAAa,CAAC,CAAS,EAAE,CAAU;QACjC,OAAO,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,GAAG,CAAC,IAAA,YAAK,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;IAClF,CAAC;IAED,kBAAkB,CAAC,KAAY,EAAE,KAAc;QAC7C,OAAO,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;IACjF,CAAC;IAED,UAAU,CAAC,IAAS;QAElB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GACzG,YAAY,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,IACE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,MAAK,OAAO;YACzB,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,MAAK,OAAO;YACzB,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,MAAK,YAAY;YACnC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,MAAK,MAAM;YACvB,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,MAAK,WAAW;YACjC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,MAAK,YAAY;YACnC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,MAAK,UAAU;YAC/B,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,MAAK,QAAQ;YAC3B,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,MAAK,QAAQ,EAC3B;YACA,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;YACvB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;SACtB;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,uBAAuB,CAAC,KAAY,EAAE,KAAc;QAClD,OAAO,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;IACtF,CAAC;IAED,cAAc,CAAC,KAAY;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,2BAAgB,CAAC,CAAC;QACtC,IAAI,IAAA,YAAK,EAAC,KAAK,CAAC,EAAE;YAChB,OAAO,IAAI,CAAC;SACb;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,IAAA,uBAAgB,EAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAClD,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;IAC1D,CAAC;IAeD,aAAa;;QACX,MAAM,eAAe,GAAwB;YAC3C,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;;gBAClC,IAAI,KAAK,KAAK,8BAAkB,CAAC,MAAM,EAAE;oBACvC,OAAO,IAAI,CAAC,WAAW,CAAC;iBACzB;gBACD,IAAI,KAAK,KAAK,8BAAkB,CAAC,SAAS,EAAE;oBAC1C,OAAO,IAAI,CAAC,SAAS,CAAC;iBACvB;gBAED,MAAM,QAAQ,GAAG,CAAC,8BAAkB,CAAC,SAAS,EAAE,8BAAkB,CAAC,IAAI,CAAC,CAAC;gBACzE,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAE3C,MAAM,IAAI,GAAG,KAAK,CAAC;gBACnB,MAAM,SAAS,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,6BAAkB,CAAC,CAAC;gBAG7C,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAG,6BAAkB,CAAC,IAAG,SAAS,CAAA,EAAA,CAAC,KAAK,SAAS,EAAE;oBACrF,OAAO,IAAI,CAAC,WAAW,CAAC;iBACzB;gBAED,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAG,6BAAkB,CAAC,IAAG,SAAS,CAAA,EAAA,CAAC,KAAK,SAAS,EAAE;oBACrF,OAAO,IAAI,CAAC,SAAS,CAAC;iBACvB;gBAKD,MAAM,eAAe,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAG,6BAAkB,CAAC,IAAG,SAAS,CAAA,EAAA,CAAC,CAAC;gBAChG,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;oBAC5B,OAAO,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,cAAc,GAAG,SAAS,0CAAE,QAAQ,CAAC;iBAC9D;gBACD,OAAO,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,cAAc,GAAG,SAAS,0CAAE,QAAQ,CAAC;YAC/D,CAAC;SACF,CAAC;QACF,MAAM,YAAY,GAAG,MAAC,MAAA,IAAI,CAAC,KAAK,0CAAE,eAAsD,0CAAE,MAAM,CAAC;QAEjG,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,kBAAkB,GAAG,IAAA,uBAAe,EACxC,+BAAsB,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,EACzD,IAAA,2BAAmB,EAAC,8BAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CACxD,CAAC;YAEF,IAAI,kBAAkB,CAAC,MAAM,IAAK,kBAAkB,CAAC,MAA+B,CAAC,IAAI,EAAE;gBACzF,kBAAkB,CAAC,MAAM,GAAG,IAAA,iCAAkB,EAC5C,IAAI,CAAC,QAAQ,EACb,kBAAkB,CAAC,MAA8B,CAClD,CAAC;aACH;YAED,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;SACtD;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAChC,IAAA,uBAAe,EAAC,+BAAsB,CAAC,KAAK,EAAE,EAAE,IAAA,2BAAmB,EAAC,8BAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAC3G,CAAC;YAEF,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,IAAI,CAAC,cAAc,CAAC,kBAAkB,CACpC,IAAA,uBAAe,EAAC,+BAAsB,CAAC,KAAK,EAAE,EAAE,IAAA,2BAAmB,EAAC,8BAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAC/G,CAAC;aACH;SACF;IACH,CAAC;IAED,mBAAmB;QACjB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,cAAc;QAEZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,mBAAmB;QAEjB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,kBAAkB;QAEhB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,oBAAoB;IAEpB,CAAC;IAED,sBAAsB;IAEtB,CAAC;;AA9eH,sCA+eC;AA3eiB,kBAAI,mCACf,wBAAU,CAAC,IAAI,KAClB,CAAC,8BAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,8BAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,wBAAY,CAAC,GAAG,EAAE,EAClF,CAAC,8BAAkB,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,8BAAkB,CAAC,SAAS,EAAE,IAAI,EAAE,wBAAY,CAAC,IAAI,EAAE,IAC/F;AAyeJ,MAAa,SAAU,SAAQ,aAA6B;IAA5D;;QAEE,SAAI,GAAG,qBAAc,CAAC,GAAG,CAAC;IAC5B,CAAC;;AAHD,8BAGC;AAFiB,cAAI,GAAW,qBAAc,CAAC,GAAG,CAAC","file":"pie.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { isValid } from '@visactor/vutils';\nimport { DataView } from '@visactor/vdataset';\nimport {\n AttributeLevel,\n ARC_START_ANGLE,\n ARC_END_ANGLE,\n ARC_RATIO,\n ARC_MIDDLE_ANGLE,\n ARC_RADIAN,\n ARC_QUADRANT,\n ARC_K,\n PREFIX,\n DEFAULT_LABEL_X,\n DEFAULT_LABEL_Y,\n DEFAULT_LABEL_TEXT,\n ARC_LABEL_POINT_BX,\n ARC_LABEL_POINT_BY,\n ARC_LABEL_POINT_CX,\n ARC_LABEL_POINT_CY,\n DEFAULT_LABEL_LIMIT,\n DEFAULT_LABEL_ALIGN,\n DEFAULT_LABEL_VISIBLE,\n POLAR_START_RADIAN,\n POLAR_END_RADIAN,\n DEFAULT_DATA_INDEX,\n ChartEvent,\n DEFAULT_DATA_KEY\n} from '../../constant';\nimport type { Maybe, IPoint, Datum, StateValueType } from '../../typings';\nimport {\n degrees,\n field,\n isNil,\n isSpecValueWithScale,\n normalizeStartEndAngle,\n polarToCartesian,\n radians\n} from '../../util';\nimport type { IModelLayoutOption } from '../../model/interface';\nimport { PolarSeries } from '../polar/polar';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport type { IArcMark } from '../../mark/arc';\nimport type { ITextMark } from '../../mark/text';\nimport type { IPathMark } from '../../mark/path';\nimport type { IArcSeries, SeriesMarkMap } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { SeriesMarkNameEnum } from '../interface';\nimport { SeriesTypeEnum } from '../interface/type';\nimport type { IPieOpt } from '../../data/transforms/pie';\n// eslint-disable-next-line no-duplicate-imports\nimport { pie } from '../../data/transforms/pie';\nimport { arcLabel } from '../../layout/label/arc-label';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport type { IPieAnimationParams, PieAppearPreset } from './animation/animation';\nimport { animationConfig, shouldDoMorph, userAnimationConfig } from '../../animation/utils';\nimport { AnimationStateEnum } from '../../animation/interface';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport type { IArcLabelSpec, IPieSeriesSpec, IPieSeriesTheme } from './interface';\nimport { SeriesData } from '../base/series-data';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { IAnimationTypeConfig } from '@visactor/vgrammar';\nimport { centerOffsetConfig } from './animation/centerOffset';\nimport { BaseSeries } from '../base/base-series';\nimport { VChart } from '../../core/vchart';\nimport { PathMark } from '../../mark/path';\nimport { TextMark } from '../../mark/text';\nimport { ArcMark } from '../../mark/arc';\n\nVChart.useMark([PathMark, TextMark, ArcMark]);\n\ntype IBasePieSeriesSpec = Omit<IPieSeriesSpec, 'type'> & { type: string };\n\nexport class BasePieSeries<T extends IBasePieSeriesSpec> extends PolarSeries<T> implements IArcSeries {\n protected _pieMarkName: SeriesMarkNameEnum = SeriesMarkNameEnum.pie;\n protected _pieMarkType: MarkTypeEnum = MarkTypeEnum.arc;\n\n static readonly mark: SeriesMarkMap = {\n ...BaseSeries.mark,\n [SeriesMarkNameEnum.pie]: { name: SeriesMarkNameEnum.pie, type: MarkTypeEnum.arc },\n [SeriesMarkNameEnum.labelLine]: { name: SeriesMarkNameEnum.labelLine, type: MarkTypeEnum.path }\n };\n\n protected _viewDataLabel!: SeriesData;\n\n // 饼图渲染不依赖于极坐标系轴,因此由 series 自己存储相关配置信息\n protected _center!: IPoint | null;\n public get center(): IPoint {\n return {\n x: this._spec?.centerX ?? this._region.getLayoutRect().width / 2,\n y: this._spec?.centerY ?? this._region.getLayoutRect().height / 2\n };\n }\n protected _centerOffset!: number;\n\n protected _cornerRadius!: number;\n\n protected _startAngle: number = POLAR_START_RADIAN;\n protected _endAngle: number = POLAR_END_RADIAN;\n protected _padAngle!: number;\n\n protected _pieMark: IArcMark | null = null;\n protected _labelMark: ITextMark | null = null;\n protected _labelLineMark: IPathMark | null = null;\n\n protected declare _theme: Maybe<IPieSeriesTheme>;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this._centerOffset = this._spec?.centerOffset ?? 0;\n this._cornerRadius = this._spec?.cornerRadius ?? 0;\n\n const normalized = normalizeStartEndAngle(\n isValid(this._spec?.startAngle) ? radians(this._spec.startAngle) : this._startAngle,\n isValid(this._spec?.endAngle) ? radians(this._spec.endAngle) : this._endAngle\n );\n this._startAngle = normalized.startAngle;\n this._endAngle = normalized.endAngle;\n this._padAngle = isValid(this._spec?.padAngle) ? radians(this._spec.padAngle) : 0;\n\n // 值信息给角度,angleField 是为了兼容小组件用法,因为 spec 改造前已经开放了\n this.setAngleField(this._spec.valueField || this._spec.angleField);\n if (this._spec.categoryField) {\n this.setSeriesField(this._spec.categoryField);\n }\n this._radiusField = [];\n }\n\n initData() {\n super.initData();\n\n const viewData = this.getViewData();\n if (!viewData) {\n return;\n }\n\n registerDataSetInstanceTransform(this._dataSet, 'pie', pie);\n registerDataSetInstanceTransform(this._dataSet, 'arcLabel', arcLabel);\n\n viewData.transform(\n {\n type: 'pie',\n options: {\n angleField: this._angleField[0],\n startAngle: this._startAngle,\n endAngle: this._endAngle,\n asStartAngle: ARC_START_ANGLE,\n asEndAngle: ARC_END_ANGLE,\n asRatio: ARC_RATIO,\n asMiddleAngle: ARC_MIDDLE_ANGLE,\n asRadian: ARC_RADIAN,\n asQuadrant: ARC_QUADRANT,\n asK: ARC_K\n } as IPieOpt\n },\n false\n );\n\n const viewDataLabel = new DataView(this._dataSet);\n viewDataLabel.parse([this.getViewData()], {\n type: 'dataview'\n });\n viewDataLabel.name = `${PREFIX}_series_${this.id}_viewDataLabel`;\n viewDataLabel.transform(\n {\n type: 'arcLabel',\n options: { series: this }\n },\n false\n );\n\n this._viewDataLabel = new SeriesData(this._option, viewDataLabel);\n }\n\n initMark(): void {\n this._pieMark = this._createMark(\n {\n ...BasePieSeries.mark.pie,\n name: this._pieMarkName,\n type: this._pieMarkType\n },\n {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig(this.type, this._spec)),\n defaultMorphElementKey: this._seriesField,\n key: DEFAULT_DATA_KEY,\n groupKey: this._seriesField,\n skipBeforeLayouted: true,\n isSeriesMark: true\n }\n ) as IArcMark;\n\n if (this._spec?.label?.visible) {\n const spec = this.getSpec();\n this._labelMark = this._createMark(BasePieSeries.mark.label, {\n dataView: this._viewDataLabel.getDataView(),\n dataProductId: this._viewDataLabel.getProductId(),\n skipBeforeLayouted: true,\n themeSpec: this._theme?.label,\n support3d: spec?.label?.support3d,\n markSpec: {\n visible: true,\n ...this.getSpec()?.label\n }\n }) as ITextMark;\n\n this._labelLineMark = this._createMark(BasePieSeries.mark.labelLine, {\n dataView: this._viewDataLabel.getDataView(),\n dataProductId: this._viewDataLabel.getProductId(),\n skipBeforeLayouted: true,\n themeSpec: this._theme?.label?.line,\n support3d: spec?.label?.support3d,\n markSpec: {\n visible: true,\n ...this.getSpec()?.label?.line\n }\n }) as ITextMark;\n }\n }\n\n initMarkStyle(): void {\n const pieMark = this._pieMark;\n if (pieMark) {\n this.setMarkStyle(\n pieMark,\n {\n x: () => this._center?.x ?? this._region.getLayoutRect().width / 2,\n y: () => this._center?.y ?? this._region.getLayoutRect().height / 2,\n fill: this.getColorAttribute(),\n outerRadius: isSpecValueWithScale(this._outerRadius)\n ? this._outerRadius\n : () => this.computeLayoutRadius() * this._outerRadius,\n innerRadius: isSpecValueWithScale(this._innerRadius)\n ? this._innerRadius\n : () => this.computeLayoutRadius() * this._innerRadius,\n cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,\n startAngle: field(ARC_START_ANGLE).bind(this),\n endAngle: field(ARC_END_ANGLE).bind(this),\n padAngle: this._padAngle,\n centerOffset: this._centerOffset\n },\n 'normal',\n AttributeLevel.Series\n );\n\n // radius 配置需要额外处理比例值\n const pieSpec = this.getSpec()[pieMark.name];\n if (pieSpec) {\n // pieMark.setStyle(pieSpec.style, 'normal', AttributeLevel.User_Mark);\n for (const state in pieSpec.state || {}) {\n this.setMarkStyle(pieMark, this.generateRadiusStyle(pieSpec.state[state]), state, AttributeLevel.User_Mark);\n }\n }\n\n this._trigger.registerMark(pieMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(pieMark);\n }\n\n const labelMark = this._labelMark;\n if (labelMark) {\n this.setMarkStyle(\n labelMark,\n {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n x: field(DEFAULT_LABEL_X).bind(this),\n y: field(DEFAULT_LABEL_Y).bind(this),\n text: field(DEFAULT_LABEL_TEXT).bind(this),\n fill: this._spec.label?.style?.fill || this.getColorAttribute(),\n textAlign: field(DEFAULT_LABEL_ALIGN).bind(this),\n textBaseline: this._spec.label?.position === 'inside' ? 'middle' : 'top',\n angle: (datum: Datum) => {\n const angle = datum[ARC_MIDDLE_ANGLE];\n return this._spec.label?.position === 'inside' ? degrees(angle) : 0;\n },\n limit: field(DEFAULT_LABEL_LIMIT).bind(this)\n },\n undefined,\n // 标签属性基于用户配置生成,样式优先级应当为用户级\n AttributeLevel.User_Mark\n );\n\n this._trigger.registerMark(labelMark);\n }\n\n const labelLineMark = this._labelLineMark;\n if (labelLineMark) {\n this.setMarkStyle(labelLineMark, {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n stroke: (this._spec.label?.line?.style?.stroke as any) || this.getColorAttribute(),\n lineWidth: 1,\n ...this.generateLinePath('normal')\n });\n this.setMarkStyle(labelLineMark, this.generateLinePath('hover'), 'hover');\n this.setMarkStyle(labelLineMark, this.generateLinePath('selected'), 'selected');\n\n this._trigger.registerMark(labelLineMark);\n }\n }\n\n afterInitMark(): void {\n super.afterInitMark();\n this._trigger.setStateKeys([this._seriesField as string, ...this._radiusField]);\n }\n\n initEvent(): void {\n super.initEvent();\n this._viewDataLabel.getDataView()?.target.addListener('change', this.viewDataLabelUpdate.bind(this));\n }\n\n // 饼图不支持分组\n initGroups() {\n return;\n }\n\n /**\n * @override\n * @param ctx\n */\n onLayoutEnd(ctx: IModelLayoutOption): void {\n this._viewDataLabel.getDataView().reRunAllTransform();\n this.onMarkPositionUpdate();\n super.onLayoutEnd(ctx);\n }\n\n getDimensionField(): string[] {\n return this._seriesField ? [this._seriesField] : [];\n }\n getMeasureField(): string[] {\n return this._angleField;\n }\n\n private viewDataLabelUpdate() {\n this.event.emit(ChartEvent.viewDataLabelUpdate, { model: this });\n this._viewDataLabel.updateData();\n }\n\n protected generateRadiusStyle(spec: any) {\n const style: any = {};\n spec?.outerRadius && (style.outerRadius = () => this.computeLayoutRadius() * spec?.outerRadius);\n spec?.innerRadius && (style.innerRadius = () => this.computeLayoutRadius() * spec?.innerRadius);\n spec?.cornerRadius && (style.cornerRadius = () => this.computeLayoutRadius() * spec?.cornerRadius);\n return style;\n }\n\n protected computeLayoutRadius() {\n const { width, height } = this._region.getLayoutRect();\n return Math.min(width / 2, height / 2);\n }\n\n computeCenter(datum: Datum): IPoint {\n return {\n x: this._pieMark.getAttribute('x', datum, 'normal') as number,\n y: this._pieMark.getAttribute('y', datum, 'normal') as number\n };\n }\n\n protected generateLinePath(state: StateValueType) {\n const key = state === 'normal' ? 'POINT' : state.toUpperCase();\n return {\n path: (datum: Datum) => {\n return (\n `M${Math.round(datum[`${PREFIX}_ARC_LABEL_${key}_AX`])},${Math.round(\n datum[`${PREFIX}_ARC_LABEL_${key}_AY`]\n )}` +\n ` L${Math.round(datum[ARC_LABEL_POINT_BX])},${Math.round(datum[ARC_LABEL_POINT_BY])}` +\n ` L${Math.round(datum[ARC_LABEL_POINT_CX])},${Math.round(datum[ARC_LABEL_POINT_CY])}`\n );\n }\n };\n }\n\n getRadius(state: StateValueType = 'normal'): number {\n const styleRadius =\n state === 'normal'\n ? this.getSpec()[this._pieMark?.name || 'pie']?.style?.outerRadius\n : this.getSpec()[this._pieMark?.name || 'pie']?.state?.[state]?.outerRadius;\n return styleRadius ?? this._outerRadius;\n }\n\n getInnerRadius(state: StateValueType = 'normal'): number {\n const styleRadius =\n state === 'normal'\n ? this.getSpec()[this._pieMark?.name || 'pie']?.style?.innerRadius\n : this.getSpec()[this._pieMark?.name || 'pie']?.state?.[state]?.innerRadius;\n return styleRadius ?? this._innerRadius;\n }\n\n getLabelConfig(): IArcLabelSpec {\n // TODO: 转换 series spec\n return {\n visible: true,\n position: 'outside',\n showRule: 'all',\n rotate: true,\n coverEnable: false,\n spaceWidth: 5,\n layoutArcGap: 6,\n ...this._spec.label,\n\n style: {\n visible: true,\n ...this._spec.label?.style\n },\n line: {\n visible: true,\n line1MinLength: this._spec.label?.line?.line1MinLength ?? 20,\n line2MinLength: this._spec.label?.line?.line2MinLength ?? 10,\n ...this._spec.label?.line\n },\n layout: {\n align: 'arc',\n strategy: 'priority',\n tangentConstraint: true,\n ...this._spec.label?.layout\n }\n };\n }\n\n computeRadius(r: number, k?: number): number {\n return this.computeLayoutRadius() * r * (isNil(k) ? 1 : k) + this._centerOffset;\n }\n\n computeDatumRadius(datum: Datum, state?: string): number {\n return this.computeLayoutRadius() * this.getRadius(state) + this._centerOffset;\n }\n\n updateSpec(spec: any) {\n // super updateSpec 会执行 setAttrFromSpec 所以先缓存比对值\n const originalSpec = this._originalSpec;\n const { centerX, centerY, centerOffset, radius, innerRadius, cornerRadius, startAngle, endAngle, padAngle } =\n originalSpec;\n const result = super.updateSpec(spec);\n if (\n spec?.centerX !== centerX ||\n spec?.centerY !== centerY ||\n spec?.centerOffset !== centerOffset ||\n spec?.radius !== radius ||\n spec?.innerRadius !== innerRadius ||\n spec?.cornerRadius !== cornerRadius ||\n spec?.startAngle !== startAngle ||\n spec?.endAngle !== endAngle ||\n spec?.padAngle !== padAngle\n ) {\n result.reRender = true;\n result.change = true;\n }\n return result;\n }\n\n computeDatumInnerRadius(datum: Datum, state?: string): number {\n return this.computeLayoutRadius() * this.getInnerRadius(state) + this._centerOffset;\n }\n\n dataToPosition(datum: Datum): IPoint | null {\n const angle = datum[ARC_MIDDLE_ANGLE];\n if (isNil(angle)) {\n return null;\n }\n const radius = this.computeDatumRadius(datum);\n const center = this.computeCenter(datum);\n const delta = polarToCartesian({ angle, radius });\n return { x: center.x + delta.x, y: center.y + delta.y };\n }\n\n dataToCentralPosition = (datum: Datum): IPoint | null => {\n // 和 PieSeries.dataToPosition 实现不同,这里考虑了美观性,返回的位置是曲边梯形的中心\n const angle = datum[ARC_MIDDLE_ANGLE];\n if (isNil(angle)) {\n return null;\n }\n const radius = this.computeDatumRadius(datum);\n const innerRadius = this.computeDatumInnerRadius(datum);\n const center = this.computeCenter(datum);\n const delta = polarToCartesian({ angle, radius: (radius + innerRadius) / 2 });\n return { x: center.x + delta.x, y: center.y + delta.y };\n };\n\n initAnimation() {\n const animationParams: IPieAnimationParams = {\n growFrom: (datum, element, state) => {\n if (state === AnimationStateEnum.appear) {\n return this._startAngle;\n }\n if (state === AnimationStateEnum.disappear) {\n return this._endAngle;\n }\n\n const outState = [AnimationStateEnum.disappear, AnimationStateEnum.exit];\n const markElements = element.mark.elements;\n\n const data = datum;\n const dataIndex = data?.[DEFAULT_DATA_INDEX];\n\n // 当前 mark 在上个状态是否处于第一个\n if (markElements.find(e => e.data[0]?.[DEFAULT_DATA_INDEX] < dataIndex) === undefined) {\n return this._startAngle;\n }\n // 当前 mark 在上个状态是否处于最后一个\n if (markElements.find(e => e.data[0]?.[DEFAULT_DATA_INDEX] > dataIndex) === undefined) {\n return this._endAngle;\n }\n\n // 扇形不在边缘时,获取扇形生长点:获取相邻状态下相邻扇形的边缘\n // @ts-ignore\n // TODO: findLast is a new prototype function, we will later polyfill it in v-util.\n const prevMarkElement = markElements.findLast(e => e.data[0]?.[DEFAULT_DATA_INDEX] < dataIndex);\n if (outState.includes(state)) {\n return prevMarkElement?.getGraphicItem().nextAttrs?.endAngle;\n }\n return prevMarkElement?.getGraphicItem().prevAttrs?.endAngle;\n }\n };\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<PieAppearPreset>)?.preset;\n\n if (this._pieMark) {\n const pieAnimationConfig = animationConfig(\n DEFAULT_MARK_ANIMATION.pie(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.pie, this._spec)\n );\n\n if (pieAnimationConfig.normal && (pieAnimationConfig.normal as IAnimationTypeConfig).type) {\n pieAnimationConfig.normal = centerOffsetConfig(\n this._pieMark,\n pieAnimationConfig.normal as IAnimationTypeConfig\n );\n }\n\n this._pieMark.setAnimationConfig(pieAnimationConfig);\n }\n\n if (this._labelMark) {\n this._labelMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.label, this._spec))\n );\n\n if (this._labelLineMark) {\n this._labelLineMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.labelLine, this._spec))\n );\n }\n }\n }\n\n getDefaultShapeType(): string {\n return 'square';\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 setValueFieldToStack(): void {\n // do nothing\n }\n\n setValueFieldToPercent(): void {\n //do nothing\n }\n}\n\nexport class PieSeries extends BasePieSeries<IPieSeriesSpec> implements IArcSeries {\n static readonly type: string = SeriesTypeEnum.pie;\n type = SeriesTypeEnum.pie;\n}\n"]}
1
+ {"version":3,"sources":["../src/series/pie/pie.ts"],"names":[],"mappings":";;;AACA,6CAA2C;AAC3C,iDAA8C;AAC9C,6CAyBwB;AAExB,qCAQoB;AAEpB,0CAA6C;AAE7C,oDAAoD;AAMpD,4CAAkD;AAClD,4CAAmD;AAGnD,mDAAgD;AAChD,4DAAwD;AACxD,kDAAuE;AAEvE,iDAA4F;AAC5F,yDAA+D;AAC/D,mDAAgE;AAEhE,qDAAiD;AAGjD,2DAA8D;AAC9D,qDAAiD;AACjD,8CAA2C;AAC3C,0CAA2C;AAC3C,0CAA2C;AAC3C,wCAAyC;AAEzC,eAAM,CAAC,OAAO,CAAC,CAAC,eAAQ,EAAE,eAAQ,EAAE,aAAO,CAAC,CAAC,CAAC;AAI9C,MAAa,aAA4C,SAAQ,mBAAc;IAA/E;;QACY,iBAAY,GAAuB,8BAAkB,CAAC,GAAG,CAAC;QAC1D,iBAAY,GAAiB,wBAAY,CAAC,GAAG,CAAC;QAsB9C,gBAAW,GAAW,6BAAkB,CAAC;QACzC,cAAS,GAAW,2BAAgB,CAAC;QAGrC,aAAQ,GAAoB,IAAI,CAAC;QACjC,eAAU,GAAqB,IAAI,CAAC;QACpC,mBAAc,GAAqB,IAAI,CAAC;QA4WlD,0BAAqB,GAAG,CAAC,KAAY,EAAiB,EAAE;YAEtD,MAAM,KAAK,GAAG,KAAK,CAAC,2BAAgB,CAAC,CAAC;YACtC,IAAI,IAAA,YAAK,EAAC,KAAK,CAAC,EAAE;gBAChB,OAAO,IAAI,CAAC;aACb;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,IAAA,uBAAgB,EAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9E,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1D,CAAC,CAAC;IAmGJ,CAAC;IA1eC,IAAW,MAAM;;QACf,OAAO;YACL,CAAC,EAAE,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,OAAO,mCAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,GAAG,CAAC;YAChE,CAAC,EAAE,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,OAAO,mCAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC;SAClE,CAAC;IACJ,CAAC;IAeD,eAAe;;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,YAAY,mCAAI,CAAC,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,YAAY,mCAAI,CAAC,CAAC;QAEnD,MAAM,UAAU,GAAG,IAAA,6BAAsB,EACvC,IAAA,gBAAO,EAAC,MAAA,IAAI,CAAC,KAAK,0CAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAA,cAAO,EAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EACnF,IAAA,gBAAO,EAAC,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,cAAO,EAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAC9E,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAA,gBAAO,EAAC,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,cAAO,EAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAGlF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACnE,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YAC5B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SAC/C;QACD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,QAAQ;QACN,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO;SACR;QAED,IAAA,2CAAgC,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAG,CAAC,CAAC;QAC5D,IAAA,2CAAgC,EAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,oBAAQ,CAAC,CAAC;QAEtE,QAAQ,CAAC,SAAS,CAChB;YACE,IAAI,EAAE,KAAK;YACX,OAAO,EAAE;gBACP,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC/B,UAAU,EAAE,IAAI,CAAC,WAAW;gBAC5B,QAAQ,EAAE,IAAI,CAAC,SAAS;gBACxB,YAAY,EAAE,0BAAe;gBAC7B,UAAU,EAAE,wBAAa;gBACzB,OAAO,EAAE,oBAAS;gBAClB,aAAa,EAAE,2BAAgB;gBAC/B,QAAQ,EAAE,qBAAU;gBACpB,UAAU,EAAE,uBAAY;gBACxB,GAAG,EAAE,gBAAK;aACA;SACb,EACD,KAAK,CACN,CAAC;QAEF,MAAM,aAAa,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE;YACxC,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC;QACH,aAAa,CAAC,IAAI,GAAG,GAAG,iBAAM,WAAW,IAAI,CAAC,EAAE,gBAAgB,CAAC;QACjE,aAAa,CAAC,SAAS,CACrB;YACE,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SAC1B,EACD,KAAK,CACN,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,IAAI,wBAAU,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACpE,CAAC;IAED,QAAQ;;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,iCAEzB,aAAa,CAAC,IAAI,CAAC,GAAG,KACzB,IAAI,EAAE,IAAI,CAAC,YAAY,EACvB,IAAI,EAAE,IAAI,CAAC,YAAY,KAEzB;YACE,KAAK,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAA,2BAAmB,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACxG,sBAAsB,EAAE,IAAI,CAAC,YAAY;YACzC,GAAG,EAAE,2BAAgB;YACrB,QAAQ,EAAE,IAAI,CAAC,YAAY;YAC3B,kBAAkB,EAAE,IAAI;YACxB,YAAY,EAAE,IAAI;SACnB,CACU,CAAC;QAEd,IAAI,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,0CAAE,OAAO,EAAE;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE;gBAC3D,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;gBAC3C,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;gBACjD,kBAAkB,EAAE,IAAI;gBACxB,SAAS,EAAE,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK;gBAC7B,SAAS,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,SAAS;gBACjC,QAAQ,kBACN,OAAO,EAAE,IAAI,IACV,MAAA,IAAI,CAAC,OAAO,EAAE,0CAAE,KAAK,CACzB;aACF,CAAc,CAAC;YAEhB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;gBAC3C,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;gBACjD,kBAAkB,EAAE,IAAI;gBACxB,SAAS,EAAE,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,0CAAE,IAAI;gBACnC,SAAS,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,SAAS;gBACjC,QAAQ,kBACN,OAAO,EAAE,IAAI,IACV,MAAA,MAAA,IAAI,CAAC,OAAO,EAAE,0CAAE,KAAK,0CAAE,IAAI,CAC/B;aACF,CAAc,CAAC;SACjB;IACH,CAAC;IAED,aAAa;;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,YAAY,CACf,OAAO,EACP;gBACE,CAAC,EAAE,GAAG,EAAE,eAAC,OAAA,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,CAAC,mCAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,GAAG,CAAC,CAAA,EAAA;gBAClE,CAAC,EAAE,GAAG,EAAE,eAAC,OAAA,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,CAAC,mCAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA,EAAA;gBACnE,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBAC9B,WAAW,EAAE,IAAA,2BAAoB,EAAC,IAAI,CAAC,YAAY,CAAC;oBAClD,CAAC,CAAC,IAAI,CAAC,YAAY;oBACnB,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,YAAY;gBACxD,WAAW,EAAE,IAAA,2BAAoB,EAAC,IAAI,CAAC,YAAY,CAAC;oBAClD,CAAC,CAAC,IAAI,CAAC,YAAY;oBACnB,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,YAAY;gBACxD,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,aAAa;gBACnE,UAAU,EAAE,IAAA,YAAK,EAAC,0BAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC7C,QAAQ,EAAE,IAAA,YAAK,EAAC,wBAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACzC,QAAQ,EAAE,IAAI,CAAC,SAAS;gBACxB,YAAY,EAAE,IAAI,CAAC,aAAa;aACjC,EACD,QAAQ,EACR,yBAAc,CAAC,MAAM,CACtB,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACpC,MAAA,IAAI,CAAC,cAAc,0CAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SACzD;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,YAAY,CACf,SAAS,EACT;gBACE,OAAO,EAAE,IAAA,YAAK,EAAC,gCAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChD,CAAC,EAAE,IAAA,YAAK,EAAC,0BAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACpC,CAAC,EAAE,IAAA,YAAK,EAAC,0BAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACpC,IAAI,EAAE,IAAA,YAAK,EAAC,6BAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1C,IAAI,EAAE,CAAA,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,KAAK,0CAAE,IAAI,KAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC/D,SAAS,EAAE,IAAA,YAAK,EAAC,8BAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChD,YAAY,EAAE,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,QAAQ,MAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;gBACxE,KAAK,EAAE,CAAC,KAAY,EAAE,EAAE;;oBACtB,MAAM,KAAK,GAAG,KAAK,CAAC,2BAAgB,CAAC,CAAC;oBACtC,OAAO,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,QAAQ,MAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,cAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtE,CAAC;gBACD,KAAK,EAAE,IAAA,YAAK,EAAC,8BAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;aAC7C,EACD,SAAS,EAET,yBAAc,CAAC,SAAS,CACzB,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SACvC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,aAAa,EAAE;YACjB,IAAI,CAAC,YAAY,CAAC,aAAa,kBAC7B,OAAO,EAAE,IAAA,YAAK,EAAC,gCAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAChD,MAAM,EAAE,CAAC,MAAA,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,IAAI,0CAAE,KAAK,0CAAE,MAAc,KAAI,IAAI,CAAC,iBAAiB,EAAE,EAClF,SAAS,EAAE,CAAC,IACT,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAClC,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;YAC1E,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;YAEhF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;SAC3C;IACH,CAAC;IAED,qBAAqB,CAAC,IAAY,EAAE,IAAU,EAAE,GAAY;QAC1D,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,EAAE;YAEnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,OAAO,EAAE;gBACX,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE;oBACvC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,yBAAc,CAAC,SAAS,CAAC,CAAC;iBAC1G;aACF;SACF;IACH,CAAC;IAED,aAAa;QACX,KAAK,CAAC,aAAa,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,YAAsB,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,SAAS;;QACP,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,MAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,0CAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvG,CAAC;IAGD,UAAU;QACR,OAAO;IACT,CAAC;IAMD,WAAW,CAAC,GAAuB;QACjC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,iBAAiB,EAAE,CAAC;QACtD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,CAAC;IACD,eAAe;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAU,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC;IAES,mBAAmB,CAAC,IAAS;QACrC,MAAM,KAAK,GAAQ,EAAE,CAAC;QACtB,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,KAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAA,CAAC,CAAC;QAChG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,KAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAA,CAAC,CAAC;QAChG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,KAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,CAAA,CAAC,CAAC;QACnG,OAAO,KAAK,CAAC;IACf,CAAC;IAES,mBAAmB;QAC3B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,aAAa,CAAC,KAAY;QACxB,OAAO;YACL,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAW;YAC7D,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAW;SAC9D,CAAC;IACJ,CAAC;IAES,gBAAgB,CAAC,KAAqB;QAC9C,MAAM,GAAG,GAAG,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC/D,OAAO;YACL,IAAI,EAAE,CAAC,KAAY,EAAE,EAAE;gBACrB,OAAO,CACL,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,iBAAM,cAAc,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAClE,KAAK,CAAC,GAAG,iBAAM,cAAc,GAAG,KAAK,CAAC,CACvC,EAAE;oBACH,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,6BAAkB,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,6BAAkB,CAAC,CAAC,EAAE;oBACrF,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,6BAAkB,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,6BAAkB,CAAC,CAAC,EAAE,CACtF,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,QAAwB,QAAQ;;QACxC,MAAM,WAAW,GACf,KAAK,KAAK,QAAQ;YAChB,CAAC,CAAC,MAAA,MAAA,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,KAAI,KAAK,CAAC,0CAAE,KAAK,0CAAE,WAAW;YAClE,CAAC,CAAC,MAAA,MAAA,MAAA,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,KAAI,KAAK,CAAC,0CAAE,KAAK,0CAAG,KAAK,CAAC,0CAAE,WAAW,CAAC;QAChF,OAAO,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,CAAC,YAAY,CAAC;IAC1C,CAAC;IAED,cAAc,CAAC,QAAwB,QAAQ;;QAC7C,MAAM,WAAW,GACf,KAAK,KAAK,QAAQ;YAChB,CAAC,CAAC,MAAA,MAAA,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,KAAI,KAAK,CAAC,0CAAE,KAAK,0CAAE,WAAW;YAClE,CAAC,CAAC,MAAA,MAAA,MAAA,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,KAAI,KAAK,CAAC,0CAAE,KAAK,0CAAG,KAAK,CAAC,0CAAE,WAAW,CAAC;QAChF,OAAO,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,CAAC,YAAY,CAAC;IAC1C,CAAC;IAED,cAAc;;QAEZ,qCACE,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,KAAK,EACf,MAAM,EAAE,IAAI,EACZ,WAAW,EAAE,KAAK,EAClB,UAAU,EAAE,CAAC,EACb,YAAY,EAAE,CAAC,IACZ,IAAI,CAAC,KAAK,CAAC,KAAK,KAEnB,KAAK,kBACH,OAAO,EAAE,IAAI,IACV,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,KAAK,GAE5B,IAAI,kBACF,OAAO,EAAE,IAAI,EACb,cAAc,EAAE,MAAA,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,IAAI,0CAAE,cAAc,mCAAI,EAAE,EAC5D,cAAc,EAAE,MAAA,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,IAAI,0CAAE,cAAc,mCAAI,EAAE,IACzD,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,IAAI,GAE3B,MAAM,kBACJ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,UAAU,EACpB,iBAAiB,EAAE,IAAI,IACpB,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,MAAM,KAE7B;IACJ,CAAC;IAED,aAAa,CAAC,CAAS,EAAE,CAAU;QACjC,OAAO,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,GAAG,CAAC,IAAA,YAAK,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;IAClF,CAAC;IAED,kBAAkB,CAAC,KAAY,EAAE,KAAc;QAC7C,OAAO,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;IACjF,CAAC;IAED,UAAU,CAAC,IAAS;QAElB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GACzG,YAAY,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,IACE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,MAAK,OAAO;YACzB,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,MAAK,OAAO;YACzB,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,MAAK,YAAY;YACnC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,MAAK,MAAM;YACvB,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,MAAK,WAAW;YACjC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,MAAK,YAAY;YACnC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,MAAK,UAAU;YAC/B,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,MAAK,QAAQ;YAC3B,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,MAAK,QAAQ,EAC3B;YACA,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;YACvB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;SACtB;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,uBAAuB,CAAC,KAAY,EAAE,KAAc;QAClD,OAAO,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;IACtF,CAAC;IAED,cAAc,CAAC,KAAY;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,2BAAgB,CAAC,CAAC;QACtC,IAAI,IAAA,YAAK,EAAC,KAAK,CAAC,EAAE;YAChB,OAAO,IAAI,CAAC;SACb;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,IAAA,uBAAgB,EAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAClD,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;IAC1D,CAAC;IAeD,aAAa;;QACX,MAAM,eAAe,GAAwB;YAC3C,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;;gBAClC,IAAI,KAAK,KAAK,8BAAkB,CAAC,MAAM,EAAE;oBACvC,OAAO,IAAI,CAAC,WAAW,CAAC;iBACzB;gBACD,IAAI,KAAK,KAAK,8BAAkB,CAAC,SAAS,EAAE;oBAC1C,OAAO,IAAI,CAAC,SAAS,CAAC;iBACvB;gBAED,MAAM,QAAQ,GAAG,CAAC,8BAAkB,CAAC,SAAS,EAAE,8BAAkB,CAAC,IAAI,CAAC,CAAC;gBACzE,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAE3C,MAAM,IAAI,GAAG,KAAK,CAAC;gBACnB,MAAM,SAAS,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,6BAAkB,CAAC,CAAC;gBAG7C,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAG,6BAAkB,CAAC,IAAG,SAAS,CAAA,EAAA,CAAC,KAAK,SAAS,EAAE;oBACrF,OAAO,IAAI,CAAC,WAAW,CAAC;iBACzB;gBAED,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAG,6BAAkB,CAAC,IAAG,SAAS,CAAA,EAAA,CAAC,KAAK,SAAS,EAAE;oBACrF,OAAO,IAAI,CAAC,SAAS,CAAC;iBACvB;gBAKD,MAAM,eAAe,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAG,6BAAkB,CAAC,IAAG,SAAS,CAAA,EAAA,CAAC,CAAC;gBAChG,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;oBAC5B,OAAO,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,cAAc,GAAG,SAAS,0CAAE,QAAQ,CAAC;iBAC9D;gBACD,OAAO,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,cAAc,GAAG,SAAS,0CAAE,QAAQ,CAAC;YAC/D,CAAC;SACF,CAAC;QACF,MAAM,YAAY,GAAG,MAAC,MAAA,IAAI,CAAC,KAAK,0CAAE,eAAsD,0CAAE,MAAM,CAAC;QAEjG,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,kBAAkB,GAAG,IAAA,uBAAe,EACxC,+BAAsB,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,EACzD,IAAA,2BAAmB,EAAC,8BAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CACxD,CAAC;YAEF,IAAI,kBAAkB,CAAC,MAAM,IAAK,kBAAkB,CAAC,MAA+B,CAAC,IAAI,EAAE;gBACzF,kBAAkB,CAAC,MAAM,GAAG,IAAA,iCAAkB,EAC5C,IAAI,CAAC,QAAQ,EACb,kBAAkB,CAAC,MAA8B,CAClD,CAAC;aACH;YAED,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;SACtD;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAChC,IAAA,uBAAe,EAAC,+BAAsB,CAAC,KAAK,EAAE,EAAE,IAAA,2BAAmB,EAAC,8BAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAC3G,CAAC;YAEF,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,IAAI,CAAC,cAAc,CAAC,kBAAkB,CACpC,IAAA,uBAAe,EAAC,+BAAsB,CAAC,KAAK,EAAE,EAAE,IAAA,2BAAmB,EAAC,8BAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAC/G,CAAC;aACH;SACF;IACH,CAAC;IAED,mBAAmB;QACjB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,cAAc;QAEZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,mBAAmB;QAEjB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,kBAAkB;QAEhB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,oBAAoB;IAEpB,CAAC;IAED,sBAAsB;IAEtB,CAAC;IAGS,mBAAmB,CAAC,KAAY,EAAE,KAAa;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;;AAvfH,sCAwfC;AApfiB,kBAAI,mCACf,wBAAU,CAAC,IAAI,KAClB,CAAC,8BAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,8BAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,wBAAY,CAAC,GAAG,EAAE,EAClF,CAAC,8BAAkB,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,8BAAkB,CAAC,SAAS,EAAE,IAAI,EAAE,wBAAY,CAAC,IAAI,EAAE,IAC/F;AAkfJ,MAAa,SAAU,SAAQ,aAA6B;IAA5D;;QAEE,SAAI,GAAG,qBAAc,CAAC,GAAG,CAAC;IAC5B,CAAC;;AAHD,8BAGC;AAFiB,cAAI,GAAW,qBAAc,CAAC,GAAG,CAAC","file":"pie.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { isValid } from '@visactor/vutils';\nimport { DataView } from '@visactor/vdataset';\nimport {\n AttributeLevel,\n ARC_START_ANGLE,\n ARC_END_ANGLE,\n ARC_RATIO,\n ARC_MIDDLE_ANGLE,\n ARC_RADIAN,\n ARC_QUADRANT,\n ARC_K,\n PREFIX,\n DEFAULT_LABEL_X,\n DEFAULT_LABEL_Y,\n DEFAULT_LABEL_TEXT,\n ARC_LABEL_POINT_BX,\n ARC_LABEL_POINT_BY,\n ARC_LABEL_POINT_CX,\n ARC_LABEL_POINT_CY,\n DEFAULT_LABEL_LIMIT,\n DEFAULT_LABEL_ALIGN,\n DEFAULT_LABEL_VISIBLE,\n POLAR_START_RADIAN,\n POLAR_END_RADIAN,\n DEFAULT_DATA_INDEX,\n ChartEvent,\n DEFAULT_DATA_KEY\n} from '../../constant';\nimport type { Maybe, IPoint, Datum, StateValueType } from '../../typings';\nimport {\n degrees,\n field,\n isNil,\n isSpecValueWithScale,\n normalizeStartEndAngle,\n polarToCartesian,\n radians\n} from '../../util';\nimport type { IModelLayoutOption } from '../../model/interface';\nimport { PolarSeries } from '../polar/polar';\nimport type { IMark } from '../../mark/interface';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport type { IArcMark } from '../../mark/arc';\nimport type { ITextMark } from '../../mark/text';\nimport type { IPathMark } from '../../mark/path';\nimport type { IArcSeries, SeriesMarkMap } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { SeriesMarkNameEnum } from '../interface';\nimport { SeriesTypeEnum } from '../interface/type';\nimport type { IPieOpt } from '../../data/transforms/pie';\n// eslint-disable-next-line no-duplicate-imports\nimport { pie } from '../../data/transforms/pie';\nimport { arcLabel } from '../../layout/label/arc-label';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport type { IPieAnimationParams, PieAppearPreset } from './animation/animation';\nimport { animationConfig, shouldDoMorph, userAnimationConfig } from '../../animation/utils';\nimport { AnimationStateEnum } from '../../animation/interface';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport type { IArcLabelSpec, IPieSeriesSpec, IPieSeriesTheme } from './interface';\nimport { SeriesData } from '../base/series-data';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { IAnimationTypeConfig } from '@visactor/vgrammar';\nimport { centerOffsetConfig } from './animation/centerOffset';\nimport { BaseSeries } from '../base/base-series';\nimport { VChart } from '../../core/vchart';\nimport { PathMark } from '../../mark/path';\nimport { TextMark } from '../../mark/text';\nimport { ArcMark } from '../../mark/arc';\n\nVChart.useMark([PathMark, TextMark, ArcMark]);\n\ntype IBasePieSeriesSpec = Omit<IPieSeriesSpec, 'type'> & { type: string };\n\nexport class BasePieSeries<T extends IBasePieSeriesSpec> extends PolarSeries<T> implements IArcSeries {\n protected _pieMarkName: SeriesMarkNameEnum = SeriesMarkNameEnum.pie;\n protected _pieMarkType: MarkTypeEnum = MarkTypeEnum.arc;\n\n static readonly mark: SeriesMarkMap = {\n ...BaseSeries.mark,\n [SeriesMarkNameEnum.pie]: { name: SeriesMarkNameEnum.pie, type: MarkTypeEnum.arc },\n [SeriesMarkNameEnum.labelLine]: { name: SeriesMarkNameEnum.labelLine, type: MarkTypeEnum.path }\n };\n\n protected _viewDataLabel!: SeriesData;\n\n // 饼图渲染不依赖于极坐标系轴,因此由 series 自己存储相关配置信息\n protected _center!: IPoint | null;\n public get center(): IPoint {\n return {\n x: this._spec?.centerX ?? this._region.getLayoutRect().width / 2,\n y: this._spec?.centerY ?? this._region.getLayoutRect().height / 2\n };\n }\n protected _centerOffset!: number;\n\n protected _cornerRadius!: number;\n\n protected _startAngle: number = POLAR_START_RADIAN;\n protected _endAngle: number = POLAR_END_RADIAN;\n protected _padAngle!: number;\n\n protected _pieMark: IArcMark | null = null;\n protected _labelMark: ITextMark | null = null;\n protected _labelLineMark: IPathMark | null = null;\n\n protected declare _theme: Maybe<IPieSeriesTheme>;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this._centerOffset = this._spec?.centerOffset ?? 0;\n this._cornerRadius = this._spec?.cornerRadius ?? 0;\n\n const normalized = normalizeStartEndAngle(\n isValid(this._spec?.startAngle) ? radians(this._spec.startAngle) : this._startAngle,\n isValid(this._spec?.endAngle) ? radians(this._spec.endAngle) : this._endAngle\n );\n this._startAngle = normalized.startAngle;\n this._endAngle = normalized.endAngle;\n this._padAngle = isValid(this._spec?.padAngle) ? radians(this._spec.padAngle) : 0;\n\n // 值信息给角度,angleField 是为了兼容小组件用法,因为 spec 改造前已经开放了\n this.setAngleField(this._spec.valueField || this._spec.angleField);\n if (this._spec.categoryField) {\n this.setSeriesField(this._spec.categoryField);\n }\n this._radiusField = [];\n }\n\n initData() {\n super.initData();\n\n const viewData = this.getViewData();\n if (!viewData) {\n return;\n }\n\n registerDataSetInstanceTransform(this._dataSet, 'pie', pie);\n registerDataSetInstanceTransform(this._dataSet, 'arcLabel', arcLabel);\n\n viewData.transform(\n {\n type: 'pie',\n options: {\n angleField: this._angleField[0],\n startAngle: this._startAngle,\n endAngle: this._endAngle,\n asStartAngle: ARC_START_ANGLE,\n asEndAngle: ARC_END_ANGLE,\n asRatio: ARC_RATIO,\n asMiddleAngle: ARC_MIDDLE_ANGLE,\n asRadian: ARC_RADIAN,\n asQuadrant: ARC_QUADRANT,\n asK: ARC_K\n } as IPieOpt\n },\n false\n );\n\n const viewDataLabel = new DataView(this._dataSet);\n viewDataLabel.parse([this.getViewData()], {\n type: 'dataview'\n });\n viewDataLabel.name = `${PREFIX}_series_${this.id}_viewDataLabel`;\n viewDataLabel.transform(\n {\n type: 'arcLabel',\n options: { series: this }\n },\n false\n );\n\n this._viewDataLabel = new SeriesData(this._option, viewDataLabel);\n }\n\n initMark(): void {\n this._pieMark = this._createMark(\n {\n ...BasePieSeries.mark.pie,\n name: this._pieMarkName,\n type: this._pieMarkType\n },\n {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig(this.type, this._spec)),\n defaultMorphElementKey: this._seriesField,\n key: DEFAULT_DATA_KEY,\n groupKey: this._seriesField,\n skipBeforeLayouted: true,\n isSeriesMark: true\n }\n ) as IArcMark;\n\n if (this._spec?.label?.visible) {\n const spec = this.getSpec();\n this._labelMark = this._createMark(BasePieSeries.mark.label, {\n dataView: this._viewDataLabel.getDataView(),\n dataProductId: this._viewDataLabel.getProductId(),\n skipBeforeLayouted: true,\n themeSpec: this._theme?.label,\n support3d: spec?.label?.support3d,\n markSpec: {\n visible: true,\n ...this.getSpec()?.label\n }\n }) as ITextMark;\n\n this._labelLineMark = this._createMark(BasePieSeries.mark.labelLine, {\n dataView: this._viewDataLabel.getDataView(),\n dataProductId: this._viewDataLabel.getProductId(),\n skipBeforeLayouted: true,\n themeSpec: this._theme?.label?.line,\n support3d: spec?.label?.support3d,\n markSpec: {\n visible: true,\n ...this.getSpec()?.label?.line\n }\n }) as ITextMark;\n }\n }\n\n initMarkStyle(): void {\n const pieMark = this._pieMark;\n if (pieMark) {\n this.setMarkStyle(\n pieMark,\n {\n x: () => this._center?.x ?? this._region.getLayoutRect().width / 2,\n y: () => this._center?.y ?? this._region.getLayoutRect().height / 2,\n fill: this.getColorAttribute(),\n outerRadius: isSpecValueWithScale(this._outerRadius)\n ? this._outerRadius\n : () => this.computeLayoutRadius() * this._outerRadius,\n innerRadius: isSpecValueWithScale(this._innerRadius)\n ? this._innerRadius\n : () => this.computeLayoutRadius() * this._innerRadius,\n cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,\n startAngle: field(ARC_START_ANGLE).bind(this),\n endAngle: field(ARC_END_ANGLE).bind(this),\n padAngle: this._padAngle,\n centerOffset: this._centerOffset\n },\n 'normal',\n AttributeLevel.Series\n );\n\n this._trigger.registerMark(pieMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(pieMark);\n }\n\n const labelMark = this._labelMark;\n if (labelMark) {\n this.setMarkStyle(\n labelMark,\n {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n x: field(DEFAULT_LABEL_X).bind(this),\n y: field(DEFAULT_LABEL_Y).bind(this),\n text: field(DEFAULT_LABEL_TEXT).bind(this),\n fill: this._spec.label?.style?.fill || this.getColorAttribute(),\n textAlign: field(DEFAULT_LABEL_ALIGN).bind(this),\n textBaseline: this._spec.label?.position === 'inside' ? 'middle' : 'top',\n angle: (datum: Datum) => {\n const angle = datum[ARC_MIDDLE_ANGLE];\n return this._spec.label?.position === 'inside' ? degrees(angle) : 0;\n },\n limit: field(DEFAULT_LABEL_LIMIT).bind(this)\n },\n undefined,\n // 标签属性基于用户配置生成,样式优先级应当为用户级\n AttributeLevel.User_Mark\n );\n\n this._trigger.registerMark(labelMark);\n }\n\n const labelLineMark = this._labelLineMark;\n if (labelLineMark) {\n this.setMarkStyle(labelLineMark, {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n stroke: (this._spec.label?.line?.style?.stroke as any) || this.getColorAttribute(),\n lineWidth: 1,\n ...this.generateLinePath('normal')\n });\n this.setMarkStyle(labelLineMark, this.generateLinePath('hover'), 'hover');\n this.setMarkStyle(labelLineMark, this.generateLinePath('selected'), 'selected');\n\n this._trigger.registerMark(labelLineMark);\n }\n }\n\n initMarkStyleWithSpec(mark?: IMark, spec?: any, key?: string): void {\n super.initMarkStyleWithSpec(mark, spec, key);\n if (mark.name === this._pieMarkName) {\n // radius 配置需要额外处理比例值\n const pieSpec = this.getSpec()[mark.name];\n if (pieSpec) {\n for (const state in pieSpec.state || {}) {\n this.setMarkStyle(mark, this.generateRadiusStyle(pieSpec.state[state]), state, AttributeLevel.User_Mark);\n }\n }\n }\n }\n\n afterInitMark(): void {\n super.afterInitMark();\n this._trigger.setStateKeys([this._seriesField as string, ...this._radiusField]);\n }\n\n initEvent(): void {\n super.initEvent();\n this._viewDataLabel.getDataView()?.target.addListener('change', this.viewDataLabelUpdate.bind(this));\n }\n\n // 饼图不支持分组\n initGroups() {\n return;\n }\n\n /**\n * @override\n * @param ctx\n */\n onLayoutEnd(ctx: IModelLayoutOption): void {\n this._viewDataLabel.getDataView().reRunAllTransform();\n this.onMarkPositionUpdate();\n super.onLayoutEnd(ctx);\n }\n\n getDimensionField(): string[] {\n return this._seriesField ? [this._seriesField] : [];\n }\n getMeasureField(): string[] {\n return this._angleField;\n }\n\n private viewDataLabelUpdate() {\n this.event.emit(ChartEvent.viewDataLabelUpdate, { model: this });\n this._viewDataLabel.updateData();\n }\n\n protected generateRadiusStyle(spec: any) {\n const style: any = {};\n spec?.outerRadius && (style.outerRadius = () => this.computeLayoutRadius() * spec?.outerRadius);\n spec?.innerRadius && (style.innerRadius = () => this.computeLayoutRadius() * spec?.innerRadius);\n spec?.cornerRadius && (style.cornerRadius = () => this.computeLayoutRadius() * spec?.cornerRadius);\n return style;\n }\n\n protected computeLayoutRadius() {\n const { width, height } = this._region.getLayoutRect();\n return Math.min(width / 2, height / 2);\n }\n\n computeCenter(datum: Datum): IPoint {\n return {\n x: this._pieMark.getAttribute('x', datum, 'normal') as number,\n y: this._pieMark.getAttribute('y', datum, 'normal') as number\n };\n }\n\n protected generateLinePath(state: StateValueType) {\n const key = state === 'normal' ? 'POINT' : state.toUpperCase();\n return {\n path: (datum: Datum) => {\n return (\n `M${Math.round(datum[`${PREFIX}_ARC_LABEL_${key}_AX`])},${Math.round(\n datum[`${PREFIX}_ARC_LABEL_${key}_AY`]\n )}` +\n ` L${Math.round(datum[ARC_LABEL_POINT_BX])},${Math.round(datum[ARC_LABEL_POINT_BY])}` +\n ` L${Math.round(datum[ARC_LABEL_POINT_CX])},${Math.round(datum[ARC_LABEL_POINT_CY])}`\n );\n }\n };\n }\n\n getRadius(state: StateValueType = 'normal'): number {\n const styleRadius =\n state === 'normal'\n ? this.getSpec()[this._pieMark?.name || 'pie']?.style?.outerRadius\n : this.getSpec()[this._pieMark?.name || 'pie']?.state?.[state]?.outerRadius;\n return styleRadius ?? this._outerRadius;\n }\n\n getInnerRadius(state: StateValueType = 'normal'): number {\n const styleRadius =\n state === 'normal'\n ? this.getSpec()[this._pieMark?.name || 'pie']?.style?.innerRadius\n : this.getSpec()[this._pieMark?.name || 'pie']?.state?.[state]?.innerRadius;\n return styleRadius ?? this._innerRadius;\n }\n\n getLabelConfig(): IArcLabelSpec {\n // TODO: 转换 series spec\n return {\n visible: true,\n position: 'outside',\n showRule: 'all',\n rotate: true,\n coverEnable: false,\n spaceWidth: 5,\n layoutArcGap: 6,\n ...this._spec.label,\n\n style: {\n visible: true,\n ...this._spec.label?.style\n },\n line: {\n visible: true,\n line1MinLength: this._spec.label?.line?.line1MinLength ?? 20,\n line2MinLength: this._spec.label?.line?.line2MinLength ?? 10,\n ...this._spec.label?.line\n },\n layout: {\n align: 'arc',\n strategy: 'priority',\n tangentConstraint: true,\n ...this._spec.label?.layout\n }\n };\n }\n\n computeRadius(r: number, k?: number): number {\n return this.computeLayoutRadius() * r * (isNil(k) ? 1 : k) + this._centerOffset;\n }\n\n computeDatumRadius(datum: Datum, state?: string): number {\n return this.computeLayoutRadius() * this.getRadius(state) + this._centerOffset;\n }\n\n updateSpec(spec: any) {\n // super updateSpec 会执行 setAttrFromSpec 所以先缓存比对值\n const originalSpec = this._originalSpec;\n const { centerX, centerY, centerOffset, radius, innerRadius, cornerRadius, startAngle, endAngle, padAngle } =\n originalSpec;\n const result = super.updateSpec(spec);\n if (\n spec?.centerX !== centerX ||\n spec?.centerY !== centerY ||\n spec?.centerOffset !== centerOffset ||\n spec?.radius !== radius ||\n spec?.innerRadius !== innerRadius ||\n spec?.cornerRadius !== cornerRadius ||\n spec?.startAngle !== startAngle ||\n spec?.endAngle !== endAngle ||\n spec?.padAngle !== padAngle\n ) {\n result.reRender = true;\n result.change = true;\n }\n return result;\n }\n\n computeDatumInnerRadius(datum: Datum, state?: string): number {\n return this.computeLayoutRadius() * this.getInnerRadius(state) + this._centerOffset;\n }\n\n dataToPosition(datum: Datum): IPoint | null {\n const angle = datum[ARC_MIDDLE_ANGLE];\n if (isNil(angle)) {\n return null;\n }\n const radius = this.computeDatumRadius(datum);\n const center = this.computeCenter(datum);\n const delta = polarToCartesian({ angle, radius });\n return { x: center.x + delta.x, y: center.y + delta.y };\n }\n\n dataToCentralPosition = (datum: Datum): IPoint | null => {\n // 和 PieSeries.dataToPosition 实现不同,这里考虑了美观性,返回的位置是曲边梯形的中心\n const angle = datum[ARC_MIDDLE_ANGLE];\n if (isNil(angle)) {\n return null;\n }\n const radius = this.computeDatumRadius(datum);\n const innerRadius = this.computeDatumInnerRadius(datum);\n const center = this.computeCenter(datum);\n const delta = polarToCartesian({ angle, radius: (radius + innerRadius) / 2 });\n return { x: center.x + delta.x, y: center.y + delta.y };\n };\n\n initAnimation() {\n const animationParams: IPieAnimationParams = {\n growFrom: (datum, element, state) => {\n if (state === AnimationStateEnum.appear) {\n return this._startAngle;\n }\n if (state === AnimationStateEnum.disappear) {\n return this._endAngle;\n }\n\n const outState = [AnimationStateEnum.disappear, AnimationStateEnum.exit];\n const markElements = element.mark.elements;\n\n const data = datum;\n const dataIndex = data?.[DEFAULT_DATA_INDEX];\n\n // 当前 mark 在上个状态是否处于第一个\n if (markElements.find(e => e.data[0]?.[DEFAULT_DATA_INDEX] < dataIndex) === undefined) {\n return this._startAngle;\n }\n // 当前 mark 在上个状态是否处于最后一个\n if (markElements.find(e => e.data[0]?.[DEFAULT_DATA_INDEX] > dataIndex) === undefined) {\n return this._endAngle;\n }\n\n // 扇形不在边缘时,获取扇形生长点:获取相邻状态下相邻扇形的边缘\n // @ts-ignore\n // TODO: findLast is a new prototype function, we will later polyfill it in v-util.\n const prevMarkElement = markElements.findLast(e => e.data[0]?.[DEFAULT_DATA_INDEX] < dataIndex);\n if (outState.includes(state)) {\n return prevMarkElement?.getGraphicItem().nextAttrs?.endAngle;\n }\n return prevMarkElement?.getGraphicItem().prevAttrs?.endAngle;\n }\n };\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<PieAppearPreset>)?.preset;\n\n if (this._pieMark) {\n const pieAnimationConfig = animationConfig(\n DEFAULT_MARK_ANIMATION.pie(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.pie, this._spec)\n );\n\n if (pieAnimationConfig.normal && (pieAnimationConfig.normal as IAnimationTypeConfig).type) {\n pieAnimationConfig.normal = centerOffsetConfig(\n this._pieMark,\n pieAnimationConfig.normal as IAnimationTypeConfig\n );\n }\n\n this._pieMark.setAnimationConfig(pieAnimationConfig);\n }\n\n if (this._labelMark) {\n this._labelMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.label, this._spec))\n );\n\n if (this._labelLineMark) {\n this._labelLineMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.labelLine, this._spec))\n );\n }\n }\n }\n\n getDefaultShapeType(): string {\n return 'square';\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 setValueFieldToStack(): void {\n // do nothing\n }\n\n setValueFieldToPercent(): void {\n //do nothing\n }\n\n // make sure this function fast\n protected _noAnimationDataKey(datum: Datum, index: number) {\n return index;\n }\n}\n\nexport class PieSeries extends BasePieSeries<IPieSeriesSpec> implements IArcSeries {\n static readonly type: string = SeriesTypeEnum.pie;\n type = SeriesTypeEnum.pie;\n}\n"]}
@@ -39,10 +39,10 @@ class RadarSeries extends rose_like_1.RoseLikeSeries {
39
39
  areaMark && (this.setMarkStyle(areaMark, {
40
40
  x: this.dataToPositionX.bind(this),
41
41
  y: this.dataToPositionY.bind(this),
42
- x1: datum => datum && this.angleAxisHelper && this.radiusAxisHelper ? this.valueToPosition(this.getDatumPositionValues(datum, this._angleField), this._stack ? this.getDatumPositionValues(datum, this._innerRadiusField) : 0).x : Number.NaN,
42
+ x1: datum => datum && this.angleAxisHelper && this.radiusAxisHelper ? this.valueToPosition(this.getDatumPositionValues(datum, this._angleField), this._stack ? this.getDatumPositionValues(datum, this._innerRadiusField) : this.radiusScale.domain()[0]).x : Number.NaN,
43
43
  y1: datum => {
44
44
  if (!datum || !this.angleAxisHelper || !this.radiusAxisHelper) return Number.NaN;
45
- return this.valueToPosition(this.getDatumPositionValues(datum, this._angleField), this._stack ? this.getDatumPositionValues(datum, this._innerRadiusField) : 0).y;
45
+ return this.valueToPosition(this.getDatumPositionValues(datum, this._angleField), this._stack ? this.getDatumPositionValues(datum, this._innerRadiusField) : this.radiusScale.domain()[0]).y;
46
46
  },
47
47
  fill: this.getColorAttribute(),
48
48
  curveType: typings_1.DEFAULT_LINEAR_CLOSED_INTERPOLATE
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/radar/radar.ts"],"names":[],"mappings":"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","file":"radar.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { LineLikeSeriesMixin, lineLikeSeriesMarkMap } from '../mixin/line-mixin';\nimport type { ILineMark } from '../../mark/line';\nimport type { IMark, IMarkProgressiveConfig } from '../../mark/interface';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport { AttributeLevel, POLAR_START_RADIAN } from '../../constant';\nimport { DEFAULT_LINEAR_CLOSED_INTERPOLATE } from '../../typings';\nimport type { Datum, IPoint, IPolarPoint, Maybe } from '../../typings';\nimport { isValid, radians } from '../../util';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface';\nimport { mixin } from '@visactor/vutils';\nimport type { IRadarSeriesSpec, IRadarSeriesTheme } from './interface';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport type { IRadarAnimationParams, RadarAppearPreset } from './animation';\nimport { RoseLikeSeries } from '../polar/rose-like';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { IAreaMark } from '../../mark/area';\nimport { BaseSeries } from '../base/base-series';\nimport { VChart } from '../../core/vchart';\nimport { AreaMark } from '../../mark/area';\nimport { LineMark } from '../../mark/line';\nimport { SymbolMark } from '../../mark/symbol';\nimport { TextMark } from '../../mark/text';\n\nVChart.useMark([AreaMark, LineMark, SymbolMark, TextMark]);\n\nexport interface RadarSeries\n extends Pick<\n LineLikeSeriesMixin,\n | 'initLineMark'\n | 'initSymbolMark'\n | 'initLabelMarkStyle'\n | 'initLineMarkStyle'\n | 'initSymbolMarkStyle'\n | '_lineMark'\n | '_symbolMark'\n >,\n RoseLikeSeries<IRadarSeriesSpec> {}\n\nexport class RadarSeries extends RoseLikeSeries<IRadarSeriesSpec> {\n static readonly type: string = SeriesTypeEnum.radar;\n type = SeriesTypeEnum.radar;\n\n static readonly mark: SeriesMarkMap = {\n ...BaseSeries.mark,\n ...lineLikeSeriesMarkMap,\n [SeriesMarkNameEnum.area]: { name: SeriesMarkNameEnum.area, type: MarkTypeEnum.area }\n };\n\n protected declare _theme: Maybe<IRadarSeriesTheme>;\n\n private _areaMark: ILineMark;\n\n initGroups() {\n // do nothing\n }\n\n initMark(): void {\n const progressive = {\n progressiveStep: this._spec.progressiveStep,\n progressiveThreshold: this._spec.progressiveThreshold,\n large: this._spec.large,\n largeThreshold: this._spec.largeThreshold\n };\n\n const isAreaVisible = this._spec.area?.visible !== false && this._spec.area?.style?.visible !== false;\n const seriesMark = this._spec.seriesMark ?? 'area';\n this.initAreaMark(progressive, isAreaVisible && seriesMark === 'area');\n this.initLineMark(progressive, seriesMark === 'line' || (seriesMark === 'area' && !isAreaVisible));\n this.initSymbolMark(progressive, seriesMark === 'point');\n }\n\n initMarkStyle(): void {\n this.initAreaMarkStyle();\n this.initLineMarkStyle();\n this.initSymbolMarkStyle();\n }\n\n initAreaMark(progressive: IMarkProgressiveConfig, isSeriesMark: boolean) {\n this._areaMark = this._createMark(RadarSeries.mark.area, {\n progressive,\n isSeriesMark\n }) as IAreaMark;\n }\n\n initAreaMarkStyle() {\n const areaMark = this._areaMark;\n if (areaMark) {\n this.setMarkStyle(\n areaMark,\n {\n x: this.dataToPositionX.bind(this),\n y: this.dataToPositionY.bind(this),\n x1: (datum: Datum) => {\n if (!datum || !this.angleAxisHelper || !this.radiusAxisHelper) {\n return Number.NaN;\n }\n\n return this.valueToPosition(\n this.getDatumPositionValues(datum, this._angleField),\n this._stack ? this.getDatumPositionValues(datum, this._innerRadiusField) : 0\n ).x;\n },\n y1: (datum: Datum) => {\n if (!datum || !this.angleAxisHelper || !this.radiusAxisHelper) {\n return Number.NaN;\n }\n const value = this.valueToPosition(\n this.getDatumPositionValues(datum, this._angleField),\n this._stack ? this.getDatumPositionValues(datum, this._innerRadiusField) : 0\n ).y;\n return value;\n },\n fill: this.getColorAttribute(),\n curveType: DEFAULT_LINEAR_CLOSED_INTERPOLATE\n },\n 'normal',\n AttributeLevel.Series\n );\n this._trigger.registerMark(areaMark);\n this._tooltipHelper?.activeTriggerSet.dimension.add(areaMark);\n }\n }\n\n initAnimation() {\n const animationParams: IRadarAnimationParams = {\n center: () => this.angleAxisHelper?.center(),\n radius: () => {\n const rect = this.getLayoutRect();\n return Math.min(rect.width, rect.height);\n },\n startAngle: radians(this._spec.startAngle) ?? POLAR_START_RADIAN,\n pointToCoord: (point: IPoint) => this.angleAxisHelper?.pointToCoord(point),\n coordToPoint: (coord: IPolarPoint) => this.angleAxisHelper.coordToPoint(coord)\n };\n const appearPreset = ((this._spec?.animationAppear as IStateAnimateSpec<RadarAppearPreset>)?.preset ??\n 'clipIn') as RadarAppearPreset;\n\n if (appearPreset === 'clipIn') {\n if (this._rootMark) {\n this._rootMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.radarGroup(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.group, this._spec)\n )\n );\n }\n }\n\n const markAnimationMap: [IMark, keyof typeof DEFAULT_MARK_ANIMATION][] = [\n [this._areaMark, 'radar'],\n [this._lineMark, 'radar'],\n [this._symbolMark, 'radarSymbol']\n ];\n\n // 为 mark 添加动画\n markAnimationMap.forEach(([mark, animation]) => {\n if (isValid(mark)) {\n const getAnimation = DEFAULT_MARK_ANIMATION[animation];\n mark.setAnimationConfig(\n animationConfig(getAnimation(animationParams, appearPreset), userAnimationConfig(mark.name, this._spec))\n );\n }\n });\n }\n}\n\nmixin(RadarSeries, LineLikeSeriesMixin);\n"]}
1
+ {"version":3,"sources":["../src/series/radar/radar.ts"],"names":[],"mappings":"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","file":"radar.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { LineLikeSeriesMixin, lineLikeSeriesMarkMap } from '../mixin/line-mixin';\nimport type { ILineMark } from '../../mark/line';\nimport type { IMark, IMarkProgressiveConfig } from '../../mark/interface';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport { AttributeLevel, POLAR_START_RADIAN } from '../../constant';\nimport { DEFAULT_LINEAR_CLOSED_INTERPOLATE } from '../../typings';\nimport type { Datum, IPoint, IPolarPoint, Maybe } from '../../typings';\nimport { isValid, radians } from '../../util';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface';\nimport { mixin } from '@visactor/vutils';\nimport type { IRadarSeriesSpec, IRadarSeriesTheme } from './interface';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport type { IRadarAnimationParams, RadarAppearPreset } from './animation';\nimport { RoseLikeSeries } from '../polar/rose-like';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { IAreaMark } from '../../mark/area';\nimport { BaseSeries } from '../base/base-series';\nimport { VChart } from '../../core/vchart';\nimport { AreaMark } from '../../mark/area';\nimport { LineMark } from '../../mark/line';\nimport { SymbolMark } from '../../mark/symbol';\nimport { TextMark } from '../../mark/text';\n\nVChart.useMark([AreaMark, LineMark, SymbolMark, TextMark]);\n\nexport interface RadarSeries\n extends Pick<\n LineLikeSeriesMixin,\n | 'initLineMark'\n | 'initSymbolMark'\n | 'initLabelMarkStyle'\n | 'initLineMarkStyle'\n | 'initSymbolMarkStyle'\n | '_lineMark'\n | '_symbolMark'\n >,\n RoseLikeSeries<IRadarSeriesSpec> {}\n\nexport class RadarSeries extends RoseLikeSeries<IRadarSeriesSpec> {\n static readonly type: string = SeriesTypeEnum.radar;\n type = SeriesTypeEnum.radar;\n\n static readonly mark: SeriesMarkMap = {\n ...BaseSeries.mark,\n ...lineLikeSeriesMarkMap,\n [SeriesMarkNameEnum.area]: { name: SeriesMarkNameEnum.area, type: MarkTypeEnum.area }\n };\n\n protected declare _theme: Maybe<IRadarSeriesTheme>;\n\n private _areaMark: ILineMark;\n\n initGroups() {\n // do nothing\n }\n\n initMark(): void {\n const progressive = {\n progressiveStep: this._spec.progressiveStep,\n progressiveThreshold: this._spec.progressiveThreshold,\n large: this._spec.large,\n largeThreshold: this._spec.largeThreshold\n };\n\n const isAreaVisible = this._spec.area?.visible !== false && this._spec.area?.style?.visible !== false;\n const seriesMark = this._spec.seriesMark ?? 'area';\n this.initAreaMark(progressive, isAreaVisible && seriesMark === 'area');\n this.initLineMark(progressive, seriesMark === 'line' || (seriesMark === 'area' && !isAreaVisible));\n this.initSymbolMark(progressive, seriesMark === 'point');\n }\n\n initMarkStyle(): void {\n this.initAreaMarkStyle();\n this.initLineMarkStyle();\n this.initSymbolMarkStyle();\n }\n\n initAreaMark(progressive: IMarkProgressiveConfig, isSeriesMark: boolean) {\n this._areaMark = this._createMark(RadarSeries.mark.area, {\n progressive,\n isSeriesMark\n }) as IAreaMark;\n }\n\n initAreaMarkStyle() {\n const areaMark = this._areaMark;\n if (areaMark) {\n this.setMarkStyle(\n areaMark,\n {\n x: this.dataToPositionX.bind(this),\n y: this.dataToPositionY.bind(this),\n x1: (datum: Datum) => {\n if (!datum || !this.angleAxisHelper || !this.radiusAxisHelper) {\n return Number.NaN;\n }\n return this.valueToPosition(\n this.getDatumPositionValues(datum, this._angleField),\n this._stack ? this.getDatumPositionValues(datum, this._innerRadiusField) : this.radiusScale.domain()[0]\n ).x;\n },\n y1: (datum: Datum) => {\n if (!datum || !this.angleAxisHelper || !this.radiusAxisHelper) {\n return Number.NaN;\n }\n\n const value = this.valueToPosition(\n this.getDatumPositionValues(datum, this._angleField),\n this._stack ? this.getDatumPositionValues(datum, this._innerRadiusField) : this.radiusScale.domain()[0]\n ).y;\n return value;\n },\n fill: this.getColorAttribute(),\n curveType: DEFAULT_LINEAR_CLOSED_INTERPOLATE\n },\n 'normal',\n AttributeLevel.Series\n );\n this._trigger.registerMark(areaMark);\n this._tooltipHelper?.activeTriggerSet.dimension.add(areaMark);\n }\n }\n\n initAnimation() {\n const animationParams: IRadarAnimationParams = {\n center: () => this.angleAxisHelper?.center(),\n radius: () => {\n const rect = this.getLayoutRect();\n return Math.min(rect.width, rect.height);\n },\n startAngle: radians(this._spec.startAngle) ?? POLAR_START_RADIAN,\n pointToCoord: (point: IPoint) => this.angleAxisHelper?.pointToCoord(point),\n coordToPoint: (coord: IPolarPoint) => this.angleAxisHelper.coordToPoint(coord)\n };\n const appearPreset = ((this._spec?.animationAppear as IStateAnimateSpec<RadarAppearPreset>)?.preset ??\n 'clipIn') as RadarAppearPreset;\n\n if (appearPreset === 'clipIn') {\n if (this._rootMark) {\n this._rootMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.radarGroup(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.group, this._spec)\n )\n );\n }\n }\n\n const markAnimationMap: [IMark, keyof typeof DEFAULT_MARK_ANIMATION][] = [\n [this._areaMark, 'radar'],\n [this._lineMark, 'radar'],\n [this._symbolMark, 'radarSymbol']\n ];\n\n // 为 mark 添加动画\n markAnimationMap.forEach(([mark, animation]) => {\n if (isValid(mark)) {\n const getAnimation = DEFAULT_MARK_ANIMATION[animation];\n mark.setAnimationConfig(\n animationConfig(getAnimation(animationParams, appearPreset), userAnimationConfig(mark.name, this._spec))\n );\n }\n });\n }\n}\n\nmixin(RadarSeries, LineLikeSeriesMixin);\n"]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.RangeColumnSeries = exports.DefaultBandWidth = void 0;
6
6
 
7
- const bar_1 = require("../bar/bar"), interface_1 = require("../../mark/interface"), interface_2 = require("../interface"), space_1 = require("../../typings/space"), util_1 = require("../../util"), label_mark_1 = require("../util/label-mark"), constant_1 = require("../../constant"), vscale_1 = require("@visactor/vscale"), utils_1 = require("../../animation/utils"), tooltip_helper_1 = require("./tooltip-helper"), config_1 = require("../../animation/config"), interface_3 = require("./interface");
7
+ const bar_1 = require("../bar/bar"), interface_1 = require("../../mark/interface"), interface_2 = require("../interface"), space_1 = require("../../typings/space"), util_1 = require("../../util"), label_mark_1 = require("../util/label-mark"), constant_1 = require("../../constant"), utils_1 = require("../../animation/utils"), tooltip_helper_1 = require("./tooltip-helper"), config_1 = require("../../animation/config"), interface_3 = require("./interface");
8
8
 
9
9
  exports.DefaultBandWidth = 6;
10
10
 
@@ -29,37 +29,33 @@ class RangeColumnSeries extends bar_1.BarSeries {
29
29
  })));
30
30
  }
31
31
  initMarkStyle() {
32
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
33
- const rectMark = this._rectMark;
34
- rectMark && (this.setMarkStyle(rectMark, {
35
- fill: this.getColorAttribute()
36
- }, "normal", constant_1.AttributeLevel.Series), this._trigger.registerMark(rectMark),
37
- null === (_a = this._tooltipHelper) || void 0 === _a || _a.activeTriggerSet.mark.add(rectMark));
38
- const minLabelMark = this._minLabelMark, minLabelSpec = null === (_b = this._spec.label) || void 0 === _b ? void 0 : _b.minLabel;
32
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
33
+ super.initMarkStyle();
34
+ const minLabelMark = this._minLabelMark, minLabelSpec = null === (_a = this._spec.label) || void 0 === _a ? void 0 : _a.minLabel;
39
35
  if (minLabelMark) {
40
36
  this.setMarkStyle(minLabelMark, {
41
- fill: null !== (_d = null === (_c = null == minLabelSpec ? void 0 : minLabelSpec.style) || void 0 === _c ? void 0 : _c.fill) && void 0 !== _d ? _d : this.getColorAttribute(),
37
+ fill: null !== (_c = null === (_b = null == minLabelSpec ? void 0 : minLabelSpec.style) || void 0 === _b ? void 0 : _b.fill) && void 0 !== _c ? _c : this.getColorAttribute(),
42
38
  text: datum => {
43
39
  const min = this._spec.direction === space_1.Direction.horizontal ? datum[this._spec.xField[0]] : datum[this._spec.yField[0]];
44
40
  return (null == minLabelSpec ? void 0 : minLabelSpec.formatMethod) ? minLabelSpec.formatMethod(min, datum) : min;
45
41
  }
46
42
  });
47
- const position = null !== (_e = null == minLabelSpec ? void 0 : minLabelSpec.position) && void 0 !== _e ? _e : "end", offset = null !== (_f = null == minLabelSpec ? void 0 : minLabelSpec.offset) && void 0 !== _f ? _f : "vertical" === this._direction ? -20 : -25;
43
+ const position = null !== (_d = null == minLabelSpec ? void 0 : minLabelSpec.position) && void 0 !== _d ? _d : "end", offset = null !== (_e = null == minLabelSpec ? void 0 : minLabelSpec.offset) && void 0 !== _e ? _e : "vertical" === this._direction ? -20 : -25;
48
44
  (0, label_mark_1.setRectLabelPos)(this, minLabelMark, position, offset, (datum => this._rectMark.getAttribute("x", datum)), (datum => "vertical" === this._direction ? this._rectMark.getAttribute("x", datum) + this._rectMark.getAttribute("width", datum) : this._rectMark.getAttribute("x1", datum)), (datum => this._rectMark.getAttribute("y", datum)), (datum => "vertical" === this._direction ? this._rectMark.getAttribute("y1", datum) : this._rectMark.getAttribute("y", datum) + this._rectMark.getAttribute("height", datum)), (() => this._direction)),
49
- null === (_g = this._tooltipHelper) || void 0 === _g || _g.ignoreTriggerSet.mark.add(minLabelMark);
45
+ null === (_f = this._tooltipHelper) || void 0 === _f || _f.ignoreTriggerSet.mark.add(minLabelMark);
50
46
  }
51
- const maxLabelMark = this._maxLabelMark, maxLabelSpec = null === (_h = this._spec.label) || void 0 === _h ? void 0 : _h.maxLabel;
47
+ const maxLabelMark = this._maxLabelMark, maxLabelSpec = null === (_g = this._spec.label) || void 0 === _g ? void 0 : _g.maxLabel;
52
48
  if (maxLabelMark) {
53
49
  this.setMarkStyle(maxLabelMark, {
54
- fill: null !== (_k = null === (_j = null == maxLabelSpec ? void 0 : maxLabelSpec.style) || void 0 === _j ? void 0 : _j.fill) && void 0 !== _k ? _k : this.getColorAttribute(),
50
+ fill: null !== (_j = null === (_h = null == maxLabelSpec ? void 0 : maxLabelSpec.style) || void 0 === _h ? void 0 : _h.fill) && void 0 !== _j ? _j : this.getColorAttribute(),
55
51
  text: datum => {
56
52
  const max = this._spec.direction === space_1.Direction.horizontal ? datum[this._spec.xField[1]] : datum[this._spec.yField[1]];
57
53
  return (null == maxLabelSpec ? void 0 : maxLabelSpec.formatMethod) ? maxLabelSpec.formatMethod(max, datum) : max;
58
54
  }
59
55
  });
60
- const position = null !== (_l = null == maxLabelSpec ? void 0 : maxLabelSpec.position) && void 0 !== _l ? _l : "start", offset = null !== (_m = null == maxLabelSpec ? void 0 : maxLabelSpec.offset) && void 0 !== _m ? _m : "vertical" === this._direction ? -20 : -25;
56
+ const position = null !== (_k = null == maxLabelSpec ? void 0 : maxLabelSpec.position) && void 0 !== _k ? _k : "start", offset = null !== (_l = null == maxLabelSpec ? void 0 : maxLabelSpec.offset) && void 0 !== _l ? _l : "vertical" === this._direction ? -20 : -25;
61
57
  (0, label_mark_1.setRectLabelPos)(this, maxLabelMark, position, offset, (datum => this._rectMark.getAttribute("x", datum)), (datum => "vertical" === this._direction ? this._rectMark.getAttribute("x", datum) + this._rectMark.getAttribute("width", datum) : this._rectMark.getAttribute("x1", datum)), (datum => this._rectMark.getAttribute("y", datum)), (datum => "vertical" === this._direction ? this._rectMark.getAttribute("y1", datum) : this._rectMark.getAttribute("y", datum) + this._rectMark.getAttribute("height", datum)), (() => this._direction)),
62
- null === (_o = this._tooltipHelper) || void 0 === _o || _o.ignoreTriggerSet.mark.add(maxLabelMark);
58
+ null === (_m = this._tooltipHelper) || void 0 === _m || _m.ignoreTriggerSet.mark.add(maxLabelMark);
63
59
  }
64
60
  }
65
61
  initLabelMarkStyle(labelMark) {
@@ -84,27 +80,17 @@ class RangeColumnSeries extends bar_1.BarSeries {
84
80
  x1: datum => (0, util_1.valueInScaleRange)(dataToPosition(this.getDatumPositionValues(datum, this._spec.xField[1]), {
85
81
  bandPosition: this._bandPosition
86
82
  }), xScale),
87
- y: datum => {
88
- var _a, _b, _c;
89
- const bandWidth = null !== (_c = null === (_b = (_a = this.getYAxisHelper()).getBandwidth) || void 0 === _b ? void 0 : _b.call(_a, this._groups ? this._groups.fields.length - 1 : 0)) && void 0 !== _c ? _c : exports.DefaultBandWidth, continuous = (0,
90
- vscale_1.isContinuous)(yScale.type || "band");
91
- return this.dataToPositionY(datum) + .5 * (bandWidth - this._rectMark.getAttribute("height", datum)) + (continuous ? -bandWidth / 2 : 0);
92
- },
93
- height: () => this.getBarWidth(this._yAxisHelper)
83
+ y: datum => this._getPosition(this.direction, datum),
84
+ height: () => this._getBarWidth(this._yAxisHelper)
94
85
  }, "normal", constant_1.AttributeLevel.Series) : this.setMarkStyle(this._rectMark, {
95
- x: datum => {
96
- var _a, _b, _c, _d, _e;
97
- const bandWidth = null !== (_c = null === (_b = (_a = this.getXAxisHelper()).getBandwidth) || void 0 === _b ? void 0 : _b.call(_a, this._groups ? this._groups.fields.length - 1 : 0)) && void 0 !== _c ? _c : exports.DefaultBandWidth, width = this._rectMark.getAttribute("width", datum), continuous = (0,
98
- vscale_1.isContinuous)((null === (_e = (_d = this.getXAxisHelper()).getScale) || void 0 === _e ? void 0 : _e.call(_d, 0).type) || "band");
99
- return this.dataToPositionX(datum) + (bandWidth - width) / 2 + (continuous ? -bandWidth / 2 : 0);
100
- },
86
+ x: datum => this._getPosition(this.direction, datum),
101
87
  y: datum => (0, util_1.valueInScaleRange)(dataToPosition(this.getDatumPositionValues(datum, this._spec.yField[0]), {
102
88
  bandPosition: this._bandPosition
103
89
  }), yScale),
104
90
  y1: datum => (0, util_1.valueInScaleRange)(dataToPosition(this.getDatumPositionValues(datum, this._spec.yField[1]), {
105
91
  bandPosition: this._bandPosition
106
92
  }), yScale),
107
- width: () => this.getBarWidth(this._xAxisHelper)
93
+ width: () => this._getBarWidth(this._xAxisHelper)
108
94
  }, "normal", constant_1.AttributeLevel.Series);
109
95
  }
110
96
  initAnimation() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/range-column/range-column.ts"],"names":[],"mappings":"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","file":"range-column.js","sourcesContent":["import { BarSeries } from '../bar/bar';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport type { SeriesMarkMap } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface';\nimport { Direction } from '../../typings/space';\nimport type { IRectMark } from '../../mark/rect';\nimport type { ITextMark } from '../../mark/text';\nimport { merge, valueInScaleRange } from '../../util';\nimport { setRectLabelPos } from '../util/label-mark';\nimport { AttributeLevel } from '../../constant';\nimport { isContinuous } from '@visactor/vscale';\nimport { animationConfig, shouldDoMorph, userAnimationConfig } from '../../animation/utils';\nimport { RangeColumnSeriesTooltipHelper } from './tooltip-helper';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport type { Datum } from '../../typings';\nimport type { IRangeColumnSeriesSpec } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { PositionEnum } from './interface';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { RangeColumnAppearPreset } from './animation';\n\nexport const DefaultBandWidth = 6; // 默认的bandWidth,避免连续轴没有bandWidth\n\nexport class RangeColumnSeries extends BarSeries {\n static readonly type: string = SeriesTypeEnum.rangeColumn;\n type = SeriesTypeEnum.rangeColumn;\n protected _barMarkType: MarkTypeEnum = MarkTypeEnum.rect;\n protected _barName: string = SeriesTypeEnum.bar;\n\n static readonly mark: SeriesMarkMap = {\n ...BarSeries.mark,\n [SeriesMarkNameEnum.minLabel]: { name: SeriesMarkNameEnum.minLabel, type: MarkTypeEnum.text },\n [SeriesMarkNameEnum.maxLabel]: { name: SeriesMarkNameEnum.maxLabel, type: MarkTypeEnum.text }\n };\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n protected declare _spec: IRangeColumnSeriesSpec;\n\n protected _stack: boolean = false;\n private _minLabelMark?: ITextMark;\n private _maxLabelMark?: ITextMark;\n\n initMark(): void {\n const labelPosition = this._spec.label?.position;\n this._rectMark = this._createMark(RangeColumnSeries.mark.bar, {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig('bar', this._spec)),\n defaultMorphElementKey: this.getDimensionField()[0],\n groupKey: this._seriesField,\n label: labelPosition === PositionEnum.bothEnd ? undefined : merge({}, this._spec.label),\n isSeriesMark: true\n }) as IRectMark;\n\n if (this._spec.label?.visible !== false && labelPosition === PositionEnum.bothEnd) {\n if (this._spec.label?.minLabel?.visible !== false) {\n this._minLabelMark = this._createMark(RangeColumnSeries.mark.minLabel, {\n markSpec: this._spec.label?.minLabel\n }) as ITextMark;\n }\n if (this._spec.label?.maxLabel?.visible !== false) {\n this._maxLabelMark = this._createMark(RangeColumnSeries.mark.maxLabel, {\n markSpec: this._spec.label?.maxLabel\n }) as ITextMark;\n }\n }\n }\n\n initMarkStyle(): void {\n const rectMark = this._rectMark;\n if (rectMark) {\n this.setMarkStyle(\n rectMark,\n {\n fill: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n\n this._trigger.registerMark(rectMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(rectMark);\n }\n\n const minLabelMark = this._minLabelMark;\n const minLabelSpec = this._spec.label?.minLabel;\n if (minLabelMark) {\n this.setMarkStyle(minLabelMark, {\n fill: minLabelSpec?.style?.fill ?? this.getColorAttribute(),\n text: (datum: Datum) => {\n const min =\n this._spec.direction === Direction.horizontal ? datum[this._spec.xField[0]] : datum[this._spec.yField[0]];\n if (minLabelSpec?.formatMethod) {\n return minLabelSpec.formatMethod(min, datum);\n }\n return min;\n }\n });\n const position = minLabelSpec?.position ?? 'end';\n const offset = minLabelSpec?.offset ?? (this._direction === 'vertical' ? -20 : -25);\n setRectLabelPos(\n this,\n minLabelMark,\n position,\n offset,\n (datum: Datum) => this._rectMark.getAttribute('x', datum) as number,\n (datum: Datum) => {\n return this._direction === 'vertical'\n ? (this._rectMark.getAttribute('x', datum) as number) +\n (this._rectMark.getAttribute('width', datum) as number)\n : (this._rectMark.getAttribute('x1', datum) as number);\n },\n (datum: Datum) => this._rectMark.getAttribute('y', datum) as number,\n (datum: Datum) => {\n return this._direction === 'vertical'\n ? (this._rectMark.getAttribute('y1', datum) as number)\n : (this._rectMark.getAttribute('y', datum) as number) +\n (this._rectMark.getAttribute('height', datum) as number);\n },\n () => this._direction\n );\n this._tooltipHelper?.ignoreTriggerSet.mark.add(minLabelMark);\n }\n\n const maxLabelMark = this._maxLabelMark;\n const maxLabelSpec = this._spec.label?.maxLabel;\n if (maxLabelMark) {\n this.setMarkStyle(maxLabelMark, {\n fill: maxLabelSpec?.style?.fill ?? this.getColorAttribute(),\n text: (datum: Datum) => {\n const max =\n this._spec.direction === Direction.horizontal ? datum[this._spec.xField[1]] : datum[this._spec.yField[1]];\n if (maxLabelSpec?.formatMethod) {\n return maxLabelSpec.formatMethod(max, datum);\n }\n return max;\n }\n });\n const position = maxLabelSpec?.position ?? 'start';\n const offset = maxLabelSpec?.offset ?? (this._direction === 'vertical' ? -20 : -25);\n setRectLabelPos(\n this,\n maxLabelMark,\n position,\n offset,\n (datum: Datum) => this._rectMark.getAttribute('x', datum) as number,\n (datum: Datum) => {\n return this._direction === 'vertical'\n ? (this._rectMark.getAttribute('x', datum) as number) +\n (this._rectMark.getAttribute('width', datum) as number)\n : (this._rectMark.getAttribute('x1', datum) as number);\n },\n (datum: Datum) => this._rectMark.getAttribute('y', datum) as number,\n (datum: Datum) => {\n return this._direction === 'vertical'\n ? (this._rectMark.getAttribute('y1', datum) as number)\n : (this._rectMark.getAttribute('y', datum) as number) +\n (this._rectMark.getAttribute('height', datum) as number);\n },\n () => this._direction\n );\n this._tooltipHelper?.ignoreTriggerSet.mark.add(maxLabelMark);\n }\n }\n\n initLabelMarkStyle(labelMark: ITextMark): void {\n if (!labelMark) {\n return;\n }\n this.setMarkStyle(labelMark, {\n text: (datum: Datum) => {\n let min;\n let max;\n if (this._spec.direction === Direction.horizontal) {\n min = datum[this._spec.xField[0]];\n max = datum[this._spec.xField[1]];\n } else {\n min = datum[this._spec.yField[0]];\n max = datum[this._spec.yField[1]];\n }\n return min + '-' + max;\n },\n z: this.dataToPositionZ.bind(this)\n });\n this._tooltipHelper?.ignoreTriggerSet.mark.add(labelMark);\n }\n\n initBandRectMarkStyle() {\n const xScale = this._xAxisHelper?.getScale?.(0);\n const yScale = this._yAxisHelper?.getScale?.(0);\n const { dataToPosition } = this.direction === Direction.horizontal ? this._xAxisHelper : this._yAxisHelper;\n if (this.direction === Direction.horizontal) {\n this.setMarkStyle(\n this._rectMark,\n {\n x: (datum: Datum) =>\n valueInScaleRange(\n dataToPosition(this.getDatumPositionValues(datum, this._spec.xField[0]), {\n bandPosition: this._bandPosition\n }),\n xScale\n ),\n x1: (datum: Datum) =>\n valueInScaleRange(\n dataToPosition(this.getDatumPositionValues(datum, this._spec.xField[1]), {\n bandPosition: this._bandPosition\n }),\n xScale\n ),\n y: (datum: Datum) => {\n const bandWidth =\n this.getYAxisHelper().getBandwidth?.(this._groups ? this._groups.fields.length - 1 : 0) ??\n DefaultBandWidth;\n const continuous = isContinuous(yScale.type || 'band');\n const pos = this.dataToPositionY(datum);\n const width = this._rectMark.getAttribute('height', datum) as number;\n return pos + (bandWidth - width) * 0.5 + (continuous ? -bandWidth / 2 : 0);\n },\n height: () => this.getBarWidth(this._yAxisHelper)\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle(\n this._rectMark,\n {\n x: (datum: Datum) => {\n const bandWidth =\n this.getXAxisHelper().getBandwidth?.(this._groups ? this._groups.fields.length - 1 : 0) ??\n DefaultBandWidth;\n const width = this._rectMark.getAttribute('width', datum) as number;\n const continuous = isContinuous(this.getXAxisHelper().getScale?.(0).type || 'band');\n const pos = this.dataToPositionX(datum);\n return pos + (bandWidth - width) / 2 + (continuous ? -bandWidth / 2 : 0);\n },\n y: (datum: Datum) =>\n valueInScaleRange(\n dataToPosition(this.getDatumPositionValues(datum, this._spec.yField[0]), {\n bandPosition: this._bandPosition\n }),\n yScale\n ),\n y1: (datum: Datum) =>\n valueInScaleRange(\n dataToPosition(this.getDatumPositionValues(datum, this._spec.yField[1]), {\n bandPosition: this._bandPosition\n }),\n yScale\n ),\n width: () => {\n return this.getBarWidth(this._xAxisHelper);\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n initAnimation() {\n // 分组数据的dataIndex应该与x轴顺序一致,而非data[DEFAULT_DATA_INDEX]顺序\n const dataIndex = (datum: Datum) => {\n const xValue = datum?.[this._fieldX[0]];\n const xIndex = this._viewDataStatistics?.latestData?.[this._fieldX[0]]?.values.indexOf(xValue);\n // 不应该出现xIndex === -1 || undefined的情况\n return xIndex || 0;\n };\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<RangeColumnAppearPreset>)?.preset;\n this._rectMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.rangeColumn({ direction: this.direction }, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.bar, this._spec),\n { dataIndex }\n )\n );\n\n if (this._minLabelMark) {\n this._minLabelMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.label, this._spec), {\n dataIndex\n })\n );\n }\n\n if (this._maxLabelMark) {\n this._maxLabelMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.label, this._spec), {\n dataIndex\n })\n );\n }\n }\n\n protected initTooltip() {\n this._tooltipHelper = new RangeColumnSeriesTooltipHelper(this);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/series/range-column/range-column.ts"],"names":[],"mappings":"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","file":"range-column.js","sourcesContent":["import { BarSeries } from '../bar/bar';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport type { SeriesMarkMap } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface';\nimport { Direction } from '../../typings/space';\nimport type { IRectMark } from '../../mark/rect';\nimport type { ITextMark } from '../../mark/text';\nimport { merge, valueInScaleRange } from '../../util';\nimport { setRectLabelPos } from '../util/label-mark';\nimport { AttributeLevel } from '../../constant';\nimport { animationConfig, shouldDoMorph, userAnimationConfig } from '../../animation/utils';\nimport { RangeColumnSeriesTooltipHelper } from './tooltip-helper';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport type { Datum } from '../../typings';\nimport type { IRangeColumnSeriesSpec } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { PositionEnum } from './interface';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { RangeColumnAppearPreset } from './animation';\n\nexport const DefaultBandWidth = 6; // 默认的bandWidth,避免连续轴没有bandWidth\n\nexport class RangeColumnSeries extends BarSeries {\n static readonly type: string = SeriesTypeEnum.rangeColumn;\n type = SeriesTypeEnum.rangeColumn;\n protected _barMarkType: MarkTypeEnum = MarkTypeEnum.rect;\n protected _barName: string = SeriesTypeEnum.bar;\n\n static readonly mark: SeriesMarkMap = {\n ...BarSeries.mark,\n [SeriesMarkNameEnum.minLabel]: { name: SeriesMarkNameEnum.minLabel, type: MarkTypeEnum.text },\n [SeriesMarkNameEnum.maxLabel]: { name: SeriesMarkNameEnum.maxLabel, type: MarkTypeEnum.text }\n };\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n protected declare _spec: IRangeColumnSeriesSpec;\n\n protected _stack: boolean = false;\n private _minLabelMark?: ITextMark;\n private _maxLabelMark?: ITextMark;\n\n initMark(): void {\n const labelPosition = this._spec.label?.position;\n this._rectMark = this._createMark(RangeColumnSeries.mark.bar, {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig('bar', this._spec)),\n defaultMorphElementKey: this.getDimensionField()[0],\n groupKey: this._seriesField,\n label: labelPosition === PositionEnum.bothEnd ? undefined : merge({}, this._spec.label),\n isSeriesMark: true\n }) as IRectMark;\n\n if (this._spec.label?.visible !== false && labelPosition === PositionEnum.bothEnd) {\n if (this._spec.label?.minLabel?.visible !== false) {\n this._minLabelMark = this._createMark(RangeColumnSeries.mark.minLabel, {\n markSpec: this._spec.label?.minLabel\n }) as ITextMark;\n }\n if (this._spec.label?.maxLabel?.visible !== false) {\n this._maxLabelMark = this._createMark(RangeColumnSeries.mark.maxLabel, {\n markSpec: this._spec.label?.maxLabel\n }) as ITextMark;\n }\n }\n }\n\n initMarkStyle(): void {\n super.initMarkStyle();\n\n const minLabelMark = this._minLabelMark;\n const minLabelSpec = this._spec.label?.minLabel;\n if (minLabelMark) {\n this.setMarkStyle(minLabelMark, {\n fill: minLabelSpec?.style?.fill ?? this.getColorAttribute(),\n text: (datum: Datum) => {\n const min =\n this._spec.direction === Direction.horizontal ? datum[this._spec.xField[0]] : datum[this._spec.yField[0]];\n if (minLabelSpec?.formatMethod) {\n return minLabelSpec.formatMethod(min, datum);\n }\n return min;\n }\n });\n const position = minLabelSpec?.position ?? 'end';\n const offset = minLabelSpec?.offset ?? (this._direction === 'vertical' ? -20 : -25);\n setRectLabelPos(\n this,\n minLabelMark,\n position,\n offset,\n (datum: Datum) => this._rectMark.getAttribute('x', datum) as number,\n (datum: Datum) => {\n return this._direction === 'vertical'\n ? (this._rectMark.getAttribute('x', datum) as number) +\n (this._rectMark.getAttribute('width', datum) as number)\n : (this._rectMark.getAttribute('x1', datum) as number);\n },\n (datum: Datum) => this._rectMark.getAttribute('y', datum) as number,\n (datum: Datum) => {\n return this._direction === 'vertical'\n ? (this._rectMark.getAttribute('y1', datum) as number)\n : (this._rectMark.getAttribute('y', datum) as number) +\n (this._rectMark.getAttribute('height', datum) as number);\n },\n () => this._direction\n );\n this._tooltipHelper?.ignoreTriggerSet.mark.add(minLabelMark);\n }\n\n const maxLabelMark = this._maxLabelMark;\n const maxLabelSpec = this._spec.label?.maxLabel;\n if (maxLabelMark) {\n this.setMarkStyle(maxLabelMark, {\n fill: maxLabelSpec?.style?.fill ?? this.getColorAttribute(),\n text: (datum: Datum) => {\n const max =\n this._spec.direction === Direction.horizontal ? datum[this._spec.xField[1]] : datum[this._spec.yField[1]];\n if (maxLabelSpec?.formatMethod) {\n return maxLabelSpec.formatMethod(max, datum);\n }\n return max;\n }\n });\n const position = maxLabelSpec?.position ?? 'start';\n const offset = maxLabelSpec?.offset ?? (this._direction === 'vertical' ? -20 : -25);\n setRectLabelPos(\n this,\n maxLabelMark,\n position,\n offset,\n (datum: Datum) => this._rectMark.getAttribute('x', datum) as number,\n (datum: Datum) => {\n return this._direction === 'vertical'\n ? (this._rectMark.getAttribute('x', datum) as number) +\n (this._rectMark.getAttribute('width', datum) as number)\n : (this._rectMark.getAttribute('x1', datum) as number);\n },\n (datum: Datum) => this._rectMark.getAttribute('y', datum) as number,\n (datum: Datum) => {\n return this._direction === 'vertical'\n ? (this._rectMark.getAttribute('y1', datum) as number)\n : (this._rectMark.getAttribute('y', datum) as number) +\n (this._rectMark.getAttribute('height', datum) as number);\n },\n () => this._direction\n );\n this._tooltipHelper?.ignoreTriggerSet.mark.add(maxLabelMark);\n }\n }\n\n initLabelMarkStyle(labelMark: ITextMark): void {\n if (!labelMark) {\n return;\n }\n this.setMarkStyle(labelMark, {\n text: (datum: Datum) => {\n let min;\n let max;\n if (this._spec.direction === Direction.horizontal) {\n min = datum[this._spec.xField[0]];\n max = datum[this._spec.xField[1]];\n } else {\n min = datum[this._spec.yField[0]];\n max = datum[this._spec.yField[1]];\n }\n return min + '-' + max;\n },\n z: this.dataToPositionZ.bind(this)\n });\n this._tooltipHelper?.ignoreTriggerSet.mark.add(labelMark);\n }\n\n initBandRectMarkStyle() {\n const xScale = this._xAxisHelper?.getScale?.(0);\n const yScale = this._yAxisHelper?.getScale?.(0);\n const { dataToPosition } = this.direction === Direction.horizontal ? this._xAxisHelper : this._yAxisHelper;\n if (this.direction === Direction.horizontal) {\n this.setMarkStyle(\n this._rectMark,\n {\n x: (datum: Datum) =>\n valueInScaleRange(\n dataToPosition(this.getDatumPositionValues(datum, this._spec.xField[0]), {\n bandPosition: this._bandPosition\n }),\n xScale\n ),\n x1: (datum: Datum) =>\n valueInScaleRange(\n dataToPosition(this.getDatumPositionValues(datum, this._spec.xField[1]), {\n bandPosition: this._bandPosition\n }),\n xScale\n ),\n y: (datum: Datum) => this._getPosition(this.direction, datum),\n height: () => this._getBarWidth(this._yAxisHelper)\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle(\n this._rectMark,\n {\n x: (datum: Datum) => this._getPosition(this.direction, datum),\n y: (datum: Datum) =>\n valueInScaleRange(\n dataToPosition(this.getDatumPositionValues(datum, this._spec.yField[0]), {\n bandPosition: this._bandPosition\n }),\n yScale\n ),\n y1: (datum: Datum) =>\n valueInScaleRange(\n dataToPosition(this.getDatumPositionValues(datum, this._spec.yField[1]), {\n bandPosition: this._bandPosition\n }),\n yScale\n ),\n width: () => {\n return this._getBarWidth(this._xAxisHelper);\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n initAnimation() {\n // 分组数据的dataIndex应该与x轴顺序一致,而非data[DEFAULT_DATA_INDEX]顺序\n const dataIndex = (datum: Datum) => {\n const xValue = datum?.[this._fieldX[0]];\n const xIndex = this._viewDataStatistics?.latestData?.[this._fieldX[0]]?.values.indexOf(xValue);\n // 不应该出现xIndex === -1 || undefined的情况\n return xIndex || 0;\n };\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<RangeColumnAppearPreset>)?.preset;\n this._rectMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.rangeColumn({ direction: this.direction }, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.bar, this._spec),\n { dataIndex }\n )\n );\n\n if (this._minLabelMark) {\n this._minLabelMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.label, this._spec), {\n dataIndex\n })\n );\n }\n\n if (this._maxLabelMark) {\n this._maxLabelMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.label, this._spec), {\n dataIndex\n })\n );\n }\n }\n\n protected initTooltip() {\n this._tooltipHelper = new RangeColumnSeriesTooltipHelper(this);\n }\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  import { CartesianSeries } from '../cartesian/cartesian';
2
2
  import type { SeriesMarkMap } from '../interface';
3
3
  import { SeriesTypeEnum } from '../interface';
4
+ import type { Datum } from '../../typings';
4
5
  import { SeriesData } from '../base/series-data';
5
6
  import type { ISankeySeriesSpec } from './interface';
6
7
  import type { ExtendEventParam } from '../../event/interface';
@@ -47,4 +48,5 @@ export declare class SankeySeries extends CartesianSeries<any> {
47
48
  getSeriesKeys(): string[];
48
49
  onLayoutEnd(ctx: any): void;
49
50
  getDefaultShapeType(): string;
51
+ protected _noAnimationDataKey(datum: Datum, index: number): unknown | undefined;
50
52
  }
@@ -503,6 +503,7 @@ class SankeySeries extends cartesian_1.CartesianSeries {
503
503
  getDefaultShapeType() {
504
504
  return "square";
505
505
  }
506
+ _noAnimationDataKey(datum, index) {}
506
507
  }
507
508
 
508
509
  exports.SankeySeries = SankeySeries, SankeySeries.type = interface_1.SeriesTypeEnum.sankey,