1
- import { Style } from "@nativescript/core" ;
1
+ import { Style , ViewBase } from "@nativescript/core" ;
2
2
import {
3
3
Document ,
4
4
DOMEvent ,
5
5
HTMLElementTagNameMap ,
6
6
Node ,
7
7
NSComponentsMap ,
8
8
NSCustomComponentsMap ,
9
+ PseudoElementsMap
9
10
} from "dominative" ;
10
11
import { JSX as SolidJSX } from "solid-js" ;
11
12
@@ -28,7 +29,7 @@ import { JSX as SolidJSX } from "solid-js";
28
29
* Read more about the render function here:
29
30
* @link https://www.solidjs.com/docs/latest#render
30
31
*/
31
- export function render ( app : ( ) => JSX . Element , root : Node ) :void ;
32
+ export function render ( app : ( ) => JSX . Element , root : Node ) : void ;
32
33
33
34
export type Filter <
34
35
Set ,
@@ -39,6 +40,15 @@ export type MapNativeViewEvents<T, C> = {
39
40
[ K in T as `on:${K } `] : ( event : DOMEvent < C > ) => void ;
40
41
} ;
41
42
43
+ export type MapPseudoElementEvents < T , C > = {
44
+ [ K in T as `on:${K } `] : ( event : {
45
+ view ?: ViewBase ;
46
+ index ?: number ;
47
+ item ?: any ;
48
+ data ?: any
49
+ } ) => void ;
50
+ } ;
51
+
42
52
type NSComponentEventsMap = {
43
53
[ K in keyof NSComponentsMap ] : MapNativeViewEvents <
44
54
HTMLElementTagNameMap [ K ] [ "eventNames" ] ,
@@ -49,6 +59,13 @@ type NSComponentEventsMap = {
49
59
NSCustomComponentsMap [ K ] [ "eventNames" ] ,
50
60
NSCustomComponentsMap [ K ]
51
61
> ;
62
+ } & {
63
+ [ K in keyof Pick < PseudoElementsMap , "ItemTemplate" > ] : MapPseudoElementEvents <
64
+ "createView" | "itemLoading" ,
65
+ PseudoElementsMap [ K ]
66
+ > ;
67
+ } & {
68
+ [ K in keyof Omit < PseudoElementsMap , "ItemTemplate" > ] : { } ;
52
69
} ;
53
70
54
71
export type IgnoredKeys =
@@ -196,7 +213,7 @@ declare global {
196
213
interface CustomCaptureEvents { }
197
214
198
215
type JSXElementAttributes < K > = SolidJSX . CustomAttributes <
199
- NSComponentsMap [ K ]
216
+ NSComponentsMap [ K ]
200
217
> &
201
218
Partial <
202
219
DefineNSComponent < HTMLElementTagNameMap [ K ] , NSComponentEventsMap [ K ] > &
0 commit comments