all files / src/types/ VNodeEventTypes.ts

100% Statements 0/0
100% Branches 0/0
100% Functions 0/0
100% Lines 0/0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17                                 
import { ElementVNode } from './VirtualNode'
 
export type VNodeEvent<T, Ev extends Event> = Ev & { currentTarget: T }
 
export type EventHandler<T extends Element, Ev extends Event> = (
  event: VNodeEvent<T, Ev>,
  vNode: ElementVNode<T>
) => any
 
export type VNodeEvents<T extends Element, EventMap extends { [K in keyof EventMap]: Event }> = {
  [K in keyof EventMap]?: EventHandler<T, EventMap[K]>
}
 
export type ElementEvents<T extends Element> = VNodeEvents<T, ElementEventMap>
 
export type HtmlElementEvents<T extends HTMLElement> = VNodeEvents<T, HTMLElementEventMap>