@@ -105,6 +105,12 @@ type ElementWithValue =
105105 | HTMLTextAreaElement
106106 | HTMLSelectElement ;
107107
108+ export type DomUtilsEvent < T extends Event = Event > = Omit < T , "currentTarget" > ;
109+
110+ type DomUtilsEventListenerOrEventListenerObject =
111+ | { ( evt : DomUtilsEvent ) : void }
112+ | { handleEvent ( object : DomUtilsEvent ) : void } ;
113+
108114export class ElementWithUtils < T extends HTMLElement = HTMLElement > {
109115 /**
110116 * The native dom element
@@ -238,19 +244,19 @@ export class ElementWithUtils<T extends HTMLElement = HTMLElement> {
238244 */
239245 on < K extends keyof HTMLElementEventMap > (
240246 event : K ,
241- handler : ( this : T , ev : HTMLElementEventMap [ K ] ) => void ,
247+ handler : ( this : T , ev : DomUtilsEvent < HTMLElementEventMap [ K ] > ) => void ,
242248 ) : this;
243- on ( event : string , handler : EventListenerOrEventListenerObject ) : this;
249+ on ( event : string , handler : DomUtilsEventListenerOrEventListenerObject ) : this;
244250 on (
245251 event : keyof HTMLElementEventMap | string ,
246252 handler :
247- | EventListenerOrEventListenerObject
248- | ( ( this : T , ev : Event ) => void ) ,
253+ | DomUtilsEventListenerOrEventListenerObject
254+ | ( ( this : T , ev : DomUtilsEvent ) => void ) ,
249255 ) : this {
250256 // this type was some AI magic but if it works it works
251257 this . native . addEventListener (
252258 event ,
253- handler as EventListenerOrEventListenerObject ,
259+ handler as DomUtilsEventListenerOrEventListenerObject ,
254260 ) ;
255261 return this ;
256262 }
@@ -262,19 +268,22 @@ export class ElementWithUtils<T extends HTMLElement = HTMLElement> {
262268 onChild < K extends keyof HTMLElementEventMap > (
263269 event : K ,
264270 query : string ,
265- handler : ( this : HTMLElement , ev : HTMLElementEventMap [ K ] ) => void ,
271+ handler : (
272+ this : HTMLElement ,
273+ ev : DomUtilsEvent < HTMLElementEventMap [ K ] > ,
274+ ) => void ,
266275 ) : this;
267276 onChild (
268277 event : string ,
269278 query : string ,
270- handler : EventListenerOrEventListenerObject ,
279+ handler : DomUtilsEventListenerOrEventListenerObject ,
271280 ) : this;
272281 onChild (
273282 event : keyof HTMLElementEventMap | string ,
274283 query : string ,
275284 handler :
276- | EventListenerOrEventListenerObject
277- | ( ( this : HTMLElement , ev : Event ) => void ) ,
285+ | DomUtilsEventListenerOrEventListenerObject
286+ | ( ( this : HTMLElement , ev : DomUtilsEvent ) => void ) ,
278287 ) : this {
279288 // this type was some AI magic but if it works it works
280289 this . native . addEventListener ( event , ( e ) => {
@@ -671,14 +680,14 @@ export class ElementsWithUtils<
671680 */
672681 on < K extends keyof HTMLElementEventMap > (
673682 event : K ,
674- handler : ( this : T , ev : HTMLElementEventMap [ K ] ) => void ,
683+ handler : ( this : T , ev : DomUtilsEvent < HTMLElementEventMap [ K ] > ) => void ,
675684 ) : this;
676- on ( event : string , handler : EventListenerOrEventListenerObject ) : this;
685+ on ( event : string , handler : DomUtilsEventListenerOrEventListenerObject ) : this;
677686 on (
678687 event : keyof HTMLElementEventMap | string ,
679688 handler :
680- | EventListenerOrEventListenerObject
681- | ( ( this : T , ev : Event ) => void ) ,
689+ | DomUtilsEventListenerOrEventListenerObject
690+ | ( ( this : T , ev : DomUtilsEvent ) => void ) ,
682691 ) : this {
683692 for ( const item of this ) {
684693 item . on ( event , handler ) ;
0 commit comments