@thednp/shorty 2.0.0-alpha18 → 2.0.0-alpha20
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/README.md +2 -2
- package/dist/shorty.cjs +1 -1
- package/dist/shorty.cjs.map +1 -1
- package/dist/shorty.d.ts +183 -184
- package/dist/shorty.js +1 -1
- package/dist/shorty.js.map +1 -1
- package/dist/shorty.mjs +3 -13
- package/dist/shorty.mjs.map +1 -1
- package/package.json +5 -4
- package/src/event/off.ts +4 -6
- package/src/event/on.ts +4 -6
- package/src/event/one.ts +8 -25
- package/src/index.ts +2 -0
- package/src/interface/event.d.ts +24 -114
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thednp/shorty",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.0alpha20",
|
|
4
4
|
"description": "TypeScript shorties for the web",
|
|
5
5
|
"source": "./src/index.ts",
|
|
6
6
|
"main": "./dist/shorty.js",
|
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
"@types/istanbul-lib-instrument": "^1.7.4",
|
|
38
38
|
"@typescript-eslint/eslint-plugin": "^5.62.0",
|
|
39
39
|
"@typescript-eslint/parser": "^5.62.0",
|
|
40
|
-
"cypress": "^
|
|
40
|
+
"cypress": "^13.1.0",
|
|
41
41
|
"dts-bundle-generator": "^8.0.1",
|
|
42
|
-
"eslint": "^8.
|
|
42
|
+
"eslint": "^8.49.0",
|
|
43
43
|
"eslint-plugin-jsdoc": "^46.5.1",
|
|
44
44
|
"eslint-plugin-prefer-arrow": "^1.2.3",
|
|
45
45
|
"eslint-plugin-prettier": "^4.2.1",
|
|
@@ -65,7 +65,8 @@
|
|
|
65
65
|
"format": "prettier --write \"src/**/*.ts\"",
|
|
66
66
|
"lint:ts": "eslint -c .eslintrc.cjs --ext .ts src",
|
|
67
67
|
"fix:ts": "eslint -c .eslintrc.cjs --ext .ts src --fix",
|
|
68
|
-
"
|
|
68
|
+
"check:ts": "tsc -noEmit",
|
|
69
|
+
"build": "pnpm check:ts && pnpm lint:ts && vite build && pnpm dts",
|
|
69
70
|
"dts": "dts-bundle-generator --config ./dts.config.ts"
|
|
70
71
|
}
|
|
71
72
|
}
|
package/src/event/off.ts
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
import { NativeEventTypes, PossibleEventTarget, SupportedEventHandler } from '../interface/event';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* Remove eventListener from an `EventTarget` object.
|
|
5
3
|
*/
|
|
6
|
-
const off = <T extends
|
|
4
|
+
const off = <T extends EventTarget, L = EventListener>(
|
|
7
5
|
element: T,
|
|
8
|
-
eventName:
|
|
9
|
-
listener:
|
|
6
|
+
eventName: string,
|
|
7
|
+
listener: L,
|
|
10
8
|
options?: AddEventListenerOptions,
|
|
11
9
|
) => {
|
|
12
10
|
const ops = options || false;
|
|
13
|
-
element.removeEventListener(eventName, listener, ops);
|
|
11
|
+
element.removeEventListener(eventName, listener as EventListenerOrEventListenerObject, ops);
|
|
14
12
|
};
|
|
15
13
|
|
|
16
14
|
export default off;
|
package/src/event/on.ts
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
import { NativeEventTypes, PossibleEventTarget, SupportedEventHandler } from '../interface/event';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* Add eventListener to an `EventTarget` object.
|
|
5
3
|
*/
|
|
6
|
-
const on = <T extends
|
|
4
|
+
const on = <T extends EventTarget, L = EventListener>(
|
|
7
5
|
element: T,
|
|
8
|
-
eventName:
|
|
9
|
-
listener:
|
|
6
|
+
eventName: string,
|
|
7
|
+
listener: L,
|
|
10
8
|
options?: AddEventListenerOptions,
|
|
11
9
|
) => {
|
|
12
10
|
const ops = options || false;
|
|
13
|
-
element.addEventListener(eventName, listener, ops);
|
|
11
|
+
element.addEventListener(eventName, listener as EventListenerOrEventListenerObject, ops);
|
|
14
12
|
};
|
|
15
13
|
|
|
16
14
|
export default on;
|
package/src/event/one.ts
CHANGED
|
@@ -1,43 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
EventHandler,
|
|
3
|
-
NativeEvent,
|
|
4
|
-
NativeEventTypes,
|
|
5
|
-
PossibleEventTarget,
|
|
6
|
-
SupportedEventHandler,
|
|
7
|
-
} from '../interface/event';
|
|
8
|
-
|
|
9
1
|
import on from './on';
|
|
10
2
|
import off from './off';
|
|
3
|
+
import { NativeEventHandler } from '../interface/event';
|
|
11
4
|
|
|
12
5
|
/**
|
|
13
6
|
* Add an `eventListener` to an `EventTarget`
|
|
14
7
|
* element and remove it once callback is called.
|
|
15
8
|
*/
|
|
16
|
-
const one = <T extends
|
|
9
|
+
const one = <T extends EventTarget, L = EventListener>(
|
|
17
10
|
element: T,
|
|
18
|
-
eventName:
|
|
19
|
-
listener:
|
|
11
|
+
eventName: string,
|
|
12
|
+
listener: L,
|
|
20
13
|
options?: AddEventListenerOptions,
|
|
21
14
|
) => {
|
|
22
15
|
/** Wrap the listener for easy on -> off */
|
|
23
|
-
const handlerWrapper =
|
|
16
|
+
const handlerWrapper: NativeEventHandler<T> = e => {
|
|
24
17
|
/* istanbul ignore else */
|
|
25
18
|
if (e.target === element || e.currentTarget === element) {
|
|
26
|
-
(listener as
|
|
27
|
-
off(
|
|
28
|
-
element,
|
|
29
|
-
eventName,
|
|
30
|
-
handlerWrapper as unknown as EventListenerObject & SupportedEventHandler<T>,
|
|
31
|
-
options,
|
|
32
|
-
);
|
|
19
|
+
(listener as NativeEventHandler<T>).apply(element, [e]);
|
|
20
|
+
off(element, eventName, handlerWrapper, options);
|
|
33
21
|
}
|
|
34
22
|
};
|
|
35
|
-
on(
|
|
36
|
-
element,
|
|
37
|
-
eventName,
|
|
38
|
-
handlerWrapper as unknown as EventListenerObject & SupportedEventHandler<T>,
|
|
39
|
-
options,
|
|
40
|
-
);
|
|
23
|
+
on(element, eventName, handlerWrapper, options);
|
|
41
24
|
};
|
|
42
25
|
|
|
43
26
|
export default one;
|
package/src/index.ts
CHANGED
package/src/interface/event.d.ts
CHANGED
|
@@ -25,9 +25,9 @@ interface AbstractView {
|
|
|
25
25
|
// Event System
|
|
26
26
|
// ----------------------------------------------------------------------
|
|
27
27
|
// E = EventObject, C = e.currentTarget, T = e.target
|
|
28
|
-
interface BaseEvent<E =
|
|
29
|
-
nativeEvent:
|
|
30
|
-
currentTarget: C
|
|
28
|
+
interface BaseEvent<E = Event, C = unknown, T = unknown> {
|
|
29
|
+
nativeEvent: E;
|
|
30
|
+
currentTarget: C | null;
|
|
31
31
|
target: T & EventTarget;
|
|
32
32
|
bubbles: boolean;
|
|
33
33
|
cancelable: boolean;
|
|
@@ -40,7 +40,7 @@ interface BaseEvent<E = unknown, C = unknown, T = unknown> {
|
|
|
40
40
|
isPropagationStopped(): boolean;
|
|
41
41
|
persist(): void;
|
|
42
42
|
timeStamp: number;
|
|
43
|
-
type: string
|
|
43
|
+
type: string;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
/**
|
|
@@ -50,10 +50,10 @@ interface BaseEvent<E = unknown, C = unknown, T = unknown> {
|
|
|
50
50
|
* This might be a child element to the element on which the event listener is registered.
|
|
51
51
|
* If you thought this should be `EventTarget & T`, see https://github.com/DefinitelyTyped/DefinitelyTyped/issues/11508#issuecomment-256045682
|
|
52
52
|
*/
|
|
53
|
-
type NativeEvent<T =
|
|
53
|
+
type NativeEvent<T = Element, E = Event> = BaseEvent<E, T, T>;
|
|
54
54
|
|
|
55
55
|
interface ClipboardEvent<T = Element> extends NativeEvent<T, NativeClipboardEvent> {
|
|
56
|
-
clipboardData
|
|
56
|
+
clipboardData: DataTransfer;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
interface CompositionEvent<T = Element> extends NativeEvent<T, NativeCompositionEvent> {
|
|
@@ -89,7 +89,7 @@ interface ChangeEvent<T = FormControl> extends FormEvent<T> {
|
|
|
89
89
|
target: EventTarget & T;
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
|
|
92
|
+
type ModifierKey =
|
|
93
93
|
| 'Alt'
|
|
94
94
|
| 'AltGraph'
|
|
95
95
|
| 'CapsLock'
|
|
@@ -193,116 +193,26 @@ interface TransitionEvent<T = Element> extends NativeEvent<T, NativeTransitionEv
|
|
|
193
193
|
//
|
|
194
194
|
// Event Handler Types
|
|
195
195
|
// ----------------------------------------------------------------------
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
type NativeEventHandler<T = Element> = EventHandler<NativeEvent<T>>;
|
|
199
|
-
type ClipboardEventHandler<T = Element> = EventHandler<ClipboardEvent<T>>;
|
|
200
|
-
type CompositionEventHandler<T = Element> = EventHandler<CompositionEvent<T>>;
|
|
201
|
-
type DragEventHandler<T = Element> = EventHandler<DragEvent<T>>;
|
|
202
|
-
type FocusEventHandler<T = Element> = EventHandler<FocusEvent<T>>;
|
|
203
|
-
type FormEventHandler<T = Element> = EventHandler<FormEvent<T>>;
|
|
204
|
-
type ChangeEventHandler<T = Element> = EventHandler<ChangeEvent<T>>;
|
|
205
|
-
type KeyboardEventHandler<T = Element> = EventHandler<KeyboardEvent<T>>;
|
|
206
|
-
type MouseEventHandler<T = Element> = EventHandler<MouseEvent<T>>;
|
|
207
|
-
type TouchEventHandler<T = Element> = EventHandler<TouchEvent<T>>;
|
|
208
|
-
type PointerEventHandler<T = Element> = EventHandler<PointerEvent<T>>;
|
|
209
|
-
type UIEventHandler<T = Element> = EventHandler<UIEvent<T>>;
|
|
210
|
-
type WheelEventHandler<T = Element> = EventHandler<WheelEvent<T>>;
|
|
211
|
-
type AnimationEventHandler<T = Element> = EventHandler<AnimationEvent<T>>;
|
|
212
|
-
type TransitionEventHandler<T = Element> = EventHandler<TransitionEvent<T>>;
|
|
213
|
-
|
|
214
|
-
type SupportedEventObject<T> =
|
|
215
|
-
| NativeEvent<T>
|
|
216
|
-
| ClipboardEvent<T>
|
|
217
|
-
| CompositionEvent<T>
|
|
218
|
-
| DragEvent<T>
|
|
219
|
-
| FocusEvent<T>
|
|
220
|
-
| FormEvent<T>
|
|
221
|
-
| ChangeEvent<T>
|
|
222
|
-
| KeyboardEvent<T>
|
|
223
|
-
| MouseEvent<T>
|
|
224
|
-
| TouchEvent<T>
|
|
225
|
-
| PointerEvent<T>
|
|
226
|
-
| UIEvent<T>
|
|
227
|
-
| WheelEvent<T>
|
|
228
|
-
| AnimationEvent<T>
|
|
229
|
-
| TransitionEvent<T>;
|
|
230
|
-
|
|
231
|
-
type SupportedEventHandler<T> =
|
|
232
|
-
| NativeEventHandler<T>
|
|
233
|
-
| ClipboardEventHandler<T>
|
|
234
|
-
| CompositionEventHandler<T>
|
|
235
|
-
| DragEventHandler<T>
|
|
236
|
-
| FocusEventHandler<T>
|
|
237
|
-
| FormEventHandler<T>
|
|
238
|
-
| ChangeEventHandler<T>
|
|
239
|
-
| KeyboardEventHandler<T>
|
|
240
|
-
| MouseEventHandler<T>
|
|
241
|
-
| TouchEventHandler<T>
|
|
242
|
-
| PointerEventHandler<T>
|
|
243
|
-
| UIEventHandler<T>
|
|
244
|
-
| WheelEventHandler<T>
|
|
245
|
-
| AnimationEventHandler<T>
|
|
246
|
-
| TransitionEventHandler<T>;
|
|
247
|
-
|
|
248
|
-
type NativeEventTypes =
|
|
249
|
-
| 'DOMContentLoaded'
|
|
250
|
-
| 'DOMMouseScroll'
|
|
251
|
-
| 'abort'
|
|
252
|
-
| 'beforeunload'
|
|
253
|
-
| 'blur'
|
|
254
|
-
| 'change'
|
|
255
|
-
| 'click'
|
|
256
|
-
| 'contextmenu'
|
|
257
|
-
| 'dblclick'
|
|
258
|
-
| 'error'
|
|
259
|
-
| 'focus'
|
|
260
|
-
| 'focusin'
|
|
261
|
-
| 'focusout'
|
|
262
|
-
| 'gesturechange'
|
|
263
|
-
| 'gestureend'
|
|
264
|
-
| 'gesturestart'
|
|
265
|
-
| 'hover'
|
|
266
|
-
| 'keydown'
|
|
267
|
-
| 'keypress'
|
|
268
|
-
| 'keyup'
|
|
269
|
-
| 'load'
|
|
270
|
-
| 'mousedown'
|
|
271
|
-
| 'mouseenter'
|
|
272
|
-
| 'mousein'
|
|
273
|
-
| 'mouseleave'
|
|
274
|
-
| 'mousemove'
|
|
275
|
-
| 'mouseout'
|
|
276
|
-
| 'mouseover'
|
|
277
|
-
| 'mouseup'
|
|
278
|
-
| 'mousewheel'
|
|
279
|
-
| 'move'
|
|
280
|
-
| 'orientationchange'
|
|
281
|
-
| 'pointercancel'
|
|
282
|
-
| 'pointerdown'
|
|
283
|
-
| 'pointerleave'
|
|
284
|
-
| 'pointermove'
|
|
285
|
-
| 'pointerup'
|
|
286
|
-
| 'readystatechange'
|
|
287
|
-
| 'reset'
|
|
288
|
-
| 'resize'
|
|
289
|
-
| 'scroll'
|
|
290
|
-
| 'select'
|
|
291
|
-
| 'selectend'
|
|
292
|
-
| 'selectstart'
|
|
293
|
-
| 'submit'
|
|
294
|
-
| 'touchcancel'
|
|
295
|
-
| 'touchend'
|
|
296
|
-
| 'touchmove'
|
|
297
|
-
| 'touchstart'
|
|
298
|
-
| 'unload';
|
|
196
|
+
// (this: unknown & EventTarget, event: E): void;
|
|
197
|
+
type EventHandler<T = Element, E = Event | NativeEvent<T>> = (event: E) => void;
|
|
198
|
+
type NativeEventHandler<T = Element> = EventHandler<T, NativeEvent<T>>;
|
|
199
|
+
type ClipboardEventHandler<T = Element> = EventHandler<T, ClipboardEvent<T>>;
|
|
200
|
+
type CompositionEventHandler<T = Element> = EventHandler<T, CompositionEvent<T>>;
|
|
201
|
+
type DragEventHandler<T = Element> = EventHandler<T, DragEvent<T>>;
|
|
202
|
+
type FocusEventHandler<T = Element> = EventHandler<T, FocusEvent<T>>;
|
|
203
|
+
type FormEventHandler<T = Element> = EventHandler<T, FormEvent<T>>;
|
|
204
|
+
type ChangeEventHandler<T = Element> = EventHandler<T, ChangeEvent<T>>;
|
|
205
|
+
type KeyboardEventHandler<T = Element> = EventHandler<T, KeyboardEvent<T>>;
|
|
206
|
+
type MouseEventHandler<T = Element> = EventHandler<T, MouseEvent<T>>;
|
|
207
|
+
type TouchEventHandler<T = Element> = EventHandler<T, TouchEvent<T>>;
|
|
208
|
+
type PointerEventHandler<T = Element> = EventHandler<T, PointerEvent<T>>;
|
|
209
|
+
type UIEventHandler<T = Element> = EventHandler<T, UIEvent<T>>;
|
|
210
|
+
type WheelEventHandler<T = Element> = EventHandler<T, WheelEvent<T>>;
|
|
211
|
+
type AnimationEventHandler<T = Element> = EventHandler<T, AnimationEvent<T>>;
|
|
212
|
+
type TransitionEventHandler<T = Element> = EventHandler<T, TransitionEvent<T>>;
|
|
299
213
|
type PossibleEventTarget = EventTarget & (Element | Document | Window);
|
|
300
214
|
|
|
301
215
|
export {
|
|
302
|
-
SupportedEventObject,
|
|
303
|
-
SupportedEventHandler,
|
|
304
|
-
EventHandler,
|
|
305
|
-
NativeEventTypes,
|
|
306
216
|
NativeEvent,
|
|
307
217
|
ClipboardEvent,
|
|
308
218
|
CompositionEvent,
|