@visactor/vchart 1.1.2 → 1.2.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/build/index.js +420 -163
  2. package/build/index.min.js +1 -1
  3. package/cjs/chart/area/area.js +3 -1
  4. package/cjs/chart/area/area.js.map +1 -1
  5. package/cjs/chart/base-chart.d.ts +7 -2
  6. package/cjs/chart/base-chart.js +51 -23
  7. package/cjs/chart/base-chart.js.map +1 -1
  8. package/cjs/chart/interface/chart.d.ts +1 -0
  9. package/cjs/chart/interface/chart.js.map +1 -1
  10. package/cjs/chart/line/line.js +3 -1
  11. package/cjs/chart/line/line.js.map +1 -1
  12. package/cjs/chart/radar/radar.js +3 -1
  13. package/cjs/chart/radar/radar.js.map +1 -1
  14. package/cjs/chart/sequence/sequence.js +5 -3
  15. package/cjs/chart/sequence/sequence.js.map +1 -1
  16. package/cjs/chart/stack.js +3 -3
  17. package/cjs/chart/stack.js.map +1 -1
  18. package/cjs/compile/compiler.js +9 -5
  19. package/cjs/compile/compiler.js.map +1 -1
  20. package/cjs/compile/interface/compiler.d.ts +1 -0
  21. package/cjs/compile/interface/compiler.js.map +1 -1
  22. package/cjs/component/axis/cartesian/axis.js +1 -1
  23. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  24. package/cjs/component/axis/interface.d.ts +25 -27
  25. package/cjs/component/axis/interface.js.map +1 -1
  26. package/cjs/component/axis/polar/axis.js +2 -2
  27. package/cjs/component/axis/polar/axis.js.map +1 -1
  28. package/cjs/component/geo/geo-coordinate.js +1 -1
  29. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  30. package/cjs/component/geo/projection.js +1 -2
  31. package/cjs/component/geo/projection.js.map +1 -1
  32. package/cjs/component/indicator/indicator.js +1 -1
  33. package/cjs/component/indicator/indicator.js.map +1 -1
  34. package/cjs/component/marker/base-marker.js +1 -1
  35. package/cjs/component/marker/base-marker.js.map +1 -1
  36. package/cjs/component/marker/interface.d.ts +2 -2
  37. package/cjs/component/marker/interface.js.map +1 -1
  38. package/cjs/component/tooltip/processor/dimension-tooltip.js +3 -2
  39. package/cjs/component/tooltip/processor/dimension-tooltip.js.map +1 -1
  40. package/cjs/constant/event.d.ts +2 -0
  41. package/cjs/constant/event.js +2 -1
  42. package/cjs/constant/event.js.map +1 -1
  43. package/cjs/core/index.d.ts +1 -1
  44. package/cjs/core/index.js +1 -1
  45. package/cjs/core/index.js.map +1 -1
  46. package/cjs/core/vchart.d.ts +6 -0
  47. package/cjs/core/vchart.js +72 -27
  48. package/cjs/core/vchart.js.map +1 -1
  49. package/cjs/data/initialize.d.ts +2 -1
  50. package/cjs/data/initialize.js +8 -5
  51. package/cjs/data/initialize.js.map +1 -1
  52. package/cjs/data/transforms/legend-data/discrete/discrete.js +3 -2
  53. package/cjs/data/transforms/legend-data/discrete/discrete.js.map +1 -1
  54. package/cjs/data/transforms/sankey.d.ts +2 -0
  55. package/cjs/data/transforms/sankey.js +9 -1
  56. package/cjs/data/transforms/sankey.js.map +1 -1
  57. package/cjs/event/events/dimension/base.js +6 -4
  58. package/cjs/event/events/dimension/base.js.map +1 -1
  59. package/cjs/event/events/dimension/interface.js.map +1 -1
  60. package/cjs/event/events/dimension/util/cartesian.d.ts +2 -2
  61. package/cjs/event/events/dimension/util/cartesian.js +12 -11
  62. package/cjs/event/events/dimension/util/cartesian.js.map +1 -1
  63. package/cjs/event/events/dimension/util/common.d.ts +1 -1
  64. package/cjs/event/events/dimension/util/common.js +13 -6
  65. package/cjs/event/events/dimension/util/common.js.map +1 -1
  66. package/cjs/layout/base-layout.d.ts +3 -0
  67. package/cjs/layout/base-layout.js +8 -4
  68. package/cjs/layout/base-layout.js.map +1 -1
  69. package/cjs/layout/grid-layout/grid-layout.d.ts +3 -1
  70. package/cjs/layout/grid-layout/grid-layout.js +3 -2
  71. package/cjs/layout/grid-layout/grid-layout.js.map +1 -1
  72. package/cjs/layout/interface.d.ts +2 -1
  73. package/cjs/layout/interface.js.map +1 -1
  74. package/cjs/model/interface.d.ts +1 -4
  75. package/cjs/model/interface.js.map +1 -1
  76. package/cjs/model/layout-item.d.ts +0 -3
  77. package/cjs/model/layout-item.js +1 -8
  78. package/cjs/model/layout-item.js.map +1 -1
  79. package/cjs/series/area/area.js +5 -4
  80. package/cjs/series/area/area.js.map +1 -1
  81. package/cjs/series/area/interface.d.ts +1 -0
  82. package/cjs/series/area/interface.js.map +1 -1
  83. package/cjs/series/base/base-series.js +2 -4
  84. package/cjs/series/base/base-series.js.map +1 -1
  85. package/cjs/series/geo/geo.js +3 -3
  86. package/cjs/series/geo/geo.js.map +1 -1
  87. package/cjs/series/line/interface.d.ts +4 -2
  88. package/cjs/series/line/interface.js.map +1 -1
  89. package/cjs/series/line/line.js +5 -3
  90. package/cjs/series/line/line.js.map +1 -1
  91. package/cjs/series/map/map.js +6 -6
  92. package/cjs/series/map/map.js.map +1 -1
  93. package/cjs/series/mixin/line-mixin.d.ts +1 -1
  94. package/cjs/series/mixin/line-mixin.js +3 -2
  95. package/cjs/series/mixin/line-mixin.js.map +1 -1
  96. package/cjs/series/radar/interface.d.ts +1 -0
  97. package/cjs/series/radar/interface.js.map +1 -1
  98. package/cjs/series/radar/radar.js +4 -4
  99. package/cjs/series/radar/radar.js.map +1 -1
  100. package/cjs/series/sankey/sankey.js +7 -4
  101. package/cjs/series/sankey/sankey.js.map +1 -1
  102. package/cjs/series/scatter/scatter.js +7 -4
  103. package/cjs/series/scatter/scatter.js.map +1 -1
  104. package/cjs/series/sunburst/sunburst.d.ts +1 -1
  105. package/cjs/series/word-cloud/base.d.ts +7 -0
  106. package/cjs/series/word-cloud/base.js +8 -3
  107. package/cjs/series/word-cloud/base.js.map +1 -1
  108. package/cjs/theme/buildin-theme/light/series/area.js +5 -0
  109. package/cjs/theme/buildin-theme/light/series/area.js.map +1 -1
  110. package/cjs/theme/buildin-theme/light/series/line.js +5 -0
  111. package/cjs/theme/buildin-theme/light/series/line.js.map +1 -1
  112. package/cjs/theme/buildin-theme/light/series/radar.js +5 -0
  113. package/cjs/theme/buildin-theme/light/series/radar.js.map +1 -1
  114. package/cjs/typings/params.d.ts +5 -0
  115. package/cjs/typings/params.js.map +1 -1
  116. package/cjs/typings/spec/common.d.ts +8 -2
  117. package/cjs/typings/spec/common.js.map +1 -1
  118. package/cjs/typings/visual.d.ts +1 -1
  119. package/cjs/typings/visual.js.map +1 -1
  120. package/cjs/util/debug.d.ts +2 -2
  121. package/cjs/util/debug.js +4 -3
  122. package/cjs/util/debug.js.map +1 -1
  123. package/cjs/util/image.d.ts +2 -1
  124. package/cjs/util/image.js +10 -6
  125. package/cjs/util/image.js.map +1 -1
  126. package/cjs/util/math.js +5 -3
  127. package/cjs/util/math.js.map +1 -1
  128. package/cjs/util/spec.d.ts +4 -0
  129. package/cjs/util/spec.js +24 -2
  130. package/cjs/util/spec.js.map +1 -1
  131. package/esm/chart/area/area.js +3 -1
  132. package/esm/chart/area/area.js.map +1 -1
  133. package/esm/chart/base-chart.d.ts +7 -2
  134. package/esm/chart/base-chart.js +51 -21
  135. package/esm/chart/base-chart.js.map +1 -1
  136. package/esm/chart/interface/chart.d.ts +1 -0
  137. package/esm/chart/interface/chart.js.map +1 -1
  138. package/esm/chart/line/line.js +3 -1
  139. package/esm/chart/line/line.js.map +1 -1
  140. package/esm/chart/radar/radar.js +3 -1
  141. package/esm/chart/radar/radar.js.map +1 -1
  142. package/esm/chart/sequence/sequence.js +5 -3
  143. package/esm/chart/sequence/sequence.js.map +1 -1
  144. package/esm/chart/stack.js +3 -3
  145. package/esm/chart/stack.js.map +1 -1
  146. package/esm/compile/compiler.js +10 -6
  147. package/esm/compile/compiler.js.map +1 -1
  148. package/esm/compile/interface/compiler.d.ts +1 -0
  149. package/esm/compile/interface/compiler.js.map +1 -1
  150. package/esm/component/axis/cartesian/axis.js +1 -1
  151. package/esm/component/axis/cartesian/axis.js.map +1 -1
  152. package/esm/component/axis/interface.d.ts +25 -27
  153. package/esm/component/axis/interface.js.map +1 -1
  154. package/esm/component/axis/polar/axis.js +2 -2
  155. package/esm/component/axis/polar/axis.js.map +1 -1
  156. package/esm/component/geo/geo-coordinate.js +1 -1
  157. package/esm/component/geo/geo-coordinate.js.map +1 -1
  158. package/esm/component/geo/projection.js +1 -1
  159. package/esm/component/geo/projection.js.map +1 -1
  160. package/esm/component/indicator/indicator.js +1 -1
  161. package/esm/component/indicator/indicator.js.map +1 -1
  162. package/esm/component/marker/base-marker.js +1 -1
  163. package/esm/component/marker/base-marker.js.map +1 -1
  164. package/esm/component/marker/interface.d.ts +2 -2
  165. package/esm/component/marker/interface.js.map +1 -1
  166. package/esm/component/tooltip/processor/dimension-tooltip.js +4 -1
  167. package/esm/component/tooltip/processor/dimension-tooltip.js.map +1 -1
  168. package/esm/constant/event.d.ts +2 -0
  169. package/esm/constant/event.js +2 -1
  170. package/esm/constant/event.js.map +1 -1
  171. package/esm/core/index.d.ts +1 -1
  172. package/esm/core/index.js +1 -1
  173. package/esm/core/index.js.map +1 -1
  174. package/esm/core/vchart.d.ts +6 -0
  175. package/esm/core/vchart.js +74 -27
  176. package/esm/core/vchart.js.map +1 -1
  177. package/esm/data/initialize.d.ts +2 -1
  178. package/esm/data/initialize.js +9 -4
  179. package/esm/data/initialize.js.map +1 -1
  180. package/esm/data/transforms/legend-data/discrete/discrete.js +4 -1
  181. package/esm/data/transforms/legend-data/discrete/discrete.js.map +1 -1
  182. package/esm/data/transforms/sankey.d.ts +2 -0
  183. package/esm/data/transforms/sankey.js +9 -1
  184. package/esm/data/transforms/sankey.js.map +1 -1
  185. package/esm/event/events/dimension/base.js +8 -4
  186. package/esm/event/events/dimension/base.js.map +1 -1
  187. package/esm/event/events/dimension/interface.js.map +1 -1
  188. package/esm/event/events/dimension/util/cartesian.d.ts +2 -2
  189. package/esm/event/events/dimension/util/cartesian.js +7 -8
  190. package/esm/event/events/dimension/util/cartesian.js.map +1 -1
  191. package/esm/event/events/dimension/util/common.d.ts +1 -1
  192. package/esm/event/events/dimension/util/common.js +14 -6
  193. package/esm/event/events/dimension/util/common.js.map +1 -1
  194. package/esm/layout/base-layout.d.ts +3 -0
  195. package/esm/layout/base-layout.js +8 -4
  196. package/esm/layout/base-layout.js.map +1 -1
  197. package/esm/layout/grid-layout/grid-layout.d.ts +3 -1
  198. package/esm/layout/grid-layout/grid-layout.js +3 -2
  199. package/esm/layout/grid-layout/grid-layout.js.map +1 -1
  200. package/esm/layout/interface.d.ts +2 -1
  201. package/esm/layout/interface.js.map +1 -1
  202. package/esm/model/interface.d.ts +1 -4
  203. package/esm/model/interface.js.map +1 -1
  204. package/esm/model/layout-item.d.ts +0 -3
  205. package/esm/model/layout-item.js +1 -8
  206. package/esm/model/layout-item.js.map +1 -1
  207. package/esm/series/area/area.js +5 -4
  208. package/esm/series/area/area.js.map +1 -1
  209. package/esm/series/area/interface.d.ts +1 -0
  210. package/esm/series/area/interface.js.map +1 -1
  211. package/esm/series/base/base-series.js +1 -4
  212. package/esm/series/base/base-series.js.map +1 -1
  213. package/esm/series/geo/geo.js +3 -3
  214. package/esm/series/geo/geo.js.map +1 -1
  215. package/esm/series/line/interface.d.ts +4 -2
  216. package/esm/series/line/interface.js.map +1 -1
  217. package/esm/series/line/line.js +5 -3
  218. package/esm/series/line/line.js.map +1 -1
  219. package/esm/series/map/map.js +6 -6
  220. package/esm/series/map/map.js.map +1 -1
  221. package/esm/series/mixin/line-mixin.d.ts +1 -1
  222. package/esm/series/mixin/line-mixin.js +3 -2
  223. package/esm/series/mixin/line-mixin.js.map +1 -1
  224. package/esm/series/radar/interface.d.ts +1 -0
  225. package/esm/series/radar/interface.js.map +1 -1
  226. package/esm/series/radar/radar.js +4 -4
  227. package/esm/series/radar/radar.js.map +1 -1
  228. package/esm/series/sankey/sankey.js +7 -4
  229. package/esm/series/sankey/sankey.js.map +1 -1
  230. package/esm/series/scatter/scatter.js +5 -4
  231. package/esm/series/scatter/scatter.js.map +1 -1
  232. package/esm/series/sunburst/sunburst.d.ts +1 -1
  233. package/esm/series/word-cloud/base.d.ts +7 -0
  234. package/esm/series/word-cloud/base.js +7 -0
  235. package/esm/series/word-cloud/base.js.map +1 -1
  236. package/esm/theme/buildin-theme/light/series/area.js +5 -0
  237. package/esm/theme/buildin-theme/light/series/area.js.map +1 -1
  238. package/esm/theme/buildin-theme/light/series/line.js +5 -0
  239. package/esm/theme/buildin-theme/light/series/line.js.map +1 -1
  240. package/esm/theme/buildin-theme/light/series/radar.js +5 -0
  241. package/esm/theme/buildin-theme/light/series/radar.js.map +1 -1
  242. package/esm/typings/params.d.ts +5 -0
  243. package/esm/typings/params.js.map +1 -1
  244. package/esm/typings/spec/common.d.ts +8 -2
  245. package/esm/typings/spec/common.js.map +1 -1
  246. package/esm/typings/visual.d.ts +1 -1
  247. package/esm/typings/visual.js.map +1 -1
  248. package/esm/util/debug.d.ts +2 -2
  249. package/esm/util/debug.js +4 -3
  250. package/esm/util/debug.js.map +1 -1
  251. package/esm/util/image.d.ts +2 -1
  252. package/esm/util/image.js +6 -3
  253. package/esm/util/image.js.map +1 -1
  254. package/esm/util/math.js +4 -2
  255. package/esm/util/math.js.map +1 -1
  256. package/esm/util/spec.d.ts +4 -0
  257. package/esm/util/spec.js +21 -0
  258. package/esm/util/spec.js.map +1 -1
  259. package/package.json +7 -17
  260. package/chart.d.ts +0 -1
  261. package/chart.js +0 -1
  262. package/component.d.ts +0 -1
  263. package/component.js +0 -1
  264. package/core.d.ts +0 -1
  265. package/core.js +0 -1
  266. package/layout.d.ts +0 -1
  267. package/layout.js +0 -1
  268. package/mark.d.ts +0 -1
  269. package/mark.js +0 -1
  270. package/series.d.ts +0 -1
  271. package/series.js +0 -1
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.DimensionTooltipProcessor = void 0;
6
6
 
