@visactor/vchart 2.0.13-alpha.0 → 2.0.13-alpha.10

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 (112) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.es.js +110 -46
  3. package/build/index.js +110 -46
  4. package/build/index.min.js +2 -2
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/animation/callback-disappear.js +2 -1
  7. package/cjs/animation/index.js +1 -2
  8. package/cjs/compile/compiler.d.ts +1 -0
  9. package/cjs/compile/compiler.js +4 -1
  10. package/cjs/compile/compiler.js.map +1 -1
  11. package/cjs/compile/grammar-item.js +1 -1
  12. package/cjs/compile/interface/compilable-item.d.ts +2 -1
  13. package/cjs/compile/interface/compilable-item.js.map +1 -1
  14. package/cjs/compile/morph.js +1 -1
  15. package/cjs/compile/state-manager.js +1 -1
  16. package/cjs/compile/util.js +1 -1
  17. package/cjs/component/brush/brush.d.ts +4 -1
  18. package/cjs/component/brush/brush.js +31 -14
  19. package/cjs/component/brush/brush.js.map +1 -1
  20. package/cjs/component/brush/interface.d.ts +3 -1
  21. package/cjs/component/brush/interface.js.map +1 -1
  22. package/cjs/component/crosshair/interface/spec.d.ts +1 -0
  23. package/cjs/component/crosshair/interface/spec.js.map +1 -1
  24. package/cjs/component/tooltip/interface/common.d.ts +1 -0
  25. package/cjs/component/tooltip/interface/common.js.map +1 -1
  26. package/cjs/component/tooltip/processor/base.js +1 -1
  27. package/cjs/component/tooltip/processor/base.js.map +1 -1
  28. package/cjs/component/tooltip/tooltip.d.ts +1 -0
  29. package/cjs/component/tooltip/tooltip.js +3 -2
  30. package/cjs/component/tooltip/tooltip.js.map +1 -1
  31. package/cjs/component/util.js +1 -2
  32. package/cjs/constant/data.js +2 -1
  33. package/cjs/constant/scroll-bar.js +1 -2
  34. package/cjs/core/index.js +2 -1
  35. package/cjs/core/interface.d.ts +9 -1
  36. package/cjs/core/interface.js +1 -1
  37. package/cjs/core/interface.js.map +1 -1
  38. package/cjs/core/util.js +1 -1
  39. package/cjs/core/vchart.d.ts +4 -0
  40. package/cjs/core/vchart.js +11 -2
  41. package/cjs/core/vchart.js.map +1 -1
  42. package/cjs/env/env.js +1 -1
  43. package/cjs/env/index.js +1 -1
  44. package/cjs/event/event.js +1 -1
  45. package/cjs/event/event.js.map +1 -1
  46. package/cjs/event/events/dimension/dimension-hover.js +4 -2
  47. package/cjs/event/events/dimension/dimension-hover.js.map +1 -1
  48. package/cjs/interaction/interface/trigger.d.ts +1 -1
  49. package/cjs/interaction/interface/trigger.js.map +1 -1
  50. package/cjs/interaction/triggers/base.d.ts +3 -2
  51. package/cjs/interaction/triggers/base.js +2 -2
  52. package/cjs/interaction/triggers/base.js.map +1 -1
  53. package/cjs/interaction/triggers/element-highlight.d.ts +3 -3
  54. package/cjs/interaction/triggers/element-highlight.js +11 -11
  55. package/cjs/interaction/triggers/element-highlight.js.map +1 -1
  56. package/cjs/interaction/triggers/element-select.d.ts +3 -3
  57. package/cjs/interaction/triggers/element-select.js +13 -13
  58. package/cjs/interaction/triggers/element-select.js.map +1 -1
  59. package/esm/animation/callback-disappear.js +2 -1
  60. package/esm/animation/index.js +1 -2
  61. package/esm/compile/compiler.d.ts +1 -0
  62. package/esm/compile/compiler.js +4 -1
  63. package/esm/compile/compiler.js.map +1 -1
  64. package/esm/compile/grammar-item.js +1 -1
  65. package/esm/compile/interface/compilable-item.d.ts +2 -1
  66. package/esm/compile/interface/compilable-item.js.map +1 -1
  67. package/esm/compile/morph.js +1 -1
  68. package/esm/compile/state-manager.js +1 -1
  69. package/esm/compile/util.js +1 -1
  70. package/esm/component/brush/brush.d.ts +4 -1
  71. package/esm/component/brush/brush.js +31 -14
  72. package/esm/component/brush/brush.js.map +1 -1
  73. package/esm/component/brush/interface.d.ts +3 -1
  74. package/esm/component/brush/interface.js.map +1 -1
  75. package/esm/component/crosshair/interface/spec.d.ts +1 -0
  76. package/esm/component/crosshair/interface/spec.js.map +1 -1
  77. package/esm/component/tooltip/interface/common.d.ts +1 -0
  78. package/esm/component/tooltip/interface/common.js.map +1 -1
  79. package/esm/component/tooltip/processor/base.js +1 -1
  80. package/esm/component/tooltip/processor/base.js.map +1 -1
  81. package/esm/component/tooltip/tooltip.d.ts +1 -0
  82. package/esm/component/tooltip/tooltip.js +3 -2
  83. package/esm/component/tooltip/tooltip.js.map +1 -1
  84. package/esm/component/util.js +1 -2
  85. package/esm/constant/data.js +2 -1
  86. package/esm/constant/scroll-bar.js +1 -2
  87. package/esm/core/index.js +2 -1
  88. package/esm/core/interface.d.ts +9 -1
  89. package/esm/core/interface.js +1 -1
  90. package/esm/core/interface.js.map +1 -1
  91. package/esm/core/util.js +1 -1
  92. package/esm/core/vchart.d.ts +4 -0
  93. package/esm/core/vchart.js +11 -2
  94. package/esm/core/vchart.js.map +1 -1
  95. package/esm/env/env.js +1 -1
  96. package/esm/env/index.js +1 -1
  97. package/esm/event/event.js +1 -1
  98. package/esm/event/event.js.map +1 -1
  99. package/esm/event/events/dimension/dimension-hover.js +4 -2
  100. package/esm/event/events/dimension/dimension-hover.js.map +1 -1
  101. package/esm/interaction/interface/trigger.d.ts +1 -1
  102. package/esm/interaction/interface/trigger.js.map +1 -1
  103. package/esm/interaction/triggers/base.d.ts +3 -2
  104. package/esm/interaction/triggers/base.js +2 -2
  105. package/esm/interaction/triggers/base.js.map +1 -1
  106. package/esm/interaction/triggers/element-highlight.d.ts +3 -3
  107. package/esm/interaction/triggers/element-highlight.js +11 -11
  108. package/esm/interaction/triggers/element-highlight.js.map +1 -1
  109. package/esm/interaction/triggers/element-select.d.ts +3 -3
  110. package/esm/interaction/triggers/element-select.js +13 -13
  111. package/esm/interaction/triggers/element-select.js.map +1 -1
  112. package/package.json +7 -7
