@visactor/vchart 1.12.4-alpha.1 → 1.12.5

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 (179) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +200 -458
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/base/base-chart-transformer.js +4 -4
  6. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  7. package/cjs/compile/compilable-base.js +1 -2
  8. package/cjs/compile/mark/compilable-mark.d.ts +0 -3
  9. package/cjs/compile/mark/compilable-mark.js +2 -9
  10. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  11. package/cjs/compile/mark/interface.d.ts +0 -2
  12. package/cjs/compile/mark/interface.js.map +1 -1
  13. package/cjs/compile/util.js +2 -1
  14. package/cjs/component/axis/cartesian/axis.d.ts +1 -0
  15. package/cjs/component/axis/cartesian/axis.js +28 -1
  16. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  17. package/cjs/component/axis/polar/axis.js +3 -17
  18. package/cjs/component/axis/polar/axis.js.map +1 -1
  19. package/cjs/component/axis/polar/util/common.js +1 -1
  20. package/cjs/component/axis/polar/util/common.js.map +1 -1
  21. package/cjs/component/brush/brush.js +2 -8
  22. package/cjs/component/brush/brush.js.map +1 -1
  23. package/cjs/component/crosshair/cartesian.js +2 -18
  24. package/cjs/component/crosshair/cartesian.js.map +1 -1
  25. package/cjs/component/crosshair/polar.js +2 -18
  26. package/cjs/component/crosshair/polar.js.map +1 -1
  27. package/cjs/component/custom-mark/custom-mark.d.ts +1 -3
  28. package/cjs/component/custom-mark/custom-mark.js +2 -16
  29. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  30. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +0 -3
  31. package/cjs/component/data-zoom/data-zoom/data-zoom.js +0 -19
  32. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  33. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +0 -3
  34. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +0 -19
  35. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  36. package/cjs/component/indicator/indicator.js +2 -18
  37. package/cjs/component/indicator/indicator.js.map +1 -1
  38. package/cjs/component/interface/common.d.ts +1 -1
  39. package/cjs/component/interface/common.js.map +1 -1
  40. package/cjs/component/label/interface.d.ts +2 -2
  41. package/cjs/component/label/interface.js.map +1 -1
  42. package/cjs/component/legend/continuous/legend.js +6 -18
  43. package/cjs/component/legend/continuous/legend.js.map +1 -1
  44. package/cjs/component/legend/discrete/legend.js +1 -17
  45. package/cjs/component/legend/discrete/legend.js.map +1 -1
  46. package/cjs/component/legend/util.d.ts +2 -2
  47. package/cjs/component/map-label/component.js +3 -8
  48. package/cjs/component/map-label/component.js.map +1 -1
  49. package/cjs/component/marker/base-marker.js +2 -18
  50. package/cjs/component/marker/base-marker.js.map +1 -1
  51. package/cjs/component/player/player.d.ts +1 -3
  52. package/cjs/component/player/player.js +0 -9
  53. package/cjs/component/player/player.js.map +1 -1
  54. package/cjs/component/title/title.js +2 -18
  55. package/cjs/component/title/title.js.map +1 -1
  56. package/cjs/component/tooltip/tooltip.d.ts +1 -3
  57. package/cjs/component/tooltip/tooltip.js +0 -19
  58. package/cjs/component/tooltip/tooltip.js.map +1 -1
  59. package/cjs/component/util.d.ts +3 -0
  60. package/cjs/component/util.js +16 -1
  61. package/cjs/component/util.js.map +1 -1
  62. package/cjs/core/index.d.ts +1 -1
  63. package/cjs/core/index.js +1 -1
  64. package/cjs/core/index.js.map +1 -1
  65. package/cjs/core/vchart.js +5 -5
  66. package/cjs/core/vchart.js.map +1 -1
  67. package/cjs/event/event-dispatcher.js +1 -9
  68. package/cjs/event/event-dispatcher.js.map +1 -1
  69. package/cjs/series/base/base-series-transformer.js +7 -4
  70. package/cjs/series/base/base-series-transformer.js.map +1 -1
  71. package/cjs/series/base/base-series.js +3 -5
  72. package/cjs/series/base/base-series.js.map +1 -1
  73. package/cjs/series/dot/dot.d.ts +0 -1
  74. package/cjs/series/dot/dot.js +0 -5
  75. package/cjs/series/dot/dot.js.map +1 -1
  76. package/cjs/series/polar/animation.d.ts +1 -0
  77. package/cjs/series/polar/animation.js +15 -17
  78. package/cjs/series/polar/animation.js.map +1 -1
  79. package/cjs/series/polar/polar.js +9 -2
  80. package/cjs/series/polar/polar.js.map +1 -1
  81. package/cjs/series/radar/radar.js +1 -0
  82. package/cjs/series/radar/radar.js.map +1 -1
  83. package/cjs/series/word-cloud/base.js +21 -10
  84. package/cjs/series/word-cloud/base.js.map +1 -1
  85. package/cjs/theme/builtin/common/mark.js +2 -0
  86. package/cjs/theme/builtin/common/mark.js.map +1 -1
  87. package/cjs/typings/spec/common.d.ts +3 -4
  88. package/cjs/typings/spec/common.js.map +1 -1
  89. package/cjs/util/math.d.ts +1 -0
  90. package/cjs/util/math.js +7 -2
  91. package/cjs/util/math.js.map +1 -1
  92. package/esm/chart/base/base-chart-transformer.js +5 -3
  93. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  94. package/esm/compile/compilable-base.js +1 -2
  95. package/esm/compile/mark/compilable-mark.d.ts +0 -3
  96. package/esm/compile/mark/compilable-mark.js +2 -9
  97. package/esm/compile/mark/compilable-mark.js.map +1 -1
  98. package/esm/compile/mark/interface.d.ts +0 -2
  99. package/esm/compile/mark/interface.js.map +1 -1
  100. package/esm/compile/util.js +2 -1
  101. package/esm/component/axis/cartesian/axis.d.ts +1 -0
  102. package/esm/component/axis/cartesian/axis.js +28 -1
  103. package/esm/component/axis/cartesian/axis.js.map +1 -1
  104. package/esm/component/axis/polar/axis.js +3 -16
  105. package/esm/component/axis/polar/axis.js.map +1 -1
  106. package/esm/component/axis/polar/util/common.js +2 -2
  107. package/esm/component/axis/polar/util/common.js.map +1 -1
  108. package/esm/component/brush/brush.js +4 -8
  109. package/esm/component/brush/brush.js.map +1 -1
  110. package/esm/component/crosshair/cartesian.js +4 -18
  111. package/esm/component/crosshair/cartesian.js.map +1 -1
  112. package/esm/component/crosshair/polar.js +4 -18
  113. package/esm/component/crosshair/polar.js.map +1 -1
  114. package/esm/component/custom-mark/custom-mark.d.ts +1 -3
  115. package/esm/component/custom-mark/custom-mark.js +3 -17
  116. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  117. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +0 -3
  118. package/esm/component/data-zoom/data-zoom/data-zoom.js +1 -20
  119. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  120. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +0 -3
  121. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +1 -20
  122. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  123. package/esm/component/indicator/indicator.js +4 -18
  124. package/esm/component/indicator/indicator.js.map +1 -1
  125. package/esm/component/interface/common.d.ts +1 -1
  126. package/esm/component/interface/common.js.map +1 -1
  127. package/esm/component/label/interface.d.ts +2 -2
  128. package/esm/component/label/interface.js.map +1 -1
  129. package/esm/component/legend/continuous/legend.js +7 -18
  130. package/esm/component/legend/continuous/legend.js.map +1 -1
  131. package/esm/component/legend/discrete/legend.js +3 -19
  132. package/esm/component/legend/discrete/legend.js.map +1 -1
  133. package/esm/component/legend/util.d.ts +2 -2
  134. package/esm/component/map-label/component.js +3 -7
  135. package/esm/component/map-label/component.js.map +1 -1
  136. package/esm/component/marker/base-marker.js +4 -18
  137. package/esm/component/marker/base-marker.js.map +1 -1
  138. package/esm/component/player/player.d.ts +1 -3
  139. package/esm/component/player/player.js +1 -10
  140. package/esm/component/player/player.js.map +1 -1
  141. package/esm/component/title/title.js +4 -18
  142. package/esm/component/title/title.js.map +1 -1
  143. package/esm/component/tooltip/tooltip.d.ts +1 -3
  144. package/esm/component/tooltip/tooltip.js +1 -20
  145. package/esm/component/tooltip/tooltip.js.map +1 -1
  146. package/esm/component/util.d.ts +3 -0
  147. package/esm/component/util.js +14 -1
  148. package/esm/component/util.js.map +1 -1
  149. package/esm/core/index.d.ts +1 -1
  150. package/esm/core/index.js +1 -1
  151. package/esm/core/index.js.map +1 -1
  152. package/esm/core/vchart.js +5 -5
  153. package/esm/core/vchart.js.map +1 -1
  154. package/esm/event/event-dispatcher.js +1 -9
  155. package/esm/event/event-dispatcher.js.map +1 -1
  156. package/esm/series/base/base-series-transformer.js +7 -4
  157. package/esm/series/base/base-series-transformer.js.map +1 -1
  158. package/esm/series/base/base-series.js +3 -5
  159. package/esm/series/base/base-series.js.map +1 -1
  160. package/esm/series/dot/dot.d.ts +0 -1
  161. package/esm/series/dot/dot.js +0 -5
  162. package/esm/series/dot/dot.js.map +1 -1
  163. package/esm/series/polar/animation.d.ts +1 -0
  164. package/esm/series/polar/animation.js +15 -16
  165. package/esm/series/polar/animation.js.map +1 -1
  166. package/esm/series/polar/polar.js +9 -1
  167. package/esm/series/polar/polar.js.map +1 -1
  168. package/esm/series/radar/radar.js +1 -0
  169. package/esm/series/radar/radar.js.map +1 -1
  170. package/esm/series/word-cloud/base.js +20 -10
  171. package/esm/series/word-cloud/base.js.map +1 -1
  172. package/esm/theme/builtin/common/mark.js +2 -0
  173. package/esm/theme/builtin/common/mark.js.map +1 -1
  174. package/esm/typings/spec/common.d.ts +3 -4
  175. package/esm/typings/spec/common.js.map +1 -1
  176. package/esm/util/math.d.ts +1 -0
  177. package/esm/util/math.js +4 -0
  178. package/esm/util/math.js.map +1 -1
  179. package/package.json +15 -15
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/event-dispatcher.ts"],"names":[],"mappings":"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","file":"event-dispatcher.js","sourcesContent":["import { Bubble } from './bubble';\nimport { isValid, debounce, throttle, get, isFunction } from '@visactor/vutils';\nimport { BASE_EVENTS, Event_Bubble_Level, Event_Source_Type, VGRAMMAR_HOOK_EVENT } from '../constant/event';\nimport type {\n EventType,\n EventQuery,\n EventHandler,\n EventParamsDefinition,\n IEventDispatcher,\n EventBubbleLevel,\n BaseEventParams,\n EventParams,\n EventFilter,\n EventSourceType,\n InteractionEventParam,\n EventCallback\n} from './interface';\nimport type { VChart } from '../core/vchart';\nimport type { CompilerListenerParameters } from '../compile/interface';\nimport type { Compiler } from '../compile/compiler';\nimport type { StringOrNumber } from '../typings';\nimport type { IElement } from '@visactor/vgrammar-core';\nimport { Factory as VGrammarFactory } from '@visactor/vgrammar-core';\n\nconst componentTypeMap = {\n cartesianAxis: 'axis',\n 'cartesianAxis-band': 'axis',\n 'cartesianAxis-linear': 'axis',\n 'cartesianAxis-time': 'axis',\n polarAxis: 'axis',\n 'polarAxis-band': 'axis',\n 'polarAxis-linear': 'axis',\n discreteLegend: 'legend',\n continuousLegend: 'legend',\n colorLegend: 'legend',\n sizeLegend: 'legend',\n label: 'label',\n markLine: 'markLine',\n markArea: 'markArea',\n markPoint: 'markPoint',\n polarMarkLine: 'polarMarkLine',\n polarMarkArea: 'polarMarkArea',\n polarMarkPoint: 'polarMarkPoint',\n geoMarkPoint: 'geoMarkPoint'\n};\n\nexport class EventDispatcher implements IEventDispatcher {\n globalInstance: VChart;\n\n // view 事件与 window 事件视作为不同类型的事件信息,进行独立的冒泡处理\n private _viewBubbles: Map<EventType, Bubble> = new Map<EventType, Bubble>();\n private _windowBubbles: Map<EventType, Bubble> = new Map<EventType, Bubble>();\n private _canvasBubbles: Map<EventType, Bubble> = new Map<EventType, Bubble>();\n\n private _viewListeners: Map<string, (params: CompilerListenerParameters) => void> = new Map<\n string,\n (params: CompilerListenerParameters) => void\n >();\n private _windowListeners: Map<string, (params: CompilerListenerParameters) => void> = new Map<\n string,\n (params: CompilerListenerParameters) => void\n >();\n private _canvasListeners: Map<string, (params: CompilerListenerParameters) => void> = new Map<\n string,\n (params: CompilerListenerParameters) => void\n >();\n\n private _compiler: Compiler;\n\n constructor(vchart: VChart, compiler: Compiler) {\n this.globalInstance = vchart;\n this._compiler = compiler;\n }\n\n register<Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>): this {\n // 解析 query 配置并生成最终 handler 内容\n this._parseQuery(handler);\n // view/window 事件做独立的处理\n const bubbles = this.getEventBubble(handler.filter?.source || Event_Source_Type.chart);\n const listeners = this.getEventListeners(handler.filter?.source || Event_Source_Type.chart);\n\n if (!bubbles.get(eType)) {\n bubbles.set(eType, new Bubble());\n }\n\n // 挂载事件监听\n const bubble = bubbles.get(eType) as Bubble;\n bubble.addHandler(handler, handler.filter?.level as EventBubbleLevel);\n if (this._isValidEvent(eType) && !listeners.has(eType)) {\n const callback = this._onDelegate.bind(this);\n this._compiler.addEventListener(handler.filter?.source as EventSourceType, eType, callback);\n listeners.set(eType, callback);\n } else if (this._isInteractionEvent(eType) && !listeners.has(eType)) {\n const callback = this._onDelegateInteractionEvent.bind(this);\n this._compiler.addEventListener(handler.filter?.source as EventSourceType, eType, callback);\n listeners.set(eType, callback);\n }\n return this;\n }\n\n unregister<Evt extends EventType>(eType: Evt, handler?: EventHandler<EventParamsDefinition[Evt]>): this {\n let clean: boolean = false;\n // view/window 事件做独立的处理\n const bubbles = this.getEventBubble(handler?.filter?.source || Event_Source_Type.chart);\n const listeners = this.getEventListeners(handler?.filter?.source || Event_Source_Type.chart);\n\n if (!handler) {\n const bubble = bubbles.get(eType);\n bubble?.release();\n bubbles.delete(eType);\n clean = true;\n } else {\n const bubble = bubbles.get(eType);\n bubble?.removeHandler(handler);\n if (bubble?.getCount() === 0) {\n bubble?.release();\n bubbles.delete(eType);\n clean = true;\n }\n\n if ((handler?.wrappedCallback as any)?.cancel) {\n // 取消debounce/throttle事件,释放闭包内部的上下文对象\n (handler.wrappedCallback as any).cancel();\n }\n }\n // 某个事件下所有的监听取消之后删除语法层事件的代理\n if (clean && this._isValidEvent(eType)) {\n const callback = listeners.get(eType) as (params: CompilerListenerParameters) => void;\n this._compiler.removeEventListener(handler?.filter?.source || Event_Source_Type.chart, eType, callback);\n listeners.delete(eType);\n }\n return this;\n }\n\n dispatch<Evt extends EventType>(eType: Evt, params: EventParamsDefinition[Evt], level?: EventBubbleLevel): this {\n // 默认事件类别为 view\n const bubble = this.getEventBubble((params as BaseEventParams).source || Event_Source_Type.chart).get(\n eType\n ) as Bubble;\n // 没有任何监听事件时,bubble 不存在\n if (!bubble) {\n return this;\n }\n\n // 事件冒泡逻辑:Mark -> Model -> Chart -> VChart\n let stopBubble: boolean = false;\n\n if (level) {\n // 如果指定了 level,则直接处理,不进行冒泡\n const handlers = bubble.getHandlers(level);\n stopBubble = this._invoke(handlers, eType, params);\n } else {\n const levels = [\n Event_Bubble_Level.mark,\n Event_Bubble_Level.model,\n Event_Bubble_Level.chart,\n Event_Bubble_Level.vchart\n ];\n let i = 0;\n\n // Mark 级别的事件只包含对语法层代理的基础事件\n while (!stopBubble && i < levels.length) {\n stopBubble = this._invoke(bubble.getHandlers(levels[i]), eType, params);\n i++;\n }\n }\n\n return this;\n }\n\n prevent<Evt extends EventType>(eType: Evt, except?: EventCallback<EventParams>): this {\n const eventTypes = ['canvas', 'chart', 'window'] as EventSourceType[];\n eventTypes.forEach(type => {\n const bubble = this.getEventBubble(type).get(eType);\n if (bubble) {\n bubble.getAllHandlers().forEach(handler => {\n if (!except || handler.callback !== except) {\n bubble.preventHandler(handler);\n }\n });\n }\n });\n return this;\n }\n\n allow<Evt extends EventType>(eType: Evt): this {\n const eventTypes = ['canvas', 'chart', 'window'] as EventSourceType[];\n eventTypes.forEach(type => {\n const bubble = this.getEventBubble(type).get(eType);\n if (bubble) {\n bubble.getAllHandlers().forEach(handler => bubble.allowHandler(handler));\n }\n });\n return this;\n }\n\n clear(): void {\n const types = [Event_Source_Type.chart, Event_Source_Type.window, Event_Source_Type.canvas];\n\n types.forEach(type => {\n const listeners = this.getEventListeners(type);\n for (const entry of listeners.entries()) {\n this._compiler.removeEventListener(type, entry[0], entry[1]);\n }\n listeners.clear();\n });\n\n [this._viewBubbles, this._windowBubbles, this._canvasBubbles].forEach(bubbles => {\n for (const bubble of bubbles.values()) {\n bubble.release();\n }\n bubbles.clear();\n });\n }\n\n release(): void {\n this.clear();\n this.globalInstance = null;\n this._compiler = null;\n }\n\n /**\n * 基于转换后的事件筛选配置过滤需要调用的 handler\n */\n private _filter<Evt extends EventType>(filter: EventFilter, evt: Evt, params: EventParamsDefinition[Evt]): boolean {\n if (isFunction(filter.filter) && !filter.filter(params)) {\n return false;\n }\n\n // 事件 level 不需要筛选,在冒泡流程中已经处理了 level 的逻辑\n if (filter.nodeName && get(params, 'node.name') !== filter.nodeName) {\n return false;\n }\n\n if (filter.markName && (params as BaseEventParams)?.mark?.name !== filter.markName) {\n // 对于 markName 的筛选需要包含所有父级 mark 的 name\n return false;\n }\n\n let modelType = params.model?.type;\n if (componentTypeMap[modelType]) {\n modelType = componentTypeMap[modelType];\n }\n if (filter.type && modelType !== filter.type) {\n return false;\n }\n\n // 如果配置了 level 为 'mark' 并且没有配置 type,则只在事件参数中包含了 mark 时才触发\n if (filter.level === 'mark' && !filter.type && !(params as BaseEventParams)?.mark) {\n return false;\n }\n\n // 如果配置了 level 为 'model' 并且没有配置 type,则只在事件参数中包含了 model 时才触发\n if (filter.level === 'model' && !filter.type && !(params as BaseEventParams)?.model) {\n return false;\n }\n\n if (isValid(filter.userId) && params.model?.userId !== filter.userId) {\n return false;\n }\n\n return true;\n }\n\n private _prepareParams<Evt extends EventType>(\n filter: EventFilter,\n params: EventParamsDefinition[Evt]\n ): EventParamsDefinition[Evt] {\n // 如果针对于 mark 做了筛选,则事件参数转为筛选器制定的父级 mark\n if (filter.markName && params.mark && (params as BaseEventParams).itemMap) {\n const markId = params.mark.getProductId();\n const item = (params as BaseEventParams).itemMap.get(markId);\n const datum = item?.getDatum();\n return { ...params, item, datum };\n }\n return { ...params };\n }\n\n /**\n * 代理语法层事件的监听回调\n */\n private _onDelegate = (listenerParams: CompilerListenerParameters) => {\n const chart = this.globalInstance.getChart();\n const model = (isValid(listenerParams.modelId) && chart?.getModelById(listenerParams.modelId)) || undefined;\n const mark = (isValid(listenerParams.markId) && chart?.getMarkById(listenerParams.markId)) || null;\n\n // FIXME: 这里操作的应当是场景树结构,与 vgrammar 结构无关\n // 遍历取到所有父级的 mark 以支持子元素响应父元素事件\n const itemMap = new Map<string, any>();\n let targetMark: any = listenerParams.item?.mark;\n if (targetMark && isValid(targetMark.id())) {\n itemMap.set(targetMark.id(), listenerParams.item);\n }\n while (targetMark?.elements) {\n const id = targetMark.id();\n // 由于父级的 markName 可能重复,因此只取最近的父级 mark\n if (isValid(id) && !itemMap.has(id)) {\n itemMap.set(id, targetMark.elements[0]);\n }\n targetMark = targetMark.group;\n }\n\n const params: BaseEventParams = {\n event: listenerParams.event,\n item: listenerParams.item,\n datum: listenerParams.datum,\n source: listenerParams.source,\n itemMap,\n chart,\n model,\n mark: mark ?? undefined,\n node: get(listenerParams.event, 'target')\n };\n this.dispatch(listenerParams.type, params);\n };\n\n /**\n * 代理语法层事件的监听回调\n */\n private _onDelegateInteractionEvent = (listenerParams: CompilerListenerParameters) => {\n const chart = this.globalInstance.getChart();\n const event = listenerParams.event;\n let items: IElement[] = null;\n\n if ((event as any).elements) {\n items = (event as any).elements;\n }\n\n const params: InteractionEventParam = {\n event: listenerParams.event,\n chart,\n items,\n datums:\n items &&\n items.map(item => {\n return item.getDatum();\n })\n };\n this.dispatch(listenerParams.type, params);\n };\n\n /**\n * 调用相应事件监听下的 handlers\n */\n private _invoke<Evt extends EventType>(\n handlers: EventHandler<EventParams>[],\n type: EventType,\n params: EventParamsDefinition[Evt]\n ): boolean {\n const result = handlers.map(handler => {\n const filter = handler.filter as EventFilter;\n if (!handler.prevented && (!handler.query || this._filter(filter, type, params))) {\n const callback = handler.wrappedCallback || handler.callback;\n const stopBubble = callback.call(null, this._prepareParams(filter, params));\n const doStopBubble = stopBubble ?? handler.query?.consume;\n if (doStopBubble) {\n (params as BaseEventParams).event?.stopPropagation();\n (params as BaseEventParams).event?.preventDefault();\n }\n return !!doStopBubble;\n }\n return undefined;\n });\n // 如果某个事件回调阻止了冒泡,则阻止更高级别事件的调用过程\n return result.some(r => r === true);\n }\n\n /**\n * 依据事件 query 得到事件冒泡层级\n */\n private _getQueryLevel(query: EventQuery | null): EventBubbleLevel {\n // 事件默认监听在 vchart 层\n if (!query) {\n return Event_Bubble_Level.vchart;\n }\n if (query.level) {\n return query.level;\n }\n if (isValid(query.id)) {\n return Event_Bubble_Level.model;\n }\n\n return Event_Bubble_Level.vchart;\n }\n\n /**\n * 将用户 query 配置转换为最终事件筛选参数\n */\n private _parseQuery(handler: EventHandler<EventParams>): EventHandler<EventParams> {\n const query = handler.query;\n // 处理 query 带来的函数封装\n if (query?.throttle) {\n handler.wrappedCallback = throttle(handler.callback, query.throttle);\n } else if (query?.debounce) {\n handler.wrappedCallback = debounce(handler.callback, query.debounce);\n }\n let level = this._getQueryLevel(query);\n let type: string | null = null;\n let source: EventSourceType = Event_Source_Type.chart;\n let nodeName: string | null = null;\n let markName: string | null = null;\n let userId: StringOrNumber | null = null;\n\n if (query?.nodeName) {\n nodeName = query.nodeName;\n }\n\n if (query?.markName) {\n markName = query.markName;\n }\n\n if (query?.type && (level === Event_Bubble_Level.model || level === Event_Bubble_Level.mark)) {\n type = query.type;\n }\n if (query?.source) {\n source = query.source;\n }\n\n if (isValid(query?.id)) {\n userId = query?.id;\n level = Event_Bubble_Level.model; // 如果用户配置了 id,那么默认 level 为 model\n }\n handler.filter = {\n level,\n markName,\n type,\n source,\n nodeName,\n userId,\n filter: query?.filter ?? null\n };\n return handler;\n }\n\n private getEventBubble(source: EventSourceType) {\n switch (source) {\n case Event_Source_Type.chart:\n return this._viewBubbles;\n case Event_Source_Type.window:\n return this._windowBubbles;\n case Event_Source_Type.canvas:\n return this._canvasBubbles;\n default:\n return this._viewBubbles;\n }\n }\n\n private getEventListeners(source: EventSourceType) {\n switch (source) {\n case Event_Source_Type.chart:\n return this._viewListeners;\n case Event_Source_Type.window:\n return this._windowListeners;\n case Event_Source_Type.canvas:\n return this._canvasListeners;\n default:\n return this._viewListeners;\n }\n }\n\n private _isValidEvent(eType: string) {\n return BASE_EVENTS.includes(eType) || (Object.values(VGRAMMAR_HOOK_EVENT) as string[]).includes(eType);\n }\n\n private _isInteractionEvent(eType: string) {\n let interactionType: string;\n\n return (\n eType &&\n ((interactionType = eType.split(':')[0]), interactionType) &&\n VGrammarFactory.hasInteraction(interactionType)\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/event/event-dispatcher.ts"],"names":[],"mappings":"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","file":"event-dispatcher.js","sourcesContent":["import { Bubble } from './bubble';\nimport { isValid, debounce, throttle, get, isFunction } from '@visactor/vutils';\nimport { BASE_EVENTS, Event_Bubble_Level, Event_Source_Type, VGRAMMAR_HOOK_EVENT } from '../constant/event';\nimport type {\n EventType,\n EventQuery,\n EventHandler,\n EventParamsDefinition,\n IEventDispatcher,\n EventBubbleLevel,\n BaseEventParams,\n EventParams,\n EventFilter,\n EventSourceType,\n InteractionEventParam,\n EventCallback\n} from './interface';\nimport type { VChart } from '../core/vchart';\nimport type { CompilerListenerParameters } from '../compile/interface';\nimport type { Compiler } from '../compile/compiler';\nimport type { StringOrNumber } from '../typings';\nimport type { IElement } from '@visactor/vgrammar-core';\nimport { Factory as VGrammarFactory } from '@visactor/vgrammar-core';\n\nconst componentTypeMap: Record<string, string> = {\n cartesianAxis: 'axis',\n 'cartesianAxis-band': 'axis',\n 'cartesianAxis-linear': 'axis',\n 'cartesianAxis-time': 'axis',\n polarAxis: 'axis',\n 'polarAxis-band': 'axis',\n 'polarAxis-linear': 'axis',\n discreteLegend: 'legend',\n continuousLegend: 'legend',\n colorLegend: 'legend',\n sizeLegend: 'legend'\n // 组件的 type 如果没有细化的分类,不需要在这里进行映射\n // label: 'label',\n // markLine: 'markLine',\n // markArea: 'markArea',\n // markPoint: 'markPoint',\n // polarMarkLine: 'polarMarkLine',\n // polarMarkArea: 'polarMarkArea',\n // polarMarkPoint: 'polarMarkPoint',\n // geoMarkPoint: 'geoMarkPoint'\n};\n\nexport class EventDispatcher implements IEventDispatcher {\n globalInstance: VChart;\n\n // view 事件与 window 事件视作为不同类型的事件信息,进行独立的冒泡处理\n private _viewBubbles: Map<EventType, Bubble> = new Map<EventType, Bubble>();\n private _windowBubbles: Map<EventType, Bubble> = new Map<EventType, Bubble>();\n private _canvasBubbles: Map<EventType, Bubble> = new Map<EventType, Bubble>();\n\n private _viewListeners: Map<string, (params: CompilerListenerParameters) => void> = new Map<\n string,\n (params: CompilerListenerParameters) => void\n >();\n private _windowListeners: Map<string, (params: CompilerListenerParameters) => void> = new Map<\n string,\n (params: CompilerListenerParameters) => void\n >();\n private _canvasListeners: Map<string, (params: CompilerListenerParameters) => void> = new Map<\n string,\n (params: CompilerListenerParameters) => void\n >();\n\n private _compiler: Compiler;\n\n constructor(vchart: VChart, compiler: Compiler) {\n this.globalInstance = vchart;\n this._compiler = compiler;\n }\n\n register<Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>): this {\n // 解析 query 配置并生成最终 handler 内容\n this._parseQuery(handler);\n // view/window 事件做独立的处理\n const bubbles = this.getEventBubble(handler.filter?.source || Event_Source_Type.chart);\n const listeners = this.getEventListeners(handler.filter?.source || Event_Source_Type.chart);\n\n if (!bubbles.get(eType)) {\n bubbles.set(eType, new Bubble());\n }\n\n // 挂载事件监听\n const bubble = bubbles.get(eType) as Bubble;\n bubble.addHandler(handler, handler.filter?.level as EventBubbleLevel);\n if (this._isValidEvent(eType) && !listeners.has(eType)) {\n const callback = this._onDelegate.bind(this);\n this._compiler.addEventListener(handler.filter?.source as EventSourceType, eType, callback);\n listeners.set(eType, callback);\n } else if (this._isInteractionEvent(eType) && !listeners.has(eType)) {\n const callback = this._onDelegateInteractionEvent.bind(this);\n this._compiler.addEventListener(handler.filter?.source as EventSourceType, eType, callback);\n listeners.set(eType, callback);\n }\n return this;\n }\n\n unregister<Evt extends EventType>(eType: Evt, handler?: EventHandler<EventParamsDefinition[Evt]>): this {\n let clean: boolean = false;\n // view/window 事件做独立的处理\n const bubbles = this.getEventBubble(handler?.filter?.source || Event_Source_Type.chart);\n const listeners = this.getEventListeners(handler?.filter?.source || Event_Source_Type.chart);\n\n if (!handler) {\n const bubble = bubbles.get(eType);\n bubble?.release();\n bubbles.delete(eType);\n clean = true;\n } else {\n const bubble = bubbles.get(eType);\n bubble?.removeHandler(handler);\n if (bubble?.getCount() === 0) {\n bubble?.release();\n bubbles.delete(eType);\n clean = true;\n }\n\n if ((handler?.wrappedCallback as any)?.cancel) {\n // 取消debounce/throttle事件,释放闭包内部的上下文对象\n (handler.wrappedCallback as any).cancel();\n }\n }\n // 某个事件下所有的监听取消之后删除语法层事件的代理\n if (clean && this._isValidEvent(eType)) {\n const callback = listeners.get(eType) as (params: CompilerListenerParameters) => void;\n this._compiler.removeEventListener(handler?.filter?.source || Event_Source_Type.chart, eType, callback);\n listeners.delete(eType);\n }\n return this;\n }\n\n dispatch<Evt extends EventType>(eType: Evt, params: EventParamsDefinition[Evt], level?: EventBubbleLevel): this {\n // 默认事件类别为 view\n const bubble = this.getEventBubble((params as BaseEventParams).source || Event_Source_Type.chart).get(\n eType\n ) as Bubble;\n // 没有任何监听事件时,bubble 不存在\n if (!bubble) {\n return this;\n }\n\n // 事件冒泡逻辑:Mark -> Model -> Chart -> VChart\n let stopBubble: boolean = false;\n\n if (level) {\n // 如果指定了 level,则直接处理,不进行冒泡\n const handlers = bubble.getHandlers(level);\n stopBubble = this._invoke(handlers, eType, params);\n } else {\n const levels = [\n Event_Bubble_Level.mark,\n Event_Bubble_Level.model,\n Event_Bubble_Level.chart,\n Event_Bubble_Level.vchart\n ];\n let i = 0;\n\n // Mark 级别的事件只包含对语法层代理的基础事件\n while (!stopBubble && i < levels.length) {\n stopBubble = this._invoke(bubble.getHandlers(levels[i]), eType, params);\n i++;\n }\n }\n\n return this;\n }\n\n prevent<Evt extends EventType>(eType: Evt, except?: EventCallback<EventParams>): this {\n const eventTypes = ['canvas', 'chart', 'window'] as EventSourceType[];\n eventTypes.forEach(type => {\n const bubble = this.getEventBubble(type).get(eType);\n if (bubble) {\n bubble.getAllHandlers().forEach(handler => {\n if (!except || handler.callback !== except) {\n bubble.preventHandler(handler);\n }\n });\n }\n });\n return this;\n }\n\n allow<Evt extends EventType>(eType: Evt): this {\n const eventTypes = ['canvas', 'chart', 'window'] as EventSourceType[];\n eventTypes.forEach(type => {\n const bubble = this.getEventBubble(type).get(eType);\n if (bubble) {\n bubble.getAllHandlers().forEach(handler => bubble.allowHandler(handler));\n }\n });\n return this;\n }\n\n clear(): void {\n const types = [Event_Source_Type.chart, Event_Source_Type.window, Event_Source_Type.canvas];\n\n types.forEach(type => {\n const listeners = this.getEventListeners(type);\n for (const entry of listeners.entries()) {\n this._compiler.removeEventListener(type, entry[0], entry[1]);\n }\n listeners.clear();\n });\n\n [this._viewBubbles, this._windowBubbles, this._canvasBubbles].forEach(bubbles => {\n for (const bubble of bubbles.values()) {\n bubble.release();\n }\n bubbles.clear();\n });\n }\n\n release(): void {\n this.clear();\n this.globalInstance = null;\n this._compiler = null;\n }\n\n /**\n * 基于转换后的事件筛选配置过滤需要调用的 handler\n */\n private _filter<Evt extends EventType>(filter: EventFilter, evt: Evt, params: EventParamsDefinition[Evt]): boolean {\n if (isFunction(filter.filter) && !filter.filter(params)) {\n return false;\n }\n\n // 事件 level 不需要筛选,在冒泡流程中已经处理了 level 的逻辑\n if (filter.nodeName && get(params, 'node.name') !== filter.nodeName) {\n return false;\n }\n\n if (filter.markName && (params as BaseEventParams)?.mark?.name !== filter.markName) {\n // 对于 markName 的筛选需要包含所有父级 mark 的 name\n return false;\n }\n\n let modelType = params.model?.type;\n if (componentTypeMap[modelType]) {\n modelType = componentTypeMap[modelType];\n }\n if (filter.type && modelType !== filter.type) {\n return false;\n }\n\n // 如果配置了 level 为 'mark' 并且没有配置 type,则只在事件参数中包含了 mark 时才触发\n if (filter.level === 'mark' && !filter.type && !(params as BaseEventParams)?.mark) {\n return false;\n }\n\n // 如果配置了 level 为 'model' 并且没有配置 type,则只在事件参数中包含了 model 时才触发\n if (filter.level === 'model' && !filter.type && !(params as BaseEventParams)?.model) {\n return false;\n }\n\n if (isValid(filter.userId) && params.model?.userId !== filter.userId) {\n return false;\n }\n\n return true;\n }\n\n private _prepareParams<Evt extends EventType>(\n filter: EventFilter,\n params: EventParamsDefinition[Evt]\n ): EventParamsDefinition[Evt] {\n // 如果针对于 mark 做了筛选,则事件参数转为筛选器制定的父级 mark\n if (filter.markName && params.mark && (params as BaseEventParams).itemMap) {\n const markId = params.mark.getProductId();\n const item = (params as BaseEventParams).itemMap.get(markId);\n const datum = item?.getDatum();\n return { ...params, item, datum };\n }\n return { ...params };\n }\n\n /**\n * 代理语法层事件的监听回调\n */\n private _onDelegate = (listenerParams: CompilerListenerParameters) => {\n const chart = this.globalInstance.getChart();\n const model = (isValid(listenerParams.modelId) && chart?.getModelById(listenerParams.modelId)) || undefined;\n const mark = (isValid(listenerParams.markId) && chart?.getMarkById(listenerParams.markId)) || null;\n\n // FIXME: 这里操作的应当是场景树结构,与 vgrammar 结构无关\n // 遍历取到所有父级的 mark 以支持子元素响应父元素事件\n const itemMap = new Map<string, any>();\n let targetMark: any = listenerParams.item?.mark;\n if (targetMark && isValid(targetMark.id())) {\n itemMap.set(targetMark.id(), listenerParams.item);\n }\n while (targetMark?.elements) {\n const id = targetMark.id();\n // 由于父级的 markName 可能重复,因此只取最近的父级 mark\n if (isValid(id) && !itemMap.has(id)) {\n itemMap.set(id, targetMark.elements[0]);\n }\n targetMark = targetMark.group;\n }\n\n const params: BaseEventParams = {\n event: listenerParams.event,\n item: listenerParams.item,\n datum: listenerParams.datum,\n source: listenerParams.source,\n itemMap,\n chart,\n model,\n mark: mark ?? undefined,\n node: get(listenerParams.event, 'target')\n };\n this.dispatch(listenerParams.type, params);\n };\n\n /**\n * 代理语法层事件的监听回调\n */\n private _onDelegateInteractionEvent = (listenerParams: CompilerListenerParameters) => {\n const chart = this.globalInstance.getChart();\n const event = listenerParams.event;\n let items: IElement[] = null;\n\n if ((event as any).elements) {\n items = (event as any).elements;\n }\n\n const params: InteractionEventParam = {\n event: listenerParams.event,\n chart,\n items,\n datums:\n items &&\n items.map(item => {\n return item.getDatum();\n })\n };\n this.dispatch(listenerParams.type, params);\n };\n\n /**\n * 调用相应事件监听下的 handlers\n */\n private _invoke<Evt extends EventType>(\n handlers: EventHandler<EventParams>[],\n type: EventType,\n params: EventParamsDefinition[Evt]\n ): boolean {\n const result = handlers.map(handler => {\n const filter = handler.filter as EventFilter;\n if (!handler.prevented && (!handler.query || this._filter(filter, type, params))) {\n const callback = handler.wrappedCallback || handler.callback;\n const stopBubble = callback.call(null, this._prepareParams(filter, params));\n const doStopBubble = stopBubble ?? handler.query?.consume;\n if (doStopBubble) {\n (params as BaseEventParams).event?.stopPropagation();\n (params as BaseEventParams).event?.preventDefault();\n }\n return !!doStopBubble;\n }\n return undefined;\n });\n // 如果某个事件回调阻止了冒泡,则阻止更高级别事件的调用过程\n return result.some(r => r === true);\n }\n\n /**\n * 依据事件 query 得到事件冒泡层级\n */\n private _getQueryLevel(query: EventQuery | null): EventBubbleLevel {\n // 事件默认监听在 vchart 层\n if (!query) {\n return Event_Bubble_Level.vchart;\n }\n if (query.level) {\n return query.level;\n }\n if (isValid(query.id)) {\n return Event_Bubble_Level.model;\n }\n\n return Event_Bubble_Level.vchart;\n }\n\n /**\n * 将用户 query 配置转换为最终事件筛选参数\n */\n private _parseQuery(handler: EventHandler<EventParams>): EventHandler<EventParams> {\n const query = handler.query;\n // 处理 query 带来的函数封装\n if (query?.throttle) {\n handler.wrappedCallback = throttle(handler.callback, query.throttle);\n } else if (query?.debounce) {\n handler.wrappedCallback = debounce(handler.callback, query.debounce);\n }\n let level = this._getQueryLevel(query);\n let type: string | null = null;\n let source: EventSourceType = Event_Source_Type.chart;\n let nodeName: string | null = null;\n let markName: string | null = null;\n let userId: StringOrNumber | null = null;\n\n if (query?.nodeName) {\n nodeName = query.nodeName;\n }\n\n if (query?.markName) {\n markName = query.markName;\n }\n\n if (query?.type && (level === Event_Bubble_Level.model || level === Event_Bubble_Level.mark)) {\n type = query.type;\n }\n if (query?.source) {\n source = query.source;\n }\n\n if (isValid(query?.id)) {\n userId = query?.id;\n level = Event_Bubble_Level.model; // 如果用户配置了 id,那么默认 level 为 model\n }\n handler.filter = {\n level,\n markName,\n type,\n source,\n nodeName,\n userId,\n filter: query?.filter ?? null\n };\n return handler;\n }\n\n private getEventBubble(source: EventSourceType) {\n switch (source) {\n case Event_Source_Type.chart:\n return this._viewBubbles;\n case Event_Source_Type.window:\n return this._windowBubbles;\n case Event_Source_Type.canvas:\n return this._canvasBubbles;\n default:\n return this._viewBubbles;\n }\n }\n\n private getEventListeners(source: EventSourceType) {\n switch (source) {\n case Event_Source_Type.chart:\n return this._viewListeners;\n case Event_Source_Type.window:\n return this._windowListeners;\n case Event_Source_Type.canvas:\n return this._canvasListeners;\n default:\n return this._viewListeners;\n }\n }\n\n private _isValidEvent(eType: string) {\n return BASE_EVENTS.includes(eType) || (Object.values(VGRAMMAR_HOOK_EVENT) as string[]).includes(eType);\n }\n\n private _isInteractionEvent(eType: string) {\n let interactionType: string;\n\n return (\n eType &&\n ((interactionType = eType.split(':')[0]), interactionType) &&\n VGrammarFactory.hasInteraction(interactionType)\n );\n }\n}\n"]}
@@ -41,14 +41,17 @@ export class BaseSeriesSpecTransformer extends BaseModelSpecTransformer {
41
41
  isBoolean(spec.stack) && (this.stack = spec.stack), isBoolean(spec.percent) && (this.stack = spec.percent || this.stack),
42
42
  isNil(this.stack) && this._supportStack && spec.seriesField && (this.stack = !0);
43
43
  }
44
- _addMarkLabelSpec(spec, markName, labelSpecKey = "label", styleHandlerName = "initLabelMarkStyle", hasAnimation, head) {
44
+ _addMarkLabelSpec(spec, markName, labelSpecKey = "label", styleHandlerName = "initLabelMarkStyle", hasAnimation = !0, head) {
45
45
  if (!spec) return;
46
46
  array(spec[labelSpecKey]).forEach((labelSpec => {
47
- var _a, _b, _c, _d;
47
+ var _a, _b, _c;
48
48
  if (labelSpec && labelSpec.visible) {
49
- const animationEnabled = null === (_d = null !== (_c = null !== (_b = null === (_a = this._option) || void 0 === _a ? void 0 : _a.animation) && void 0 !== _b ? _b : spec.animation) && void 0 !== _c ? _c : labelSpec.animation) || void 0 === _d || _d;
49
+ const {animation: animation = !0, animationUpdate: labelAnimationUpdate = !0, animationEnter: labelAnimationEnter = !0, animationExit: labelAnimationExit = !0} = labelSpec, {animationUpdate: animationUpdate = !0, animationEnter: animationEnter = !0, animationExit: animationExit = !0} = spec, labelAnimationEnabled = !!(null !== (_c = null !== (_b = null === (_a = this._option) || void 0 === _a ? void 0 : _a.animation) && void 0 !== _b ? _b : spec.animation) && void 0 !== _c ? _c : labelSpec.animation) && !!hasAnimation;
50
50
  this.addLabelSpec(markName, Object.assign(Object.assign({}, labelSpec), {
51
- animation: animationEnabled && hasAnimation,
51
+ animation: !!labelAnimationEnabled && animation,
52
+ animationUpdate: !!(labelAnimationEnabled && animationUpdate && labelAnimationUpdate) && animationUpdate,
53
+ animationEnter: !!(labelAnimationEnabled && animationEnter && labelAnimationEnter) && animationEnter,
54
+ animationExit: !!(labelAnimationEnabled && animationEnter && labelAnimationExit) && animationExit,
52
55
  getStyleHandler: series => {
53
56
  var _a;
54
57
  return null === (_a = series[styleHandlerName]) || void 0 === _a ? void 0 : _a.bind(series);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/base/base-series-transformer.ts"],"names":[],"mappings":"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","file":"base-series-transformer.js","sourcesContent":["import { isBoolean, isNil, isObject } from '@visactor/vutils';\nimport type { IChartSpecInfo } from '../../chart/interface';\nimport type { ILabelSpec, TransformedLabelSpec } from '../../component/label';\nimport { BaseModelSpecTransformer } from '../../model/base-model-transformer';\nimport type { ISeriesSpec } from '../../typings';\nimport { array, get, isArray, isValid, transformSeriesThemeToMerge } from '../../util';\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport type { ISeriesSpecTransformerResult, SeriesMarkNameEnum } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ISeries } from '../interface';\nimport { getDirectionFromSeriesSpec } from '../util/spec';\nimport { Factory } from '../../core/factory';\n\nexport class BaseSeriesSpecTransformer<T extends ISeriesSpec, K> extends BaseModelSpecTransformer<T, K> {\n markLabelSpec: Partial<Record<SeriesMarkNameEnum, TransformedLabelSpec[]>> = {};\n stack: boolean;\n protected _supportStack: boolean;\n\n getLabelSpec(markName: string) {\n return this.markLabelSpec[markName];\n }\n\n setLabelSpec(markName: string, label: TransformedLabelSpec | TransformedLabelSpec[]) {\n this.markLabelSpec[markName] = array(label);\n }\n\n addLabelSpec(markName: string, label: TransformedLabelSpec, head = false) {\n if (!this.markLabelSpec[markName]) {\n this.markLabelSpec[markName] = [];\n }\n if (head) {\n // 排序靠前的 label 优先布局,尽可能避免碰撞隐藏\n this.markLabelSpec[markName].unshift(label);\n } else {\n this.markLabelSpec[markName].push(label);\n }\n }\n\n getTheme(spec: T, chartSpec: any): K {\n const direction = getDirectionFromSeriesSpec(spec);\n const chartTheme = this._option?.getTheme();\n const { markByName, mark } = chartTheme;\n const type = this._option.type;\n // 基本主题\n const seriesMarkMap = Factory.getSeriesMarkMap(type);\n\n const theme = seriesMarkMap\n ? transformSeriesThemeToMerge(get(chartTheme, `series.${type}`), type, mark, markByName)\n : {};\n // 区分方向的主题\n const themeWithDirection = get(chartTheme, `series.${type}_${direction}`);\n // stack 状态下的主题\n const stack = this.stack ?? themeWithDirection?.stack ?? theme?.stack;\n const themeWithStack = stack ? get(chartTheme, `series.${type}_stack`) : undefined;\n return mergeSpec({}, theme, themeWithDirection, themeWithStack);\n }\n\n /** 不建议重写该方法,最好重写对应子步骤 */\n transformSpec(spec: T, chartSpec: any, chartSpecInfo?: IChartSpecInfo): ISeriesSpecTransformerResult<T, K> {\n this._transformStack(spec);\n const result = super.transformSpec(spec, chartSpec, chartSpecInfo);\n this._transformLabelSpec(result.spec);\n return {\n ...result,\n markLabelSpec: this.markLabelSpec,\n stack: this.stack\n };\n }\n\n protected _transformLabelSpec(spec: T) {\n // empty\n }\n\n protected _transformStack(spec: T) {\n if (isBoolean(spec.stack)) {\n this.stack = spec.stack;\n }\n if (isBoolean(spec.percent)) {\n this.stack = spec.percent || this.stack; // this.stack is `true` in bar/area series\n }\n\n if (isNil(this.stack) && this._supportStack && spec.seriesField) {\n // only set default value of stack to be `true` when series support stack and seriesField is not null\n this.stack = true;\n }\n }\n\n protected _addMarkLabelSpec<V extends ISeries = ISeries>(\n spec: T,\n markName: SeriesMarkNameEnum,\n labelSpecKey: keyof T = 'label' as any,\n styleHandlerName: keyof V = 'initLabelMarkStyle',\n hasAnimation?: boolean,\n head?: boolean\n ): void {\n if (!spec) {\n return;\n }\n const labels = array<ILabelSpec>(spec[labelSpecKey]);\n labels.forEach(labelSpec => {\n if (labelSpec && labelSpec.visible) {\n // animation config priority: option.animation > spec.animation > spec.label.animation\n const animationEnabled = this._option?.animation ?? spec.animation ?? labelSpec.animation ?? true;\n this.addLabelSpec(\n markName,\n {\n ...labelSpec,\n animation: animationEnabled && hasAnimation,\n getStyleHandler: (series: V) => (series[styleHandlerName] as any)?.bind(series)\n } as TransformedLabelSpec,\n head\n );\n }\n });\n }\n\n protected _getDefaultSpecFromChart(chartSpec: any): any {\n const spec = (super._getDefaultSpecFromChart(chartSpec) as any) ?? {};\n const { outerRadius, innerRadius, direction } = chartSpec;\n if (isValid(outerRadius)) {\n spec.outerRadius = outerRadius;\n }\n if (isValid(innerRadius)) {\n spec.innerRadius = innerRadius;\n }\n\n if (isValid(direction)) {\n spec.direction = direction;\n }\n\n return Object.keys(spec).length > 0 ? spec : undefined;\n }\n\n protected _mergeThemeToSpec(spec: T, chartSpec: any): { spec: T; theme: K } {\n const theme = this._theme;\n\n if (this._shouldMergeThemeToSpec()) {\n const specFromChart = this._getDefaultSpecFromChart(chartSpec);\n // this._originalSpec + specFromChart + this._theme = spec\n const merge = (originalSpec: any) => {\n const result = mergeSpec({}, theme, specFromChart, originalSpec);\n const labelTheme = (theme as any).label;\n if (labelTheme && isObject(labelTheme) && isArray(result.label)) {\n result.label = result.label.map((label: ILabelSpec) => mergeSpec({}, labelTheme, label));\n }\n return result;\n };\n\n if (isArray(spec)) {\n return {\n spec: spec.map(specItem => merge(specItem)) as unknown as T,\n theme\n };\n }\n\n return {\n spec: merge(spec),\n theme\n };\n }\n return { spec, theme };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/series/base/base-series-transformer.ts"],"names":[],"mappings":"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","file":"base-series-transformer.js","sourcesContent":["import { isBoolean, isNil, isObject } from '@visactor/vutils';\nimport type { IChartSpecInfo } from '../../chart/interface';\nimport type { ILabelSpec, TransformedLabelSpec } from '../../component/label';\nimport { BaseModelSpecTransformer } from '../../model/base-model-transformer';\nimport type { ISeriesSpec } from '../../typings';\nimport { array, get, isArray, isValid, transformSeriesThemeToMerge } from '../../util';\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport type { ISeriesSpecTransformerResult, SeriesMarkNameEnum } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ISeries } from '../interface';\nimport { getDirectionFromSeriesSpec } from '../util/spec';\nimport { Factory } from '../../core/factory';\n\nexport class BaseSeriesSpecTransformer<T extends ISeriesSpec, K> extends BaseModelSpecTransformer<T, K> {\n markLabelSpec: Partial<Record<SeriesMarkNameEnum, TransformedLabelSpec[]>> = {};\n stack: boolean;\n protected _supportStack: boolean;\n\n getLabelSpec(markName: string) {\n return this.markLabelSpec[markName];\n }\n\n setLabelSpec(markName: string, label: TransformedLabelSpec | TransformedLabelSpec[]) {\n this.markLabelSpec[markName] = array(label);\n }\n\n addLabelSpec(markName: string, label: TransformedLabelSpec, head = false) {\n if (!this.markLabelSpec[markName]) {\n this.markLabelSpec[markName] = [];\n }\n if (head) {\n // 排序靠前的 label 优先布局,尽可能避免碰撞隐藏\n this.markLabelSpec[markName].unshift(label);\n } else {\n this.markLabelSpec[markName].push(label);\n }\n }\n\n getTheme(spec: T, chartSpec: any): K {\n const direction = getDirectionFromSeriesSpec(spec);\n const chartTheme = this._option?.getTheme();\n const { markByName, mark } = chartTheme;\n const type = this._option.type;\n // 基本主题\n const seriesMarkMap = Factory.getSeriesMarkMap(type);\n\n const theme = seriesMarkMap\n ? transformSeriesThemeToMerge(get(chartTheme, `series.${type}`), type, mark, markByName)\n : {};\n // 区分方向的主题\n const themeWithDirection = get(chartTheme, `series.${type}_${direction}`);\n // stack 状态下的主题\n const stack = this.stack ?? themeWithDirection?.stack ?? theme?.stack;\n const themeWithStack = stack ? get(chartTheme, `series.${type}_stack`) : undefined;\n return mergeSpec({}, theme, themeWithDirection, themeWithStack);\n }\n\n /** 不建议重写该方法,最好重写对应子步骤 */\n transformSpec(spec: T, chartSpec: any, chartSpecInfo?: IChartSpecInfo): ISeriesSpecTransformerResult<T, K> {\n this._transformStack(spec);\n const result = super.transformSpec(spec, chartSpec, chartSpecInfo);\n this._transformLabelSpec(result.spec);\n return {\n ...result,\n markLabelSpec: this.markLabelSpec,\n stack: this.stack\n };\n }\n\n protected _transformLabelSpec(spec: T) {\n // empty\n }\n\n protected _transformStack(spec: T) {\n if (isBoolean(spec.stack)) {\n this.stack = spec.stack;\n }\n if (isBoolean(spec.percent)) {\n this.stack = spec.percent || this.stack; // this.stack is `true` in bar/area series\n }\n\n if (isNil(this.stack) && this._supportStack && spec.seriesField) {\n // only set default value of stack to be `true` when series support stack and seriesField is not null\n this.stack = true;\n }\n }\n\n protected _addMarkLabelSpec<V extends ISeries = ISeries>(\n spec: T,\n markName: SeriesMarkNameEnum,\n labelSpecKey: keyof T = 'label' as any,\n styleHandlerName: keyof V = 'initLabelMarkStyle',\n hasAnimation: boolean = true,\n head?: boolean\n ): void {\n if (!spec) {\n return;\n }\n const labels = array<ILabelSpec>(spec[labelSpecKey]);\n labels.forEach(labelSpec => {\n if (labelSpec && labelSpec.visible) {\n // animation config priority: option.animation > spec.animation > spec.label.animation\n const {\n animation = true,\n animationUpdate: labelAnimationUpdate = true,\n animationEnter: labelAnimationEnter = true,\n animationExit: labelAnimationExit = true\n } = labelSpec;\n const { animationUpdate = true, animationEnter = true, animationExit = true } = spec as any;\n const animationEnabled = this._option?.animation ?? spec.animation ?? labelSpec.animation;\n const labelAnimationEnabled = !!animationEnabled && !!hasAnimation;\n\n this.addLabelSpec(\n markName,\n {\n ...labelSpec,\n animation: labelAnimationEnabled ? animation : false,\n animationUpdate: labelAnimationEnabled && animationUpdate && labelAnimationUpdate ? animationUpdate : false,\n animationEnter: labelAnimationEnabled && animationEnter && labelAnimationEnter ? animationEnter : false,\n animationExit: labelAnimationEnabled && animationEnter && labelAnimationExit ? animationExit : false,\n getStyleHandler: (series: V) => (series[styleHandlerName] as any)?.bind(series)\n } as TransformedLabelSpec,\n head\n );\n }\n });\n }\n\n protected _getDefaultSpecFromChart(chartSpec: any): any {\n const spec = (super._getDefaultSpecFromChart(chartSpec) as any) ?? {};\n const { outerRadius, innerRadius, direction } = chartSpec;\n if (isValid(outerRadius)) {\n spec.outerRadius = outerRadius;\n }\n if (isValid(innerRadius)) {\n spec.innerRadius = innerRadius;\n }\n\n if (isValid(direction)) {\n spec.direction = direction;\n }\n\n return Object.keys(spec).length > 0 ? spec : undefined;\n }\n\n protected _mergeThemeToSpec(spec: T, chartSpec: any): { spec: T; theme: K } {\n const theme = this._theme;\n\n if (this._shouldMergeThemeToSpec()) {\n const specFromChart = this._getDefaultSpecFromChart(chartSpec);\n // this._originalSpec + specFromChart + this._theme = spec\n const merge = (originalSpec: any) => {\n const result = mergeSpec({}, theme, specFromChart, originalSpec);\n const labelTheme = (theme as any).label;\n if (labelTheme && isObject(labelTheme) && isArray(result.label)) {\n result.label = result.label.map((label: ILabelSpec) => mergeSpec({}, labelTheme, label));\n }\n return result;\n };\n\n if (isArray(spec)) {\n return {\n spec: spec.map(specItem => merge(specItem)) as unknown as T,\n theme\n };\n }\n\n return {\n spec: merge(spec),\n theme\n };\n }\n return { spec, theme };\n }\n}\n"]}
@@ -87,9 +87,7 @@ export class BaseSeries extends BaseModel {
87
87
  return this._seriesField;
88
88
  }
89
89
  setSeriesField(field) {
90
- isValid(field) && (this._seriesField = field, this.getMarks().filter((m => m.getDataView() === this.getViewData())).forEach((m => {
91
- m.setFacet(this._seriesField);
92
- })));
90
+ isValid(field) && (this._seriesField = field);
93
91
  }
94
92
  getGroups() {
95
93
  return this._groups;
@@ -378,7 +376,7 @@ export class BaseSeries extends BaseModel {
378
376
  var _a;
379
377
  const mark = this._createMark({
380
378
  type: spec.type,
381
- name: `${namePrefix}_${index}`
379
+ name: isValid(spec.name) ? `${spec.name}` : `${namePrefix}_${index}`
382
380
  }, {
383
381
  skipBeforeLayouted: !0,
384
382
  markSpec: spec,
@@ -390,7 +388,7 @@ export class BaseSeries extends BaseModel {
390
388
  key: spec.dataKey
391
389
  });
392
390
  if (mark) {
393
- if (options.hasAnimation) {
391
+ if (isValid(spec.id) && mark.setUserId(spec.id), options.hasAnimation) {
394
392
  const config = animationConfig({}, userAnimationConfig(spec.type, spec, this._markAttributeContext));
395
393
  mark.setAnimationConfig(config);
396
394
  }