@visactor/vchart 1.7.2 → 1.7.4

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 (271) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +17262 -14085
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/utils.d.ts +1 -0
  6. package/cjs/animation/utils.js +16 -8
  7. package/cjs/animation/utils.js.map +1 -1
  8. package/cjs/chart/bar/bar-3d.d.ts +2 -2
  9. package/cjs/chart/bar/bar-3d.js +2 -2
  10. package/cjs/chart/bar/bar-3d.js.map +1 -1
  11. package/cjs/chart/base-chart.js +3 -1
  12. package/cjs/chart/base-chart.js.map +1 -1
  13. package/cjs/chart/cartesian/interface.d.ts +1 -1
  14. package/cjs/chart/cartesian/interface.js.map +1 -1
  15. package/cjs/chart/sequence/sequence.js +1 -0
  16. package/cjs/chart/sequence/sequence.js.map +1 -1
  17. package/cjs/component/axis/cartesian/axis.js +4 -2
  18. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  19. package/cjs/component/axis/cartesian/band-axis.js +2 -2
  20. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  21. package/cjs/component/axis/cartesian/util/common.d.ts +0 -2
  22. package/cjs/component/axis/cartesian/util/common.js +2 -14
  23. package/cjs/component/axis/cartesian/util/common.js.map +1 -1
  24. package/cjs/component/axis/interface/common.d.ts +1 -0
  25. package/cjs/component/axis/interface/common.js.map +1 -1
  26. package/cjs/component/axis/polar/axis.js +3 -1
  27. package/cjs/component/axis/polar/axis.js.map +1 -1
  28. package/cjs/component/axis/polar/interface/common.d.ts +2 -3
  29. package/cjs/component/axis/polar/interface/common.js.map +1 -1
  30. package/cjs/component/base/base-component.js +1 -1
  31. package/cjs/component/base/base-component.js.map +1 -1
  32. package/cjs/component/crosshair/base.d.ts +4 -5
  33. package/cjs/component/crosshair/base.js +38 -25
  34. package/cjs/component/crosshair/base.js.map +1 -1
  35. package/cjs/component/crosshair/cartesian.d.ts +11 -34
  36. package/cjs/component/crosshair/cartesian.js +118 -109
  37. package/cjs/component/crosshair/cartesian.js.map +1 -1
  38. package/cjs/component/crosshair/config.d.ts +6 -0
  39. package/cjs/component/crosshair/config.js +8 -2
  40. package/cjs/component/crosshair/config.js.map +1 -1
  41. package/cjs/component/crosshair/interface/spec.d.ts +7 -3
  42. package/cjs/component/crosshair/interface/spec.js.map +1 -1
  43. package/cjs/component/crosshair/polar.d.ts +12 -54
  44. package/cjs/component/crosshair/polar.js +109 -82
  45. package/cjs/component/crosshair/polar.js.map +1 -1
  46. package/cjs/component/label/label.d.ts +2 -1
  47. package/cjs/component/label/label.js +13 -8
  48. package/cjs/component/label/label.js.map +1 -1
  49. package/cjs/component/label/util.d.ts +1 -8
  50. package/cjs/component/label/util.js +6 -11
  51. package/cjs/component/label/util.js.map +1 -1
  52. package/cjs/component/legend/continuous/interface.d.ts +1 -0
  53. package/cjs/component/legend/continuous/interface.js.map +1 -1
  54. package/cjs/component/legend/continuous/legend.js +5 -3
  55. package/cjs/component/legend/continuous/legend.js.map +1 -1
  56. package/cjs/component/marker/base-marker.d.ts +22 -24
  57. package/cjs/component/marker/base-marker.js +39 -50
  58. package/cjs/component/marker/base-marker.js.map +1 -1
  59. package/cjs/component/marker/interface.d.ts +19 -9
  60. package/cjs/component/marker/interface.js.map +1 -1
  61. package/cjs/component/marker/mark-area/interface/spec.d.ts +10 -12
  62. package/cjs/component/marker/mark-area/interface/spec.js.map +1 -1
  63. package/cjs/component/marker/mark-area/mark-area.d.ts +3 -2
  64. package/cjs/component/marker/mark-area/mark-area.js +12 -22
  65. package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
  66. package/cjs/component/marker/mark-line/interface/spec.d.ts +20 -9
  67. package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
  68. package/cjs/component/marker/mark-line/mark-line.d.ts +4 -2
  69. package/cjs/component/marker/mark-line/mark-line.js +60 -60
  70. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  71. package/cjs/component/marker/mark-point/interface/spec.d.ts +8 -6
  72. package/cjs/component/marker/mark-point/interface/spec.js.map +1 -1
  73. package/cjs/component/marker/mark-point/mark-point.d.ts +3 -2
  74. package/cjs/component/marker/mark-point/mark-point.js +15 -19
  75. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  76. package/cjs/component/marker/utils.d.ts +13 -2
  77. package/cjs/component/marker/utils.js +108 -39
  78. package/cjs/component/marker/utils.js.map +1 -1
  79. package/cjs/component/tooltip/tooltip.js +3 -2
  80. package/cjs/component/tooltip/tooltip.js.map +1 -1
  81. package/cjs/constant/index.d.ts +2 -1
  82. package/cjs/constant/index.js +1 -1
  83. package/cjs/constant/index.js.map +1 -1
  84. package/cjs/core/index.d.ts +1 -1
  85. package/cjs/core/index.js +1 -1
  86. package/cjs/core/index.js.map +1 -1
  87. package/cjs/core/vchart.js +1 -0
  88. package/cjs/core/vchart.js.map +1 -1
  89. package/cjs/data/transforms/aggregation.d.ts +3 -3
  90. package/cjs/data/transforms/aggregation.js +5 -7
  91. package/cjs/data/transforms/aggregation.js.map +1 -1
  92. package/cjs/event/events/dimension/util/polar.js +2 -2
  93. package/cjs/event/events/dimension/util/polar.js.map +1 -1
  94. package/cjs/event/events/index.d.ts +1 -0
  95. package/cjs/event/events/index.js +16 -1
  96. package/cjs/event/events/index.js.map +1 -1
  97. package/cjs/event/index.d.ts +2 -0
  98. package/cjs/event/index.js +21 -0
  99. package/cjs/event/index.js.map +1 -0
  100. package/cjs/index.d.ts +1 -0
  101. package/cjs/index.js +2 -1
  102. package/cjs/index.js.map +1 -1
  103. package/cjs/interaction/interface.js +1 -1
  104. package/cjs/layout/layout3d/index.js +1 -1
  105. package/cjs/layout/layout3d/index.js.map +1 -1
  106. package/cjs/model/base-model.js +4 -4
  107. package/cjs/model/base-model.js.map +1 -1
  108. package/cjs/model/interface.d.ts +1 -0
  109. package/cjs/model/interface.js.map +1 -1
  110. package/cjs/region/interface.d.ts +1 -0
  111. package/cjs/region/interface.js.map +1 -1
  112. package/cjs/region/region.d.ts +3 -0
  113. package/cjs/region/region.js +30 -16
  114. package/cjs/region/region.js.map +1 -1
  115. package/cjs/series/bar/bar.js +6 -11
  116. package/cjs/series/bar/bar.js.map +1 -1
  117. package/cjs/series/base/base-series.js +8 -7
  118. package/cjs/series/base/base-series.js.map +1 -1
  119. package/cjs/series/box-plot/box-plot.js +4 -12
  120. package/cjs/series/box-plot/box-plot.js.map +1 -1
  121. package/cjs/series/heatmap/heatmap.js +4 -9
  122. package/cjs/series/heatmap/heatmap.js.map +1 -1
  123. package/cjs/series/mixin/line-mixin.js +1 -0
  124. package/cjs/series/mixin/line-mixin.js.map +1 -1
  125. package/cjs/series/pie/pie.js +1 -1
  126. package/cjs/series/pie/pie.js.map +1 -1
  127. package/cjs/series/range-column/range-column.js +7 -15
  128. package/cjs/series/range-column/range-column.js.map +1 -1
  129. package/cjs/series/util/utils.d.ts +5 -0
  130. package/cjs/series/util/utils.js +18 -2
  131. package/cjs/series/util/utils.js.map +1 -1
  132. package/cjs/series/waterfall/waterfall.js +8 -12
  133. package/cjs/series/waterfall/waterfall.js.map +1 -1
  134. package/cjs/theme/builtin/common/component/crosshair.js +0 -8
  135. package/cjs/theme/builtin/common/component/crosshair.js.map +1 -1
  136. package/cjs/typings/visual.d.ts +3 -2
  137. package/cjs/typings/visual.js.map +1 -1
  138. package/esm/animation/utils.d.ts +1 -0
  139. package/esm/animation/utils.js +12 -7
  140. package/esm/animation/utils.js.map +1 -1
  141. package/esm/chart/bar/bar-3d.d.ts +2 -2
  142. package/esm/chart/bar/bar-3d.js +3 -3
  143. package/esm/chart/bar/bar-3d.js.map +1 -1
  144. package/esm/chart/base-chart.js +3 -1
  145. package/esm/chart/base-chart.js.map +1 -1
  146. package/esm/chart/cartesian/interface.d.ts +1 -1
  147. package/esm/chart/cartesian/interface.js.map +1 -1
  148. package/esm/chart/sequence/sequence.js +1 -0
  149. package/esm/chart/sequence/sequence.js.map +1 -1
  150. package/esm/component/axis/cartesian/axis.js +4 -2
  151. package/esm/component/axis/cartesian/axis.js.map +1 -1
  152. package/esm/component/axis/cartesian/band-axis.js +1 -3
  153. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  154. package/esm/component/axis/cartesian/util/common.d.ts +0 -2
  155. package/esm/component/axis/cartesian/util/common.js +0 -11
  156. package/esm/component/axis/cartesian/util/common.js.map +1 -1
  157. package/esm/component/axis/interface/common.d.ts +1 -0
  158. package/esm/component/axis/interface/common.js.map +1 -1
  159. package/esm/component/axis/polar/axis.js +3 -1
  160. package/esm/component/axis/polar/axis.js.map +1 -1
  161. package/esm/component/axis/polar/interface/common.d.ts +2 -3
  162. package/esm/component/axis/polar/interface/common.js.map +1 -1
  163. package/esm/component/base/base-component.js +1 -1
  164. package/esm/component/base/base-component.js.map +1 -1
  165. package/esm/component/crosshair/base.d.ts +4 -5
  166. package/esm/component/crosshair/base.js +37 -25
  167. package/esm/component/crosshair/base.js.map +1 -1
  168. package/esm/component/crosshair/cartesian.d.ts +11 -34
  169. package/esm/component/crosshair/cartesian.js +111 -102
  170. package/esm/component/crosshair/cartesian.js.map +1 -1
  171. package/esm/component/crosshair/config.d.ts +6 -0
  172. package/esm/component/crosshair/config.js +7 -0
  173. package/esm/component/crosshair/config.js.map +1 -1
  174. package/esm/component/crosshair/interface/spec.d.ts +7 -3
  175. package/esm/component/crosshair/interface/spec.js.map +1 -1
  176. package/esm/component/crosshair/polar.d.ts +12 -54
  177. package/esm/component/crosshair/polar.js +109 -78
  178. package/esm/component/crosshair/polar.js.map +1 -1
  179. package/esm/component/label/label.d.ts +2 -1
  180. package/esm/component/label/label.js +12 -8
  181. package/esm/component/label/label.js.map +1 -1
  182. package/esm/component/label/util.d.ts +1 -8
  183. package/esm/component/label/util.js +2 -8
  184. package/esm/component/label/util.js.map +1 -1
  185. package/esm/component/legend/continuous/interface.d.ts +1 -0
  186. package/esm/component/legend/continuous/interface.js.map +1 -1
  187. package/esm/component/legend/continuous/legend.js +5 -3
  188. package/esm/component/legend/continuous/legend.js.map +1 -1
  189. package/esm/component/marker/base-marker.d.ts +22 -24
  190. package/esm/component/marker/base-marker.js +41 -52
  191. package/esm/component/marker/base-marker.js.map +1 -1
  192. package/esm/component/marker/interface.d.ts +19 -9
  193. package/esm/component/marker/interface.js.map +1 -1
  194. package/esm/component/marker/mark-area/interface/spec.d.ts +10 -12
  195. package/esm/component/marker/mark-area/interface/spec.js.map +1 -1
  196. package/esm/component/marker/mark-area/mark-area.d.ts +3 -2
  197. package/esm/component/marker/mark-area/mark-area.js +10 -22
  198. package/esm/component/marker/mark-area/mark-area.js.map +1 -1
  199. package/esm/component/marker/mark-line/interface/spec.d.ts +20 -9
  200. package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
  201. package/esm/component/marker/mark-line/mark-line.d.ts +4 -2
  202. package/esm/component/marker/mark-line/mark-line.js +58 -54
  203. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  204. package/esm/component/marker/mark-point/interface/spec.d.ts +8 -6
  205. package/esm/component/marker/mark-point/interface/spec.js.map +1 -1
  206. package/esm/component/marker/mark-point/mark-point.d.ts +3 -2
  207. package/esm/component/marker/mark-point/mark-point.js +12 -20
  208. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  209. package/esm/component/marker/utils.d.ts +13 -2
  210. package/esm/component/marker/utils.js +103 -35
  211. package/esm/component/marker/utils.js.map +1 -1
  212. package/esm/component/tooltip/tooltip.js +3 -1
  213. package/esm/component/tooltip/tooltip.js.map +1 -1
  214. package/esm/constant/index.d.ts +2 -1
  215. package/esm/constant/index.js +1 -1
  216. package/esm/constant/index.js.map +1 -1
  217. package/esm/core/index.d.ts +1 -1
  218. package/esm/core/index.js +1 -1
  219. package/esm/core/index.js.map +1 -1
  220. package/esm/core/vchart.js +1 -0
  221. package/esm/core/vchart.js.map +1 -1
  222. package/esm/data/transforms/aggregation.d.ts +3 -3
  223. package/esm/data/transforms/aggregation.js +6 -8
  224. package/esm/data/transforms/aggregation.js.map +1 -1
  225. package/esm/event/events/dimension/util/polar.js +2 -2
  226. package/esm/event/events/dimension/util/polar.js.map +1 -1
  227. package/esm/event/events/index.d.ts +1 -0
  228. package/esm/event/events/index.js +2 -0
  229. package/esm/event/events/index.js.map +1 -1
  230. package/esm/event/index.d.ts +2 -0
  231. package/esm/event/index.js +4 -0
  232. package/esm/event/index.js.map +1 -0
  233. package/esm/index.d.ts +1 -0
  234. package/esm/index.js +2 -0
  235. package/esm/index.js.map +1 -1
  236. package/esm/interaction/interface.js +1 -1
  237. package/esm/layout/layout3d/index.js +1 -1
  238. package/esm/layout/layout3d/index.js.map +1 -1
  239. package/esm/model/base-model.js +4 -5
  240. package/esm/model/base-model.js.map +1 -1
  241. package/esm/model/interface.d.ts +1 -0
  242. package/esm/model/interface.js.map +1 -1
  243. package/esm/region/interface.d.ts +1 -0
  244. package/esm/region/interface.js.map +1 -1
  245. package/esm/region/region.d.ts +3 -0
  246. package/esm/region/region.js +31 -15
  247. package/esm/region/region.js.map +1 -1
  248. package/esm/series/bar/bar.js +5 -9
  249. package/esm/series/bar/bar.js.map +1 -1
  250. package/esm/series/base/base-series.js +6 -5
  251. package/esm/series/base/base-series.js.map +1 -1
  252. package/esm/series/box-plot/box-plot.js +5 -11
  253. package/esm/series/box-plot/box-plot.js.map +1 -1
  254. package/esm/series/heatmap/heatmap.js +4 -8
  255. package/esm/series/heatmap/heatmap.js.map +1 -1
  256. package/esm/series/mixin/line-mixin.js +1 -0
  257. package/esm/series/mixin/line-mixin.js.map +1 -1
  258. package/esm/series/pie/pie.js +1 -1
  259. package/esm/series/pie/pie.js.map +1 -1
  260. package/esm/series/range-column/range-column.js +6 -12
  261. package/esm/series/range-column/range-column.js.map +1 -1
  262. package/esm/series/util/utils.d.ts +5 -0
  263. package/esm/series/util/utils.js +15 -0
  264. package/esm/series/util/utils.js.map +1 -1
  265. package/esm/series/waterfall/waterfall.js +7 -12
  266. package/esm/series/waterfall/waterfall.js.map +1 -1
  267. package/esm/theme/builtin/common/component/crosshair.js +0 -8
  268. package/esm/theme/builtin/common/component/crosshair.js.map +1 -1
  269. package/esm/typings/visual.d.ts +3 -2
  270. package/esm/typings/visual.js.map +1 -1
  271. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chart/sequence/sequence.ts"],"names":[],"mappings":"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","file":"sequence.js","sourcesContent":["import { LinkSeries, registerLinkSeries } from '../../series/link/link';\nimport { DotSeries, registerDotSeries } from '../../series/dot/dot';\nimport type { IGridLayoutSpec } from '../../layout/interface';\nimport { BaseChart } from '../base-chart';\nimport type { ISequenceChartSpec, ISequenceSeriesSpec } from './interface';\nimport type { IRegion, IRegionSpec } from '../../region/interface';\nimport { Factory } from '../../core/factory';\nimport { SeriesTypeEnum } from '../../series/interface/type';\nimport { ChartTypeEnum } from '../interface/type';\nimport type { Datum } from '../../typings';\nimport { DataView } from '@visactor/vdataset';\nimport type { ISeriesOption } from '../../series/interface';\nimport type { ICartesianAxisSpec, IScrollBarSpec } from '../../component';\nimport { SCROLL_BAR_DEFAULT_SIZE } from '../../constant/scroll-bar';\nimport { array } from '@visactor/vutils';\nimport { normalizeLayoutPaddingSpec } from '../../util';\nimport { IFilterMode } from '../../component/data-zoom/constant';\n\nexport class SequenceChart extends BaseChart {\n static readonly type: string = ChartTypeEnum.sequence;\n static readonly view: string = 'singleDefault'; // csj-Q: view是什么含义\n readonly type: string = ChartTypeEnum.sequence;\n\n /**\n * @override\n * @description 主要是处理布局逻辑 & 部分仅针对sequenceChart的特殊属性\n */\n transformSpec(spec: ISequenceChartSpec): void {\n super.transformSpec(spec);\n\n // 初始化目标属性\n let rowNum = 0;\n const elements: any[] = [];\n const region: IRegionSpec[] = [];\n const axes: ICartesianAxisSpec[] = [];\n const scrollBar: IScrollBarSpec[] = [];\n const rowHeight: any = [];\n\n // 计算默认series padding和series高度\n const defaultSeriesPadding = 20;\n const seriesRegionNum = spec.series.filter(d => d.type !== SeriesTypeEnum.link).length;\n const defaultSeriesRowHeight =\n (this._layoutRect.height - defaultSeriesPadding * (seriesRegionNum - 1)) / seriesRegionNum;\n const leftAppendPadding = spec?.appendPadding?.left || 0;\n const rightAppendPadding = spec?.appendPadding?.right || 0;\n\n if (spec?.legends) {\n elements.push({\n modelId: `legendRow${rowNum}`,\n col: 1,\n row: rowNum\n });\n this.addAttrToComponentSpec(spec.legends, 'id', `legendRow${rowNum}`);\n // legend offset 和 padding 兼容处理\n const legendSpec = array(spec.legends);\n let legendHeight: any = legendSpec[0].height ?? 40;\n if (legendSpec[0].padding) {\n const legendPadding = normalizeLayoutPaddingSpec(legendSpec[0].padding);\n legendHeight += Number(legendPadding?.bottom ?? 0);\n legendHeight += Number(legendPadding?.top ?? 0);\n legendSpec[0].offsetY = Number(legendSpec[0]?.offsetY ?? 0) + Number(legendPadding?.top ?? 0);\n }\n rowHeight.push({\n index: rowNum,\n size: legendHeight\n });\n rowNum++;\n }\n\n if (spec?.dataZoom) {\n elements.push({\n modelId: `dataZoomRow${rowNum}`,\n col: 1,\n row: rowNum\n });\n this.addAttrToComponentSpec(spec.dataZoom, 'id', `dataZoomRow${rowNum}`);\n rowNum++;\n\n // 增加空行,拟合series padding效果\n rowHeight.push({\n index: rowNum,\n size: 10\n });\n rowNum++;\n }\n\n // 遍历axes\n // 1. 在elements中添加时间轴元素\n // 2. 并统计rowNum\n // 在sequenceChart中,axes有几种情况(本期先考虑1和2,也就是默认只有1个top轴):1.不声明axes 2.声明且为仅有一个top axes 3.声明且仅有一个bottom axes 4.多个axes组合\n // if(spec.axes === null || spec?.axes[0]?.orient === 'top') {\n // Tips: id should not has duplicate name\n region.push({\n id: `regionAxesRow${rowNum}`\n });\n elements.push({\n modelId: `axesRow${rowNum}`,\n col: 1,\n row: rowNum\n });\n spec.axes[0].id = `axesRow${rowNum}`;\n spec.axes[0].regionIndex = Array.from(Array(this._spec.series.length - 1), (_, index) => index + 1);\n rowNum++;\n // }\n\n // 遍历series\n // 1. 在spec.layout => elements、region数组和spec.axes的数组中中添加元素\n // 2. 为series绑定regionIndex\n // 3. 统计rowNum\n // 4. 用空行拟合series padding\n spec?.series?.forEach((seriesSpec: ISequenceSeriesSpec) => {\n if (\n ([SeriesTypeEnum.bar, SeriesTypeEnum.line, SeriesTypeEnum.area, SeriesTypeEnum.dot] as string[]).includes(\n seriesSpec.type\n )\n ) {\n // elements数组\n elements.push({\n modelId: `${seriesSpec.type}Row${rowNum}`,\n col: 1,\n row: rowNum\n });\n elements.push({\n modelId: `axesLeftRow${rowNum}`,\n col: 0,\n row: rowNum\n });\n\n // region数组\n region.push({\n id: `${seriesSpec.type}Row${rowNum}`,\n clip: false\n });\n\n rowHeight.push({\n index: rowNum,\n size: seriesSpec?.height || defaultSeriesRowHeight\n });\n\n // axes数组添加left axes(每个series都需要一个left axes)\n axes.push({\n orient: 'left',\n id: `axesLeftRow${rowNum}`,\n type: seriesSpec.type === SeriesTypeEnum.dot ? 'band' : 'linear',\n visible: seriesSpec.type !== SeriesTypeEnum.dot,\n\n // 对于bar series,axes title模拟bar title\n title: {\n visible: true,\n // 特殊处理时序图的 title 样式,默认的坐标轴左右轴会进行旋转\n autoRotate: false,\n style: {\n text: (seriesSpec as any)?.barTitle,\n dx: -20,\n textBaseline: 'middle',\n textAlign: 'end'\n }\n },\n // 对于bar series,axes grid模拟series分割线\n grid: {\n visible:\n typeof (seriesSpec as any)?.grid?.visible === 'boolean' ? (seriesSpec as any)?.grid?.visible : true, // bar grid默认绘制\n style: (datum: Datum, index: number) => {\n let lineWidth = 0;\n if (index === 0) {\n const style = (seriesSpec as any)?.grid?.style;\n\n // 兼容一下spec中通过strokeWidth申明的方式\n lineWidth = style?.lineWidth ?? style?.strokeWidth ?? 1;\n }\n return {\n lineWidth,\n stroke: (seriesSpec as any)?.grid?.style?.stroke || '#dfdfdf',\n lineDash: [0, 0]\n };\n }\n },\n // 其他轴元素隐藏\n domainLine: {\n visible: false\n },\n tick: {\n visible: false\n },\n label: {\n visible: false\n },\n\n // 绑定regionIndex\n regionIndex: region.length - 1\n });\n\n // scrollBar 内置\n if (seriesSpec.type === SeriesTypeEnum.dot) {\n elements.push({\n modelId: `scrollBarRightRow${rowNum}`,\n col: 2,\n row: rowNum\n });\n const dataLength = this._getSeriesDataLength(spec, seriesSpec);\n let ratio = 0;\n if (dataLength) {\n ratio = (seriesSpec?.height || defaultSeriesRowHeight) / (dataLength * 30);\n }\n // scrollBar数组增加一个right scrollBar\n scrollBar.push({\n orient: 'right',\n visible: seriesSpec.type === SeriesTypeEnum.dot && ratio < 1,\n id: `scrollBarRightRow${rowNum}`,\n start: 0,\n end: Math.min(ratio, 1),\n filterMode: IFilterMode.axis,\n regionIndex: region.length - 1,\n axisId: `axesLeftRow${rowNum}`,\n ...array(spec?.scrollBar)[0]\n });\n }\n\n // seriesSpec绑定regionIndex\n seriesSpec.regionIndex = region.length - 1;\n\n rowNum++;\n\n // 增加空行,拟合series padding效果\n rowHeight.push({\n index: rowNum,\n size: seriesSpec?.padding || defaultSeriesPadding\n });\n rowNum++;\n\n // chart的leftAppendPadding用于具体元素的dx偏移\n (seriesSpec as any).leftAppendPadding = leftAppendPadding;\n\n // title和subTitle自动定位到画布最左端\n if (seriesSpec.type === SeriesTypeEnum.dot) {\n (seriesSpec as any).title.style.dx = -leftAppendPadding;\n (seriesSpec as any).subTitle.style.dx = -leftAppendPadding;\n }\n }\n });\n\n // 对于link series,所有属性跟随它绑定的dot series\n spec?.series?.forEach((seriesSpec: ISequenceSeriesSpec) => {\n if (seriesSpec.type === SeriesTypeEnum.link) {\n const dotRowNum = seriesSpec.dotSeriesIndex + 1;\n elements.push({\n modelId: `${seriesSpec.type}Row${dotRowNum}`,\n col: 1,\n row: dotRowNum - 1\n });\n seriesSpec.regionIndex = spec.series[seriesSpec.dotSeriesIndex].regionIndex;\n (seriesSpec as any).leftAppendPadding = leftAppendPadding;\n (seriesSpec as any).height = (spec.series[seriesSpec.dotSeriesIndex] as any).height;\n (seriesSpec as any).clipHeight = (spec.series[seriesSpec.dotSeriesIndex] as any).clipHeight;\n }\n });\n\n // 添加legends和datazoom的regionIndex\n if (spec?.legends) {\n this.addAttrToComponentSpec(spec.legends, 'regionIndex', [region.length - 1]);\n }\n // if ((spec as any)?.dataZoom) {\n // (spec as any).dataZoom[0].regionIndex = Array.from({length: region.length - 1},(item, index)=> index+1);\n // }\n\n const layout: IGridLayoutSpec = {\n type: 'grid',\n col: 4,\n row: rowNum,\n colWidth: [\n {\n index: 0,\n size: leftAppendPadding\n },\n {\n index: 2,\n size: SCROLL_BAR_DEFAULT_SIZE\n },\n {\n index: 3,\n size: rightAppendPadding\n }\n ],\n rowHeight: rowHeight,\n elements: elements\n };\n\n spec.layout = layout;\n spec.region = region;\n spec.axes?.push(...axes);\n spec.scrollBar = scrollBar;\n }\n\n /**\n * @override\n * @description 主要是将link series关联的dot data放到link series中\n */\n protected _createSeries(seriesSpec: ISequenceSeriesSpec[]) {\n seriesSpec.forEach((spec, index) => {\n if (spec.type === SeriesTypeEnum.link) {\n spec.dotSeriesSpec = this._spec.series[spec.dotSeriesIndex];\n }\n\n let region: IRegion | undefined;\n if (spec.regionId) {\n region = this.getRegionsInUserId(spec.regionId);\n }\n if (!region) {\n region = this.getRegionsInIndex(spec.regionIndex ? [spec.regionIndex] : undefined)[0];\n }\n if (!region) {\n return;\n }\n const series = Factory.createSeries(spec.type, spec, {\n ...this._modelOption,\n region,\n specIndex: index,\n specKey: 'series',\n globalScale: this._globalScale\n } as ISeriesOption);\n\n if (series) {\n series.created();\n this._series.push(series);\n region.addSeries(series);\n }\n });\n }\n\n addAttrToComponentSpec(componentSpec: any, attr: string, value: any) {\n if (Array.isArray(componentSpec)) {\n componentSpec[0][attr] = value;\n } else {\n componentSpec[attr] = value;\n }\n return componentSpec;\n }\n\n private _getSeriesDataLength(spec: any, seriesSpec: any) {\n if (seriesSpec.data) {\n const _d = array(seriesSpec.data)[0];\n if (_d instanceof DataView) {\n return _d.latestData?.length;\n }\n return _d.values?.length;\n }\n const dataTemp = array(spec.data).find((_d, index) => {\n if (seriesSpec.dataId) {\n if (_d instanceof DataView) {\n return _d.name === seriesSpec.dataId;\n }\n return _d.id === seriesSpec.dataId;\n }\n return seriesSpec.dataIndex === index;\n });\n if (!dataTemp) {\n return 0;\n }\n if (dataTemp instanceof DataView) {\n return dataTemp.latestData.length;\n }\n return dataTemp.values.length;\n }\n}\n\nexport const registerSequenceChart = () => {\n registerDotSeries();\n registerLinkSeries();\n Factory.registerChart(SequenceChart.type, SequenceChart);\n};\n"]}
1
+ {"version":3,"sources":["../src/chart/sequence/sequence.ts"],"names":[],"mappings":"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","file":"sequence.js","sourcesContent":["import { LinkSeries, registerLinkSeries } from '../../series/link/link';\nimport { DotSeries, registerDotSeries } from '../../series/dot/dot';\nimport type { IGridLayoutSpec } from '../../layout/interface';\nimport { BaseChart } from '../base-chart';\nimport type { ISequenceChartSpec, ISequenceSeriesSpec } from './interface';\nimport type { IRegion, IRegionSpec } from '../../region/interface';\nimport { Factory } from '../../core/factory';\nimport { SeriesTypeEnum } from '../../series/interface/type';\nimport { ChartTypeEnum } from '../interface/type';\nimport type { Datum } from '../../typings';\nimport { DataView } from '@visactor/vdataset';\nimport type { ISeriesOption } from '../../series/interface';\nimport type { ICartesianAxisSpec, IScrollBarSpec } from '../../component';\nimport { SCROLL_BAR_DEFAULT_SIZE } from '../../constant/scroll-bar';\nimport { array } from '@visactor/vutils';\nimport { normalizeLayoutPaddingSpec } from '../../util';\nimport { IFilterMode } from '../../component/data-zoom/constant';\n\nexport class SequenceChart extends BaseChart {\n static readonly type: string = ChartTypeEnum.sequence;\n static readonly view: string = 'singleDefault'; // csj-Q: view是什么含义\n readonly type: string = ChartTypeEnum.sequence;\n\n /**\n * @override\n * @description 主要是处理布局逻辑 & 部分仅针对sequenceChart的特殊属性\n */\n transformSpec(spec: ISequenceChartSpec): void {\n super.transformSpec(spec);\n\n // 初始化目标属性\n let rowNum = 0;\n const elements: any[] = [];\n const region: IRegionSpec[] = [];\n const axes: ICartesianAxisSpec[] = [];\n const scrollBar: IScrollBarSpec[] = [];\n const rowHeight: any = [];\n\n // 计算默认series padding和series高度\n const defaultSeriesPadding = 20;\n const seriesRegionNum = spec.series.filter(d => d.type !== SeriesTypeEnum.link).length;\n const defaultSeriesRowHeight =\n (this._layoutRect.height - defaultSeriesPadding * (seriesRegionNum - 1)) / seriesRegionNum;\n const leftAppendPadding = spec?.appendPadding?.left || 0;\n const rightAppendPadding = spec?.appendPadding?.right || 0;\n\n if (spec?.legends) {\n elements.push({\n modelId: `legendRow${rowNum}`,\n col: 1,\n row: rowNum\n });\n this.addAttrToComponentSpec(spec.legends, 'id', `legendRow${rowNum}`);\n // legend offset 和 padding 兼容处理\n const legendSpec = array(spec.legends);\n let legendHeight: any = legendSpec[0].height ?? 40;\n if (legendSpec[0].padding) {\n const legendPadding = normalizeLayoutPaddingSpec(legendSpec[0].padding);\n legendHeight += Number(legendPadding?.bottom ?? 0);\n legendHeight += Number(legendPadding?.top ?? 0);\n legendSpec[0].offsetY = Number(legendSpec[0]?.offsetY ?? 0) + Number(legendPadding?.top ?? 0);\n }\n rowHeight.push({\n index: rowNum,\n size: legendHeight\n });\n rowNum++;\n }\n\n if (spec?.dataZoom) {\n elements.push({\n modelId: `dataZoomRow${rowNum}`,\n col: 1,\n row: rowNum\n });\n this.addAttrToComponentSpec(spec.dataZoom, 'id', `dataZoomRow${rowNum}`);\n rowNum++;\n\n // 增加空行,拟合series padding效果\n rowHeight.push({\n index: rowNum,\n size: 10\n });\n rowNum++;\n }\n\n // 遍历axes\n // 1. 在elements中添加时间轴元素\n // 2. 并统计rowNum\n // 在sequenceChart中,axes有几种情况(本期先考虑1和2,也就是默认只有1个top轴):1.不声明axes 2.声明且为仅有一个top axes 3.声明且仅有一个bottom axes 4.多个axes组合\n // if(spec.axes === null || spec?.axes[0]?.orient === 'top') {\n // Tips: id should not has duplicate name\n region.push({\n id: `regionAxesRow${rowNum}`\n });\n elements.push({\n modelId: `axesRow${rowNum}`,\n col: 1,\n row: rowNum\n });\n spec.axes[0].id = `axesRow${rowNum}`;\n spec.axes[0].regionIndex = Array.from(Array(this._spec.series.length - 1), (_, index) => index + 1);\n rowNum++;\n // }\n\n // 遍历series\n // 1. 在spec.layout => elements、region数组和spec.axes的数组中中添加元素\n // 2. 为series绑定regionIndex\n // 3. 统计rowNum\n // 4. 用空行拟合series padding\n spec?.series?.forEach((seriesSpec: ISequenceSeriesSpec) => {\n if (\n ([SeriesTypeEnum.bar, SeriesTypeEnum.line, SeriesTypeEnum.area, SeriesTypeEnum.dot] as string[]).includes(\n seriesSpec.type\n )\n ) {\n // elements数组\n elements.push({\n modelId: `${seriesSpec.type}Row${rowNum}`,\n col: 1,\n row: rowNum\n });\n elements.push({\n modelId: `axesLeftRow${rowNum}`,\n col: 0,\n row: rowNum\n });\n\n // region数组\n region.push({\n id: `${seriesSpec.type}Row${rowNum}`,\n clip: false\n });\n\n rowHeight.push({\n index: rowNum,\n size: seriesSpec?.height || defaultSeriesRowHeight\n });\n\n // axes数组添加left axes(每个series都需要一个left axes)\n axes.push({\n orient: 'left',\n id: `axesLeftRow${rowNum}`,\n type: seriesSpec.type === SeriesTypeEnum.dot ? 'band' : 'linear',\n visible: seriesSpec.type !== SeriesTypeEnum.dot,\n\n // 对于bar series,axes title模拟bar title\n title: {\n visible: true,\n // 特殊处理时序图的 title 样式,默认的坐标轴左右轴会进行旋转\n autoRotate: false,\n style: {\n text: (seriesSpec as any)?.barTitle,\n dx: -20,\n textBaseline: 'middle',\n textAlign: 'end'\n }\n },\n // 对于bar series,axes grid模拟series分割线\n grid: {\n visible:\n typeof (seriesSpec as any)?.grid?.visible === 'boolean' ? (seriesSpec as any)?.grid?.visible : true, // bar grid默认绘制\n style: (datum: Datum, index: number) => {\n let lineWidth = 0;\n if (index === 0) {\n const style = (seriesSpec as any)?.grid?.style;\n\n // 兼容一下spec中通过strokeWidth申明的方式\n lineWidth = style?.lineWidth ?? style?.strokeWidth ?? 1;\n }\n return {\n lineWidth,\n stroke: (seriesSpec as any)?.grid?.style?.stroke || '#dfdfdf',\n lineDash: [0, 0]\n };\n }\n },\n // 其他轴元素隐藏\n domainLine: {\n visible: false\n },\n tick: {\n visible: false\n },\n label: {\n visible: false\n },\n\n // 绑定regionIndex\n regionIndex: region.length - 1\n });\n\n // scrollBar 内置\n if (seriesSpec.type === SeriesTypeEnum.dot) {\n elements.push({\n modelId: `scrollBarRightRow${rowNum}`,\n col: 2,\n row: rowNum\n });\n const dataLength = this._getSeriesDataLength(spec, seriesSpec);\n let ratio = 0;\n if (dataLength) {\n ratio = (seriesSpec?.height || defaultSeriesRowHeight) / (dataLength * 30);\n }\n // scrollBar数组增加一个right scrollBar\n scrollBar.push({\n orient: 'right',\n visible: seriesSpec.type === SeriesTypeEnum.dot && ratio < 1,\n id: `scrollBarRightRow${rowNum}`,\n start: 0,\n end: Math.min(ratio, 1),\n filterMode: IFilterMode.axis,\n regionIndex: region.length - 1,\n axisId: `axesLeftRow${rowNum}`,\n ...array(spec?.scrollBar)[0]\n });\n }\n\n // seriesSpec绑定regionIndex\n seriesSpec.regionIndex = region.length - 1;\n\n rowNum++;\n\n // 增加空行,拟合series padding效果\n rowHeight.push({\n index: rowNum,\n size: seriesSpec?.padding || defaultSeriesPadding\n });\n rowNum++;\n\n // chart的leftAppendPadding用于具体元素的dx偏移\n (seriesSpec as any).leftAppendPadding = leftAppendPadding;\n\n // title和subTitle自动定位到画布最左端\n if (seriesSpec.type === SeriesTypeEnum.dot) {\n (seriesSpec as any).title.style.dx = -leftAppendPadding;\n (seriesSpec as any).subTitle.style.dx = -leftAppendPadding;\n }\n }\n });\n\n // 对于link series,所有属性跟随它绑定的dot series\n spec?.series?.forEach((seriesSpec: ISequenceSeriesSpec) => {\n if (seriesSpec.type === SeriesTypeEnum.link) {\n const dotRowNum = seriesSpec.dotSeriesIndex + 1;\n elements.push({\n modelId: `${seriesSpec.type}Row${dotRowNum}`,\n col: 1,\n row: dotRowNum - 1\n });\n seriesSpec.regionIndex = spec.series[seriesSpec.dotSeriesIndex].regionIndex;\n (seriesSpec as any).leftAppendPadding = leftAppendPadding;\n (seriesSpec as any).height = (spec.series[seriesSpec.dotSeriesIndex] as any).height;\n (seriesSpec as any).clipHeight = (spec.series[seriesSpec.dotSeriesIndex] as any).clipHeight;\n }\n });\n\n // 添加legends和datazoom的regionIndex\n if (spec?.legends) {\n this.addAttrToComponentSpec(spec.legends, 'regionIndex', [region.length - 1]);\n }\n // if ((spec as any)?.dataZoom) {\n // (spec as any).dataZoom[0].regionIndex = Array.from({length: region.length - 1},(item, index)=> index+1);\n // }\n\n const layout: IGridLayoutSpec = {\n type: 'grid',\n col: 4,\n row: rowNum,\n colWidth: [\n {\n index: 0,\n size: leftAppendPadding\n },\n {\n index: 2,\n size: SCROLL_BAR_DEFAULT_SIZE\n },\n {\n index: 3,\n size: rightAppendPadding\n }\n ],\n rowHeight: rowHeight,\n elements: elements\n };\n\n spec.layout = layout;\n spec.region = region;\n spec.axes?.push(...axes);\n spec.scrollBar = scrollBar;\n }\n\n /**\n * @override\n * @description 主要是将link series关联的dot data放到link series中\n */\n protected _createSeries(seriesSpec: ISequenceSeriesSpec[]) {\n seriesSpec.forEach((spec, index) => {\n if (spec.type === SeriesTypeEnum.link) {\n spec.dotSeriesSpec = this._spec.series[spec.dotSeriesIndex];\n }\n\n let region: IRegion | undefined;\n if (spec.regionId) {\n region = this.getRegionsInUserId(spec.regionId);\n }\n if (!region) {\n region = this.getRegionsInIndex(spec.regionIndex ? [spec.regionIndex] : undefined)[0];\n }\n if (!region) {\n return;\n }\n const series = Factory.createSeries(spec.type, spec, {\n ...this._modelOption,\n type: spec.type,\n region,\n specIndex: index,\n specKey: 'series',\n globalScale: this._globalScale\n } as ISeriesOption);\n\n if (series) {\n series.created();\n this._series.push(series);\n region.addSeries(series);\n }\n });\n }\n\n addAttrToComponentSpec(componentSpec: any, attr: string, value: any) {\n if (Array.isArray(componentSpec)) {\n componentSpec[0][attr] = value;\n } else {\n componentSpec[attr] = value;\n }\n return componentSpec;\n }\n\n private _getSeriesDataLength(spec: any, seriesSpec: any) {\n if (seriesSpec.data) {\n const _d = array(seriesSpec.data)[0];\n if (_d instanceof DataView) {\n return _d.latestData?.length;\n }\n return _d.values?.length;\n }\n const dataTemp = array(spec.data).find((_d, index) => {\n if (seriesSpec.dataId) {\n if (_d instanceof DataView) {\n return _d.name === seriesSpec.dataId;\n }\n return _d.id === seriesSpec.dataId;\n }\n return seriesSpec.dataIndex === index;\n });\n if (!dataTemp) {\n return 0;\n }\n if (dataTemp instanceof DataView) {\n return dataTemp.latestData.length;\n }\n return dataTemp.values.length;\n }\n}\n\nexport const registerSequenceChart = () => {\n registerDotSeries();\n registerLinkSeries();\n Factory.registerChart(SequenceChart.type, SequenceChart);\n};\n"]}
@@ -122,7 +122,9 @@ class CartesianAxis extends base_axis_1.AxisComponent {
122
122
  const axisType = null !== (_a = spec.type) && void 0 !== _a ? _a : (0, common_1.autoAxisType)(spec.orient, isHorizontal), componentName = `${CartesianAxis.type}-${axisType}`, C = factory_1.Factory.getComponentInKey(componentName);
123
123
  return C ? new C(Object.assign(Object.assign({}, spec), {
124
124
  type: axisType
125
- }), options) : (options.onError(`Component ${componentName} not found`), null);
125
+ }), Object.assign(Object.assign({}, options), {
126
+ type: componentName
127
+ })) : (options.onError(`Component ${componentName} not found`), null);
126
128
  }
