@darajs/core 1.20.3 → 1.21.1
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/actions/navigate-to.d.ts.map +1 -1
- package/dist/actions/navigate-to.js +5 -1
- package/dist/actions/navigate-to.js.map +1 -1
- package/dist/api/core.d.ts +8 -20
- package/dist/api/core.d.ts.map +1 -1
- package/dist/api/core.js +5 -70
- package/dist/api/core.js.map +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +1 -1
- package/dist/api/index.js.map +1 -1
- package/dist/auth/auth.d.ts +0 -20
- package/dist/auth/auth.d.ts.map +1 -1
- package/dist/auth/auth.js +0 -11
- package/dist/auth/auth.js.map +1 -1
- package/dist/auth/basic/basic-auth-login.js +4 -4
- package/dist/auth/basic/basic-auth-login.js.map +1 -1
- package/dist/auth/default/default-auth-login.js +4 -4
- package/dist/auth/default/default-auth-login.js.map +1 -1
- package/dist/auth/index.d.ts +0 -1
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +0 -1
- package/dist/auth/index.js.map +1 -1
- package/dist/components/fallback/default.d.ts +1 -0
- package/dist/components/fallback/default.d.ts.map +1 -1
- package/dist/components/fallback/default.js +3 -0
- package/dist/components/fallback/default.js.map +1 -1
- package/dist/components/index.d.ts +8 -5
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +8 -5
- package/dist/components/index.js.map +1 -1
- package/dist/components/link.d.ts +18 -0
- package/dist/components/link.d.ts.map +1 -0
- package/dist/components/link.js +89 -0
- package/dist/components/link.js.map +1 -0
- package/dist/components/menu-link.d.ts +4 -0
- package/dist/components/menu-link.d.ts.map +1 -0
- package/dist/components/menu-link.js +45 -0
- package/dist/components/menu-link.js.map +1 -0
- package/dist/components/{menu/menu.d.ts → menu.d.ts} +1 -1
- package/dist/components/menu.d.ts.map +1 -0
- package/dist/components/{menu/menu.js → menu.js} +6 -6
- package/dist/components/menu.js.map +1 -0
- package/dist/components/outlet.d.ts +3 -0
- package/dist/components/outlet.d.ts.map +1 -0
- package/dist/components/outlet.js +3 -0
- package/dist/components/outlet.js.map +1 -0
- package/dist/components/powered-by-causalens.d.ts +3 -0
- package/dist/components/powered-by-causalens.d.ts.map +1 -0
- package/dist/components/powered-by-causalens.js +25 -0
- package/dist/components/powered-by-causalens.js.map +1 -0
- package/dist/components/progress-tracker.d.ts.map +1 -0
- package/dist/components/{progress-tracker/progress-tracker.js → progress-tracker.js} +4 -4
- package/dist/components/progress-tracker.js.map +1 -0
- package/dist/components/{side-bar-frame/side-bar-frame.d.ts → side-bar-frame.d.ts} +2 -1
- package/dist/components/side-bar-frame.d.ts.map +1 -0
- package/dist/components/{side-bar-frame/side-bar-frame.js → side-bar-frame.js} +10 -13
- package/dist/components/side-bar-frame.js.map +1 -0
- package/dist/components/{top-bar-frame/top-bar-frame.d.ts → top-bar-frame.d.ts} +1 -1
- package/dist/components/top-bar-frame.d.ts.map +1 -0
- package/dist/components/{top-bar-frame/top-bar-frame.js → top-bar-frame.js} +6 -7
- package/dist/components/top-bar-frame.js.map +1 -0
- package/dist/dara_core-1.21.1-py3-none-any.whl +0 -0
- package/dist/index.css +42 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/pages/error-page.d.ts +12 -2
- package/dist/pages/error-page.d.ts.map +1 -1
- package/dist/pages/error-page.js +18 -10
- package/dist/pages/error-page.js.map +1 -1
- package/dist/pages/error-status-code-page.d.ts +13 -0
- package/dist/pages/error-status-code-page.d.ts.map +1 -0
- package/dist/pages/error-status-code-page.js +40 -0
- package/dist/pages/error-status-code-page.js.map +1 -0
- package/dist/pages/root-error-page.d.ts +3 -0
- package/dist/pages/root-error-page.d.ts.map +1 -0
- package/dist/pages/root-error-page.js +31 -0
- package/dist/pages/root-error-page.js.map +1 -0
- package/dist/pages/route-error-boundary.d.ts +3 -0
- package/dist/pages/route-error-boundary.d.ts.map +1 -0
- package/dist/pages/route-error-boundary.js +85 -0
- package/dist/pages/route-error-boundary.js.map +1 -0
- package/dist/router/cache.d.ts +19 -0
- package/dist/router/cache.d.ts.map +1 -0
- package/dist/router/cache.js +56 -0
- package/dist/router/cache.js.map +1 -0
- package/dist/router/context.d.ts +17 -0
- package/dist/router/context.d.ts.map +1 -0
- package/dist/router/context.js +21 -0
- package/dist/router/context.js.map +1 -0
- package/dist/router/create-router.d.ts +22 -0
- package/dist/router/create-router.d.ts.map +1 -0
- package/dist/router/create-router.js +210 -0
- package/dist/router/create-router.js.map +1 -0
- package/dist/router/fetching.d.ts +115 -0
- package/dist/router/fetching.d.ts.map +1 -0
- package/dist/router/fetching.js +280 -0
- package/dist/router/fetching.js.map +1 -0
- package/dist/router/index.d.ts +7 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +7 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/route-content.d.ts +16 -0
- package/dist/router/route-content.d.ts.map +1 -0
- package/dist/router/route-content.js +112 -0
- package/dist/router/route-content.js.map +1 -0
- package/dist/router/router-root.d.ts +7 -0
- package/dist/router/router-root.d.ts.map +1 -0
- package/dist/router/router-root.js +15 -0
- package/dist/router/router-root.js.map +1 -0
- package/dist/run.d.ts +14 -1
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +41 -24
- package/dist/run.js.map +1 -1
- package/dist/shared/context/config-context.d.ts +7 -0
- package/dist/shared/context/config-context.d.ts.map +1 -0
- package/dist/shared/context/config-context.js +15 -0
- package/dist/shared/context/config-context.js.map +1 -0
- package/dist/shared/context/global-task-context.d.ts +2 -1
- package/dist/shared/context/global-task-context.d.ts.map +1 -1
- package/dist/shared/context/index.d.ts +2 -1
- package/dist/shared/context/index.d.ts.map +1 -1
- package/dist/shared/context/index.js +2 -1
- package/dist/shared/context/index.js.map +1 -1
- package/dist/shared/context/registries-context.d.ts +10 -7
- package/dist/shared/context/registries-context.d.ts.map +1 -1
- package/dist/shared/context/registries-context.js +49 -9
- package/dist/shared/context/registries-context.js.map +1 -1
- package/dist/shared/dynamic-component/dynamic-auth-component.d.ts +12 -0
- package/dist/shared/dynamic-component/dynamic-auth-component.d.ts.map +1 -0
- package/dist/shared/dynamic-component/dynamic-auth-component.js +53 -0
- package/dist/shared/dynamic-component/dynamic-auth-component.js.map +1 -0
- package/dist/shared/dynamic-component/dynamic-component.d.ts +10 -1
- package/dist/shared/dynamic-component/dynamic-component.d.ts.map +1 -1
- package/dist/shared/dynamic-component/dynamic-component.js +67 -7
- package/dist/shared/dynamic-component/dynamic-component.js.map +1 -1
- package/dist/shared/error-handling/error-display.js +2 -2
- package/dist/shared/index.d.ts +1 -2
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +1 -2
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/interactivity/derived-variable.d.ts +62 -17
- package/dist/shared/interactivity/derived-variable.d.ts.map +1 -1
- package/dist/shared/interactivity/derived-variable.js +162 -96
- package/dist/shared/interactivity/derived-variable.js.map +1 -1
- package/dist/shared/interactivity/persistence.d.ts +5 -1
- package/dist/shared/interactivity/persistence.d.ts.map +1 -1
- package/dist/shared/interactivity/persistence.js +83 -5
- package/dist/shared/interactivity/persistence.js.map +1 -1
- package/dist/shared/interactivity/plain-variable.d.ts +2 -1
- package/dist/shared/interactivity/plain-variable.d.ts.map +1 -1
- package/dist/shared/interactivity/plain-variable.js +14 -2
- package/dist/shared/interactivity/plain-variable.js.map +1 -1
- package/dist/shared/interactivity/resolve-variable.d.ts +7 -1
- package/dist/shared/interactivity/resolve-variable.d.ts.map +1 -1
- package/dist/shared/interactivity/resolve-variable.js +56 -2
- package/dist/shared/interactivity/resolve-variable.js.map +1 -1
- package/dist/shared/interactivity/server-variable.d.ts +2 -1
- package/dist/shared/interactivity/server-variable.d.ts.map +1 -1
- package/dist/shared/interactivity/server-variable.js +18 -0
- package/dist/shared/interactivity/server-variable.js.map +1 -1
- package/dist/shared/interactivity/store.d.ts +0 -1
- package/dist/shared/interactivity/store.d.ts.map +1 -1
- package/dist/shared/interactivity/store.js.map +1 -1
- package/dist/shared/interactivity/tabular-variable.d.ts.map +1 -1
- package/dist/shared/interactivity/tabular-variable.js +5 -2
- package/dist/shared/interactivity/tabular-variable.js.map +1 -1
- package/dist/shared/interactivity/triggers.d.ts +7 -2
- package/dist/shared/interactivity/triggers.d.ts.map +1 -1
- package/dist/shared/interactivity/triggers.js +15 -2
- package/dist/shared/interactivity/triggers.js.map +1 -1
- package/dist/shared/interactivity/use-action.d.ts +6 -1
- package/dist/shared/interactivity/use-action.d.ts.map +1 -1
- package/dist/shared/interactivity/use-action.js +106 -44
- package/dist/shared/interactivity/use-action.js.map +1 -1
- package/dist/shared/interactivity/use-server-component.d.ts +4 -1
- package/dist/shared/interactivity/use-server-component.d.ts.map +1 -1
- package/dist/shared/interactivity/use-server-component.js +107 -38
- package/dist/shared/interactivity/use-server-component.js.map +1 -1
- package/dist/shared/interactivity/use-variable.js +1 -1
- package/dist/shared/interactivity/use-variable.js.map +1 -1
- package/dist/shared/{template-root/template-root.d.ts → root/authenticated-root.d.ts} +4 -5
- package/dist/shared/root/authenticated-root.d.ts.map +1 -0
- package/dist/shared/root/authenticated-root.js +86 -0
- package/dist/shared/root/authenticated-root.js.map +1 -0
- package/dist/shared/root/dynamic-context.d.ts.map +1 -0
- package/dist/shared/root/dynamic-context.js.map +1 -0
- package/dist/shared/root/unauthenticated-root.d.ts +7 -0
- package/dist/shared/root/unauthenticated-root.d.ts.map +1 -0
- package/dist/shared/root/unauthenticated-root.js +38 -0
- package/dist/shared/root/unauthenticated-root.js.map +1 -0
- package/dist/shared/utils/deferred.d.ts +10 -0
- package/dist/shared/utils/deferred.d.ts.map +1 -0
- package/dist/shared/utils/deferred.js +13 -0
- package/dist/shared/utils/deferred.js.map +1 -0
- package/dist/shared/utils/index.d.ts +1 -1
- package/dist/shared/utils/index.d.ts.map +1 -1
- package/dist/shared/utils/index.js +1 -1
- package/dist/shared/utils/index.js.map +1 -1
- package/dist/shared/utils/use-component-styles.d.ts +1 -1
- package/dist/shared/utils/use-component-styles.d.ts.map +1 -1
- package/dist/shared/utils/use-component-styles.js +2 -2
- package/dist/shared/utils/use-component-styles.js.map +1 -1
- package/dist/shared/utils/use-url-sync.d.ts +1 -13
- package/dist/shared/utils/use-url-sync.d.ts.map +1 -1
- package/dist/shared/utils/use-url-sync.js +18 -22
- package/dist/shared/utils/use-url-sync.js.map +1 -1
- package/dist/shared/utils/use-window-title.d.ts +1 -1
- package/dist/shared/utils/use-window-title.d.ts.map +1 -1
- package/dist/shared/utils/use-window-title.js +5 -5
- package/dist/shared/utils/use-window-title.js.map +1 -1
- package/dist/types/core.d.ts +90 -15
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js +16 -1
- package/dist/types/core.js.map +1 -1
- package/dist/types/utils.d.ts +2 -2
- package/dist/types/utils.d.ts.map +1 -1
- package/dist/types/utils.js.map +1 -1
- package/dist/umd/{dara.core.umd.js → dara.core.umd.cjs} +62588 -46966
- package/dist/umd/style.css +52 -9
- package/package.json +15 -16
- package/dist/auth/auth-wrapper.d.ts +0 -15
- package/dist/auth/auth-wrapper.d.ts.map +0 -1
- package/dist/auth/auth-wrapper.js +0 -76
- package/dist/auth/auth-wrapper.js.map +0 -1
- package/dist/components/menu/menu.d.ts.map +0 -1
- package/dist/components/menu/menu.js.map +0 -1
- package/dist/components/progress-tracker/progress-tracker.d.ts.map +0 -1
- package/dist/components/progress-tracker/progress-tracker.js.map +0 -1
- package/dist/components/router-content/router-content.d.ts +0 -14
- package/dist/components/router-content/router-content.d.ts.map +0 -1
- package/dist/components/router-content/router-content.js +0 -18
- package/dist/components/router-content/router-content.js.map +0 -1
- package/dist/components/side-bar-frame/side-bar-frame.d.ts.map +0 -1
- package/dist/components/side-bar-frame/side-bar-frame.js.map +0 -1
- package/dist/components/top-bar-frame/top-bar-frame.d.ts.map +0 -1
- package/dist/components/top-bar-frame/top-bar-frame.js.map +0 -1
- package/dist/dara_core-1.20.3-py3-none-any.whl +0 -0
- package/dist/shared/private-route/private-route.d.ts +0 -19
- package/dist/shared/private-route/private-route.d.ts.map +0 -1
- package/dist/shared/private-route/private-route.js +0 -37
- package/dist/shared/private-route/private-route.js.map +0 -1
- package/dist/shared/template-root/dynamic-context.d.ts.map +0 -1
- package/dist/shared/template-root/dynamic-context.js.map +0 -1
- package/dist/shared/template-root/template-root.d.ts.map +0 -1
- package/dist/shared/template-root/template-root.js +0 -100
- package/dist/shared/template-root/template-root.js.map +0 -1
- package/dist/shared/utils/use-action-registry.d.ts +0 -11
- package/dist/shared/utils/use-action-registry.d.ts.map +0 -1
- package/dist/shared/utils/use-action-registry.js +0 -19
- package/dist/shared/utils/use-action-registry.js.map +0 -1
- package/dist/shared/utils/use-component-registry.d.ts +0 -11
- package/dist/shared/utils/use-component-registry.d.ts.map +0 -1
- package/dist/shared/utils/use-component-registry.js +0 -58
- package/dist/shared/utils/use-component-registry.js.map +0 -1
- /package/dist/components/{progress-tracker/progress-tracker.d.ts → progress-tracker.d.ts} +0 -0
- /package/dist/shared/{template-root → root}/dynamic-context.d.ts +0 -0
- /package/dist/shared/{template-root → root}/dynamic-context.js +0 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { type Params } from 'react-router';
|
|
2
|
+
import { type Snapshot } from 'recoil';
|
|
3
|
+
import * as z from 'zod/v4';
|
|
4
|
+
import { type Deferred, type DerivedResult } from '../shared';
|
|
5
|
+
import { ActionImpl, type ComponentInstance, type DerivedVariable, type NormalizedPayload, type PyComponentInstance, type RouteDefinition } from '../types';
|
|
6
|
+
export declare const TemplateChunk: z.ZodObject<{
|
|
7
|
+
type: z.ZodLiteral<"template">;
|
|
8
|
+
template: z.ZodObject<{
|
|
9
|
+
data: z.ZodAny;
|
|
10
|
+
lookup: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
11
|
+
}, z.core.$strip>;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
export type TemplateChunk = z.infer<typeof TemplateChunk>;
|
|
14
|
+
export declare const ActionChunk: z.ZodObject<{
|
|
15
|
+
type: z.ZodLiteral<"actions">;
|
|
16
|
+
actions: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
|
|
17
|
+
name: z.ZodString;
|
|
18
|
+
__typename: z.ZodLiteral<"ActionImpl">;
|
|
19
|
+
}, z.core.$loose>>>;
|
|
20
|
+
}, z.core.$strip>;
|
|
21
|
+
export type ActionChunk = z.infer<typeof ActionChunk>;
|
|
22
|
+
export declare const DerivedVariableChunk: z.ZodObject<{
|
|
23
|
+
type: z.ZodLiteral<"derived_variable">;
|
|
24
|
+
uid: z.ZodString;
|
|
25
|
+
result: z.ZodObject<{
|
|
26
|
+
ok: z.ZodBoolean;
|
|
27
|
+
value: z.ZodAny;
|
|
28
|
+
}, z.core.$strip>;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
export type DerivedVariableChunk = z.infer<typeof DerivedVariableChunk>;
|
|
31
|
+
export declare const PyComponentChunk: z.ZodObject<{
|
|
32
|
+
type: z.ZodLiteral<"py_component">;
|
|
33
|
+
uid: z.ZodString;
|
|
34
|
+
result: z.ZodObject<{
|
|
35
|
+
ok: z.ZodBoolean;
|
|
36
|
+
value: z.ZodAny;
|
|
37
|
+
}, z.core.$strip>;
|
|
38
|
+
}, z.core.$strip>;
|
|
39
|
+
export type PyComponentChunk = z.infer<typeof PyComponentChunk>;
|
|
40
|
+
export declare const ResponseChunk: z.ZodUnion<readonly [z.ZodObject<{
|
|
41
|
+
type: z.ZodLiteral<"template">;
|
|
42
|
+
template: z.ZodObject<{
|
|
43
|
+
data: z.ZodAny;
|
|
44
|
+
lookup: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
45
|
+
}, z.core.$strip>;
|
|
46
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
47
|
+
type: z.ZodLiteral<"actions">;
|
|
48
|
+
actions: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
|
|
49
|
+
name: z.ZodString;
|
|
50
|
+
__typename: z.ZodLiteral<"ActionImpl">;
|
|
51
|
+
}, z.core.$loose>>>;
|
|
52
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
53
|
+
type: z.ZodLiteral<"derived_variable">;
|
|
54
|
+
uid: z.ZodString;
|
|
55
|
+
result: z.ZodObject<{
|
|
56
|
+
ok: z.ZodBoolean;
|
|
57
|
+
value: z.ZodAny;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
60
|
+
type: z.ZodLiteral<"py_component">;
|
|
61
|
+
uid: z.ZodString;
|
|
62
|
+
result: z.ZodObject<{
|
|
63
|
+
ok: z.ZodBoolean;
|
|
64
|
+
value: z.ZodAny;
|
|
65
|
+
}, z.core.$strip>;
|
|
66
|
+
}, z.core.$strip>]>;
|
|
67
|
+
export type ResponseChunk = z.infer<typeof ResponseChunk>;
|
|
68
|
+
interface DerivedVariablePayload {
|
|
69
|
+
uid: string;
|
|
70
|
+
values: NormalizedPayload<any[]>;
|
|
71
|
+
}
|
|
72
|
+
interface PyComponentPayload {
|
|
73
|
+
uid: string;
|
|
74
|
+
name: string;
|
|
75
|
+
values: NormalizedPayload<Record<string, any>>;
|
|
76
|
+
}
|
|
77
|
+
interface DerivedVariableHandle {
|
|
78
|
+
dv: DerivedVariable;
|
|
79
|
+
result: DerivedResult;
|
|
80
|
+
handle: Deferred<any>;
|
|
81
|
+
payload: DerivedVariablePayload;
|
|
82
|
+
}
|
|
83
|
+
interface PyComponentHandle {
|
|
84
|
+
py: PyComponentInstance;
|
|
85
|
+
result: DerivedResult;
|
|
86
|
+
handle: Deferred<any>;
|
|
87
|
+
payload: PyComponentPayload;
|
|
88
|
+
}
|
|
89
|
+
export interface LoaderData {
|
|
90
|
+
template: ComponentInstance;
|
|
91
|
+
on_load: ActionImpl[];
|
|
92
|
+
route_definition: RouteDefinition;
|
|
93
|
+
derived_variables: DerivedVariableHandle[];
|
|
94
|
+
py_components: PyComponentHandle[];
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Fetch route data from the server.
|
|
98
|
+
*
|
|
99
|
+
* Collects payloads for `on_load` actions as wel as `derived_variable`s and `py_component`s on the page and sends them in the same request.
|
|
100
|
+
*/
|
|
101
|
+
export declare function fetchRouteData(route: RouteDefinition, params: Params<string>, snapshot: Snapshot, signal?: AbortSignal): Promise<LoaderData>;
|
|
102
|
+
/**
|
|
103
|
+
* Retrieve route data from the preload cache.
|
|
104
|
+
*
|
|
105
|
+
* @param routeId route ID
|
|
106
|
+
* @param params current route params
|
|
107
|
+
*/
|
|
108
|
+
export declare function getFromPreloadCache(routeId: string, params: Params<string>): LoaderData | Promise<LoaderData> | undefined;
|
|
109
|
+
/**
|
|
110
|
+
* Provides a function to preload data for all routes matching a given URL.
|
|
111
|
+
* Checks the preload cache first, and if not found, fetches the data from the server.
|
|
112
|
+
*/
|
|
113
|
+
export declare function usePreloadRoute(): (url: Partial<Location> | string) => void;
|
|
114
|
+
export {};
|
|
115
|
+
//# sourceMappingURL=fetching.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetching.d.ts","sourceRoot":"","sources":["../../js/router/fetching.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAe,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,KAAK,QAAQ,EAAqB,MAAM,QAAQ,CAAC;AAC1D,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAM5B,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAA4D,MAAM,UAAU,CAAC;AACvH,OAAO,EAEH,UAAU,EACV,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAGpB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EAEvB,MAAM,SAAS,CAAC;AA0BjB,eAAO,MAAM,aAAa;;;;;;iBAGxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,WAAW;;;;;;iBAGtB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,eAAO,MAAM,oBAAoB;;;;;;;iBAI/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE,eAAO,MAAM,gBAAgB;;;;;;;iBAI3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAgF,CAAC;AAC3G,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,UAAU,sBAAsB;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC;CACpC;AAED,UAAU,kBAAkB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;CAClD;AAED,UAAU,qBAAqB;IAC3B,EAAE,EAAE,eAAe,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,EAAE,sBAAsB,CAAC;CACnC;AAED,UAAU,iBAAiB;IACvB,EAAE,EAAE,mBAAmB,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,EAAE,kBAAkB,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU;IACvB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,gBAAgB,EAAE,eAAe,CAAC;IAClC,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;IAC3C,aAAa,EAAE,iBAAiB,EAAE,CAAC;CACtC;AAkDD;;;;GAIG;AACH,wBAAsB,cAAc,CAChC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EACtB,QAAQ,EAAE,QAAQ,EAClB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,UAAU,CAAC,CAwJrB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GACvB,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,SAAS,CAE9C;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,KAAK,IAAI,CA0B3E"}
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
|
|
11
|
+
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
|
|
12
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
13
|
+
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
14
|
+
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
15
|
+
function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
|
|
16
|
+
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
|
|
17
|
+
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
18
|
+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
19
|
+
function fulfill(value) { resume("next", value); }
|
|
20
|
+
function reject(value) { resume("throw", value); }
|
|
21
|
+
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
22
|
+
};
|
|
23
|
+
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
24
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
25
|
+
var m = o[Symbol.asyncIterator], i;
|
|
26
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
27
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
28
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
29
|
+
};
|
|
30
|
+
import { matchRoutes } from 'react-router';
|
|
31
|
+
import { useRecoilCallback } from 'recoil';
|
|
32
|
+
import * as z from 'zod/v4';
|
|
33
|
+
import { HTTP_METHOD } from '@darajs/ui-utils';
|
|
34
|
+
import { request } from '../api';
|
|
35
|
+
import { handleAuthErrors } from '../auth';
|
|
36
|
+
import { deferred, preloadDerivedVariable, preloadServerComponent } from '../shared';
|
|
37
|
+
import { ActionImpl, LoaderError, isAnnotatedAction, } from '../types';
|
|
38
|
+
import { cleanArgs, cleanKwargs, resolveVariableStatic } from '../shared/interactivity/resolve-variable';
|
|
39
|
+
import { denormalize, normalizeRequest } from '../shared/utils/normalization';
|
|
40
|
+
import { SingleUseCache } from './cache';
|
|
41
|
+
import { useRouterContext } from './context';
|
|
42
|
+
const NormalizedObject = z.object({
|
|
43
|
+
data: z.any(),
|
|
44
|
+
lookup: z.record(z.string(), z.any()),
|
|
45
|
+
});
|
|
46
|
+
export const TemplateChunk = z.object({
|
|
47
|
+
type: z.literal('template'),
|
|
48
|
+
template: NormalizedObject,
|
|
49
|
+
});
|
|
50
|
+
export const ActionChunk = z.object({
|
|
51
|
+
type: z.literal('actions'),
|
|
52
|
+
actions: z.record(z.string(), z.array(ActionImpl)),
|
|
53
|
+
});
|
|
54
|
+
export const DerivedVariableChunk = z.object({
|
|
55
|
+
type: z.literal('derived_variable'),
|
|
56
|
+
uid: z.string(),
|
|
57
|
+
result: z.object({ ok: z.boolean(), value: z.any() }),
|
|
58
|
+
});
|
|
59
|
+
export const PyComponentChunk = z.object({
|
|
60
|
+
type: z.literal('py_component'),
|
|
61
|
+
uid: z.string(),
|
|
62
|
+
result: z.object({ ok: z.boolean(), value: z.any() }),
|
|
63
|
+
});
|
|
64
|
+
export const ResponseChunk = z.union([TemplateChunk, ActionChunk, DerivedVariableChunk, PyComponentChunk]);
|
|
65
|
+
const PRELOAD_TIMEOUT = 5000; // 5 seconds
|
|
66
|
+
const preloadCache = new SingleUseCache({
|
|
67
|
+
defaultTimeout: PRELOAD_TIMEOUT,
|
|
68
|
+
});
|
|
69
|
+
function createCacheKey(routeId, params) {
|
|
70
|
+
return `${routeId}:${JSON.stringify(params)}`;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Creates an NDJSON async generator from a Response object.
|
|
74
|
+
* Yields chunks of JSON data as they are received.
|
|
75
|
+
*
|
|
76
|
+
* @param response Response object to read from
|
|
77
|
+
* @param signal AbortSignal to abort the generator
|
|
78
|
+
*/
|
|
79
|
+
function ndjson(response, signal) {
|
|
80
|
+
return __asyncGenerator(this, arguments, function* ndjson_1() {
|
|
81
|
+
const reader = response.body.getReader();
|
|
82
|
+
const newline = /\r?\n/;
|
|
83
|
+
const decoder = new TextDecoder();
|
|
84
|
+
let buffer = '';
|
|
85
|
+
while (true) {
|
|
86
|
+
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
87
|
+
throw new DOMException('The operation was aborted', 'AbortError');
|
|
88
|
+
}
|
|
89
|
+
// eslint-disable-next-line no-await-in-loop
|
|
90
|
+
const { done, value } = yield __await(reader.read());
|
|
91
|
+
if (done) {
|
|
92
|
+
if (buffer.length > 0) {
|
|
93
|
+
yield yield __await(JSON.parse(buffer));
|
|
94
|
+
}
|
|
95
|
+
return yield __await(void 0);
|
|
96
|
+
}
|
|
97
|
+
const chunk = decoder.decode(value, { stream: true });
|
|
98
|
+
buffer += chunk;
|
|
99
|
+
const parts = buffer.split(newline);
|
|
100
|
+
buffer = parts.pop();
|
|
101
|
+
for (const part of parts) {
|
|
102
|
+
yield yield __await(JSON.parse(part));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Fetch route data from the server.
|
|
109
|
+
*
|
|
110
|
+
* Collects payloads for `on_load` actions as wel as `derived_variable`s and `py_component`s on the page and sends them in the same request.
|
|
111
|
+
*/
|
|
112
|
+
export function fetchRouteData(route, params, snapshot, signal) {
|
|
113
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
114
|
+
var _a, _b, _c, _d;
|
|
115
|
+
// collect payloads for annotated actions - action impls can stay on the client
|
|
116
|
+
let actions = [];
|
|
117
|
+
if (Array.isArray(route.on_load)) {
|
|
118
|
+
actions = route.on_load;
|
|
119
|
+
}
|
|
120
|
+
else if (route.on_load) {
|
|
121
|
+
actions = [route.on_load];
|
|
122
|
+
}
|
|
123
|
+
const actionPayloads = actions.filter(isAnnotatedAction).map((a) => {
|
|
124
|
+
const kwargs = cleanKwargs(Object.fromEntries(Object.entries(a.dynamic_kwargs).map(([k, v]) => {
|
|
125
|
+
return [k, resolveVariableStatic(v, snapshot)];
|
|
126
|
+
})), null);
|
|
127
|
+
return {
|
|
128
|
+
uid: a.uid,
|
|
129
|
+
definition_uid: a.definition_uid,
|
|
130
|
+
values: normalizeRequest(kwargs, a.dynamic_kwargs),
|
|
131
|
+
};
|
|
132
|
+
});
|
|
133
|
+
// Collect payloads for DVs and py_components,
|
|
134
|
+
// preloading ones that don't have a cached value
|
|
135
|
+
const dvHandles = Object.values((_b = (_a = route.dependency_graph) === null || _a === void 0 ? void 0 : _a.derived_variables) !== null && _b !== void 0 ? _b : {}).flatMap((dv) => {
|
|
136
|
+
const handle = preloadDerivedVariable(dv, snapshot);
|
|
137
|
+
if (!handle) {
|
|
138
|
+
return [];
|
|
139
|
+
}
|
|
140
|
+
return Object.assign(Object.assign({}, handle), { dv, payload: {
|
|
141
|
+
values: normalizeRequest(cleanArgs(handle.result.values, null), dv.variables),
|
|
142
|
+
uid: dv.uid,
|
|
143
|
+
} });
|
|
144
|
+
});
|
|
145
|
+
const pyHandles = Object.values((_d = (_c = route.dependency_graph) === null || _c === void 0 ? void 0 : _c.py_components) !== null && _d !== void 0 ? _d : {}).flatMap((py) => {
|
|
146
|
+
const handle = preloadServerComponent(py, snapshot);
|
|
147
|
+
if (!handle) {
|
|
148
|
+
return [];
|
|
149
|
+
}
|
|
150
|
+
// turn the resolved values back into an object and clean them up
|
|
151
|
+
const kwargValues = cleanKwargs(Object.keys(py.props.dynamic_kwargs).reduce((acc, k, idx) => {
|
|
152
|
+
acc[k] = handle.result.values[idx];
|
|
153
|
+
return acc;
|
|
154
|
+
}, {}));
|
|
155
|
+
return Object.assign(Object.assign({}, handle), { py, payload: {
|
|
156
|
+
uid: py.uid,
|
|
157
|
+
name: py.name,
|
|
158
|
+
values: normalizeRequest(kwargValues, py.props.dynamic_kwargs),
|
|
159
|
+
} });
|
|
160
|
+
});
|
|
161
|
+
const dvHandlesByUid = dvHandles.reduce((acc, h) => (Object.assign(Object.assign({}, acc), { [h.dv.uid]: h })), {});
|
|
162
|
+
const pyHandlesByUid = pyHandles.reduce((acc, h) => (Object.assign(Object.assign({}, acc), { [h.py.uid]: h })), {});
|
|
163
|
+
const response = yield request(`/api/core/route/${route.id}`, {
|
|
164
|
+
method: HTTP_METHOD.POST,
|
|
165
|
+
body: JSON.stringify({
|
|
166
|
+
action_payloads: actionPayloads,
|
|
167
|
+
derived_variable_payloads: dvHandles.map((h) => h.payload),
|
|
168
|
+
py_component_payloads: pyHandles.map((h) => h.payload),
|
|
169
|
+
ws_channel: yield (yield window.dara.ws.promise).getChannel(),
|
|
170
|
+
params,
|
|
171
|
+
}),
|
|
172
|
+
signal,
|
|
173
|
+
});
|
|
174
|
+
yield handleAuthErrors(response, true);
|
|
175
|
+
if (!response.ok) {
|
|
176
|
+
const error = (yield response.json());
|
|
177
|
+
throw new LoaderError(error.detail);
|
|
178
|
+
}
|
|
179
|
+
const template = deferred();
|
|
180
|
+
const onLoadActions = deferred();
|
|
181
|
+
const resolvedDvs = new Set();
|
|
182
|
+
const resolvedPyComponents = new Set();
|
|
183
|
+
// kick off the async generator in the background
|
|
184
|
+
queueMicrotask(() => __awaiter(this, void 0, void 0, function* () {
|
|
185
|
+
var _a, e_1, _b, _c;
|
|
186
|
+
var _d, _e;
|
|
187
|
+
try {
|
|
188
|
+
try {
|
|
189
|
+
for (var _f = true, _g = __asyncValues(ndjson(response, signal)), _h; _h = yield _g.next(), _a = _h.done, !_a; _f = true) {
|
|
190
|
+
_c = _h.value;
|
|
191
|
+
_f = false;
|
|
192
|
+
const data = _c;
|
|
193
|
+
const chunk = ResponseChunk.parse(data);
|
|
194
|
+
if (chunk.type === 'template') {
|
|
195
|
+
const component = denormalize(chunk.template.data, chunk.template.lookup);
|
|
196
|
+
template.resolve(component);
|
|
197
|
+
}
|
|
198
|
+
if (chunk.type === 'actions') {
|
|
199
|
+
onLoadActions.resolve(actions.flatMap((a) => (isAnnotatedAction(a) ? chunk.actions[a.uid] : a)));
|
|
200
|
+
}
|
|
201
|
+
// process the other chunks, resolving the deferreds as they come in
|
|
202
|
+
if (chunk.type === 'derived_variable') {
|
|
203
|
+
(_d = dvHandlesByUid[chunk.uid]) === null || _d === void 0 ? void 0 : _d.handle.resolve(chunk.result);
|
|
204
|
+
resolvedDvs.add(chunk.uid);
|
|
205
|
+
}
|
|
206
|
+
if (chunk.type === 'py_component') {
|
|
207
|
+
(_e = pyHandlesByUid[chunk.uid]) === null || _e === void 0 ? void 0 : _e.handle.resolve(chunk.result);
|
|
208
|
+
resolvedPyComponents.add(chunk.uid);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
213
|
+
finally {
|
|
214
|
+
try {
|
|
215
|
+
if (!_f && !_a && (_b = _g.return)) yield _b.call(_g);
|
|
216
|
+
}
|
|
217
|
+
finally { if (e_1) throw e_1.error; }
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
catch (e) {
|
|
221
|
+
template.reject(e);
|
|
222
|
+
onLoadActions.reject(e);
|
|
223
|
+
// reject remaining unresolved promises
|
|
224
|
+
for (const [uid, handle] of Object.entries(dvHandlesByUid)) {
|
|
225
|
+
if (!resolvedDvs.has(uid)) {
|
|
226
|
+
handle.handle.reject(e);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
for (const [uid, handle] of Object.entries(pyHandlesByUid)) {
|
|
230
|
+
if (!resolvedPyComponents.has(uid)) {
|
|
231
|
+
handle.handle.reject(e);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}));
|
|
236
|
+
// return as soon as we have the template and on_load actions
|
|
237
|
+
return {
|
|
238
|
+
template: yield template.promise,
|
|
239
|
+
on_load: yield onLoadActions.promise,
|
|
240
|
+
route_definition: route,
|
|
241
|
+
py_components: pyHandles,
|
|
242
|
+
derived_variables: dvHandles,
|
|
243
|
+
};
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Retrieve route data from the preload cache.
|
|
248
|
+
*
|
|
249
|
+
* @param routeId route ID
|
|
250
|
+
* @param params current route params
|
|
251
|
+
*/
|
|
252
|
+
export function getFromPreloadCache(routeId, params) {
|
|
253
|
+
return preloadCache.get(createCacheKey(routeId, params));
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Provides a function to preload data for all routes matching a given URL.
|
|
257
|
+
* Checks the preload cache first, and if not found, fetches the data from the server.
|
|
258
|
+
*/
|
|
259
|
+
export function usePreloadRoute() {
|
|
260
|
+
const { routeObjects, routeDefMap } = useRouterContext();
|
|
261
|
+
return useRecoilCallback(({ snapshot }) => (url) => {
|
|
262
|
+
var _a;
|
|
263
|
+
// Match routes for the given URL using React Router's route objects
|
|
264
|
+
const matches = matchRoutes(routeObjects, url, (_a = window.dara) === null || _a === void 0 ? void 0 : _a.base_url);
|
|
265
|
+
if (!matches) {
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
matches.forEach((match) => {
|
|
269
|
+
// Find the corresponding route definition using the route ID
|
|
270
|
+
const routeDef = routeDefMap.get(match.route.id);
|
|
271
|
+
if (!routeDef) {
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
preloadCache.setIfMissing(createCacheKey(routeDef.id, match.params), () => {
|
|
275
|
+
return fetchRouteData(routeDef, match.params, snapshot);
|
|
276
|
+
});
|
|
277
|
+
});
|
|
278
|
+
}, [routeDefMap, routeObjects]);
|
|
279
|
+
}
|
|
280
|
+
//# sourceMappingURL=fetching.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetching.js","sourceRoot":"","sources":["../../js/router/fetching.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { SingleUseCache as LockSecuredCache } from './cache';
|
|
2
|
+
export { RouterContextProvider, useRouterContext } from './context';
|
|
3
|
+
export { createRouter, findFirstPath } from './create-router';
|
|
4
|
+
export { fetchRouteData, getFromPreloadCache, usePreloadRoute, type LoaderData } from './fetching';
|
|
5
|
+
export { default as RouteContent, createRouteLoader, type LoaderResult } from './route-content';
|
|
6
|
+
export { default as RouterRoot } from './router-root';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../js/router/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACnG,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { SingleUseCache as LockSecuredCache } from './cache';
|
|
2
|
+
export { RouterContextProvider, useRouterContext } from './context';
|
|
3
|
+
export { createRouter, findFirstPath } from './create-router';
|
|
4
|
+
export { fetchRouteData, getFromPreloadCache, usePreloadRoute } from './fetching';
|
|
5
|
+
export { default as RouteContent, createRouteLoader } from './route-content';
|
|
6
|
+
export { default as RouterRoot } from './router-root';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../js/router/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAmB,MAAM,YAAY,CAAC;AACnG,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,iBAAiB,EAAqB,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { type LoaderFunctionArgs } from 'react-router';
|
|
3
|
+
import { type Snapshot } from 'recoil';
|
|
4
|
+
import { type RouteDefinition } from '../types';
|
|
5
|
+
import { type LoaderData } from './fetching';
|
|
6
|
+
export interface LoaderResult {
|
|
7
|
+
data: LoaderData | Promise<LoaderData>;
|
|
8
|
+
}
|
|
9
|
+
export declare function createRouteLoader(route: RouteDefinition, snapshotRef: React.MutableRefObject<Snapshot>): ({ request: loaderRequest, params }: LoaderFunctionArgs) => Promise<{
|
|
10
|
+
data: LoaderData | Promise<LoaderData>;
|
|
11
|
+
}>;
|
|
12
|
+
declare function RouteContent(props: {
|
|
13
|
+
route: RouteDefinition;
|
|
14
|
+
}): React.ReactNode;
|
|
15
|
+
export default RouteContent;
|
|
16
|
+
//# sourceMappingURL=route-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-content.d.ts","sourceRoot":"","sources":["../../js/router/route-content.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAS,KAAK,kBAAkB,EAA6B,MAAM,cAAc,CAAC;AACzF,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAIvC,OAAO,EAAE,KAAK,eAAe,EAAqB,MAAM,SAAS,CAAC;AAKlE,OAAO,EAAE,KAAK,UAAU,EAAuC,MAAM,YAAY,CAAC;AAElF,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAC1C;AAoBD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,wCAClC,kBAAkB;;GAgBtF;AAsED,iBAAS,YAAY,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,eAAe,CAAA;CAAE,GAAG,KAAK,CAAC,SAAS,CAYxE;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
+
/* eslint-disable react/no-unused-prop-types */
|
|
12
|
+
import * as React from 'react';
|
|
13
|
+
import { Await, useLoaderData, useMatches } from 'react-router';
|
|
14
|
+
import {} from 'recoil';
|
|
15
|
+
import { DefaultFallbackStatic } from '../components/fallback/default';
|
|
16
|
+
import { depsRegistry } from '../shared';
|
|
17
|
+
import { isAnnotatedAction } from '../types';
|
|
18
|
+
import DynamicComponent from '../shared/dynamic-component/dynamic-component';
|
|
19
|
+
import { useExecuteAction } from '../shared/interactivity/use-action';
|
|
20
|
+
import { useWindowTitle } from '../shared/utils';
|
|
21
|
+
import { fetchRouteData, getFromPreloadCache } from './fetching';
|
|
22
|
+
function hasServerActions(route) {
|
|
23
|
+
if (!route.on_load) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
const actions = Array.isArray(route.on_load) ? route.on_load : [route.on_load];
|
|
27
|
+
return actions.some(isAnnotatedAction);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Determines whether to hold navigation (await promise) or let it suspend.
|
|
31
|
+
* Currently holds navigation unless it's a page/index route with server actions.
|
|
32
|
+
* This allows rendering fallbacks for routes with server actions while blocking
|
|
33
|
+
* navigation for simpler routes.
|
|
34
|
+
*/
|
|
35
|
+
function shouldHoldPromise(route) {
|
|
36
|
+
return !((route.__typename === 'IndexRoute' || route.__typename === 'PageRoute') && hasServerActions(route));
|
|
37
|
+
}
|
|
38
|
+
export function createRouteLoader(route, snapshotRef) {
|
|
39
|
+
return function loader(_a) {
|
|
40
|
+
return __awaiter(this, arguments, void 0, function* ({ request: loaderRequest, params }) {
|
|
41
|
+
// Check preload cache first
|
|
42
|
+
let result = getFromPreloadCache(route.id, params);
|
|
43
|
+
if (!result) {
|
|
44
|
+
// Not in cache, fetch fresh data
|
|
45
|
+
// Note: loader-initiated requests are NOT cached
|
|
46
|
+
result = fetchRouteData(route, params, snapshotRef.current, loaderRequest.signal);
|
|
47
|
+
}
|
|
48
|
+
if (shouldHoldPromise(route)) {
|
|
49
|
+
result = yield result;
|
|
50
|
+
}
|
|
51
|
+
return { data: result };
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function Content({ route, on_load, template, py_components, derived_variables, }) {
|
|
56
|
+
const executeAction = useExecuteAction();
|
|
57
|
+
const [isLoading, setIsLoading] = React.useState(on_load.length > 0 || py_components.length > 0 || derived_variables.length > 0);
|
|
58
|
+
React.useLayoutEffect(() => {
|
|
59
|
+
if (on_load.length === 0 && py_components.length === 0 && derived_variables.length === 0) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
// put the pre-computed promises into the deps registry
|
|
63
|
+
for (const resultHandle of [...py_components, ...derived_variables]) {
|
|
64
|
+
depsRegistry.set(resultHandle.result.depsKey, {
|
|
65
|
+
args: resultHandle.result.relevantValues,
|
|
66
|
+
result: resultHandle.handle.promise,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
let cancelled = false;
|
|
70
|
+
const result = executeAction(on_load);
|
|
71
|
+
// if result is a promise, handle async case
|
|
72
|
+
if (result instanceof Promise) {
|
|
73
|
+
result
|
|
74
|
+
.then(() => {
|
|
75
|
+
if (!cancelled) {
|
|
76
|
+
setIsLoading(false);
|
|
77
|
+
}
|
|
78
|
+
})
|
|
79
|
+
.catch((error) => {
|
|
80
|
+
if (!cancelled) {
|
|
81
|
+
// eslint-disable-next-line no-console
|
|
82
|
+
console.error('Error executing on_load actions:', error);
|
|
83
|
+
setIsLoading(false);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
// synchronous case - immediately stop loading
|
|
89
|
+
setIsLoading(false);
|
|
90
|
+
}
|
|
91
|
+
return () => {
|
|
92
|
+
cancelled = true;
|
|
93
|
+
};
|
|
94
|
+
}, [route.id, on_load, executeAction, py_components, derived_variables]);
|
|
95
|
+
// only sync title for the most exact route
|
|
96
|
+
const matches = useMatches();
|
|
97
|
+
const isMostExact = matches.at(-1).id === route.id;
|
|
98
|
+
useWindowTitle(route.name, isMostExact);
|
|
99
|
+
if (isLoading) {
|
|
100
|
+
return _jsx(DefaultFallbackStatic, {});
|
|
101
|
+
}
|
|
102
|
+
return _jsx(DynamicComponent, { component: template });
|
|
103
|
+
}
|
|
104
|
+
function RouteContent(props) {
|
|
105
|
+
const { data } = useLoaderData();
|
|
106
|
+
if (data instanceof Promise) {
|
|
107
|
+
return (_jsx(React.Suspense, { fallback: _jsx(DefaultFallbackStatic, {}), children: _jsx(Await, { resolve: data, children: (resolved) => _jsx(Content, Object.assign({}, resolved, { route: props.route })) }) }));
|
|
108
|
+
}
|
|
109
|
+
return _jsx(Content, Object.assign({}, data, { route: props.route }));
|
|
110
|
+
}
|
|
111
|
+
export default RouteContent;
|
|
112
|
+
//# sourceMappingURL=route-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-content.js","sourceRoot":"","sources":["../../js/router/route-content.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router-root.d.ts","sourceRoot":"","sources":["../../js/router/router-root.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKxC,UAAU,eAAe;IACrB,QAAQ,EAAE,QAAQ,CAAC;CACtB;AAED,iBAAS,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,CAe9D;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { RouterProvider } from 'react-router/dom';
|
|
4
|
+
import { useRecoilSnapshot } from 'recoil';
|
|
5
|
+
import { useLatestRef } from '@darajs/ui-utils';
|
|
6
|
+
import { RouterContextProvider } from './context';
|
|
7
|
+
import { createRouter } from './create-router';
|
|
8
|
+
function RouterRoot({ daraData }) {
|
|
9
|
+
const snapshot = useRecoilSnapshot();
|
|
10
|
+
const snapshotRef = useLatestRef(snapshot);
|
|
11
|
+
const [routerData] = useState(() => createRouter(daraData, snapshotRef));
|
|
12
|
+
return (_jsx(RouterContextProvider, { routeDefinitions: routerData.routeDefinitions, routeObjects: routerData.routeObjects, routeDefMap: routerData.routeDefMap, children: _jsx(RouterProvider, { router: routerData.router }) }));
|
|
13
|
+
}
|
|
14
|
+
export default RouterRoot;
|
|
15
|
+
//# sourceMappingURL=router-root.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router-root.js","sourceRoot":"","sources":["../../js/router/router-root.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAM/C,SAAS,UAAU,CAAC,EAAE,QAAQ,EAAmB;IAC7C,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IACrC,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAE3C,MAAM,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAEzE,OAAO,CACH,KAAC,qBAAqB,IAClB,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,EAC7C,YAAY,EAAE,UAAU,CAAC,YAAY,EACrC,WAAW,EAAE,UAAU,CAAC,WAAW,YAEnC,KAAC,cAAc,IAAC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAI,GACzB,CAC3B,CAAC;AACN,CAAC;AAED,eAAe,UAAU,CAAC"}
|