@visactor/vchart 1.10.1-alpha.0 → 1.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +300 -269
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/base/base-chart-transformer.js +1 -1
  6. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  7. package/cjs/chart/polar/polar-transformer.js.map +1 -1
  8. package/cjs/chart/sequence/sequence-transformer.js.map +1 -1
  9. package/cjs/chart/stack.js +2 -1
  10. package/cjs/compile/compiler.js +3 -3
  11. package/cjs/compile/compiler.js.map +1 -1
  12. package/cjs/compile/grammar-item.js +1 -2
  13. package/cjs/component/data-zoom/data-filter-base-component.d.ts +2 -1
  14. package/cjs/component/data-zoom/data-filter-base-component.js +4 -3
  15. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  16. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  17. package/cjs/component/data-zoom/data-zoom/interface.d.ts +1 -1
  18. package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
  19. package/cjs/component/data-zoom/index.d.ts +1 -0
  20. package/cjs/component/data-zoom/index.js +2 -1
  21. package/cjs/component/data-zoom/index.js.map +1 -1
  22. package/cjs/component/data-zoom/interface.d.ts +4 -0
  23. package/cjs/component/data-zoom/interface.js +5 -1
  24. package/cjs/component/data-zoom/interface.js.map +1 -1
  25. package/cjs/component/data-zoom/scroll-bar/interface.d.ts +1 -1
  26. package/cjs/component/data-zoom/scroll-bar/interface.js.map +1 -1
  27. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  28. package/cjs/core/index.d.ts +1 -1
  29. package/cjs/core/index.js +1 -1
  30. package/cjs/core/index.js.map +1 -1
  31. package/cjs/core/interface.d.ts +1 -1
  32. package/cjs/core/interface.js.map +1 -1
  33. package/cjs/core/vchart.d.ts +1 -1
  34. package/cjs/core/vchart.js +4 -4
  35. package/cjs/core/vchart.js.map +1 -1
  36. package/cjs/event/event-dispatcher.js +26 -31
  37. package/cjs/event/event-dispatcher.js.map +1 -1
  38. package/cjs/index-lark.js +2 -2
  39. package/cjs/index-lark.js.map +1 -1
  40. package/cjs/index-wx-simple.js +2 -2
  41. package/cjs/index-wx-simple.js.map +1 -1
  42. package/cjs/interaction/config.js +1 -1
  43. package/cjs/interaction/dimension-trigger.js +1 -1
  44. package/cjs/interaction/index.js +1 -1
  45. package/cjs/interaction/interaction.js +1 -1
  46. package/cjs/layout/base-layout.js +1 -1
  47. package/cjs/layout/index.js +1 -1
  48. package/cjs/layout/interface.js +1 -1
  49. package/cjs/layout/layout-item.js +1 -1
  50. package/cjs/plugin/chart/index.d.ts +1 -0
  51. package/cjs/plugin/chart/index.js +2 -1
  52. package/cjs/plugin/chart/index.js.map +1 -1
  53. package/cjs/region/region.js.map +1 -1
  54. package/cjs/series/area/area.d.ts +1 -0
  55. package/cjs/series/area/area.js +5 -2
  56. package/cjs/series/area/area.js.map +1 -1
  57. package/cjs/series/base/base-series.d.ts +1 -1
  58. package/cjs/series/base/base-series.js +3 -1
  59. package/cjs/series/base/base-series.js.map +1 -1
  60. package/cjs/series/cartesian/cartesian.d.ts +1 -1
  61. package/cjs/series/cartesian/cartesian.js +4 -5
  62. package/cjs/series/cartesian/cartesian.js.map +1 -1
  63. package/cjs/series/funnel/funnel.js +4 -3
  64. package/cjs/series/funnel/funnel.js.map +1 -1
  65. package/cjs/series/interface/series.d.ts +1 -1
  66. package/cjs/series/interface/series.js.map +1 -1
  67. package/cjs/series/mixin/line-mixin.d.ts +1 -0
  68. package/cjs/series/mixin/line-mixin.js +13 -9
  69. package/cjs/series/mixin/line-mixin.js.map +1 -1
  70. package/cjs/series/pie/3d/pie-3d.js +2 -2
  71. package/cjs/series/pie/3d/pie-3d.js.map +1 -1
  72. package/cjs/series/pie/pie-transformer.d.ts +1 -0
  73. package/cjs/series/pie/pie-transformer.js +6 -0
  74. package/cjs/series/pie/pie-transformer.js.map +1 -1
  75. package/cjs/series/pie/pie.d.ts +1 -2
  76. package/cjs/series/pie/pie.js +8 -19
  77. package/cjs/series/pie/pie.js.map +1 -1
  78. package/cjs/series/polar/polar.d.ts +1 -1
  79. package/cjs/series/polar/polar.js +5 -3
  80. package/cjs/series/polar/polar.js.map +1 -1
  81. package/cjs/series/radar/radar.js +1 -1
  82. package/cjs/series/radar/radar.js.map +1 -1
  83. package/cjs/series/range-area/range-area.d.ts +4 -2
  84. package/cjs/series/range-area/range-area.js +20 -23
  85. package/cjs/series/range-area/range-area.js.map +1 -1
  86. package/cjs/series/scatter/scatter.js +3 -3
  87. package/cjs/series/scatter/scatter.js.map +1 -1
  88. package/cjs/vchart-all.js +2 -2
  89. package/cjs/vchart-all.js.map +1 -1
  90. package/esm/chart/base/base-chart-transformer.js +2 -2
  91. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  92. package/esm/chart/polar/polar-transformer.js.map +1 -1
  93. package/esm/chart/sequence/sequence-transformer.js.map +1 -1
  94. package/esm/chart/stack.js +2 -1
  95. package/esm/compile/compiler.js +3 -3
  96. package/esm/compile/compiler.js.map +1 -1
  97. package/esm/compile/grammar-item.js +1 -2
  98. package/esm/component/data-zoom/data-filter-base-component.d.ts +2 -1
  99. package/esm/component/data-zoom/data-filter-base-component.js +4 -3
  100. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  101. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  102. package/esm/component/data-zoom/data-zoom/interface.d.ts +1 -1
  103. package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
  104. package/esm/component/data-zoom/index.d.ts +1 -0
  105. package/esm/component/data-zoom/index.js +2 -0
  106. package/esm/component/data-zoom/index.js.map +1 -1
  107. package/esm/component/data-zoom/interface.d.ts +4 -0
  108. package/esm/component/data-zoom/interface.js +5 -1
  109. package/esm/component/data-zoom/interface.js.map +1 -1
  110. package/esm/component/data-zoom/scroll-bar/interface.d.ts +1 -1
  111. package/esm/component/data-zoom/scroll-bar/interface.js.map +1 -1
  112. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  113. package/esm/core/index.d.ts +1 -1
  114. package/esm/core/index.js +1 -1
  115. package/esm/core/index.js.map +1 -1
  116. package/esm/core/interface.d.ts +1 -1
  117. package/esm/core/interface.js.map +1 -1
  118. package/esm/core/vchart.d.ts +1 -1
  119. package/esm/core/vchart.js +4 -4
  120. package/esm/core/vchart.js.map +1 -1
  121. package/esm/event/event-dispatcher.js +24 -29
  122. package/esm/event/event-dispatcher.js.map +1 -1
  123. package/esm/index-lark.js +1 -3
  124. package/esm/index-lark.js.map +1 -1
  125. package/esm/index-wx-simple.js +1 -3
  126. package/esm/index-wx-simple.js.map +1 -1
  127. package/esm/interaction/config.js +1 -1
  128. package/esm/interaction/dimension-trigger.js +1 -1
  129. package/esm/interaction/index.js +1 -1
  130. package/esm/interaction/interaction.js +1 -1
  131. package/esm/layout/base-layout.js +1 -1
  132. package/esm/layout/index.js +1 -1
  133. package/esm/layout/interface.js +1 -1
  134. package/esm/layout/layout-item.js +1 -1
  135. package/esm/plugin/chart/index.d.ts +1 -0
  136. package/esm/plugin/chart/index.js +2 -0
  137. package/esm/plugin/chart/index.js.map +1 -1
  138. package/esm/region/region.js.map +1 -1
  139. package/esm/series/area/area.d.ts +1 -0
  140. package/esm/series/area/area.js +5 -2
  141. package/esm/series/area/area.js.map +1 -1
  142. package/esm/series/base/base-series.d.ts +1 -1
  143. package/esm/series/base/base-series.js +3 -1
  144. package/esm/series/base/base-series.js.map +1 -1
  145. package/esm/series/cartesian/cartesian.d.ts +1 -1
  146. package/esm/series/cartesian/cartesian.js +3 -3
  147. package/esm/series/cartesian/cartesian.js.map +1 -1
  148. package/esm/series/funnel/funnel.js +4 -3
  149. package/esm/series/funnel/funnel.js.map +1 -1
  150. package/esm/series/interface/series.d.ts +1 -1
  151. package/esm/series/interface/series.js.map +1 -1
  152. package/esm/series/mixin/line-mixin.d.ts +1 -0
  153. package/esm/series/mixin/line-mixin.js +13 -9
  154. package/esm/series/mixin/line-mixin.js.map +1 -1
  155. package/esm/series/pie/3d/pie-3d.js +2 -2
  156. package/esm/series/pie/3d/pie-3d.js.map +1 -1
  157. package/esm/series/pie/pie-transformer.d.ts +1 -0
  158. package/esm/series/pie/pie-transformer.js +7 -1
  159. package/esm/series/pie/pie-transformer.js.map +1 -1
  160. package/esm/series/pie/pie.d.ts +1 -2
  161. package/esm/series/pie/pie.js +8 -19
  162. package/esm/series/pie/pie.js.map +1 -1
  163. package/esm/series/polar/polar.d.ts +1 -1
  164. package/esm/series/polar/polar.js +4 -2
  165. package/esm/series/polar/polar.js.map +1 -1
  166. package/esm/series/radar/radar.js +1 -1
  167. package/esm/series/radar/radar.js.map +1 -1
  168. package/esm/series/range-area/range-area.d.ts +4 -2
  169. package/esm/series/range-area/range-area.js +20 -24
  170. package/esm/series/range-area/range-area.js.map +1 -1
  171. package/esm/series/scatter/scatter.js +3 -3
  172. package/esm/series/scatter/scatter.js.map +1 -1
  173. package/esm/vchart-all.js +1 -3
  174. package/esm/vchart-all.js.map +1 -1
  175. package/package.json +3 -4
  176. package/cjs/component/data-zoom/constant.d.ts +0 -4
  177. package/cjs/component/data-zoom/constant.js +0 -10
  178. package/cjs/component/data-zoom/constant.js.map +0 -1
  179. package/esm/component/data-zoom/constant.d.ts +0 -4
  180. package/esm/component/data-zoom/constant.js +0 -6
  181. package/esm/component/data-zoom/constant.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/pie/3d/pie-3d.ts"],"names":[],"mappings":"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","file":"pie-3d.js","sourcesContent":["import { AttributeLevel, ARC_MIDDLE_ANGLE } from '../../../constant';\nimport type { Datum } from '../../../typings';\nimport { MarkTypeEnum } from '../../../mark/interface/type';\nimport type { IArcSeries, SeriesMarkMap } from '../../interface';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IPie3dSeriesSpec } from '../interface';\nimport { registerArc3dMark } from '../../../mark/arc-3d';\nimport { BasePieSeries } from '../pie';\nimport { pie3dSeriesMark } from '../constant';\nimport { radianToDegree } from '@visactor/vutils';\nimport { Factory } from '../../../core/factory';\nimport { registerPie3dAnimation } from '../animation/animation';\nimport { Pie3dSeriesSpecTransformer } from './pie-3d-transformer';\nimport type { ITextMark } from '../../../mark/text';\n\nexport class Pie3dSeries<T extends IPie3dSeriesSpec = IPie3dSeriesSpec> extends BasePieSeries<T> implements IArcSeries {\n static readonly type: string = SeriesTypeEnum.pie3d;\n type = SeriesTypeEnum.pie3d;\n protected _pieMarkName: SeriesMarkNameEnum = SeriesMarkNameEnum.pie3d;\n protected _pieMarkType: MarkTypeEnum = MarkTypeEnum.arc3d;\n\n static readonly mark: SeriesMarkMap = pie3dSeriesMark;\n static readonly transformerConstructor = Pie3dSeriesSpecTransformer as any;\n readonly transformerConstructor = Pie3dSeriesSpecTransformer as any;\n\n protected _angle3d: number;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this._angle3d = this._spec?.angle3d ?? -Math.PI / 3;\n }\n\n initMarkStyle(): void {\n super.initMarkStyle();\n const pieMark = this._pieMark;\n if (pieMark) {\n this.setMarkStyle(\n pieMark,\n {\n beta: () => this._angle3d\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n initLabelMarkStyle(textMark: ITextMark, spec: any = {}): void {\n if (!textMark) {\n return;\n }\n super.initLabelMarkStyle(textMark);\n\n const params3d: {\n beta?: number;\n anchor3d?: (datum: Datum) => any;\n angle?: (datum: Datum) => any;\n } = {};\n textMark.setSupport3d(true);\n params3d.beta = this._angle3d;\n params3d.anchor3d = (datum: Datum) => {\n const anchor = [\n // TODO: label 布局依赖自身图元属性,这里无法获取到\n this._center?.x ?? this._region.getLayoutRect().width / 2,\n this._center?.y ?? this._region.getLayoutRect().height / 2\n ];\n return anchor;\n };\n params3d.angle = (datum: Datum) => {\n const angle = datum[ARC_MIDDLE_ANGLE];\n return spec.position === 'inside' ? radianToDegree(angle) : 0;\n };\n this.setMarkStyle(textMark, { ...params3d, z: 100 }, undefined, AttributeLevel.Mark);\n }\n}\n\nexport const registerPie3dSeries = () => {\n registerPie3dAnimation();\n registerArc3dMark();\n Factory.registerSeries(Pie3dSeries.type, Pie3dSeries);\n};\n"]}
1
+ {"version":3,"sources":["../src/series/pie/3d/pie-3d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIrE,OAAO,EAAsB,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAGlE,MAAM,OAAO,WAA2D,SAAQ,aAAgB;IAAhG;;QAEE,SAAI,GAAG,cAAc,CAAC,KAAK,CAAC;QAClB,iBAAY,WAAgD;QAC5D,iBAAY,WAAoC;QAIjD,2BAAsB,GAAG,0BAAiC,CAAC;IAoDtE,CAAC;IAhDC,eAAe;;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,OAAO,mCAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,aAAa;QACX,KAAK,CAAC,aAAa,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,YAAY,CACf,OAAO,EACP;gBACE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ;aAC1B,EACD,QAAQ,EACR,cAAc,CAAC,MAAM,CACtB,CAAC;SACH;IACH,CAAC;IAED,kBAAkB,CAAC,QAAmB,EAAE,OAAY,EAAE;QACpD,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO;SACR;QACD,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAEnC,MAAM,QAAQ,GAIV,EAAE,CAAC;QACP,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,QAAQ,CAAC,QAAQ,GAAG,CAAC,KAAY,EAAE,EAAE;YACnC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG;gBAEb,CAAC;gBACD,CAAC;aACF,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QACF,QAAQ,CAAC,KAAK,GAAG,CAAC,KAAY,EAAE,EAAE;YAChC,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,QAAQ,kCAAO,QAAQ,KAAE,CAAC,EAAE,GAAG,KAAI,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IACvF,CAAC;;AA1De,gBAAI,GAAW,cAAc,CAAC,KAAK,CAAC;AAKpC,gBAAI,GAAkB,eAAe,CAAC;AACtC,kCAAsB,GAAG,0BAAiC,CAAC;AAuD7E,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,sBAAsB,EAAE,CAAC;IACzB,iBAAiB,EAAE,CAAC;IACpB,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACxD,CAAC,CAAC","file":"pie-3d.js","sourcesContent":["import { AttributeLevel, ARC_MIDDLE_ANGLE } from '../../../constant';\nimport type { Datum } from '../../../typings';\nimport { MarkTypeEnum } from '../../../mark/interface/type';\nimport type { IArcSeries, SeriesMarkMap } from '../../interface';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IPie3dSeriesSpec } from '../interface';\nimport { registerArc3dMark } from '../../../mark/arc-3d';\nimport { BasePieSeries } from '../pie';\nimport { pie3dSeriesMark } from '../constant';\nimport { radianToDegree } from '@visactor/vutils';\nimport { Factory } from '../../../core/factory';\nimport { registerPie3dAnimation } from '../animation/animation';\nimport { Pie3dSeriesSpecTransformer } from './pie-3d-transformer';\nimport type { ITextMark } from '../../../mark/text';\n\nexport class Pie3dSeries<T extends IPie3dSeriesSpec = IPie3dSeriesSpec> extends BasePieSeries<T> implements IArcSeries {\n static readonly type: string = SeriesTypeEnum.pie3d;\n type = SeriesTypeEnum.pie3d;\n protected _pieMarkName: SeriesMarkNameEnum = SeriesMarkNameEnum.pie3d;\n protected _pieMarkType: MarkTypeEnum = MarkTypeEnum.arc3d;\n\n static readonly mark: SeriesMarkMap = pie3dSeriesMark;\n static readonly transformerConstructor = Pie3dSeriesSpecTransformer as any;\n readonly transformerConstructor = Pie3dSeriesSpecTransformer as any;\n\n protected _angle3d: number;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this._angle3d = this._spec?.angle3d ?? -Math.PI / 3;\n }\n\n initMarkStyle(): void {\n super.initMarkStyle();\n const pieMark = this._pieMark;\n if (pieMark) {\n this.setMarkStyle(\n pieMark,\n {\n beta: () => this._angle3d\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n initLabelMarkStyle(textMark: ITextMark, spec: any = {}): void {\n if (!textMark) {\n return;\n }\n super.initLabelMarkStyle(textMark);\n\n const params3d: {\n beta?: number;\n anchor3d?: (datum: Datum) => any;\n angle?: (datum: Datum) => any;\n } = {};\n textMark.setSupport3d(true);\n params3d.beta = this._angle3d;\n params3d.anchor3d = (datum: Datum) => {\n const { x, y } = this.getCenter();\n const anchor = [\n // TODO: label 布局依赖自身图元属性,这里无法获取到\n x,\n y\n ];\n return anchor;\n };\n params3d.angle = (datum: Datum) => {\n const angle = datum[ARC_MIDDLE_ANGLE];\n return spec.position === 'inside' ? radianToDegree(angle) : 0;\n };\n this.setMarkStyle(textMark, { ...params3d, z: 100 }, undefined, AttributeLevel.Mark);\n }\n}\n\nexport const registerPie3dSeries = () => {\n registerPie3dAnimation();\n registerArc3dMark();\n Factory.registerSeries(Pie3dSeries.type, Pie3dSeries);\n};\n"]}
@@ -6,4 +6,5 @@ export declare class PieSeriesSpecTransformer<T extends IBasePieSeriesSpec = IBa
6
6
  spec: T;
7
7
  theme: K;
8
8
  };
9
+ protected _getDefaultSpecFromChart(chartSpec: any): any;
9
10
  }
@@ -1,4 +1,4 @@
1
- import { isArray } from "@visactor/vutils";
1
+ import { isArray, isValid } from "@visactor/vutils";
2
2
 
3
3
  import { mergeSpec } from "../../util";
4
4
 
@@ -22,5 +22,11 @@ export class PieSeriesSpecTransformer extends BaseSeriesSpecTransformer {
22
22
  theme: theme
23
23
  };
24
24
  }
25
+ _getDefaultSpecFromChart(chartSpec) {
26
+ var _a;
27
+ const spec = null !== (_a = super._getDefaultSpecFromChart(chartSpec)) && void 0 !== _a ? _a : {}, {centerX: centerX, centerY: centerY} = chartSpec;
28
+ return isValid(centerX) && (spec.centerX = centerX), isValid(centerY) && (spec.centerY = centerY),
29
+ Object.keys(spec).length > 0 ? spec : void 0;
30
+ }
25
31
  }
26
32
  //# sourceMappingURL=pie-transformer.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/pie/pie-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAIpD,MAAM,OAAO,wBAGX,SAAQ,yBAA+B;IAC7B,mBAAmB,CAAC,IAAO;QACnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,QAAyB,CAAC;IACvD,CAAC;IAGS,iBAAiB,CAAC,IAAO,EAAE,SAAc;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAE;YAClC,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;YAI/D,OAAO,GAAG,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAQ,CAAC;YAEjE,MAAM,kBAAkB,GAAG,CAAC,QAAmC,EAAE,KAAoB,EAAE,EAAE;gBACvF,IAAI,QAAQ,KAAK,QAAQ,EAAE;oBACzB,OAAO,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;iBACrD;qBAAM;oBACL,OAAO,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;iBACrD;YACH,CAAC,CAAC;YAEF,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC1B,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;aACvF;iBAAM;gBACL,OAAO,CAAC,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;aAC3E;SACF;QAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;CACF","file":"pie-transformer.js","sourcesContent":["import { isArray } from '@visactor/vutils';\nimport { mergeSpec } from '../../util';\nimport { BaseSeriesSpecTransformer } from '../base';\nimport { SeriesMarkNameEnum } from '../interface';\nimport type { IArcLabelSpec, IBasePieSeriesSpec, IPieSeriesTheme } from './interface';\n\nexport class PieSeriesSpecTransformer<\n T extends IBasePieSeriesSpec = IBasePieSeriesSpec,\n K extends IPieSeriesTheme = IPieSeriesTheme\n> extends BaseSeriesSpecTransformer<T, K> {\n protected _transformLabelSpec(spec: T): void {\n this._addMarkLabelSpec(spec, SeriesMarkNameEnum.pie);\n }\n\n /** 将 theme merge 到 spec 中 */\n protected _mergeThemeToSpec(spec: T, chartSpec: any): { spec: T; theme: K } {\n const theme = this._theme;\n let newSpec = spec;\n if (this._shouldMergeThemeToSpec()) {\n const specFromChart = this._getDefaultSpecFromChart(chartSpec);\n\n // this._originalSpec + specFromChart + this._theme = this._spec\n // 动态处理 label 样式,对于展示在内部的 label 默认使用 innerLabel 样式\n newSpec = mergeSpec({}, this._theme, specFromChart, spec) as any;\n\n const getMergedLabelSpec = (position: IArcLabelSpec['position'], label: IArcLabelSpec) => {\n if (position === 'inside') {\n return mergeSpec({}, this._theme.innerLabel, label);\n } else {\n return mergeSpec({}, this._theme.outerLabel, label);\n }\n };\n\n if (isArray(newSpec.label)) {\n newSpec.label = newSpec.label.map(label => getMergedLabelSpec(label.position, label));\n } else {\n newSpec.label = getMergedLabelSpec(newSpec.label.position, newSpec.label);\n }\n }\n\n return { spec: newSpec, theme };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/series/pie/pie-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAIpD,MAAM,OAAO,wBAGX,SAAQ,yBAA+B;IAC7B,mBAAmB,CAAC,IAAO;QACnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,QAAyB,CAAC;IACvD,CAAC;IAGS,iBAAiB,CAAC,IAAO,EAAE,SAAc;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAE;YAClC,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;YAI/D,OAAO,GAAG,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAQ,CAAC;YAEjE,MAAM,kBAAkB,GAAG,CAAC,QAAmC,EAAE,KAAoB,EAAE,EAAE;gBACvF,IAAI,QAAQ,KAAK,QAAQ,EAAE;oBACzB,OAAO,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;iBACrD;gBACD,OAAO,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC,CAAC;YAEF,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC1B,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;aACvF;iBAAM;gBACL,OAAO,CAAC,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;aAC3E;SACF;QAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAES,wBAAwB,CAAC,SAAc;;QAC/C,MAAM,IAAI,GAAG,MAAC,KAAK,CAAC,wBAAwB,CAAC,SAAS,CAAS,mCAAI,EAAE,CAAC;QACtE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;QACvC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;QACD,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,CAAC;CACF","file":"pie-transformer.js","sourcesContent":["import { isArray, isValid } from '@visactor/vutils';\nimport { mergeSpec } from '../../util';\nimport { BaseSeriesSpecTransformer } from '../base';\nimport { SeriesMarkNameEnum } from '../interface';\nimport type { IArcLabelSpec, IBasePieSeriesSpec, IPieSeriesTheme } from './interface';\n\nexport class PieSeriesSpecTransformer<\n T extends IBasePieSeriesSpec = IBasePieSeriesSpec,\n K extends IPieSeriesTheme = IPieSeriesTheme\n> extends BaseSeriesSpecTransformer<T, K> {\n protected _transformLabelSpec(spec: T): void {\n this._addMarkLabelSpec(spec, SeriesMarkNameEnum.pie);\n }\n\n /** 将 theme merge 到 spec 中 */\n protected _mergeThemeToSpec(spec: T, chartSpec: any): { spec: T; theme: K } {\n const theme = this._theme;\n let newSpec = spec;\n if (this._shouldMergeThemeToSpec()) {\n const specFromChart = this._getDefaultSpecFromChart(chartSpec);\n\n // this._originalSpec + specFromChart + this._theme = this._spec\n // 动态处理 label 样式,对于展示在内部的 label 默认使用 innerLabel 样式\n newSpec = mergeSpec({}, this._theme, specFromChart, spec) as any;\n\n const getMergedLabelSpec = (position: IArcLabelSpec['position'], label: IArcLabelSpec) => {\n if (position === 'inside') {\n return mergeSpec({}, this._theme.innerLabel, label);\n }\n return mergeSpec({}, this._theme.outerLabel, label);\n };\n\n if (isArray(newSpec.label)) {\n newSpec.label = newSpec.label.map(label => getMergedLabelSpec(label.position, label));\n } else {\n newSpec.label = getMergedLabelSpec(newSpec.label.position, newSpec.label);\n }\n }\n\n return { spec: newSpec, theme };\n }\n\n protected _getDefaultSpecFromChart(chartSpec: any): any {\n const spec = (super._getDefaultSpecFromChart(chartSpec) as any) ?? {};\n const { centerX, centerY } = chartSpec;\n if (isValid(centerX)) {\n spec.centerX = centerX;\n }\n if (isValid(centerY)) {\n spec.centerY = centerY;\n }\n return Object.keys(spec).length > 0 ? spec : undefined;\n }\n}\n"]}
@@ -18,8 +18,7 @@ export declare class BasePieSeries<T extends IBasePieSeriesSpec> extends PolarSe
18
18
  protected _pieMarkType: MarkTypeEnum;
19
19
  static readonly mark: SeriesMarkMap;
20
20
  protected _viewDataLabel: SeriesData;
21
- protected _center: IPoint | null;
22
- get center(): IPoint;
21
+ getCenter(): IPoint;
23
22
  protected _centerOffset: number;
24
23
  protected _cornerRadius: number;
25
24
  protected _startAngle: number;
@@ -55,23 +55,18 @@ export class BasePieSeries extends PolarSeries {
55
55
  };
56
56
  };
57
57
  }
58
- get center() {
58
+ getCenter() {
59
59
  var _a, _b, _c, _d;
60
+ const {width: width, height: height} = this._region.getLayoutRect();
60
61
  return {
61
- x: null !== (_b = null === (_a = this._spec) || void 0 === _a ? void 0 : _a.centerX) && void 0 !== _b ? _b : this._region.getLayoutRect().width / 2,
62
- y: null !== (_d = null === (_c = this._spec) || void 0 === _c ? void 0 : _c.centerY) && void 0 !== _d ? _d : this._region.getLayoutRect().height / 2
62
+ x: null !== (_b = null === (_a = this._spec) || void 0 === _a ? void 0 : _a.centerX) && void 0 !== _b ? _b : width / 2,
63
+ y: null !== (_d = null === (_c = this._spec) || void 0 === _c ? void 0 : _c.centerY) && void 0 !== _d ? _d : height / 2
63
64
  };
64
65
  }
65
66
  _buildMarkAttributeContext() {
66
67
  super._buildMarkAttributeContext(), this._markAttributeContext.getCenter = () => ({
67
- x: () => {
68
- var _a, _b;
69
- return null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.x) && void 0 !== _b ? _b : this._region.getLayoutRect().width / 2;
70
- },
71
- y: () => {
72
- var _a, _b;
73
- return null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.y) && void 0 !== _b ? _b : this._region.getLayoutRect().height / 2;
74
- }
68
+ x: () => this.getCenter().x,
69
+ y: () => this.getCenter().y
75
70
  }), this._markAttributeContext.startAngleScale = datum => this.startAngleScale(datum),
76
71
  this._markAttributeContext.endAngleScale = datum => this.endAngleScale(datum);
77
72
  }
@@ -137,14 +132,8 @@ export class BasePieSeries extends PolarSeries {
137
132
  initMarkStyle() {
138
133
  const pieMark = this._pieMark;
139
134
  pieMark && this.setMarkStyle(pieMark, {
140
- x: () => {
141
- var _a, _b;
142
- return null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.x) && void 0 !== _b ? _b : this._region.getLayoutRect().width / 2;
143
- },
144
- y: () => {
145
- var _a, _b;
146
- return null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.y) && void 0 !== _b ? _b : this._region.getLayoutRect().height / 2;
147
- },
135
+ x: () => this.getCenter().x,
136
+ y: () => this.getCenter().y,
148
137
  fill: this.getColorAttribute(),
149
138
  outerRadius: isSpecValueWithScale(this._outerRadius) ? this._outerRadius : () => this.computeLayoutRadius() * this._outerRadius,
150
139
  innerRadius: isSpecValueWithScale(this._innerRadius) ? this._innerRadius : () => this.computeLayoutRadius() * this._innerRadius,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/pie/pie.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACL,cAAc,EACd,eAAe,EACf,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,KAAK,EACL,MAAM,EACN,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAO7C,OAAO,EAAsB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,MAAM,OAAO,aAA4C,SAAQ,WAAc;IAA/E;;QAEW,2BAAsB,GAAG,wBAAwB,CAAC;QAEjD,iBAAY,SAA8C;QAC1D,iBAAY,SAAkC;QAkB9C,gBAAW,GAAW,kBAAkB,CAAC;QACzC,cAAS,GAAW,gBAAgB,CAAC;QAGrC,aAAQ,GAAoB,IAAI,CAAC;QACjC,eAAU,GAAqB,IAAI,CAAC;QACpC,mBAAc,GAAqB,IAAI,CAAC;QAiTlD,0BAAqB,GAAG,CAAC,KAAY,EAAiB,EAAE;YAEtD,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,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,gBAAgB,CAAC,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;IAkFJ,CAAC;IA9ZC,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;IAaS,0BAA0B;QAClC,KAAK,CAAC,0BAA0B,EAAE,CAAC;QAEnC,IAAI,CAAC,qBAAqB,CAAC,SAAS,GAAG,GAAG,EAAE;YAC1C,OAAO;gBACL,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;aACpE,CAAC;QACJ,CAAC,CAAC;QAGF,IAAI,CAAC,qBAAqB,CAAC,eAAe,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC3F,IAAI,CAAC,qBAAqB,CAAC,aAAa,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACzF,CAAC;IAED,eAAe;;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,YAAY,mCAAI,CAAC,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,YAAY,mCAAI,CAAC,CAAC;QAElD,MAAM,UAAU,GAAG,sBAAsB,CACvC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EACzF,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CACpF,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAGxF,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;QAEvB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAChD,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC7B,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,gCAAgC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAE5D,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,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChF,YAAY,EAAE,eAAe;gBAC7B,UAAU,EAAE,aAAa;gBACzB,OAAO,EAAE,SAAS;gBAClB,aAAa,EAAE,gBAAgB;gBAC/B,QAAQ,EAAE,UAAU;gBACpB,UAAU,EAAE,YAAY;gBACxB,GAAG,EAAE,KAAK;aACA;SACb,EACD,KAAK,CACN,CAAC;QAEF,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,IAAI,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACzG,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE;YACxC,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG,IAAI,UAAU,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,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC;YACvD,sBAAsB,EAAE,IAAI,CAAC,YAAY;YACzC,GAAG,EAAE,gBAAgB;YACrB,QAAQ,EAAE,IAAI,CAAC,YAAY;YAC3B,kBAAkB,EAAE,IAAI;YACxB,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,0CAAE,WAAW;YACxC,SAAS,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,0CAAE,SAAS;SACrC,CACU,CAAC;IAChB,CAAC;IAEO,eAAe,CAAC,KAAY;QAClC,OAAO,KAAK,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAEO,aAAa,CAAC,KAAY;QAChC,OAAO,KAAK,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC;IACrC,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,oBAAoB,CAAC,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,oBAAoB,CAAC,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,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAChD,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;gBAC5C,QAAQ,EAAE,IAAI,CAAC,SAAS;gBACxB,YAAY,EAAE,IAAI,CAAC,aAAa;aACjC,EACD,QAAQ,EACR,cAAc,CAAC,MAAM,CACtB,CAAC;SACH;IACH,CAAC;IAED,eAAe;QACb,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;IAES,WAAW;QACnB,KAAK,CAAC,WAAW,EAAE,CAAC;QAEpB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChF,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,cAAc,CAAC,SAAS,CAAC,CAAC;iBAC1G;aACF;SACF;IACH,CAAC;IAED,kBAAkB,CAAC,QAAmB;QACpC,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO;SACR;QACD,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;YAC1B,OAAO,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAChD,IAAI,EAAE,CAAC,KAAY,EAAE,EAAE;gBACrB,OAAO,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE;YAC9B,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;SACnC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;QACX,KAAK,CAAC,aAAa,EAAE,CAAC;IACxB,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,eAAe,CAAC;IAC9B,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,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,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QACD,MAAM,KAAK,GAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9F,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9F,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QACjG,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;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,aAAa,CAAC,CAAS,EAAE,CAAU;QACjC,OAAO,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,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,YAAY,CAAC,IAAO,EAAE,QAAW,EAAE,eAAyC;QAC1E,eAAe,GAAG,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACpD,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC;QACpC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;QAC9B,eAAe,CAAC,WAAW,GAAG,IAAI,CAAC;QACnC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC;QACpC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC;QAClC,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC;QAChC,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC;QAChC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GACzG,QAAQ,CAAC;QACX,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QACnE,IAAI,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAK,EAAQ,CAAC;QACzB,IACE,IAAI,CAAC,OAAO,KAAK,OAAO;YACxB,IAAI,CAAC,OAAO,KAAK,OAAO;YACxB,IAAI,CAAC,YAAY,KAAK,YAAY;YAClC,IAAI,CAAC,MAAM,KAAK,MAAM;YACtB,IAAI,CAAC,WAAW,KAAK,WAAW;YAChC,IAAI,CAAC,YAAY,KAAK,YAAY;YAClC,IAAI,CAAC,UAAU,KAAK,UAAU;YAC9B,IAAI,CAAC,QAAQ,KAAK,QAAQ;YAC1B,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAC1B;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,EAAE,eAAyB;QACpD,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACtC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;YAChB,OAAO,IAAI,CAAC;SACb;QACD,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;YACrD,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,gBAAgB,CAAC,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,kBAAkB,CAAC,MAAM,EAAE;oBACvC,OAAO,IAAI,CAAC,WAAW,CAAC;iBACzB;gBACD,IAAI,KAAK,KAAK,kBAAkB,CAAC,SAAS,EAAE;oBAC1C,OAAO,IAAI,CAAC,SAAS,CAAC;iBACvB;gBAED,MAAM,QAAQ,GAAG,CAAC,kBAAkB,CAAC,SAAS,EAAE,kBAAkB,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,kBAAkB,CAAC,CAAC;gBAG7C,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAG,kBAAkB,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,kBAAkB,CAAC,IAAG,SAAS,CAAA,EAAA,CAAC,KAAK,SAAS,EAAE;oBACrF,OAAO,IAAI,CAAC,SAAS,CAAC;iBACvB;gBAGD,MAAM,eAAe,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAG,kBAAkB,CAAC,IAAG,SAAS,CAAA,EAAA,CAAC,CAAC;gBAE3G,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;oBAC5B,OAAO,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,wBAAwB,EAAE,0CAAE,QAAQ,CAAC;iBAC9D;gBACD,OAAO,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAChE,CAAC;SACF,CAAC;QACF,MAAM,YAAY,GAAG,MAAC,IAAI,CAAC,KAAK,CAAC,eAAsD,0CAAE,MAAM,CAAC;QAEhG,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,kBAAkB,GAAG,eAAe,CACxC,MAAA,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,0CAAG,eAAe,EAAE,YAAY,CAAC,EACjE,mBAAmB,QAAyB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,qBAAqB,CAAC,CACpF,CAAC;YAEF,IAAI,kBAAkB,CAAC,MAAM,IAAK,kBAAkB,CAAC,MAA+B,CAAC,IAAI,EAAE;gBACzF,kBAAkB,CAAC,MAAM,GAAG,kBAAkB,CAC5C,IAAI,CAAC,QAAQ,EACb,kBAAkB,CAAC,MAA8B,CAClD,CAAC;aACH;YAED,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;SACtD;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;IAGS,mBAAmB,CAAC,KAAY,EAAE,KAAa;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;;AAzae,oCAAsB,GAAG,wBAA+B,CAAC;AAMzD,kBAAI,GAAkB,aAAa,CAAC;AAsatD,MAAM,OAAO,SAAqD,SAAQ,aAAgB;IAA1F;;QAEE,SAAI,GAAG,cAAc,CAAC,GAAG,CAAC;IAC5B,CAAC;;AAFiB,cAAI,GAAW,cAAc,CAAC,GAAG,CAAC;AAIpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,eAAe,EAAE,CAAC;IAClB,oBAAoB,EAAE,CAAC;IACvB,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACpD,CAAC,CAAC","file":"pie.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { degreeToRadian, 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_VISIBLE,\n POLAR_START_RADIAN,\n POLAR_END_RADIAN,\n DEFAULT_DATA_INDEX,\n ChartEvent,\n DEFAULT_DATA_KEY\n} from '../../constant';\nimport type { IPoint, Datum, StateValueType } from '../../typings';\nimport { normalizeStartEndAngle, polarToCartesian } from '../../util/math';\nimport { isSpecValueWithScale } from '../../util/scale';\nimport { field } from '../../util/object';\nimport type { IModelLayoutOption } from '../../model/interface';\nimport { PolarSeries } from '../polar/polar';\nimport type { IMark } from '../../mark/interface';\nimport { MarkTypeEnum } from '../../mark/interface/type';\nimport type { IArcMark } from '../../mark/arc';\nimport type { ITextMark } from '../../mark/text';\nimport type { IPathMark } from '../../mark/path';\nimport type { IArcSeries, SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum, 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 { registerDataSetInstanceTransform } from '../../data/register';\nimport type { IPieAnimationParams, PieAppearPreset } from './animation/animation';\nimport { registerPieAnimation } from './animation/animation';\nimport { animationConfig, shouldMarkDoMorph, userAnimationConfig } from '../../animation/utils';\nimport { AnimationStateEnum } from '../../animation/interface';\nimport type { IBasePieSeriesSpec, IPieSeriesSpec } from './interface';\nimport { SeriesData } from '../base/series-data';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { IAnimationTypeConfig } from '@visactor/vgrammar-core';\nimport { centerOffsetConfig } from './animation/centerOffset';\nimport { registerArcMark } from '../../mark/arc';\nimport { pieSeriesMark } from './constant';\nimport { Factory } from '../../core/factory';\nimport { isNil } from '@visactor/vutils';\nimport { PieSeriesSpecTransformer } from './pie-transformer';\n\nexport class BasePieSeries<T extends IBasePieSeriesSpec> extends PolarSeries<T> implements IArcSeries {\n static readonly transformerConstructor = PieSeriesSpecTransformer as any;\n readonly transformerConstructor = PieSeriesSpecTransformer;\n\n protected _pieMarkName: SeriesMarkNameEnum = SeriesMarkNameEnum.pie;\n protected _pieMarkType: MarkTypeEnum = MarkTypeEnum.arc;\n\n static readonly mark: SeriesMarkMap = pieSeriesMark;\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 _buildMarkAttributeContext() {\n super._buildMarkAttributeContext();\n // center\n this._markAttributeContext.getCenter = () => {\n return {\n x: () => this._center?.x ?? this._region.getLayoutRect().width / 2,\n y: () => this._center?.y ?? this._region.getLayoutRect().height / 2\n };\n };\n\n // angle scale\n this._markAttributeContext.startAngleScale = (datum: Datum) => this.startAngleScale(datum);\n this._markAttributeContext.endAngleScale = (datum: Datum) => this.endAngleScale(datum);\n }\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) ? degreeToRadian(this._spec.startAngle) : this._startAngle,\n isValid(this._spec.endAngle) ? degreeToRadian(this._spec.endAngle) : this._endAngle\n );\n this._startAngle = normalized.startAngle;\n this._endAngle = normalized.endAngle;\n this._padAngle = isValid(this._spec.padAngle) ? degreeToRadian(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 this._specAngleField = this._angleField.slice();\n this._specRadiusField = [];\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\n viewData.transform(\n {\n type: 'pie',\n options: {\n angleField: this._angleField[0],\n startAngle: this._startAngle,\n endAngle: this._endAngle,\n minAngle: isValid(this._spec.minAngle) ? degreeToRadian(this._spec.minAngle) : 0,\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, { name: `${PREFIX}_series_${this.id}_viewDataLabel` });\n viewDataLabel.parse([this.getViewData()], {\n type: 'dataview'\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: shouldMarkDoMorph(this._spec, this._pieMarkName),\n defaultMorphElementKey: this._seriesField,\n key: DEFAULT_DATA_KEY,\n groupKey: this._seriesField,\n skipBeforeLayouted: true,\n isSeriesMark: true,\n customShape: this._spec.pie?.customShape,\n stateSort: this._spec.pie?.stateSort\n }\n ) as IArcMark;\n }\n\n private startAngleScale(datum: Datum) {\n return field(ARC_START_ANGLE)(datum);\n }\n\n private endAngleScale(datum: Datum) {\n return field(ARC_END_ANGLE)(datum);\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: datum => this.startAngleScale(datum),\n endAngle: datum => this.endAngleScale(datum),\n padAngle: this._padAngle,\n centerOffset: this._centerOffset\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n initInteraction(): void {\n this._parseInteractionConfig(this._pieMark ? [this._pieMark] : []);\n }\n\n protected initTooltip() {\n super.initTooltip();\n\n this._pieMark && this._tooltipHelper.activeTriggerSet.mark.add(this._pieMark);\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 initLabelMarkStyle(textMark: ITextMark) {\n if (!textMark) {\n return;\n }\n this.setMarkStyle(textMark, {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n text: (datum: Datum) => {\n return datum[this.getDimensionField()[0]];\n },\n fill: this.getColorAttribute(),\n z: this.dataToPositionZ.bind(this)\n });\n }\n\n afterInitMark(): void {\n super.afterInitMark();\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._specAngleField;\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 if (!spec) {\n return;\n }\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 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 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 _compareSpec(spec: T, prevSpec: T, ignoreCheckKeys?: { [key: string]: true }) {\n ignoreCheckKeys = ignoreCheckKeys ?? { data: true };\n ignoreCheckKeys.centerX = true;\n ignoreCheckKeys.centerX = true;\n ignoreCheckKeys.centerY = true;\n ignoreCheckKeys.centerOffset = true;\n ignoreCheckKeys.radius = true;\n ignoreCheckKeys.innerRadius = true;\n ignoreCheckKeys.cornerRadius = true;\n ignoreCheckKeys.startAngle = true;\n ignoreCheckKeys.endAngle = true;\n ignoreCheckKeys.padAngle = true;\n const { centerX, centerY, centerOffset, radius, innerRadius, cornerRadius, startAngle, endAngle, padAngle } =\n prevSpec;\n const result = super._compareSpec(spec, prevSpec, ignoreCheckKeys);\n spec = spec ?? ({} as T);\n if (\n spec.centerY !== centerY ||\n spec.centerX !== centerX ||\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, checkInViewData?: boolean): IPoint | null {\n const angle = datum[ARC_MIDDLE_ANGLE];\n if (isNil(angle)) {\n return null;\n }\n if (checkInViewData && !this.isDatumInViewData(datum)) {\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 const prevMarkElement = [...markElements].reverse().find(e => e.data[0]?.[DEFAULT_DATA_INDEX] < dataIndex);\n\n if (outState.includes(state)) {\n return prevMarkElement?.getNextGraphicAttributes()?.endAngle;\n }\n return prevMarkElement?.getGraphicAttribute('endAngle', true);\n }\n };\n const appearPreset = (this._spec.animationAppear as IStateAnimateSpec<PieAppearPreset>)?.preset;\n\n if (this._pieMark) {\n const pieAnimationConfig = animationConfig(\n Factory.getAnimationInKey('pie')?.(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.pie, this._spec, this._markAttributeContext)\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\n getDefaultShapeType() {\n return 'circle';\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 // make sure this function fast\n protected _noAnimationDataKey(datum: Datum, index: number) {\n return index;\n }\n\n getActiveMarks(): IMark[] {\n return [this._pieMark];\n }\n}\n\nexport class PieSeries<T extends IPieSeriesSpec = IPieSeriesSpec> extends BasePieSeries<T> implements IArcSeries {\n static readonly type: string = SeriesTypeEnum.pie;\n type = SeriesTypeEnum.pie;\n}\n\nexport const registerPieSeries = () => {\n registerArcMark();\n registerPieAnimation();\n Factory.registerSeries(PieSeries.type, PieSeries);\n};\n"]}
1
+ {"version":3,"sources":["../src/series/pie/pie.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACL,cAAc,EACd,eAAe,EACf,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,KAAK,EACL,MAAM,EACN,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAO7C,OAAO,EAAsB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,MAAM,OAAO,aAA4C,SAAQ,WAAc;IAA/E;;QAEW,2BAAsB,GAAG,wBAAwB,CAAC;QAEjD,iBAAY,SAA8C;QAC1D,iBAAY,SAAkC;QAkB9C,gBAAW,GAAW,kBAAkB,CAAC;QACzC,cAAS,GAAW,gBAAgB,CAAC;QAGrC,aAAQ,GAAoB,IAAI,CAAC;QACjC,eAAU,GAAqB,IAAI,CAAC;QACpC,mBAAc,GAAqB,IAAI,CAAC;QA+SlD,0BAAqB,GAAG,CAAC,KAAY,EAAiB,EAAE;YAEtD,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,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,gBAAgB,CAAC,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;IAkFJ,CAAC;IA7ZC,SAAS;;QACP,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QACvD,OAAO;YACL,CAAC,EAAE,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,OAAO,mCAAI,KAAK,GAAG,CAAC;YACnC,CAAC,EAAE,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,OAAO,mCAAI,MAAM,GAAG,CAAC;SACrC,CAAC;IACJ,CAAC;IAaS,0BAA0B;QAClC,KAAK,CAAC,0BAA0B,EAAE,CAAC;QAEnC,IAAI,CAAC,qBAAqB,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC;YAC5C,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAC3B,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;SAC5B,CAAC,CAAC;QAGH,IAAI,CAAC,qBAAqB,CAAC,eAAe,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC3F,IAAI,CAAC,qBAAqB,CAAC,aAAa,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACzF,CAAC;IAED,eAAe;;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,YAAY,mCAAI,CAAC,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,YAAY,mCAAI,CAAC,CAAC;QAElD,MAAM,UAAU,GAAG,sBAAsB,CACvC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EACzF,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CACpF,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAGxF,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;QAEvB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAChD,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC7B,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,gCAAgC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAE5D,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,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChF,YAAY,EAAE,eAAe;gBAC7B,UAAU,EAAE,aAAa;gBACzB,OAAO,EAAE,SAAS;gBAClB,aAAa,EAAE,gBAAgB;gBAC/B,QAAQ,EAAE,UAAU;gBACpB,UAAU,EAAE,YAAY;gBACxB,GAAG,EAAE,KAAK;aACA;SACb,EACD,KAAK,CACN,CAAC;QAEF,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,IAAI,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACzG,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE;YACxC,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG,IAAI,UAAU,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,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC;YACvD,sBAAsB,EAAE,IAAI,CAAC,YAAY;YACzC,GAAG,EAAE,gBAAgB;YACrB,QAAQ,EAAE,IAAI,CAAC,YAAY;YAC3B,kBAAkB,EAAE,IAAI;YACxB,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,0CAAE,WAAW;YACxC,SAAS,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,0CAAE,SAAS;SACrC,CACU,CAAC;IAChB,CAAC;IAEO,eAAe,CAAC,KAAY;QAClC,OAAO,KAAK,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAEO,aAAa,CAAC,KAAY;QAChC,OAAO,KAAK,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC;IACrC,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,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC3B,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC3B,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBAC9B,WAAW,EAAE,oBAAoB,CAAC,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,oBAAoB,CAAC,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,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAChD,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;gBAC5C,QAAQ,EAAE,IAAI,CAAC,SAAS;gBACxB,YAAY,EAAE,IAAI,CAAC,aAAa;aACjC,EACD,QAAQ,EACR,cAAc,CAAC,MAAM,CACtB,CAAC;SACH;IACH,CAAC;IAED,eAAe;QACb,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;IAES,WAAW;QACnB,KAAK,CAAC,WAAW,EAAE,CAAC;QAEpB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChF,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,cAAc,CAAC,SAAS,CAAC,CAAC;iBAC1G;aACF;SACF;IACH,CAAC;IAED,kBAAkB,CAAC,QAAmB;QACpC,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO;SACR;QACD,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;YAC1B,OAAO,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAChD,IAAI,EAAE,CAAC,KAAY,EAAE,EAAE;gBACrB,OAAO,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE;YAC9B,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;SACnC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;QACX,KAAK,CAAC,aAAa,EAAE,CAAC;IACxB,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,eAAe,CAAC;IAC9B,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,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,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QACD,MAAM,KAAK,GAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9F,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9F,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QACjG,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;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,aAAa,CAAC,CAAS,EAAE,CAAU;QACjC,OAAO,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,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,YAAY,CAAC,IAAO,EAAE,QAAW,EAAE,eAAyC;QAC1E,eAAe,GAAG,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACpD,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC;QACpC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;QAC9B,eAAe,CAAC,WAAW,GAAG,IAAI,CAAC;QACnC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC;QACpC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC;QAClC,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC;QAChC,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC;QAChC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GACzG,QAAQ,CAAC;QACX,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QACnE,IAAI,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAK,EAAQ,CAAC;QACzB,IACE,IAAI,CAAC,OAAO,KAAK,OAAO;YACxB,IAAI,CAAC,OAAO,KAAK,OAAO;YACxB,IAAI,CAAC,YAAY,KAAK,YAAY;YAClC,IAAI,CAAC,MAAM,KAAK,MAAM;YACtB,IAAI,CAAC,WAAW,KAAK,WAAW;YAChC,IAAI,CAAC,YAAY,KAAK,YAAY;YAClC,IAAI,CAAC,UAAU,KAAK,UAAU;YAC9B,IAAI,CAAC,QAAQ,KAAK,QAAQ;YAC1B,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAC1B;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,EAAE,eAAyB;QACpD,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACtC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;YAChB,OAAO,IAAI,CAAC;SACb;QACD,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;YACrD,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,gBAAgB,CAAC,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,kBAAkB,CAAC,MAAM,EAAE;oBACvC,OAAO,IAAI,CAAC,WAAW,CAAC;iBACzB;gBACD,IAAI,KAAK,KAAK,kBAAkB,CAAC,SAAS,EAAE;oBAC1C,OAAO,IAAI,CAAC,SAAS,CAAC;iBACvB;gBAED,MAAM,QAAQ,GAAG,CAAC,kBAAkB,CAAC,SAAS,EAAE,kBAAkB,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,kBAAkB,CAAC,CAAC;gBAG7C,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAG,kBAAkB,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,kBAAkB,CAAC,IAAG,SAAS,CAAA,EAAA,CAAC,KAAK,SAAS,EAAE;oBACrF,OAAO,IAAI,CAAC,SAAS,CAAC;iBACvB;gBAGD,MAAM,eAAe,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAG,kBAAkB,CAAC,IAAG,SAAS,CAAA,EAAA,CAAC,CAAC;gBAE3G,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;oBAC5B,OAAO,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,wBAAwB,EAAE,0CAAE,QAAQ,CAAC;iBAC9D;gBACD,OAAO,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAChE,CAAC;SACF,CAAC;QACF,MAAM,YAAY,GAAG,MAAC,IAAI,CAAC,KAAK,CAAC,eAAsD,0CAAE,MAAM,CAAC;QAEhG,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,kBAAkB,GAAG,eAAe,CACxC,MAAA,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,0CAAG,eAAe,EAAE,YAAY,CAAC,EACjE,mBAAmB,QAAyB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,qBAAqB,CAAC,CACpF,CAAC;YAEF,IAAI,kBAAkB,CAAC,MAAM,IAAK,kBAAkB,CAAC,MAA+B,CAAC,IAAI,EAAE;gBACzF,kBAAkB,CAAC,MAAM,GAAG,kBAAkB,CAC5C,IAAI,CAAC,QAAQ,EACb,kBAAkB,CAAC,MAA8B,CAClD,CAAC;aACH;YAED,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;SACtD;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;IAGS,mBAAmB,CAAC,KAAY,EAAE,KAAa;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;;AAvae,oCAAsB,GAAG,wBAA+B,CAAC;AAMzD,kBAAI,GAAkB,aAAa,CAAC;AAoatD,MAAM,OAAO,SAAqD,SAAQ,aAAgB;IAA1F;;QAEE,SAAI,GAAG,cAAc,CAAC,GAAG,CAAC;IAC5B,CAAC;;AAFiB,cAAI,GAAW,cAAc,CAAC,GAAG,CAAC;AAIpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,eAAe,EAAE,CAAC;IAClB,oBAAoB,EAAE,CAAC;IACvB,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACpD,CAAC,CAAC","file":"pie.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { degreeToRadian, 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_VISIBLE,\n POLAR_START_RADIAN,\n POLAR_END_RADIAN,\n DEFAULT_DATA_INDEX,\n ChartEvent,\n DEFAULT_DATA_KEY\n} from '../../constant';\nimport type { IPoint, Datum, StateValueType } from '../../typings';\nimport { normalizeStartEndAngle, polarToCartesian } from '../../util/math';\nimport { isSpecValueWithScale } from '../../util/scale';\nimport { field } from '../../util/object';\nimport type { IModelLayoutOption } from '../../model/interface';\nimport { PolarSeries } from '../polar/polar';\nimport type { IMark } from '../../mark/interface';\nimport { MarkTypeEnum } from '../../mark/interface/type';\nimport type { IArcMark } from '../../mark/arc';\nimport type { ITextMark } from '../../mark/text';\nimport type { IPathMark } from '../../mark/path';\nimport type { IArcSeries, SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum, 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 { registerDataSetInstanceTransform } from '../../data/register';\nimport type { IPieAnimationParams, PieAppearPreset } from './animation/animation';\nimport { registerPieAnimation } from './animation/animation';\nimport { animationConfig, shouldMarkDoMorph, userAnimationConfig } from '../../animation/utils';\nimport { AnimationStateEnum } from '../../animation/interface';\nimport type { IBasePieSeriesSpec, IPieSeriesSpec } from './interface';\nimport { SeriesData } from '../base/series-data';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { IAnimationTypeConfig } from '@visactor/vgrammar-core';\nimport { centerOffsetConfig } from './animation/centerOffset';\nimport { registerArcMark } from '../../mark/arc';\nimport { pieSeriesMark } from './constant';\nimport { Factory } from '../../core/factory';\nimport { isNil } from '@visactor/vutils';\nimport { PieSeriesSpecTransformer } from './pie-transformer';\n\nexport class BasePieSeries<T extends IBasePieSeriesSpec> extends PolarSeries<T> implements IArcSeries {\n static readonly transformerConstructor = PieSeriesSpecTransformer as any;\n readonly transformerConstructor = PieSeriesSpecTransformer;\n\n protected _pieMarkName: SeriesMarkNameEnum = SeriesMarkNameEnum.pie;\n protected _pieMarkType: MarkTypeEnum = MarkTypeEnum.arc;\n\n static readonly mark: SeriesMarkMap = pieSeriesMark;\n\n protected _viewDataLabel!: SeriesData;\n\n // 饼图渲染不依赖于极坐标系轴,因此由 series 自己存储相关配置信息\n getCenter(): IPoint {\n const { width, height } = this._region.getLayoutRect();\n return {\n x: this._spec?.centerX ?? width / 2,\n y: this._spec?.centerY ?? 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 _buildMarkAttributeContext() {\n super._buildMarkAttributeContext();\n // center\n this._markAttributeContext.getCenter = () => ({\n x: () => this.getCenter().x,\n y: () => this.getCenter().y\n });\n\n // angle scale\n this._markAttributeContext.startAngleScale = (datum: Datum) => this.startAngleScale(datum);\n this._markAttributeContext.endAngleScale = (datum: Datum) => this.endAngleScale(datum);\n }\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) ? degreeToRadian(this._spec.startAngle) : this._startAngle,\n isValid(this._spec.endAngle) ? degreeToRadian(this._spec.endAngle) : this._endAngle\n );\n this._startAngle = normalized.startAngle;\n this._endAngle = normalized.endAngle;\n this._padAngle = isValid(this._spec.padAngle) ? degreeToRadian(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 this._specAngleField = this._angleField.slice();\n this._specRadiusField = [];\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\n viewData.transform(\n {\n type: 'pie',\n options: {\n angleField: this._angleField[0],\n startAngle: this._startAngle,\n endAngle: this._endAngle,\n minAngle: isValid(this._spec.minAngle) ? degreeToRadian(this._spec.minAngle) : 0,\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, { name: `${PREFIX}_series_${this.id}_viewDataLabel` });\n viewDataLabel.parse([this.getViewData()], {\n type: 'dataview'\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: shouldMarkDoMorph(this._spec, this._pieMarkName),\n defaultMorphElementKey: this._seriesField,\n key: DEFAULT_DATA_KEY,\n groupKey: this._seriesField,\n skipBeforeLayouted: true,\n isSeriesMark: true,\n customShape: this._spec.pie?.customShape,\n stateSort: this._spec.pie?.stateSort\n }\n ) as IArcMark;\n }\n\n private startAngleScale(datum: Datum) {\n return field(ARC_START_ANGLE)(datum);\n }\n\n private endAngleScale(datum: Datum) {\n return field(ARC_END_ANGLE)(datum);\n }\n\n initMarkStyle(): void {\n const pieMark = this._pieMark;\n if (pieMark) {\n this.setMarkStyle(\n pieMark,\n {\n x: () => this.getCenter().x,\n y: () => this.getCenter().y,\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: datum => this.startAngleScale(datum),\n endAngle: datum => this.endAngleScale(datum),\n padAngle: this._padAngle,\n centerOffset: this._centerOffset\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n initInteraction(): void {\n this._parseInteractionConfig(this._pieMark ? [this._pieMark] : []);\n }\n\n protected initTooltip() {\n super.initTooltip();\n\n this._pieMark && this._tooltipHelper.activeTriggerSet.mark.add(this._pieMark);\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 initLabelMarkStyle(textMark: ITextMark) {\n if (!textMark) {\n return;\n }\n this.setMarkStyle(textMark, {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n text: (datum: Datum) => {\n return datum[this.getDimensionField()[0]];\n },\n fill: this.getColorAttribute(),\n z: this.dataToPositionZ.bind(this)\n });\n }\n\n afterInitMark(): void {\n super.afterInitMark();\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._specAngleField;\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 if (!spec) {\n return;\n }\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 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 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 _compareSpec(spec: T, prevSpec: T, ignoreCheckKeys?: { [key: string]: true }) {\n ignoreCheckKeys = ignoreCheckKeys ?? { data: true };\n ignoreCheckKeys.centerX = true;\n ignoreCheckKeys.centerX = true;\n ignoreCheckKeys.centerY = true;\n ignoreCheckKeys.centerOffset = true;\n ignoreCheckKeys.radius = true;\n ignoreCheckKeys.innerRadius = true;\n ignoreCheckKeys.cornerRadius = true;\n ignoreCheckKeys.startAngle = true;\n ignoreCheckKeys.endAngle = true;\n ignoreCheckKeys.padAngle = true;\n const { centerX, centerY, centerOffset, radius, innerRadius, cornerRadius, startAngle, endAngle, padAngle } =\n prevSpec;\n const result = super._compareSpec(spec, prevSpec, ignoreCheckKeys);\n spec = spec ?? ({} as T);\n if (\n spec.centerY !== centerY ||\n spec.centerX !== centerX ||\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, checkInViewData?: boolean): IPoint | null {\n const angle = datum[ARC_MIDDLE_ANGLE];\n if (isNil(angle)) {\n return null;\n }\n if (checkInViewData && !this.isDatumInViewData(datum)) {\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 const prevMarkElement = [...markElements].reverse().find(e => e.data[0]?.[DEFAULT_DATA_INDEX] < dataIndex);\n\n if (outState.includes(state)) {\n return prevMarkElement?.getNextGraphicAttributes()?.endAngle;\n }\n return prevMarkElement?.getGraphicAttribute('endAngle', true);\n }\n };\n const appearPreset = (this._spec.animationAppear as IStateAnimateSpec<PieAppearPreset>)?.preset;\n\n if (this._pieMark) {\n const pieAnimationConfig = animationConfig(\n Factory.getAnimationInKey('pie')?.(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.pie, this._spec, this._markAttributeContext)\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\n getDefaultShapeType() {\n return 'circle';\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 // make sure this function fast\n protected _noAnimationDataKey(datum: Datum, index: number) {\n return index;\n }\n\n getActiveMarks(): IMark[] {\n return [this._pieMark];\n }\n}\n\nexport class PieSeries<T extends IPieSeriesSpec = IPieSeriesSpec> extends BasePieSeries<T> implements IArcSeries {\n static readonly type: string = SeriesTypeEnum.pie;\n type = SeriesTypeEnum.pie;\n}\n\nexport const registerPieSeries = () => {\n registerArcMark();\n registerPieAnimation();\n Factory.registerSeries(PieSeries.type, PieSeries);\n};\n"]}
@@ -56,5 +56,5 @@ export declare abstract class PolarSeries<T extends IPolarSeriesSpec = IPolarSer
56
56
  protected _computeLayoutRadius(): number;
57
57
  fillData(): void;
58
58
  _sortDataInAxisDomain(): void;
59
- protected _getInvalidDefined: (datum: Datum) => boolean;
59
+ protected _getInvalidDefined(datum: Datum): boolean;
60
60
  }
@@ -13,8 +13,7 @@ import { sortDataInAxisHelper } from "../util/utils";
13
13
  export class PolarSeries extends BaseSeries {
14
14
  constructor() {
15
15
  super(...arguments), this.coordinate = "polar", this._outerRadius = POLAR_DEFAULT_RADIUS,
16
- this._innerRadius = 0, this._angleField = [], this._radiusField = [], this._sortDataByAxis = !1,
17
- this._getInvalidDefined = datum => !(this.angleAxisHelper.isContinuous && !couldBeValidNumber(datum[this._angleField[0]])) && !(this.radiusAxisHelper.isContinuous && !couldBeValidNumber(datum[this._radiusField[0]]));
16
+ this._innerRadius = 0, this._angleField = [], this._radiusField = [], this._sortDataByAxis = !1;
18
17
  }
19
18
  get outerRadius() {
20
19
  return this._outerRadius;
@@ -143,5 +142,8 @@ export class PolarSeries extends BaseSeries {
143
142
  var _a, _b;
144
143
  (null === (_b = null === (_a = this.getViewData()) || void 0 === _a ? void 0 : _a.latestData) || void 0 === _b ? void 0 : _b.length) && sortDataInAxisHelper(this.angleAxisHelper, this._angleField[0], this.getViewData().latestData);
145
144
  }
145
+ _getInvalidDefined(datum) {
146
+ return !(this.angleAxisHelper.isContinuous && !couldBeValidNumber(datum[this._angleField[0]])) && !(this.radiusAxisHelper.isContinuous && !couldBeValidNumber(datum[this._radiusField[0]]));
147
+ }
146
148
  }
147
149
  //# sourceMappingURL=polar.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/polar/polar.ts"],"names":[],"mappings":"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","file":"polar.js","sourcesContent":["import type { IBaseScale } from '@visactor/vscale';\nimport type { IPoint, IPolarPoint } from '../../typings/coordinate';\nimport type { IPolarSeries } from '../interface';\nimport { array, isValid, isNil } from '@visactor/vutils';\nimport { couldBeValidNumber } from '../../util/type';\nimport type { IPolarAxisHelper } from '../../component/axis/polar/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport { POLAR_DEFAULT_RADIUS } from '../../constant/polar';\nimport { BaseSeries } from '../base/base-series';\nimport type { IPolarSeriesSpec } from './interface';\nimport type { Datum, StringOrNumber } from '../../typings';\nimport { sortDataInAxisHelper } from '../util/utils';\n\nexport abstract class PolarSeries<T extends IPolarSeriesSpec = IPolarSeriesSpec>\n extends BaseSeries<T>\n implements IPolarSeries\n{\n readonly coordinate: 'polar' = 'polar';\n\n protected _outerRadius: number = POLAR_DEFAULT_RADIUS;\n public get outerRadius() {\n return this._outerRadius;\n }\n\n protected _innerRadius: number = 0;\n public get innerRadius() {\n return this._innerRadius;\n }\n\n protected _angleField: string[] = [];\n getAngleField() {\n return this._angleField;\n }\n setAngleField(f: string | string[]): string[] {\n this._angleField = isValid(f) ? array(f) : [];\n return this._angleField;\n }\n\n protected _radiusField: string[] = [];\n getRadiusField() {\n return this._radiusField;\n }\n setRadiusField(f: string | string[]): string[] {\n this._radiusField = isValid(f) ? array(f) : [];\n return this._radiusField;\n }\n\n protected _specAngleField: string[];\n protected _specRadiusField: string[];\n\n protected _innerRadiusField!: string[];\n public get innerRadiusField() {\n return this._innerRadiusField;\n }\n setInnerRadiusField(f: string | string[]): string[] {\n this._innerRadiusField = array(f);\n return this._innerRadiusField;\n }\n\n protected _radiusScale!: IBaseScale;\n public get radiusScale() {\n return this._radiusScale;\n }\n setRadiusScale(s: IBaseScale) {\n this._radiusScale = s;\n return s;\n }\n\n protected _angleScale!: IBaseScale;\n public get angleScale() {\n return this._angleScale;\n }\n setAngleScale(s: IBaseScale) {\n this._angleScale = s;\n return s;\n }\n\n private _angleAxisHelper!: IPolarAxisHelper;\n public get angleAxisHelper() {\n return this._angleAxisHelper;\n }\n public set angleAxisHelper(h: IPolarAxisHelper) {\n this._angleAxisHelper = h;\n this.onAngleAxisHelperUpdate();\n }\n\n private _radiusAxisHelper!: IPolarAxisHelper;\n public get radiusAxisHelper() {\n return this._radiusAxisHelper;\n }\n public set radiusAxisHelper(h: IPolarAxisHelper) {\n this._radiusAxisHelper = h;\n this.onRadiusAxisHelperUpdate();\n }\n\n protected _sortDataByAxis: boolean = false;\n get sortDataByAxis() {\n return this._sortDataByAxis;\n }\n\n protected _buildMarkAttributeContext() {\n super._buildMarkAttributeContext();\n // position\n this._markAttributeContext.valueToPosition = this.valueToPosition.bind(this);\n this._markAttributeContext.getCenter = () => this.angleAxisHelper.center();\n this._markAttributeContext.getLayoutRadius = () => this._computeLayoutRadius();\n }\n\n valueToPosition(angleValue: StringOrNumber | StringOrNumber[], radiusValue: StringOrNumber | StringOrNumber[]) {\n if (isNil(angleValue) || isNil(radiusValue) || !this.angleAxisHelper || !this.radiusAxisHelper) {\n return { x: Number.NaN, y: Number.NaN };\n }\n const angle = this.angleAxisHelper.dataToPosition(array(angleValue));\n const radius = this.radiusAxisHelper.dataToPosition(array(radiusValue));\n // FIXME: 由于存在两个轴,这里的 坐标系转换逻辑会有点尬\n return this.angleAxisHelper.coordToPoint({ angle, radius });\n }\n\n dataToPosition(datum: Datum, checkInViewData?: boolean): IPoint {\n if (!datum || !this.angleAxisHelper || !this.radiusAxisHelper) {\n return null;\n }\n if (checkInViewData && !this.isDatumInViewData(datum)) {\n return null;\n }\n // FIXME: 由于存在两个轴,这里的 坐标系转换逻辑会有点尬\n return this.valueToPosition(\n this.getDatumPositionValues(datum, this._angleField),\n this.getDatumPositionValues(datum, this._radiusField)\n );\n }\n\n dataToPositionX(datum: Datum): number {\n return this.dataToPosition(datum)?.x;\n }\n\n dataToPositionY(datum: Datum): number {\n return this.dataToPosition(datum)?.y;\n }\n\n dataToPositionZ(datum: Datum): number {\n return 0;\n }\n\n // todo: 待实现\n positionToData(p: IPolarPoint): any {\n /* do nothing */\n }\n radiusToData(r: number): any {\n /* do nothing */\n }\n angleToData(a: number): any {\n /* do nothing */\n }\n\n getStatisticFields() {\n const fields: { key: string; operations: Array<'max' | 'min' | 'values'> }[] = [];\n if (this.radiusAxisHelper?.getScale) {\n this._radiusField.forEach(f => {\n const result: { key: string; operations: Array<'max' | 'min' | 'values'> } = { key: f, operations: [] };\n if (isContinuous(this.radiusAxisHelper.getScale(0).type)) {\n result.operations = ['max', 'min'];\n } else {\n result.operations = ['values'];\n }\n fields.push(result);\n });\n }\n if (this.angleAxisHelper?.getScale) {\n this._angleField.forEach(f => {\n const result: { key: string; operations: Array<'max' | 'min' | 'values'> } = { key: f, operations: [] };\n if (isContinuous(this.angleAxisHelper.getScale(0).type)) {\n result.operations = ['max', 'min'];\n } else {\n result.operations = ['values'];\n }\n fields.push(result);\n });\n }\n return fields;\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n if (isValid(this._spec.outerRadius)) {\n this._outerRadius = this._spec.outerRadius;\n }\n if (isValid(this._spec.radius)) {\n // 优先使用outerRadius, 但要兼容spec.radius\n this._outerRadius = this._spec.radius;\n }\n if (isValid(this._spec.innerRadius)) {\n this._innerRadius = this._spec.innerRadius;\n }\n\n if (isValid(this._spec.sortDataByAxis)) {\n this._sortDataByAxis = this._spec.sortDataByAxis === true;\n }\n }\n\n onRadiusAxisHelperUpdate(): void {\n this.onMarkPositionUpdate();\n }\n onAngleAxisHelperUpdate(): void {\n this.onMarkPositionUpdate();\n }\n\n afterInitMark(): void {\n super.afterInitMark();\n }\n\n protected _computeLayoutRadius() {\n const { width, height } = this._region.getLayoutRect();\n return Math.min(width / 2, height / 2);\n }\n\n fillData(): void {\n super.fillData();\n if (this.sortDataByAxis) {\n this._sortDataInAxisDomain();\n }\n }\n\n _sortDataInAxisDomain() {\n if (this.getViewData()?.latestData?.length) {\n sortDataInAxisHelper(this.angleAxisHelper, this._angleField[0], this.getViewData().latestData);\n }\n }\n\n protected _getInvalidDefined = (datum: Datum) => {\n if (this.angleAxisHelper.isContinuous) {\n if (!couldBeValidNumber(datum[this._angleField[0]])) {\n return false;\n }\n }\n if (this.radiusAxisHelper.isContinuous) {\n if (!couldBeValidNumber(datum[this._radiusField[0]])) {\n return false;\n }\n }\n return true;\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/series/polar/polar.ts"],"names":[],"mappings":"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","file":"polar.js","sourcesContent":["import type { IBaseScale } from '@visactor/vscale';\nimport type { IPoint, IPolarPoint } from '../../typings/coordinate';\nimport type { IPolarSeries } from '../interface';\nimport { array, isValid, isNil } from '@visactor/vutils';\nimport { couldBeValidNumber } from '../../util/type';\nimport type { IPolarAxisHelper } from '../../component/axis/polar/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport { POLAR_DEFAULT_RADIUS } from '../../constant/polar';\nimport { BaseSeries } from '../base/base-series';\nimport type { IPolarSeriesSpec } from './interface';\nimport type { Datum, StringOrNumber } from '../../typings';\nimport { sortDataInAxisHelper } from '../util/utils';\n\nexport abstract class PolarSeries<T extends IPolarSeriesSpec = IPolarSeriesSpec>\n extends BaseSeries<T>\n implements IPolarSeries\n{\n readonly coordinate: 'polar' = 'polar';\n\n protected _outerRadius: number = POLAR_DEFAULT_RADIUS;\n public get outerRadius() {\n return this._outerRadius;\n }\n\n protected _innerRadius: number = 0;\n public get innerRadius() {\n return this._innerRadius;\n }\n\n protected _angleField: string[] = [];\n getAngleField() {\n return this._angleField;\n }\n setAngleField(f: string | string[]): string[] {\n this._angleField = isValid(f) ? array(f) : [];\n return this._angleField;\n }\n\n protected _radiusField: string[] = [];\n getRadiusField() {\n return this._radiusField;\n }\n setRadiusField(f: string | string[]): string[] {\n this._radiusField = isValid(f) ? array(f) : [];\n return this._radiusField;\n }\n\n protected _specAngleField: string[];\n protected _specRadiusField: string[];\n\n protected _innerRadiusField!: string[];\n public get innerRadiusField() {\n return this._innerRadiusField;\n }\n setInnerRadiusField(f: string | string[]): string[] {\n this._innerRadiusField = array(f);\n return this._innerRadiusField;\n }\n\n protected _radiusScale!: IBaseScale;\n public get radiusScale() {\n return this._radiusScale;\n }\n setRadiusScale(s: IBaseScale) {\n this._radiusScale = s;\n return s;\n }\n\n protected _angleScale!: IBaseScale;\n public get angleScale() {\n return this._angleScale;\n }\n setAngleScale(s: IBaseScale) {\n this._angleScale = s;\n return s;\n }\n\n private _angleAxisHelper!: IPolarAxisHelper;\n public get angleAxisHelper() {\n return this._angleAxisHelper;\n }\n public set angleAxisHelper(h: IPolarAxisHelper) {\n this._angleAxisHelper = h;\n this.onAngleAxisHelperUpdate();\n }\n\n private _radiusAxisHelper!: IPolarAxisHelper;\n public get radiusAxisHelper() {\n return this._radiusAxisHelper;\n }\n public set radiusAxisHelper(h: IPolarAxisHelper) {\n this._radiusAxisHelper = h;\n this.onRadiusAxisHelperUpdate();\n }\n\n protected _sortDataByAxis: boolean = false;\n get sortDataByAxis() {\n return this._sortDataByAxis;\n }\n\n protected _buildMarkAttributeContext() {\n super._buildMarkAttributeContext();\n // position\n this._markAttributeContext.valueToPosition = this.valueToPosition.bind(this);\n this._markAttributeContext.getCenter = () => this.angleAxisHelper.center();\n this._markAttributeContext.getLayoutRadius = () => this._computeLayoutRadius();\n }\n\n valueToPosition(angleValue: StringOrNumber | StringOrNumber[], radiusValue: StringOrNumber | StringOrNumber[]) {\n if (isNil(angleValue) || isNil(radiusValue) || !this.angleAxisHelper || !this.radiusAxisHelper) {\n return { x: Number.NaN, y: Number.NaN };\n }\n const angle = this.angleAxisHelper.dataToPosition(array(angleValue));\n const radius = this.radiusAxisHelper.dataToPosition(array(radiusValue));\n // FIXME: 由于存在两个轴,这里的 坐标系转换逻辑会有点尬\n return this.angleAxisHelper.coordToPoint({ angle, radius });\n }\n\n dataToPosition(datum: Datum, checkInViewData?: boolean): IPoint {\n if (!datum || !this.angleAxisHelper || !this.radiusAxisHelper) {\n return null;\n }\n if (checkInViewData && !this.isDatumInViewData(datum)) {\n return null;\n }\n // FIXME: 由于存在两个轴,这里的 坐标系转换逻辑会有点尬\n return this.valueToPosition(\n this.getDatumPositionValues(datum, this._angleField),\n this.getDatumPositionValues(datum, this._radiusField)\n );\n }\n\n dataToPositionX(datum: Datum): number {\n return this.dataToPosition(datum)?.x;\n }\n\n dataToPositionY(datum: Datum): number {\n return this.dataToPosition(datum)?.y;\n }\n\n dataToPositionZ(datum: Datum): number {\n return 0;\n }\n\n // todo: 待实现\n positionToData(p: IPolarPoint): any {\n /* do nothing */\n }\n radiusToData(r: number): any {\n /* do nothing */\n }\n angleToData(a: number): any {\n /* do nothing */\n }\n\n getStatisticFields() {\n const fields: { key: string; operations: Array<'max' | 'min' | 'values'> }[] = [];\n if (this.radiusAxisHelper?.getScale) {\n this._radiusField.forEach(f => {\n const result: { key: string; operations: Array<'max' | 'min' | 'values'> } = { key: f, operations: [] };\n if (isContinuous(this.radiusAxisHelper.getScale(0).type)) {\n result.operations = ['max', 'min'];\n } else {\n result.operations = ['values'];\n }\n fields.push(result);\n });\n }\n if (this.angleAxisHelper?.getScale) {\n this._angleField.forEach(f => {\n const result: { key: string; operations: Array<'max' | 'min' | 'values'> } = { key: f, operations: [] };\n if (isContinuous(this.angleAxisHelper.getScale(0).type)) {\n result.operations = ['max', 'min'];\n } else {\n result.operations = ['values'];\n }\n fields.push(result);\n });\n }\n return fields;\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n if (isValid(this._spec.outerRadius)) {\n this._outerRadius = this._spec.outerRadius;\n }\n if (isValid(this._spec.radius)) {\n // 优先使用outerRadius, 但要兼容spec.radius\n this._outerRadius = this._spec.radius;\n }\n if (isValid(this._spec.innerRadius)) {\n this._innerRadius = this._spec.innerRadius;\n }\n\n if (isValid(this._spec.sortDataByAxis)) {\n this._sortDataByAxis = this._spec.sortDataByAxis === true;\n }\n }\n\n onRadiusAxisHelperUpdate(): void {\n this.onMarkPositionUpdate();\n }\n onAngleAxisHelperUpdate(): void {\n this.onMarkPositionUpdate();\n }\n\n afterInitMark(): void {\n super.afterInitMark();\n }\n\n protected _computeLayoutRadius() {\n const { width, height } = this._region.getLayoutRect();\n return Math.min(width / 2, height / 2);\n }\n\n fillData(): void {\n super.fillData();\n if (this.sortDataByAxis) {\n this._sortDataInAxisDomain();\n }\n }\n\n _sortDataInAxisDomain() {\n if (this.getViewData()?.latestData?.length) {\n sortDataInAxisHelper(this.angleAxisHelper, this._angleField[0], this.getViewData().latestData);\n }\n }\n\n protected _getInvalidDefined(datum: Datum) {\n if (this.angleAxisHelper.isContinuous) {\n if (!couldBeValidNumber(datum[this._angleField[0]])) {\n return false;\n }\n }\n if (this.radiusAxisHelper.isContinuous) {\n if (!couldBeValidNumber(datum[this._radiusField[0]])) {\n return false;\n }\n }\n return true;\n }\n}\n"]}
@@ -74,7 +74,7 @@ export class RadarSeries extends RoseLikeSeries {
74
74
  curveType: DEFAULT_LINEAR_INTERPOLATE,
75
75
  closePath: !0
76
76
  }, "normal", AttributeLevel.Series), "zero" !== this._invalidType && this.setMarkStyle(areaMark, {
77
- defined: this._getInvalidDefined,
77
+ defined: this._getInvalidDefined.bind(this),
78
78
  connectedType: this._getInvalidConnectType()
79
79
  }, "normal", AttributeLevel.Series), this.event.on(ChartEvent.viewDataStatisticsUpdate, {
80
80
  filter: param => param.model === this
@@ -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 } from '../mixin/line-mixin';\nimport type { ILineMark } from '../../mark/line';\nimport type { IMark, IMarkProgressiveConfig } from '../../mark/interface';\nimport { AttributeLevel, ChartEvent, POLAR_START_RADIAN } from '../../constant';\nimport { DEFAULT_LINEAR_INTERPOLATE } from '../../typings/interpolate';\nimport type { Datum, IPoint, IPolarPoint } from '../../typings';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface/type';\nimport { degreeToRadian, isArray, mixin, isValid } from '@visactor/vutils';\nimport type { IRadarSeriesSpec } from './interface';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport type { IRadarAnimationParams, RadarAppearPreset } from './animation';\nimport { registerRadarAnimation } from './animation';\nimport { RoseLikeSeries } from '../polar/rose-like';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { IAreaMark } from '../../mark/area';\nimport { registerAreaMark } from '../../mark/area';\nimport { registerLineMark } from '../../mark/line';\nimport { registerSymbolMark } from '../../mark/symbol';\nimport { radarSeriesMark } from './constant';\nimport { Factory } from '../../core/factory';\nimport { registerMarkOverlapTransform } from '@visactor/vgrammar-core';\nimport { LineLikeSeriesSpecTransformer } from '../mixin/line-mixin-transformer';\n\nexport interface RadarSeries<T extends IRadarSeriesSpec>\n extends Pick<\n LineLikeSeriesMixin,\n | 'initLineMark'\n | 'initSymbolMark'\n | 'initLabelMarkStyle'\n | 'initLineMarkStyle'\n | 'initSymbolMarkStyle'\n | 'encodeDefined'\n | '_lineMark'\n | '_symbolMark'\n | 'addOverlapCompile'\n >,\n RoseLikeSeries<T> {}\n\nexport class RadarSeries<T extends IRadarSeriesSpec = IRadarSeriesSpec> extends RoseLikeSeries<T> {\n static readonly type: string = SeriesTypeEnum.radar;\n type = SeriesTypeEnum.radar;\n\n static readonly mark: SeriesMarkMap = radarSeriesMark;\n static readonly transformerConstructor = LineLikeSeriesSpecTransformer as any;\n readonly transformerConstructor = LineLikeSeriesSpecTransformer;\n\n private _areaMark: ILineMark;\n protected _sortDataByAxis: boolean = false;\n\n initGroups() {\n // do nothing\n }\n\n compile(): void {\n super.compile();\n this.addOverlapCompile();\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 customShape: this._spec.area?.customShape,\n stateSort: this._spec.area?.stateSort\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.getStack()\n ? this.getDatumPositionValues(datum, this._innerRadiusField)\n : 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.getStack()\n ? this.getDatumPositionValues(datum, this._innerRadiusField)\n : this.radiusScale.domain()[0]\n ).y;\n return value;\n },\n fill: this.getColorAttribute(),\n curveType: DEFAULT_LINEAR_INTERPOLATE,\n closePath: true\n },\n 'normal',\n AttributeLevel.Series\n );\n\n if (this._invalidType !== 'zero') {\n this.setMarkStyle(\n areaMark,\n {\n defined: this._getInvalidDefined,\n connectedType: this._getInvalidConnectType()\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.event.on(ChartEvent.viewDataStatisticsUpdate, { filter: param => param.model === this }, () => {\n this.encodeDefined(areaMark, 'defined');\n });\n }\n }\n\n protected initTooltip() {\n super.initTooltip();\n\n this._lineMark && this._tooltipHelper.activeTriggerSet.dimension.add(this._lineMark);\n this._symbolMark && this._tooltipHelper.activeTriggerSet.mark.add(this._symbolMark);\n this._areaMark && this._tooltipHelper.activeTriggerSet.dimension.add(this._areaMark);\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: isValid(this._spec.startAngle) ? degreeToRadian(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 Factory.getAnimationInKey('radarGroup')?.(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.group, this._spec, this._markAttributeContext)\n )\n );\n }\n }\n\n // TODO: animationType\n const markAnimationMap: [IMark, string][] = [\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 = Factory.getAnimationInKey(animation);\n mark.setAnimationConfig(\n animationConfig(\n getAnimation?.(animationParams, appearPreset),\n userAnimationConfig(mark.name, this._spec, this._markAttributeContext)\n )\n );\n }\n });\n }\n\n getDefaultShapeType() {\n return 'square';\n }\n\n getActiveMarks(): IMark[] {\n return [this._areaMark, this._symbolMark, this._lineMark];\n }\n\n getSeriesStyle(datum: Datum) {\n return (attribute: string) => {\n let result = this._seriesMark?.getAttribute(attribute as any, datum) ?? undefined;\n if (attribute === 'fill' && !result) {\n attribute = 'stroke';\n result = this._seriesMark?.getAttribute(attribute, datum) ?? undefined;\n }\n if (attribute === 'stroke' && isArray(result)) {\n return result[0];\n }\n return result;\n };\n }\n}\n\nmixin(RadarSeries, LineLikeSeriesMixin);\n\nexport const registerRadarSeries = () => {\n registerMarkOverlapTransform();\n registerAreaMark();\n registerLineMark();\n registerSymbolMark();\n registerRadarAnimation();\n Factory.registerSeries(RadarSeries.type, RadarSeries);\n};\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 } from '../mixin/line-mixin';\nimport type { ILineMark } from '../../mark/line';\nimport type { IMark, IMarkProgressiveConfig } from '../../mark/interface';\nimport { AttributeLevel, ChartEvent, POLAR_START_RADIAN } from '../../constant';\nimport { DEFAULT_LINEAR_INTERPOLATE } from '../../typings/interpolate';\nimport type { Datum, IPoint, IPolarPoint } from '../../typings';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface/type';\nimport { degreeToRadian, isArray, mixin, isValid } from '@visactor/vutils';\nimport type { IRadarSeriesSpec } from './interface';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport type { IRadarAnimationParams, RadarAppearPreset } from './animation';\nimport { registerRadarAnimation } from './animation';\nimport { RoseLikeSeries } from '../polar/rose-like';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { IAreaMark } from '../../mark/area';\nimport { registerAreaMark } from '../../mark/area';\nimport { registerLineMark } from '../../mark/line';\nimport { registerSymbolMark } from '../../mark/symbol';\nimport { radarSeriesMark } from './constant';\nimport { Factory } from '../../core/factory';\nimport { registerMarkOverlapTransform } from '@visactor/vgrammar-core';\nimport { LineLikeSeriesSpecTransformer } from '../mixin/line-mixin-transformer';\n\nexport interface RadarSeries<T extends IRadarSeriesSpec>\n extends Pick<\n LineLikeSeriesMixin,\n | 'initLineMark'\n | 'initSymbolMark'\n | 'initLabelMarkStyle'\n | 'initLineMarkStyle'\n | 'initSymbolMarkStyle'\n | 'encodeDefined'\n | '_lineMark'\n | '_symbolMark'\n | 'addOverlapCompile'\n >,\n RoseLikeSeries<T> {}\n\nexport class RadarSeries<T extends IRadarSeriesSpec = IRadarSeriesSpec> extends RoseLikeSeries<T> {\n static readonly type: string = SeriesTypeEnum.radar;\n type = SeriesTypeEnum.radar;\n\n static readonly mark: SeriesMarkMap = radarSeriesMark;\n static readonly transformerConstructor = LineLikeSeriesSpecTransformer as any;\n readonly transformerConstructor = LineLikeSeriesSpecTransformer;\n\n private _areaMark: ILineMark;\n protected _sortDataByAxis: boolean = false;\n\n initGroups() {\n // do nothing\n }\n\n compile(): void {\n super.compile();\n this.addOverlapCompile();\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 customShape: this._spec.area?.customShape,\n stateSort: this._spec.area?.stateSort\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.getStack()\n ? this.getDatumPositionValues(datum, this._innerRadiusField)\n : 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.getStack()\n ? this.getDatumPositionValues(datum, this._innerRadiusField)\n : this.radiusScale.domain()[0]\n ).y;\n return value;\n },\n fill: this.getColorAttribute(),\n curveType: DEFAULT_LINEAR_INTERPOLATE,\n closePath: true\n },\n 'normal',\n AttributeLevel.Series\n );\n\n if (this._invalidType !== 'zero') {\n this.setMarkStyle(\n areaMark,\n {\n defined: this._getInvalidDefined.bind(this),\n connectedType: this._getInvalidConnectType()\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.event.on(ChartEvent.viewDataStatisticsUpdate, { filter: param => param.model === this }, () => {\n this.encodeDefined(areaMark, 'defined');\n });\n }\n }\n\n protected initTooltip() {\n super.initTooltip();\n\n this._lineMark && this._tooltipHelper.activeTriggerSet.dimension.add(this._lineMark);\n this._symbolMark && this._tooltipHelper.activeTriggerSet.mark.add(this._symbolMark);\n this._areaMark && this._tooltipHelper.activeTriggerSet.dimension.add(this._areaMark);\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: isValid(this._spec.startAngle) ? degreeToRadian(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 Factory.getAnimationInKey('radarGroup')?.(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.group, this._spec, this._markAttributeContext)\n )\n );\n }\n }\n\n // TODO: animationType\n const markAnimationMap: [IMark, string][] = [\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 = Factory.getAnimationInKey(animation);\n mark.setAnimationConfig(\n animationConfig(\n getAnimation?.(animationParams, appearPreset),\n userAnimationConfig(mark.name, this._spec, this._markAttributeContext)\n )\n );\n }\n });\n }\n\n getDefaultShapeType() {\n return 'square';\n }\n\n getActiveMarks(): IMark[] {\n return [this._areaMark, this._symbolMark, this._lineMark];\n }\n\n getSeriesStyle(datum: Datum) {\n return (attribute: string) => {\n let result = this._seriesMark?.getAttribute(attribute as any, datum) ?? undefined;\n if (attribute === 'fill' && !result) {\n attribute = 'stroke';\n result = this._seriesMark?.getAttribute(attribute, datum) ?? undefined;\n }\n if (attribute === 'stroke' && isArray(result)) {\n return result[0];\n }\n return result;\n };\n }\n}\n\nmixin(RadarSeries, LineLikeSeriesMixin);\n\nexport const registerRadarSeries = () => {\n registerMarkOverlapTransform();\n registerAreaMark();\n registerLineMark();\n registerSymbolMark();\n registerRadarAnimation();\n Factory.registerSeries(RadarSeries.type, RadarSeries);\n};\n"]}
@@ -1,7 +1,7 @@
1
- import type { DataView } from '@visactor/vdataset';
2
1
  import { AreaSeries } from '../area/area';
3
2
  import type { SeriesMarkMap } from '../interface';
4
3
  import { SeriesTypeEnum } from '../interface/type';
4
+ import type { Datum } from '../../typings';
5
5
  import type { IAreaSeriesSpec } from '../area/interface';
6
6
  export declare class RangeAreaSeries<T extends IAreaSeriesSpec = IAreaSeriesSpec> extends AreaSeries<T> {
7
7
  static readonly type: string;
@@ -9,7 +9,9 @@ export declare class RangeAreaSeries<T extends IAreaSeriesSpec = IAreaSeriesSpec
9
9
  static readonly mark: SeriesMarkMap;
10
10
  initMark(): void;
11
11
  initMarkStyle(): void;
12
+ initAreaMarkStyle(): void;
12
13
  protected initTooltip(): void;
13
- viewDataStatisticsUpdate(d: DataView): void;
14
+ protected _isFieldAllValid(): boolean;
15
+ protected _getInvalidDefined(datum: Datum): boolean;
14
16
  }
15
17
  export declare const registerRangeAreaSeries: () => void;
@@ -4,8 +4,6 @@ import { SeriesTypeEnum } from "../interface/type";
4
4
 
5
5
  import { registerAreaMark } from "../../mark/area";
6
6
 
7
- import { DEFAULT_SMOOTH_INTERPOLATE } from "../../typings/interpolate";
8
-
9
7
  import { AttributeLevel } from "../../constant";
10
8
 
11
9
  import { RangeAreaSeriesTooltipHelper } from "./tooltip-helper";
@@ -14,59 +12,57 @@ import { rangeAreaSeriesMark } from "./constant";
14
12
 
15
13
  import { Factory } from "../../core/factory";
16
14
 
15
+ import { couldBeValidNumber } from "../../util";
16
+
17
17
  export class RangeAreaSeries extends AreaSeries {
18
18
  constructor() {
19
19
  super(...arguments), this.type = SeriesTypeEnum.rangeArea;
20
20
  }
21
21
  initMark() {
22
- var _a, _b;
22
+ var _a;
23
+ const {customShape: customShape, stateSort: stateSort} = null !== (_a = this._spec.area) && void 0 !== _a ? _a : {};
23
24
  this._areaMark = this._createMark(RangeAreaSeries.mark.area, {
24
25
  defaultMorphElementKey: this.getDimensionField()[0],
25
26
  groupKey: this._seriesField,
26
27
  isSeriesMark: !0,
27
- customShape: null === (_a = this._spec.area) || void 0 === _a ? void 0 : _a.customShape,
28
- stateSort: null === (_b = this._spec.area) || void 0 === _b ? void 0 : _b.stateSort
28
+ customShape: customShape,
29
+ stateSort: stateSort
29
30
  });
30
31
  }
31
32
  initMarkStyle() {
32
- var _a, _b, _c, _d, _e;
33
- const userCurveType = null !== (_c = null === (_b = null === (_a = this.getSpec().area) || void 0 === _a ? void 0 : _a.style) || void 0 === _b ? void 0 : _b.curveType) && void 0 !== _c ? _c : null === (_e = null === (_d = this.getSpec().line) || void 0 === _d ? void 0 : _d.style) || void 0 === _e ? void 0 : _e.curveType, curveType = userCurveType === DEFAULT_SMOOTH_INTERPOLATE ? "horizontal" === this._direction ? "monotoneY" : "monotoneX" : userCurveType, areaMark = this._areaMark;
34
- areaMark && ("horizontal" === this._direction ? this.setMarkStyle(this._areaMark, {
35
- x: this.dataToPositionX.bind(this),
33
+ this.initAreaMarkStyle();
34
+ }
35
+ initAreaMarkStyle() {
36
+ const areaMark = this._areaMark;
37
+ areaMark && (super.initAreaMarkStyle(), "horizontal" === this._direction ? this.setMarkStyle(this._areaMark, {
36
38
  x1: datum => {
37
39
  if (!this._xAxisHelper) return Number.NaN;
38
40
  const {dataToPosition: dataToPosition} = this._xAxisHelper;
39
41
  return dataToPosition(this.getDatumPositionValues(datum, this._spec.xField[1]), {
40
42
  bandPosition: this._bandPosition
41
43
  });
42
- },
43
- y: this.dataToPositionY.bind(this),
44
- orient: this._direction
44
+ }
45
45
  }, "normal", AttributeLevel.Series) : this.setMarkStyle(this._areaMark, {
46
- x: this.dataToPositionX.bind(this),
47
46
  y1: datum => {
48
47
  if (!this._yAxisHelper) return Number.NaN;
49
48
  const {dataToPosition: dataToPosition} = this._yAxisHelper;
50
49
  return dataToPosition(this.getDatumPositionValues(datum, this._spec.yField[1]), {
51
50
  bandPosition: this._bandPosition
52
51
  });
53
- },
54
- y: this.dataToPositionY.bind(this)
52
+ }
55
53
  }, "normal", AttributeLevel.Series), this.setMarkStyle(areaMark, {
56
- fill: this.getColorAttribute(),
57
54
  stroke: !1
58
- }, "normal", AttributeLevel.Series), "zero" !== this._invalidType && this.setMarkStyle(areaMark, {
59
- defined: this._getInvalidDefined,
60
- connectedType: this._getInvalidConnectType()
61
- }, "normal", AttributeLevel.Series), this.setMarkStyle(areaMark, {
62
- curveType: curveType
63
- }, "normal", AttributeLevel.Built_In));
55
+ }, "normal", AttributeLevel.Series));
64
56
  }
65
57
  initTooltip() {
66
58
  this._tooltipHelper = new RangeAreaSeriesTooltipHelper(this), this._areaMark && this._tooltipHelper.activeTriggerSet.dimension.add(this._areaMark);
67
59
  }
68
- viewDataStatisticsUpdate(d) {
69
- super.viewDataStatisticsUpdate(d), this.encodeDefined(this._areaMark, "defined");
60
+ _isFieldAllValid() {
61
+ const viewStatistics = this.getViewDataStatistics(), fields = this.fieldY;
62
+ return !!(viewStatistics && viewStatistics.latestData && fields.length) && fields.every((field => viewStatistics.latestData[field] && viewStatistics.latestData[field].allValid));
63
+ }
64
+ _getInvalidDefined(datum) {
65
+ return !!super._getInvalidDefined(datum) && !(this._yAxisHelper && this._yAxisHelper.isContinuous && !couldBeValidNumber(datum[this._specYField[1]]));
70
66
  }
71
67
  }
72
68