@@ -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(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(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"]}
@@ -9,7 +9,8 @@ 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) return;
12
+ var _a, _b, _c, _d;
13
+ if (!params || (null === (_d = null === (_c = null === (_b = null === (_a = params.chart) || void 0 === _a ? void 0 : _a.getOption()) || void 0 === _b ? void 0 : _b.globalInstance) || void 0 === _c ? void 0 : _c.disableDimensionHoverEvent) || void 0 === _d ? void 0 : _d.call(_c))) return;
13
14
  const x = params.event.viewX, y = params.event.viewY, targetDimensionInfo = this.getTargetDimensionInfo(x, y);
14
15
  null === targetDimensionInfo && null !== this._cacheDimensionInfo ? (this._callback.call(null, Object.assign(Object.assign({}, params), {
15
16
  action: "leave",
@@ -23,7 +24,8 @@ class DimensionHoverEvent extends base_1.DimensionEvent {
23
24
  dimensionInfo: targetDimensionInfo.slice()
24
25
  })), this._cacheDimensionInfo = targetDimensionInfo);
25
26
  }, this.onMouseOut = params => {
26
- params && (this._callback.call(null, Object.assign(Object.assign({}, params), {
27
+ var _a, _b, _c, _d;
28
+ params && !(null === (_d = null === (_c = null === (_b = null === (_a = params.chart) || void 0 === _a ? void 0 : _a.getOption()) || void 0 === _b ? void 0 : _b.globalInstance) || void 0 === _c ? void 0 : _c.disableDimensionHoverEvent) || void 0 === _d ? void 0 : _d.call(_c)) && (this._callback.call(null, Object.assign(Object.assign({}, params), {
27
29
  action: "leave",
28
30
  dimensionInfo: this._cacheDimensionInfo ? this._cacheDimensionInfo.slice() : []
29
31
  })), this._cacheDimensionInfo = null);
@@ -1 +1 @@
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"]}
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 || params.chart?.getOption()?.globalInstance?.disableDimensionHoverEvent?.()) {\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 || params.chart?.getOption()?.globalInstance?.disableDimensionHoverEvent?.()) {\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"]}
@@ -10,7 +10,7 @@ export interface ITrigger<TriggerOptions extends IBaseTriggerOptions = any> {
10
10
  registerMark: (mark: IMark | IMark[]) => void;
11
11
  release: () => void;
12
12
  init: () => void;
13
- start: (g: any) => void;
13
+ start: (g: any, e?: BaseEventParams) => void;
14
14
  reset: (g?: IMarkGraphic) => void;
15
15
  getStartState: () => string;
16
16
  getResetState: () => string;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interaction/interface/trigger.ts"],"names":[],"mappings":"","file":"trigger.js","sourcesContent":["import type { GraphicEventType } from '@visactor/vrender-core';\nimport type { IMark, IMarkGraphic } from '../../mark/interface/common';\nimport type { RenderMode } from '../../typings/spec/common';\nimport type { IInteraction } from './common';\nimport type { BaseEventParams } from '../../event/interface';\n\nexport type ITriggerEventHandler = (e: any, markGraphic?: IMarkGraphic) => void;\n\nexport interface ITrigger<TriggerOptions extends IBaseTriggerOptions = any> {\n readonly options: TriggerOptions;\n readonly type: string;\n registerMark: (mark: IMark | IMark[]) => void;\n release: () => void;\n\n init: () => void;\n start: (g: any) => void;\n reset: (g?: IMarkGraphic) => void;\n getStartState: () => string;\n getResetState: () => string;\n updateMarkIdByState: (states: string[]) => void;\n getMarkIdByState: () => Record<string, number[]>;\n getMarks: () => IMark[];\n getMarksByState: (state: string) => IMark[];\n}\n\nexport interface IBaseTriggerOptions {\n type?: string;\n /**\n * 需要处理状态的所有图元\n */\n marks?: IMark[];\n mode?: RenderMode;\n event: {\n on: (eType: string, callback: ITriggerEventHandler) => void;\n off: (eType: string, callback?: ITriggerEventHandler) => void;\n emit: (eType: string, params: any) => void;\n };\n interaction: IInteraction;\n\n id?: string;\n\n shouldStart?: (e: any) => boolean;\n\n shouldUpdate?: (e: any) => boolean;\n\n shouldEnd?: (e: any) => boolean;\n\n shouldReset?: (e: any) => boolean;\n\n onStart?: (e: any) => boolean;\n\n onUpdate?: (e: any) => boolean;\n\n onEnd?: (e: any) => boolean;\n\n onReset?: (e: any) => boolean;\n}\n\nexport type IElementSelectTriggerOff = GraphicEventType | string | 'empty' | 'none' | number;\n\nexport interface IElementSelectOptions extends IBaseTriggerOptions {\n /**\n * the trigger event name\n */\n trigger?: GraphicEventType | GraphicEventType[];\n /**\n * the selected state name\n */\n state?: string;\n /**\n * the non-selected state name\n */\n reverseState?: string;\n /**\n * the reset trigger event name\n */\n triggerOff?: IElementSelectTriggerOff | IElementSelectTriggerOff[];\n /**\n * whether or not support multiple selected\n */\n isMultiple?: boolean;\n}\n\nexport interface IDimensionHoverOptions extends IBaseTriggerOptions {\n /**\n * the selected state name\n */\n state?: string;\n /**\n * the non-selected state name\n */\n reverseState?: string;\n\n trigger?: string;\n}\n\nexport interface IElementActiveOptions extends IBaseTriggerOptions {\n /**\n * the trigger event name\n */\n trigger?: GraphicEventType | GraphicEventType[];\n /**\n * the reset trigger event name\n */\n triggerOff?: GraphicEventType | GraphicEventType[] | 'none';\n /**\n * the active state name\n */\n state?: string;\n}\n\nexport interface IElementHighlightOptions extends IBaseTriggerOptions {\n /**\n * the trigger event name\n */\n trigger?: GraphicEventType;\n /**\n * the reset trigger event name\n */\n triggerOff?: GraphicEventType | 'none';\n /**\n * the highlight state name\n */\n highlightState?: string;\n /**\n * the blur state name\n */\n blurState?: string;\n}\n\nexport interface IElementFilterOptions {\n /**\n * the filter type of element\n */\n filterType?: 'key' | 'groupKey';\n /**\n * the field to be filtered\n */\n filterField?: string;\n}\n\n/**\n * the interaction to set the active state of specified marks trigger by legend\n */\nexport interface IElementActiveByLegendOptions extends IBaseTriggerOptions, IElementFilterOptions {\n /**\n * the active state name\n */\n state?: string;\n}\n\n/**\n * the interaction to set the active state of specified marks trigger by legend\n */\nexport interface IElementHighlightByLegendOptions extends IBaseTriggerOptions, IElementFilterOptions {\n /**\n * the highlight state name\n */\n highlightState?: string;\n /**\n * the blur state name\n */\n blurState?: string;\n}\n\nexport interface IElementHighlightByNameOptions extends IElementHighlightByLegendOptions {\n graphicName?: string | string[];\n /**\n * the trigger event name\n */\n trigger?: GraphicEventType;\n /**\n * the reset trigger event name\n */\n triggerOff?: GraphicEventType | 'none';\n\n parseData?: (e: BaseEventParams) => any;\n}\n\nexport type IElementHighlightByGraphicNameOptions = IElementHighlightOptions;\n\nexport interface ITriggerConstructor<T extends IBaseTriggerOptions = IBaseTriggerOptions> {\n readonly type: string;\n\n new (options?: T): ITrigger<T>;\n}\n"]}
1
+ {"version":3,"sources":["../src/interaction/interface/trigger.ts"],"names":[],"mappings":"","file":"trigger.js","sourcesContent":["import type { GraphicEventType } from '@visactor/vrender-core';\nimport type { IMark, IMarkGraphic } from '../../mark/interface/common';\nimport type { RenderMode } from '../../typings/spec/common';\nimport type { IInteraction } from './common';\nimport type { BaseEventParams } from '../../event/interface';\n\nexport type ITriggerEventHandler = (e: any, markGraphic?: IMarkGraphic) => void;\n\nexport interface ITrigger<TriggerOptions extends IBaseTriggerOptions = any> {\n readonly options: TriggerOptions;\n readonly type: string;\n registerMark: (mark: IMark | IMark[]) => void;\n release: () => void;\n\n init: () => void;\n start: (g: any, e?: BaseEventParams) => void;\n reset: (g?: IMarkGraphic) => void;\n getStartState: () => string;\n getResetState: () => string;\n updateMarkIdByState: (states: string[]) => void;\n getMarkIdByState: () => Record<string, number[]>;\n getMarks: () => IMark[];\n getMarksByState: (state: string) => IMark[];\n}\n\nexport interface IBaseTriggerOptions {\n type?: string;\n /**\n * 需要处理状态的所有图元\n */\n marks?: IMark[];\n mode?: RenderMode;\n event: {\n on: (eType: string, callback: ITriggerEventHandler) => void;\n off: (eType: string, callback?: ITriggerEventHandler) => void;\n emit: (eType: string, params: any) => void;\n };\n interaction: IInteraction;\n\n id?: string;\n\n shouldStart?: (e: any) => boolean;\n\n shouldUpdate?: (e: any) => boolean;\n\n shouldEnd?: (e: any) => boolean;\n\n shouldReset?: (e: any) => boolean;\n\n onStart?: (e: any) => boolean;\n\n onUpdate?: (e: any) => boolean;\n\n onEnd?: (e: any) => boolean;\n\n onReset?: (e: any) => boolean;\n}\n\nexport type IElementSelectTriggerOff = GraphicEventType | string | 'empty' | 'none' | number;\n\nexport interface IElementSelectOptions extends IBaseTriggerOptions {\n /**\n * the trigger event name\n */\n trigger?: GraphicEventType | GraphicEventType[];\n /**\n * the selected state name\n */\n state?: string;\n /**\n * the non-selected state name\n */\n reverseState?: string;\n /**\n * the reset trigger event name\n */\n triggerOff?: IElementSelectTriggerOff | IElementSelectTriggerOff[];\n /**\n * whether or not support multiple selected\n */\n isMultiple?: boolean;\n}\n\nexport interface IDimensionHoverOptions extends IBaseTriggerOptions {\n /**\n * the selected state name\n */\n state?: string;\n /**\n * the non-selected state name\n */\n reverseState?: string;\n\n trigger?: string;\n}\n\nexport interface IElementActiveOptions extends IBaseTriggerOptions {\n /**\n * the trigger event name\n */\n trigger?: GraphicEventType | GraphicEventType[];\n /**\n * the reset trigger event name\n */\n triggerOff?: GraphicEventType | GraphicEventType[] | 'none';\n /**\n * the active state name\n */\n state?: string;\n}\n\nexport interface IElementHighlightOptions extends IBaseTriggerOptions {\n /**\n * the trigger event name\n */\n trigger?: GraphicEventType;\n /**\n * the reset trigger event name\n */\n triggerOff?: GraphicEventType | 'none';\n /**\n * the highlight state name\n */\n highlightState?: string;\n /**\n * the blur state name\n */\n blurState?: string;\n}\n\nexport interface IElementFilterOptions {\n /**\n * the filter type of element\n */\n filterType?: 'key' | 'groupKey';\n /**\n * the field to be filtered\n */\n filterField?: string;\n}\n\n/**\n * the interaction to set the active state of specified marks trigger by legend\n */\nexport interface IElementActiveByLegendOptions extends IBaseTriggerOptions, IElementFilterOptions {\n /**\n * the active state name\n */\n state?: string;\n}\n\n/**\n * the interaction to set the active state of specified marks trigger by legend\n */\nexport interface IElementHighlightByLegendOptions extends IBaseTriggerOptions, IElementFilterOptions {\n /**\n * the highlight state name\n */\n highlightState?: string;\n /**\n * the blur state name\n */\n blurState?: string;\n}\n\nexport interface IElementHighlightByNameOptions extends IElementHighlightByLegendOptions {\n graphicName?: string | string[];\n /**\n * the trigger event name\n */\n trigger?: GraphicEventType;\n /**\n * the reset trigger event name\n */\n triggerOff?: GraphicEventType | 'none';\n\n parseData?: (e: BaseEventParams) => any;\n}\n\nexport type IElementHighlightByGraphicNameOptions = IElementHighlightOptions;\n\nexport interface ITriggerConstructor<T extends IBaseTriggerOptions = IBaseTriggerOptions> {\n readonly type: string;\n\n new (options?: T): ITrigger<T>;\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  import type { IBaseTriggerOptions, ITrigger, ITriggerEventHandler } from '../interface/trigger';
2
2
  import type { IMark, IMarkGraphic } from '../../mark/interface/common';
3
3
  import { MarkSet } from '../../mark/mark-set';
4
+ import type { BaseEventParams } from '../../core';
4
5
  export declare abstract class BaseTrigger<T extends IBaseTriggerOptions> implements ITrigger<T> {
5
6
  options: T;
6
7
  type: string;
@@ -22,7 +23,7 @@ export declare abstract class BaseTrigger<T extends IBaseTriggerOptions> impleme
22
23
  getResetState(): string;
23
24
  init(): void;
24
25
  release(): void;
25
- start(g: IMarkGraphic | string): void;
26
- reset(g?: IMarkGraphic): void;
26
+ start(g: IMarkGraphic | string, e?: BaseEventParams): void;
27
+ reset(g?: IMarkGraphic, e?: BaseEventParams): void;
27
28
  protected dispatchEvent(type: 'start' | 'reset' | 'update' | 'end', params: any): void;
28
29
  }
@@ -65,8 +65,8 @@ class BaseTrigger {
65
65
  })) : "none" !== evt.type && this.options.event.off(evt.type, evt.handler));
66
66
  }));
67
67
  }
68
- start(g) {}
69
- reset(g) {}
68
+ start(g, e) {}
69
+ reset(g, e) {}
70
70
  dispatchEvent(type, params) {
71
71
  this.options.event && (this.options.event.emit(`${this.type}:${type}`, params),
72
72
  "start" === type && this.options.onStart ? this.options.onStart(params) : "reset" === type && this.options.onReset ? this.options.onReset(params) : "update" === type && this.options.onUpdate ? this.options.onUpdate(params) : "end" === type && this.options.onEnd && this.options.onEnd(params));
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interaction/triggers/base.ts"],"names":[],"mappings":"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","file":"base.js","sourcesContent":["import { isArray } from '@visactor/vutils';\nimport type { IBaseTriggerOptions, ITrigger, ITriggerEventHandler } from '../interface/trigger';\nimport type { IMark, IMarkGraphic } from '../../mark/interface/common';\nimport { MarkSet } from '../../mark/mark-set';\nimport { groupMarksByState } from './util';\n\nexport abstract class BaseTrigger<T extends IBaseTriggerOptions> implements ITrigger<T> {\n options: T;\n type: string;\n\n protected _markSet: MarkSet = new MarkSet();\n\n protected _markIdByState: Record<string, number[]>;\n\n constructor(options: T) {\n this.options = options;\n\n if (options.marks && options.marks.length) {\n options.marks.forEach(m => {\n this.registerMark(m);\n });\n }\n }\n\n getMarks(): IMark[] {\n return this._markSet.getMarks();\n }\n\n getMarksByState(state: string): IMark[] {\n if (this._markIdByState && this._markSet) {\n const markIds = this._markIdByState[state];\n\n return markIds ? this.getMarks().filter(mark => mark && markIds.includes(mark.id)) : [];\n }\n\n return [];\n }\n\n registerMark(mark: IMark | IMark[]) {\n if (isArray(mark)) {\n mark.forEach(m => {\n this._markSet.addMark(m);\n });\n } else {\n this._markSet.addMark(mark);\n }\n }\n\n updateMarkIdByState(states: string[]) {\n this._markIdByState = groupMarksByState(this.getMarks(), states);\n }\n\n getMarkIdByState() {\n return this._markIdByState ?? {};\n }\n\n isGraphicInStateMark(g: IMarkGraphic, state: string) {\n const markIdByState = this.getMarkIdByState();\n\n return markIdByState && markIdByState[state] && markIdByState[state].includes(g.context?.markId);\n }\n\n isGraphicInMark(g: IMarkGraphic) {\n return !!this._markSet.getMarkInId(g.context?.markId);\n }\n\n protected abstract getEvents(): Array<{ type: string | string[]; handler: ITriggerEventHandler }>;\n\n getStartState(): string {\n return null;\n }\n\n getResetState(): string {\n return null;\n }\n\n init() {\n const events = this.getEvents();\n\n if (events && this.options.event) {\n events.forEach(evt => {\n if (evt.type && evt.handler) {\n if (isArray(evt.type)) {\n evt.type.forEach(evtType => {\n evtType && evtType !== 'none' && this.options.event.on(evtType, evt.handler);\n });\n } else {\n evt.type !== 'none' && this.options.event.on(evt.type, evt.handler);\n }\n }\n });\n }\n }\n\n release() {\n // unbind events\n const events = this.getEvents();\n\n if (events && this.options.event) {\n (events ?? []).forEach(evt => {\n if (evt.type && evt.handler) {\n if (isArray(evt.type)) {\n evt.type.forEach(evtType => {\n evtType && evtType !== 'none' && this.options.event.on(evtType, evt.handler);\n });\n } else {\n evt.type !== 'none' && this.options.event.off(evt.type, evt.handler);\n }\n }\n });\n }\n }\n\n start(g: IMarkGraphic | string) {\n // do nothing\n }\n\n reset(g?: IMarkGraphic) {\n // do nothing\n }\n\n protected dispatchEvent(type: 'start' | 'reset' | 'update' | 'end', params: any) {\n if (this.options.event) {\n this.options.event.emit(`${this.type}:${type}`, params);\n\n if (type === 'start' && this.options.onStart) {\n this.options.onStart(params);\n } else if (type === 'reset' && this.options.onReset) {\n this.options.onReset(params);\n } else if (type === 'update' && this.options.onUpdate) {\n this.options.onUpdate(params);\n } else if (type === 'end' && this.options.onEnd) {\n this.options.onEnd(params);\n }\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/interaction/triggers/base.ts"],"names":[],"mappings":"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","file":"base.js","sourcesContent":["import { isArray } from '@visactor/vutils';\nimport type { IBaseTriggerOptions, ITrigger, ITriggerEventHandler } from '../interface/trigger';\nimport type { IMark, IMarkGraphic } from '../../mark/interface/common';\nimport { MarkSet } from '../../mark/mark-set';\nimport { groupMarksByState } from './util';\nimport type { BaseEventParams } from '../../core';\n\nexport abstract class BaseTrigger<T extends IBaseTriggerOptions> implements ITrigger<T> {\n options: T;\n type: string;\n\n protected _markSet: MarkSet = new MarkSet();\n\n protected _markIdByState: Record<string, number[]>;\n\n constructor(options: T) {\n this.options = options;\n\n if (options.marks && options.marks.length) {\n options.marks.forEach(m => {\n this.registerMark(m);\n });\n }\n }\n\n getMarks(): IMark[] {\n return this._markSet.getMarks();\n }\n\n getMarksByState(state: string): IMark[] {\n if (this._markIdByState && this._markSet) {\n const markIds = this._markIdByState[state];\n\n return markIds ? this.getMarks().filter(mark => mark && markIds.includes(mark.id)) : [];\n }\n\n return [];\n }\n\n registerMark(mark: IMark | IMark[]) {\n if (isArray(mark)) {\n mark.forEach(m => {\n this._markSet.addMark(m);\n });\n } else {\n this._markSet.addMark(mark);\n }\n }\n\n updateMarkIdByState(states: string[]) {\n this._markIdByState = groupMarksByState(this.getMarks(), states);\n }\n\n getMarkIdByState() {\n return this._markIdByState ?? {};\n }\n\n isGraphicInStateMark(g: IMarkGraphic, state: string) {\n const markIdByState = this.getMarkIdByState();\n\n return markIdByState && markIdByState[state] && markIdByState[state].includes(g.context?.markId);\n }\n\n isGraphicInMark(g: IMarkGraphic) {\n return !!this._markSet.getMarkInId(g.context?.markId);\n }\n\n protected abstract getEvents(): Array<{ type: string | string[]; handler: ITriggerEventHandler }>;\n\n getStartState(): string {\n return null;\n }\n\n getResetState(): string {\n return null;\n }\n\n init() {\n const events = this.getEvents();\n\n if (events && this.options.event) {\n events.forEach(evt => {\n if (evt.type && evt.handler) {\n if (isArray(evt.type)) {\n evt.type.forEach(evtType => {\n evtType && evtType !== 'none' && this.options.event.on(evtType, evt.handler);\n });\n } else {\n evt.type !== 'none' && this.options.event.on(evt.type, evt.handler);\n }\n }\n });\n }\n }\n\n release() {\n // unbind events\n const events = this.getEvents();\n\n if (events && this.options.event) {\n (events ?? []).forEach(evt => {\n if (evt.type && evt.handler) {\n if (isArray(evt.type)) {\n evt.type.forEach(evtType => {\n evtType && evtType !== 'none' && this.options.event.on(evtType, evt.handler);\n });\n } else {\n evt.type !== 'none' && this.options.event.off(evt.type, evt.handler);\n }\n }\n });\n }\n }\n\n start(g: IMarkGraphic | string, e?: BaseEventParams) {\n // do nothing\n }\n\n reset(g?: IMarkGraphic, e?: BaseEventParams) {\n // do nothing\n }\n\n protected dispatchEvent(type: 'start' | 'reset' | 'update' | 'end', params: any) {\n if (this.options.event) {\n this.options.event.emit(`${this.type}:${type}`, params);\n\n if (type === 'start' && this.options.onStart) {\n this.options.onStart(params);\n } else if (type === 'reset' && this.options.onReset) {\n this.options.onReset(params);\n } else if (type === 'update' && this.options.onUpdate) {\n this.options.onUpdate(params);\n } else if (type === 'end' && this.options.onEnd) {\n this.options.onEnd(params);\n }\n }\n }\n}\n"]}
@@ -16,10 +16,10 @@ export declare class ElementHighlight extends BaseTrigger<IElementHighlightOptio
16
16
  type: GraphicEventType;
17
17
  handler: (e: BaseEventParams) => void;
18
18
  }[];
19
- resetAll: () => void;
19
+ resetAll: (e?: BaseEventParams) => void;
20
20
  handleStart: (e: BaseEventParams) => void;
21
21
  handleReset: (e: BaseEventParams) => void;
22
- start(markGraphic: IMarkGraphic): void;
23
- reset(markGraphic: IMarkGraphic): void;
22
+ start(markGraphic: IMarkGraphic, e?: BaseEventParams): void;
23
+ reset(markGraphic: IMarkGraphic, e?: BaseEventParams): void;
24
24
  }
25
25
  export declare const registerElementHighlight: () => void;
@@ -13,20 +13,20 @@ const vutils_1 = require("@visactor/vutils"), interface_1 = require("../../compi
13
13
 
14
14
  class ElementHighlight extends base_1.BaseTrigger {
15
15
  constructor(options) {
16
- super(options), this.type = "element-highlight", this.resetAll = () => {
16
+ super(options), this.type = "element-highlight", this.resetAll = e => {
17
17
  const {highlightState: highlightState, blurState: blurState, interaction: interaction} = this.options;
18
18
  this._lastGraphic && (interaction.clearAllStatesOfTrigger(this, highlightState, blurState),
19
- this.dispatchEvent("reset", {
19
+ this.dispatchEvent("reset", Object.assign({
20
20
  graphics: [ this._lastGraphic ],
21
21
  options: this.options
22
- }), this._lastGraphic = null, interaction.setStatedGraphics(this, []));
22
+ }, e)), this._lastGraphic = null, interaction.setStatedGraphics(this, []));
23
23
  }, this.handleStart = e => {
24
- this.start(e.item);
24
+ this.start(e.item, e);
25
25
  }, this.handleReset = e => {
26
26
  const {interaction: interaction} = this.options, statedGraphics = interaction.getStatedGraphics(this);
27
27
  if (!statedGraphics || !statedGraphics.length) return;
28
28
  const markGraphic = e.item, hasActiveElement = markGraphic && this._markSet.getMarkInId(markGraphic.context.markId);
29
- (this._resetType.includes("view") && !hasActiveElement || this._resetType.includes("self") && hasActiveElement) && this.resetAll();
29
+ (this._resetType.includes("view") && !hasActiveElement || this._resetType.includes("self") && hasActiveElement) && this.resetAll(e);
30
30
  }, this.options = Object.assign({}, defaultOptions, options), this.updateMarkIdByState([ this.options.highlightState, this.options.blurState ]);
31
31
  }
32
32
  getStartState() {
@@ -47,20 +47,20 @@ class ElementHighlight extends base_1.BaseTrigger {
47
47
  handler: this.handleReset
48
48
  }), events;
49
49
  }
50
- start(markGraphic) {
50
+ start(markGraphic, e) {
51
51
  if (markGraphic && this._markSet.getMarkInId(markGraphic.context.markId)) {
52
52
  const {highlightState: highlightState, blurState: blurState, interaction: interaction} = this.options;
53
53
  if (this._lastGraphic === markGraphic) return;
54
54
  const newStatedGraphics = interaction.updateStates(this, [ markGraphic ], interaction.getStatedGraphics(this), highlightState, blurState);
55
55
  interaction.setStatedGraphics(this, newStatedGraphics), this._lastGraphic = markGraphic,
56
- this.dispatchEvent("start", {
56
+ this.dispatchEvent("start", Object.assign({
57
57
  graphics: newStatedGraphics,
58
58
  options: this.options
59
- });
60
- } else this._lastGraphic && "view" === this._resetType && this.resetAll();
59
+ }, e));
60
+ } else this._lastGraphic && "view" === this._resetType && this.resetAll(e);
61
61
  }
62
- reset(markGraphic) {
63
- markGraphic ? this._markSet.getMarkInId(markGraphic.context.markId) && markGraphic.removeState([ this.options.highlightState, this.options.blurState ]) : this.resetAll();
62
+ reset(markGraphic, e) {
63
+ markGraphic ? this._markSet.getMarkInId(markGraphic.context.markId) && markGraphic.removeState([ this.options.highlightState, this.options.blurState ]) : this.resetAll(e);
64
64
  }
65
65
  }
66
66
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interaction/triggers/element-highlight.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAC5C,4DAAgE;AAGhE,iCAAqC;AACrC,gDAA6C;AAK7C,MAAM,cAAc,GAAsC;IACxD,cAAc,EAAE,4BAAgB,CAAC,eAAe;IAChD,SAAS,EAAE,4BAAgB,CAAC,UAAU;IACtC,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,YAAY;CACzB,CAAC;AAEF,MAAa,gBACX,SAAQ,kBAAqC;IAU7C,YAAY,OAAkC;QAC5C,KAAK,CAAC,OAAO,CAAC,CAAC;QAPjB,SAAI,uBAA+C;QA6CnD,aAAQ,GAAG,GAAG,EAAE;YACd,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;YAEhE,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,WAAW,CAAC,uBAAuB,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;gBAErE,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBAEtF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAEzB,WAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;aACzC;QACH,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;YACrC,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAE3D,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;gBAC7C,OAAO;aACR;YACD,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC;YAC3B,MAAM,gBAAgB,GAAG,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAE9F,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;aACjB;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,gBAAgB,EAAE;gBAC/D,IAAI,CAAC,QAAQ,EAAE,CAAC;aACjB;QACH,CAAC,CAAC;QAtEA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QAE1D,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;IACrC,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IAChC,CAAC;IAGS,SAAS;QACjB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACrC,MAAM,MAAM,GAAG;YACb;gBACE,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,IAAI,CAAC,WAAW;aAC1B;SACF,CAAC;QAEF,IAAI,SAAS,GAAG,UAAU,CAAC;QAC3B,IAAI,IAAA,iBAAQ,EAAC,UAAU,CAAC,IAAK,UAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACpE,SAAS,GAAI,UAAqB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAqB,CAAC;YAC5E,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;SAC1B;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;SAC1B;QAED,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAA6B,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAEhF,OAAO,MAAM,CAAC;IAChB,CAAC;IAqCD,KAAK,CAAC,WAAyB;QAC7B,IAAI,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACxE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;YAEhE,IAAI,IAAI,CAAC,YAAY,KAAK,WAAW,EAAE;gBACrC,OAAO;aACR;YAED,MAAM,iBAAiB,GAAG,WAAW,CAAC,YAAY,CAChD,IAAI,EACJ,CAAC,WAAW,CAAC,EACb,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,EACnC,cAAc,EACd,SAAS,CACV,CAAC;YACF,WAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YAEvD,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;YAEhC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SACrF;aAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE;YAC1D,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;IACH,CAAC;IAED,KAAK,CAAC,WAAyB;QAC7B,IAAI,WAAW,EAAE;YACf,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACzD,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;aAChF;SACF;aAAM;YACL,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;IACH,CAAC;;AAtHH,4CAuHC;AAnHQ,qBAAI,uBAA+C;AAGnD,+BAAc,GAAG,cAAc,CAAC;AAkHlC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,iBAAO,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;AAC9E,CAAC,CAAC;AAFW,QAAA,wBAAwB,4BAEnC","file":"element-highlight.js","sourcesContent":["import { isString } from '@visactor/vutils';\nimport { STATE_VALUE_ENUM } from '../../compile/mark/interface';\nimport type { IElementHighlightOptions, ITrigger } from '../interface/trigger';\nimport type { IMarkGraphic } from '../../mark/interface/common';\nimport { BaseTrigger } from './base';\nimport { Factory } from '../../core/factory';\nimport type { GraphicEventType } from '@visactor/vrender-core';\nimport { TRIGGER_TYPE_ENUM } from './enum';\nimport type { BaseEventParams } from '../../event/interface';\n\nconst defaultOptions: Partial<IElementHighlightOptions> = {\n highlightState: STATE_VALUE_ENUM.STATE_HIGHLIGHT,\n blurState: STATE_VALUE_ENUM.STATE_BLUR,\n trigger: 'pointerover',\n triggerOff: 'pointerout'\n};\n\nexport class ElementHighlight\n extends BaseTrigger<IElementHighlightOptions>\n implements ITrigger<IElementHighlightOptions>\n{\n static type: string = TRIGGER_TYPE_ENUM.ELEMENT_HIGHLIGHT;\n type: string = TRIGGER_TYPE_ENUM.ELEMENT_HIGHLIGHT;\n\n static defaultOptions = defaultOptions;\n\n protected _lastGraphic?: IMarkGraphic;\n\n constructor(options?: IElementHighlightOptions) {\n super(options);\n this.options = Object.assign({}, defaultOptions, options);\n\n this.updateMarkIdByState([this.options.highlightState, this.options.blurState]);\n }\n\n getStartState(): string {\n return this.options.highlightState;\n }\n\n getResetState(): string {\n return this.options.blurState;\n }\n protected _resetType?: 'view' | 'self';\n\n protected getEvents() {\n const triggerOff = this.options.triggerOff;\n const trigger = this.options.trigger;\n const events = [\n {\n type: trigger,\n handler: this.handleStart\n }\n ];\n\n let eventName = triggerOff;\n if (isString(triggerOff) && (triggerOff as string).includes('view:')) {\n eventName = (triggerOff as string).replace('view:', '') as GraphicEventType;\n this._resetType = 'view';\n } else {\n this._resetType = 'self';\n }\n\n events.push({ type: eventName as GraphicEventType, handler: this.handleReset });\n\n return events;\n }\n\n resetAll = () => {\n const { highlightState, blurState, interaction } = this.options;\n\n if (this._lastGraphic) {\n interaction.clearAllStatesOfTrigger(this, highlightState, blurState);\n\n this.dispatchEvent('reset', { graphics: [this._lastGraphic], options: this.options });\n\n this._lastGraphic = null;\n\n interaction.setStatedGraphics(this, []);\n }\n };\n\n handleStart = (e: BaseEventParams) => {\n this.start(e.item);\n };\n\n handleReset = (e: BaseEventParams) => {\n const { interaction } = this.options;\n const statedGraphics = interaction.getStatedGraphics(this);\n\n if (!statedGraphics || !statedGraphics.length) {\n return;\n }\n const markGraphic = e.item;\n const hasActiveElement = markGraphic && this._markSet.getMarkInId(markGraphic.context.markId);\n\n if (this._resetType.includes('view') && !hasActiveElement) {\n this.resetAll();\n } else if (this._resetType.includes('self') && hasActiveElement) {\n this.resetAll();\n }\n };\n\n start(markGraphic: IMarkGraphic) {\n if (markGraphic && this._markSet.getMarkInId(markGraphic.context.markId)) {\n const { highlightState, blurState, interaction } = this.options;\n\n if (this._lastGraphic === markGraphic) {\n return;\n }\n\n const newStatedGraphics = interaction.updateStates(\n this,\n [markGraphic],\n interaction.getStatedGraphics(this),\n highlightState,\n blurState\n );\n interaction.setStatedGraphics(this, newStatedGraphics);\n\n this._lastGraphic = markGraphic;\n\n this.dispatchEvent('start', { graphics: newStatedGraphics, options: this.options });\n } else if (this._lastGraphic && this._resetType === 'view') {\n this.resetAll();\n }\n }\n\n reset(markGraphic: IMarkGraphic) {\n if (markGraphic) {\n if (this._markSet.getMarkInId(markGraphic.context.markId)) {\n markGraphic.removeState([this.options.highlightState, this.options.blurState]);\n }\n } else {\n this.resetAll();\n }\n }\n}\n\nexport const registerElementHighlight = () => {\n Factory.registerInteractionTrigger(ElementHighlight.type, ElementHighlight);\n};\n"]}
1
+ {"version":3,"sources":["../src/interaction/triggers/element-highlight.ts"],"names":[],"mappings":"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","file":"element-highlight.js","sourcesContent":["import { isString } from '@visactor/vutils';\nimport { STATE_VALUE_ENUM } from '../../compile/mark/interface';\nimport type { IElementHighlightOptions, ITrigger } from '../interface/trigger';\nimport type { IMarkGraphic } from '../../mark/interface/common';\nimport { BaseTrigger } from './base';\nimport { Factory } from '../../core/factory';\nimport type { GraphicEventType } from '@visactor/vrender-core';\nimport { TRIGGER_TYPE_ENUM } from './enum';\nimport type { BaseEventParams } from '../../event/interface';\n\nconst defaultOptions: Partial<IElementHighlightOptions> = {\n highlightState: STATE_VALUE_ENUM.STATE_HIGHLIGHT,\n blurState: STATE_VALUE_ENUM.STATE_BLUR,\n trigger: 'pointerover',\n triggerOff: 'pointerout'\n};\n\nexport class ElementHighlight\n extends BaseTrigger<IElementHighlightOptions>\n implements ITrigger<IElementHighlightOptions>\n{\n static type: string = TRIGGER_TYPE_ENUM.ELEMENT_HIGHLIGHT;\n type: string = TRIGGER_TYPE_ENUM.ELEMENT_HIGHLIGHT;\n\n static defaultOptions = defaultOptions;\n\n protected _lastGraphic?: IMarkGraphic;\n\n constructor(options?: IElementHighlightOptions) {\n super(options);\n this.options = Object.assign({}, defaultOptions, options);\n\n this.updateMarkIdByState([this.options.highlightState, this.options.blurState]);\n }\n\n getStartState(): string {\n return this.options.highlightState;\n }\n\n getResetState(): string {\n return this.options.blurState;\n }\n protected _resetType?: 'view' | 'self';\n\n protected getEvents() {\n const triggerOff = this.options.triggerOff;\n const trigger = this.options.trigger;\n const events = [\n {\n type: trigger,\n handler: this.handleStart\n }\n ];\n\n let eventName = triggerOff;\n if (isString(triggerOff) && (triggerOff as string).includes('view:')) {\n eventName = (triggerOff as string).replace('view:', '') as GraphicEventType;\n this._resetType = 'view';\n } else {\n this._resetType = 'self';\n }\n\n events.push({ type: eventName as GraphicEventType, handler: this.handleReset });\n\n return events;\n }\n\n resetAll = (e?: BaseEventParams) => {\n const { highlightState, blurState, interaction } = this.options;\n\n if (this._lastGraphic) {\n interaction.clearAllStatesOfTrigger(this, highlightState, blurState);\n\n this.dispatchEvent('reset', { graphics: [this._lastGraphic], options: this.options, ...e });\n\n this._lastGraphic = null;\n\n interaction.setStatedGraphics(this, []);\n }\n };\n\n handleStart = (e: BaseEventParams) => {\n this.start(e.item, e);\n };\n\n handleReset = (e: BaseEventParams) => {\n const { interaction } = this.options;\n const statedGraphics = interaction.getStatedGraphics(this);\n\n if (!statedGraphics || !statedGraphics.length) {\n return;\n }\n const markGraphic = e.item;\n const hasActiveElement = markGraphic && this._markSet.getMarkInId(markGraphic.context.markId);\n\n if (this._resetType.includes('view') && !hasActiveElement) {\n this.resetAll(e);\n } else if (this._resetType.includes('self') && hasActiveElement) {\n this.resetAll(e);\n }\n };\n\n start(markGraphic: IMarkGraphic, e?: BaseEventParams) {\n if (markGraphic && this._markSet.getMarkInId(markGraphic.context.markId)) {\n const { highlightState, blurState, interaction } = this.options;\n\n if (this._lastGraphic === markGraphic) {\n return;\n }\n\n const newStatedGraphics = interaction.updateStates(\n this,\n [markGraphic],\n interaction.getStatedGraphics(this),\n highlightState,\n blurState\n );\n interaction.setStatedGraphics(this, newStatedGraphics);\n\n this._lastGraphic = markGraphic;\n\n this.dispatchEvent('start', { graphics: newStatedGraphics, options: this.options, ...e });\n } else if (this._lastGraphic && this._resetType === 'view') {\n this.resetAll(e);\n }\n }\n\n reset(markGraphic: IMarkGraphic, e?: BaseEventParams) {\n if (markGraphic) {\n if (this._markSet.getMarkInId(markGraphic.context.markId)) {\n markGraphic.removeState([this.options.highlightState, this.options.blurState]);\n }\n } else {\n this.resetAll(e);\n }\n }\n}\n\nexport const registerElementHighlight = () => {\n Factory.registerInteractionTrigger(ElementHighlight.type, ElementHighlight);\n};\n"]}
@@ -15,10 +15,10 @@ export declare class ElementSelect extends BaseTrigger<IElementSelectOptions> im
15
15
  type: import("@visactor/vrender-core").GraphicEventType | import("@visactor/vrender-core").GraphicEventType[];
16
16
  handler: (e: BaseEventParams) => void;
17
17
  }[];
18
- resetAll: () => void;
18
+ resetAll: (e?: BaseEventParams) => void;
19
19
  handleStart: (e: BaseEventParams) => void;
20
20
  handleReset: (e: BaseEventParams) => void;
21
- start(markGraphic: IMarkGraphic): void;
22
- reset(markGraphic: IMarkGraphic): void;
21
+ start(markGraphic: IMarkGraphic, e?: BaseEventParams): void;
22
+ reset(markGraphic: IMarkGraphic, e?: BaseEventParams): void;
23
23
  }
24
24
  export declare const registerElementSelect: () => void;
@@ -11,20 +11,20 @@ const vutils_1 = require("@visactor/vutils"), interface_1 = require("../../compi
11
11
 
12
12
  class ElementSelect extends base_1.BaseTrigger {
13
13
  constructor(options) {
14
- super(options), this.type = "element-select", this._resetType = [], this.resetAll = () => {
14
+ super(options), this.type = "element-select", this._resetType = [], this.resetAll = e => {
15
15
  const {state: state, reverseState: reverseState, interaction: interaction} = this.options, statedGraphics = interaction.getStatedGraphics(this);
16
16
  statedGraphics && statedGraphics.length && (interaction.clearAllStatesOfTrigger(this, state, reverseState),
17
- this.dispatchEvent("reset", {
17
+ this.dispatchEvent("reset", Object.assign({
18
18
  graphics: statedGraphics,
19
19
  options: this.options
20
- }), interaction.setStatedGraphics(this, []));
20
+ }, e)), interaction.setStatedGraphics(this, []));
21
21
  }, this.handleStart = e => {
22
- this.start(e.item);
22
+ this.start(e.item, e);
23
23
  }, this.handleReset = e => {
24
24
  const {interaction: interaction} = this.options, statedGraphics = interaction.getStatedGraphics(this);
25
25
  if (!statedGraphics || !statedGraphics.length) return;
26
26
  const markGraphic = e.item, hasActiveElement = markGraphic && this._markSet.getMarkInId(markGraphic.context.markId);
27
- (this._resetType.includes("view") && !hasActiveElement || this._resetType.includes("self") && hasActiveElement) && this.resetAll();
27
+ (this._resetType.includes("view") && !hasActiveElement || this._resetType.includes("self") && hasActiveElement) && this.resetAll(e);
28
28
  }, this.options = Object.assign({}, defaultOptions, options), this.updateMarkIdByState([ this.options.state, this.options.reverseState ]);
29
29
  }
30
30
  getStartState() {
@@ -45,26 +45,26 @@ class ElementSelect extends base_1.BaseTrigger {
45
45
  });
46
46
  })), this._resetType = resetType, events;
47
47
  }
