elegance-js 2.1.24 → 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
  }
@@ -1,4 +1,4 @@
1
- import { AnyElement, ElementOptionsOrChild } from "../elements/element";
1
+ import { AnyElement, ElementOptionsOrChild, SpecialElementOption } from "../elements/element";
2
2
  /**
3
3
  * Create a custom anchor element that let's you hook into client-side navigation.
4
4
  * If provided a URL that is non-local, it will default to normal navigation.
@@ -8,7 +8,7 @@ import { AnyElement, ElementOptionsOrChild } from "../elements/element";
8
8
  */
9
9
  type ExtraOptions = {
10
10
  /** Mandatory, where this Link should take the user to. */
11
- href: string;
11
+ href: string | SpecialElementOption;
12
12
  /** Set window.scrollTop to 0 whenever this link navigates. */
13
13
  resetScrollOnNav?: boolean;
14
14
  };
@@ -212,7 +212,7 @@ export type SpecificPropsMap = {
212
212
  };
213
213
  meta: {
214
214
  name?: MaybeSpecial<string>;
215
- httpEquiv?: MaybeSpecial<string>;
215
+ "http-equiv"?: MaybeSpecial<string>;
216
216
  content?: MaybeSpecial<string>;
217
217
  charset?: MaybeSpecial<string>;
218
218
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "elegance-js",
3
- "version": "2.1.24",
3
+ "version": "2.1.27",
4
4
  "description": "Web-Framework",
5
5
  "type": "module",
6
6
  "main": "dist/index.mjs",