@visactor/vchart 2.0.13-alpha.4 → 2.0.13-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.es.js +24 -85
  3. package/build/index.js +24 -85
  4. package/build/index.min.js +2 -2
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/compile/compiler.d.ts +0 -1
  7. package/cjs/compile/compiler.js +0 -3
  8. package/cjs/compile/compiler.js.map +1 -1
  9. package/cjs/compile/interface/compilable-item.d.ts +1 -2
  10. package/cjs/compile/interface/compilable-item.js.map +1 -1
  11. package/cjs/component/brush/brush.d.ts +1 -6
  12. package/cjs/component/brush/brush.js +18 -40
  13. package/cjs/component/brush/brush.js.map +1 -1
  14. package/cjs/component/brush/interface.d.ts +1 -3
  15. package/cjs/component/brush/interface.js.map +1 -1
  16. package/cjs/component/crosshair/interface/spec.d.ts +0 -1
  17. package/cjs/component/crosshair/interface/spec.js.map +1 -1
  18. package/cjs/component/tooltip/utils/show-tooltip.js +2 -10
  19. package/cjs/component/tooltip/utils/show-tooltip.js.map +1 -1
  20. package/cjs/core/interface.d.ts +1 -6
  21. package/cjs/core/interface.js.map +1 -1
  22. package/cjs/core/vchart.js.map +1 -1
  23. package/cjs/event/event.js +1 -1
  24. package/cjs/event/event.js.map +1 -1
  25. package/cjs/event/events/dimension/dimension-hover.d.ts +0 -2
  26. package/cjs/event/events/dimension/dimension-hover.js +3 -6
  27. package/cjs/event/events/dimension/dimension-hover.js.map +1 -1
  28. package/esm/compile/compiler.d.ts +0 -1
  29. package/esm/compile/compiler.js +0 -3
  30. package/esm/compile/compiler.js.map +1 -1
  31. package/esm/compile/interface/compilable-item.d.ts +1 -2
  32. package/esm/compile/interface/compilable-item.js.map +1 -1
  33. package/esm/component/brush/brush.d.ts +1 -6
  34. package/esm/component/brush/brush.js +17 -41
  35. package/esm/component/brush/brush.js.map +1 -1
  36. package/esm/component/brush/interface.d.ts +1 -3
  37. package/esm/component/brush/interface.js.map +1 -1
  38. package/esm/component/crosshair/interface/spec.d.ts +0 -1
  39. package/esm/component/crosshair/interface/spec.js.map +1 -1
  40. package/esm/component/tooltip/utils/show-tooltip.js +2 -10
  41. package/esm/component/tooltip/utils/show-tooltip.js.map +1 -1
  42. package/esm/core/interface.d.ts +1 -6
  43. package/esm/core/interface.js.map +1 -1
  44. package/esm/core/vchart.js.map +1 -1
  45. package/esm/event/event.js +1 -1
  46. package/esm/event/event.js.map +1 -1
  47. package/esm/event/events/dimension/dimension-hover.d.ts +0 -2
  48. package/esm/event/events/dimension/dimension-hover.js +2 -7
  49. package/esm/event/events/dimension/dimension-hover.js.map +1 -1
  50. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/event.ts"],"names":[],"mappings":"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","file":"event.js","sourcesContent":["/*eslint no-dupe-class-members: \"off\"*/\n\nimport { Factory } from '../core/factory';\nimport type { RenderMode } from '../typings/spec/common';\nimport type {\n EventType,\n EventQuery,\n EventCallback,\n EventParamsDefinition,\n IEvent,\n IEventDispatcher,\n IComposedEvent,\n EventParams,\n EventHandler,\n EventBubbleLevel\n} from './interface';\n\nexport class Event implements IEvent {\n private _eventDispatcher: IEventDispatcher;\n private _mode: RenderMode;\n\n private _composedEventMap: Map<EventCallback<EventParams>, { eventType: EventType; event: IComposedEvent }> =\n new Map();\n getComposedEventMap() {\n return this._composedEventMap;\n }\n\n constructor(eventDispatcher: IEventDispatcher, mode: RenderMode) {\n this._eventDispatcher = eventDispatcher;\n this._mode = mode;\n }\n\n on<Evt extends EventType>(eType: Evt, callback: EventCallback<EventParamsDefinition[Evt]>): this;\n on<Evt extends EventType>(eType: Evt, query: EventQuery, callback: EventCallback<EventParamsDefinition[Evt]>): this;\n on<Evt extends EventType>(\n eType: Evt,\n query: EventQuery | EventCallback<EventParamsDefinition[Evt]>,\n callback?: EventCallback<EventParamsDefinition[Evt]>\n ): this {\n const handler =\n typeof query === 'function'\n ? { query: null, callback: query }\n : {\n query,\n callback: callback as EventCallback<EventParamsDefinition[Evt]>\n };\n\n const ComposedEventCtor = Factory.getComposedEvent(eType);\n if (ComposedEventCtor) {\n const composedEvent = new ComposedEventCtor(this._eventDispatcher, this._mode) as IComposedEvent;\n composedEvent.register(eType, handler);\n this._composedEventMap.set(handler.callback as EventCallback<EventParamsDefinition[Evt]>, {\n eventType: eType,\n event: composedEvent\n });\n } else {\n this._eventDispatcher.register(eType, handler);\n }\n\n return this;\n }\n\n off<Evt extends EventType>(eType: Evt, callback?: EventCallback<EventParamsDefinition[Evt]>): this;\n off<Evt extends EventType>(eType: Evt, query: EventQuery, callback: EventCallback<EventParamsDefinition[Evt]>): this;\n off<Evt extends EventType>(\n eType: Evt,\n query?: EventQuery | EventCallback<EventParamsDefinition[Evt]>,\n cb?: EventCallback<EventParamsDefinition[Evt]>\n ): this {\n const callback = (cb ?? query) as EventCallback<EventParamsDefinition[Evt]>;\n const ComposedEventCtor = Factory.getComposedEvent(eType);\n\n if (!!ComposedEventCtor) {\n if (callback) {\n this._composedEventMap.get(callback)?.event.unregister();\n this._composedEventMap.delete(callback);\n } else {\n for (const entry of this._composedEventMap.entries()) {\n if (entry[1].eventType === eType) {\n this._composedEventMap.get(entry[0])?.event.unregister();\n this._composedEventMap.delete(entry[0]);\n }\n }\n }\n } else {\n if (callback) {\n const handler: EventHandler<EventParamsDefinition[Evt]> = {\n callback,\n query: null,\n // 卸载事件时无需处理 source 以外的参数\n filter: {\n nodeName: null,\n type: eType,\n level: null,\n source: (query as EventQuery).source,\n markName: null,\n filter: null,\n userId: null\n }\n };\n this._eventDispatcher.unregister(eType, handler);\n } else {\n this._eventDispatcher.unregister(eType);\n }\n }\n return this;\n }\n\n emit<Evt extends EventType>(eType: Evt, params: EventParamsDefinition[Evt], level?: EventBubbleLevel): this {\n this._eventDispatcher.dispatch(eType, params, level);\n return this;\n }\n\n prevent<Evt extends EventType>(\n eType: Evt,\n except?: {\n handler: EventCallback<EventParamsDefinition[Evt]>;\n level: EventBubbleLevel;\n }\n ): this {\n this._eventDispatcher.prevent(eType, except);\n return this;\n }\n\n allow<Evt extends EventType>(eType: Evt) {\n this._eventDispatcher.allow(eType);\n return this;\n }\n\n release(): void {\n this._eventDispatcher.clear();\n this._composedEventMap.clear();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/event/event.ts"],"names":[],"mappings":"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","file":"event.js","sourcesContent":["/*eslint no-dupe-class-members: \"off\"*/\n\nimport { Factory } from '../core/factory';\nimport type { RenderMode } from '../typings/spec/common';\nimport type {\n EventType,\n EventQuery,\n EventCallback,\n EventParamsDefinition,\n IEvent,\n IEventDispatcher,\n IComposedEvent,\n EventParams,\n EventHandler,\n EventBubbleLevel\n} from './interface';\n\nexport class Event implements IEvent {\n private _eventDispatcher: IEventDispatcher;\n private _mode: RenderMode;\n\n private _composedEventMap: Map<EventCallback<EventParams>, { eventType: EventType; event: IComposedEvent }> =\n new Map();\n getComposedEventMap() {\n return this._composedEventMap;\n }\n\n constructor(eventDispatcher: IEventDispatcher, mode: RenderMode) {\n this._eventDispatcher = eventDispatcher;\n this._mode = mode;\n }\n\n on<Evt extends EventType>(eType: Evt, callback: EventCallback<EventParamsDefinition[Evt]>): this;\n on<Evt extends EventType>(eType: Evt, query: EventQuery, callback: EventCallback<EventParamsDefinition[Evt]>): this;\n on<Evt extends EventType>(\n eType: Evt,\n query: EventQuery | EventCallback<EventParamsDefinition[Evt]>,\n callback?: EventCallback<EventParamsDefinition[Evt]>\n ): this {\n const handler =\n typeof query === 'function'\n ? { query: null, callback: query }\n : {\n query,\n callback: callback as EventCallback<EventParamsDefinition[Evt]>\n };\n\n const ComposedEventCtor = Factory.getComposedEvent(eType);\n if (ComposedEventCtor) {\n const composedEvent = new ComposedEventCtor(this._eventDispatcher, this._mode) as IComposedEvent;\n composedEvent.register(eType, handler);\n this._composedEventMap.set(callback as EventCallback<EventParamsDefinition[Evt]>, {\n eventType: eType,\n event: composedEvent\n });\n } else {\n this._eventDispatcher.register(eType, handler);\n }\n\n return this;\n }\n\n off<Evt extends EventType>(eType: Evt, callback?: EventCallback<EventParamsDefinition[Evt]>): this;\n off<Evt extends EventType>(eType: Evt, query: EventQuery, callback: EventCallback<EventParamsDefinition[Evt]>): this;\n off<Evt extends EventType>(\n eType: Evt,\n query?: EventQuery | EventCallback<EventParamsDefinition[Evt]>,\n cb?: EventCallback<EventParamsDefinition[Evt]>\n ): this {\n const callback = (cb ?? query) as EventCallback<EventParamsDefinition[Evt]>;\n const ComposedEventCtor = Factory.getComposedEvent(eType);\n\n if (!!ComposedEventCtor) {\n if (callback) {\n this._composedEventMap.get(callback)?.event.unregister();\n this._composedEventMap.delete(callback);\n } else {\n for (const entry of this._composedEventMap.entries()) {\n if (entry[1].eventType === eType) {\n this._composedEventMap.get(entry[0])?.event.unregister();\n this._composedEventMap.delete(entry[0]);\n }\n }\n }\n } else {\n if (callback) {\n const handler: EventHandler<EventParamsDefinition[Evt]> = {\n callback,\n query: null,\n // 卸载事件时无需处理 source 以外的参数\n filter: {\n nodeName: null,\n type: eType,\n level: null,\n source: (query as EventQuery).source,\n markName: null,\n filter: null,\n userId: null\n }\n };\n this._eventDispatcher.unregister(eType, handler);\n } else {\n this._eventDispatcher.unregister(eType);\n }\n }\n return this;\n }\n\n emit<Evt extends EventType>(eType: Evt, params: EventParamsDefinition[Evt], level?: EventBubbleLevel): this {\n this._eventDispatcher.dispatch(eType, params, level);\n return this;\n }\n\n prevent<Evt extends EventType>(\n eType: Evt,\n except?: {\n handler: EventCallback<EventParamsDefinition[Evt]>;\n level: EventBubbleLevel;\n }\n ): this {\n this._eventDispatcher.prevent(eType, except);\n return this;\n }\n\n allow<Evt extends EventType>(eType: Evt) {\n this._eventDispatcher.allow(eType);\n return this;\n }\n\n release(): void {\n this._eventDispatcher.clear();\n this._composedEventMap.clear();\n }\n}\n"]}
@@ -1,8 +1,6 @@
1
1
  import type { EventHandler, EventParamsDefinition, EventType } from '../../interface';
2
2
  import { DimensionEvent } from './base';
3
3
  export declare class DimensionHoverEvent extends DimensionEvent {
4
- static _disableDimensionEvent: boolean;
5
- static disableDimensionEvent(value: boolean): void;
6
4
  private _cacheDimensionInfo;
7
5
  register<Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>): void;
8
6
  unregister(): void;
@@ -9,7 +9,7 @@ const env_1 = require("../../../util/env"), base_1 = require("./base"), common_1
9
9
  class DimensionHoverEvent extends base_1.DimensionEvent {
10
10
  constructor() {
11
11
  super(...arguments), this._cacheDimensionInfo = null, this.onMouseMove = params => {
12
- if (!params || DimensionHoverEvent._disableDimensionEvent) return;
12
+ if (!params) return;
13
13
  const x = params.event.viewX, y = params.event.viewY, targetDimensionInfo = this.getTargetDimensionInfo(x, y);
14
14
  null === targetDimensionInfo && null !== this._cacheDimensionInfo ? (this._callback.call(null, Object.assign(Object.assign({}, params), {
15
15
  action: "leave",
@@ -23,15 +23,12 @@ class DimensionHoverEvent extends base_1.DimensionEvent {
23
23
  dimensionInfo: targetDimensionInfo.slice()
24
24
  })), this._cacheDimensionInfo = targetDimensionInfo);
25
25
  }, this.onMouseOut = params => {
26
- params && !DimensionHoverEvent._disableDimensionEvent && (this._callback.call(null, Object.assign(Object.assign({}, params), {
26
+ params && (this._callback.call(null, Object.assign(Object.assign({}, params), {
27
27
  action: "leave",
28
28
  dimensionInfo: this._cacheDimensionInfo ? this._cacheDimensionInfo.slice() : []
29
29
  })), this._cacheDimensionInfo = null);
30
30
  };
31
31
  }
32
- static disableDimensionEvent(value) {
33
- this._disableDimensionEvent = value;
34
- }
35
32
  register(eType, handler) {
36
33
  this._callback = handler.callback, this._eventDispatcher.register("pointermove", {
37
34
  query: Object.assign(Object.assign({}, handler.query), {
@@ -61,5 +58,5 @@ class DimensionHoverEvent extends base_1.DimensionEvent {
61
58
  }
62
59
  }
63
60
 
64
- exports.DimensionHoverEvent = DimensionHoverEvent, DimensionHoverEvent._disableDimensionEvent = !1;
61
+ exports.DimensionHoverEvent = DimensionHoverEvent;
65
62
  //# sourceMappingURL=dimension-hover.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/events/dimension/dimension-hover.ts"],"names":[],"mappings":";;;AAAA,2CAAqD;AAErD,iCAAwC;AACxC,0CAAoD;AACpD,mDAA4D;AAG5D,MAAa,mBAAoB,SAAQ,qBAAc;IAAvD;;QAMU,wBAAmB,GAA4B,IAAI,CAAC;QAuCpD,gBAAW,GAAG,CAAC,MAAuB,EAAE,EAAE;YAChD,IAAI,CAAC,MAAM,IAAI,mBAAmB,CAAC,sBAAsB,EAAE;gBACzD,OAAO;aACR;YACD,MAAM,CAAC,GAAI,MAAM,CAAC,KAAa,CAAC,KAAK,CAAC;YACtC,MAAM,CAAC,GAAI,MAAM,CAAC,KAAa,CAAC,KAAK,CAAC;YACtC,MAAM,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,mBAAmB,KAAK,IAAI,IAAI,IAAI,CAAC,mBAAmB,KAAK,IAAI,EAAE;gBAErE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,kCACnB,MAAM,KACT,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAC/C,CAAC;gBACH,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;aAChD;iBAAM,IACL,mBAAmB,KAAK,IAAI;gBAC5B,CAAC,IAAI,CAAC,mBAAmB,KAAK,IAAI;oBAChC,mBAAmB,CAAC,MAAM,KAAK,IAAI,CAAC,mBAAmB,CAAC,MAAM;oBAC9D,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,4BAAmB,EAAC,IAAI,EAAE,IAAI,CAAC,mBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAClG;gBAEA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,kCACnB,MAAM,KACT,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,mBAAmB,CAAC,KAAK,EAAE,IAC1C,CAAC;gBACH,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;aAChD;iBAAM,IAAI,mBAAmB,KAAK,IAAI,EAAE;gBAEvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,kCACnB,MAAM,KACT,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,mBAAmB,CAAC,KAAK,EAAE,IAC1C,CAAC;aACJ;QACH,CAAC,CAAC;QAEM,eAAU,GAAG,CAAC,MAAuB,EAAE,EAAE;YAC/C,IAAI,CAAC,MAAM,IAAI,mBAAmB,CAAC,sBAAsB,EAAE;gBACzD,OAAO;aACR;YAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,kCACnB,MAAM,KACT,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAC/E,CAAC;YACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC;IA7FC,MAAM,CAAC,qBAAqB,CAAC,KAAc;QACzC,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;IACtC,CAAC;IAID,QAAQ,CAAwB,KAAU,EAAE,OAAiD;QAC3F,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;QAElC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAgB,aAAa,EAAE;YAC3D,KAAK,kCAAO,OAAO,CAAC,KAAK,KAAE,MAAM,EAAE,yBAAiB,CAAC,KAAK,GAAE;YAC5D,QAAQ,EAAE,IAAI,CAAC,WAAW;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAe,YAAY,EAAE;YACzD,KAAK,kCAAO,OAAO,CAAC,KAAK,KAAE,MAAM,EAAE,yBAAiB,CAAC,MAAM,GAAE;YAC7D,QAAQ,EAAE,IAAI,CAAC,UAAU;SAC1B,CAAC,CAAC;QAEH,IAAI,IAAA,sBAAgB,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAEhC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAgB,aAAa,EAAE;gBAC3D,KAAK,kCAAO,OAAO,CAAC,KAAK,KAAE,MAAM,EAAE,yBAAiB,CAAC,KAAK,GAAE;gBAC5D,QAAQ,EAAE,IAAI,CAAC,WAAW;aAC3B,CAAC,CAAC;SACJ;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,aAAa,EAAE;YAC9C,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI,CAAC,WAAW;SAC3B,CAAC,CAAC;QAEH,IAAI,IAAA,sBAAgB,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAEhC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,aAAa,EAAE;gBAC9C,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,IAAI,CAAC,WAAW;aAC3B,CAAC,CAAC;SACJ;IACH,CAAC;;AA3CH,kDA+FC;AA9FQ,0CAAsB,GAAY,KAAK,CAAC","file":"dimension-hover.js","sourcesContent":["import { isMobileLikeMode } from '../../../util/env';\nimport type { BaseEventParams, EventHandler, EventParamsDefinition, EventType } from '../../interface';\nimport { DimensionEvent } from './base';\nimport { isSameDimensionInfo } from './util/common';\nimport { Event_Source_Type } from '../../../constant/event';\nimport type { IDimensionInfo } from './interface';\n\nexport class DimensionHoverEvent extends DimensionEvent {\n static _disableDimensionEvent: boolean = false;\n static disableDimensionEvent(value: boolean) {\n this._disableDimensionEvent = value;\n }\n\n private _cacheDimensionInfo: IDimensionInfo[] | null = null;\n\n register<Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) {\n this._callback = handler.callback;\n\n this._eventDispatcher.register<'pointermove'>('pointermove', {\n query: { ...handler.query, source: Event_Source_Type.chart },\n callback: this.onMouseMove\n });\n\n this._eventDispatcher.register<'pointerout'>('pointerout', {\n query: { ...handler.query, source: Event_Source_Type.canvas },\n callback: this.onMouseOut\n });\n\n if (isMobileLikeMode(this._mode)) {\n // 移动端点按也触发 hover\n this._eventDispatcher.register<'pointerdown'>('pointerdown', {\n query: { ...handler.query, source: Event_Source_Type.chart },\n callback: this.onMouseMove\n });\n }\n }\n\n unregister() {\n this._eventDispatcher.unregister('pointermove', {\n query: null,\n callback: this.onMouseMove\n });\n\n if (isMobileLikeMode(this._mode)) {\n // 移动端点按也出发 hover\n this._eventDispatcher.unregister('pointerdown', {\n query: null,\n callback: this.onMouseMove\n });\n }\n }\n\n private onMouseMove = (params: BaseEventParams) => {\n if (!params || DimensionHoverEvent._disableDimensionEvent) {\n return;\n }\n const x = (params.event as any).viewX;\n const y = (params.event as any).viewY;\n const targetDimensionInfo = this.getTargetDimensionInfo(x, y);\n if (targetDimensionInfo === null && this._cacheDimensionInfo !== null) {\n // 鼠标移出某维度\n this._callback.call(null, {\n ...params,\n action: 'leave',\n dimensionInfo: this._cacheDimensionInfo.slice()\n });\n this._cacheDimensionInfo = targetDimensionInfo;\n } else if (\n targetDimensionInfo !== null &&\n (this._cacheDimensionInfo === null ||\n targetDimensionInfo.length !== this._cacheDimensionInfo.length ||\n targetDimensionInfo.some((info, i) => !isSameDimensionInfo(info, this._cacheDimensionInfo![i])))\n ) {\n // 鼠标移入某维度\n this._callback.call(null, {\n ...params,\n action: 'enter',\n dimensionInfo: targetDimensionInfo.slice()\n });\n this._cacheDimensionInfo = targetDimensionInfo;\n } else if (targetDimensionInfo !== null) {\n // 鼠标在某维度上滑动\n this._callback.call(null, {\n ...params,\n action: 'move',\n dimensionInfo: targetDimensionInfo.slice()\n });\n }\n };\n\n private onMouseOut = (params: BaseEventParams) => {\n if (!params || DimensionHoverEvent._disableDimensionEvent) {\n return;\n }\n // 鼠标移出某维度\n this._callback.call(null, {\n ...params,\n action: 'leave',\n dimensionInfo: this._cacheDimensionInfo ? this._cacheDimensionInfo.slice() : []\n });\n this._cacheDimensionInfo = null;\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/event/events/dimension/dimension-hover.ts"],"names":[],"mappings":"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","file":"dimension-hover.js","sourcesContent":["import { isMobileLikeMode } from '../../../util/env';\nimport type { BaseEventParams, EventHandler, EventParamsDefinition, EventType } from '../../interface';\nimport { DimensionEvent } from './base';\nimport { isSameDimensionInfo } from './util/common';\nimport { Event_Source_Type } from '../../../constant/event';\nimport type { IDimensionInfo } from './interface';\n\nexport class DimensionHoverEvent extends DimensionEvent {\n private _cacheDimensionInfo: IDimensionInfo[] | null = null;\n\n register<Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) {\n this._callback = handler.callback;\n\n this._eventDispatcher.register<'pointermove'>('pointermove', {\n query: { ...handler.query, source: Event_Source_Type.chart },\n callback: this.onMouseMove\n });\n\n this._eventDispatcher.register<'pointerout'>('pointerout', {\n query: { ...handler.query, source: Event_Source_Type.canvas },\n callback: this.onMouseOut\n });\n\n if (isMobileLikeMode(this._mode)) {\n // 移动端点按也触发 hover\n this._eventDispatcher.register<'pointerdown'>('pointerdown', {\n query: { ...handler.query, source: Event_Source_Type.chart },\n callback: this.onMouseMove\n });\n }\n }\n\n unregister() {\n this._eventDispatcher.unregister('pointermove', {\n query: null,\n callback: this.onMouseMove\n });\n\n if (isMobileLikeMode(this._mode)) {\n // 移动端点按也出发 hover\n this._eventDispatcher.unregister('pointerdown', {\n query: null,\n callback: this.onMouseMove\n });\n }\n }\n\n private onMouseMove = (params: BaseEventParams) => {\n if (!params) {\n return;\n }\n const x = (params.event as any).viewX;\n const y = (params.event as any).viewY;\n const targetDimensionInfo = this.getTargetDimensionInfo(x, y);\n if (targetDimensionInfo === null && this._cacheDimensionInfo !== null) {\n // 鼠标移出某维度\n this._callback.call(null, {\n ...params,\n action: 'leave',\n dimensionInfo: this._cacheDimensionInfo.slice()\n });\n this._cacheDimensionInfo = targetDimensionInfo;\n } else if (\n targetDimensionInfo !== null &&\n (this._cacheDimensionInfo === null ||\n targetDimensionInfo.length !== this._cacheDimensionInfo.length ||\n targetDimensionInfo.some((info, i) => !isSameDimensionInfo(info, this._cacheDimensionInfo![i])))\n ) {\n // 鼠标移入某维度\n this._callback.call(null, {\n ...params,\n action: 'enter',\n dimensionInfo: targetDimensionInfo.slice()\n });\n this._cacheDimensionInfo = targetDimensionInfo;\n } else if (targetDimensionInfo !== null) {\n // 鼠标在某维度上滑动\n this._callback.call(null, {\n ...params,\n action: 'move',\n dimensionInfo: targetDimensionInfo.slice()\n });\n }\n };\n\n private onMouseOut = (params: BaseEventParams) => {\n if (!params) {\n return;\n }\n // 鼠标移出某维度\n this._callback.call(null, {\n ...params,\n action: 'leave',\n dimensionInfo: this._cacheDimensionInfo ? this._cacheDimensionInfo.slice() : []\n });\n this._cacheDimensionInfo = null;\n };\n}\n"]}
@@ -33,7 +33,6 @@ export declare class Compiler implements ICompiler {
33
33
  protected _height: number;
34
34
  protected _container: IRenderContainer;
35
35
  protected _option: IRenderOption;
36
- getOption(): IRenderOption;
37
36
  private _released;
38
37
  private _layoutState?;
39
38
  private _compileChart;
@@ -29,9 +29,6 @@ export class Compiler {
29
29
  getRootGroup() {
30
30
  return this._rootGroup;
31
31
  }
32
- getOption() {
33
- return this._option;
34
- }
35
32
  constructor(container, option) {
36
33
  this._count = 0, this._rootMarks = [], this._viewListeners = new Map, this._windowListeners = new Map,
37
34
  this._canvasListeners = new Map, this.isInited = !1, this._released = !1, this._compileChart = null,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/compile/compiler.ts"],"names":[],"mappings":"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","file":"compiler.js","sourcesContent":["import { ChartEvent, Event_Source_Type } from './../constant/event';\nimport type { CompilerListenerParameters, ICompiler, IRenderContainer, IRenderOption } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { LayoutState } from './interface';\nimport { isMobileLikeMode, isTrueBrowser } from '../util/env';\nimport { isClass, isString } from '../util/type';\nimport type { IBoundsLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { array, isArray, isObject, isValid } from '@visactor/vutils';\nimport type { EventSourceType } from '../event/interface';\nimport type { IChart } from '../chart/interface';\nimport { createGroup, Stage, vglobal, waitForAllSubLayers } from '@visactor/vrender-core';\nimport type { IColor, IEventTarget, IGroup, IStage } from '@visactor/vrender-core';\nimport type { IMorphConfig } from '../animation/spec';\nimport type { IVChart, IVChartRenderOption } from '../core/interface';\nimport type { AnimationStateValues } from '../mark/interface';\nimport { type IGraphicContext, type IMark, type IMarkGraphic } from '../mark/interface';\nimport { Factory } from '../core/factory';\nimport type { Gesture } from '@visactor/vrender-kits';\nimport { findMarkGraphic, getDatumOfGraphic } from '../util/mark';\nimport { diffMarks, findSimpleMarks, toRenderMode, traverseGroupMark } from './util';\nimport { log } from '../util/debug';\nimport type { MarkAnimationSpec, TypeAnimationConfig } from '../animation/interface';\nimport { AnimationStateEnum } from '../animation/interface';\nimport { BuiltIn_DISAPPEAR_ANIMATE_NAME } from '../constant/animate';\n\ntype EventListener = {\n type: string;\n callback: (...args: any[]) => void;\n};\n\nexport class Compiler implements ICompiler {\n private _count: number = 0;\n /**\n * 更新后缓存的mark\n */\n private _cachedMarks: IMark[];\n\n private _progressiveMarks?: IMark[];\n\n /**\n * 增量渲染相关的raf id\n */\n private _progressiveRafId?: number;\n\n protected _rootMarks: IMark[] = [];\n\n protected _stage: IStage;\n\n protected _stateAnimationConfig: Partial<MarkAnimationSpec>;\n get stateAnimationConfig() {\n return this._stateAnimationConfig;\n }\n\n protected _rootGroup: IGroup;\n\n getRootGroup() {\n return this._rootGroup;\n }\n\n protected _viewListeners: Map<(...args: any[]) => any, EventListener> = new Map();\n protected _windowListeners: Map<(...args: any[]) => any, EventListener> = new Map();\n protected _canvasListeners: Map<(...args: any[]) => any, EventListener> = new Map();\n\n isInited: boolean = false;\n\n private _nextRafId: number;\n\n protected _width: number;\n protected _height: number;\n\n protected _container: IRenderContainer;\n protected _option: IRenderOption;\n getOption() {\n return this._option;\n }\n // 已释放标记\n private _released: boolean = false;\n\n /** 布局阶段 */\n private _layoutState?: LayoutState;\n\n private _compileChart: IChart = null;\n\n constructor(container: IRenderContainer, option: IRenderOption) {\n this._container = container;\n this._option = option;\n }\n\n getChart() {\n return this._compileChart;\n }\n /**\n * 获取 canvas dom\n * @returns HTMLCanvasElement | undefined\n */\n getCanvas(): HTMLCanvasElement | undefined {\n return this._stage?.window.getNativeHandler().nativeCanvas;\n }\n\n _gestureController?: Gesture;\n /**\n * 获取 渲染引擎\n */\n getStage(): IStage | undefined {\n return this._stage;\n }\n\n initView() {\n if (this._released) {\n return;\n }\n this.isInited = true;\n if (this._stage) {\n return;\n }\n\n const {\n autoRefreshDpr,\n dpr,\n mode,\n modeParams,\n gestureConfig,\n interactive,\n clickInterval,\n autoPreventDefault,\n background\n } = this._option;\n vglobal.setEnv(toRenderMode(mode), modeParams ?? {});\n this._stage =\n this._option.stage ??\n (new Stage({\n background,\n width: this._width,\n height: this._height,\n container: this._container.dom ?? null,\n canvas: this._container.canvas ?? null,\n dpr,\n viewBox: this._option.viewBox,\n canvasControled: this._option.canvasControled,\n beforeRender: (stage: IStage) => {\n this._compileChart?.onBeforeRender();\n this._option.beforeRender?.(stage);\n },\n afterRender: this._option.afterRender,\n disableDirtyBounds: true,\n autoRender: true,\n ticker: this._option.ticker,\n pluginList: this._option.pluginList,\n enableHtmlAttribute: this._option.enableHtmlAttribute,\n optimize: this._option.optimize,\n supportsTouchEvents: this._option.supportsTouchEvents,\n supportsPointerEvents: this._option.supportsPointerEvents,\n event: {\n clickInterval: clickInterval,\n autoPreventDefault: autoPreventDefault\n },\n ReactDOM: this._option.ReactDOM,\n autoRefresh: isValid(autoRefreshDpr) ? autoRefreshDpr : !isValid(dpr),\n ...(this._option.renderHooks ?? {})\n }) as unknown as IStage);\n\n this._stage.enableIncrementalAutoRender();\n\n // 之前vgrammar 设置了一些默认配置\n (this._stage as any).setTheme({\n symbol: {\n shape: 'circle',\n size: 8\n },\n text: {\n fontSize: 14,\n fill: '#000000'\n }\n });\n\n const group = createGroup({\n x: 0,\n y: 0,\n width: this._width,\n height: this._height\n });\n group.name = 'root';\n this._stage.defaultLayer.appendChild(group);\n this._rootGroup = group;\n const GestureController =\n (isValid(gestureConfig) ? (gestureConfig as any) : isMobileLikeMode(mode)) &&\n interactive !== false &&\n Factory.getStageEventPlugin('gesture');\n\n if (GestureController) {\n this._gestureController = new GestureController(\n this._stage as unknown as IEventTarget,\n isObject(gestureConfig) ? gestureConfig : {}\n ) as Gesture;\n }\n\n this._setCanvasStyle();\n\n // emit afterRender event\n this.getStage().hooks.afterRender.tap('chart-event', this.handleStageRender);\n\n if (interactive !== false) {\n // 将 view 实例化之前监听的事件挂载到 view 上\n this._viewListeners.forEach(listener => {\n //this._view?.addEventListener(listener.type, listener.callback);\n });\n }\n }\n\n getLayoutState() {\n return this._layoutState;\n }\n\n updateLayoutTag() {\n this._layoutState = LayoutState.before;\n }\n\n protected handleLayoutEnd = () => {\n this._compileChart?.getEvent()?.emit(ChartEvent.afterMarkLayoutEnd, { chart: this._compileChart });\n };\n\n protected handleStageRender = () => {\n this._compileChart?.getEvent()?.emit(ChartEvent.afterRender, { chart: this._compileChart });\n };\n\n private _setCanvasStyle() {\n if (!this._stage) {\n return;\n }\n if (this._container.dom && !isString(this._container.dom)) {\n this._container.dom.style.display = 'block';\n this._container.dom.style.position = 'relative';\n const canvas = this.getCanvas();\n if (canvas) {\n canvas.style.display = 'block';\n }\n }\n }\n\n compile(ctx: { chart: IChart; vChart: IVChart }, option?: IVChartRenderOption) {\n if (this._released) {\n return;\n }\n const { chart } = ctx;\n this._compileChart = chart;\n this.initView();\n if (!this._stage) {\n return;\n }\n\n if (option?.actionSource !== 'render' && this._cachedMarks) {\n this.reuseOrMorphing(option.morphConfig);\n // 清除缓存\n this._cachedMarks = null;\n }\n\n chart.compile();\n chart.afterCompile();\n }\n protected clearNextRender() {\n if (this._nextRafId) {\n vglobal.getSpecifiedCancelAnimationFrame(10)(this._nextRafId);\n this._nextRafId = null;\n\n return true;\n }\n\n return false;\n }\n\n clear(ctx: { chart: IChart; vChart: IVChart }) {\n const { chart } = ctx;\n\n this.clearNextRender();\n chart.clear();\n }\n\n renderNextTick(morphConfig?: IMorphConfig): void {\n if (this._released) {\n return;\n }\n if (this._nextRafId) {\n this.clearNextRender();\n }\n\n this._nextRafId = vglobal.getSpecifiedRequestAnimationFrame(10)(() => {\n this._nextRafId = null;\n this.render(morphConfig);\n }) as unknown as number;\n }\n\n protected _commitedAll() {\n return this._rootMarks.some(mark => {\n return traverseGroupMark(mark, m => m.commit());\n });\n }\n\n protected _hasCommitedMark() {\n return this._rootMarks.some(mark => {\n return traverseGroupMark(mark, m => m.isCommited(), null, null, true);\n });\n }\n\n private _handleAfterNextRender = () => {\n if (this._stage && !this._option.disableDirtyBounds) {\n this._stage.enableDirtyBounds();\n }\n\n if (this._compileChart) {\n this._compileChart.getEvent()?.emit(ChartEvent.renderFinished, {\n chart: this._compileChart,\n vchart: this._compileChart.getOption()?.globalInstance\n });\n }\n this._option.performanceHook?.afterVRenderDraw?.(this._compileChart.getOption().globalInstance);\n };\n\n private _doRender(immediately: boolean) {\n this._option.performanceHook?.beforeDoRender?.(this._compileChart.getOption().globalInstance);\n if (this._stage) {\n this._rootMarks.forEach(g => {\n traverseGroupMark(\n g,\n m => {\n if (m.needClear) {\n if (!this._progressiveMarks) {\n m.runAnimation();\n }\n m.clearExitGraphics();\n m.needClear = false;\n }\n },\n null,\n true\n );\n });\n\n this._option.performanceHook?.beforeVRenderDraw?.(this._compileChart.getOption().globalInstance);\n // 全量渲染的时候先关闭dirty bounds 提升性能\n this._stage.disableDirtyBounds();\n this._stage.afterNextRender(this._handleAfterNextRender);\n\n if (immediately) {\n this._stage.render();\n\n this._option.performanceHook?.afterVRenderDraw?.(this._compileChart.getOption().globalInstance);\n }\n }\n }\n\n renderMarks() {\n if (!this._hasCommitedMark()) {\n return;\n }\n\n log(`--- start of renderMarks(${this._count}) ---`);\n this.clearProgressive();\n\n // 更新所有的mark\n this._rootMarks.forEach(mark => {\n mark.render();\n });\n\n if (this._layoutState === LayoutState.before) {\n // 需要更新布局\n this._layoutState = LayoutState.layouting;\n this._compileChart?.onLayout();\n this._layoutState = LayoutState.reevaluate;\n\n if (this._hasCommitedMark()) {\n // 第二次更新所有的mark\n this._rootMarks.forEach(mark => {\n mark.render();\n });\n }\n this.handleLayoutEnd();\n }\n\n this.findProgressiveMarks();\n\n // update stage animation state\n this.updateStateAnimation();\n\n this._doRender(true);\n this.doPreProgressive();\n\n log(`--- start of renderMarks(${this._count}) ---`);\n this._count++;\n }\n\n reuseOrMorphing(morphConfig: IMorphConfig = {}) {\n const { reuse = true, morph = true, morphAll = false, animation = {}, enableExitAnimation = false } = morphConfig;\n const newMarks = findSimpleMarks(this._rootMarks);\n const { update, exit } = diffMarks(this._cachedMarks, newMarks, { morph, morphAll, reuse });\n\n update.forEach(({ prev, next }) => {\n // const enableMarkMorphConfig =\n // prev.every(mark => mark.getMarkConfig().morph) && next.every(mark => mark.getMarkConfig().morph);\n\n // 优先复用\n if (reuse && prev.length === 1 && next.length === 1 && prev[0].type === next[0].type) {\n next[0].reuse(prev[0]);\n } else {\n // 执行morphing\n const prevMark = prev.filter(item => item.getMarkConfig().morph)[0];\n prevMark &&\n next.forEach(item => {\n item.getMarkConfig().morph && item.prepareMorph(prevMark);\n });\n }\n });\n\n // todo 离场元素执行exit动画\n exit.forEach(({ prev }) => {\n prev.forEach(m => {\n m.removeProduct();\n });\n });\n }\n\n render(morphConfig?: IMorphConfig) {\n if (this._released) {\n return;\n }\n this.clearNextRender();\n\n this.initView();\n if (!this._stage) {\n return;\n }\n\n const { width, height } = this._rootGroup.attribute;\n\n // 更新rootGroup的宽高\n if (this._width !== width || this._height !== height) {\n this._rootGroup.setAttributes({ width: this._width, height: this._height });\n }\n\n this.renderMarks();\n if (this.clearNextRender()) {\n this.renderMarks();\n }\n }\n\n setStageAnimationConfig(config: Partial<MarkAnimationSpec>) {\n // 封装options,批量添加一些默认参数\n const animationConfig: Partial<MarkAnimationSpec> = {};\n\n Object.keys(config).forEach(key => {\n const value = (config as any)[key];\n if (isArray(value)) {\n if (key === 'disappear') {\n (animationConfig as any)[key] = value.map(item => {\n if (isClass(item.callBack)) {\n return {\n ...item,\n custom: item.callBack\n };\n }\n return {\n ...item,\n type: BuiltIn_DISAPPEAR_ANIMATE_NAME,\n customParameters: {\n callBack: item.callBack\n }\n };\n });\n } else {\n (animationConfig as any)[key] = value.map(item => {\n const options = item!.options ?? {};\n\n return {\n ...item,\n options: (...args: any[]) => {\n const _options = typeof options === 'function' ? options(...args) : options;\n return {\n ..._options\n };\n }\n };\n });\n }\n } else {\n (animationConfig as any)[key] = {\n ...(config as any)[key]\n };\n }\n });\n this._stateAnimationConfig = animationConfig;\n }\n\n updateStateAnimation() {\n const allMarks: IMark[] = [];\n this._rootMarks.forEach(mark => {\n traverseGroupMark(mark, m => {\n allMarks.push(m);\n });\n });\n const markAnimationStates = allMarks.map(mark => mark.getAnimationState());\n const animationState = markAnimationStates.every(state => state === AnimationStateEnum.appear)\n ? AnimationStateEnum.appear\n : markAnimationStates.every(state => state === AnimationStateEnum.disappear)\n ? AnimationStateEnum.disappear\n : AnimationStateEnum.none;\n if (!this._stage.context) {\n this._stage.context = {};\n }\n this._stage.context.animationState = animationState;\n }\n\n updateViewBox(viewBox: IBoundsLike, reRender: boolean = true) {\n if (!this._stage) {\n return;\n }\n const prevViewBox = this._stage.viewBox;\n if (\n viewBox &&\n (!prevViewBox ||\n prevViewBox.x1 !== viewBox.x1 ||\n prevViewBox.y1 !== viewBox.y1 ||\n prevViewBox.x2 !== viewBox.x2 ||\n prevViewBox.y2 !== viewBox.y2)\n ) {\n (this._stage as any).setViewBox(viewBox, reRender);\n }\n }\n\n resize(width: number, height: number, reRender: boolean = true) {\n if (!this._stage) {\n return;\n }\n const hasChange = this._width !== width || this._height !== height;\n\n this._width = width;\n this._height = height;\n\n if (hasChange) {\n this._stage.resize(width, height);\n this._commitedAll();\n\n // todo resize\n if (reRender) {\n this.render({ morph: false });\n }\n }\n }\n\n setBackground(color: IColor) {\n if (this._stage) {\n this._stage.background = color;\n }\n }\n\n setSize(width: number, height: number) {\n this._width = width;\n this._height = height;\n if (!this._stage) {\n return;\n }\n\n // todo set size of stage\n }\n\n setViewBox(viewBox: IBoundsLike, reRender: boolean = true) {\n this.updateViewBox(viewBox, reRender);\n }\n\n addEventListener(\n source: EventSourceType,\n type: string,\n callback: (params: CompilerListenerParameters) => void\n ): void {\n // TODO: 需要明确一下 interactive 的作用范围,同时考虑是否存在非交互行为的事件以及是否需要生效\n if (this._option.interactive === false) {\n return;\n }\n if (source === Event_Source_Type.chart) {\n const rootGroup = this.getRootGroup();\n const wrappedCallback = function (event: any) {\n const graphic = event.target;\n let markGraphic: IMarkGraphic = null;\n\n if (graphic) {\n if (isValid(graphic.context)) {\n markGraphic = graphic;\n } else {\n markGraphic = findMarkGraphic(rootGroup, graphic) as unknown as IMarkGraphic;\n }\n }\n const context = (markGraphic?.context ?? {}) as Partial<IGraphicContext>;\n const markId = isValid(context.markId) ? context.markId : null;\n const modelId = isValid(context.modelId) ? context.modelId : null;\n const modelUserId = isValid(context.modelUserId) ? context.modelUserId : null;\n const markUserId = isValid(context.markUserId) ? context.markUserId : null;\n\n const params: CompilerListenerParameters = {\n event,\n type,\n source,\n item: markGraphic,\n datum: getDatumOfGraphic(markGraphic), // 是否要区分图元\n markId,\n modelId,\n markUserId,\n modelUserId\n };\n callback.call(null, params);\n }.bind(this);\n this._viewListeners.set(callback, { type, callback: wrappedCallback });\n // 如果 view 已经初始化则立刻挂载监听\n // FIXME: 目前 vgrammar 类型声明没有对齐,事件相关类型声明并没有使用 SceneItem\n //todo\n this._stage?.addEventListener(type, wrappedCallback as any);\n } else if (source === Event_Source_Type.window) {\n const wrappedCallback = function wrappedCallback(event: any) {\n // TODO: vgrammar 暂未提供基于事件直接筛选相应 mark 的能力,这里无法获取到相应的 item\n const params: CompilerListenerParameters = {\n event,\n type,\n source,\n item: null,\n datum: null,\n markId: null,\n modelId: null,\n markUserId: null,\n modelUserId: null\n };\n callback.call(null, params);\n }.bind(this);\n this._windowListeners.set(callback, { type, callback: wrappedCallback });\n const windowObject = this._getGlobalThis();\n windowObject?.addEventListener(type, wrappedCallback);\n } else if (source === Event_Source_Type.canvas) {\n const wrappedCallback = function wrappedCallback(event: any) {\n // TODO: vgrammar 暂未提供基于事件直接筛选相应 mark 的能力,这里无法获取到相应的 item\n const params: CompilerListenerParameters = {\n event,\n type,\n source,\n item: null,\n datum: null,\n markId: null,\n modelId: null,\n markUserId: null,\n modelUserId: null\n };\n callback.call(null, params);\n }.bind(this);\n this._canvasListeners.set(callback, { type, callback: wrappedCallback });\n const canvasObject = this.getStage()?.window;\n canvasObject?.addEventListener(type, wrappedCallback);\n }\n }\n\n removeEventListener(\n source: EventSourceType,\n type: string,\n callback: (params: CompilerListenerParameters) => void\n ): void {\n if (this._option.interactive === false) {\n return;\n }\n if (source === Event_Source_Type.chart) {\n const wrappedCallback = this._viewListeners.get(callback)?.callback;\n wrappedCallback && this._stage?.removeEventListener(type, wrappedCallback);\n this._viewListeners.delete(callback);\n } else if (source === Event_Source_Type.window) {\n const windowObject = this._getGlobalThis();\n const wrappedCallback = this._windowListeners.get(callback)?.callback;\n wrappedCallback && windowObject?.removeEventListener(type, wrappedCallback);\n this._windowListeners.delete(callback);\n } else if (source === Event_Source_Type.canvas) {\n const canvasObject = this.getStage()?.window;\n const wrappedCallback = this._canvasListeners.get(callback)?.callback;\n canvasObject && wrappedCallback && canvasObject?.removeEventListener(type, wrappedCallback);\n this._canvasListeners.delete(callback);\n }\n }\n\n protected releaseEvent(): void {\n const stage = this.getStage();\n\n if (stage) {\n stage.hooks.afterRender.unTap('chart-event', this.handleStageRender);\n }\n\n // 相应的事件remove在model中完成\n this._viewListeners.clear();\n this._windowListeners.clear();\n this._canvasListeners.clear();\n }\n\n release(): void {\n this.clearNextRender();\n this.releaseEvent();\n this._option = this._container = null as any;\n // vgrammar release\n this.releaseGrammar(true);\n\n if (this._stage !== this._option?.stage) {\n // don't release the stage created by outside\n this._stage.release();\n }\n this._stage = null;\n\n this.isInited = false;\n this._compileChart = null;\n this._released = true;\n }\n\n /**\n * 释放VGrammar\n * @param removeGraphicItems 是否删除场景元素,在同步渲染,并且无动画时,必须设置为true,否则有绘图残留\n */\n releaseGrammar(removeGraphicItems: boolean = false) {\n // this._releaseModel();\n if (removeGraphicItems) {\n // 彻底删除图形\n this._rootMarks.forEach(g => {\n traverseGroupMark(\n g,\n m => {\n m.removeProduct();\n },\n null,\n true\n );\n });\n } else {\n this._cachedMarks = findSimpleMarks(this._rootMarks);\n }\n this._rootMarks = [];\n }\n\n // protected _releaseModel() {\n // // 释放model\n // Object.keys(this._model).forEach(type => {\n // Object.values((this._model as any)[type] as IProductMap<IGrammarItem>).forEach(grammarItemMap => {\n // Object.values(grammarItemMap).forEach((item: IGrammarItem) => {\n // item.removeProduct(true); // 保留 vgrammar 语法元素,下面一起清空\n // });\n // });\n // (this._model as any)[type] = {};\n // });\n // }\n\n addRootMark(mark: IMark) {\n if (!this._rootMarks.includes(mark)) {\n this._rootMarks.push(mark);\n }\n }\n\n getRootMarks() {\n return this._rootMarks;\n }\n\n removeRootMark(mark: IMark) {\n const index = this._rootMarks.findIndex(m => m === mark);\n\n if (index >= 0) {\n this._rootMarks.splice(index, 1);\n\n return true;\n }\n return false;\n }\n\n private _getGlobalThis() {\n return isTrueBrowser(this._option.mode) ? globalThis : this.getStage()?.window;\n }\n\n private _combineIncrementalLayers() {\n if (this._stage) {\n waitForAllSubLayers(this._stage).then(() => {\n // stage might be null in current tick\n if (this._stage) {\n this._stage.defaultLayer.combineSubLayer();\n }\n });\n }\n }\n\n private findProgressiveMarks() {\n const marks: IMark[] = [];\n\n this._rootMarks.forEach(mark => {\n traverseGroupMark(mark, m => {\n if (m.isProgressive()) {\n marks.push(m);\n }\n });\n });\n\n if (!marks.length) {\n this._progressiveMarks = null;\n return null;\n }\n\n this._progressiveMarks = marks;\n\n this._combineIncrementalLayers();\n\n return marks;\n }\n\n private doPreProgressive() {\n if (this._progressiveMarks && this._progressiveMarks.some(mark => mark.isDoingProgressive())) {\n const raf = vglobal.getSpecifiedRequestAnimationFrame(10);\n this._progressiveRafId = raf(this.handleProgressiveFrame);\n } else if (this._progressiveMarks && this._progressiveMarks.every(mark => mark.canAnimateAfterProgressive())) {\n this._progressiveMarks.forEach(mark => {\n mark.runAnimation();\n });\n } else if (this._progressiveMarks) {\n this._progressiveMarks = null;\n }\n }\n\n /** 监听frame事件,更新增量元素的mark */\n private handleProgressiveFrame = () => {\n if (this._progressiveMarks.length) {\n this._progressiveMarks.forEach(mark => {\n if (mark.isDoingProgressive()) {\n mark.renderProgressive();\n }\n });\n }\n\n this.doPreProgressive();\n };\n\n /** 清除 */\n private clearProgressive() {\n if (this._progressiveRafId) {\n const cancelRaf = vglobal.getSpecifiedCancelAnimationFrame(10);\n cancelRaf(this._progressiveRafId);\n }\n\n if (this._progressiveMarks && this._progressiveMarks.length) {\n this._progressiveMarks.forEach(entry => {\n entry.clearProgressive();\n });\n\n this._progressiveMarks = null;\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/compile/compiler.ts"],"names":[],"mappings":"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","file":"compiler.js","sourcesContent":["import { ChartEvent, Event_Source_Type } from './../constant/event';\nimport type { CompilerListenerParameters, ICompiler, IRenderContainer, IRenderOption } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { LayoutState } from './interface';\nimport { isMobileLikeMode, isTrueBrowser } from '../util/env';\nimport { isClass, isString } from '../util/type';\nimport type { IBoundsLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { array, isArray, isObject, isValid } from '@visactor/vutils';\nimport type { EventSourceType } from '../event/interface';\nimport type { IChart } from '../chart/interface';\nimport { createGroup, Stage, vglobal, waitForAllSubLayers } from '@visactor/vrender-core';\nimport type { IColor, IEventTarget, IGroup, IStage } from '@visactor/vrender-core';\nimport type { IMorphConfig } from '../animation/spec';\nimport type { IVChart, IVChartRenderOption } from '../core/interface';\nimport type { AnimationStateValues } from '../mark/interface';\nimport { type IGraphicContext, type IMark, type IMarkGraphic } from '../mark/interface';\nimport { Factory } from '../core/factory';\nimport type { Gesture } from '@visactor/vrender-kits';\nimport { findMarkGraphic, getDatumOfGraphic } from '../util/mark';\nimport { diffMarks, findSimpleMarks, toRenderMode, traverseGroupMark } from './util';\nimport { log } from '../util/debug';\nimport type { MarkAnimationSpec, TypeAnimationConfig } from '../animation/interface';\nimport { AnimationStateEnum } from '../animation/interface';\nimport { BuiltIn_DISAPPEAR_ANIMATE_NAME } from '../constant/animate';\n\ntype EventListener = {\n type: string;\n callback: (...args: any[]) => void;\n};\n\nexport class Compiler implements ICompiler {\n private _count: number = 0;\n /**\n * 更新后缓存的mark\n */\n private _cachedMarks: IMark[];\n\n private _progressiveMarks?: IMark[];\n\n /**\n * 增量渲染相关的raf id\n */\n private _progressiveRafId?: number;\n\n protected _rootMarks: IMark[] = [];\n\n protected _stage: IStage;\n\n protected _stateAnimationConfig: Partial<MarkAnimationSpec>;\n get stateAnimationConfig() {\n return this._stateAnimationConfig;\n }\n\n protected _rootGroup: IGroup;\n\n getRootGroup() {\n return this._rootGroup;\n }\n\n protected _viewListeners: Map<(...args: any[]) => any, EventListener> = new Map();\n protected _windowListeners: Map<(...args: any[]) => any, EventListener> = new Map();\n protected _canvasListeners: Map<(...args: any[]) => any, EventListener> = new Map();\n\n isInited: boolean = false;\n\n private _nextRafId: number;\n\n protected _width: number;\n protected _height: number;\n\n protected _container: IRenderContainer;\n protected _option: IRenderOption;\n // 已释放标记\n private _released: boolean = false;\n\n /** 布局阶段 */\n private _layoutState?: LayoutState;\n\n private _compileChart: IChart = null;\n\n constructor(container: IRenderContainer, option: IRenderOption) {\n this._container = container;\n this._option = option;\n }\n\n getChart() {\n return this._compileChart;\n }\n /**\n * 获取 canvas dom\n * @returns HTMLCanvasElement | undefined\n */\n getCanvas(): HTMLCanvasElement | undefined {\n return this._stage?.window.getNativeHandler().nativeCanvas;\n }\n\n _gestureController?: Gesture;\n /**\n * 获取 渲染引擎\n */\n getStage(): IStage | undefined {\n return this._stage;\n }\n\n initView() {\n if (this._released) {\n return;\n }\n this.isInited = true;\n if (this._stage) {\n return;\n }\n\n const {\n autoRefreshDpr,\n dpr,\n mode,\n modeParams,\n gestureConfig,\n interactive,\n clickInterval,\n autoPreventDefault,\n background\n } = this._option;\n vglobal.setEnv(toRenderMode(mode), modeParams ?? {});\n this._stage =\n this._option.stage ??\n (new Stage({\n background,\n width: this._width,\n height: this._height,\n container: this._container.dom ?? null,\n canvas: this._container.canvas ?? null,\n dpr,\n viewBox: this._option.viewBox,\n canvasControled: this._option.canvasControled,\n beforeRender: (stage: IStage) => {\n this._compileChart?.onBeforeRender();\n this._option.beforeRender?.(stage);\n },\n afterRender: this._option.afterRender,\n disableDirtyBounds: true,\n autoRender: true,\n ticker: this._option.ticker,\n pluginList: this._option.pluginList,\n enableHtmlAttribute: this._option.enableHtmlAttribute,\n optimize: this._option.optimize,\n supportsTouchEvents: this._option.supportsTouchEvents,\n supportsPointerEvents: this._option.supportsPointerEvents,\n event: {\n clickInterval: clickInterval,\n autoPreventDefault: autoPreventDefault\n },\n ReactDOM: this._option.ReactDOM,\n autoRefresh: isValid(autoRefreshDpr) ? autoRefreshDpr : !isValid(dpr),\n ...(this._option.renderHooks ?? {})\n }) as unknown as IStage);\n\n this._stage.enableIncrementalAutoRender();\n\n // 之前vgrammar 设置了一些默认配置\n (this._stage as any).setTheme({\n symbol: {\n shape: 'circle',\n size: 8\n },\n text: {\n fontSize: 14,\n fill: '#000000'\n }\n });\n\n const group = createGroup({\n x: 0,\n y: 0,\n width: this._width,\n height: this._height\n });\n group.name = 'root';\n this._stage.defaultLayer.appendChild(group);\n this._rootGroup = group;\n const GestureController =\n (isValid(gestureConfig) ? (gestureConfig as any) : isMobileLikeMode(mode)) &&\n interactive !== false &&\n Factory.getStageEventPlugin('gesture');\n\n if (GestureController) {\n this._gestureController = new GestureController(\n this._stage as unknown as IEventTarget,\n isObject(gestureConfig) ? gestureConfig : {}\n ) as Gesture;\n }\n\n this._setCanvasStyle();\n\n // emit afterRender event\n this.getStage().hooks.afterRender.tap('chart-event', this.handleStageRender);\n\n if (interactive !== false) {\n // 将 view 实例化之前监听的事件挂载到 view 上\n this._viewListeners.forEach(listener => {\n //this._view?.addEventListener(listener.type, listener.callback);\n });\n }\n }\n\n getLayoutState() {\n return this._layoutState;\n }\n\n updateLayoutTag() {\n this._layoutState = LayoutState.before;\n }\n\n protected handleLayoutEnd = () => {\n this._compileChart?.getEvent()?.emit(ChartEvent.afterMarkLayoutEnd, { chart: this._compileChart });\n };\n\n protected handleStageRender = () => {\n this._compileChart?.getEvent()?.emit(ChartEvent.afterRender, { chart: this._compileChart });\n };\n\n private _setCanvasStyle() {\n if (!this._stage) {\n return;\n }\n if (this._container.dom && !isString(this._container.dom)) {\n this._container.dom.style.display = 'block';\n this._container.dom.style.position = 'relative';\n const canvas = this.getCanvas();\n if (canvas) {\n canvas.style.display = 'block';\n }\n }\n }\n\n compile(ctx: { chart: IChart; vChart: IVChart }, option?: IVChartRenderOption) {\n if (this._released) {\n return;\n }\n const { chart } = ctx;\n this._compileChart = chart;\n this.initView();\n if (!this._stage) {\n return;\n }\n\n if (option?.actionSource !== 'render' && this._cachedMarks) {\n this.reuseOrMorphing(option.morphConfig);\n // 清除缓存\n this._cachedMarks = null;\n }\n\n chart.compile();\n chart.afterCompile();\n }\n protected clearNextRender() {\n if (this._nextRafId) {\n vglobal.getSpecifiedCancelAnimationFrame(10)(this._nextRafId);\n this._nextRafId = null;\n\n return true;\n }\n\n return false;\n }\n\n clear(ctx: { chart: IChart; vChart: IVChart }) {\n const { chart } = ctx;\n\n this.clearNextRender();\n chart.clear();\n }\n\n renderNextTick(morphConfig?: IMorphConfig): void {\n if (this._released) {\n return;\n }\n if (this._nextRafId) {\n this.clearNextRender();\n }\n\n this._nextRafId = vglobal.getSpecifiedRequestAnimationFrame(10)(() => {\n this._nextRafId = null;\n this.render(morphConfig);\n }) as unknown as number;\n }\n\n protected _commitedAll() {\n return this._rootMarks.some(mark => {\n return traverseGroupMark(mark, m => m.commit());\n });\n }\n\n protected _hasCommitedMark() {\n return this._rootMarks.some(mark => {\n return traverseGroupMark(mark, m => m.isCommited(), null, null, true);\n });\n }\n\n private _handleAfterNextRender = () => {\n if (this._stage && !this._option.disableDirtyBounds) {\n this._stage.enableDirtyBounds();\n }\n\n if (this._compileChart) {\n this._compileChart.getEvent()?.emit(ChartEvent.renderFinished, {\n chart: this._compileChart,\n vchart: this._compileChart.getOption()?.globalInstance\n });\n }\n this._option.performanceHook?.afterVRenderDraw?.(this._compileChart.getOption().globalInstance);\n };\n\n private _doRender(immediately: boolean) {\n this._option.performanceHook?.beforeDoRender?.(this._compileChart.getOption().globalInstance);\n if (this._stage) {\n this._rootMarks.forEach(g => {\n traverseGroupMark(\n g,\n m => {\n if (m.needClear) {\n if (!this._progressiveMarks) {\n m.runAnimation();\n }\n m.clearExitGraphics();\n m.needClear = false;\n }\n },\n null,\n true\n );\n });\n\n this._option.performanceHook?.beforeVRenderDraw?.(this._compileChart.getOption().globalInstance);\n // 全量渲染的时候先关闭dirty bounds 提升性能\n this._stage.disableDirtyBounds();\n this._stage.afterNextRender(this._handleAfterNextRender);\n\n if (immediately) {\n this._stage.render();\n\n this._option.performanceHook?.afterVRenderDraw?.(this._compileChart.getOption().globalInstance);\n }\n }\n }\n\n renderMarks() {\n if (!this._hasCommitedMark()) {\n return;\n }\n\n log(`--- start of renderMarks(${this._count}) ---`);\n this.clearProgressive();\n\n // 更新所有的mark\n this._rootMarks.forEach(mark => {\n mark.render();\n });\n\n if (this._layoutState === LayoutState.before) {\n // 需要更新布局\n this._layoutState = LayoutState.layouting;\n this._compileChart?.onLayout();\n this._layoutState = LayoutState.reevaluate;\n\n if (this._hasCommitedMark()) {\n // 第二次更新所有的mark\n this._rootMarks.forEach(mark => {\n mark.render();\n });\n }\n this.handleLayoutEnd();\n }\n\n this.findProgressiveMarks();\n\n // update stage animation state\n this.updateStateAnimation();\n\n this._doRender(true);\n this.doPreProgressive();\n\n log(`--- start of renderMarks(${this._count}) ---`);\n this._count++;\n }\n\n reuseOrMorphing(morphConfig: IMorphConfig = {}) {\n const { reuse = true, morph = true, morphAll = false, animation = {}, enableExitAnimation = false } = morphConfig;\n const newMarks = findSimpleMarks(this._rootMarks);\n const { update, exit } = diffMarks(this._cachedMarks, newMarks, { morph, morphAll, reuse });\n\n update.forEach(({ prev, next }) => {\n // const enableMarkMorphConfig =\n // prev.every(mark => mark.getMarkConfig().morph) && next.every(mark => mark.getMarkConfig().morph);\n\n // 优先复用\n if (reuse && prev.length === 1 && next.length === 1 && prev[0].type === next[0].type) {\n next[0].reuse(prev[0]);\n } else {\n // 执行morphing\n const prevMark = prev.filter(item => item.getMarkConfig().morph)[0];\n prevMark &&\n next.forEach(item => {\n item.getMarkConfig().morph && item.prepareMorph(prevMark);\n });\n }\n });\n\n // todo 离场元素执行exit动画\n exit.forEach(({ prev }) => {\n prev.forEach(m => {\n m.removeProduct();\n });\n });\n }\n\n render(morphConfig?: IMorphConfig) {\n if (this._released) {\n return;\n }\n this.clearNextRender();\n\n this.initView();\n if (!this._stage) {\n return;\n }\n\n const { width, height } = this._rootGroup.attribute;\n\n // 更新rootGroup的宽高\n if (this._width !== width || this._height !== height) {\n this._rootGroup.setAttributes({ width: this._width, height: this._height });\n }\n\n this.renderMarks();\n if (this.clearNextRender()) {\n this.renderMarks();\n }\n }\n\n setStageAnimationConfig(config: Partial<MarkAnimationSpec>) {\n // 封装options,批量添加一些默认参数\n const animationConfig: Partial<MarkAnimationSpec> = {};\n\n Object.keys(config).forEach(key => {\n const value = (config as any)[key];\n if (isArray(value)) {\n if (key === 'disappear') {\n (animationConfig as any)[key] = value.map(item => {\n if (isClass(item.callBack)) {\n return {\n ...item,\n custom: item.callBack\n };\n }\n return {\n ...item,\n type: BuiltIn_DISAPPEAR_ANIMATE_NAME,\n customParameters: {\n callBack: item.callBack\n }\n };\n });\n } else {\n (animationConfig as any)[key] = value.map(item => {\n const options = item!.options ?? {};\n\n return {\n ...item,\n options: (...args: any[]) => {\n const _options = typeof options === 'function' ? options(...args) : options;\n return {\n ..._options\n };\n }\n };\n });\n }\n } else {\n (animationConfig as any)[key] = {\n ...(config as any)[key]\n };\n }\n });\n this._stateAnimationConfig = animationConfig;\n }\n\n updateStateAnimation() {\n const allMarks: IMark[] = [];\n this._rootMarks.forEach(mark => {\n traverseGroupMark(mark, m => {\n allMarks.push(m);\n });\n });\n const markAnimationStates = allMarks.map(mark => mark.getAnimationState());\n const animationState = markAnimationStates.every(state => state === AnimationStateEnum.appear)\n ? AnimationStateEnum.appear\n : markAnimationStates.every(state => state === AnimationStateEnum.disappear)\n ? AnimationStateEnum.disappear\n : AnimationStateEnum.none;\n if (!this._stage.context) {\n this._stage.context = {};\n }\n this._stage.context.animationState = animationState;\n }\n\n updateViewBox(viewBox: IBoundsLike, reRender: boolean = true) {\n if (!this._stage) {\n return;\n }\n const prevViewBox = this._stage.viewBox;\n if (\n viewBox &&\n (!prevViewBox ||\n prevViewBox.x1 !== viewBox.x1 ||\n prevViewBox.y1 !== viewBox.y1 ||\n prevViewBox.x2 !== viewBox.x2 ||\n prevViewBox.y2 !== viewBox.y2)\n ) {\n (this._stage as any).setViewBox(viewBox, reRender);\n }\n }\n\n resize(width: number, height: number, reRender: boolean = true) {\n if (!this._stage) {\n return;\n }\n const hasChange = this._width !== width || this._height !== height;\n\n this._width = width;\n this._height = height;\n\n if (hasChange) {\n this._stage.resize(width, height);\n this._commitedAll();\n\n // todo resize\n if (reRender) {\n this.render({ morph: false });\n }\n }\n }\n\n setBackground(color: IColor) {\n if (this._stage) {\n this._stage.background = color;\n }\n }\n\n setSize(width: number, height: number) {\n this._width = width;\n this._height = height;\n if (!this._stage) {\n return;\n }\n\n // todo set size of stage\n }\n\n setViewBox(viewBox: IBoundsLike, reRender: boolean = true) {\n this.updateViewBox(viewBox, reRender);\n }\n\n addEventListener(\n source: EventSourceType,\n type: string,\n callback: (params: CompilerListenerParameters) => void\n ): void {\n // TODO: 需要明确一下 interactive 的作用范围,同时考虑是否存在非交互行为的事件以及是否需要生效\n if (this._option.interactive === false) {\n return;\n }\n if (source === Event_Source_Type.chart) {\n const rootGroup = this.getRootGroup();\n const wrappedCallback = function (event: any) {\n const graphic = event.target;\n let markGraphic: IMarkGraphic = null;\n\n if (graphic) {\n if (isValid(graphic.context)) {\n markGraphic = graphic;\n } else {\n markGraphic = findMarkGraphic(rootGroup, graphic) as unknown as IMarkGraphic;\n }\n }\n const context = (markGraphic?.context ?? {}) as Partial<IGraphicContext>;\n const markId = isValid(context.markId) ? context.markId : null;\n const modelId = isValid(context.modelId) ? context.modelId : null;\n const modelUserId = isValid(context.modelUserId) ? context.modelUserId : null;\n const markUserId = isValid(context.markUserId) ? context.markUserId : null;\n\n const params: CompilerListenerParameters = {\n event,\n type,\n source,\n item: markGraphic,\n datum: getDatumOfGraphic(markGraphic), // 是否要区分图元\n markId,\n modelId,\n markUserId,\n modelUserId\n };\n callback.call(null, params);\n }.bind(this);\n this._viewListeners.set(callback, { type, callback: wrappedCallback });\n // 如果 view 已经初始化则立刻挂载监听\n // FIXME: 目前 vgrammar 类型声明没有对齐,事件相关类型声明并没有使用 SceneItem\n //todo\n this._stage?.addEventListener(type, wrappedCallback as any);\n } else if (source === Event_Source_Type.window) {\n const wrappedCallback = function wrappedCallback(event: any) {\n // TODO: vgrammar 暂未提供基于事件直接筛选相应 mark 的能力,这里无法获取到相应的 item\n const params: CompilerListenerParameters = {\n event,\n type,\n source,\n item: null,\n datum: null,\n markId: null,\n modelId: null,\n markUserId: null,\n modelUserId: null\n };\n callback.call(null, params);\n }.bind(this);\n this._windowListeners.set(callback, { type, callback: wrappedCallback });\n const windowObject = this._getGlobalThis();\n windowObject?.addEventListener(type, wrappedCallback);\n } else if (source === Event_Source_Type.canvas) {\n const wrappedCallback = function wrappedCallback(event: any) {\n // TODO: vgrammar 暂未提供基于事件直接筛选相应 mark 的能力,这里无法获取到相应的 item\n const params: CompilerListenerParameters = {\n event,\n type,\n source,\n item: null,\n datum: null,\n markId: null,\n modelId: null,\n markUserId: null,\n modelUserId: null\n };\n callback.call(null, params);\n }.bind(this);\n this._canvasListeners.set(callback, { type, callback: wrappedCallback });\n const canvasObject = this.getStage()?.window;\n canvasObject?.addEventListener(type, wrappedCallback);\n }\n }\n\n removeEventListener(\n source: EventSourceType,\n type: string,\n callback: (params: CompilerListenerParameters) => void\n ): void {\n if (this._option.interactive === false) {\n return;\n }\n if (source === Event_Source_Type.chart) {\n const wrappedCallback = this._viewListeners.get(callback)?.callback;\n wrappedCallback && this._stage?.removeEventListener(type, wrappedCallback);\n this._viewListeners.delete(callback);\n } else if (source === Event_Source_Type.window) {\n const windowObject = this._getGlobalThis();\n const wrappedCallback = this._windowListeners.get(callback)?.callback;\n wrappedCallback && windowObject?.removeEventListener(type, wrappedCallback);\n this._windowListeners.delete(callback);\n } else if (source === Event_Source_Type.canvas) {\n const canvasObject = this.getStage()?.window;\n const wrappedCallback = this._canvasListeners.get(callback)?.callback;\n canvasObject && wrappedCallback && canvasObject?.removeEventListener(type, wrappedCallback);\n this._canvasListeners.delete(callback);\n }\n }\n\n protected releaseEvent(): void {\n const stage = this.getStage();\n\n if (stage) {\n stage.hooks.afterRender.unTap('chart-event', this.handleStageRender);\n }\n\n // 相应的事件remove在model中完成\n this._viewListeners.clear();\n this._windowListeners.clear();\n this._canvasListeners.clear();\n }\n\n release(): void {\n this.clearNextRender();\n this.releaseEvent();\n this._option = this._container = null as any;\n // vgrammar release\n this.releaseGrammar(true);\n\n if (this._stage !== this._option?.stage) {\n // don't release the stage created by outside\n this._stage.release();\n }\n this._stage = null;\n\n this.isInited = false;\n this._compileChart = null;\n this._released = true;\n }\n\n /**\n * 释放VGrammar\n * @param removeGraphicItems 是否删除场景元素,在同步渲染,并且无动画时,必须设置为true,否则有绘图残留\n */\n releaseGrammar(removeGraphicItems: boolean = false) {\n // this._releaseModel();\n if (removeGraphicItems) {\n // 彻底删除图形\n this._rootMarks.forEach(g => {\n traverseGroupMark(\n g,\n m => {\n m.removeProduct();\n },\n null,\n true\n );\n });\n } else {\n this._cachedMarks = findSimpleMarks(this._rootMarks);\n }\n this._rootMarks = [];\n }\n\n // protected _releaseModel() {\n // // 释放model\n // Object.keys(this._model).forEach(type => {\n // Object.values((this._model as any)[type] as IProductMap<IGrammarItem>).forEach(grammarItemMap => {\n // Object.values(grammarItemMap).forEach((item: IGrammarItem) => {\n // item.removeProduct(true); // 保留 vgrammar 语法元素,下面一起清空\n // });\n // });\n // (this._model as any)[type] = {};\n // });\n // }\n\n addRootMark(mark: IMark) {\n if (!this._rootMarks.includes(mark)) {\n this._rootMarks.push(mark);\n }\n }\n\n getRootMarks() {\n return this._rootMarks;\n }\n\n removeRootMark(mark: IMark) {\n const index = this._rootMarks.findIndex(m => m === mark);\n\n if (index >= 0) {\n this._rootMarks.splice(index, 1);\n\n return true;\n }\n return false;\n }\n\n private _getGlobalThis() {\n return isTrueBrowser(this._option.mode) ? globalThis : this.getStage()?.window;\n }\n\n private _combineIncrementalLayers() {\n if (this._stage) {\n waitForAllSubLayers(this._stage).then(() => {\n // stage might be null in current tick\n if (this._stage) {\n this._stage.defaultLayer.combineSubLayer();\n }\n });\n }\n }\n\n private findProgressiveMarks() {\n const marks: IMark[] = [];\n\n this._rootMarks.forEach(mark => {\n traverseGroupMark(mark, m => {\n if (m.isProgressive()) {\n marks.push(m);\n }\n });\n });\n\n if (!marks.length) {\n this._progressiveMarks = null;\n return null;\n }\n\n this._progressiveMarks = marks;\n\n this._combineIncrementalLayers();\n\n return marks;\n }\n\n private doPreProgressive() {\n if (this._progressiveMarks && this._progressiveMarks.some(mark => mark.isDoingProgressive())) {\n const raf = vglobal.getSpecifiedRequestAnimationFrame(10);\n this._progressiveRafId = raf(this.handleProgressiveFrame);\n } else if (this._progressiveMarks && this._progressiveMarks.every(mark => mark.canAnimateAfterProgressive())) {\n this._progressiveMarks.forEach(mark => {\n mark.runAnimation();\n });\n } else if (this._progressiveMarks) {\n this._progressiveMarks = null;\n }\n }\n\n /** 监听frame事件,更新增量元素的mark */\n private handleProgressiveFrame = () => {\n if (this._progressiveMarks.length) {\n this._progressiveMarks.forEach(mark => {\n if (mark.isDoingProgressive()) {\n mark.renderProgressive();\n }\n });\n }\n\n this.doPreProgressive();\n };\n\n /** 清除 */\n private clearProgressive() {\n if (this._progressiveRafId) {\n const cancelRaf = vglobal.getSpecifiedCancelAnimationFrame(10);\n cancelRaf(this._progressiveRafId);\n }\n\n if (this._progressiveMarks && this._progressiveMarks.length) {\n this._progressiveMarks.forEach(entry => {\n entry.clearProgressive();\n });\n\n this._progressiveMarks = null;\n }\n }\n}\n"]}
@@ -6,7 +6,7 @@ import type { IMorphConfig } from '../../animation/spec';
6
6
  import type { IBoundsLike } from '@visactor/vutils';
7
7
  import type { EventSourceType, EventType } from '../../event/interface';
8
8
  import type { IMark, IMarkGraphic } from '../../mark/interface';
9
- import type { IRenderOption, LayoutState } from '../interface/compiler';
9
+ import type { LayoutState } from '../interface/compiler';
10
10
  import type { MarkAnimationSpec } from '../../animation/interface';
11
11
  export type CompilerListenerParameters = {
12
12
  type: EventType;
@@ -27,7 +27,6 @@ export interface IGrammarItemMap<T extends IGrammarItem> {
27
27
  }
28
28
  export type ICompilerModel = Record<GrammarType, IProductMap<IGrammarItem>>;
29
29
  export interface ICompiler {
30
- getOption: () => IRenderOption;
31
30
  isInited?: boolean;
32
31
  readonly stateAnimationConfig?: MarkAnimationSpec;
33
32
  getCanvas: () => HTMLCanvasElement | undefined;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/compile/interface/compilable-item.ts"],"names":[],"mappings":"AAwGA,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,4BAAa,CAAA;AACf,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB","file":"compilable-item.js","sourcesContent":["import type { StringOrNumber } from '../../typings';\nimport type { IColor, IGroup, IStage } from '@visactor/vrender-core';\nimport type { IChart } from '../../chart/interface/chart';\nimport type { IVChart, IVChartRenderOption } from '../../core/interface';\nimport type { IMorphConfig } from '../../animation/spec';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { EventSourceType, EventType } from '../../event/interface';\nimport type { IMark, IMarkGraphic } from '../../mark/interface';\nimport type { IRenderOption, LayoutState } from '../interface/compiler';\nimport type { MarkAnimationSpec } from '../../animation/interface';\n\nexport type CompilerListenerParameters = {\n type: EventType;\n event: Event;\n source: EventSourceType;\n item: IMarkGraphic | null;\n datum: any | null;\n markId: number | null;\n modelId: number | null;\n markUserId: StringOrNumber | null;\n modelUserId: StringOrNumber | null;\n};\n\nexport interface IProductMap<T extends IGrammarItem> {\n /** 编译产物 id 和对应的在 vchart 中的 GrammarItem */\n [productId: string]: IGrammarItemMap<T>;\n}\n\nexport interface IGrammarItemMap<T extends IGrammarItem> {\n /** GrammarItem id 和 对应的引用 */\n [id: number]: T;\n}\n\nexport type ICompilerModel = Record<GrammarType, IProductMap<IGrammarItem>>;\n\nexport interface ICompiler {\n getOption: () => IRenderOption;\n isInited?: boolean;\n readonly stateAnimationConfig?: MarkAnimationSpec;\n getCanvas: () => HTMLCanvasElement | undefined;\n getStage: () => IStage | undefined;\n compile: (ctx: { chart: IChart; vChart: IVChart }, option?: IVChartRenderOption) => void;\n clear: (ctx: { chart: IChart; vChart: IVChart }, removeGraphicItems?: boolean) => void;\n renderNextTick: (morphConfig?: IMorphConfig) => void;\n render: (morphConfig?: IMorphConfig) => void;\n setStageAnimationConfig: (config: Partial<MarkAnimationSpec>) => void;\n updateViewBox: (viewBox: IBoundsLike, reRender?: boolean) => void;\n resize: (width: number, height: number, reRender?: boolean) => void;\n setBackground: (color: IColor) => void;\n setSize: (width: number, height: number) => void;\n setViewBox: (viewBox: IBoundsLike, reRender?: boolean) => void;\n addEventListener: (\n source: EventSourceType,\n type: string,\n callback: (params: CompilerListenerParameters) => void\n ) => void;\n removeEventListener: (\n source: EventSourceType,\n type: string,\n callback: (params: CompilerListenerParameters) => void\n ) => void;\n release: () => void;\n releaseGrammar: (removeGraphicItems: boolean) => void;\n // addGrammarItem: (grammarItem: IGrammarItem) => void;\n // removeGrammarItem: (grammarItem: IGrammarItem, reserveVGrammarModel?: boolean) => void;\n\n addRootMark: (mark: IMark) => any;\n removeRootMark: (mark: IMark) => any;\n getRootMarks: () => IMark[];\n\n updateLayoutTag: () => void;\n getLayoutState: () => LayoutState;\n getRootGroup: () => IGroup;\n getChart: () => IChart;\n}\n\nexport interface ICompilable {\n /** 获取 compile 对象 */\n getCompiler: () => ICompiler;\n /** 获取 vgrammar view */\n getStage: () => IStage;\n\n /** 编译总入口 */\n compile: () => void;\n /** 编译所有 mark */\n compileMarks?: (group?: IGroup) => void;\n /** 编译所有 data */\n compileData?: () => void;\n\n /** 清除compile 内容入口 */\n clear?: () => void;\n\n /** 全部编译完成 lift circle */\n afterCompile?: () => void;\n\n /** 释放总入口 */\n release: () => void;\n}\n\nexport interface ICompilableInitOption {\n /** 编译对象 应当由外部提供 */\n getCompiler: () => ICompiler;\n}\n\nexport enum GrammarType {\n data = 'data',\n mark = 'mark'\n}\n\nexport interface ITransformSpec {\n type: string;\n [key: string]: any;\n}\n\nexport interface IGrammarItem extends ICompilable {\n id: number;\n /** 生成语法元素名称 */\n generateProductId: () => string;\n /** 获取语法元素名称 */\n getProductId: () => string;\n /** 删除已编译的语法元素 */\n removeProduct: () => void;\n // transform\n setTransform: (transform: ITransformSpec[]) => void;\n}\n\nexport type GrammarItemInitOption = ICompilableInitOption;\n\nexport type GrammarItemCompileOption = Record<string, any>;\n\nexport type StateValueMap = Record<string, unknown>;\n"]}
1
+ {"version":3,"sources":["../src/compile/interface/compilable-item.ts"],"names":[],"mappings":"AAuGA,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,4BAAa,CAAA;AACf,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB","file":"compilable-item.js","sourcesContent":["import type { StringOrNumber } from '../../typings';\nimport type { IColor, IGroup, IStage } from '@visactor/vrender-core';\nimport type { IChart } from '../../chart/interface/chart';\nimport type { IVChart, IVChartRenderOption } from '../../core/interface';\nimport type { IMorphConfig } from '../../animation/spec';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { EventSourceType, EventType } from '../../event/interface';\nimport type { IMark, IMarkGraphic } from '../../mark/interface';\nimport type { LayoutState } from '../interface/compiler';\nimport type { MarkAnimationSpec } from '../../animation/interface';\n\nexport type CompilerListenerParameters = {\n type: EventType;\n event: Event;\n source: EventSourceType;\n item: IMarkGraphic | null;\n datum: any | null;\n markId: number | null;\n modelId: number | null;\n markUserId: StringOrNumber | null;\n modelUserId: StringOrNumber | null;\n};\n\nexport interface IProductMap<T extends IGrammarItem> {\n /** 编译产物 id 和对应的在 vchart 中的 GrammarItem */\n [productId: string]: IGrammarItemMap<T>;\n}\n\nexport interface IGrammarItemMap<T extends IGrammarItem> {\n /** GrammarItem id 和 对应的引用 */\n [id: number]: T;\n}\n\nexport type ICompilerModel = Record<GrammarType, IProductMap<IGrammarItem>>;\n\nexport interface ICompiler {\n isInited?: boolean;\n readonly stateAnimationConfig?: MarkAnimationSpec;\n getCanvas: () => HTMLCanvasElement | undefined;\n getStage: () => IStage | undefined;\n compile: (ctx: { chart: IChart; vChart: IVChart }, option?: IVChartRenderOption) => void;\n clear: (ctx: { chart: IChart; vChart: IVChart }, removeGraphicItems?: boolean) => void;\n renderNextTick: (morphConfig?: IMorphConfig) => void;\n render: (morphConfig?: IMorphConfig) => void;\n setStageAnimationConfig: (config: Partial<MarkAnimationSpec>) => void;\n updateViewBox: (viewBox: IBoundsLike, reRender?: boolean) => void;\n resize: (width: number, height: number, reRender?: boolean) => void;\n setBackground: (color: IColor) => void;\n setSize: (width: number, height: number) => void;\n setViewBox: (viewBox: IBoundsLike, reRender?: boolean) => void;\n addEventListener: (\n source: EventSourceType,\n type: string,\n callback: (params: CompilerListenerParameters) => void\n ) => void;\n removeEventListener: (\n source: EventSourceType,\n type: string,\n callback: (params: CompilerListenerParameters) => void\n ) => void;\n release: () => void;\n releaseGrammar: (removeGraphicItems: boolean) => void;\n // addGrammarItem: (grammarItem: IGrammarItem) => void;\n // removeGrammarItem: (grammarItem: IGrammarItem, reserveVGrammarModel?: boolean) => void;\n\n addRootMark: (mark: IMark) => any;\n removeRootMark: (mark: IMark) => any;\n getRootMarks: () => IMark[];\n\n updateLayoutTag: () => void;\n getLayoutState: () => LayoutState;\n getRootGroup: () => IGroup;\n getChart: () => IChart;\n}\n\nexport interface ICompilable {\n /** 获取 compile 对象 */\n getCompiler: () => ICompiler;\n /** 获取 vgrammar view */\n getStage: () => IStage;\n\n /** 编译总入口 */\n compile: () => void;\n /** 编译所有 mark */\n compileMarks?: (group?: IGroup) => void;\n /** 编译所有 data */\n compileData?: () => void;\n\n /** 清除compile 内容入口 */\n clear?: () => void;\n\n /** 全部编译完成 lift circle */\n afterCompile?: () => void;\n\n /** 释放总入口 */\n release: () => void;\n}\n\nexport interface ICompilableInitOption {\n /** 编译对象 应当由外部提供 */\n getCompiler: () => ICompiler;\n}\n\nexport enum GrammarType {\n data = 'data',\n mark = 'mark'\n}\n\nexport interface ITransformSpec {\n type: string;\n [key: string]: any;\n}\n\nexport interface IGrammarItem extends ICompilable {\n id: number;\n /** 生成语法元素名称 */\n generateProductId: () => string;\n /** 获取语法元素名称 */\n getProductId: () => string;\n /** 删除已编译的语法元素 */\n removeProduct: () => void;\n // transform\n setTransform: (transform: ITransformSpec[]) => void;\n}\n\nexport type GrammarItemInitOption = ICompilableInitOption;\n\nexport type GrammarItemCompileOption = Record<string, any>;\n\nexport type StateValueMap = Record<string, unknown>;\n"]}
@@ -4,7 +4,7 @@ import { Brush as BrushComponent } from '@visactor/vrender-components';
4
4
  import type { Maybe } from '@visactor/vutils';
5
5
  import type { IModelSpecInfo } from '../../model/interface';
6
6
  import type { IRegion } from '../../region/interface';
7
- import type { IGraphic, IPolygon } from '@visactor/vrender-core';
7
+ import type { IGraphic } from '@visactor/vrender-core';
8
8
  import type { ISeries } from '../../series/interface';
9
9
  import type { IMark, IMarkGraphic } from '../../mark/interface';
10
10
  import type { BrushInteractiveRangeAttr, IBrush, IBrushSpec } from './interface';
@@ -22,7 +22,6 @@ export declare class Brush<T extends IBrushSpec = IBrushSpec> extends BaseCompon
22
22
  protected _brushComponents: BrushComponent[];
23
23
  protected _relativeRegions: IRegion[];
24
24
  protected _linkedSeries: ISeries[];
25
- protected _operateMask: IPolygon;
26
25
  private _itemMap;
27
26
  private _linkedItemMap;
28
27
  protected _inBrushElementsMap: {
@@ -64,7 +63,6 @@ export declare class Brush<T extends IBrushSpec = IBrushSpec> extends BaseCompon
64
63
  };
65
64
  onLayoutEnd(): void;
66
65
  protected _updateBrushComponent(region: IRegion, componentIndex: number): void;
67
- protected _shouldEnableInteractive(): boolean;
68
66
  protected _createBrushComponent(region: IRegion, componentIndex: number): void;
69
67
  protected _getBrushInteractiveAttr(region: IRegion): BrushInteractiveRangeAttr;
70
68
  private _transformBrushedMarkAttr;
@@ -91,8 +89,5 @@ export declare class Brush<T extends IBrushSpec = IBrushSpec> extends BaseCompon
91
89
  protected _getNeedClearVRenderComponents(): IGraphic[];
92
90
  clearGraphic(): void;
93
91
  clear(): void;
94
- disableDimensionHover(): void;
95
- enableDimensionHover(): void;
96
- clearBrushStateAndMask(): void;
97
92
  }
98
93
  export declare const registerBrush: () => void;
@@ -24,8 +24,6 @@ import { brush } from "../../theme/builtin/common/component/brush";
24
24
 
25
25
  import { isReverse, statePointToData } from "../data-zoom/util";
26
26
 
27
- import { DimensionHoverEvent } from "../../event";
28
-
29
27
  const IN_BRUSH_STATE = "inBrush", OUT_BRUSH_STATE = "outOfBrush";
30
28
 
31
29
  export class Brush extends BaseComponent {
@@ -109,9 +107,6 @@ export class Brush extends BaseComponent {
109
107
  brushComponent.setAttributes(interactiveAttr), this._initMarkBrushState(componentIndex, ""),
110
108
  brushComponent.children[0].removeAllChild();
111
109
  }
112
- _shouldEnableInteractive() {
113
- return !1 !== this.getOption().getCompiler().getOption().interactive;
114
- }
115
110
  _createBrushComponent(region, componentIndex) {
116
111
  var _a, _b;
117
112
  const interactiveAttr = this._getBrushInteractiveAttr(region), brush = new BrushComponent(Object.assign(Object.assign(Object.assign({
@@ -123,36 +118,34 @@ export class Brush extends BaseComponent {
123
118
  brush.id = null !== (_b = this._spec.id) && void 0 !== _b ? _b : `brush-${this.id}`,
124
119
  this.getContainer().add(brush), this._brushComponents.push(brush), this._cacheInteractiveRangeAttrs.push(interactiveAttr),
125
120
  brush.addEventListener(BrushEvent.brushActive, (e => {
126
- this._initMarkBrushState(componentIndex, "outOfBrush"), this._emitEvent(ChartEvent.brushActive, region, e);
121
+ this._initMarkBrushState(componentIndex, "outOfBrush"), this._emitEvent(ChartEvent.brushActive, region);
127
122
  })), brush.addEventListener(BrushEvent.drawStart, (e => {
128
- this._spec.disableDimensionHoverWhenBrushing && this.disableDimensionHover(), this._setRegionMarkPickable(region, !0),
129
- this._emitEvent(ChartEvent.brushStart, region, e);
123
+ this._setRegionMarkPickable(region, !0), this._emitEvent(ChartEvent.brushStart, region);
130
124
  })), brush.addEventListener(BrushEvent.moveStart, (e => {
131
- this._spec.disableDimensionHoverWhenBrushing && this.disableDimensionHover(), this._setRegionMarkPickable(region, !0),
132
- this._emitEvent(ChartEvent.brushStart, region, e);
125
+ this._setRegionMarkPickable(region, !0), this._emitEvent(ChartEvent.brushStart, region);
133
126
  })), brush.addEventListener(BrushEvent.drawing, (e => {
134
- this._setRegionMarkPickable(region, !1), this._handleBrushChange(region, e), this._emitEvent(ChartEvent.brushChange, region, e);
127
+ this._setRegionMarkPickable(region, !1), this._handleBrushChange(region, e), this._emitEvent(ChartEvent.brushChange, region);
135
128
  })), brush.addEventListener(BrushEvent.moving, (e => {
136
- this._setRegionMarkPickable(region, !1), this._handleBrushChange(region, e), this._emitEvent(ChartEvent.brushChange, region, e);
129
+ this._setRegionMarkPickable(region, !1), this._handleBrushChange(region, e), this._emitEvent(ChartEvent.brushChange, region);
137
130
  })), brush.addEventListener(BrushEvent.brushClear, (e => {
138
- this._spec.disableDimensionHoverWhenBrushing && this.enableDimensionHover(), this._setRegionMarkPickable(region, !0),
139
- this._initMarkBrushState(componentIndex, ""), this._emitEvent(ChartEvent.brushClear, region, e);
131
+ this._setRegionMarkPickable(region, !0), this._initMarkBrushState(componentIndex, ""),
132
+ this._emitEvent(ChartEvent.brushClear, region);
140
133
  })), brush.addEventListener(BrushEvent.drawEnd, (e => {
141
134
  var _a;
142
- this.enableDimensionHover(), this._setRegionMarkPickable(region, !0);
135
+ this._setRegionMarkPickable(region, !0);
143
136
  const {operateMask: operateMask} = e.detail, {updateElementsState: updateElementsState = !0} = this._spec;
144
137
  if (null === (_a = this._spec) || void 0 === _a ? void 0 : _a.onBrushEnd) !0 === this._spec.onBrushEnd(e) ? (this.clearGraphic(),
145
- this._initMarkBrushState(componentIndex, ""), this._emitEvent(ChartEvent.brushClear, region, e)) : (this._spec.onBrushEnd(e),
146
- this._emitEvent(ChartEvent.brushEnd, region, e)); else {
138
+ this._initMarkBrushState(componentIndex, ""), this._emitEvent(ChartEvent.brushClear, region)) : (this._spec.onBrushEnd(e),
139
+ this._emitEvent(ChartEvent.brushEnd, region)); else {
147
140
  const inBrushData = this._extendDataInBrush(this._inBrushElementsMap);
148
141
  (!this._spec.zoomWhenEmpty && inBrushData.length > 0 || !updateElementsState) && this._setAxisAndDataZoom(operateMask, region),
149
- this._emitEvent(ChartEvent.brushEnd, region, e);
142
+ this._emitEvent(ChartEvent.brushEnd, region);
150
143
  }
151
144
  })), brush.addEventListener(BrushEvent.moveEnd, (e => {
152
- this.enableDimensionHover(), this._setRegionMarkPickable(region, !0);
145
+ this._setRegionMarkPickable(region, !0);
153
146
  const {operateMask: operateMask} = e.detail, {updateElementsState: updateElementsState = !0} = this._spec, inBrushData = this._extendDataInBrush(this._inBrushElementsMap);
154
147
  (!this._spec.zoomWhenEmpty && inBrushData.length > 0 || updateElementsState) && this._setAxisAndDataZoom(operateMask, region),
155
- this._emitEvent(ChartEvent.brushEnd, region, e);
148
+ this._emitEvent(ChartEvent.brushEnd, region);
156
149
  }));
157
150
  }
158
151
  _getBrushInteractiveAttr(region) {
@@ -165,8 +158,7 @@ export class Brush extends BaseComponent {
165
158
  maxX: seriesRegionEndX
166
159
  },
167
160
  xRange: [ seriesRegionStartX, seriesRegionEndX ],
168
- yRange: [ seriesRegionStartY, seriesRegionEndY ],
169
- interactive: this._shouldEnableInteractive()
161
+ yRange: [ seriesRegionStartY, seriesRegionEndY ]
170
162
  };
171
163
  }
172
164
  _transformBrushedMarkAttr(brushedStyle) {
@@ -178,9 +170,7 @@ export class Brush extends BaseComponent {
178
170
  Object.assign(Object.assign({}, transformToGraphic(brushedStyle)), styleResult);
179
171
  }
180
172
  _handleBrushChange(region, e) {
181
- const {operateMask: operateMask} = e.detail;
182
- this._operateMask = operateMask;
183
- const {updateElementsState: updateElementsState = !0} = this._spec;
173
+ const {operateMask: operateMask} = e.detail, {updateElementsState: updateElementsState = !0} = this._spec;
184
174
  updateElementsState && (this._reconfigItem(operateMask, region), this._reconfigLinkedItem(operateMask, region));
185
175
  }
186
176
  _extendDataInBrush(elementsMap) {
@@ -195,7 +185,7 @@ export class Brush extends BaseComponent {
195
185
  for (const elementKey in elementsMap) data.push(null === (_b = null === (_a = elementsMap[elementKey].context) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b[0]);
196
186
  return data;
197
187
  }
198
- _emitEvent(eventType, region, e) {
188
+ _emitEvent(eventType, region) {
199
189
  var _a;
200
190
  this.event.emit(eventType, {
201
191
  model: this,
@@ -212,8 +202,7 @@ export class Brush extends BaseComponent {
212
202
  linkedOutOfBrushElementsMap: this._linkedOutOfBrushElementsMap,
213
203
  zoomRecord: this._zoomRecord
214
204
  },
215
- vchart: null === (_a = this._option) || void 0 === _a ? void 0 : _a.globalInstance,
216
- event: e
205
+ vchart: null === (_a = this._option) || void 0 === _a ? void 0 : _a.globalInstance
217
206
  });
218
207
  }
219
208
  _reconfigItem(operateMask, region) {
@@ -361,19 +350,6 @@ export class Brush extends BaseComponent {
361
350
  })), this._brushComponents = null;
362
351
  }
363
352
  }
364
- disableDimensionHover() {
365
- DimensionHoverEvent.disableDimensionEvent(!0), this._option.getChart().getComponentsByKey("crosshair").forEach((crosshair => crosshair.enable = !1)),
366
- this._option.globalInstance.setTooltipHandler((() => {}));
367
- }
368
- enableDimensionHover() {
369
- DimensionHoverEvent.disableDimensionEvent(!1), this._option.getChart().getComponentsByKey("crosshair").forEach((crosshair => crosshair.enable = !0)),
370
- this._option.globalInstance.setTooltipHandler(void 0);
371
- }
372
- clearBrushStateAndMask() {
373
- this._relativeRegions.forEach(((region, componentIndex) => {
374
- this._initMarkBrushState(componentIndex, ""), this._brushComponents[componentIndex].children[0].removeAllChild();
375
- }));
376
- }
377
353
  }
378
354
 
379
355
  Brush.type = ComponentTypeEnum.brush, Brush.builtInTheme = {