diff options
author | Adam Conrad <422184+acconrad@users.noreply.github.com> | 2019-01-05 15:02:44 +0000 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2019-01-05 10:02:44 -0500 |
commit | f44322128b1ebb3d3d0db5ab9527ee4cdfbc7942 (patch) | |
tree | 4ec076859376986f7b3c9b66406431c068257e43 /js/dom_types.ts | |
parent | ad01085406bbcb0d0d66eb3e05d4781a3aebee21 (diff) |
Add Event web API (#1059)
Diffstat (limited to 'js/dom_types.ts')
-rw-r--r-- | js/dom_types.ts | 71 |
1 files changed, 38 insertions, 33 deletions
diff --git a/js/dom_types.ts b/js/dom_types.ts index 4bfb3e041..549b0057c 100644 --- a/js/dom_types.ts +++ b/js/dom_types.ts @@ -53,14 +53,6 @@ export interface DomIterable<K, V> { ): void; } -interface Element { - // TODO -} - -export interface HTMLFormElement { - // TODO -} - type EndingType = "transparent" | "native"; export interface BlobPropertyBag { @@ -72,7 +64,7 @@ interface AbortSignalEventMap { abort: ProgressEvent; } -interface EventTarget { +export interface EventTarget { addEventListener( type: string, listener: EventListenerOrEventListenerObject | null, @@ -140,39 +132,52 @@ export interface URLSearchParams { ): void; } -interface EventListener { +export interface EventListener { (evt: Event): void; } -interface EventInit { +export interface EventInit { bubbles?: boolean; cancelable?: boolean; composed?: boolean; } -interface Event { +export enum EventPhase { + NONE = 0, + CAPTURING_PHASE = 1, + AT_TARGET = 2, + BUBBLING_PHASE = 3 +} + +export interface EventPath { + item: EventTarget; + itemInShadowTree: boolean; + relatedTarget: EventTarget | null; + rootOfClosedTree: boolean; + slotInClosedTree: boolean; + target: EventTarget | null; + touchTargetList: EventTarget[]; +} + +export interface Event { + readonly type: string; + readonly target: EventTarget | null; + readonly currentTarget: EventTarget | null; + composedPath(): EventPath[]; + + readonly eventPhase: number; + + stopPropagation(): void; + stopImmediatePropagation(): void; + readonly bubbles: boolean; - cancelBubble: boolean; readonly cancelable: boolean; - readonly composed: boolean; - readonly currentTarget: EventTarget | null; + preventDefault(): void; readonly defaultPrevented: boolean; - readonly eventPhase: number; + readonly composed: boolean; + readonly isTrusted: boolean; - returnValue: boolean; - readonly srcElement: Element | null; - readonly target: EventTarget | null; - readonly timeStamp: number; - readonly type: string; - deepPath(): EventTarget[]; - initEvent(type: string, bubbles?: boolean, cancelable?: boolean): void; - preventDefault(): void; - stopImmediatePropagation(): void; - stopPropagation(): void; - readonly AT_TARGET: number; - readonly BUBBLING_PHASE: number; - readonly CAPTURING_PHASE: number; - readonly NONE: number; + readonly timeStamp: Date; } /* TODO(ry) Re-expose this interface. There is currently some interference @@ -193,11 +198,11 @@ interface ProgressEvent extends Event { readonly total: number; } -interface EventListenerOptions { +export interface EventListenerOptions { capture?: boolean; } -interface AddEventListenerOptions extends EventListenerOptions { +export interface AddEventListenerOptions extends EventListenerOptions { once?: boolean; passive?: boolean; } @@ -236,7 +241,7 @@ export interface ReadableStream { getReader(): ReadableStreamReader; } -interface EventListenerObject { +export interface EventListenerObject { handleEvent(evt: Event): void; } |