/** * The base attributes object for a virtual DOM node. */ export interface IVNodeAttrs { /** * The key id for the node. * * If a node is given a key id, the generated DOM node will not be * recreated during a rendering update if it only moves among its * siblings in the render tree, provided the type of the node does * not change. * * In general, reordering child nodes will cause the nodes to be * completely re-rendered. Keys allow this to be optimized away. * * If a key is provided, it must be unique among sibling nodes. */ key?: string; } /** * The attributes available for all elements. */ export interface IElementAttrs extends IVNodeAttrs { accessKey?: string; className?: string; contentEditable?: string; dataset?: any; dir?: string; draggable?: boolean; hidden?: any; id?: string; lang?: string; spellcheck?: boolean; style?: any; tabIndex?: number; title?: string; onabort?: (ev: UIEvent) => any; onbeforecopy?: (ev: DragEvent) => any; onbeforecut?: (ev: DragEvent) => any; onbeforepaste?: (ev: DragEvent) => any; onblur?: (ev: FocusEvent) => any; oncanplay?: (ev: Event) => any; oncanplaythrough?: (ev: Event) => any; onchange?: (ev: Event) => any; onclick?: (ev: MouseEvent) => any; oncontextmenu?: (ev: MouseEvent) => any; oncopy?: (ev: DragEvent) => any; oncuechange?: (ev: Event) => any; oncut?: (ev: DragEvent) => any; ondblclick?: (ev: MouseEvent) => any; ondrag?: (ev: DragEvent) => any; ondragend?: (ev: DragEvent) => any; ondragenter?: (ev: DragEvent) => any; ondragleave?: (ev: DragEvent) => any; ondragover?: (ev: DragEvent) => any; ondragstart?: (ev: DragEvent) => any; ondrop?: (ev: DragEvent) => any; ondurationchange?: (ev: Event) => any; onended?: (ev: Event) => any; onemptied?: (ev: Event) => any; onerror?: (ev: ErrorEvent) => any; onfocus?: (ev: FocusEvent) => any; onhelp?: (ev: Event) => any; oninput?: (ev: Event) => any; onkeydown?: (ev: KeyboardEvent) => any; onkeypress?: (ev: KeyboardEvent) => any; onkeyup?: (ev: KeyboardEvent) => any; onload?: (ev: Event) => any; onloadeddata?: (ev: Event) => any; onloadedmetadata?: (ev: Event) => any; onloadstart?: (ev: Event) => any; onmousedown?: (ev: MouseEvent) => any; onmouseenter?: (ev: MouseEvent) => any; onmouseleave?: (ev: MouseEvent) => any; onmousemove?: (ev: MouseEvent) => any; onmouseout?: (ev: MouseEvent) => any; onmouseover?: (ev: MouseEvent) => any; onmouseup?: (ev: MouseEvent) => any; onmousewheel?: (ev: MouseWheelEvent) => any; onpaste?: (ev: DragEvent) => any; onpause?: (ev: Event) => any; onplay?: (ev: Event) => any; onplaying?: (ev: Event) => any; onprogress?: (ev: ProgressEvent) => any; onratechange?: (ev: Event) => any; onreadystatechange?: (ev: Event) => any; onreset?: (ev: Event) => any; onscroll?: (ev: UIEvent) => any; onseeked?: (ev: Event) => any; onseeking?: (ev: Event) => any; onselect?: (ev: UIEvent) => any; onselectstart?: (ev: Event) => any; onstalled?: (ev: Event) => any; onsubmit?: (ev: Event) => any; onsuspend?: (ev: Event) => any; ontimeupdate?: (ev: Event) => any; onvolumechange?: (ev: Event) => any; onwaiting?: (ev: Event) => any; } /** * The attributes for `` elements. */ export interface IAnchorAttrs extends IElementAttrs { download?: string; href?: string; hreflang?: string; media?: string; rel?: string; target?: string; type?: string; } /** * The attributes for `` elements. */ export interface IAreaAttrs extends IElementAttrs { alt?: string; coords?: string; download?: string; href?: string; hreflang?: string; media?: string; rel?: string; shape?: string; target?: string; type?: string; } /** * The attributes for `