@gjsify/dom-events 0.3.21 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/esm/_virtual/_rolldown/runtime.js +1 -0
- package/lib/esm/index.js +1 -1
- package/package.json +59 -55
- package/src/error-handler.spec.ts +0 -65
- package/src/event-target.spec.ts +0 -472
- package/src/event.spec.ts +0 -493
- package/src/index.ts +0 -644
- package/src/register/custom-events.ts +0 -23
- package/src/register/event-target.ts +0 -10
- package/src/register/ui-events.ts +0 -25
- package/src/register.ts +0 -6
- package/src/spec-aliases.d.ts +0 -22
- package/src/test.browser.mts +0 -154
- package/src/test.mts +0 -9
- package/src/ui-events.spec.ts +0 -321
- package/tsconfig.json +0 -33
- package/tsconfig.tsbuildinfo +0 -1
package/src/spec-aliases.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
// Ambient declaration for bare web aliases used by spec files.
|
|
2
|
-
// `abort-controller` is a sibling @gjsify/* package resolved via esbuild aliases
|
|
3
|
-
// at build time, but TypeScript needs a stub declaration to type-check the specs.
|
|
4
|
-
// This file is a script (no top-level export) so the `declare module` creates
|
|
5
|
-
// a new ambient module rather than augmenting an existing one.
|
|
6
|
-
|
|
7
|
-
declare module 'abort-controller' {
|
|
8
|
-
class AbortController {
|
|
9
|
-
readonly signal: AbortSignal;
|
|
10
|
-
abort(reason?: unknown): void;
|
|
11
|
-
}
|
|
12
|
-
class AbortSignal extends EventTarget {
|
|
13
|
-
readonly aborted: boolean;
|
|
14
|
-
readonly reason: unknown;
|
|
15
|
-
throwIfAborted(): void;
|
|
16
|
-
onabort: ((this: AbortSignal, ev: Event) => unknown) | null;
|
|
17
|
-
static abort(reason?: unknown): AbortSignal;
|
|
18
|
-
static timeout(milliseconds: number): AbortSignal;
|
|
19
|
-
static any(signals: AbortSignal[]): AbortSignal;
|
|
20
|
-
}
|
|
21
|
-
export { AbortController, AbortSignal };
|
|
22
|
-
}
|
package/src/test.browser.mts
DELETED
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
import { run, describe, it, expect } from '@gjsify/unit';
|
|
2
|
-
|
|
3
|
-
run({
|
|
4
|
-
async DomEventsTest() {
|
|
5
|
-
await describe('Event', async () => {
|
|
6
|
-
await it('creates with type', async () => {
|
|
7
|
-
const e = new Event('click');
|
|
8
|
-
expect(e.type).toBe('click');
|
|
9
|
-
expect(e.bubbles).toBe(false);
|
|
10
|
-
expect(e.cancelable).toBe(false);
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
await it('bubbles and cancelable init options', async () => {
|
|
14
|
-
const e = new Event('test', { bubbles: true, cancelable: true });
|
|
15
|
-
expect(e.bubbles).toBe(true);
|
|
16
|
-
expect(e.cancelable).toBe(true);
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
await it('Symbol.toStringTag is Event', async () => {
|
|
20
|
-
expect(Object.prototype.toString.call(new Event('x'))).toBe('[object Event]');
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
await describe('CustomEvent', async () => {
|
|
25
|
-
await it('carries detail', async () => {
|
|
26
|
-
const e = new CustomEvent('custom', { detail: { x: 42 } });
|
|
27
|
-
expect(e.type).toBe('custom');
|
|
28
|
-
expect(e.detail).toStrictEqual({ x: 42 });
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
await it('instanceof Event', async () => {
|
|
32
|
-
expect(new CustomEvent('e') instanceof Event).toBe(true);
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
await describe('EventTarget', async () => {
|
|
37
|
-
await it('dispatches and receives events', async () => {
|
|
38
|
-
const t = new EventTarget();
|
|
39
|
-
let received = '';
|
|
40
|
-
t.addEventListener('ping', (e) => { received = (e as CustomEvent).detail; });
|
|
41
|
-
t.dispatchEvent(new CustomEvent('ping', { detail: 'hello' }));
|
|
42
|
-
expect(received).toBe('hello');
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
await it('removeEventListener stops receiving', async () => {
|
|
46
|
-
const t = new EventTarget();
|
|
47
|
-
let count = 0;
|
|
48
|
-
const handler = () => { count++; };
|
|
49
|
-
t.addEventListener('click', handler);
|
|
50
|
-
t.dispatchEvent(new Event('click'));
|
|
51
|
-
t.removeEventListener('click', handler);
|
|
52
|
-
t.dispatchEvent(new Event('click'));
|
|
53
|
-
expect(count).toBe(1);
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
await describe('UIEvent', async () => {
|
|
58
|
-
await it('creates with defaults', async () => {
|
|
59
|
-
const e = new UIEvent('test');
|
|
60
|
-
expect(e.detail).toBe(0);
|
|
61
|
-
expect(e.view).toBeNull();
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
await it('instanceof Event', async () => {
|
|
65
|
-
expect(new UIEvent('test') instanceof Event).toBe(true);
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
await describe('MouseEvent', async () => {
|
|
70
|
-
await it('creates with init values', async () => {
|
|
71
|
-
const e = new MouseEvent('mousedown', {
|
|
72
|
-
clientX: 100, clientY: 200, button: 2, buttons: 4,
|
|
73
|
-
altKey: true, ctrlKey: true,
|
|
74
|
-
});
|
|
75
|
-
expect(e.clientX).toBe(100);
|
|
76
|
-
expect(e.clientY).toBe(200);
|
|
77
|
-
expect(e.button).toBe(2);
|
|
78
|
-
expect(e.altKey).toBe(true);
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
await it('button is 0 for mousemove (per spec)', async () => {
|
|
82
|
-
const e = new MouseEvent('mousemove');
|
|
83
|
-
expect(e.button).toBe(0);
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
await it('getModifierState works', async () => {
|
|
87
|
-
const e = new MouseEvent('click', { altKey: true });
|
|
88
|
-
expect(e.getModifierState('Alt')).toBe(true);
|
|
89
|
-
expect(e.getModifierState('Control')).toBe(false);
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
await it('instanceof UIEvent and Event', async () => {
|
|
93
|
-
const e = new MouseEvent('click');
|
|
94
|
-
expect(e instanceof UIEvent).toBe(true);
|
|
95
|
-
expect(e instanceof Event).toBe(true);
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
await describe('KeyboardEvent', async () => {
|
|
100
|
-
await it('creates with key/code', async () => {
|
|
101
|
-
const e = new KeyboardEvent('keydown', { key: 'Enter', code: 'Enter', shiftKey: true });
|
|
102
|
-
expect(e.key).toBe('Enter');
|
|
103
|
-
expect(e.code).toBe('Enter');
|
|
104
|
-
expect(e.shiftKey).toBe(true);
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
await it('DOM_KEY_LOCATION constants', async () => {
|
|
108
|
-
expect(KeyboardEvent.DOM_KEY_LOCATION_STANDARD).toBe(0);
|
|
109
|
-
expect(KeyboardEvent.DOM_KEY_LOCATION_LEFT).toBe(1);
|
|
110
|
-
expect(KeyboardEvent.DOM_KEY_LOCATION_RIGHT).toBe(2);
|
|
111
|
-
expect(KeyboardEvent.DOM_KEY_LOCATION_NUMPAD).toBe(3);
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
await describe('WheelEvent', async () => {
|
|
116
|
-
await it('creates with delta values', async () => {
|
|
117
|
-
const e = new WheelEvent('wheel', { deltaX: 10, deltaY: -20, deltaMode: 1 });
|
|
118
|
-
expect(e.deltaX).toBe(10);
|
|
119
|
-
expect(e.deltaY).toBe(-20);
|
|
120
|
-
expect(e.deltaMode).toBe(WheelEvent.DOM_DELTA_LINE);
|
|
121
|
-
});
|
|
122
|
-
|
|
123
|
-
await it('DOM_DELTA constants', async () => {
|
|
124
|
-
expect(WheelEvent.DOM_DELTA_PIXEL).toBe(0);
|
|
125
|
-
expect(WheelEvent.DOM_DELTA_LINE).toBe(1);
|
|
126
|
-
expect(WheelEvent.DOM_DELTA_PAGE).toBe(2);
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
await describe('FocusEvent', async () => {
|
|
131
|
-
await it('creates with relatedTarget', async () => {
|
|
132
|
-
const target = new EventTarget();
|
|
133
|
-
const e = new FocusEvent('focus', { relatedTarget: target });
|
|
134
|
-
expect(e.relatedTarget).toBe(target);
|
|
135
|
-
});
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
await describe('PointerEvent', async () => {
|
|
139
|
-
await it('creates with pointer-specific init', async () => {
|
|
140
|
-
const e = new PointerEvent('pointerdown', { pointerId: 1, pointerType: 'mouse', isPrimary: true });
|
|
141
|
-
expect(e.pointerId).toBe(1);
|
|
142
|
-
expect(e.pointerType).toBe('mouse');
|
|
143
|
-
expect(e.isPrimary).toBe(true);
|
|
144
|
-
});
|
|
145
|
-
|
|
146
|
-
await it('instanceof MouseEvent, UIEvent, Event', async () => {
|
|
147
|
-
const e = new PointerEvent('pointerdown');
|
|
148
|
-
expect(e instanceof MouseEvent).toBe(true);
|
|
149
|
-
expect(e instanceof UIEvent).toBe(true);
|
|
150
|
-
expect(e instanceof Event).toBe(true);
|
|
151
|
-
});
|
|
152
|
-
});
|
|
153
|
-
},
|
|
154
|
-
});
|
package/src/test.mts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import { run } from '@gjsify/unit';
|
|
3
|
-
|
|
4
|
-
import { ErrorHandlerTest } from './error-handler.spec';
|
|
5
|
-
import { EventTargetTest } from './event-target.spec';
|
|
6
|
-
import { EventTest } from './event.spec';
|
|
7
|
-
import { UIEventsTest } from './ui-events.spec';
|
|
8
|
-
|
|
9
|
-
run({ErrorHandlerTest, EventTargetTest, EventTest, UIEventsTest});
|
package/src/ui-events.spec.ts
DELETED
|
@@ -1,321 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, on } from '@gjsify/unit';
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
Event, UIEvent, MouseEvent, PointerEvent,
|
|
5
|
-
KeyboardEvent, WheelEvent, FocusEvent, EventTarget
|
|
6
|
-
} from 'dom-events';
|
|
7
|
-
|
|
8
|
-
export const UIEventsTest = async () => {
|
|
9
|
-
|
|
10
|
-
await describe('UIEvent', async () => {
|
|
11
|
-
|
|
12
|
-
await it('should create with defaults', async () => {
|
|
13
|
-
const e = new UIEvent('test');
|
|
14
|
-
expect(e.type).toBe('test');
|
|
15
|
-
expect(e.detail).toBe(0);
|
|
16
|
-
expect(e.view).toBeNull();
|
|
17
|
-
expect(e.bubbles).toBe(false);
|
|
18
|
-
expect(e.cancelable).toBe(false);
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
await it('should create with init values', async () => {
|
|
22
|
-
const e = new UIEvent('test', { detail: 42, bubbles: true });
|
|
23
|
-
expect(e.detail).toBe(42);
|
|
24
|
-
expect(e.bubbles).toBe(true);
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
await it('should have correct Symbol.toStringTag', async () => {
|
|
28
|
-
const e = new UIEvent('test');
|
|
29
|
-
expect(Object.prototype.toString.call(e)).toBe('[object UIEvent]');
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
await it('should be instanceof Event', async () => {
|
|
33
|
-
const e = new UIEvent('test');
|
|
34
|
-
expect(e instanceof Event).toBe(true);
|
|
35
|
-
expect(e instanceof UIEvent).toBe(true);
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
await describe('MouseEvent', async () => {
|
|
40
|
-
|
|
41
|
-
await it('should create with defaults', async () => {
|
|
42
|
-
const e = new MouseEvent('click');
|
|
43
|
-
expect(e.type).toBe('click');
|
|
44
|
-
expect(e.clientX).toBe(0);
|
|
45
|
-
expect(e.clientY).toBe(0);
|
|
46
|
-
expect(e.button).toBe(0);
|
|
47
|
-
expect(e.buttons).toBe(0);
|
|
48
|
-
expect(e.altKey).toBe(false);
|
|
49
|
-
expect(e.ctrlKey).toBe(false);
|
|
50
|
-
expect(e.metaKey).toBe(false);
|
|
51
|
-
expect(e.shiftKey).toBe(false);
|
|
52
|
-
expect(e.movementX).toBe(0);
|
|
53
|
-
expect(e.movementY).toBe(0);
|
|
54
|
-
expect(e.offsetX).toBe(0);
|
|
55
|
-
expect(e.offsetY).toBe(0);
|
|
56
|
-
expect(e.screenX).toBe(0);
|
|
57
|
-
expect(e.screenY).toBe(0);
|
|
58
|
-
expect(e.relatedTarget).toBeNull();
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
await it('should create with init values', async () => {
|
|
62
|
-
// Use mousedown: button/buttons are only meaningful on click/down/up events,
|
|
63
|
-
// not mousemove (browsers correctly return button=0 for mousemove per spec).
|
|
64
|
-
const e = new MouseEvent('mousedown', {
|
|
65
|
-
clientX: 100, clientY: 200,
|
|
66
|
-
button: 2, buttons: 4,
|
|
67
|
-
altKey: true, ctrlKey: true,
|
|
68
|
-
movementX: 5, movementY: -3,
|
|
69
|
-
screenX: 300, screenY: 400,
|
|
70
|
-
});
|
|
71
|
-
expect(e.clientX).toBe(100);
|
|
72
|
-
expect(e.clientY).toBe(200);
|
|
73
|
-
expect(e.button).toBe(2);
|
|
74
|
-
expect(e.buttons).toBe(4);
|
|
75
|
-
expect(e.altKey).toBe(true);
|
|
76
|
-
expect(e.ctrlKey).toBe(true);
|
|
77
|
-
expect(e.movementX).toBe(5);
|
|
78
|
-
expect(e.movementY).toBe(-3);
|
|
79
|
-
expect(e.screenX).toBe(300);
|
|
80
|
-
expect(e.screenY).toBe(400);
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
// offsetX/offsetY are @gjsify/dom-events extensions — not part of the standard
|
|
84
|
-
// MouseEventInit dictionary, so browsers ignore them in the constructor.
|
|
85
|
-
await on('Gjs', async () => {
|
|
86
|
-
await it('should propagate offsetX/offsetY from init (GJS extension)', async () => {
|
|
87
|
-
const e = new MouseEvent('mousemove', { clientX: 100, offsetX: 10, offsetY: 20 });
|
|
88
|
-
expect(e.offsetX).toBe(10);
|
|
89
|
-
expect(e.offsetY).toBe(20);
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
await it('should have legacy aliases', async () => {
|
|
94
|
-
const e = new MouseEvent('click', { clientX: 50, clientY: 75 });
|
|
95
|
-
expect(e.pageX).toBe(50);
|
|
96
|
-
expect(e.pageY).toBe(75);
|
|
97
|
-
expect(e.x).toBe(50);
|
|
98
|
-
expect(e.y).toBe(75);
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
await it('should support getModifierState', async () => {
|
|
102
|
-
const e = new MouseEvent('click', { altKey: true, shiftKey: true });
|
|
103
|
-
expect(e.getModifierState('Alt')).toBe(true);
|
|
104
|
-
expect(e.getModifierState('Shift')).toBe(true);
|
|
105
|
-
expect(e.getModifierState('Control')).toBe(false);
|
|
106
|
-
expect(e.getModifierState('Meta')).toBe(false);
|
|
107
|
-
expect(e.getModifierState('CapsLock')).toBe(false);
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
await it('should have correct Symbol.toStringTag', async () => {
|
|
111
|
-
const e = new MouseEvent('click');
|
|
112
|
-
expect(Object.prototype.toString.call(e)).toBe('[object MouseEvent]');
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
await it('should be instanceof UIEvent and Event', async () => {
|
|
116
|
-
const e = new MouseEvent('click');
|
|
117
|
-
expect(e instanceof UIEvent).toBe(true);
|
|
118
|
-
expect(e instanceof Event).toBe(true);
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
await it('should support relatedTarget', async () => {
|
|
122
|
-
const target = new EventTarget();
|
|
123
|
-
const e = new MouseEvent('mouseenter', { relatedTarget: target });
|
|
124
|
-
expect(e.relatedTarget).toBe(target);
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
await describe('PointerEvent', async () => {
|
|
129
|
-
|
|
130
|
-
await it('should create with defaults', async () => {
|
|
131
|
-
const e = new PointerEvent('pointerdown');
|
|
132
|
-
expect(e.pointerId).toBe(0);
|
|
133
|
-
expect(e.width).toBe(1);
|
|
134
|
-
expect(e.height).toBe(1);
|
|
135
|
-
expect(e.pressure).toBe(0);
|
|
136
|
-
expect(e.tangentialPressure).toBe(0);
|
|
137
|
-
expect(e.tiltX).toBe(0);
|
|
138
|
-
expect(e.tiltY).toBe(0);
|
|
139
|
-
expect(e.twist).toBe(0);
|
|
140
|
-
expect(e.pointerType).toBe('');
|
|
141
|
-
expect(e.isPrimary).toBe(false);
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
await it('should create with init values', async () => {
|
|
145
|
-
const e = new PointerEvent('pointermove', {
|
|
146
|
-
pointerId: 1,
|
|
147
|
-
pointerType: 'mouse',
|
|
148
|
-
isPrimary: true,
|
|
149
|
-
pressure: 0.5,
|
|
150
|
-
width: 10, height: 10,
|
|
151
|
-
clientX: 100, clientY: 200,
|
|
152
|
-
});
|
|
153
|
-
expect(e.pointerId).toBe(1);
|
|
154
|
-
expect(e.pointerType).toBe('mouse');
|
|
155
|
-
expect(e.isPrimary).toBe(true);
|
|
156
|
-
expect(e.pressure).toBe(0.5);
|
|
157
|
-
expect(e.width).toBe(10);
|
|
158
|
-
expect(e.height).toBe(10);
|
|
159
|
-
expect(e.clientX).toBe(100);
|
|
160
|
-
expect(e.clientY).toBe(200);
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
await it('should return empty arrays from coalesced/predicted events', async () => {
|
|
164
|
-
const e = new PointerEvent('pointermove');
|
|
165
|
-
const coalesced = e.getCoalescedEvents();
|
|
166
|
-
const predicted = e.getPredictedEvents();
|
|
167
|
-
expect(Array.isArray(coalesced)).toBe(true);
|
|
168
|
-
expect(coalesced.length).toBe(0);
|
|
169
|
-
expect(Array.isArray(predicted)).toBe(true);
|
|
170
|
-
expect(predicted.length).toBe(0);
|
|
171
|
-
});
|
|
172
|
-
|
|
173
|
-
await it('should have correct Symbol.toStringTag', async () => {
|
|
174
|
-
const e = new PointerEvent('pointerdown');
|
|
175
|
-
expect(Object.prototype.toString.call(e)).toBe('[object PointerEvent]');
|
|
176
|
-
});
|
|
177
|
-
|
|
178
|
-
await it('should be instanceof MouseEvent, UIEvent, and Event', async () => {
|
|
179
|
-
const e = new PointerEvent('pointerdown');
|
|
180
|
-
expect(e instanceof MouseEvent).toBe(true);
|
|
181
|
-
expect(e instanceof UIEvent).toBe(true);
|
|
182
|
-
expect(e instanceof Event).toBe(true);
|
|
183
|
-
});
|
|
184
|
-
|
|
185
|
-
await it('should inherit MouseEvent properties', async () => {
|
|
186
|
-
const e = new PointerEvent('pointerdown', { button: 1, altKey: true });
|
|
187
|
-
expect(e.button).toBe(1);
|
|
188
|
-
expect(e.altKey).toBe(true);
|
|
189
|
-
expect(e.getModifierState('Alt')).toBe(true);
|
|
190
|
-
});
|
|
191
|
-
});
|
|
192
|
-
|
|
193
|
-
await describe('KeyboardEvent', async () => {
|
|
194
|
-
|
|
195
|
-
await it('should create with defaults', async () => {
|
|
196
|
-
const e = new KeyboardEvent('keydown');
|
|
197
|
-
expect(e.key).toBe('');
|
|
198
|
-
expect(e.code).toBe('');
|
|
199
|
-
expect(e.location).toBe(0);
|
|
200
|
-
expect(e.altKey).toBe(false);
|
|
201
|
-
expect(e.ctrlKey).toBe(false);
|
|
202
|
-
expect(e.metaKey).toBe(false);
|
|
203
|
-
expect(e.shiftKey).toBe(false);
|
|
204
|
-
expect(e.repeat).toBe(false);
|
|
205
|
-
expect(e.isComposing).toBe(false);
|
|
206
|
-
expect(e.keyCode).toBe(0);
|
|
207
|
-
expect(e.which).toBe(0);
|
|
208
|
-
});
|
|
209
|
-
|
|
210
|
-
await it('should create with init values', async () => {
|
|
211
|
-
const e = new KeyboardEvent('keydown', {
|
|
212
|
-
key: 'Enter', code: 'Enter',
|
|
213
|
-
location: KeyboardEvent.DOM_KEY_LOCATION_STANDARD,
|
|
214
|
-
shiftKey: true, ctrlKey: true,
|
|
215
|
-
repeat: true, keyCode: 13, which: 13,
|
|
216
|
-
});
|
|
217
|
-
expect(e.key).toBe('Enter');
|
|
218
|
-
expect(e.code).toBe('Enter');
|
|
219
|
-
expect(e.location).toBe(0);
|
|
220
|
-
expect(e.shiftKey).toBe(true);
|
|
221
|
-
expect(e.ctrlKey).toBe(true);
|
|
222
|
-
expect(e.repeat).toBe(true);
|
|
223
|
-
expect(e.keyCode).toBe(13);
|
|
224
|
-
expect(e.which).toBe(13);
|
|
225
|
-
});
|
|
226
|
-
|
|
227
|
-
await it('should have DOM_KEY_LOCATION constants', async () => {
|
|
228
|
-
expect(KeyboardEvent.DOM_KEY_LOCATION_STANDARD).toBe(0);
|
|
229
|
-
expect(KeyboardEvent.DOM_KEY_LOCATION_LEFT).toBe(1);
|
|
230
|
-
expect(KeyboardEvent.DOM_KEY_LOCATION_RIGHT).toBe(2);
|
|
231
|
-
expect(KeyboardEvent.DOM_KEY_LOCATION_NUMPAD).toBe(3);
|
|
232
|
-
});
|
|
233
|
-
|
|
234
|
-
await it('should support getModifierState', async () => {
|
|
235
|
-
const e = new KeyboardEvent('keydown', { ctrlKey: true, metaKey: true });
|
|
236
|
-
expect(e.getModifierState('Control')).toBe(true);
|
|
237
|
-
expect(e.getModifierState('Meta')).toBe(true);
|
|
238
|
-
expect(e.getModifierState('Alt')).toBe(false);
|
|
239
|
-
expect(e.getModifierState('Shift')).toBe(false);
|
|
240
|
-
});
|
|
241
|
-
|
|
242
|
-
await it('should have correct Symbol.toStringTag', async () => {
|
|
243
|
-
const e = new KeyboardEvent('keydown');
|
|
244
|
-
expect(Object.prototype.toString.call(e)).toBe('[object KeyboardEvent]');
|
|
245
|
-
});
|
|
246
|
-
|
|
247
|
-
await it('should be instanceof UIEvent and Event', async () => {
|
|
248
|
-
const e = new KeyboardEvent('keydown');
|
|
249
|
-
expect(e instanceof UIEvent).toBe(true);
|
|
250
|
-
expect(e instanceof Event).toBe(true);
|
|
251
|
-
});
|
|
252
|
-
});
|
|
253
|
-
|
|
254
|
-
await describe('WheelEvent', async () => {
|
|
255
|
-
|
|
256
|
-
await it('should create with defaults', async () => {
|
|
257
|
-
const e = new WheelEvent('wheel');
|
|
258
|
-
expect(e.deltaX).toBe(0);
|
|
259
|
-
expect(e.deltaY).toBe(0);
|
|
260
|
-
expect(e.deltaZ).toBe(0);
|
|
261
|
-
expect(e.deltaMode).toBe(0);
|
|
262
|
-
});
|
|
263
|
-
|
|
264
|
-
await it('should create with init values', async () => {
|
|
265
|
-
const e = new WheelEvent('wheel', {
|
|
266
|
-
deltaX: 10, deltaY: -20, deltaZ: 5,
|
|
267
|
-
deltaMode: WheelEvent.DOM_DELTA_LINE,
|
|
268
|
-
clientX: 100, clientY: 200,
|
|
269
|
-
});
|
|
270
|
-
expect(e.deltaX).toBe(10);
|
|
271
|
-
expect(e.deltaY).toBe(-20);
|
|
272
|
-
expect(e.deltaZ).toBe(5);
|
|
273
|
-
expect(e.deltaMode).toBe(1);
|
|
274
|
-
expect(e.clientX).toBe(100);
|
|
275
|
-
expect(e.clientY).toBe(200);
|
|
276
|
-
});
|
|
277
|
-
|
|
278
|
-
await it('should have DOM_DELTA constants', async () => {
|
|
279
|
-
expect(WheelEvent.DOM_DELTA_PIXEL).toBe(0);
|
|
280
|
-
expect(WheelEvent.DOM_DELTA_LINE).toBe(1);
|
|
281
|
-
expect(WheelEvent.DOM_DELTA_PAGE).toBe(2);
|
|
282
|
-
});
|
|
283
|
-
|
|
284
|
-
await it('should have correct Symbol.toStringTag', async () => {
|
|
285
|
-
const e = new WheelEvent('wheel');
|
|
286
|
-
expect(Object.prototype.toString.call(e)).toBe('[object WheelEvent]');
|
|
287
|
-
});
|
|
288
|
-
|
|
289
|
-
await it('should be instanceof MouseEvent, UIEvent, and Event', async () => {
|
|
290
|
-
const e = new WheelEvent('wheel');
|
|
291
|
-
expect(e instanceof MouseEvent).toBe(true);
|
|
292
|
-
expect(e instanceof UIEvent).toBe(true);
|
|
293
|
-
expect(e instanceof Event).toBe(true);
|
|
294
|
-
});
|
|
295
|
-
});
|
|
296
|
-
|
|
297
|
-
await describe('FocusEvent', async () => {
|
|
298
|
-
|
|
299
|
-
await it('should create with defaults', async () => {
|
|
300
|
-
const e = new FocusEvent('focus');
|
|
301
|
-
expect(e.relatedTarget).toBeNull();
|
|
302
|
-
});
|
|
303
|
-
|
|
304
|
-
await it('should create with relatedTarget', async () => {
|
|
305
|
-
const target = new EventTarget();
|
|
306
|
-
const e = new FocusEvent('blur', { relatedTarget: target });
|
|
307
|
-
expect(e.relatedTarget).toBe(target);
|
|
308
|
-
});
|
|
309
|
-
|
|
310
|
-
await it('should have correct Symbol.toStringTag', async () => {
|
|
311
|
-
const e = new FocusEvent('focus');
|
|
312
|
-
expect(Object.prototype.toString.call(e)).toBe('[object FocusEvent]');
|
|
313
|
-
});
|
|
314
|
-
|
|
315
|
-
await it('should be instanceof UIEvent and Event', async () => {
|
|
316
|
-
const e = new FocusEvent('focus');
|
|
317
|
-
expect(e instanceof UIEvent).toBe(true);
|
|
318
|
-
expect(e instanceof Event).toBe(true);
|
|
319
|
-
});
|
|
320
|
-
});
|
|
321
|
-
};
|
package/tsconfig.json
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"module": "ESNext",
|
|
4
|
-
"types": [
|
|
5
|
-
"node"
|
|
6
|
-
],
|
|
7
|
-
"target": "ESNext",
|
|
8
|
-
"experimentalDecorators": true,
|
|
9
|
-
"emitDeclarationOnly": true,
|
|
10
|
-
"declaration": true,
|
|
11
|
-
"outDir": "lib",
|
|
12
|
-
"rootDir": "src",
|
|
13
|
-
"declarationDir": "lib/types",
|
|
14
|
-
"composite": true,
|
|
15
|
-
"moduleResolution": "bundler",
|
|
16
|
-
"allowImportingTsExtensions": true,
|
|
17
|
-
"skipLibCheck": true,
|
|
18
|
-
"allowJs": true,
|
|
19
|
-
"checkJs": false,
|
|
20
|
-
"strict": false,
|
|
21
|
-
"paths": {
|
|
22
|
-
"dom-events": ["./src/index.ts"]
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
"reflection": false,
|
|
26
|
-
"include": [
|
|
27
|
-
"src/**/*.ts"
|
|
28
|
-
],
|
|
29
|
-
"exclude": [
|
|
30
|
-
"src/test.ts",
|
|
31
|
-
"src/test.mts"
|
|
32
|
-
]
|
|
33
|
-
}
|