import { App } from 'vue'; import { BehaviorReporter } from '@tencent/merlin-behavior'; import { LiteBehaviorCollector, LiteBehaviorCollectorOptions } from '@tencent/merlin-behavior-lite'; import { registerExposeTargetHook } from './hooks/ml-expose'; import { registerExposeRootHook } from './hooks/ml-exposeRoot'; import { registerClickHook } from './hooks/ml-click'; export interface VueBehaviorCollectorOptions extends LiteBehaviorCollectorOptions { app: App; } export class VueBehaviorCollector extends LiteBehaviorCollector { private app: App; constructor(options: VueBehaviorCollectorOptions) { super(options); this.app = options.app; } init(reporter: BehaviorReporter) { super.init(reporter); registerExposeTargetHook(this.app, this); registerExposeRootHook(this.app, this); this.kickStartExpose(); registerClickHook(this.app, this); } destroy() { super.destroy(); } }