Skip to content

Commit da7d0f1

Browse files
Merge pull request #594 from Shopify/rd/add-more-events
add more events
2 parents 85e0e45 + 789a7c7 commit da7d0f1

File tree

5 files changed

+49
-0
lines changed

5 files changed

+49
-0
lines changed

.changeset/lazy-eggs-happen.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@remote-dom/polyfill': patch
3+
---
4+
5+
add `FocusEvent`, `ClipboardEvent` and `ToggleEvent` to polyfill
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import {Event} from './Event.ts';
2+
3+
// https://w3c.github.io/clipboard-apis/#clipboardevent-interface
4+
export class ClipboardEvent extends Event {
5+
readonly clipboardData: ClipboardEventInit['clipboardData'];
6+
7+
constructor(type: string, eventInitDict: ClipboardEventInit = {}) {
8+
super(type, eventInitDict);
9+
10+
this.clipboardData = eventInitDict.clipboardData ?? null;
11+
}
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import {Event} from './Event.ts';
2+
3+
// https://w3c.github.io/uievents/#interface-focusevent
4+
export class FocusEvent extends Event {
5+
readonly relatedTarget: FocusEventInit['relatedTarget'];
6+
7+
constructor(type: string, eventInitDict: FocusEventInit = {}) {
8+
super(type, eventInitDict);
9+
10+
this.relatedTarget = eventInitDict.relatedTarget ?? null;
11+
}
12+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import {Event} from './Event.ts';
2+
3+
// https://html.spec.whatwg.org/multipage/popover.html#toggleevent
4+
export class ToggleEvent extends Event {
5+
readonly oldState: ToggleEventInit['oldState'];
6+
readonly newState: ToggleEventInit['newState'];
7+
8+
constructor(type: string, eventInitDict: ToggleEventInit) {
9+
super(type, eventInitDict);
10+
11+
this.oldState = eventInitDict.oldState;
12+
this.newState = eventInitDict.newState;
13+
}
14+
}

packages/polyfill/source/Window.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ import {EventTarget} from './EventTarget.ts';
44
import {CustomEvent} from './CustomEvent.ts';
55
import {ErrorEvent} from './ErrorEvent.ts';
66
import {PromiseRejectionEvent} from './PromiseRejectionEvent.ts';
7+
import {ToggleEvent} from './ToggleEvent.ts';
8+
import {FocusEvent} from './FocusEvent.ts';
9+
import {ClipboardEvent} from './ClipboardEvent.ts';
710
import {Node} from './Node.ts';
811
import {ParentNode} from './ParentNode.ts';
912
import {ChildNode} from './ChildNode.ts';
@@ -44,6 +47,9 @@ export class Window extends EventTarget {
4447
Event = Event;
4548
ErrorEvent = ErrorEvent;
4649
PromiseRejectionEvent = PromiseRejectionEvent;
50+
ToggleEvent = ToggleEvent;
51+
FocusEvent = FocusEvent;
52+
ClipboardEvent = ClipboardEvent;
4753
EventTarget = EventTarget;
4854
CustomEvent = CustomEvent;
4955
Node = Node;

0 commit comments

Comments
 (0)