@openwebf/react-router 0.3.2 → 0.3.3
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/dist/index.d.ts +62 -2
- package/dist/index.esm.js +134 -23
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +137 -22
- package/dist/index.js.map +1 -1
- package/dist/routes/Routes.d.ts +24 -0
- package/dist/routes/Routes.d.ts.map +1 -1
- package/dist/routes/utils.d.ts +37 -0
- package/dist/routes/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/routes/router.d.ts +0 -79
- package/dist/routes/router.d.ts.map +0 -1
- package/dist/routes/routerConfig.d.ts +0 -147
- package/dist/routes/routerConfig.d.ts.map +0 -1
- package/dist/utils/CreateComponent.d.ts +0 -86
- package/dist/utils/CreateComponent.d.ts.map +0 -1
package/dist/routes/utils.d.ts
CHANGED
|
@@ -75,5 +75,42 @@ export declare const WebFRouter: {
|
|
|
75
75
|
*/
|
|
76
76
|
restorablePopAndPushNamed: <T extends RoutePath>(path: T, state?: any) => Promise<string>;
|
|
77
77
|
};
|
|
78
|
+
/**
|
|
79
|
+
* Route parameters extracted from dynamic routes
|
|
80
|
+
*/
|
|
81
|
+
export interface RouteParams {
|
|
82
|
+
[key: string]: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Route match result
|
|
86
|
+
*/
|
|
87
|
+
export interface RouteMatch {
|
|
88
|
+
path: string;
|
|
89
|
+
params: RouteParams;
|
|
90
|
+
isExact: boolean;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Convert a route pattern to a regular expression
|
|
94
|
+
* @param pattern Route pattern like "/user/:userId" or "/category/:catId/product/:prodId"
|
|
95
|
+
* @returns Object with regex and parameter names
|
|
96
|
+
*/
|
|
97
|
+
export declare function pathToRegex(pattern: string): {
|
|
98
|
+
regex: RegExp;
|
|
99
|
+
paramNames: string[];
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Match a pathname against a route pattern and extract parameters
|
|
103
|
+
* @param pattern Route pattern like "/user/:userId"
|
|
104
|
+
* @param pathname Actual pathname like "/user/123"
|
|
105
|
+
* @returns Match result with extracted parameters or null if no match
|
|
106
|
+
*/
|
|
107
|
+
export declare function matchPath(pattern: string, pathname: string): RouteMatch | null;
|
|
108
|
+
/**
|
|
109
|
+
* Find the best matching route from a list of route patterns
|
|
110
|
+
* @param routes Array of route patterns
|
|
111
|
+
* @param pathname Current pathname
|
|
112
|
+
* @returns Best match or null if no routes match
|
|
113
|
+
*/
|
|
114
|
+
export declare function matchRoutes(routes: string[], pathname: string): RouteMatch | null;
|
|
78
115
|
export {};
|
|
79
116
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/routes/utils.ts"],"names":[],"mappings":"AAQA,KAAK,SAAS,GAAG,MAAM,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,UAAU;IACrB;;OAEG;;IAKH;;OAEG;mBAEiC,SAAS;IAG7C;;;OAGG;WACU,CAAC,SAAS,SAAS,QAAQ,CAAC,UAAU,GAAG;IAKtD;;;OAGG;cACa,CAAC,SAAS,SAAS,QAAQ,CAAC,UAAU,GAAG;IAIzD;;OAEG;;IAKH;;;OAGG;mBACY,GAAG;IAIlB;;OAEG;qBACc,SAAS;IAI1B;;OAEG;sBACqB,CAAC,SAAS,SAAS,QAAQ,CAAC,UAAU,GAAG;IAIjE;;OAEG;8BAC6B,CAAC,SAAS,SAAS,QAAQ,CAAC,SAAS,GAAG,aAAa,SAAS;IAI9F;;OAEG;mCACkC,CAAC,SAAS,SAAS,WAAW,CAAC,aAAa,SAAS,UAAU,GAAG;IAIvG;;OAEG;kBACS,OAAO;IAInB;;;OAGG;wBACiB,GAAG,KAAG,OAAO;IAIjC;;OAEG;uBACgB,GAAG,QAAQ,MAAM;IAIpC;;OAEG;0BACmB,GAAG,QAAQ,MAAM;IAIvC;;;OAGG;uCACgC,GAAG,QAAQ,MAAM,KAAG,MAAM;IAI7D;;;OAGG;gCAC+B,CAAC,SAAS,SAAS,QAAQ,CAAC,UAAU,GAAG,KAAG,OAAO,CAAC,MAAM,CAAC;CAG9F,CAAA"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/routes/utils.ts"],"names":[],"mappings":"AAQA,KAAK,SAAS,GAAG,MAAM,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,UAAU;IACrB;;OAEG;;IAKH;;OAEG;mBAEiC,SAAS;IAG7C;;;OAGG;WACU,CAAC,SAAS,SAAS,QAAQ,CAAC,UAAU,GAAG;IAKtD;;;OAGG;cACa,CAAC,SAAS,SAAS,QAAQ,CAAC,UAAU,GAAG;IAIzD;;OAEG;;IAKH;;;OAGG;mBACY,GAAG;IAIlB;;OAEG;qBACc,SAAS;IAI1B;;OAEG;sBACqB,CAAC,SAAS,SAAS,QAAQ,CAAC,UAAU,GAAG;IAIjE;;OAEG;8BAC6B,CAAC,SAAS,SAAS,QAAQ,CAAC,SAAS,GAAG,aAAa,SAAS;IAI9F;;OAEG;mCACkC,CAAC,SAAS,SAAS,WAAW,CAAC,aAAa,SAAS,UAAU,GAAG;IAIvG;;OAEG;kBACS,OAAO;IAInB;;;OAGG;wBACiB,GAAG,KAAG,OAAO;IAIjC;;OAEG;uBACgB,GAAG,QAAQ,MAAM;IAIpC;;OAEG;0BACmB,GAAG,QAAQ,MAAM;IAIvC;;;OAGG;uCACgC,GAAG,QAAQ,MAAM,KAAG,MAAM;IAI7D;;;OAGG;gCAC+B,CAAC,SAAS,SAAS,QAAQ,CAAC,UAAU,GAAG,KAAG,OAAO,CAAC,MAAM,CAAC;CAG9F,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAmBpF;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAmB9E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAQjF"}
|
package/package.json
CHANGED
package/dist/routes/router.d.ts
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
type RoutePath = string;
|
|
2
|
-
/**
|
|
3
|
-
* WebF Router object - provides comprehensive navigation APIs
|
|
4
|
-
* Combines web-like history management with Flutter-like navigation patterns
|
|
5
|
-
*/
|
|
6
|
-
export declare const WebFRouter: {
|
|
7
|
-
/**
|
|
8
|
-
* Get the current state object associated with the history entry
|
|
9
|
-
*/
|
|
10
|
-
readonly state: any;
|
|
11
|
-
/**
|
|
12
|
-
* Get the current route path
|
|
13
|
-
*/
|
|
14
|
-
readonly path: RoutePath;
|
|
15
|
-
/**
|
|
16
|
-
* Navigate to a specified route
|
|
17
|
-
* Applies route guards for permission checks before navigation
|
|
18
|
-
*/
|
|
19
|
-
push: <P extends RoutePath>(path: P, state?: any) => Promise<void>;
|
|
20
|
-
/**
|
|
21
|
-
* Replace the current route without adding to history
|
|
22
|
-
* Applies route guards for permission checks before navigation
|
|
23
|
-
*/
|
|
24
|
-
replace: <P extends RoutePath>(path: P, state?: any) => Promise<void>;
|
|
25
|
-
/**
|
|
26
|
-
* Navigate back to the previous route
|
|
27
|
-
*/
|
|
28
|
-
back: () => void;
|
|
29
|
-
/**
|
|
30
|
-
* Close the current screen and return to the previous one
|
|
31
|
-
* Flutter-style navigation method
|
|
32
|
-
*/
|
|
33
|
-
pop: (result?: any) => void;
|
|
34
|
-
/**
|
|
35
|
-
* Pop routes until reaching a specific route
|
|
36
|
-
*/
|
|
37
|
-
popUntil: (path: RoutePath) => void;
|
|
38
|
-
/**
|
|
39
|
-
* Pop the current route and push a new named route
|
|
40
|
-
*/
|
|
41
|
-
popAndPushNamed: <T extends RoutePath>(path: T, state?: any) => Promise<void>;
|
|
42
|
-
/**
|
|
43
|
-
* Push a new route and remove routes until reaching a specific route
|
|
44
|
-
*/
|
|
45
|
-
pushNamedAndRemoveUntil: <T extends RoutePath>(path: T, state: any, untilPath: RoutePath) => Promise<void>;
|
|
46
|
-
/**
|
|
47
|
-
* Push a new route and remove all routes until a specific route (Flutter-style)
|
|
48
|
-
*/
|
|
49
|
-
pushNamedAndRemoveUntilRoute: <T extends RoutePath>(newPath: T, untilPath: RoutePath, state?: any) => Promise<void>;
|
|
50
|
-
/**
|
|
51
|
-
* Check if the navigator can go back
|
|
52
|
-
*/
|
|
53
|
-
canPop: () => boolean;
|
|
54
|
-
/**
|
|
55
|
-
* Pop the current route if possible
|
|
56
|
-
* Returns true if the pop was successful, false otherwise
|
|
57
|
-
*/
|
|
58
|
-
maybePop: (result?: any) => boolean;
|
|
59
|
-
/**
|
|
60
|
-
* Push a new state to the history stack (web-style navigation)
|
|
61
|
-
*/
|
|
62
|
-
pushState: (state: any, name: string) => void;
|
|
63
|
-
/**
|
|
64
|
-
* Replace the current history entry with a new one (web-style navigation)
|
|
65
|
-
*/
|
|
66
|
-
replaceState: (state: any, name: string) => void;
|
|
67
|
-
/**
|
|
68
|
-
* Pop and push with restoration capability
|
|
69
|
-
* Returns a restoration ID string
|
|
70
|
-
*/
|
|
71
|
-
restorablePopAndPushState: (state: any, name: string) => string;
|
|
72
|
-
/**
|
|
73
|
-
* Pop and push named route with restoration capability
|
|
74
|
-
* Returns a restoration ID string
|
|
75
|
-
*/
|
|
76
|
-
restorablePopAndPushNamed: <T extends RoutePath>(path: T, state?: any) => Promise<string>;
|
|
77
|
-
};
|
|
78
|
-
export {};
|
|
79
|
-
//# sourceMappingURL=router.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/routes/router.ts"],"names":[],"mappings":"AAQA,KAAK,SAAS,GAAG,MAAM,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,UAAU;IACrB;;OAEG;;IAKH;;OAEG;mBAEiC,SAAS;IAG7C;;;OAGG;WACU,CAAC,SAAS,SAAS,QAAQ,CAAC,UAAU,GAAG;IAItD;;;OAGG;cACa,CAAC,SAAS,SAAS,QAAQ,CAAC,UAAU,GAAG;IAIzD;;OAEG;;IAKH;;;OAGG;mBACY,GAAG;IAIlB;;OAEG;qBACc,SAAS;IAI1B;;OAEG;sBACqB,CAAC,SAAS,SAAS,QAAQ,CAAC,UAAU,GAAG;IAIjE;;OAEG;8BAC6B,CAAC,SAAS,SAAS,QAAQ,CAAC,SAAS,GAAG,aAAa,SAAS;IAI9F;;OAEG;mCACkC,CAAC,SAAS,SAAS,WAAW,CAAC,aAAa,SAAS,UAAU,GAAG;IAIvG;;OAEG;kBACS,OAAO;IAInB;;;OAGG;wBACiB,GAAG,KAAG,OAAO;IAIjC;;OAEG;uBACgB,GAAG,QAAQ,MAAM;IAIpC;;OAEG;0BACmB,GAAG,QAAQ,MAAM;IAIvC;;;OAGG;uCACgC,GAAG,QAAQ,MAAM,KAAG,MAAM;IAI7D;;;OAGG;gCAC+B,CAAC,SAAS,SAAS,QAAQ,CAAC,UAAU,GAAG,KAAG,OAAO,CAAC,MAAM,CAAC;CAG9F,CAAA"}
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import type { P2POrder, P2PTrading } from '@internal/types';
|
|
2
|
-
export type GetRouteState<T extends RoutePath> = T extends keyof RouteState ? RouteState[T] & DeepLinkParams : never;
|
|
3
|
-
export type GetNativeRouteState<T extends NativePath> = T extends keyof NativeState ? NativeState[T] : never;
|
|
4
|
-
export type GetH5State<T extends H5Path> = T extends keyof H5State ? H5State[T] : never;
|
|
5
|
-
export interface DeepLinkParams {
|
|
6
|
-
/**
|
|
7
|
-
* 完整的深链参数
|
|
8
|
-
*/
|
|
9
|
-
dp_origin_query?: string;
|
|
10
|
-
/**
|
|
11
|
-
* 在深链中指定页面路径,适用于希望根路由保持为首页,但又能跳转到指定路径的场景
|
|
12
|
-
*/
|
|
13
|
-
$target?: 'order';
|
|
14
|
-
utm_source?: string;
|
|
15
|
-
utm_medium?: string;
|
|
16
|
-
utm_campaign?: string;
|
|
17
|
-
[key: string]: any;
|
|
18
|
-
}
|
|
19
|
-
export declare enum RoutePath {
|
|
20
|
-
/** P2P 首页 */
|
|
21
|
-
P2P = "/p2p",
|
|
22
|
-
/** P2P 下单页 */
|
|
23
|
-
P2PCheckout = "/p2p/checkout",
|
|
24
|
-
/** P2P 下单结果页 */
|
|
25
|
-
P2PCheckoutResult = "/p2p/checkout-result",
|
|
26
|
-
/** P2P 订单 - 已创建 */
|
|
27
|
-
P2POrderCreated = "/p2p/order/created",
|
|
28
|
-
/** P2P 订单 - 等待买家付款 */
|
|
29
|
-
P2POrderPendingPayment = "/p2p/order/pending-payment",
|
|
30
|
-
/** P2P 订单 - 等待卖家放币 */
|
|
31
|
-
P2POrderPendingRelease = "/p2p/order/pending-release",
|
|
32
|
-
/** P2P 订单 - 终态 */
|
|
33
|
-
P2POrderResult = "/p2p/order/result",
|
|
34
|
-
/** P2P 订单 - 聊天页 */
|
|
35
|
-
P2POrderChat = "/p2p/order/chat",
|
|
36
|
-
/** P2P 订单列表 */
|
|
37
|
-
P2POrderList = "/p2p/orders",
|
|
38
|
-
/** P2P 广告列表 */
|
|
39
|
-
P2PAdvertisingList = "/p2p/ads",
|
|
40
|
-
/** P2P 商家发广告 */
|
|
41
|
-
P2PAdvertisingDetail = "/p2p/ads/detail",
|
|
42
|
-
/** P2P 个人中心 */
|
|
43
|
-
P2PUserCenter = "/p2p/manage",
|
|
44
|
-
/** P2P 个人中心 - 支付方式列表 */
|
|
45
|
-
P2PPaymentMethod = "/p2p/manage/payment-method",
|
|
46
|
-
/** P2P 个人中心 - 支付方式详情 */
|
|
47
|
-
P2PPaymentMethodDetail = "/p2p/manage/payment-method/detail",
|
|
48
|
-
/** P2P 订单 - 申诉详情 */
|
|
49
|
-
P2POrderAppealDetail = "/p2p/order/appeal-detail"
|
|
50
|
-
}
|
|
51
|
-
export interface RouteState {
|
|
52
|
-
[RoutePath.P2PCheckout]: {
|
|
53
|
-
market: P2PTrading.Market;
|
|
54
|
-
};
|
|
55
|
-
[RoutePath.P2PCheckoutResult]: {
|
|
56
|
-
orderInfo: P2POrder.OrderInfo;
|
|
57
|
-
};
|
|
58
|
-
[RoutePath.P2POrderCreated]: P2POrderPageState;
|
|
59
|
-
[RoutePath.P2POrderPendingPayment]: P2POrderPageState;
|
|
60
|
-
[RoutePath.P2POrderPendingRelease]: P2POrderPageState;
|
|
61
|
-
[RoutePath.P2POrderResult]: P2POrderPageState;
|
|
62
|
-
[RoutePath.P2POrderAppealDetail]: {
|
|
63
|
-
id: string | undefined;
|
|
64
|
-
orderInfo: P2POrder.OrderInfo;
|
|
65
|
-
};
|
|
66
|
-
[RoutePath.P2PPaymentMethodDetail]: {
|
|
67
|
-
/** 来源 */
|
|
68
|
-
source?: 'p2p_user_center';
|
|
69
|
-
/** 当前需要编辑的用户支付方式 ID,不允许用户更改 */
|
|
70
|
-
userPaymentMethodId?: number;
|
|
71
|
-
/** 当前需要锁定的支付方式 ID,不允许用户更改 */
|
|
72
|
-
lockedPaymentMethodId?: number;
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
export type P2POrderPageState = {
|
|
76
|
-
/** 订单 ID */
|
|
77
|
-
orderId: string;
|
|
78
|
-
/** 订单详情 */
|
|
79
|
-
orderInfo: P2POrder.OrderInfo;
|
|
80
|
-
};
|
|
81
|
-
/**
|
|
82
|
-
* 获取每个页面的中文名称,主要用于各种事件上报
|
|
83
|
-
*/
|
|
84
|
-
export declare function getRouteName(route: RoutePath): string;
|
|
85
|
-
/**
|
|
86
|
-
* App 内部链接
|
|
87
|
-
*
|
|
88
|
-
* @see https://l7jipx1bfq.larksuite.com/wiki/H1ekwDc40imVQ2kym7qu87sVsEe?sheet=51ac2c
|
|
89
|
-
*/
|
|
90
|
-
export declare enum NativePath {
|
|
91
|
-
/** 合约交易 */
|
|
92
|
-
Contract = "mexc://page/main/future",
|
|
93
|
-
/** 现货交易 */
|
|
94
|
-
Spot = "mexc://page/main/trade",
|
|
95
|
-
/** 资产 Tab */
|
|
96
|
-
Assets = "mexc://page/main/asset",
|
|
97
|
-
/** 划转 */
|
|
98
|
-
Transfer = "mexc://page/asset/transfer",
|
|
99
|
-
/** 账户中心 */
|
|
100
|
-
Account = "mexc://page/account",
|
|
101
|
-
/** 安全中心 */
|
|
102
|
-
Security = "mexc://page/security",
|
|
103
|
-
/** KYC 主页*/
|
|
104
|
-
KYC = "mexc://page/kyc",
|
|
105
|
-
/** 登录注册 */
|
|
106
|
-
Login = "mexc://page/auth/login-register",
|
|
107
|
-
/** 绑定手机 */
|
|
108
|
-
BindMobile = "mexc://page/security/bind/mobile",
|
|
109
|
-
/** 绑定邮箱 */
|
|
110
|
-
BindEmail = "mexc://page/security/bind/email",
|
|
111
|
-
/** 客服 */
|
|
112
|
-
CustomerService = "mexc://page/support/customer-service"
|
|
113
|
-
}
|
|
114
|
-
/** App 内部链接参数 */
|
|
115
|
-
export interface NativeState {
|
|
116
|
-
[NativePath.Assets]: {
|
|
117
|
-
tab?: 'overview' | 'spot' | 'dex' | 'future' | 'fiat' | 'strategy';
|
|
118
|
-
};
|
|
119
|
-
[NativePath.Contract]: {
|
|
120
|
-
symbol?: string;
|
|
121
|
-
source?: string;
|
|
122
|
-
};
|
|
123
|
-
[NativePath.Transfer]: {
|
|
124
|
-
coin_id: string;
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
export declare enum H5Path {
|
|
128
|
-
/** P2P 商家主页 */
|
|
129
|
-
P2PMerchant = "/buy-crypto/merchant",
|
|
130
|
-
/** P2P 订单聊天页 */
|
|
131
|
-
P2POrderDetailForChat = "/buy-crypto/order-processing",
|
|
132
|
-
/** P2P 订单列表 */
|
|
133
|
-
P2POrderList = "/buy-crypto/order-processing/fiat-order-list?initOrderState=2",
|
|
134
|
-
/** P2P 我的广告列表 */
|
|
135
|
-
P2PAdvertiseList = "/buy-crypto/create-advertising/list",
|
|
136
|
-
/** P2P 个人中心 */
|
|
137
|
-
P2PUserCenter = "/buy-crypto/payment"
|
|
138
|
-
}
|
|
139
|
-
export interface H5State {
|
|
140
|
-
[H5Path.P2POrderDetailForChat]: {
|
|
141
|
-
id: string;
|
|
142
|
-
};
|
|
143
|
-
[H5Path.P2PMerchant]: {
|
|
144
|
-
id: string;
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
//# sourceMappingURL=routerConfig.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routerConfig.d.ts","sourceRoot":"","sources":["../../src/routes/routerConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2018 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
5
|
-
*/
|
|
6
|
-
import React from 'react';
|
|
7
|
-
type DistributiveOmit<T, K extends string | number | symbol> = T extends any ? (K extends keyof T ? Omit<T, K> : T) : T;
|
|
8
|
-
type PropsWithoutRef<T> = DistributiveOmit<T, 'ref'>;
|
|
9
|
-
/**
|
|
10
|
-
* Creates a type to be used for the props of a web component used directly in
|
|
11
|
-
* React JSX.
|
|
12
|
-
*
|
|
13
|
-
* Example:
|
|
14
|
-
*
|
|
15
|
-
* ```ts
|
|
16
|
-
* declare module "react" {
|
|
17
|
-
* namespace JSX {
|
|
18
|
-
* interface IntrinsicElements {
|
|
19
|
-
* 'x-foo': WebComponentProps<XFoo>;
|
|
20
|
-
* }
|
|
21
|
-
* }
|
|
22
|
-
* }
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
export type WebComponentProps<I extends HTMLElement> = React.DetailedHTMLProps<React.HTMLAttributes<I>, I> & ElementProps<I>;
|
|
26
|
-
/**
|
|
27
|
-
* Type of the React component wrapping the web component. This is the return
|
|
28
|
-
* type of `createComponent`.
|
|
29
|
-
*/
|
|
30
|
-
export type ReactWebComponent<I extends HTMLElement, E extends EventNames = {}> = React.ForwardRefExoticComponent<PropsWithoutRef<ComponentProps<I, E>> & React.RefAttributes<I>>;
|
|
31
|
-
type ElementProps<I> = Partial<Omit<I, keyof HTMLElement>>;
|
|
32
|
-
type ComponentProps<I, E extends EventNames = {}> = Omit<React.HTMLAttributes<I>, keyof E | keyof ElementProps<I>> & ElementProps<I>;
|
|
33
|
-
/**
|
|
34
|
-
* Type used to cast an event name with an event type when providing the
|
|
35
|
-
* `events` option to `createComponent` for better typing of the event handler
|
|
36
|
-
* prop.
|
|
37
|
-
*
|
|
38
|
-
* Example:
|
|
39
|
-
*
|
|
40
|
-
* ```ts
|
|
41
|
-
* const FooComponent = createComponent({
|
|
42
|
-
* ...
|
|
43
|
-
* events: {
|
|
44
|
-
* onfoo: 'foo' as EventName<FooEvent>,
|
|
45
|
-
* }
|
|
46
|
-
* });
|
|
47
|
-
* ```
|
|
48
|
-
*
|
|
49
|
-
* `onfoo` prop will have the type `(e: FooEvent) => void`.
|
|
50
|
-
*/
|
|
51
|
-
export type EventName<T extends Event = Event> = string & {
|
|
52
|
-
__eventType: T;
|
|
53
|
-
};
|
|
54
|
-
type EventNames = Record<string, EventName | string>;
|
|
55
|
-
export interface Options<E extends EventNames = {}> {
|
|
56
|
-
tagName: string;
|
|
57
|
-
events?: E;
|
|
58
|
-
displayName?: string;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Creates a React component for a custom element. Properties are distinguished
|
|
62
|
-
* from attributes automatically, and events can be configured so they are added
|
|
63
|
-
* to the custom element as event listeners.
|
|
64
|
-
*
|
|
65
|
-
* @param options An options bag containing the parameters needed to generate a
|
|
66
|
-
* wrapped web component.
|
|
67
|
-
*
|
|
68
|
-
* @param options.react The React module, typically imported from the `react`
|
|
69
|
-
* npm package.
|
|
70
|
-
* @param options.tagName The custom element tag name registered via
|
|
71
|
-
* `customElements.define`.
|
|
72
|
-
* @param options.elementClass The custom element class registered via
|
|
73
|
-
* `customElements.define`.
|
|
74
|
-
* @param options.events An object listing events to which the component can
|
|
75
|
-
* listen. The object keys are the event property names passed in via React
|
|
76
|
-
* props and the object values are the names of the corresponding events
|
|
77
|
-
* generated by the custom element. For example, given `{onactivate:
|
|
78
|
-
* 'activate'}` an event function may be passed via the component's `onactivate`
|
|
79
|
-
* prop and will be called when the custom element fires its `activate` event.
|
|
80
|
-
* @param options.displayName A React component display name, used in debugging
|
|
81
|
-
* messages. Default value is inferred from the name of custom element class
|
|
82
|
-
* registered via `customElements.define`.
|
|
83
|
-
*/
|
|
84
|
-
export declare const createComponent: <E extends any, I extends any>({ tagName, events, displayName }: Options) => ReactWebComponent<E, I>;
|
|
85
|
-
export {};
|
|
86
|
-
//# sourceMappingURL=CreateComponent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreateComponent.d.ts","sourceRoot":"","sources":["../../src/utils/CreateComponent.tsx"],"names":[],"mappings":"AAKA;;;;GAIG;AAEH,OAAO,KAA0E,MAAM,OAAO,CAAA;AAM9F,KAAK,gBAAgB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AACvH,KAAK,eAAe,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AAEpD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,WAAW,IAAI,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GACxG,YAAY,CAAC,CAAC,CAAC,CAAA;AAEjB;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,UAAU,GAAG,EAAE,IAAI,KAAK,CAAC,yBAAyB,CAG/G,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAC/D,CAAA;AAMD,KAAK,YAAY,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,WAAW,CAAC,CAAC,CAAA;AAG1D,KAAK,cAAc,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,GAAG,EAAE,IAAI,IAAI,CACtD,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAGvB,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,CAAC,CAAC,CAChC,GACC,YAAY,CAAC,CAAC,CAAC,CAAA;AAEjB;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG;IACxD,WAAW,EAAE,CAAC,CAAA;CACf,CAAA;AAGD,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,CAAA;AAIpD,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,UAAU,GAAG,EAAE;IAChD,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,CAAC,CAAA;IACV,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAkED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,EAAE,kCAI3D,OAAO,KAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAgGlC,CAAA"}
|