7
- const base_1 = require("./base"), utils_1 = require("../utils"), vutils_1 = require("@visactor/vutils"), util_1 = require("../../../event/events/dimension/util"), constants_1 = require("../handler/constants");
7
+ const base_1 = require("./base"), utils_1 = require("../utils"), vutils_1 = require("@visactor/vutils"), util_1 = require("../../../event/events/dimension/util"), constants_1 = require("../handler/constants"), vscale_1 = require("@visactor/vscale");
8
8
 
9
9
  class DimensionTooltipProcessor extends base_1.BaseTooltipProcessor {
10
10
  constructor() {
@@ -37,6 +37,7 @@ class DimensionTooltipProcessor extends base_1.BaseTooltipProcessor {
37
37
  const dimensionAxisInfo = null !== (_c = targetDimensionInfo.filter((info => {
38
38
  var _a;
39
39
  const axis = info.axis;
40
+ if (!(0, vscale_1.isDiscrete)(axis.getScale().type)) return !1;
40
41
  let firstSeries;
41
42
  for (const region of null !== (_a = null == axis ? void 0 : axis.getRegions()) && void 0 !== _a ? _a : []) {
42
43
  for (const series of region.getSeries()) if ("cartesian" === series.coordinate) {
@@ -45,7 +46,7 @@ class DimensionTooltipProcessor extends base_1.BaseTooltipProcessor {
45
46
  }
46
47
  if ((0, vutils_1.isValid)(firstSeries)) break;
47
48
  }
48
- return (0, vutils_1.isValid)(firstSeries) && firstSeries.getDimensionField() === firstSeries.fieldY ? "left" === axis.orient || "right" === axis.orient : "bottom" === axis.orient || "top" === axis.orient;
49
+ return (0, vutils_1.isValid)(firstSeries) && firstSeries.getDimensionField()[0] === firstSeries.fieldY[0] ? "left" === axis.orient || "right" === axis.orient : "bottom" === axis.orient || "top" === axis.orient;
49
50
  }))[0]) && void 0 !== _c ? _c : targetDimensionInfo[0];
50
51
  targetDimensionInfo = [ dimensionAxisInfo ];
51
52
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/processor/dimension-tooltip.ts"],"names":[],"mappings":"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","file":"dimension-tooltip.js","sourcesContent":["import type { BaseEventParams } from '../../../event/interface';\nimport type { TooltipActiveType } from '../../../typings';\nimport type { TooltipHandlerParams } from '../interface';\nimport type { DimensionTooltipInfo, MouseEventData } from './interface';\nimport { BaseTooltipProcessor } from './base';\nimport { isEmptyPos } from '../utils';\nimport { isNil, isValid } from '@visactor/vutils';\nimport type { ICartesianSeries, ISeries } from '../../../series/interface';\nimport { getCartesianDimensionInfo, getPolarDimensionInfo } from '../../../event/events/dimension/util';\nimport type { IDimensionInfo } from '../../../event/events/dimension/interface';\nimport { TooltipHandlerType } from '../handler/constants';\n\nexport class DimensionTooltipProcessor extends BaseTooltipProcessor {\n activeType: TooltipActiveType = 'dimension';\n\n /** 触发对应类型的 tooltip */\n showTooltip(info: DimensionTooltipInfo, params: BaseEventParams, changePositionOnly: boolean) {\n const newParams: TooltipHandlerParams = {\n ...params,\n dimensionInfo: this._preprocessDimensionInfo(info),\n changePositionOnly\n };\n return this._showTooltipByHandler(info, newParams);\n }\n\n /** 判断是否应该触发 tooltip */\n shouldHandleTooltip(params: BaseEventParams, mouseEventData: Partial<MouseEventData>): boolean {\n const { tooltipInfo: info } = mouseEventData;\n if (isNil(info)) {\n return false;\n }\n\n // 自定义 handler\n if (![TooltipHandlerType.dom, TooltipHandlerType.canvas].includes((this.component.tooltipHandler as any).type)) {\n return true;\n }\n\n const helper = (params.model as ISeries)?.tooltipHelper;\n if (isEmptyPos(params) || isNil(helper)) {\n return true;\n }\n\n if (!helper.activeType.includes('dimension')) {\n return false;\n }\n return true;\n }\n\n /** 获取触发 tooltip 需要的信息 */\n getMouseEventData(params: BaseEventParams): MouseEventData {\n let targetDimensionInfo: DimensionTooltipInfo | undefined;\n let ignore: boolean | undefined;\n\n // 处理dimension info\n const x = (params.event as any).viewX;\n const y = (params.event as any).viewY;\n const chart = this.component.getChart();\n const pos = { x, y };\n targetDimensionInfo = [\n ...(getCartesianDimensionInfo(chart, pos) ?? []),\n ...(getPolarDimensionInfo(chart, pos) ?? [])\n ];\n if (targetDimensionInfo.length === 0) {\n targetDimensionInfo = undefined;\n } else if (targetDimensionInfo.length > 1) {\n // 只保留一个轴的dimension info\n const dimensionAxisInfo =\n targetDimensionInfo.filter(info => {\n const axis = info.axis;\n let firstSeries: ICartesianSeries | undefined;\n for (const region of axis?.getRegions() ?? []) {\n for (const series of region.getSeries()) {\n if (series.coordinate === 'cartesian') {\n firstSeries = series as ICartesianSeries;\n break;\n }\n }\n if (isValid(firstSeries)) {\n break;\n }\n }\n if (isValid(firstSeries) && firstSeries.getDimensionField() === firstSeries.fieldY) {\n return axis.orient === 'left' || axis.orient === 'right'; // 维度轴为Y轴时,选择只显示Y轴tooltip\n }\n return axis.orient === 'bottom' || axis.orient === 'top'; // 维度轴为X轴时,选择只显示X轴tooltip\n })[0] ?? targetDimensionInfo[0];\n targetDimensionInfo = [dimensionAxisInfo];\n }\n // 排除被声明要忽略的项\n if (\n [...((this.component.getOption() as any).getAllSeries() ?? [])].some(model => {\n const ignoreTriggers = model.tooltipHelper?.ignoreTriggerSet.dimension;\n return (params.model && ignoreTriggers?.has(params.model)) || (params.mark && ignoreTriggers?.has(params.mark));\n })\n ) {\n ignore = true;\n }\n\n return {\n tooltipInfo: targetDimensionInfo,\n ignore\n };\n }\n\n private _preprocessDimensionInfo(dimensionInfo?: DimensionTooltipInfo): DimensionTooltipInfo | undefined {\n const newDimensionInfo: DimensionTooltipInfo = [];\n dimensionInfo?.forEach(info => {\n const di: IDimensionInfo = {\n ...info,\n data: info.data.filter(\n ({ series }: any) => series.getSpec()?.tooltip?.visible !== false // 过滤掉不需要显示的维度数据\n )\n };\n if (di.data.length > 0) {\n newDimensionInfo.push(di);\n }\n });\n if (newDimensionInfo.length > 0) {\n return newDimensionInfo;\n }\n return undefined;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/processor/dimension-tooltip.ts"],"names":[],"mappings":"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","file":"dimension-tooltip.js","sourcesContent":["import type { BaseEventParams } from '../../../event/interface';\nimport type { TooltipActiveType } from '../../../typings';\nimport type { TooltipHandlerParams } from '../interface';\nimport type { DimensionTooltipInfo, MouseEventData } from './interface';\nimport { BaseTooltipProcessor } from './base';\nimport { isEmptyPos } from '../utils';\nimport { isNil, isValid } from '@visactor/vutils';\nimport type { ICartesianSeries, ISeries } from '../../../series/interface';\nimport { getCartesianDimensionInfo, getPolarDimensionInfo } from '../../../event/events/dimension/util';\nimport type { IDimensionInfo } from '../../../event/events/dimension/interface';\nimport { TooltipHandlerType } from '../handler/constants';\nimport { isDiscrete } from '@visactor/vscale';\n\nexport class DimensionTooltipProcessor extends BaseTooltipProcessor {\n activeType: TooltipActiveType = 'dimension';\n\n /** 触发对应类型的 tooltip */\n showTooltip(info: DimensionTooltipInfo, params: BaseEventParams, changePositionOnly: boolean) {\n const newParams: TooltipHandlerParams = {\n ...params,\n dimensionInfo: this._preprocessDimensionInfo(info),\n changePositionOnly\n };\n return this._showTooltipByHandler(info, newParams);\n }\n\n /** 判断是否应该触发 tooltip */\n shouldHandleTooltip(params: BaseEventParams, mouseEventData: Partial<MouseEventData>): boolean {\n const { tooltipInfo: info } = mouseEventData;\n if (isNil(info)) {\n return false;\n }\n\n // 自定义 handler\n if (![TooltipHandlerType.dom, TooltipHandlerType.canvas].includes((this.component.tooltipHandler as any).type)) {\n return true;\n }\n\n const helper = (params.model as ISeries)?.tooltipHelper;\n if (isEmptyPos(params) || isNil(helper)) {\n return true;\n }\n\n if (!helper.activeType.includes('dimension')) {\n return false;\n }\n return true;\n }\n\n /** 获取触发 tooltip 需要的信息 */\n getMouseEventData(params: BaseEventParams): MouseEventData {\n let targetDimensionInfo: DimensionTooltipInfo | undefined;\n let ignore: boolean | undefined;\n\n // 处理dimension info\n const x = (params.event as any).viewX;\n const y = (params.event as any).viewY;\n const chart = this.component.getChart();\n const pos = { x, y };\n targetDimensionInfo = [\n ...(getCartesianDimensionInfo(chart, pos) ?? []),\n ...(getPolarDimensionInfo(chart, pos) ?? [])\n ];\n if (targetDimensionInfo.length === 0) {\n targetDimensionInfo = undefined;\n } else if (targetDimensionInfo.length > 1) {\n // 只保留一个轴的dimension info\n const dimensionAxisInfo =\n targetDimensionInfo.filter(info => {\n const axis = info.axis;\n // 优先显示离散轴 tooltip\n if (!isDiscrete(axis.getScale().type)) {\n return false;\n }\n // 下面的逻辑用来判断当前的离散轴是不是维度轴\n let firstSeries: ICartesianSeries | undefined;\n for (const region of axis?.getRegions() ?? []) {\n for (const series of region.getSeries()) {\n if (series.coordinate === 'cartesian') {\n firstSeries = series as ICartesianSeries;\n break;\n }\n }\n if (isValid(firstSeries)) {\n break;\n }\n }\n if (isValid(firstSeries) && firstSeries.getDimensionField()[0] === firstSeries.fieldY[0]) {\n return axis.orient === 'left' || axis.orient === 'right'; // 维度轴为Y轴时,选择只显示Y轴tooltip\n }\n return axis.orient === 'bottom' || axis.orient === 'top'; // 维度轴为X轴时,选择只显示X轴tooltip\n })[0] ?? targetDimensionInfo[0];\n targetDimensionInfo = [dimensionAxisInfo];\n }\n // 排除被声明要忽略的项\n if (\n [...((this.component.getOption() as any).getAllSeries() ?? [])].some(model => {\n const ignoreTriggers = model.tooltipHelper?.ignoreTriggerSet.dimension;\n return (params.model && ignoreTriggers?.has(params.model)) || (params.mark && ignoreTriggers?.has(params.mark));\n })\n ) {\n ignore = true;\n }\n\n return {\n tooltipInfo: targetDimensionInfo,\n ignore\n };\n }\n\n private _preprocessDimensionInfo(dimensionInfo?: DimensionTooltipInfo): DimensionTooltipInfo | undefined {\n const newDimensionInfo: DimensionTooltipInfo = [];\n dimensionInfo?.forEach(info => {\n const di: IDimensionInfo = {\n ...info,\n data: info.data.filter(\n ({ series }: any) => series.getSpec()?.tooltip?.visible !== false // 过滤掉不需要显示的维度数据\n )\n };\n if (di.data.length > 0) {\n newDimensionInfo.push(di);\n }\n });\n if (newDimensionInfo.length > 0) {\n return newDimensionInfo;\n }\n return undefined;\n }\n}\n"]}
@@ -3,6 +3,8 @@ export declare const BASE_EVENTS: string[];
3
3
  export declare enum ChartEvent {
4
4
  initialized = "initialized",
5
5
  rendered = "rendered",
6
+ renderFinished = "renderFinished",
7
+ animationFinished = "animationFinished",
6
8
  regionSeriesDataFilterOver = "regionSeriesDataFilterOver",
7
9
  afterInitData = "afterInitData",
8
10
  afterInitEvent = "afterInitEvent",
@@ -13,7 +13,8 @@ Object.defineProperty(exports, "VGRAMMAR_HOOK_EVENT", {
13
13
  }
14
14
  }), exports.BASE_EVENTS = [ "pointerdown", "pointerup", "pointerupoutside", "pointertap", "pointerover", "pointermove", "pointerenter", "pointerleave", "pointerout", "mousedown", "mouseup", "mouseupoutside", "rightdown", "rightup", "rightupoutside", "click", "dblclick", "mousemove", "mouseover", "mouseout", "mouseenter", "mouseleave", "wheel", "touchstart", "touchend", "touchendoutside", "touchmove", "touchcancel", "tap", "dragstart", "drag", "dragenter", "dragleave", "dragover", "dragend", "drop", "pan", "panstart", "panend", "press", "pressup", "pressend", "pinch", "pinchstart", "pinchend", "swipe" ],
15
15
  function(ChartEvent) {
16
- ChartEvent.initialized = "initialized", ChartEvent.rendered = "rendered", ChartEvent.regionSeriesDataFilterOver = "regionSeriesDataFilterOver",
16
+ ChartEvent.initialized = "initialized", ChartEvent.rendered = "rendered", ChartEvent.renderFinished = "renderFinished",
17
+ ChartEvent.animationFinished = "animationFinished", ChartEvent.regionSeriesDataFilterOver = "regionSeriesDataFilterOver",
17
18
  ChartEvent.afterInitData = "afterInitData", ChartEvent.afterInitEvent = "afterInitEvent",
18
19
  ChartEvent.afterInitMark = "afterInitMark", ChartEvent.rawDataUpdate = "rawDataUpdate",
19
20
  ChartEvent.rawDataStatisticsUpdate = "rawDataStatisticsUpdate", ChartEvent.viewDataFilterOver = "viewDataFilterOver",
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constant/event.ts"],"names":[],"mappings":";;;AAAA,+CAAuE;AAA9D,+GAAA,UAAU,OAAuB;AAE7B,QAAA,WAAW,GAAG;IACzB,aAAa;IACb,WAAW;IACX,kBAAkB;IAClB,YAAY;IACZ,aAAa;IACb,aAAa;IACb,cAAc;IACd,cAAc;IACd,YAAY;IACZ,WAAW;IACX,SAAS;IACT,gBAAgB;IAChB,WAAW;IACX,SAAS;IACT,gBAAgB;IAChB,OAAO;IACP,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,OAAO;IACP,YAAY;IACZ,UAAU;IACV,iBAAiB;IACjB,WAAW;IACX,aAAa;IACb,KAAK;IACL,WAAW;IACX,MAAM;IACN,WAAW;IACX,WAAW;IACX,UAAU;IACV,SAAS;IACT,MAAM;IAEN,KAAK;IACL,UAAU;IACV,QAAQ;IACR,OAAO;IACP,SAAS;IACT,UAAU;IACV,OAAO;IACP,YAAY;IACZ,UAAU;IACV,OAAO;CACR,CAAC;AAEF,IAAY,UAkDX;AAlDD,WAAY,UAAU;IACpB,yCAA2B,CAAA;IAC3B,mCAAqB,CAAA;IAErB,uEAAyD,CAAA;IAGzD,6CAA+B,CAAA;IAC/B,+CAAiC,CAAA;IACjC,6CAA+B,CAAA;IAE/B,6CAA+B,CAAA;IAC/B,iEAAmD,CAAA;IACnD,uDAAyC,CAAA;IACzC,+CAAiC,CAAA;IACjC,mEAAqD,CAAA;IAErD,mDAAqC,CAAA;IAErC,yDAA2C,CAAA;IAG3C,qDAAuC,CAAA;IACvC,yCAA2B,CAAA;IAE3B,+CAAiC,CAAA;IAEjC,6BAAe,CAAA;IACf,yCAA2B,CAAA;IAC3B,qCAAuB,CAAA;IAGvB,uCAAyB,CAAA;IACzB,yCAA2B,CAAA;IAC3B,qCAAuB,CAAA;IACvB,2CAA6B,CAAA;IAC7B,6CAA+B,CAAA;IAC/B,+CAAiC,CAAA;IAEjC,iDAAmC,CAAA;IAEnC,uCAAyB,CAAA;IACzB,yCAA2B,CAAA;IAC3B,mCAAqB,CAAA;IAErB,mEAAqD,CAAA;IACrD,2CAA6B,CAAA;IAC7B,iDAAmC,CAAA;IACnC,iDAAmC,CAAA;IACnC,qDAAuC,CAAA;AACzC,CAAC,EAlDW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAkDrB;AAED,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,oCAAe,CAAA;IACf,sCAAiB,CAAA;AACnB,CAAC,EAHW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAG5B;AAED,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,uCAAiB,CAAA;IACjB,qCAAe,CAAA;IACf,qCAAe,CAAA;IACf,mCAAa,CAAA;AACf,CAAC,EALW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAK7B","file":"event.js","sourcesContent":["export { HOOK_EVENT as VGRAMMAR_HOOK_EVENT } from '@visactor/vgrammar';\n\nexport const BASE_EVENTS = [\n 'pointerdown',\n 'pointerup',\n 'pointerupoutside',\n 'pointertap', // pointerEvent 下的 click 事件\n 'pointerover',\n 'pointermove',\n 'pointerenter',\n 'pointerleave',\n 'pointerout',\n 'mousedown',\n 'mouseup',\n 'mouseupoutside',\n 'rightdown',\n 'rightup',\n 'rightupoutside',\n 'click',\n 'dblclick',\n 'mousemove',\n 'mouseover',\n 'mouseout',\n 'mouseenter',\n 'mouseleave',\n 'wheel',\n 'touchstart',\n 'touchend',\n 'touchendoutside',\n 'touchmove',\n 'touchcancel',\n 'tap',\n 'dragstart',\n 'drag',\n 'dragenter',\n 'dragleave',\n 'dragover',\n 'dragend',\n 'drop',\n // 手势事件\n 'pan',\n 'panstart',\n 'panend',\n 'press',\n 'pressup',\n 'pressend',\n 'pinch',\n 'pinchstart',\n 'pinchend',\n 'swipe'\n];\n\nexport enum ChartEvent {\n initialized = 'initialized',\n rendered = 'rendered',\n // region\n regionSeriesDataFilterOver = 'regionSeriesDataFilterOver',\n // series start\n // series.liftCircle\n afterInitData = 'afterInitData',\n afterInitEvent = 'afterInitEvent',\n afterInitMark = 'afterInitMark',\n // series.data\n rawDataUpdate = 'rawDataUpdate',\n rawDataStatisticsUpdate = 'rawDataStatisticsUpdate',\n viewDataFilterOver = 'viewDataFilterOver',\n viewDataUpdate = 'viewDataUpdate',\n viewDataStatisticsUpdate = 'viewDataStatisticsUpdate',\n // dot series\n markDeltaYUpdate = 'markDeltaYUpdate',\n // pie series\n viewDataLabelUpdate = 'viewDataLabelUpdate',\n /** series end */\n // scale\n scaleDomainUpdate = 'scaleDomainUpdate',\n scaleUpdate = 'scaleUpdate',\n // datazoom\n dataZoomChange = 'dataZoomChange',\n // Hierarchy\n drill = 'drill',\n layoutStart = 'layoutStart',\n layoutEnd = 'layoutEnd',\n\n // player\n playerPlay = 'playerPlay',\n playerPause = 'playerPause',\n playerEnd = 'playerEnd',\n playerChange = 'playerChange',\n playerForward = 'playerForward',\n playerBackward = 'playerBackward',\n // scrollBar\n scrollBarChange = 'scrollBarChange',\n // brush\n brushStart = 'brushStart',\n brushChange = 'brushChange',\n brushEnd = 'brushEnd',\n // legend\n legendSelectedDataChange = 'legendSelectedDataChange',\n legendFilter = 'legendFilter',\n legendItemClick = 'legendItemClick',\n legendItemHover = 'legendItemHover',\n legendItemUnHover = 'legendItemUnHover'\n}\n\nexport enum Event_Source_Type {\n chart = 'chart',\n window = 'window'\n}\n\nexport enum Event_Bubble_Level {\n vchart = 'vchart',\n chart = 'chart',\n model = 'model',\n mark = 'mark'\n}\n"]}
1
+ {"version":3,"sources":["../src/constant/event.ts"],"names":[],"mappings":";;;AAAA,+CAAuE;AAA9D,+GAAA,UAAU,OAAuB;AAE7B,QAAA,WAAW,GAAG;IACzB,aAAa;IACb,WAAW;IACX,kBAAkB;IAClB,YAAY;IACZ,aAAa;IACb,aAAa;IACb,cAAc;IACd,cAAc;IACd,YAAY;IACZ,WAAW;IACX,SAAS;IACT,gBAAgB;IAChB,WAAW;IACX,SAAS;IACT,gBAAgB;IAChB,OAAO;IACP,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,OAAO;IACP,YAAY;IACZ,UAAU;IACV,iBAAiB;IACjB,WAAW;IACX,aAAa;IACb,KAAK;IACL,WAAW;IACX,MAAM;IACN,WAAW;IACX,WAAW;IACX,UAAU;IACV,SAAS;IACT,MAAM;IAEN,KAAK;IACL,UAAU;IACV,QAAQ;IACR,OAAO;IACP,SAAS;IACT,UAAU;IACV,OAAO;IACP,YAAY;IACZ,UAAU;IACV,OAAO;CACR,CAAC;AAEF,IAAY,UAoDX;AApDD,WAAY,UAAU;IACpB,yCAA2B,CAAA;IAC3B,mCAAqB,CAAA;IACrB,+CAAiC,CAAA;IACjC,qDAAuC,CAAA;IAEvC,uEAAyD,CAAA;IAGzD,6CAA+B,CAAA;IAC/B,+CAAiC,CAAA;IACjC,6CAA+B,CAAA;IAE/B,6CAA+B,CAAA;IAC/B,iEAAmD,CAAA;IACnD,uDAAyC,CAAA;IACzC,+CAAiC,CAAA;IACjC,mEAAqD,CAAA;IAErD,mDAAqC,CAAA;IAErC,yDAA2C,CAAA;IAG3C,qDAAuC,CAAA;IACvC,yCAA2B,CAAA;IAE3B,+CAAiC,CAAA;IAEjC,6BAAe,CAAA;IACf,yCAA2B,CAAA;IAC3B,qCAAuB,CAAA;IAGvB,uCAAyB,CAAA;IACzB,yCAA2B,CAAA;IAC3B,qCAAuB,CAAA;IACvB,2CAA6B,CAAA;IAC7B,6CAA+B,CAAA;IAC/B,+CAAiC,CAAA;IAEjC,iDAAmC,CAAA;IAEnC,uCAAyB,CAAA;IACzB,yCAA2B,CAAA;IAC3B,mCAAqB,CAAA;IAErB,mEAAqD,CAAA;IACrD,2CAA6B,CAAA;IAC7B,iDAAmC,CAAA;IACnC,iDAAmC,CAAA;IACnC,qDAAuC,CAAA;AACzC,CAAC,EApDW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAoDrB;AAED,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,oCAAe,CAAA;IACf,sCAAiB,CAAA;AACnB,CAAC,EAHW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAG5B;AAED,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,uCAAiB,CAAA;IACjB,qCAAe,CAAA;IACf,qCAAe,CAAA;IACf,mCAAa,CAAA;AACf,CAAC,EALW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAK7B","file":"event.js","sourcesContent":["export { HOOK_EVENT as VGRAMMAR_HOOK_EVENT } from '@visactor/vgrammar';\n\nexport const BASE_EVENTS = [\n 'pointerdown',\n 'pointerup',\n 'pointerupoutside',\n 'pointertap', // pointerEvent 下的 click 事件\n 'pointerover',\n 'pointermove',\n 'pointerenter',\n 'pointerleave',\n 'pointerout',\n 'mousedown',\n 'mouseup',\n 'mouseupoutside',\n 'rightdown',\n 'rightup',\n 'rightupoutside',\n 'click',\n 'dblclick',\n 'mousemove',\n 'mouseover',\n 'mouseout',\n 'mouseenter',\n 'mouseleave',\n 'wheel',\n 'touchstart',\n 'touchend',\n 'touchendoutside',\n 'touchmove',\n 'touchcancel',\n 'tap',\n 'dragstart',\n 'drag',\n 'dragenter',\n 'dragleave',\n 'dragover',\n 'dragend',\n 'drop',\n // 手势事件\n 'pan',\n 'panstart',\n 'panend',\n 'press',\n 'pressup',\n 'pressend',\n 'pinch',\n 'pinchstart',\n 'pinchend',\n 'swipe'\n];\n\nexport enum ChartEvent {\n initialized = 'initialized', // 图表实例初始化完成\n rendered = 'rendered', // 图表渲染方法被调用时触发,表明图表已经执行过渲染逻辑,只会触发一次\n renderFinished = 'renderFinished', // 每次画布渲染完成触发的事件,不包含动画结束\n animationFinished = 'animationFinished', // 图表动画结束时触发的事件\n // region\n regionSeriesDataFilterOver = 'regionSeriesDataFilterOver',\n // series start\n // series.liftCircle\n afterInitData = 'afterInitData',\n afterInitEvent = 'afterInitEvent',\n afterInitMark = 'afterInitMark',\n // series.data\n rawDataUpdate = 'rawDataUpdate',\n rawDataStatisticsUpdate = 'rawDataStatisticsUpdate',\n viewDataFilterOver = 'viewDataFilterOver',\n viewDataUpdate = 'viewDataUpdate',\n viewDataStatisticsUpdate = 'viewDataStatisticsUpdate',\n // dot series\n markDeltaYUpdate = 'markDeltaYUpdate',\n // pie series\n viewDataLabelUpdate = 'viewDataLabelUpdate',\n /** series end */\n // scale\n scaleDomainUpdate = 'scaleDomainUpdate',\n scaleUpdate = 'scaleUpdate',\n // datazoom\n dataZoomChange = 'dataZoomChange',\n // Hierarchy\n drill = 'drill',\n layoutStart = 'layoutStart',\n layoutEnd = 'layoutEnd',\n\n // player\n playerPlay = 'playerPlay',\n playerPause = 'playerPause',\n playerEnd = 'playerEnd',\n playerChange = 'playerChange',\n playerForward = 'playerForward',\n playerBackward = 'playerBackward',\n // scrollBar\n scrollBarChange = 'scrollBarChange',\n // brush\n brushStart = 'brushStart',\n brushChange = 'brushChange',\n brushEnd = 'brushEnd',\n // legend\n legendSelectedDataChange = 'legendSelectedDataChange',\n legendFilter = 'legendFilter',\n legendItemClick = 'legendItemClick',\n legendItemHover = 'legendItemHover',\n legendItemUnHover = 'legendItemUnHover'\n}\n\nexport enum Event_Source_Type {\n chart = 'chart',\n window = 'window'\n}\n\nexport enum Event_Bubble_Level {\n vchart = 'vchart',\n chart = 'chart',\n model = 'model',\n mark = 'mark'\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { VChart } from './vchart';
2
2
  import { Factory } from './factory';
3
3
  export { VChart, Factory };
4
- export declare const version = "1.1.2";
4
+ export declare const version = "1.2.0-beta.2";
5
5
  export type { IVChart } from './interface';
6
6
  export * from '../event/interface';
7
7
  export * from '../typings/spec/common';
package/cjs/core/index.js CHANGED
@@ -41,7 +41,7 @@ const region_1 = require("../region/region"), base_layout_1 = require("../layout
41
41
 
42
42
  vchart_1.VChart.useMark([ component_1.ComponentMark, group_1.GroupMark, image_1.ImageMark ]),
43
43
  factory_1.Factory.registerRegion("region", region_1.Region), factory_1.Factory.registerLayout("base", base_layout_1.Layout),
44
- exports.version = "1.1.2", __exportStar(require("../event/interface"), exports),
44
+ exports.version = "1.2.0-beta.2", __exportStar(require("../event/interface"), exports),
45
45
  __exportStar(require("../typings/spec/common"), exports), __exportStar(require("../theme/interface"), exports),
46
46
  vutils_1.Logger.getInstance(vutils_1.LoggerLevel.Error);
47
47
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAAuD;AAKvD,qCAAkC;AAiBzB,uFAjBA,eAAM,OAiBA;AAhBf,uCAAoC;AAgBnB,wFAhBR,iBAAO,OAgBQ;AAfxB,6CAA0C;AAC1C,uDAA+C;AAC/C,yCAA0C;AAC1C,iDAAkD;AAClD,2CAA4C;AAG5C,eAAM,CAAC,OAAO,CAAC,CAAC,yBAAa,EAAE,iBAAS,EAAE,iBAAS,CAAC,CAAC,CAAC;AAGtD,iBAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,eAAa,CAAC,CAAC;AAGhD,iBAAO,CAAC,cAAc,CAAC,MAAM,EAAE,oBAAa,CAAC,CAAC;AAKjC,QAAA,OAAO,GAAG,OAAO,CAAC;AAK/B,qDAAmC;AACnC,yDAAuC;AAEvC,qDAAmC;AAGnC,eAAM,CAAC,WAAW,CAAC,oBAAW,CAAC,KAAK,CAAC,CAAC","file":"index.js","sourcesContent":["import { Logger, LoggerLevel } from '@visactor/vutils';\n/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\nimport { Region } from '../region/region';\nimport { Layout } from '../layout/base-layout';\nimport { GroupMark } from '../mark/group';\nimport { ComponentMark } from '../mark/component';\nimport { ImageMark } from './../mark/image';\n\n// register groupMark and componentMark\nVChart.useMark([ComponentMark, GroupMark, ImageMark]);\n\n// install region module\nFactory.registerRegion('region', Region as any);\n\n// install layout module\nFactory.registerLayout('base', Layout as any);\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.1.2\";\n\n// export necessary types\nexport type { IVChart } from './interface';\n// the event types\nexport * from '../event/interface';\nexport * from '../typings/spec/common';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\nexport * from '../theme/interface';\n\n// set default logger level to Level.error\nLogger.getInstance(LoggerLevel.Error);\n"]}
1
+ {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAAuD;AAKvD,qCAAkC;AAiBzB,uFAjBA,eAAM,OAiBA;AAhBf,uCAAoC;AAgBnB,wFAhBR,iBAAO,OAgBQ;AAfxB,6CAA0C;AAC1C,uDAA+C;AAC/C,yCAA0C;AAC1C,iDAAkD;AAClD,2CAA4C;AAG5C,eAAM,CAAC,OAAO,CAAC,CAAC,yBAAa,EAAE,iBAAS,EAAE,iBAAS,CAAC,CAAC,CAAC;AAGtD,iBAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,eAAa,CAAC,CAAC;AAGhD,iBAAO,CAAC,cAAc,CAAC,MAAM,EAAE,oBAAa,CAAC,CAAC;AAKjC,QAAA,OAAO,GAAG,cAAc,CAAC;AAKtC,qDAAmC;AACnC,yDAAuC;AAEvC,qDAAmC;AAGnC,eAAM,CAAC,WAAW,CAAC,oBAAW,CAAC,KAAK,CAAC,CAAC","file":"index.js","sourcesContent":["import { Logger, LoggerLevel } from '@visactor/vutils';\n/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\nimport { Region } from '../region/region';\nimport { Layout } from '../layout/base-layout';\nimport { GroupMark } from '../mark/group';\nimport { ComponentMark } from '../mark/component';\nimport { ImageMark } from './../mark/image';\n\n// register groupMark and componentMark\nVChart.useMark([ComponentMark, GroupMark, ImageMark]);\n\n// install region module\nFactory.registerRegion('region', Region as any);\n\n// install layout module\nFactory.registerLayout('base', Layout as any);\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.2.0-beta.2\";\n\n// export necessary types\nexport type { IVChart } from './interface';\n// the event types\nexport * from '../event/interface';\nexport * from '../typings/spec/common';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\nexport * from '../theme/interface';\n\n// set default logger level to Level.error\nLogger.getInstance(LoggerLevel.Error);\n"]}
@@ -55,17 +55,21 @@ export declare class VChart implements IVChart {
55
55
  private _observer;
56
56
  private _currentThemeName;
57
57
  private _currentTheme;
58
+ private _onError?;
58
59
  private _context;
59
60
  constructor(spec: ISpec, options: IInitOption);
60
61
  private _setSpec;
61
62
  private _initData;
62
63
  private _initChart;
63
64
  private _releaseData;
65
+ private _bindVGrammarViewEvent;
64
66
  private _bindResizeEvent;
65
67
  private _unBindResizeEvent;
66
68
  private _onResize;
67
69
  private _initDataSet;
68
70
  updateCustomConfigAndRerender(modifyConfig: () => IUpdateSpecResult | undefined, morphConfig?: IMorphConfig): Promise<IVChart>;
71
+ updateCustomConfigAndRerenderSync(modifyConfig: () => IUpdateSpecResult | undefined, morphConfig?: IMorphConfig): IVChart;
72
+ protected _reCompile(updateResult: IUpdateSpecResult): void;
69
73
  renderSync(morphConfig?: IMorphConfig): IVChart;
70
74
  renderAsync(morphConfig?: IMorphConfig): Promise<IVChart>;
71
75
  release(): void;
@@ -77,6 +81,7 @@ export declare class VChart implements IVChart {
77
81
  }[]): Promise<IVChart>;
78
82
  updateDataSync(id: StringOrNumber, data: DataView | Datum[], options?: IParserOptions): IVChart;
79
83
  updateSpec(spec: ISpec, forceMerge?: boolean, morphConfig?: IMorphConfig): Promise<IVChart>;
84
+ updateSpecSync(spec: ISpec, forceMerge?: boolean, morphConfig?: IMorphConfig): IVChart;
80
85
  resize(width: number, height: number): Promise<IVChart>;
81
86
  updateViewBox(viewBox: IBoundsLike, reRender?: boolean): IVChart;
82
87
  on(eType: EventType, handler: EventCallback<EventParams>): void;
@@ -89,6 +94,7 @@ export declare class VChart implements IVChart {
89
94
  getCurrentTheme(): ITheme;
90
95
  getCurrentThemeName(): string;
91
96
  setCurrentTheme(name: string): Promise<IVChart>;
97
+ setCurrentThemeSync(name: string): IVChart;
92
98
  private _getTooltipComponent;
93
99
  setTooltipHandler(tooltipHandler: ITooltipHandler): void;
94
100
  getTooltipHandlerByUser(): ITooltipHandler | undefined;
@@ -87,7 +87,10 @@ class VChart {
87
87
  var _a, _b, _c, _d;
88
88
  this.id = (0, util_1.createID)(), this._autoSize = !0, this._option = {
89
89
  mode: common_1.RenderModeEnum["desktop-browser"],
90
- animation: !0
90
+ animation: !0,
91
+ onError: msg => {
92
+ throw new Error(msg);
93
+ }
91
94
  }, this._curSize = {
92
95
  width: 0,
93
96
  height: 0
@@ -99,12 +102,14 @@ class VChart {
99
102
  width: width,
100
103
  height: height
101
104
  });
102
- }), 100), this._option = (0, util_1.merge)(this._option, options);
105
+ }), 100), this._option = (0, util_1.merge)(this._option, options), this._onError = this._option.onError;
103
106
  const _e = this._option, {dom: dom, renderCanvas: renderCanvas, mode: mode, stage: stage, poptip: poptip} = _e, restOptions = __rest(_e, [ "dom", "renderCanvas", "mode", "stage", "poptip" ]);
104
- dom && (this._container = (0, util_1.isString)(dom) ? null === document || void 0 === document ? void 0 : document.getElementById(dom) : dom),
105
- renderCanvas && (this._canvas = renderCanvas), stage && (this._stage = stage), "node" === mode || this._container || this._canvas || this._stage ? (this._viewBox = this._option.viewBox,
106
- this._currentThemeName = theme_manager_1.ThemeManager.getCurrentThemeName(), this._setSpec(spec),
107
- this._updateCurrentTheme(), this._compiler = new compiler_1.Compiler({
107
+ if (dom && (this._container = (0, util_1.isString)(dom) ? null === document || void 0 === document ? void 0 : document.getElementById(dom) : dom),
108
+ renderCanvas && (this._canvas = renderCanvas), stage && (this._stage = stage), "node" !== mode && !this._container && !this._canvas && !this._stage) return void this._option.onError("please specify container or renderCanvas!");
109
+ this._viewBox = this._option.viewBox, this._currentThemeName = theme_manager_1.ThemeManager.getCurrentThemeName(),
110
+ this._setSpec(spec), this._updateCurrentTheme();
111
+ const specBackground = "string" == typeof spec.background ? spec.background : null;
112
+ this._compiler = new compiler_1.Compiler({
108
113
  dom: null !== (_a = this._container) && void 0 !== _a ? _a : "none",
109
114
  canvas: renderCanvas
110
115
  }, Object.assign(Object.assign({
@@ -112,7 +117,8 @@ class VChart {
112
117
  stage: stage,
113
118
  pluginList: !1 !== poptip ? [ "poptipForText" ] : []
114
119
  }, restOptions), {
115
- background: spec.background || this._currentTheme.background || this._option.background
120
+ background: specBackground || this._currentTheme.background || this._option.background,
121
+ onError: this._onError
116
122
  })), this._eventDispatcher = new event_dispatcher_1.EventDispatcher(this, this._compiler),
117
123
  this._event = new event_1.Event(this._eventDispatcher, mode), this._compiler.initView(),
118
124
  null === (_b = this.getStage()) || void 0 === _b || _b.setTheme({
@@ -123,8 +129,8 @@ class VChart {
123
129
  this._curSize = {
124
130
  width: spec.width || 0,
125
131
  height: spec.height || 0
126
- }, this._bindResizeEvent(), this._event.emit(constant_1.ChartEvent.initialized, {}),
127
- instance_manager_1.InstanceManager.registerInstance(this)) : (0, util_1.error)("please specify container or renderCanvas!");
132
+ }, this._bindResizeEvent(), this._bindVGrammarViewEvent(), this._event.emit(constant_1.ChartEvent.initialized, {}),
133
+ instance_manager_1.InstanceManager.registerInstance(this);
128
134
  }
129
135
  _setSpec(spec) {
130
136
  spec && (this._spec = (0, util_1.specTransform)((0, util_1.isString)(spec) ? JSON.parse(spec) : spec));
@@ -134,12 +140,14 @@ class VChart {
134
140
  const specData = (0, util_1.array)(this._spec.data), dataViewArr = [];
135
141
  for (let i = 0; i < specData.length; i++) {
136
142
  const curSpecData = specData[i];
137
- dataViewArr.push((0, initialize_1.dataToDataView)(curSpecData, this._dataSet, dataViewArr));
143
+ dataViewArr.push((0, initialize_1.dataToDataView)(curSpecData, this._dataSet, dataViewArr, {
144
+ onError: this._option.onError
145
+ }));
138
146
  }
139
147
  this._spec.data = dataViewArr;
140
148
  }
141
149
  _initChart(spec) {
142
- if (!this._compiler) return void (0, util_1.error)("compiler is not initialized");
150
+ if (!this._compiler) return void this._option.onError("compiler is not initialized");
143
151
  this._initData();
144
152
  const chart = factory_1.Factory.createChart(spec.type, spec, {
145
153
  globalInstance: this,
@@ -155,14 +163,21 @@ class VChart {
155
163
  viewBox: this._viewBox,
156
164
  animation: this._option.animation,
157
165
  getTheme: () => this._currentTheme,
158
- layout: this._option.layout
166
+ layout: this._option.layout,
167
+ onError: this._onError
159
168
  });
160
- chart ? (this._chart = chart, this._chart.created(), this._chart.init({})) : (0,
161
- util_1.error)("init chart fail");
169
+ chart ? (this._chart = chart, this._chart.created(), this._chart.init({})) : this._option.onError("init chart fail");
162
170
  }
163
171
  _releaseData() {
164
172
  this._dataSet && (this._dataSet.dataViewMap = {}, this._dataSet = null);
165
173
  }
174
+ _bindVGrammarViewEvent() {
175
+ this._compiler && !this._compiler.isReleased && (this._compiler.getVGrammarView().addEventListener(constant_1.VGRAMMAR_HOOK_EVENT.ALL_ANIMATION_END, (() => {
176
+ this._event.emit(constant_1.ChartEvent.animationFinished, {});
177
+ })), this._compiler.getVGrammarView().addEventListener(constant_1.VGRAMMAR_HOOK_EVENT.AFTER_VRENDER_NEXT_RENDER, (() => {
178
+ this._event.emit(constant_1.ChartEvent.renderFinished, {});
179
+ })));
180
+ }
166
181
  _bindResizeEvent() {
167
182
  var _a;
168
183
  if (this._autoSize) {
@@ -187,17 +202,26 @@ class VChart {
187
202
  for (const key in factory_1.Factory.dataParser) (0, register_1.registerDataSetInstanceParser)(this._dataSet, key, factory_1.Factory.dataParser[key]);
188
203
  }
189
204
  updateCustomConfigAndRerender(modifyConfig, morphConfig) {
190
- var _a, _b;
191
205
  return __awaiter(this, void 0, void 0, (function*() {
192
206
  const result = modifyConfig();
193
- return (0, util_1.isValid)(result) ? (result.reMake ? (this._releaseData(), this._initDataSet(),
194
- this._chart.release(), this._chart = null, null === (_a = this._compiler) || void 0 === _a || _a.releaseGrammar()) : result.reCompile && (this.getComponents().forEach((c => c.clear())),
195
- null === (_b = this._compiler) || void 0 === _b || _b.compile({
196
- chart: this._chart,
197
- vChart: this
198
- }, {})), yield this.renderAsync(morphConfig), this) : this;
207
+ return (0, util_1.isValid)(result) ? (this._reCompile(result), yield this.renderAsync(morphConfig),
208
+ this) : this;
199
209
  }));
200
210
  }
211
+ updateCustomConfigAndRerenderSync(modifyConfig, morphConfig) {
212
+ const result = modifyConfig();
213
+ return (0, util_1.isValid)(result) ? (this._reCompile(result), this.renderSync(morphConfig),
214
+ this) : this;
215
+ }
216
+ _reCompile(updateResult) {
217
+ var _a, _b;
218
+ updateResult.reMake ? (this._releaseData(), this._initDataSet(), this._chart.release(),
219
+ this._chart = null, null === (_a = this._compiler) || void 0 === _a || _a.releaseGrammar()) : updateResult.reCompile && (this.getComponents().forEach((c => c.clear())),
220
+ null === (_b = this._compiler) || void 0 === _b || _b.compile({
221
+ chart: this._chart,
222
+ vChart: this
223
+ }, {}));
224
+ }
201
225
  renderSync(morphConfig) {
202
226
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
203
227
  if (!this._chart) {
@@ -308,6 +332,15 @@ class VChart {
308
332
  }), morphConfig), this) : this;
309
333
  }));
310
334
  }
335
+ updateSpecSync(spec, forceMerge = !1, morphConfig) {
336
+ return spec ? ((0, util_1.isString)(spec) && (spec = JSON.parse(spec)), forceMerge && (spec = (0,
337
+ util_1.merge)({}, this._spec, spec)), this.updateCustomConfigAndRerenderSync((() => {
338
+ var _a, _b;
339
+ return spec = (0, util_1.specTransform)(spec), this._spec = spec, this._updateCurrentTheme(),
340
+ null === (_b = null === (_a = this._compiler) || void 0 === _a ? void 0 : _a.getVGrammarView()) || void 0 === _b || _b.updateLayoutTag(),
341
+ this._chart.updateSpec(spec, morphConfig);
342
+ }), morphConfig), this) : this;
343
+ }
311
344
  resize(width, height) {
312
345
  var _a, _b, _c, _d, _e, _f;
313
346
  return __awaiter(this, void 0, void 0, (function*() {
@@ -367,6 +400,16 @@ class VChart {
367
400
  })), this) : this;
368
401
  }));
369
402
  }
403
+ setCurrentThemeSync(name) {
404
+ return theme_manager_1.ThemeManager.themeExist(name) ? (this.updateCustomConfigAndRerenderSync((() => {
405
+ var _a;
406
+ return this._currentThemeName = name, this._updateCurrentTheme(), null === (_a = this._chart) || void 0 === _a || _a.setCurrentTheme(this._currentTheme, !0),
407
+ {
408
+ change: !0,
409
+ reMake: !1
410
+ };
411
+ })), this) : this;
412
+ }
370
413
  _getTooltipComponent() {
371
414
  var _a;
372
415
  return null === (_a = this._chart) || void 0 === _a ? void 0 : _a.getAllComponents().find((c => c.type === interface_1.ComponentTypeEnum.tooltip));
@@ -432,26 +475,28 @@ class VChart {
432
475
  if (this._chart && stage) {
433
476
  stage.render();
434
477
  const canvas = this._chart.getCanvas();
435
- return yield (0, image_1.getCanvasDataURL)(canvas);
478
+ return yield (0, image_1.getCanvasDataURL)(canvas, {
479
+ onError: this._onError
480
+ });
436
481
  }
437
- return console.error(new ReferenceError("render is not defined")), null;
482
+ return this._option.onError(new ReferenceError("render is not defined")), null;
438
483
  }));
439
484
  }
440
485
  exportImg(name) {
441
486
  return __awaiter(this, void 0, void 0, (function*() {
442
- if (!(0, util_1.isTrueBrowser)(this._option.mode)) return void console.error(new TypeError("non-browser environment can not export img"));
487
+ if (!(0, util_1.isTrueBrowser)(this._option.mode)) return void this._option.onError(new TypeError("non-browser environment can not export img"));
443
488
  const dataURL = yield this.getDataURL();
444
- dataURL ? (0, image_1.URLToImage)(name, dataURL) : console.error(new ReferenceError("render is not defined"));
489
+ dataURL ? (0, image_1.URLToImage)(name, dataURL) : this._option.onError(new ReferenceError("render is not defined"));
445
490
  }));
446
491
  }
447
492
  getImageBuffer() {
448
- if ("node" !== this._option.mode) return void console.error(new TypeError("getImageBuffer() now only support node environment."));
493
+ if ("node" !== this._option.mode) return void this._option.onError(new TypeError("getImageBuffer() now only support node environment."));
449
494
  const stage = this.getStage();
450
495
  if (stage) {
451
496
  stage.render();
452
497
  return stage.window.getImageBuffer();
453
498
  }
454
- return console.error(new ReferenceError("render is not defined")), null;
499
+ return this._option.onError(new ReferenceError("render is not defined")), null;
455
500
  }
456
501
  setLayout(layout) {
457
502
  var _a;