UNPKG

@antv/x6

Version:

JavaScript diagramming library that uses SVG and HTML for rendering

41 lines (33 loc) 814 B
import { EventHandler } from './types' export type EventTarget = Element | Record<string, unknown> export interface HandlerObject { guid: number type: string originType: string handler: EventHandler<any, any> data?: any selector?: string namespace?: string } export interface Data { handler?: EventHandler<any, any> events: { [type: string]: { handlers: HandlerObject[] delegateCount: number } } } const cache: WeakMap<EventTarget, Data> = new WeakMap() export function ensure(target: EventTarget) { if (!cache.has(target)) { cache.set(target, { events: Object.create(null) }) } return cache.get(target)! } export function get(target: EventTarget) { return cache.get(target) } export function remove(target: EventTarget) { return cache.delete(target) }