127
129
  static createComponent(spec, options) {
128
130
  if (options.getRegionsInIndex().find((r => "cartesian" !== r.coordinate))) return null;
@@ -304,7 +306,7 @@ class CartesianAxis extends base_axis_1.AxisComponent {
304
306
  if (!this._visible) return result;
305
307
  this._verticalLimitSize = (0, common_1.isXAxis)(this.getOrient()) ? rect.height : rect.width,
306
308
  this.setLayoutRect(rect);
307
- this.updateScaleRange() && this.computeData("range");
309
+ !this.updateScaleRange() && (0, util_1.isArray)(this._tickData.getLatestData()) || this.computeData("range");
308
310
  const context = {
309
311
  skipLayout: !1
310
312
  }, isX = (0, common_1.isXAxis)(this.getOrient());
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/axis/cartesian/axis.ts"],"names":[],"mappings":"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","file":"axis.js","sourcesContent":["import type { IBounds, IBoundsLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IEffect, IModelInitOption } from '../../../model/interface';\nimport type { ICartesianSeries } from '../../../series/interface';\nimport type { IRegion } from '../../../region/interface';\nimport type { ICartesianAxisCommonSpec, IAxisHelper, ICartesianAxisCommonTheme } from './interface';\nimport { isArray, isValid, isValidNumber, mergeSpec, eachSeries, isNil, isUndefined } from '../../../util';\nimport type { IOrientType } from '../../../typings/space';\n// eslint-disable-next-line no-duplicate-imports\nimport { Direction } from '../../../typings/space';\nimport type { IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport { Factory } from '../../../core/factory';\nimport { autoAxisType, isXAxis, getOrient, isZAxis, isYAxis, transformInverse } from './util/common';\nimport { ChartEvent, DEFAULT_LAYOUT_RECT_LEVEL, LayoutZIndex, USER_LAYOUT_RECT_LEVEL } from '../../../constant';\nimport { LayoutLevel } from '../../../constant/index';\nimport pluginMap from '../../../plugin/components';\nimport type { StringOrNumber } from '../../../typings/common';\nimport type { IPoint } from '../../../typings/coordinate';\nimport type { ILayoutRect, ILayoutType } from '../../../typings/layout';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { HOOK_EVENT } from '@visactor/vgrammar-core';\nimport type { LineAxisAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { isValidCartesianAxis } from '../util';\nimport type { IAxis, ITick } from '../interface';\nimport { registerDataSetInstanceParser, registerDataSetInstanceTransform } from '../../../data/register';\nimport { scaleParser } from '../../../data/parser/scale';\nimport type { ICartesianTickDataOpt } from '@visactor/vutils-extension';\n// eslint-disable-next-line no-duplicate-imports\nimport { ticks } from '@visactor/vutils-extension';\nimport type { DataSet } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataView } from '@visactor/vdataset';\nimport { CompilableData } from '../../../compile/data/compilable-data';\nimport { AxisComponent } from '../base-axis';\nimport type { IGraphic, IText } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { createText } from '@visactor/vrender-core';\n\nconst CartesianAxisPlugin = [pluginMap.AxisSyncPlugin];\n\nexport abstract class CartesianAxis<T extends ICartesianAxisCommonSpec = ICartesianAxisCommonSpec>\n extends AxisComponent<T>\n implements IAxis\n{\n static type = ComponentTypeEnum.cartesianAxis;\n type = ComponentTypeEnum.cartesianAxis;\n name: string = ComponentTypeEnum.cartesianAxis;\n\n protected readonly _defaultBandPosition = 0.5;\n protected readonly _defaultBandInnerPadding = 0.1;\n protected readonly _defaultBandOuterPadding = 0.3;\n\n // 标记这个布局Item的方向(left->right, right->left, top->bottom, bottom->top)\n declare directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';\n\n layoutType: ILayoutType = 'region-relative';\n layoutZIndex: number = LayoutZIndex.Axis;\n layoutLevel: number = LayoutLevel.Axis;\n\n protected _dataSet: DataSet;\n\n layout3dBox?: { width: number; height: number; length: number };\n\n protected _orient: IOrientType = 'left';\n getOrient() {\n return this._orient;\n }\n\n protected _autoIndentOnce: boolean = false;\n protected _hasAutoIndent: boolean = false;\n set autoIndentOnce(v: boolean) {\n this._autoIndentOnce = v;\n }\n\n protected _scales: IBaseScale[] = [];\n getScales() {\n return this._scales;\n }\n\n protected declare _theme: ICartesianAxisCommonTheme;\n\n protected _tick: ITick | undefined = undefined;\n\n private _axisStyle: Partial<LineAxisAttributes>;\n private _latestBounds: IBounds;\n private _verticalLimitSize: number;\n private _unitText: IText;\n\n protected _layoutCache: {\n width: number;\n height: number;\n _lastComputeOutBounds: IBoundsLike;\n } = { width: 0, height: 0, _lastComputeOutBounds: { x1: 0, x2: 0, y1: 0, y2: 0 } };\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._orient = getOrient(spec, ['z']);\n if (isZAxis(this._orient)) {\n this.layoutType = 'absolute';\n }\n this._dataSet = options.dataSet;\n }\n\n static createAxis(spec: any, options: IComponentOption, isHorizontal: boolean = false): IAxis {\n const axisType = spec.type ?? autoAxisType(spec.orient, isHorizontal);\n const componentName = `${CartesianAxis.type}-${axisType}`;\n const C = Factory.getComponentInKey(componentName);\n if (C) {\n return new C(\n {\n ...spec,\n type: axisType\n },\n options\n ) as IAxis;\n }\n options.onError(`Component ${componentName} not found`);\n return null;\n }\n\n static createComponent(spec: any, options: IComponentOption) {\n const regions = options.getRegionsInIndex();\n if (regions.find(r => r.coordinate !== 'cartesian')) {\n return null;\n }\n let axesSpec = spec[CartesianAxis.specKey];\n if (!axesSpec) {\n return null;\n }\n const isHorizontal = spec.direction === Direction.horizontal;\n if (!isArray(axesSpec)) {\n // 如果非法,或者只有一个z轴就不创建\n if (!isValidCartesianAxis(axesSpec)) {\n return null;\n }\n return CartesianAxis.createAxis(axesSpec, options, isHorizontal);\n }\n // 处理spec\n const zAxis = axesSpec.filter(s => s.orient === 'z')[0];\n let valid = true;\n if (zAxis) {\n const xAxis = axesSpec.filter(s => s.orient === 'bottom')[0];\n const yAxis = axesSpec.filter(s => isYAxis(s.orient))[0];\n // 必须有x和y,且x必须是bottom\n valid = axesSpec.length === 3 && xAxis && yAxis;\n }\n if (!valid) {\n axesSpec = axesSpec.filter(s => s.orient !== 'z');\n }\n const axes: IAxis[] = [];\n axesSpec.forEach((s: any, i: any) => {\n if (!isValidCartesianAxis(s)) {\n return;\n }\n axes.push(\n CartesianAxis.createAxis(\n s,\n {\n ...options,\n specIndex: i\n },\n isHorizontal\n ) as IAxis\n );\n });\n return axes;\n }\n\n initLayout(): void {\n super.initLayout();\n this._layout.autoIndent = this._spec.autoIndent !== false;\n this._layout.layoutOrient = this._orient;\n }\n\n setLayout3dBox(box3d: { width: number; height: number; length: number }) {\n this.layout3dBox = box3d;\n }\n\n effect: IEffect = {\n scaleUpdate: params => {\n this.computeData(params?.value);\n eachSeries(\n this._regions,\n s => {\n const orient = this.getOrient();\n\n if (isXAxis(orient)) {\n (s as ICartesianSeries).setXAxisHelper(this.axisHelper());\n } else if (isYAxis(orient)) {\n (s as ICartesianSeries).setYAxisHelper(this.axisHelper());\n } else if (isZAxis(orient)) {\n (s as ICartesianSeries).setZAxisHelper(this.axisHelper());\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n };\n\n protected abstract computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[];\n abstract valueToPosition(value: any): number;\n\n protected updateScaleRange() {\n let isScaleChange = false;\n const { width, height } = this.getLayoutRect();\n const inverse = this._spec.inverse;\n let newRange: number[] = [];\n if (isXAxis(this.getOrient())) {\n if (isValidNumber(width)) {\n newRange = inverse ? [width, 0] : [0, width];\n }\n } else if (isZAxis(this.getOrient())) {\n if (isValidNumber(width)) {\n newRange = inverse ? [width, 0] : [0, width];\n this._scale.range(newRange);\n }\n } else {\n if (isValidNumber(height)) {\n newRange = inverse ? [0, height] : [height, 0];\n }\n }\n\n const [start, end] = this._scale.range();\n if (newRange[0] !== start || newRange[1] !== end) {\n isScaleChange = true;\n this._scale.range(newRange);\n }\n\n return isScaleChange;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n this.pluginService?.load(CartesianAxisPlugin.map(P => new P()));\n this.callPlugin(plugin => {\n this.pluginService && plugin.onInit && plugin.onInit(this.pluginService, this);\n });\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n if (this.visible) {\n const isX = isXAxis(this.getOrient());\n if (isX) {\n if (isUndefined(this._spec.maxHeight)) {\n this._spec.maxHeight = '30%';\n }\n } else if (isUndefined(this._spec.maxWidth)) {\n this._spec.maxWidth = '30%';\n }\n\n const axisStyle: any = this._getAxisAttributes();\n axisStyle.label.formatMethod = this.getLabelFormatMethod();\n axisStyle.verticalFactor = this.getOrient() === 'top' || this.getOrient() === 'right' ? -1 : 1;\n this._axisStyle = axisStyle;\n }\n this._tick = this._spec.tick;\n }\n\n protected getSeriesStatisticsField(s: ICartesianSeries) {\n let f: string[];\n if (isXAxis(this.getOrient())) {\n f = s.fieldX;\n } else if (isZAxis(this.getOrient())) {\n f = s.fieldZ;\n } else {\n f = s.fieldY;\n }\n if (isContinuous(this._scale.type)) {\n return f;\n }\n return [f[0]];\n }\n\n protected _initTickData(sampling: boolean) {\n registerDataSetInstanceParser(this._option.dataSet, 'scale', scaleParser);\n registerDataSetInstanceTransform(this._option.dataSet, 'ticks', ticks);\n\n const label = this._spec.label || {};\n const tick = this._tick || {};\n const tickData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_ticks` })\n .parse(this._scale, {\n type: 'scale'\n })\n .transform(\n {\n type: 'ticks',\n options: {\n sampling,\n tickCount: tick.tickCount,\n forceTickCount: tick.forceTickCount,\n tickStep: tick.tickStep,\n tickMode: tick.tickMode,\n noDecimals: tick.noDecimals,\n\n axisOrientType: this._orient,\n coordinateType: 'cartesian',\n\n labelStyle: label.style,\n labelFormatter: label.formatMethod,\n labelGap: label.minGap,\n\n labelLastVisible: label.lastVisible,\n labelFlush: label.flush\n } as ICartesianTickDataOpt\n },\n false\n );\n tickData.target.addListener('change', this._forceLayout.bind(this));\n\n this._tickData = new CompilableData(this._option, tickData);\n }\n\n protected _initData() {\n this._initTickData(this._spec.sampling !== false); // default do sampling\n }\n\n protected axisHelper(): IAxisHelper {\n const getScale = (depth: number = 0) => {\n return this._scales[depth];\n };\n return {\n isContinuous: isContinuous(this._scale.type),\n dataToPosition: this.dataToPosition.bind(this),\n getScale,\n getAxisType: () => this.type,\n getAxisId: () => this.id,\n isInverse: () => this._spec.inverse === true\n };\n }\n\n /** LifeCycle API**/\n afterCompile() {\n const product = this._axisMark?.getProduct();\n if (product) {\n product.addEventListener(HOOK_EVENT.AFTER_ELEMENT_ENCODE, () => {\n if (this._isLayout === false) {\n // 布局结束之后再进行插件的调用\n // 插件在布局后\n if (isXAxis(this.getOrient())) {\n this.callPlugin(plugin => {\n this.pluginService &&\n plugin.onDidLayoutHorizontal &&\n plugin.onDidLayoutHorizontal(this.pluginService, this);\n });\n } else {\n this.callPlugin(plugin => {\n this.pluginService && plugin.onDidLayoutVertical && plugin.onDidLayoutVertical(this.pluginService, this);\n });\n }\n this._delegateAxisContainerEvent(product.getGroupGraphicItem());\n\n // 更新单位的显示位置\n if (this._unitText) {\n const bounds = product.graphicItem.AABBBounds;\n const pos = isXAxis(this._orient)\n ? {\n x: bounds.x2,\n y: this.getLayoutStartPoint().y\n }\n : {\n x: this.getLayoutStartPoint().x,\n y: bounds.y1\n };\n\n this._unitText.setAttributes(pos);\n }\n }\n });\n }\n this.callPlugin(plugin => {\n this.pluginService && plugin.onDidCompile && plugin.onDidCompile(this.pluginService, this);\n });\n }\n\n onLayoutEnd(ctx: any): void {\n const isRangeChange = this.updateScaleRange();\n if (isRangeChange) {\n this.event.emit(ChartEvent.scaleUpdate, { model: this, value: 'range' });\n // 这里会执行 computeData ,会执行系列scale更新\n } else {\n this.updateSeriesScale();\n }\n super.onLayoutEnd(ctx);\n }\n\n onRender(ctx: any): void {\n // do nothing\n }\n\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n update(ctx: IComponentOption) {\n // TODO\n }\n\n resize(ctx: IComponentOption) {\n // TODO\n }\n\n protected collectScale() {\n const scales: IBaseScale[] = [];\n eachSeries(\n this._regions,\n s => {\n scales.push(\n this.getOrient() === 'left' || this.getOrient() === 'right'\n ? (s as ICartesianSeries).scaleY\n : (s as ICartesianSeries).scaleX\n );\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return scales;\n }\n\n protected collectData(depth?: number) {\n const data: { min: number; max: number; values: any[] }[] = [];\n eachSeries(\n this._regions,\n s => {\n let field: string | string[];\n if (depth > 0) {\n field = s.getGroups()?.fields?.[depth];\n } else {\n if (isXAxis(this.getOrient())) {\n field = (s as ICartesianSeries).fieldX2\n ? [...(s as ICartesianSeries).fieldX, (s as ICartesianSeries).fieldX2]\n : (s as ICartesianSeries).fieldX;\n } else if (isZAxis(this.getOrient())) {\n field = (s as ICartesianSeries).fieldZ;\n } else {\n field = (s as ICartesianSeries).fieldY;\n }\n }\n field = (isArray(field) ? (isContinuous(this._scale.type) ? field : [field[0]]) : [field]) as string[];\n if (!depth) {\n this._dataFieldText = s.getFieldAlias(field[0]);\n }\n const seriesData = s.getViewDataStatistics?.();\n if (field) {\n field.forEach(f => {\n if (seriesData?.latestData?.[f]) {\n data.push(seriesData.latestData[f]);\n }\n });\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return data;\n }\n\n protected updateSeriesScale() {\n const orient = this.getOrient();\n eachSeries(\n this._regions,\n s => {\n if (isXAxis(orient)) {\n (s as ICartesianSeries).setScaleX(this._scale);\n (s as ICartesianSeries).setXAxisHelper(this.axisHelper());\n } else if (isYAxis(orient)) {\n (s as ICartesianSeries).setScaleY(this._scale);\n (s as ICartesianSeries).setYAxisHelper(this.axisHelper());\n } else if (isZAxis(orient)) {\n (s as ICartesianSeries).setScaleZ(this._scale);\n (s as ICartesianSeries).setZAxisHelper(this.axisHelper());\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n _transformLayoutPosition = (pos: Partial<IPoint>) => {\n let { x, y } = pos;\n if (isValidNumber(x)) {\n x += Number(this._orient === 'left') * this.getLayoutRect().width;\n }\n if (isValidNumber(y)) {\n y += Number(this._orient === 'top') * this.getLayoutRect().height;\n }\n return { x, y };\n };\n\n _transformLayoutRect = (result: ILayoutRect) => {\n if (!this._visible) {\n return result;\n }\n const bounds = this._latestBounds.clone().translate(-this.getLayoutStartPoint().x, -this.getLayoutStartPoint().y);\n switch (this._layout.layoutOrient) {\n case 'left':\n if (this._layout.layoutRectLevelMap.width === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.width = bounds.x1 < 0 ? -bounds.x1 : 0;\n }\n break;\n case 'right':\n if (this._layout.layoutRectLevelMap.width === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.width = bounds.x2 > 0 ? bounds.x2 : 0;\n }\n break;\n case 'top':\n if (this._layout.layoutRectLevelMap.height === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.height = bounds.y1 < 0 ? -bounds.y1 : 0;\n }\n break;\n case 'bottom':\n if (this._layout.layoutRectLevelMap.height === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.height = bounds.y2 > 0 ? bounds.y2 : 0;\n }\n break;\n default:\n break;\n }\n result.width = Math.ceil(result.width);\n result.height = Math.ceil(result.height);\n return this._layout.setRectInSpec(this._layoutCacheProcessing(result));\n };\n /**\n * bounds 预计算\n * @param rect\n * @returns\n */\n getBoundsInRect(rect: ILayoutRect): IBoundsLike {\n let result: IBoundsLike = { x1: 0, y1: 0, x2: 0, y2: 0 };\n if (!this._visible) {\n return result;\n }\n this._verticalLimitSize = isXAxis(this.getOrient()) ? rect.height : rect.width;\n\n this.setLayoutRect(rect);\n const isChanged = this.updateScaleRange();\n if (isChanged) {\n this.computeData('range');\n }\n const context = { skipLayout: false };\n const isX = isXAxis(this.getOrient());\n if (this.pluginService) {\n isX\n ? this.callPlugin(plugin => {\n plugin.onWillLayoutHorizontal && plugin.onWillLayoutHorizontal(this.pluginService, context, this);\n })\n : this.callPlugin(plugin => {\n plugin.onWillLayoutVertical && plugin.onWillLayoutVertical(this.pluginService, context, this);\n });\n }\n const product = this._axisMark.getProduct();\n let hasBounds = false;\n\n if (!context.skipLayout) {\n const attrs = this._getUpdateAttribute(true);\n const axisComponent = product.getGroupGraphicItem();\n\n const spec = mergeSpec({ ...this.getLayoutStartPoint() }, this._axisStyle, attrs, { line: { visible: false } });\n const updateBounds = axisComponent.getBoundsWithoutRender(spec);\n\n hasBounds = true;\n this._latestBounds = updateBounds;\n if (isFinite(updateBounds.width())) {\n // 因为轴单位在某些区域显示的时候,是不参与轴某个方向的包围盒计算的,\n // 所以不太合适放在轴组件内支持,所以就在 VChart 层的轴组件上通过添加 text 图元支持\n result = this._appendAxisUnit(updateBounds, isX);\n }\n }\n\n if (!hasBounds) {\n this._latestBounds = product.getBounds();\n }\n return result;\n }\n\n updateLayoutAttribute(): void {\n if (!this.visible) {\n return;\n }\n const startPoint = this.getLayoutStartPoint();\n // 正式的更新布局属性\n const { grid: updateGridAttrs, ...updateAxisAttrs } = this._getUpdateAttribute(false);\n const axisProduct = this._axisMark.getProduct(); // 获取语法元素\n const axisAttrs = mergeSpec({ x: startPoint.x, y: startPoint.y }, this._axisStyle, updateAxisAttrs);\n axisProduct.encode(axisAttrs);\n\n if (this._gridMark) {\n const gridProduct = this._gridMark.getProduct(); // 获取语法元素\n gridProduct.encode(mergeSpec({ x: startPoint.x, y: startPoint.y }, this._getGridAttributes(), updateGridAttrs));\n }\n\n super.updateLayoutAttribute();\n }\n\n private _getTitleLimit(isX: boolean) {\n if (this._spec.title.visible && isNil(this._spec.title.style?.maxLineWidth)) {\n const angle = this._axisStyle.title?.angle ?? this._spec.title.style?.angle ?? 0;\n if (isX) {\n const width = this.getLayoutRect().width;\n const cosValue = Math.abs(Math.cos(angle));\n // VRender 接收到的limit是考虑角度计算后的宽度\n // TODO:还需要考虑angle后,高度是否太高,综合计算一个limit,比如高度不能超过图表整体高度的1/4\n return cosValue < 1e-6 ? Infinity : width / cosValue;\n }\n const height = this.getLayoutRect().height;\n const sinValue = Math.abs(Math.sin(angle));\n\n // TODO:还需要考虑angle后,宽度是否太宽,综合计算一个limit,比如宽度度不能超过图表整体宽度的1/4\n return sinValue < 1e-6 ? Infinity : height / sinValue;\n }\n\n return null;\n }\n\n private _getUpdateAttribute(ignoreGrid: boolean) {\n // 获取更新的坐标轴属性\n let regionHeight = 0;\n let regionWidth = 0;\n\n if (!ignoreGrid) {\n const regions = this.getRegions();\n let { x: minX, y: minY } = regions[0].getLayoutStartPoint();\n let maxX = minX + regions[0].getLayoutRect().width;\n let maxY = minY + regions[0].getLayoutRect().height;\n\n for (let index = 1; index < regions.length; index++) {\n const region = regions[index];\n const { x, y } = region.getLayoutStartPoint();\n const { width, height } = region.getLayoutRect();\n\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, width + x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, height + y);\n }\n regionHeight = Math.abs(maxY - minY);\n regionWidth = Math.abs(maxX - minX);\n }\n\n const { width, height } = this.getLayoutRect();\n const isX = isXAxis(this._orient);\n const isY = isYAxis(this._orient);\n const isZ = isZAxis(this._orient);\n let end = { x: 0, y: 0 };\n let gridLength = 0;\n let axisLength = 0;\n const depth = this.layout3dBox ? this.layout3dBox.length : 0;\n if (isX) {\n end = { x: width, y: 0 };\n gridLength = regionHeight;\n axisLength = width;\n } else if (isY) {\n end = { x: 0, y: height };\n gridLength = regionWidth;\n axisLength = height;\n }\n if (isZ) {\n const directionStr = this.directionStr ?? 'r2l';\n const depthZ = this.layout3dBox ? this.layout3dBox.width : 0;\n let anchor3d = [0, 0];\n let alpha = -Math.PI / 2;\n let z = 0;\n if (directionStr === 'l2r') {\n z = this.layout3dBox.length;\n anchor3d = [0, 0, 0];\n alpha = Math.PI / 2;\n }\n const items = this.getLabelItems(width);\n const axisAttrs: any = {\n start: { x: 0, y: 0 },\n end: { x: depth, y: 0 },\n z: z,\n alpha,\n anchor3d,\n title: {\n text: this._spec.title.text || this._dataFieldText,\n maxWidth: this._getTitleLimit(isX)\n },\n items\n };\n if (!ignoreGrid) {\n axisAttrs.grid = {\n type: 'line',\n start: { x: 0, y: 0 },\n end: { x: depth, y: 0 },\n items: items[0],\n verticalFactor: this._axisStyle.verticalFactor,\n depth: depthZ,\n length: regionHeight,\n z: z,\n alpha,\n anchor3d\n };\n }\n return axisAttrs;\n }\n let verticalMinSize = isX ? this.layout.minHeight : this.layout.minWidth;\n if (\n (isX && this._layout.layoutRectLevelMap.height === USER_LAYOUT_RECT_LEVEL) ||\n (isY && this._layout.layoutRectLevelMap.width === USER_LAYOUT_RECT_LEVEL)\n ) {\n verticalMinSize = this._verticalLimitSize;\n }\n const items = this.getLabelItems(axisLength);\n const attrs: any = {\n start: { x: 0, y: 0 },\n end,\n title: {\n text: this._spec.title.text || this._dataFieldText,\n maxWidth: this._getTitleLimit(isX)\n },\n items,\n verticalLimitSize: this._verticalLimitSize,\n verticalMinSize\n };\n if (!ignoreGrid) {\n attrs.grid = {\n type: 'line',\n start: { x: 0, y: 0 },\n end,\n items: items[0],\n verticalFactor: this._axisStyle.verticalFactor,\n depth,\n length: gridLength\n };\n }\n\n return attrs;\n }\n\n protected initEvent() {\n super.initEvent();\n\n if (this.visible) {\n // 布局结束之后处理 0 基线问题\n this.event.on(ChartEvent.layoutEnd, this._fixAxisOnZero);\n // 图表resize后,需要正常布局,清除布局缓存\n this.event.on(ChartEvent.layoutRectUpdate, () => {\n this._clearLayoutCache();\n });\n }\n }\n\n private _fixAxisOnZero = () => {\n // 在布局结束之后调整坐标轴零基线\n const { onZero, visible } = this._spec.domainLine;\n if (this.visible && onZero && visible !== false) {\n const { onZeroAxisId, onZeroAxisIndex } = this._spec.domainLine;\n const axesComponents = this._option.getComponentsByKey('axes') as IAxis[];\n const isX = isXAxis(this.getOrient());\n\n // 判断坐标轴是否可用\n const isValidAxis = (item: any) => {\n return (\n (isX ? !isXAxis(item.orient) : isXAxis(item.orient)) &&\n isContinuous(item.getScale().type) &&\n item\n .getTickData()\n .getLatestData()\n ?.find((d: any) => d.value === 0)\n );\n };\n const relativeAxes = axesComponents.filter(item => isValidAxis(item));\n if (relativeAxes.length) {\n let bindAxis;\n if (isValid(onZeroAxisId)) {\n bindAxis = relativeAxes.find(axis => axis.id === onZeroAxisId);\n } else if (isValid(onZeroAxisIndex)) {\n const indexAxis = axesComponents[onZeroAxisIndex];\n if (isValidAxis(indexAxis)) {\n bindAxis = indexAxis;\n }\n } else {\n // 默认绑定第一条的相对坐标轴\n bindAxis = relativeAxes[0];\n }\n if (bindAxis) {\n const axisMark = this._axisMark.getProduct();\n // 找到了绑定的 axis,获取基线的位置\n const position = bindAxis.valueToPosition(0);\n // 获取偏移量\n if (isX) {\n axisMark.encode({\n line: {\n ...this._axisStyle.line,\n dy: this._orient === 'bottom' ? -(bindAxis.getScale().range()[0] - position) : position\n }\n });\n } else {\n axisMark.encode({\n line: {\n ...this._axisStyle.line,\n dx: this._orient === 'left' ? position : -(bindAxis.getScale().range()[1] - position)\n }\n });\n }\n }\n }\n }\n };\n\n protected _layoutCacheProcessing(rect: ILayoutRect) {\n ['width', 'height'].forEach(key => {\n if (rect[key] < this._layoutCache[key]) {\n rect[key] = this._layoutCache[key];\n } else {\n this._layoutCache[key] = rect[key];\n }\n });\n\n // outBounds\n if (this._autoIndentOnce && this._hasAutoIndent) {\n // use cache\n ['x1', 'x2', 'y1', 'y2'].forEach(key => {\n this.layout.getLastComputeOutBounds()[key] = this._layoutCache._lastComputeOutBounds[key];\n });\n } else {\n this._hasAutoIndent = true;\n ['x1', 'x2', 'y1', 'y2'].forEach(key => {\n if (this.layout.getLastComputeOutBounds()[key] < this._layoutCache._lastComputeOutBounds[key]) {\n this.layout.getLastComputeOutBounds()[key] = this._layoutCache._lastComputeOutBounds[key];\n } else {\n this._layoutCache._lastComputeOutBounds[key] = this.layout.getLastComputeOutBounds()[key];\n }\n });\n }\n\n return rect;\n }\n\n _clearLayoutCache() {\n this._hasAutoIndent = false;\n this._layoutCache.width = 0;\n this._layoutCache.height = 0;\n this._layoutCache._lastComputeOutBounds = { x1: 0, x2: 0, y1: 0, y2: 0 };\n }\n\n onDataUpdate(): void {\n // clear layout cache\n this._clearLayoutCache();\n }\n\n protected _transformSpec() {\n // change spec by default logic\n const chartSpec = this._option.getChart().getSpec();\n this._spec.inverse = transformInverse(this._spec, chartSpec.direction === Direction.horizontal);\n }\n\n private _appendAxisUnit(bounds: IBounds, isX: boolean) {\n if (this._spec.unit && this._spec.unit.visible) {\n const { text, style } = this._spec.unit;\n let pos;\n let unitTextStyle: any;\n if (isX) {\n pos = {\n x: bounds.x2,\n y: this.getLayoutStartPoint().y\n };\n unitTextStyle = {\n textAlign: 'left',\n textBaseline: 'middle'\n };\n } else {\n pos = {\n x: this.getLayoutStartPoint().x,\n y: bounds.y1\n };\n unitTextStyle = {\n textAlign: this._orient === 'left' ? 'left' : 'right',\n textBaseline: 'bottom'\n };\n }\n\n unitTextStyle = {\n ...unitTextStyle,\n ...style,\n x: pos.x,\n y: pos.y,\n text\n };\n if (this._unitText) {\n this._unitText.setAttributes(unitTextStyle);\n } else {\n this._unitText = createText(unitTextStyle);\n this._unitText.name = 'axis-unit';\n this.getContainer()?.add(this._unitText);\n }\n\n // 左轴\n const textBounds = this._unitText.AABBBounds;\n if (!isX) {\n bounds.x1 += textBounds.x1 < bounds.x1 ? textBounds.x1 - bounds.x1 : 0;\n bounds.y1 += textBounds.y1 < bounds.y1 ? textBounds.y1 - bounds.y1 : 0;\n } else {\n bounds.x2 += textBounds.x2 > bounds.x2 ? textBounds.x2 - bounds.x2 : 0;\n bounds.y2 += textBounds.y2 > bounds.y2 ? textBounds.y2 - bounds.y2 : 0;\n }\n }\n\n return bounds;\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return this._unitText ? [this._unitText] : [];\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/axis/cartesian/axis.ts"],"names":[],"mappings":"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","file":"axis.js","sourcesContent":["import type { IBounds, IBoundsLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IEffect, IModelInitOption } from '../../../model/interface';\nimport type { ICartesianSeries } from '../../../series/interface';\nimport type { IRegion } from '../../../region/interface';\nimport type { ICartesianAxisCommonSpec, IAxisHelper, ICartesianAxisCommonTheme } from './interface';\nimport { isArray, isValid, isValidNumber, mergeSpec, eachSeries, isNil, isUndefined } from '../../../util';\nimport type { IOrientType } from '../../../typings/space';\n// eslint-disable-next-line no-duplicate-imports\nimport { Direction } from '../../../typings/space';\nimport type { IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport { Factory } from '../../../core/factory';\nimport { autoAxisType, isXAxis, getOrient, isZAxis, isYAxis, transformInverse } from './util/common';\nimport { ChartEvent, DEFAULT_LAYOUT_RECT_LEVEL, LayoutZIndex, USER_LAYOUT_RECT_LEVEL } from '../../../constant';\nimport { LayoutLevel } from '../../../constant/index';\nimport pluginMap from '../../../plugin/components';\nimport type { StringOrNumber } from '../../../typings/common';\nimport type { IPoint } from '../../../typings/coordinate';\nimport type { ILayoutRect, ILayoutType } from '../../../typings/layout';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { HOOK_EVENT } from '@visactor/vgrammar-core';\nimport type { LineAxisAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { isValidCartesianAxis } from '../util';\nimport type { IAxis, ITick } from '../interface';\nimport { registerDataSetInstanceParser, registerDataSetInstanceTransform } from '../../../data/register';\nimport { scaleParser } from '../../../data/parser/scale';\nimport type { ICartesianTickDataOpt } from '@visactor/vutils-extension';\n// eslint-disable-next-line no-duplicate-imports\nimport { ticks } from '@visactor/vutils-extension';\nimport type { DataSet } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataView } from '@visactor/vdataset';\nimport { CompilableData } from '../../../compile/data/compilable-data';\nimport { AxisComponent } from '../base-axis';\nimport type { IGraphic, IText } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { createText } from '@visactor/vrender-core';\n\nconst CartesianAxisPlugin = [pluginMap.AxisSyncPlugin];\n\nexport abstract class CartesianAxis<T extends ICartesianAxisCommonSpec = ICartesianAxisCommonSpec>\n extends AxisComponent<T>\n implements IAxis\n{\n static type = ComponentTypeEnum.cartesianAxis;\n type = ComponentTypeEnum.cartesianAxis;\n name: string = ComponentTypeEnum.cartesianAxis;\n\n protected readonly _defaultBandPosition = 0.5;\n protected readonly _defaultBandInnerPadding = 0.1;\n protected readonly _defaultBandOuterPadding = 0.3;\n\n // 标记这个布局Item的方向(left->right, right->left, top->bottom, bottom->top)\n declare directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';\n\n layoutType: ILayoutType = 'region-relative';\n layoutZIndex: number = LayoutZIndex.Axis;\n layoutLevel: number = LayoutLevel.Axis;\n\n protected _dataSet: DataSet;\n\n layout3dBox?: { width: number; height: number; length: number };\n\n protected _orient: IOrientType = 'left';\n getOrient() {\n return this._orient;\n }\n\n protected _autoIndentOnce: boolean = false;\n protected _hasAutoIndent: boolean = false;\n set autoIndentOnce(v: boolean) {\n this._autoIndentOnce = v;\n }\n\n protected _scales: IBaseScale[] = [];\n getScales() {\n return this._scales;\n }\n\n protected declare _theme: ICartesianAxisCommonTheme;\n\n protected _tick: ITick | undefined = undefined;\n\n private _axisStyle: Partial<LineAxisAttributes>;\n private _latestBounds: IBounds;\n private _verticalLimitSize: number;\n private _unitText: IText;\n\n protected _layoutCache: {\n width: number;\n height: number;\n _lastComputeOutBounds: IBoundsLike;\n } = { width: 0, height: 0, _lastComputeOutBounds: { x1: 0, x2: 0, y1: 0, y2: 0 } };\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._orient = getOrient(spec, ['z']);\n if (isZAxis(this._orient)) {\n this.layoutType = 'absolute';\n }\n this._dataSet = options.dataSet;\n }\n\n static createAxis(spec: any, options: IComponentOption, isHorizontal: boolean = false): IAxis {\n const axisType = spec.type ?? autoAxisType(spec.orient, isHorizontal);\n const componentName = `${CartesianAxis.type}-${axisType}`;\n const C = Factory.getComponentInKey(componentName);\n if (C) {\n return new C(\n {\n ...spec,\n type: axisType\n },\n {\n ...options,\n type: componentName\n }\n ) as IAxis;\n }\n options.onError(`Component ${componentName} not found`);\n return null;\n }\n\n static createComponent(spec: any, options: IComponentOption) {\n const regions = options.getRegionsInIndex();\n if (regions.find(r => r.coordinate !== 'cartesian')) {\n return null;\n }\n let axesSpec = spec[CartesianAxis.specKey];\n if (!axesSpec) {\n return null;\n }\n const isHorizontal = spec.direction === Direction.horizontal;\n if (!isArray(axesSpec)) {\n // 如果非法,或者只有一个z轴就不创建\n if (!isValidCartesianAxis(axesSpec)) {\n return null;\n }\n return CartesianAxis.createAxis(axesSpec, options, isHorizontal);\n }\n // 处理spec\n const zAxis = axesSpec.filter(s => s.orient === 'z')[0];\n let valid = true;\n if (zAxis) {\n const xAxis = axesSpec.filter(s => s.orient === 'bottom')[0];\n const yAxis = axesSpec.filter(s => isYAxis(s.orient))[0];\n // 必须有x和y,且x必须是bottom\n valid = axesSpec.length === 3 && xAxis && yAxis;\n }\n if (!valid) {\n axesSpec = axesSpec.filter(s => s.orient !== 'z');\n }\n const axes: IAxis[] = [];\n axesSpec.forEach((s: any, i: any) => {\n if (!isValidCartesianAxis(s)) {\n return;\n }\n axes.push(\n CartesianAxis.createAxis(\n s,\n {\n ...options,\n specIndex: i\n },\n isHorizontal\n ) as IAxis\n );\n });\n return axes;\n }\n\n initLayout(): void {\n super.initLayout();\n this._layout.autoIndent = this._spec.autoIndent !== false;\n this._layout.layoutOrient = this._orient;\n }\n\n setLayout3dBox(box3d: { width: number; height: number; length: number }) {\n this.layout3dBox = box3d;\n }\n\n effect: IEffect = {\n scaleUpdate: params => {\n this.computeData(params?.value);\n eachSeries(\n this._regions,\n s => {\n const orient = this.getOrient();\n\n if (isXAxis(orient)) {\n (s as ICartesianSeries).setXAxisHelper(this.axisHelper());\n } else if (isYAxis(orient)) {\n (s as ICartesianSeries).setYAxisHelper(this.axisHelper());\n } else if (isZAxis(orient)) {\n (s as ICartesianSeries).setZAxisHelper(this.axisHelper());\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n };\n\n protected abstract computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[];\n abstract valueToPosition(value: any): number;\n\n protected updateScaleRange() {\n let isScaleChange = false;\n const { width, height } = this.getLayoutRect();\n const inverse = this._spec.inverse;\n let newRange: number[] = [];\n if (isXAxis(this.getOrient())) {\n if (isValidNumber(width)) {\n newRange = inverse ? [width, 0] : [0, width];\n }\n } else if (isZAxis(this.getOrient())) {\n if (isValidNumber(width)) {\n newRange = inverse ? [width, 0] : [0, width];\n this._scale.range(newRange);\n }\n } else {\n if (isValidNumber(height)) {\n newRange = inverse ? [0, height] : [height, 0];\n }\n }\n\n const [start, end] = this._scale.range();\n if (newRange[0] !== start || newRange[1] !== end) {\n isScaleChange = true;\n this._scale.range(newRange);\n }\n\n return isScaleChange;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n this.pluginService?.load(CartesianAxisPlugin.map(P => new P()));\n this.callPlugin(plugin => {\n this.pluginService && plugin.onInit && plugin.onInit(this.pluginService, this);\n });\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n if (this.visible) {\n const isX = isXAxis(this.getOrient());\n if (isX) {\n if (isUndefined(this._spec.maxHeight)) {\n this._spec.maxHeight = '30%';\n }\n } else if (isUndefined(this._spec.maxWidth)) {\n this._spec.maxWidth = '30%';\n }\n\n const axisStyle: any = this._getAxisAttributes();\n axisStyle.label.formatMethod = this.getLabelFormatMethod();\n axisStyle.verticalFactor = this.getOrient() === 'top' || this.getOrient() === 'right' ? -1 : 1;\n this._axisStyle = axisStyle;\n }\n this._tick = this._spec.tick;\n }\n\n protected getSeriesStatisticsField(s: ICartesianSeries) {\n let f: string[];\n if (isXAxis(this.getOrient())) {\n f = s.fieldX;\n } else if (isZAxis(this.getOrient())) {\n f = s.fieldZ;\n } else {\n f = s.fieldY;\n }\n if (isContinuous(this._scale.type)) {\n return f;\n }\n return [f[0]];\n }\n\n protected _initTickData(sampling: boolean) {\n registerDataSetInstanceParser(this._option.dataSet, 'scale', scaleParser);\n registerDataSetInstanceTransform(this._option.dataSet, 'ticks', ticks);\n\n const label = this._spec.label || {};\n const tick = this._tick || {};\n const tickData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_ticks` })\n .parse(this._scale, {\n type: 'scale'\n })\n .transform(\n {\n type: 'ticks',\n options: {\n sampling,\n tickCount: tick.tickCount,\n forceTickCount: tick.forceTickCount,\n tickStep: tick.tickStep,\n tickMode: tick.tickMode,\n noDecimals: tick.noDecimals,\n\n axisOrientType: this._orient,\n coordinateType: 'cartesian',\n\n labelStyle: label.style,\n labelFormatter: label.formatMethod,\n labelGap: label.minGap,\n\n labelLastVisible: label.lastVisible,\n labelFlush: label.flush\n } as ICartesianTickDataOpt\n },\n false\n );\n tickData.target.addListener('change', this._forceLayout.bind(this));\n\n this._tickData = new CompilableData(this._option, tickData);\n }\n\n protected _initData() {\n this._initTickData(this._spec.sampling !== false); // default do sampling\n }\n\n protected axisHelper(): IAxisHelper {\n const getScale = (depth: number = 0) => {\n return this._scales[depth];\n };\n return {\n isContinuous: isContinuous(this._scale.type),\n dataToPosition: this.dataToPosition.bind(this),\n getScale,\n getAxisType: () => this.type,\n getAxisId: () => this.id,\n isInverse: () => this._spec.inverse === true\n };\n }\n\n /** LifeCycle API**/\n afterCompile() {\n const product = this._axisMark?.getProduct();\n if (product) {\n product.addEventListener(HOOK_EVENT.AFTER_ELEMENT_ENCODE, () => {\n if (this._isLayout === false) {\n // 布局结束之后再进行插件的调用\n // 插件在布局后\n if (isXAxis(this.getOrient())) {\n this.callPlugin(plugin => {\n this.pluginService &&\n plugin.onDidLayoutHorizontal &&\n plugin.onDidLayoutHorizontal(this.pluginService, this);\n });\n } else {\n this.callPlugin(plugin => {\n this.pluginService && plugin.onDidLayoutVertical && plugin.onDidLayoutVertical(this.pluginService, this);\n });\n }\n this._delegateAxisContainerEvent(product.getGroupGraphicItem());\n\n // 更新单位的显示位置\n if (this._unitText) {\n const bounds = product.graphicItem.AABBBounds;\n const pos = isXAxis(this._orient)\n ? {\n x: bounds.x2,\n y: this.getLayoutStartPoint().y\n }\n : {\n x: this.getLayoutStartPoint().x,\n y: bounds.y1\n };\n\n this._unitText.setAttributes(pos);\n }\n }\n });\n }\n this.callPlugin(plugin => {\n this.pluginService && plugin.onDidCompile && plugin.onDidCompile(this.pluginService, this);\n });\n }\n\n onLayoutEnd(ctx: any): void {\n const isRangeChange = this.updateScaleRange();\n if (isRangeChange) {\n this.event.emit(ChartEvent.scaleUpdate, { model: this, value: 'range' });\n // 这里会执行 computeData ,会执行系列scale更新\n } else {\n this.updateSeriesScale();\n }\n super.onLayoutEnd(ctx);\n }\n\n onRender(ctx: any): void {\n // do nothing\n }\n\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n update(ctx: IComponentOption) {\n // TODO\n }\n\n resize(ctx: IComponentOption) {\n // TODO\n }\n\n protected collectScale() {\n const scales: IBaseScale[] = [];\n eachSeries(\n this._regions,\n s => {\n scales.push(\n this.getOrient() === 'left' || this.getOrient() === 'right'\n ? (s as ICartesianSeries).scaleY\n : (s as ICartesianSeries).scaleX\n );\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return scales;\n }\n\n protected collectData(depth?: number) {\n const data: { min: number; max: number; values: any[] }[] = [];\n eachSeries(\n this._regions,\n s => {\n let field: string | string[];\n if (depth > 0) {\n field = s.getGroups()?.fields?.[depth];\n } else {\n if (isXAxis(this.getOrient())) {\n field = (s as ICartesianSeries).fieldX2\n ? [...(s as ICartesianSeries).fieldX, (s as ICartesianSeries).fieldX2]\n : (s as ICartesianSeries).fieldX;\n } else if (isZAxis(this.getOrient())) {\n field = (s as ICartesianSeries).fieldZ;\n } else {\n field = (s as ICartesianSeries).fieldY;\n }\n }\n field = (isArray(field) ? (isContinuous(this._scale.type) ? field : [field[0]]) : [field]) as string[];\n if (!depth) {\n this._dataFieldText = s.getFieldAlias(field[0]);\n }\n const seriesData = s.getViewDataStatistics?.();\n if (field) {\n field.forEach(f => {\n if (seriesData?.latestData?.[f]) {\n data.push(seriesData.latestData[f]);\n }\n });\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return data;\n }\n\n protected updateSeriesScale() {\n const orient = this.getOrient();\n eachSeries(\n this._regions,\n s => {\n if (isXAxis(orient)) {\n (s as ICartesianSeries).setScaleX(this._scale);\n (s as ICartesianSeries).setXAxisHelper(this.axisHelper());\n } else if (isYAxis(orient)) {\n (s as ICartesianSeries).setScaleY(this._scale);\n (s as ICartesianSeries).setYAxisHelper(this.axisHelper());\n } else if (isZAxis(orient)) {\n (s as ICartesianSeries).setScaleZ(this._scale);\n (s as ICartesianSeries).setZAxisHelper(this.axisHelper());\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n _transformLayoutPosition = (pos: Partial<IPoint>) => {\n let { x, y } = pos;\n if (isValidNumber(x)) {\n x += Number(this._orient === 'left') * this.getLayoutRect().width;\n }\n if (isValidNumber(y)) {\n y += Number(this._orient === 'top') * this.getLayoutRect().height;\n }\n return { x, y };\n };\n\n _transformLayoutRect = (result: ILayoutRect) => {\n if (!this._visible) {\n return result;\n }\n const bounds = this._latestBounds.clone().translate(-this.getLayoutStartPoint().x, -this.getLayoutStartPoint().y);\n switch (this._layout.layoutOrient) {\n case 'left':\n if (this._layout.layoutRectLevelMap.width === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.width = bounds.x1 < 0 ? -bounds.x1 : 0;\n }\n break;\n case 'right':\n if (this._layout.layoutRectLevelMap.width === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.width = bounds.x2 > 0 ? bounds.x2 : 0;\n }\n break;\n case 'top':\n if (this._layout.layoutRectLevelMap.height === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.height = bounds.y1 < 0 ? -bounds.y1 : 0;\n }\n break;\n case 'bottom':\n if (this._layout.layoutRectLevelMap.height === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.height = bounds.y2 > 0 ? bounds.y2 : 0;\n }\n break;\n default:\n break;\n }\n result.width = Math.ceil(result.width);\n result.height = Math.ceil(result.height);\n return this._layout.setRectInSpec(this._layoutCacheProcessing(result));\n };\n /**\n * bounds 预计算\n * @param rect\n * @returns\n */\n getBoundsInRect(rect: ILayoutRect): IBoundsLike {\n let result: IBoundsLike = { x1: 0, y1: 0, x2: 0, y2: 0 };\n if (!this._visible) {\n return result;\n }\n this._verticalLimitSize = isXAxis(this.getOrient()) ? rect.height : rect.width;\n\n this.setLayoutRect(rect);\n const isChanged = this.updateScaleRange();\n // 防止一直没有计算latestData\n if (isChanged || !isArray(this._tickData.getLatestData())) {\n this.computeData('range');\n }\n const context = { skipLayout: false };\n const isX = isXAxis(this.getOrient());\n if (this.pluginService) {\n isX\n ? this.callPlugin(plugin => {\n plugin.onWillLayoutHorizontal && plugin.onWillLayoutHorizontal(this.pluginService, context, this);\n })\n : this.callPlugin(plugin => {\n plugin.onWillLayoutVertical && plugin.onWillLayoutVertical(this.pluginService, context, this);\n });\n }\n const product = this._axisMark.getProduct();\n let hasBounds = false;\n\n if (!context.skipLayout) {\n const attrs = this._getUpdateAttribute(true);\n const axisComponent = product.getGroupGraphicItem();\n\n const spec = mergeSpec({ ...this.getLayoutStartPoint() }, this._axisStyle, attrs, { line: { visible: false } });\n const updateBounds = axisComponent.getBoundsWithoutRender(spec);\n\n hasBounds = true;\n this._latestBounds = updateBounds;\n if (isFinite(updateBounds.width())) {\n // 因为轴单位在某些区域显示的时候,是不参与轴某个方向的包围盒计算的,\n // 所以不太合适放在轴组件内支持,所以就在 VChart 层的轴组件上通过添加 text 图元支持\n result = this._appendAxisUnit(updateBounds, isX);\n }\n }\n\n if (!hasBounds) {\n this._latestBounds = product.getBounds();\n }\n return result;\n }\n\n updateLayoutAttribute(): void {\n if (!this.visible) {\n return;\n }\n const startPoint = this.getLayoutStartPoint();\n // 正式的更新布局属性\n const { grid: updateGridAttrs, ...updateAxisAttrs } = this._getUpdateAttribute(false);\n const axisProduct = this._axisMark.getProduct(); // 获取语法元素\n const axisAttrs = mergeSpec({ x: startPoint.x, y: startPoint.y }, this._axisStyle, updateAxisAttrs);\n axisProduct.encode(axisAttrs);\n\n if (this._gridMark) {\n const gridProduct = this._gridMark.getProduct(); // 获取语法元素\n gridProduct.encode(mergeSpec({ x: startPoint.x, y: startPoint.y }, this._getGridAttributes(), updateGridAttrs));\n }\n\n super.updateLayoutAttribute();\n }\n\n private _getTitleLimit(isX: boolean) {\n if (this._spec.title.visible && isNil(this._spec.title.style?.maxLineWidth)) {\n const angle = this._axisStyle.title?.angle ?? this._spec.title.style?.angle ?? 0;\n if (isX) {\n const width = this.getLayoutRect().width;\n const cosValue = Math.abs(Math.cos(angle));\n // VRender 接收到的limit是考虑角度计算后的宽度\n // TODO:还需要考虑angle后,高度是否太高,综合计算一个limit,比如高度不能超过图表整体高度的1/4\n return cosValue < 1e-6 ? Infinity : width / cosValue;\n }\n const height = this.getLayoutRect().height;\n const sinValue = Math.abs(Math.sin(angle));\n\n // TODO:还需要考虑angle后,宽度是否太宽,综合计算一个limit,比如宽度度不能超过图表整体宽度的1/4\n return sinValue < 1e-6 ? Infinity : height / sinValue;\n }\n\n return null;\n }\n\n private _getUpdateAttribute(ignoreGrid: boolean) {\n // 获取更新的坐标轴属性\n let regionHeight = 0;\n let regionWidth = 0;\n\n if (!ignoreGrid) {\n const regions = this.getRegions();\n let { x: minX, y: minY } = regions[0].getLayoutStartPoint();\n let maxX = minX + regions[0].getLayoutRect().width;\n let maxY = minY + regions[0].getLayoutRect().height;\n\n for (let index = 1; index < regions.length; index++) {\n const region = regions[index];\n const { x, y } = region.getLayoutStartPoint();\n const { width, height } = region.getLayoutRect();\n\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, width + x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, height + y);\n }\n regionHeight = Math.abs(maxY - minY);\n regionWidth = Math.abs(maxX - minX);\n }\n\n const { width, height } = this.getLayoutRect();\n const isX = isXAxis(this._orient);\n const isY = isYAxis(this._orient);\n const isZ = isZAxis(this._orient);\n let end = { x: 0, y: 0 };\n let gridLength = 0;\n let axisLength = 0;\n const depth = this.layout3dBox ? this.layout3dBox.length : 0;\n if (isX) {\n end = { x: width, y: 0 };\n gridLength = regionHeight;\n axisLength = width;\n } else if (isY) {\n end = { x: 0, y: height };\n gridLength = regionWidth;\n axisLength = height;\n }\n if (isZ) {\n const directionStr = this.directionStr ?? 'r2l';\n const depthZ = this.layout3dBox ? this.layout3dBox.width : 0;\n let anchor3d = [0, 0];\n let alpha = -Math.PI / 2;\n let z = 0;\n if (directionStr === 'l2r') {\n z = this.layout3dBox.length;\n anchor3d = [0, 0, 0];\n alpha = Math.PI / 2;\n }\n const items = this.getLabelItems(width);\n const axisAttrs: any = {\n start: { x: 0, y: 0 },\n end: { x: depth, y: 0 },\n z: z,\n alpha,\n anchor3d,\n title: {\n text: this._spec.title.text || this._dataFieldText,\n maxWidth: this._getTitleLimit(isX)\n },\n items\n };\n if (!ignoreGrid) {\n axisAttrs.grid = {\n type: 'line',\n start: { x: 0, y: 0 },\n end: { x: depth, y: 0 },\n items: items[0],\n verticalFactor: this._axisStyle.verticalFactor,\n depth: depthZ,\n length: regionHeight,\n z: z,\n alpha,\n anchor3d\n };\n }\n return axisAttrs;\n }\n let verticalMinSize = isX ? this.layout.minHeight : this.layout.minWidth;\n if (\n (isX && this._layout.layoutRectLevelMap.height === USER_LAYOUT_RECT_LEVEL) ||\n (isY && this._layout.layoutRectLevelMap.width === USER_LAYOUT_RECT_LEVEL)\n ) {\n verticalMinSize = this._verticalLimitSize;\n }\n const items = this.getLabelItems(axisLength);\n const attrs: any = {\n start: { x: 0, y: 0 },\n end,\n title: {\n text: this._spec.title.text || this._dataFieldText,\n maxWidth: this._getTitleLimit(isX)\n },\n items,\n verticalLimitSize: this._verticalLimitSize,\n verticalMinSize\n };\n if (!ignoreGrid) {\n attrs.grid = {\n type: 'line',\n start: { x: 0, y: 0 },\n end,\n items: items[0],\n verticalFactor: this._axisStyle.verticalFactor,\n depth,\n length: gridLength\n };\n }\n\n return attrs;\n }\n\n protected initEvent() {\n super.initEvent();\n\n if (this.visible) {\n // 布局结束之后处理 0 基线问题\n this.event.on(ChartEvent.layoutEnd, this._fixAxisOnZero);\n // 图表resize后,需要正常布局,清除布局缓存\n this.event.on(ChartEvent.layoutRectUpdate, () => {\n this._clearLayoutCache();\n });\n }\n }\n\n private _fixAxisOnZero = () => {\n // 在布局结束之后调整坐标轴零基线\n const { onZero, visible } = this._spec.domainLine;\n if (this.visible && onZero && visible !== false) {\n const { onZeroAxisId, onZeroAxisIndex } = this._spec.domainLine;\n const axesComponents = this._option.getComponentsByKey('axes') as IAxis[];\n const isX = isXAxis(this.getOrient());\n\n // 判断坐标轴是否可用\n const isValidAxis = (item: any) => {\n return (\n (isX ? !isXAxis(item.orient) : isXAxis(item.orient)) &&\n isContinuous(item.getScale().type) &&\n item\n .getTickData()\n .getLatestData()\n ?.find((d: any) => d.value === 0)\n );\n };\n const relativeAxes = axesComponents.filter(item => isValidAxis(item));\n if (relativeAxes.length) {\n let bindAxis;\n if (isValid(onZeroAxisId)) {\n bindAxis = relativeAxes.find(axis => axis.id === onZeroAxisId);\n } else if (isValid(onZeroAxisIndex)) {\n const indexAxis = axesComponents[onZeroAxisIndex];\n if (isValidAxis(indexAxis)) {\n bindAxis = indexAxis;\n }\n } else {\n // 默认绑定第一条的相对坐标轴\n bindAxis = relativeAxes[0];\n }\n if (bindAxis) {\n const axisMark = this._axisMark.getProduct();\n // 找到了绑定的 axis,获取基线的位置\n const position = bindAxis.valueToPosition(0);\n // 获取偏移量\n if (isX) {\n axisMark.encode({\n line: {\n ...this._axisStyle.line,\n dy: this._orient === 'bottom' ? -(bindAxis.getScale().range()[0] - position) : position\n }\n });\n } else {\n axisMark.encode({\n line: {\n ...this._axisStyle.line,\n dx: this._orient === 'left' ? position : -(bindAxis.getScale().range()[1] - position)\n }\n });\n }\n }\n }\n }\n };\n\n protected _layoutCacheProcessing(rect: ILayoutRect) {\n ['width', 'height'].forEach(key => {\n if (rect[key] < this._layoutCache[key]) {\n rect[key] = this._layoutCache[key];\n } else {\n this._layoutCache[key] = rect[key];\n }\n });\n\n // outBounds\n if (this._autoIndentOnce && this._hasAutoIndent) {\n // use cache\n ['x1', 'x2', 'y1', 'y2'].forEach(key => {\n this.layout.getLastComputeOutBounds()[key] = this._layoutCache._lastComputeOutBounds[key];\n });\n } else {\n this._hasAutoIndent = true;\n ['x1', 'x2', 'y1', 'y2'].forEach(key => {\n if (this.layout.getLastComputeOutBounds()[key] < this._layoutCache._lastComputeOutBounds[key]) {\n this.layout.getLastComputeOutBounds()[key] = this._layoutCache._lastComputeOutBounds[key];\n } else {\n this._layoutCache._lastComputeOutBounds[key] = this.layout.getLastComputeOutBounds()[key];\n }\n });\n }\n\n return rect;\n }\n\n _clearLayoutCache() {\n this._hasAutoIndent = false;\n this._layoutCache.width = 0;\n this._layoutCache.height = 0;\n this._layoutCache._lastComputeOutBounds = { x1: 0, x2: 0, y1: 0, y2: 0 };\n }\n\n onDataUpdate(): void {\n // clear layout cache\n this._clearLayoutCache();\n }\n\n protected _transformSpec() {\n // change spec by default logic\n const chartSpec = this._option.getChart().getSpec();\n this._spec.inverse = transformInverse(this._spec, chartSpec.direction === Direction.horizontal);\n }\n\n private _appendAxisUnit(bounds: IBounds, isX: boolean) {\n if (this._spec.unit && this._spec.unit.visible) {\n const { text, style } = this._spec.unit;\n let pos;\n let unitTextStyle: any;\n if (isX) {\n pos = {\n x: bounds.x2,\n y: this.getLayoutStartPoint().y\n };\n unitTextStyle = {\n textAlign: 'left',\n textBaseline: 'middle'\n };\n } else {\n pos = {\n x: this.getLayoutStartPoint().x,\n y: bounds.y1\n };\n unitTextStyle = {\n textAlign: this._orient === 'left' ? 'left' : 'right',\n textBaseline: 'bottom'\n };\n }\n\n unitTextStyle = {\n ...unitTextStyle,\n ...style,\n x: pos.x,\n y: pos.y,\n text\n };\n if (this._unitText) {\n this._unitText.setAttributes(unitTextStyle);\n } else {\n this._unitText = createText(unitTextStyle);\n this._unitText.name = 'axis-unit';\n this.getContainer()?.add(this._unitText);\n }\n\n // 左轴\n const textBounds = this._unitText.AABBBounds;\n if (!isX) {\n bounds.x1 += textBounds.x1 < bounds.x1 ? textBounds.x1 - bounds.x1 : 0;\n bounds.y1 += textBounds.y1 < bounds.y1 ? textBounds.y1 - bounds.y1 : 0;\n } else {\n bounds.x2 += textBounds.x2 > bounds.x2 ? textBounds.x2 - bounds.x2 : 0;\n bounds.y2 += textBounds.y2 > bounds.y2 ? textBounds.y2 - bounds.y2 : 0;\n }\n }\n\n return bounds;\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return this._unitText ? [this._unitText] : [];\n }\n}\n"]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.registerCartesianBandAxis = exports.CartesianBandAxis = void 0;
6
6
 
7
- const vscale_1 = require("@visactor/vscale"), axis_1 = require("./axis"), interface_1 = require("../../interface"), vutils_1 = require("@visactor/vutils"), band_axis_mixin_1 = require("../mixin/band-axis-mixin"), factory_1 = require("../../../core/factory"), base_axis_1 = require("../base-axis"), common_1 = require("./util/common");
7
+ const vscale_1 = require("@visactor/vscale"), axis_1 = require("./axis"), interface_1 = require("../../interface"), vutils_1 = require("@visactor/vutils"), band_axis_mixin_1 = require("../mixin/band-axis-mixin"), factory_1 = require("../../../core/factory"), base_axis_1 = require("../base-axis");
8
8
 
9
9
  class CartesianBandAxis extends axis_1.CartesianAxis {
10
10
  constructor() {
@@ -41,7 +41,7 @@ class CartesianBandAxis extends axis_1.CartesianAxis {
41
41
  if (this._scale && (this._spec.bandSize && this._scale.bandwidth(this._spec.bandSize),
42
42
  this._spec.maxBandSize && this._scale.maxBandwidth(this._spec.maxBandSize), this._spec.minBandSize && this._scale.minBandwidth(this._spec.minBandSize),
43
43
  this._scale.isBandwidthFixed() && this._spec.autoRegionSize && (this._spec.bandSize || this._spec.maxBandSize))) {
44
- const rangeSize = (0, common_1.scaleWholeRangeSize)(this._scale.domain().length, null !== (_a = this._spec.bandSize) && void 0 !== _a ? _a : this._spec.maxBandSize, this._scale.paddingInner(), this._scale.paddingOuter());
44
+ const rangeSize = (0, vscale_1.scaleWholeRangeSize)(this._scale.domain().length, null !== (_a = this._spec.bandSize) && void 0 !== _a ? _a : this._spec.maxBandSize, this._scale.paddingInner(), this._scale.paddingOuter());
45
45
  [ "bottom", "top" ].includes(this._orient) ? this._regions.forEach((region => region.setMaxWidth(rangeSize))) : [ "left", "right" ].includes(this._orient) && this._regions.forEach((region => region.setMaxHeight(rangeSize)));
46
46
  }
47
47
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/axis/cartesian/band-axis.ts"],"names":[],"mappings":"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","file":"band-axis.js","sourcesContent":["import { BandScale } from '@visactor/vscale';\nimport { CartesianAxis } from './axis';\nimport type { ICartesianBandAxisSpec } from './interface';\nimport { ComponentTypeEnum } from '../../interface';\nimport { mixin } from '@visactor/vutils';\nimport { BandAxisMixin } from '../mixin/band-axis-mixin';\nimport type { StringOrNumber } from '../../../typings';\nimport { Factory } from '../../../core/factory';\nimport { registerAxis } from '../base-axis';\nimport { scaleWholeRangeSize } from './util/common';\n\nexport interface CartesianBandAxis<T extends ICartesianBandAxisSpec = ICartesianBandAxisSpec>\n extends Pick<\n BandAxisMixin,\n 'valueToPosition' | 'updateGroupScaleRange' | 'getPosition' | 'calcScales' | 'computeBandDomain'\n >,\n CartesianAxis<T> {}\n\nexport class CartesianBandAxis<T extends ICartesianBandAxisSpec = ICartesianBandAxisSpec> extends CartesianAxis<T> {\n static type = ComponentTypeEnum.cartesianBandAxis;\n type = ComponentTypeEnum.cartesianBandAxis;\n\n protected _scale: BandScale = new BandScale();\n\n protected declare _scales: BandScale[];\n\n protected computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[] {\n return this.computeBandDomain(data);\n }\n\n protected updateScaleRange() {\n const isChanged = super.updateScaleRange();\n this.updateGroupScaleRange();\n\n return isChanged;\n }\n\n protected initScales() {\n super.initScales();\n this.calcScales(this._defaultBandInnerPadding, this._defaultBandOuterPadding);\n }\n\n protected axisHelper() {\n const getScale = (depth: number) => {\n return this._scales[depth];\n };\n const getBandwidth = (depth: number) => {\n return getScale(depth).bandwidth();\n };\n\n return {\n isContinuous: false,\n dataToPosition: this.dataToPosition.bind(this),\n getScale,\n getBandwidth,\n getAxisType: () => this.type,\n getAxisId: () => this.id,\n isInverse: () => this._spec.inverse\n };\n }\n\n transformScaleDomain() {\n this.updateFixedWholeLength();\n }\n\n updateFixedWholeLength() {\n if (this._scale) {\n if (this._spec.bandSize) {\n this._scale.bandwidth(this._spec.bandSize);\n }\n if (this._spec.maxBandSize) {\n this._scale.maxBandwidth(this._spec.maxBandSize);\n }\n if (this._spec.minBandSize) {\n this._scale.minBandwidth(this._spec.minBandSize);\n }\n // 更改 region 最大大小\n if (\n this._scale.isBandwidthFixed() &&\n this._spec.autoRegionSize &&\n (this._spec.bandSize || this._spec.maxBandSize)\n ) {\n const rangeSize = scaleWholeRangeSize(\n this._scale.domain().length,\n this._spec.bandSize ?? this._spec.maxBandSize,\n this._scale.paddingInner(),\n this._scale.paddingOuter()\n );\n if (['bottom', 'top'].includes(this._orient)) {\n this._regions.forEach(region => region.setMaxWidth(rangeSize));\n } else if (['left', 'right'].includes(this._orient)) {\n this._regions.forEach(region => region.setMaxHeight(rangeSize));\n }\n }\n }\n }\n}\n\nmixin(CartesianBandAxis, BandAxisMixin);\n\nexport const registerCartesianBandAxis = () => {\n registerAxis();\n Factory.registerComponent(CartesianBandAxis.type, CartesianBandAxis);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/axis/cartesian/band-axis.ts"],"names":[],"mappings":"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","file":"band-axis.js","sourcesContent":["import { BandScale, scaleWholeRangeSize } from '@visactor/vscale';\nimport { CartesianAxis } from './axis';\nimport type { ICartesianBandAxisSpec } from './interface';\nimport { ComponentTypeEnum } from '../../interface';\nimport { mixin } from '@visactor/vutils';\nimport { BandAxisMixin } from '../mixin/band-axis-mixin';\nimport type { StringOrNumber } from '../../../typings';\nimport { Factory } from '../../../core/factory';\nimport { registerAxis } from '../base-axis';\n\nexport interface CartesianBandAxis<T extends ICartesianBandAxisSpec = ICartesianBandAxisSpec>\n extends Pick<\n BandAxisMixin,\n 'valueToPosition' | 'updateGroupScaleRange' | 'getPosition' | 'calcScales' | 'computeBandDomain'\n >,\n CartesianAxis<T> {}\n\nexport class CartesianBandAxis<T extends ICartesianBandAxisSpec = ICartesianBandAxisSpec> extends CartesianAxis<T> {\n static type = ComponentTypeEnum.cartesianBandAxis;\n type = ComponentTypeEnum.cartesianBandAxis;\n\n protected _scale: BandScale = new BandScale();\n\n protected declare _scales: BandScale[];\n\n protected computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[] {\n return this.computeBandDomain(data);\n }\n\n protected updateScaleRange() {\n const isChanged = super.updateScaleRange();\n this.updateGroupScaleRange();\n\n return isChanged;\n }\n\n protected initScales() {\n super.initScales();\n this.calcScales(this._defaultBandInnerPadding, this._defaultBandOuterPadding);\n }\n\n protected axisHelper() {\n const getScale = (depth: number) => {\n return this._scales[depth];\n };\n const getBandwidth = (depth: number) => {\n return getScale(depth).bandwidth();\n };\n\n return {\n isContinuous: false,\n dataToPosition: this.dataToPosition.bind(this),\n getScale,\n getBandwidth,\n getAxisType: () => this.type,\n getAxisId: () => this.id,\n isInverse: () => this._spec.inverse\n };\n }\n\n transformScaleDomain() {\n this.updateFixedWholeLength();\n }\n\n updateFixedWholeLength() {\n if (this._scale) {\n if (this._spec.bandSize) {\n this._scale.bandwidth(this._spec.bandSize);\n }\n if (this._spec.maxBandSize) {\n this._scale.maxBandwidth(this._spec.maxBandSize);\n }\n if (this._spec.minBandSize) {\n this._scale.minBandwidth(this._spec.minBandSize);\n }\n // 更改 region 最大大小\n if (\n this._scale.isBandwidthFixed() &&\n this._spec.autoRegionSize &&\n (this._spec.bandSize || this._spec.maxBandSize)\n ) {\n const rangeSize = scaleWholeRangeSize(\n this._scale.domain().length,\n this._spec.bandSize ?? this._spec.maxBandSize,\n this._scale.paddingInner(),\n this._scale.paddingOuter()\n );\n if (['bottom', 'top'].includes(this._orient)) {\n this._regions.forEach(region => region.setMaxWidth(rangeSize));\n } else if (['left', 'right'].includes(this._orient)) {\n this._regions.forEach(region => region.setMaxHeight(rangeSize));\n }\n }\n }\n }\n}\n\nmixin(CartesianBandAxis, BandAxisMixin);\n\nexport const registerCartesianBandAxis = () => {\n registerAxis();\n Factory.registerComponent(CartesianBandAxis.type, CartesianBandAxis);\n};\n"]}
@@ -9,5 +9,3 @@ export declare function getOrient(spec: ICartesianAxisCommonSpec, whiteList?: st
9
9
  export declare function getDirectionByOrient(orient: IOrientType): Direction;
10
10
  export declare function isOrientInSameDirection(orient1: IOrientType, orient2: IOrientType): boolean;
11
11
  export declare function transformInverse(spec: ICartesianAxisCommonSpec, isHorizontal: boolean): boolean;
12
- export declare function scaleWholeRangeSize(count: number, bandwidth: number, paddingInner: number, paddingOuter: number): number;
13
- export declare function bandSpace(count: number, paddingInner: number, paddingOuter: number): number;
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.bandSpace = exports.scaleWholeRangeSize = exports.transformInverse = exports.isOrientInSameDirection = exports.getDirectionByOrient = exports.getOrient = exports.autoAxisType = exports.isZAxis = exports.isYAxis = exports.isXAxis = void 0;
5
+ }), exports.transformInverse = exports.isOrientInSameDirection = exports.getDirectionByOrient = exports.getOrient = exports.autoAxisType = exports.isZAxis = exports.isYAxis = exports.isXAxis = void 0;
6
6
 
7
7
  const space_1 = require("../../../../typings/space"), vutils_1 = require("@visactor/vutils"), space_2 = require("../../../../util/space");
8
8
 
@@ -40,19 +40,7 @@ function transformInverse(spec, isHorizontal) {
40
40
  inverse;
41
41
  }
42
42
 
43
- function scaleWholeRangeSize(count, bandwidth, paddingInner, paddingOuter) {
44
- 1 === paddingInner && (paddingInner = 0);
45
- return bandSpace(count, paddingInner, paddingOuter) * (bandwidth / (1 - paddingInner));
46
- }
47
-
48
- function bandSpace(count, paddingInner, paddingOuter) {
49
- let space;
50
- return space = 1 === count ? count + 2 * paddingOuter : count - paddingInner + 2 * paddingOuter,
51
- count ? space > 0 ? space : 1 : 0;
52
- }
53
-
54
43
  exports.isXAxis = isXAxis, exports.isYAxis = isYAxis, exports.isZAxis = isZAxis,
55
44
  exports.autoAxisType = autoAxisType, exports.getOrient = getOrient, exports.getDirectionByOrient = getDirectionByOrient,
56
- exports.isOrientInSameDirection = isOrientInSameDirection, exports.transformInverse = transformInverse,
57
- exports.scaleWholeRangeSize = scaleWholeRangeSize, exports.bandSpace = bandSpace;
45
+ exports.isOrientInSameDirection = isOrientInSameDirection, exports.transformInverse = transformInverse;
58
46
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/axis/cartesian/util/common.ts"],"names":[],"mappings":"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","file":"common.js","sourcesContent":["import type { IOrientType } from '../../../../typings';\n// eslint-disable-next-line no-duplicate-imports\nimport { Direction } from '../../../../typings/space';\nimport { isValid } from '@visactor/vutils';\nimport { isValidOrient } from '../../../../util/space';\nimport type { ICartesianAxisCommonSpec } from '../interface';\n\nexport function isXAxis(orient: IOrientType) {\n return orient === 'bottom' || orient === 'top';\n}\n\nexport function isYAxis(orient: IOrientType) {\n return orient === 'left' || orient === 'right';\n}\n\nexport function isZAxis(orient: IOrientType) {\n return orient === 'z';\n}\n\n// 自动推断轴类型,现在根据orient来判断\n// TODO:后续可以根据数据特征推断\nexport function autoAxisType(orient: IOrientType, isHorizontal: boolean) {\n if (isHorizontal) {\n return isXAxis(orient) ? 'linear' : 'band';\n }\n return isXAxis(orient) ? 'band' : 'linear';\n}\n\nexport function getOrient(spec: ICartesianAxisCommonSpec, whiteList?: string[]): IOrientType {\n return isValidOrient(spec.orient) || (whiteList && whiteList.includes(spec.orient)) ? spec.orient : 'left';\n}\n\nexport function getDirectionByOrient(orient: IOrientType) {\n return orient === 'top' || orient === 'bottom' ? Direction.horizontal : Direction.vertical;\n}\n\nexport function isOrientInSameDirection(orient1: IOrientType, orient2: IOrientType) {\n return getDirectionByOrient(orient1) === getDirectionByOrient(orient2);\n}\n\nexport function transformInverse(spec: ICartesianAxisCommonSpec, isHorizontal: boolean) {\n // 这里处理下 direction === 'horizontal' 下的 Y 轴\n // 因为 Y 轴绘制的时候默认是从下至上绘制的,但是在 direction === 'horizontal' 场景下,图表应该是按照从上至下阅读的\n // 所以这里在这种场景下坐标轴会默认 inverse 已达到效果\n let inverse = spec.inverse;\n if (isHorizontal && !isXAxis(spec.orient)) {\n inverse = isValid(spec.inverse) ? !spec.inverse : true;\n }\n return inverse;\n}\n\n// FIXME: 等 vscale 暴露这两个方法后,删掉这两个方法\n\n/** 计算 scale 的实际 range 长度 */\nexport function scaleWholeRangeSize(count: number, bandwidth: number, paddingInner: number, paddingOuter: number) {\n if (paddingInner === 1) {\n paddingInner = 0; // 保护\n // FIXME: vscale 同样需要加保护,目前这里加了保护以后,在 paddingInner为 1 的情况还是会崩溃\n }\n const space = bandSpace(count, paddingInner, paddingOuter);\n const step = bandwidth / (1 - paddingInner);\n const wholeSize = space * step;\n return wholeSize;\n}\n\nexport function bandSpace(count: number, paddingInner: number, paddingOuter: number): number {\n let space;\n // count 等于 1 时需要特殊处理,否则 step 会超出 range 范围\n // 计算公式: step = paddingOuter * step * 2 + paddingInner * step + bandwidth\n if (count === 1) {\n space = count + paddingOuter * 2;\n } else {\n space = count - paddingInner + paddingOuter * 2;\n }\n return count ? (space > 0 ? space : 1) : 0;\n}\n"]}
1
+ {"version":3,"sources":["../src/component/axis/cartesian/util/common.ts"],"names":[],"mappings":";;;AAEA,qDAAsD;AACtD,6CAA2C;AAC3C,kDAAuD;AAGvD,SAAgB,OAAO,CAAC,MAAmB;IACzC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC;AACjD,CAAC;AAFD,0BAEC;AAED,SAAgB,OAAO,CAAC,MAAmB;IACzC,OAAO,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC;AACjD,CAAC;AAFD,0BAEC;AAED,SAAgB,OAAO,CAAC,MAAmB;IACzC,OAAO,MAAM,KAAK,GAAG,CAAC;AACxB,CAAC;AAFD,0BAEC;AAID,SAAgB,YAAY,CAAC,MAAmB,EAAE,YAAqB;IACrE,IAAI,YAAY,EAAE;QAChB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;KAC5C;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7C,CAAC;AALD,oCAKC;AAED,SAAgB,SAAS,CAAC,IAA8B,EAAE,SAAoB;IAC5E,OAAO,IAAA,qBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7G,CAAC;AAFD,8BAEC;AAED,SAAgB,oBAAoB,CAAC,MAAmB;IACtD,OAAO,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAS,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAS,CAAC,QAAQ,CAAC;AAC7F,CAAC;AAFD,oDAEC;AAED,SAAgB,uBAAuB,CAAC,OAAoB,EAAE,OAAoB;IAChF,OAAO,oBAAoB,CAAC,OAAO,CAAC,KAAK,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACzE,CAAC;AAFD,0DAEC;AAED,SAAgB,gBAAgB,CAAC,IAA8B,EAAE,YAAqB;IAIpF,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC3B,IAAI,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACzC,OAAO,GAAG,IAAA,gBAAO,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;KACxD;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AATD,4CASC","file":"common.js","sourcesContent":["import type { IOrientType } from '../../../../typings';\n// eslint-disable-next-line no-duplicate-imports\nimport { Direction } from '../../../../typings/space';\nimport { isValid } from '@visactor/vutils';\nimport { isValidOrient } from '../../../../util/space';\nimport type { ICartesianAxisCommonSpec } from '../interface';\n\nexport function isXAxis(orient: IOrientType) {\n return orient === 'bottom' || orient === 'top';\n}\n\nexport function isYAxis(orient: IOrientType) {\n return orient === 'left' || orient === 'right';\n}\n\nexport function isZAxis(orient: IOrientType) {\n return orient === 'z';\n}\n\n// 自动推断轴类型,现在根据orient来判断\n// TODO:后续可以根据数据特征推断\nexport function autoAxisType(orient: IOrientType, isHorizontal: boolean) {\n if (isHorizontal) {\n return isXAxis(orient) ? 'linear' : 'band';\n }\n return isXAxis(orient) ? 'band' : 'linear';\n}\n\nexport function getOrient(spec: ICartesianAxisCommonSpec, whiteList?: string[]): IOrientType {\n return isValidOrient(spec.orient) || (whiteList && whiteList.includes(spec.orient)) ? spec.orient : 'left';\n}\n\nexport function getDirectionByOrient(orient: IOrientType) {\n return orient === 'top' || orient === 'bottom' ? Direction.horizontal : Direction.vertical;\n}\n\nexport function isOrientInSameDirection(orient1: IOrientType, orient2: IOrientType) {\n return getDirectionByOrient(orient1) === getDirectionByOrient(orient2);\n}\n\nexport function transformInverse(spec: ICartesianAxisCommonSpec, isHorizontal: boolean) {\n // 这里处理下 direction === 'horizontal' 下的 Y 轴\n // 因为 Y 轴绘制的时候默认是从下至上绘制的,但是在 direction === 'horizontal' 场景下,图表应该是按照从上至下阅读的\n // 所以这里在这种场景下坐标轴会默认 inverse 已达到效果\n let inverse = spec.inverse;\n if (isHorizontal && !isXAxis(spec.orient)) {\n inverse = isValid(spec.inverse) ? !spec.inverse : true;\n }\n return inverse;\n}\n"]}
@@ -15,6 +15,7 @@ export interface IAxis extends IComponent {
15
15
  getScales: () => IBaseScale[];
16
16
  getOrient: () => ICartesianAxisSpec['orient'] | IPolarOrientType;
17
17
  visible: boolean;
18
+ directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';
18
19
  }
19
20
  export interface IAxisItem<T> {
20
21
  visible?: boolean;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/axis/interface/common.ts"],"names":[],"mappings":"","file":"common.js","sourcesContent":["import type { IBaseScale } from '@visactor/vscale';\nimport type { Datum, IPolarOrientType, StringOrNumber } from '../../../typings';\nimport type { IComponent } from '../../interface/common';\nimport type { ICartesianAxisSpec } from '../cartesian/interface';\nimport type { ITextGraphicAttribute } from '@visactor/vrender-core';\n\nexport interface StatisticsDomain {\n domain: any[];\n index: { [key in StringOrNumber]: number };\n}\n\nexport interface IAxis extends IComponent {\n valueToPosition: (value: any) => number;\n getScale: () => IBaseScale;\n getScales: () => IBaseScale[];\n getOrient: () => ICartesianAxisSpec['orient'] | IPolarOrientType;\n visible: boolean;\n}\n\nexport interface IAxisItem<T> {\n visible?: boolean;\n style?: Omit<T, 'visible'>;\n}\n\nexport interface IAxisItemTheme<T> {\n visible?: boolean;\n style?: Omit<T, 'visible'>;\n}\nexport type AxisAnimationPreset = 'groupFadeIn' | 'fadeIn' | 'grow';\n\nexport type ITickCallbackOption = {\n axisLength?: number;\n labelStyle?: ITextGraphicAttribute;\n};\n\nexport type StyleCallback<T> = (value: any, index: number, datum: Datum, data: Datum[]) => T;\nexport type AxisType = 'linear' | 'ordinal' | 'band' | 'point' | 'time' | 'log' | 'symlog';\n\nexport interface IAxisLocationCfg {\n bandPosition?: number;\n datum?: Datum;\n}\n"]}
1
+ {"version":3,"sources":["../src/component/axis/interface/common.ts"],"names":[],"mappings":"","file":"common.js","sourcesContent":["import type { IBaseScale } from '@visactor/vscale';\nimport type { Datum, IPolarOrientType, StringOrNumber } from '../../../typings';\nimport type { IComponent } from '../../interface/common';\nimport type { ICartesianAxisSpec } from '../cartesian/interface';\nimport type { ITextGraphicAttribute } from '@visactor/vrender-core';\n\nexport interface StatisticsDomain {\n domain: any[];\n index: { [key in StringOrNumber]: number };\n}\n\nexport interface IAxis extends IComponent {\n valueToPosition: (value: any) => number;\n getScale: () => IBaseScale;\n getScales: () => IBaseScale[];\n getOrient: () => ICartesianAxisSpec['orient'] | IPolarOrientType;\n visible: boolean;\n // 标记轴的方向,左到右,右到左,上到下,下到上\n directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';\n}\n\nexport interface IAxisItem<T> {\n visible?: boolean;\n style?: Omit<T, 'visible'>;\n}\n\nexport interface IAxisItemTheme<T> {\n visible?: boolean;\n style?: Omit<T, 'visible'>;\n}\nexport type AxisAnimationPreset = 'groupFadeIn' | 'fadeIn' | 'grow';\n\nexport type ITickCallbackOption = {\n axisLength?: number;\n labelStyle?: ITextGraphicAttribute;\n};\n\nexport type StyleCallback<T> = (value: any, index: number, datum: Datum, data: Datum[]) => T;\nexport type AxisType = 'linear' | 'ordinal' | 'band' | 'point' | 'time' | 'log' | 'symlog';\n\nexport interface IAxisLocationCfg {\n bandPosition?: number;\n datum?: Datum;\n}\n"]}
@@ -61,7 +61,9 @@ class PolarAxis extends base_axis_1.AxisComponent {
61
61
  const axisType = null !== (_a = spec.type) && void 0 !== _a ? _a : "angle" === spec.orient ? "band" : "linear", componentName = `${PolarAxis.type}-${axisType}`, C = factory_1.Factory.getComponentInKey(componentName);
62
62
  return C ? new C(Object.assign(Object.assign({}, spec), {
63
63
  type: axisType
64
- }), options) : (options.onError(`Component ${componentName} not found`), null);
64
+ }), Object.assign(Object.assign({}, options), {
65
+ type: componentName
66
+ })) : (options.onError(`Component ${componentName} not found`), null);
65
67
  }
66
68
  static createComponent(spec, options) {
67
69
  var _a, _b;