aboutsummaryrefslogtreecommitdiff
path: root/packages/idb-bridge/src/util/FakeEvent.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/idb-bridge/src/util/FakeEvent.ts')
-rw-r--r--packages/idb-bridge/src/util/FakeEvent.ts80
1 files changed, 80 insertions, 0 deletions
diff --git a/packages/idb-bridge/src/util/FakeEvent.ts b/packages/idb-bridge/src/util/FakeEvent.ts
new file mode 100644
index 000000000..bf17f7e72
--- /dev/null
+++ b/packages/idb-bridge/src/util/FakeEvent.ts
@@ -0,0 +1,80 @@
+/*
+ Copyright 2017 Jeremy Scheff
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ or implied. See the License for the specific language governing
+ permissions and limitations under the License.
+*/
+
+
+import FakeEventTarget from "./FakeEventTarget";
+import { EventType } from "./types";
+
+class Event {
+ public eventPath: FakeEventTarget[] = [];
+ public type: EventType;
+
+ public readonly NONE = 0;
+ public readonly CAPTURING_PHASE = 1;
+ public readonly AT_TARGET = 2;
+ public readonly BUBBLING_PHASE = 3;
+
+ // Flags
+ public propagationStopped = false;
+ public immediatePropagationStopped = false;
+ public canceled = false;
+ public initialized = true;
+ public dispatched = false;
+
+ public target: FakeEventTarget | null = null;
+ public currentTarget: FakeEventTarget | null = null;
+
+ public eventPhase: 0 | 1 | 2 | 3 = 0;
+
+ public defaultPrevented = false;
+
+ public isTrusted = false;
+ public timeStamp = Date.now();
+
+ public bubbles: boolean;
+ public cancelable: boolean;
+
+ constructor(
+ type: EventType,
+ eventInitDict: { bubbles?: boolean; cancelable?: boolean } = {},
+ ) {
+ this.type = type;
+
+ this.bubbles =
+ eventInitDict.bubbles !== undefined ? eventInitDict.bubbles : false;
+ this.cancelable =
+ eventInitDict.cancelable !== undefined
+ ? eventInitDict.cancelable
+ : false;
+ }
+
+ public preventDefault() {
+ if (this.cancelable) {
+ this.canceled = true;
+ }
+ }
+
+ public stopPropagation() {
+ this.propagationStopped = true;
+ }
+
+ public stopImmediatePropagation() {
+ this.propagationStopped = true;
+ this.immediatePropagationStopped = true;
+ }
+}
+
+export default Event;