elegance-js 2.1.26 → 2.1.27

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.
@@ -8,18 +8,18 @@ type SetEvent<E extends Event = Event, T extends EventTarget = EventTarget> = E
8
8
  type ToClientTuple<T extends readonly ServerSubject<any>[]> = {
9
9
  [K in keyof T]: T[K] extends ServerSubject<infer V> ? ClientSubject<V> : never;
10
10
  };
11
- type EventListenerCallback<T extends readonly ServerSubject<any>[]> = (event: SetEvent, ...dependencies: ToClientTuple<T>) => void;
12
11
  declare class EventListenerOption extends SpecialElementOption {
13
12
  id: string;
14
13
  constructor(id: string);
15
14
  mutate(element: EleganceElement<any, any>, optionName: string): void;
16
15
  serialize(optionName: string, elementKey: string): string;
17
16
  }
18
- declare class EventListener<T extends readonly ServerSubject<any>[]> {
17
+ type EventListenerCallback<E extends Event, Target extends EventTarget, T extends readonly ServerSubject<any>[]> = (event: SetEvent<E, Target>, ...dependencies: ToClientTuple<T>) => void;
18
+ declare class EventListener<E extends Event, Target extends EventTarget, T extends readonly ServerSubject<any>[]> {
19
19
  id: string;
20
- callback: EventListenerCallback<T>;
20
+ callback: EventListenerCallback<E, Target, T>;
21
21
  dependencies: string[];
22
- constructor(id: string, callback: EventListenerCallback<T>, dependencies: [...T]);
22
+ constructor(id: string, callback: EventListenerCallback<E, Target, T>, dependencies: [...T]);
23
23
  serialize(): string;
24
24
  }
25
25
  /**
@@ -34,6 +34,6 @@ declare class EventListener<T extends readonly ServerSubject<any>[]> {
34
34
  * @param dependencies An array of ServerSubject's that should be passed into the callback when it is run.
35
35
  * @returns A special element option that you can use as a value on an option of an EleganceElement.
36
36
  */
37
- declare function eventListener<T extends readonly ServerSubject<any>[]>(callback: EventListenerCallback<T>, dependencies: [...T]): EventListenerOption;
37
+ declare function eventListener<E extends Event, Target extends EventTarget, T extends readonly ServerSubject<any>[]>(callback: EventListenerCallback<E, Target, T>, dependencies: [...T]): EventListenerOption;
38
38
  export { eventListener, EventListenerOption, EventListener };
39
39
  export type { EventListenerCallback, SetEvent, ToClientTuple };
@@ -25,7 +25,7 @@ class EventListener {
25
25
  this.dependencies = dependencies.map(d => d.id);
26
26
  }
27
27
  serialize() {
28
- return `{id:\"${this.id}\",callback:${this.callback.toString()},dependencies:[${this.dependencies.map(d => `"${d}"`).join(",")}]}`;
28
+ return `{id:"${this.id}",callback:${this.callback.toString()},dependencies:[${this.dependencies.map(d => `"${d}"`).join(",")}]}`;
29
29
  }
30
30
  }
31
31
  /**
@@ -60,15 +60,15 @@ type ClientEventListenerOption = {
60
60
  */
61
61
  declare class ClientEventListener {
62
62
  id: string;
63
- callback: EventListenerCallback<any>;
63
+ callback: EventListenerCallback<any, any, any>;
64
64
  dependencies: string[];
65
- constructor(id: string, callback: EventListenerCallback<any>, depencencies: string[]);
65
+ constructor(id: string, callback: EventListenerCallback<any, any, any>, depencencies: string[]);
66
66
  call(ev: Event): void;
67
67
  }
68
68
  declare class EventListenerManager {
69
69
  private readonly eventListeners;
70
70
  constructor();
71
- loadValues(serverEventListeners: EventListener<any>[], doOverride?: boolean): void;
71
+ loadValues(serverEventListeners: EventListener<any, any, any>[], doOverride?: boolean): void;
72
72
  hookCallbacks(eventListenerOptions: ClientEventListenerOption[]): void;
73
73
  get(id: string): ClientEventListener | undefined;
74
74
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "elegance-js",
3
- "version": "2.1.26",
3
+ "version": "2.1.27",
4
4
  "description": "Web-Framework",
5
5
  "type": "module",
6
6
  "main": "dist/index.mjs",