48
- start(markGraphic) {
48
+ start(markGraphic, e) {
49
49
  const {state: state, reverseState: reverseState, isMultiple: isMultiple, interaction: interaction} = this.options, statedGraphics = interaction.getStatedGraphics(this);
50
50
  if (markGraphic && this._markSet.getMarkInId(markGraphic.context.markId)) if (markGraphic.hasState(state)) {
51
51
  if (this._resetType.includes("self")) {
52
52
  const newStatedGraphics = statedGraphics && statedGraphics.filter((g => g !== markGraphic));
53
- newStatedGraphics && newStatedGraphics.length ? interaction.setStatedGraphics(this, interaction.updateStates(this, newStatedGraphics, statedGraphics, state, reverseState)) : this.resetAll();
53
+ newStatedGraphics && newStatedGraphics.length ? interaction.setStatedGraphics(this, interaction.updateStates(this, newStatedGraphics, statedGraphics, state, reverseState)) : this.resetAll(e);
54
54
  }
55
55
  } else {
56
56
  this._timer && clearTimeout(this._timer), markGraphic.addState(state, !0);
57
57
  const newStatedGraphics = this.options.interaction.updateStates(this, isMultiple && statedGraphics ? [ ...statedGraphics, markGraphic ] : [ markGraphic ], statedGraphics, state, reverseState);
58
- interaction.setStatedGraphics(this, newStatedGraphics), this.dispatchEvent("start", {
58
+ interaction.setStatedGraphics(this, newStatedGraphics), this.dispatchEvent("start", Object.assign({
59
59
  graphics: newStatedGraphics,
60
60
  options: this.options
61
- }), this._resetType.includes("timeout") && (this._timer = setTimeout((() => {
62
- this.resetAll();
61
+ }, e)), this._resetType.includes("timeout") && (this._timer = setTimeout((() => {
62
+ this.resetAll(e);
63
63
  }), this.options.triggerOff));
64
- } else this._resetType.includes("view") && statedGraphics && statedGraphics.length && this.resetAll();
64
+ } else this._resetType.includes("view") && statedGraphics && statedGraphics.length && this.resetAll(e);
65
65
  }
66
- reset(markGraphic) {
67
- markGraphic ? this._markSet.getMarkInId(markGraphic.context.markId) && markGraphic.removeState([ this.options.state, this.options.reverseState ]) : this.resetAll();
66
+ reset(markGraphic, e) {
67
+ markGraphic ? this._markSet.getMarkInId(markGraphic.context.markId) && markGraphic.removeState([ this.options.state, this.options.reverseState ]) : this.resetAll(e);
68
68
  }
69
69
  }
70
70
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interaction/triggers/element-select.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAC3C,4DAAgE;AAGhE,iCAAqC;AACrC,iCAAiD;AACjD,gDAA6C;AAI7C,MAAM,cAAc,GAAmC;IACrD,KAAK,EAAE,4BAAgB,CAAC,cAAc;IACtC,OAAO,EAAE,OAAO;CACjB,CAAC;AAEF,MAAa,aAAc,SAAQ,kBAAkC;IASnE,YAAY,OAA+B;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QARjB,SAAI,oBAA4C;QAGtC,eAAU,GAAoC,EAAE,CAAC;QA2C3D,aAAQ,GAAG,GAAG,EAAE;YACd,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;YAE1D,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAE3D,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,EAAE;gBAC3C,WAAW,CAAC,uBAAuB,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;gBAC/D,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBAEjF,WAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;aACzC;QACH,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;YAErC,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;gBAC7C,OAAO;aACR;YACD,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC;YAC3B,MAAM,gBAAgB,GAAG,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAE9F,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;aACjB;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,gBAAgB,EAAE;gBAC/D,IAAI,CAAC,QAAQ,EAAE,CAAC;aACjB;QACH,CAAC,CAAC;QArEA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QAE1D,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;IACnC,CAAC;IAES,SAAS;QACjB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAErC,MAAM,MAAM,GAAG;YACb;gBACE,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,IAAI,CAAC,WAAW;aAC1B;SACF,CAAC;QAEF,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAA,8BAAuB,EAAC,UAAU,CAAC,CAAC;QAEtE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACvB,IAAI,GAAG,IAAI,CAAC,IAAA,gBAAO,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,EAAE;gBACxE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;aACvD;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,OAAO,MAAM,CAAC;IAChB,CAAC;IAoCD,KAAK,CAAC,WAAyB;QAC7B,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QACtE,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE3D,IAAI,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACxE,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC/B,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;oBACpC,MAAM,iBAAiB,GAAG,cAAc,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC;oBAE1F,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,EAAE;wBACjD,WAAW,CAAC,iBAAiB,CAC3B,IAAI,EACJ,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,iBAAiB,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,CAAC,CACvF,CAAC;qBACH;yBAAM;wBACL,IAAI,CAAC,QAAQ,EAAE,CAAC;qBACjB;iBACF;aACF;iBAAM;gBACL,IAAI,IAAI,CAAC,MAAM,EAAE;oBACf,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBAC3B;gBACD,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAElC,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAC7D,IAAI,EACJ,UAAU,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAC/E,cAAc,EACd,KAAK,EACL,YAAY,CACb,CAAC;gBACF,WAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;gBACvD,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBAEpF,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;oBACvC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE;wBAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,UAAoB,CAAsB,CAAC;iBAC5D;aACF;SACF;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,EAAE;YACtF,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;IACH,CAAC;IAED,KAAK,CAAC,WAAyB;QAC7B,IAAI,WAAW,EAAE;YACf,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACzD,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;aAC1E;SACF;aAAM;YACL,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;IACH,CAAC;;AAvIH,sCAwIC;AAvIQ,kBAAI,oBAA4C;AAGhD,4BAAc,GAAG,cAAc,CAAC;AAsIlC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,iBAAO,CAAC,0BAA0B,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AACxE,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC","file":"element-select.js","sourcesContent":["import { isArray } from '@visactor/vutils';\nimport { STATE_VALUE_ENUM } from '../../compile/mark/interface';\nimport type { IElementSelectOptions, ITrigger } from '../interface/trigger';\nimport type { IMarkGraphic } from '../../mark/interface/common';\nimport { BaseTrigger } from './base';\nimport { parseTriggerOffOfSelect } from './util';\nimport { Factory } from '../../core/factory';\nimport { TRIGGER_TYPE_ENUM } from './enum';\nimport type { BaseEventParams } from '../../event/interface';\n\nconst defaultOptions: Partial<IElementSelectOptions> = {\n state: STATE_VALUE_ENUM.STATE_SELECTED,\n trigger: 'click'\n};\n\nexport class ElementSelect extends BaseTrigger<IElementSelectOptions> implements ITrigger<IElementSelectOptions> {\n static type: string = TRIGGER_TYPE_ENUM.ELEMENT_SELECT;\n type: string = TRIGGER_TYPE_ENUM.ELEMENT_SELECT;\n\n static defaultOptions = defaultOptions;\n protected _resetType: ('view' | 'self' | 'timeout')[] = [];\n\n private _timer?: number;\n\n constructor(options?: IElementSelectOptions) {\n super(options);\n this.options = Object.assign({}, defaultOptions, options);\n\n this.updateMarkIdByState([this.options.state, this.options.reverseState]);\n }\n\n getStartState(): string {\n return this.options.state;\n }\n\n getResetState(): string {\n return this.options.reverseState;\n }\n\n protected getEvents() {\n const triggerOff = this.options.triggerOff;\n const trigger = this.options.trigger;\n\n const events = [\n {\n type: trigger,\n handler: this.handleStart\n }\n ];\n\n const { eventNames, resetType } = parseTriggerOffOfSelect(triggerOff);\n\n eventNames.forEach(evt => {\n if (evt && (isArray(trigger) ? !trigger.includes(evt) : evt !== trigger)) {\n events.push({ type: evt, handler: this.handleReset });\n }\n });\n\n this._resetType = resetType;\n\n return events;\n }\n\n resetAll = () => {\n const { state, reverseState, interaction } = this.options;\n\n const statedGraphics = interaction.getStatedGraphics(this);\n\n if (statedGraphics && statedGraphics.length) {\n interaction.clearAllStatesOfTrigger(this, state, reverseState);\n this.dispatchEvent('reset', { graphics: statedGraphics, options: this.options });\n\n interaction.setStatedGraphics(this, []);\n }\n };\n\n handleStart = (e: BaseEventParams) => {\n this.start(e.item);\n };\n\n handleReset = (e: BaseEventParams) => {\n const { interaction } = this.options;\n\n const statedGraphics = interaction.getStatedGraphics(this);\n if (!statedGraphics || !statedGraphics.length) {\n return;\n }\n const markGraphic = e.item;\n const hasActiveElement = markGraphic && this._markSet.getMarkInId(markGraphic.context.markId);\n\n if (this._resetType.includes('view') && !hasActiveElement) {\n this.resetAll();\n } else if (this._resetType.includes('self') && hasActiveElement) {\n this.resetAll();\n }\n };\n\n start(markGraphic: IMarkGraphic) {\n const { state, reverseState, isMultiple, interaction } = this.options;\n const statedGraphics = interaction.getStatedGraphics(this);\n\n if (markGraphic && this._markSet.getMarkInId(markGraphic.context.markId)) {\n if (markGraphic.hasState(state)) {\n if (this._resetType.includes('self')) {\n const newStatedGraphics = statedGraphics && statedGraphics.filter(g => g !== markGraphic);\n\n if (newStatedGraphics && newStatedGraphics.length) {\n interaction.setStatedGraphics(\n this,\n interaction.updateStates(this, newStatedGraphics, statedGraphics, state, reverseState)\n );\n } else {\n this.resetAll();\n }\n }\n } else {\n if (this._timer) {\n clearTimeout(this._timer);\n }\n markGraphic.addState(state, true);\n\n const newStatedGraphics = this.options.interaction.updateStates(\n this,\n isMultiple && statedGraphics ? [...statedGraphics, markGraphic] : [markGraphic],\n statedGraphics,\n state,\n reverseState\n );\n interaction.setStatedGraphics(this, newStatedGraphics);\n this.dispatchEvent('start', { graphics: newStatedGraphics, options: this.options });\n\n if (this._resetType.includes('timeout')) {\n this._timer = setTimeout(() => {\n this.resetAll();\n }, this.options.triggerOff as number) as unknown as number;\n }\n }\n } else if (this._resetType.includes('view') && statedGraphics && statedGraphics.length) {\n this.resetAll();\n }\n }\n\n reset(markGraphic: IMarkGraphic) {\n if (markGraphic) {\n if (this._markSet.getMarkInId(markGraphic.context.markId)) {\n markGraphic.removeState([this.options.state, this.options.reverseState]);\n }\n } else {\n this.resetAll();\n }\n }\n}\n\nexport const registerElementSelect = () => {\n Factory.registerInteractionTrigger(ElementSelect.type, ElementSelect);\n};\n"]}
1
+ {"version":3,"sources":["../src/interaction/triggers/element-select.ts"],"names":[],"mappings":"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","file":"element-select.js","sourcesContent":["import { isArray } from '@visactor/vutils';\nimport { STATE_VALUE_ENUM } from '../../compile/mark/interface';\nimport type { IElementSelectOptions, ITrigger } from '../interface/trigger';\nimport type { IMarkGraphic } from '../../mark/interface/common';\nimport { BaseTrigger } from './base';\nimport { parseTriggerOffOfSelect } from './util';\nimport { Factory } from '../../core/factory';\nimport { TRIGGER_TYPE_ENUM } from './enum';\nimport type { BaseEventParams } from '../../event/interface';\n\nconst defaultOptions: Partial<IElementSelectOptions> = {\n state: STATE_VALUE_ENUM.STATE_SELECTED,\n trigger: 'click'\n};\n\nexport class ElementSelect extends BaseTrigger<IElementSelectOptions> implements ITrigger<IElementSelectOptions> {\n static type: string = TRIGGER_TYPE_ENUM.ELEMENT_SELECT;\n type: string = TRIGGER_TYPE_ENUM.ELEMENT_SELECT;\n\n static defaultOptions = defaultOptions;\n protected _resetType: ('view' | 'self' | 'timeout')[] = [];\n\n private _timer?: number;\n\n constructor(options?: IElementSelectOptions) {\n super(options);\n this.options = Object.assign({}, defaultOptions, options);\n\n this.updateMarkIdByState([this.options.state, this.options.reverseState]);\n }\n\n getStartState(): string {\n return this.options.state;\n }\n\n getResetState(): string {\n return this.options.reverseState;\n }\n\n protected getEvents() {\n const triggerOff = this.options.triggerOff;\n const trigger = this.options.trigger;\n\n const events = [\n {\n type: trigger,\n handler: this.handleStart\n }\n ];\n\n const { eventNames, resetType } = parseTriggerOffOfSelect(triggerOff);\n\n eventNames.forEach(evt => {\n if (evt && (isArray(trigger) ? !trigger.includes(evt) : evt !== trigger)) {\n events.push({ type: evt, handler: this.handleReset });\n }\n });\n\n this._resetType = resetType;\n\n return events;\n }\n\n resetAll = (e?: BaseEventParams) => {\n const { state, reverseState, interaction } = this.options;\n\n const statedGraphics = interaction.getStatedGraphics(this);\n\n if (statedGraphics && statedGraphics.length) {\n interaction.clearAllStatesOfTrigger(this, state, reverseState);\n this.dispatchEvent('reset', { graphics: statedGraphics, options: this.options, ...e });\n\n interaction.setStatedGraphics(this, []);\n }\n };\n\n handleStart = (e: BaseEventParams) => {\n this.start(e.item, e);\n };\n\n handleReset = (e: BaseEventParams) => {\n const { interaction } = this.options;\n\n const statedGraphics = interaction.getStatedGraphics(this);\n if (!statedGraphics || !statedGraphics.length) {\n return;\n }\n const markGraphic = e.item;\n const hasActiveElement = markGraphic && this._markSet.getMarkInId(markGraphic.context.markId);\n\n if (this._resetType.includes('view') && !hasActiveElement) {\n this.resetAll(e);\n } else if (this._resetType.includes('self') && hasActiveElement) {\n this.resetAll(e);\n }\n };\n\n start(markGraphic: IMarkGraphic, e?: BaseEventParams) {\n const { state, reverseState, isMultiple, interaction } = this.options;\n const statedGraphics = interaction.getStatedGraphics(this);\n\n if (markGraphic && this._markSet.getMarkInId(markGraphic.context.markId)) {\n if (markGraphic.hasState(state)) {\n if (this._resetType.includes('self')) {\n const newStatedGraphics = statedGraphics && statedGraphics.filter(g => g !== markGraphic);\n\n if (newStatedGraphics && newStatedGraphics.length) {\n interaction.setStatedGraphics(\n this,\n interaction.updateStates(this, newStatedGraphics, statedGraphics, state, reverseState)\n );\n } else {\n this.resetAll(e);\n }\n }\n } else {\n if (this._timer) {\n clearTimeout(this._timer);\n }\n markGraphic.addState(state, true);\n\n const newStatedGraphics = this.options.interaction.updateStates(\n this,\n isMultiple && statedGraphics ? [...statedGraphics, markGraphic] : [markGraphic],\n statedGraphics,\n state,\n reverseState\n );\n interaction.setStatedGraphics(this, newStatedGraphics);\n this.dispatchEvent('start', { graphics: newStatedGraphics, options: this.options, ...e });\n\n if (this._resetType.includes('timeout')) {\n this._timer = setTimeout(() => {\n this.resetAll(e);\n }, this.options.triggerOff as number) as unknown as number;\n }\n }\n } else if (this._resetType.includes('view') && statedGraphics && statedGraphics.length) {\n this.resetAll(e);\n }\n }\n\n reset(markGraphic: IMarkGraphic, e?: BaseEventParams) {\n if (markGraphic) {\n if (this._markSet.getMarkInId(markGraphic.context.markId)) {\n markGraphic.removeState([this.options.state, this.options.reverseState]);\n }\n } else {\n this.resetAll(e);\n }\n }\n}\n\nexport const registerElementSelect = () => {\n Factory.registerInteractionTrigger(ElementSelect.type, ElementSelect);\n};\n"]}
@@ -14,4 +14,5 @@ export class CallbackDisappearAnimate extends AStageAnimate {
14
14
  var _a, _b;
15
15
  return null === (_b = null === (_a = this.params) || void 0 === _a ? void 0 : _a.callBack) || void 0 === _b ? void 0 : _b.call(_a, stage, canvas, this.currentAnimationRatio, this.animationTime);
16
16
  }
17
- }
17
+ }
18
+ //# sourceMappingURL=callback-disappear.js.map
@@ -6,5 +6,4 @@ export { registerSequentialAnimate } from "./sequential-animate";
6
6
 
7
7
  export { registerPolygonAnimation, registerRectAnimation, registerArcAnimation, registerScaleInOutAnimation, DEFAULT_ANIMATION_CONFIG } from "./config";
8
8
 
9
- export { animationConfig, userAnimationConfig, shouldMarkDoMorph } from "./utils";
10
- //# sourceMappingURL=index.js.map
9
+ export { animationConfig, userAnimationConfig, shouldMarkDoMorph } from "./utils";
@@ -33,6 +33,7 @@ export declare class Compiler implements ICompiler {
33
33
  protected _height: number;
34
34
  protected _container: IRenderContainer;
35
35
  protected _option: IRenderOption;
36
+ getOption(): IRenderOption;
36
37
  private _released;
37
38
  private _layoutState?;
38
39
  private _compileChart;
@@ -29,6 +29,9 @@ export class Compiler {
29
29
  getRootGroup() {
30
30
  return this._rootGroup;
31
31
  }
32
+ getOption() {
33
+ return this._option;
34
+ }
32
35
  constructor(container, option) {
33
36
  this._count = 0, this._rootMarks = [], this._viewListeners = new Map, this._windowListeners = new Map,
34
37
  this._canvasListeners = new Map, this.isInited = !1, this._released = !1, this._compileChart = null,
@@ -415,4 +418,4 @@ export class Compiler {
415
418
  })), this._progressiveMarks = null);
416
419
  }
417
420
  }
418
- //# sourceMappingURL=compiler.js.map
421
+ //# sourceMappingURL=compiler.js.map