summaryrefslogtreecommitdiff
path: root/js/dom_types.ts
diff options
context:
space:
mode:
authorAdam Conrad <422184+acconrad@users.noreply.github.com>2019-01-05 15:02:44 +0000
committerRyan Dahl <ry@tinyclouds.org>2019-01-05 10:02:44 -0500
commitf44322128b1ebb3d3d0db5ab9527ee4cdfbc7942 (patch)
tree4ec076859376986f7b3c9b66406431c068257e43 /js/dom_types.ts
parentad01085406bbcb0d0d66eb3e05d4781a3aebee21 (diff)
Add Event web API (#1059)
Diffstat (limited to 'js/dom_types.ts')
-rw-r--r--js/dom_types.ts71
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;
}