@darajs/core 1.20.2 → 1.21.0
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 +0 -19
- package/dist/api/core.d.ts.map +1 -1
- package/dist/api/core.js +1 -69
- 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 +45 -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.0-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/run.d.ts +3 -1
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +49 -25
- 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/persistence.d.ts +5 -1
- package/dist/shared/interactivity/persistence.d.ts.map +1 -1
- package/dist/shared/interactivity/persistence.js +81 -3
- 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 +12 -0
- 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/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/{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/route-content.d.ts +21 -0
- package/dist/shared/root/route-content.d.ts.map +1 -0
- package/dist/shared/root/route-content.js +164 -0
- package/dist/shared/root/route-content.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/router.d.ts +14 -0
- package/dist/shared/router.d.ts.map +1 -0
- package/dist/shared/router.js +199 -0
- package/dist/shared/router.js.map +1 -0
- package/dist/shared/utils/index.d.ts +0 -1
- package/dist/shared/utils/index.d.ts.map +1 -1
- package/dist/shared/utils/index.js +0 -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 +73 -5
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js +11 -1
- package/dist/types/core.js.map +1 -1
- package/dist/umd/{dara.core.umd.js → dara.core.umd.cjs} +30052 -17828
- package/dist/umd/style.css +52 -9
- package/package.json +13 -15
- 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.2-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,164 @@
|
|
|
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
|
+
import {} from '@tanstack/react-query';
|
|
12
|
+
import * as React from 'react';
|
|
13
|
+
import { Await, useLoaderData, useMatches } from 'react-router';
|
|
14
|
+
import {} from 'recoil';
|
|
15
|
+
import { HTTP_METHOD } from '@darajs/ui-utils';
|
|
16
|
+
import { request } from '../../api';
|
|
17
|
+
import { handleAuthErrors } from '../../auth';
|
|
18
|
+
import { DefaultFallbackStatic } from '../../components/fallback/default';
|
|
19
|
+
import { LoaderError, isAnnotatedAction, } from '../../types';
|
|
20
|
+
import DynamicComponent from '../dynamic-component/dynamic-component';
|
|
21
|
+
import { cleanKwargs, resolveVariableStatic } from '../interactivity/resolve-variable';
|
|
22
|
+
import { useExecuteAction } from '../interactivity/use-action';
|
|
23
|
+
import { useWindowTitle } from '../utils';
|
|
24
|
+
import { denormalize, normalizeRequest } from '../utils/normalization';
|
|
25
|
+
/**
|
|
26
|
+
* We're using React Query for the loader to utilize a cache. This allows us to
|
|
27
|
+
* implement custom prefetching logic on links. React Router is not a cache
|
|
28
|
+
* and by default will always refetch the data on every navigation.
|
|
29
|
+
*
|
|
30
|
+
* See https://tkdodo.eu/blog/react-query-meets-react-router
|
|
31
|
+
*/
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
33
|
+
const loaderQuery = (route, params, snapshotRef) => ({
|
|
34
|
+
queryKey: ['route', route.id, params],
|
|
35
|
+
queryFn: (_a) => __awaiter(void 0, [_a], void 0, function* ({ signal }) {
|
|
36
|
+
// collect payloads for annotated actions - action impls can stay on the client
|
|
37
|
+
let actions = [];
|
|
38
|
+
if (Array.isArray(route.on_load)) {
|
|
39
|
+
actions = route.on_load;
|
|
40
|
+
}
|
|
41
|
+
else if (route.on_load) {
|
|
42
|
+
actions = [route.on_load];
|
|
43
|
+
}
|
|
44
|
+
const actionPayloads = actions.filter(isAnnotatedAction).map((a) => {
|
|
45
|
+
const kwargs = cleanKwargs(Object.fromEntries(Object.entries(a.dynamic_kwargs).map(([k, v]) => {
|
|
46
|
+
return [k, resolveVariableStatic(v, snapshotRef.current)];
|
|
47
|
+
})), null);
|
|
48
|
+
return {
|
|
49
|
+
uid: a.uid,
|
|
50
|
+
definition_uid: a.definition_uid,
|
|
51
|
+
values: normalizeRequest(kwargs, a.dynamic_kwargs),
|
|
52
|
+
};
|
|
53
|
+
});
|
|
54
|
+
const response = yield request(`/api/core/route/${route.id}`, {
|
|
55
|
+
method: HTTP_METHOD.POST,
|
|
56
|
+
body: JSON.stringify({
|
|
57
|
+
action_payloads: actionPayloads,
|
|
58
|
+
ws_channel: window.dara.ws ? yield window.dara.ws.getChannel() : null,
|
|
59
|
+
params,
|
|
60
|
+
}),
|
|
61
|
+
// ensures loader requests are cancelled if user changes their mind
|
|
62
|
+
signal,
|
|
63
|
+
});
|
|
64
|
+
yield handleAuthErrors(response, true);
|
|
65
|
+
if (!response.ok) {
|
|
66
|
+
const error = (yield response.json());
|
|
67
|
+
throw new LoaderError(error.detail);
|
|
68
|
+
}
|
|
69
|
+
const responseContent = yield response.json();
|
|
70
|
+
const template = denormalize(responseContent.template.data, responseContent.template.lookup);
|
|
71
|
+
const onLoad = actions.flatMap((a) => {
|
|
72
|
+
if (isAnnotatedAction(a)) {
|
|
73
|
+
return responseContent.action_results[a.uid];
|
|
74
|
+
}
|
|
75
|
+
return a;
|
|
76
|
+
});
|
|
77
|
+
return { template, on_load: onLoad, route_definition: route };
|
|
78
|
+
}),
|
|
79
|
+
refetchOnMount: false,
|
|
80
|
+
refetchOnWindowFocus: false,
|
|
81
|
+
refetchOnReconnect: false,
|
|
82
|
+
cacheTime: 0,
|
|
83
|
+
staleTime: 0,
|
|
84
|
+
});
|
|
85
|
+
function hasServerActions(route) {
|
|
86
|
+
if (!route.on_load) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
const actions = Array.isArray(route.on_load) ? route.on_load : [route.on_load];
|
|
90
|
+
return actions.some(isAnnotatedAction);
|
|
91
|
+
}
|
|
92
|
+
export function createRouteLoader(route, queryClient, snapshotRef) {
|
|
93
|
+
return function loader(_a) {
|
|
94
|
+
return __awaiter(this, arguments, void 0, function* ({ request: loaderRequest, params }) {
|
|
95
|
+
// make sure RR's signal cancels the prefetch
|
|
96
|
+
const query = loaderQuery(route, params, snapshotRef);
|
|
97
|
+
loaderRequest.signal.addEventListener('abort', () => {
|
|
98
|
+
queryClient.cancelQueries(query);
|
|
99
|
+
});
|
|
100
|
+
let result = queryClient.ensureQueryData(query);
|
|
101
|
+
// Let the result through as a promise if it's a page/index route with server actions on_load.
|
|
102
|
+
// Otherwise, await and block the navigation.
|
|
103
|
+
// This lets us render the fallback for pages without holding the navigation
|
|
104
|
+
// while the request is in flight, as th expectation is that it will take
|
|
105
|
+
// longer if there are AnnotatedActions to run.
|
|
106
|
+
// TODO: alternatively we can always block unless an explicit fallback is provided
|
|
107
|
+
if (!((route.__typename === 'IndexRoute' || route.__typename === 'PageRoute') && hasServerActions(route))) {
|
|
108
|
+
result = yield result;
|
|
109
|
+
}
|
|
110
|
+
return { data: result };
|
|
111
|
+
});
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function Content({ route, on_load, template, }) {
|
|
115
|
+
const executeAction = useExecuteAction();
|
|
116
|
+
const [isLoading, setIsLoading] = React.useState(on_load.length > 0);
|
|
117
|
+
React.useLayoutEffect(() => {
|
|
118
|
+
if (on_load.length === 0) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
let cancelled = false;
|
|
122
|
+
const result = executeAction(on_load);
|
|
123
|
+
// if result is a promise, handle async case
|
|
124
|
+
if (result instanceof Promise) {
|
|
125
|
+
result
|
|
126
|
+
.then(() => {
|
|
127
|
+
if (!cancelled) {
|
|
128
|
+
setIsLoading(false);
|
|
129
|
+
}
|
|
130
|
+
})
|
|
131
|
+
.catch((error) => {
|
|
132
|
+
if (!cancelled) {
|
|
133
|
+
// eslint-disable-next-line no-console
|
|
134
|
+
console.error('Error executing on_load actions:', error);
|
|
135
|
+
setIsLoading(false);
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
// synchronous case - immediately stop loading
|
|
141
|
+
setIsLoading(false);
|
|
142
|
+
}
|
|
143
|
+
return () => {
|
|
144
|
+
cancelled = true;
|
|
145
|
+
};
|
|
146
|
+
}, [route.id, on_load, executeAction]);
|
|
147
|
+
// only sync title for the most exact route
|
|
148
|
+
const matches = useMatches();
|
|
149
|
+
const isMostExact = matches.at(-1).id === route.id;
|
|
150
|
+
useWindowTitle(route.name, isMostExact);
|
|
151
|
+
if (isLoading) {
|
|
152
|
+
return _jsx(DefaultFallbackStatic, {});
|
|
153
|
+
}
|
|
154
|
+
return _jsx(DynamicComponent, { component: template });
|
|
155
|
+
}
|
|
156
|
+
function RouteContent(props) {
|
|
157
|
+
const { data } = useLoaderData();
|
|
158
|
+
if (data instanceof Promise) {
|
|
159
|
+
return (_jsx(React.Suspense, { fallback: _jsx(DefaultFallbackStatic, {}), children: _jsx(Await, { resolve: data, children: (resolved) => _jsx(Content, Object.assign({}, resolved, { route: props.route })) }) }));
|
|
160
|
+
}
|
|
161
|
+
return _jsx(Content, Object.assign({}, data, { route: props.route }));
|
|
162
|
+
}
|
|
163
|
+
export default RouteContent;
|
|
164
|
+
//# sourceMappingURL=route-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-content.js","sourceRoot":"","sources":["../../../js/shared/root/route-content.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rendered around the entire router content, regardless of whether it's the authenticated content
|
|
3
|
+
* or e.g. auth pages
|
|
4
|
+
*/
|
|
5
|
+
declare function UnauthenticatedRoot(): JSX.Element;
|
|
6
|
+
export default UnauthenticatedRoot;
|
|
7
|
+
//# sourceMappingURL=unauthenticated-root.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unauthenticated-root.d.ts","sourceRoot":"","sources":["../../../js/shared/root/unauthenticated-root.tsx"],"names":[],"mappings":"AAQA;;;GAGG;AACH,iBAAS,mBAAmB,IAAI,GAAG,CAAC,OAAO,CAkC1C;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import NProgress from 'nprogress';
|
|
3
|
+
import { useEffect, useRef } from 'react';
|
|
4
|
+
import { Outlet, useNavigation } from 'react-router';
|
|
5
|
+
import { RecoilURLSync } from 'recoil-sync';
|
|
6
|
+
import { PathParamSync } from '../interactivity/persistence';
|
|
7
|
+
import useUrlSync from '../utils/use-url-sync';
|
|
8
|
+
/**
|
|
9
|
+
* Rendered around the entire router content, regardless of whether it's the authenticated content
|
|
10
|
+
* or e.g. auth pages
|
|
11
|
+
*/
|
|
12
|
+
function UnauthenticatedRoot() {
|
|
13
|
+
const syncOptions = useUrlSync();
|
|
14
|
+
const navigation = useNavigation();
|
|
15
|
+
const progressRef = useRef(false);
|
|
16
|
+
const progressTimeout = useRef(null);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
// create a bar when state becomes loading or submitting
|
|
19
|
+
if (!progressRef.current && (navigation.state === 'loading' || navigation.state === 'submitting')) {
|
|
20
|
+
progressTimeout.current = setTimeout(() => NProgress.start(), 250);
|
|
21
|
+
progressRef.current = true;
|
|
22
|
+
}
|
|
23
|
+
// if there is a bar and we're idle, mark it as done
|
|
24
|
+
if (progressRef.current && navigation.state === 'idle') {
|
|
25
|
+
if (progressTimeout.current) {
|
|
26
|
+
clearTimeout(progressTimeout.current);
|
|
27
|
+
progressTimeout.current = null;
|
|
28
|
+
}
|
|
29
|
+
progressRef.current = false;
|
|
30
|
+
if (NProgress.isStarted()) {
|
|
31
|
+
NProgress.done();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}, [navigation.state]);
|
|
35
|
+
return (_jsx(PathParamSync, { children: _jsx(RecoilURLSync, Object.assign({}, syncOptions, { children: _jsx(Outlet, {}) })) }));
|
|
36
|
+
}
|
|
37
|
+
export default UnauthenticatedRoot;
|
|
38
|
+
//# sourceMappingURL=unauthenticated-root.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unauthenticated-root.js","sourceRoot":"","sources":["../../../js/shared/root/unauthenticated-root.tsx"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAE/C;;;GAGG;AACH,SAAS,mBAAmB;IACxB,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IAEnC,MAAM,WAAW,GAAG,MAAM,CAAU,KAAK,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAE5D,SAAS,CAAC,GAAG,EAAE;QACX,wDAAwD;QACxD,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,KAAK,YAAY,CAAC,EAAE,CAAC;YAChG,eAAe,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;YACnE,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,CAAC;QAED,oDAAoD;QACpD,IAAI,WAAW,CAAC,OAAO,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YACrD,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;gBAC1B,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBACtC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;YACnC,CAAC;YACD,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;YAC5B,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,CAAC;gBACxB,SAAS,CAAC,IAAI,EAAE,CAAC;YACrB,CAAC;QACL,CAAC;IACL,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAEvB,OAAO,CACH,KAAC,aAAa,cACV,KAAC,aAAa,oBAAK,WAAW,cAC1B,KAAC,MAAM,KAAG,IACE,GACJ,CACnB,CAAC;AACN,CAAC;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { QueryClient } from '@tanstack/query-core';
|
|
2
|
+
import { createBrowserRouter } from 'react-router';
|
|
3
|
+
import type { Snapshot } from 'recoil';
|
|
4
|
+
import { type DaraData, type RouteDefinition } from '../types/core';
|
|
5
|
+
/**
|
|
6
|
+
* Find the first navigatable path in the given routes.
|
|
7
|
+
* Walks the routes in a BFS and returns the first route with a path.
|
|
8
|
+
*/
|
|
9
|
+
export declare function findFirstPath(routes: RouteDefinition[]): string;
|
|
10
|
+
/**
|
|
11
|
+
* Create the router for the application
|
|
12
|
+
*/
|
|
13
|
+
export declare function createRouter(config: DaraData, queryClient: QueryClient, snapshotRef: React.MutableRefObject<Snapshot>): ReturnType<typeof createBrowserRouter>;
|
|
14
|
+
//# sourceMappingURL=router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../js/shared/router.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAA8B,mBAAmB,EAAY,MAAM,cAAc,CAAC;AACzF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAMvC,OAAO,EACH,KAAK,QAAQ,EAKb,KAAK,eAAe,EACvB,MAAM,cAAc,CAAC;AAgFtB;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CA4C/D;AASD;;GAEG;AACH,wBAAgB,YAAY,CACxB,MAAM,EAAE,QAAQ,EAChB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAC9C,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAkFxC"}
|
|
@@ -0,0 +1,199 @@
|
|
|
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 __rest = (this && this.__rest) || function (s, e) {
|
|
11
|
+
var t = {};
|
|
12
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
13
|
+
t[p] = s[p];
|
|
14
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
15
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
16
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
17
|
+
t[p[i]] = s[p[i]];
|
|
18
|
+
}
|
|
19
|
+
return t;
|
|
20
|
+
};
|
|
21
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
22
|
+
import { Navigate, createBrowserRouter, redirect } from 'react-router';
|
|
23
|
+
import { getSessionToken, resolveReferrer, verifySessionToken } from '../auth';
|
|
24
|
+
import { DefaultFallbackStatic } from '../components/fallback/default';
|
|
25
|
+
import ErrorStatusCodePage from '../pages/error-status-code-page';
|
|
26
|
+
import RouteErrorBoundary from '../pages/route-error-boundary';
|
|
27
|
+
import {} from '../types/core';
|
|
28
|
+
import DynamicAuthComponent from './dynamic-component/dynamic-auth-component';
|
|
29
|
+
import AuthenticatedRoot from './root/authenticated-root';
|
|
30
|
+
import RouteContent, { createRouteLoader } from './root/route-content';
|
|
31
|
+
import UnauthenticatedRoot from './root/unauthenticated-root';
|
|
32
|
+
/**
|
|
33
|
+
* Clean a single path segment by removing leading/trailing slashes
|
|
34
|
+
*/
|
|
35
|
+
function cleanPath(path) {
|
|
36
|
+
return path.replace(/^\/+|\/+$/g, '');
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Helper function to clean and join path segments properly
|
|
40
|
+
*/
|
|
41
|
+
function joinPaths(parentPath, childPath) {
|
|
42
|
+
// Remove leading/trailing slashes from both parts
|
|
43
|
+
const cleanParent = cleanPath(parentPath);
|
|
44
|
+
const cleanChild = cleanPath(childPath);
|
|
45
|
+
// Join with single slash and ensure leading slash
|
|
46
|
+
if (cleanParent === '' && cleanChild === '') {
|
|
47
|
+
return '/';
|
|
48
|
+
}
|
|
49
|
+
if (cleanParent === '') {
|
|
50
|
+
return `/${cleanChild}`;
|
|
51
|
+
}
|
|
52
|
+
if (cleanChild === '') {
|
|
53
|
+
return `/${cleanParent}`;
|
|
54
|
+
}
|
|
55
|
+
return `/${cleanParent}/${cleanChild}`;
|
|
56
|
+
}
|
|
57
|
+
function createRoute(route, queryClient, snapshotRef) {
|
|
58
|
+
const sharedProps = {
|
|
59
|
+
id: route.id,
|
|
60
|
+
caseSensitive: route.case_sensitive,
|
|
61
|
+
hydrateFallbackElement: _jsx(DefaultFallbackStatic, {}),
|
|
62
|
+
ErrorBoundary: RouteErrorBoundary,
|
|
63
|
+
};
|
|
64
|
+
switch (route.__typename) {
|
|
65
|
+
case 'IndexRoute':
|
|
66
|
+
return Object.assign(Object.assign({}, sharedProps), { index: true, element: _jsx(RouteContent, { route: route }, route.id), loader: createRouteLoader(route, queryClient, snapshotRef) });
|
|
67
|
+
case 'PageRoute':
|
|
68
|
+
return Object.assign(Object.assign({}, sharedProps), { path: cleanPath(route.path), element: _jsx(RouteContent, { route: route }, route.id), loader: createRouteLoader(route, queryClient, snapshotRef), children: route.children.map((r) => createRoute(r, queryClient, snapshotRef)) });
|
|
69
|
+
case 'LayoutRoute':
|
|
70
|
+
return Object.assign(Object.assign({}, sharedProps), { element: _jsx(RouteContent, { route: route }, route.id), loader: createRouteLoader(route, queryClient, snapshotRef), children: route.children.map((r) => createRoute(r, queryClient, snapshotRef)) });
|
|
71
|
+
case 'PrefixRoute':
|
|
72
|
+
return Object.assign(Object.assign({}, sharedProps), { path: cleanPath(route.path), children: route.children.map((r) => createRoute(r, queryClient, snapshotRef)) });
|
|
73
|
+
default:
|
|
74
|
+
throw new Error(`Unknown route type ${JSON.stringify(route)}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Find the first navigatable path in the given routes.
|
|
79
|
+
* Walks the routes in a BFS and returns the first route with a path.
|
|
80
|
+
*/
|
|
81
|
+
export function findFirstPath(routes) {
|
|
82
|
+
const queue = [{ routes, path: '/' }];
|
|
83
|
+
while (queue.length > 0) {
|
|
84
|
+
const { routes: currentRoutes, path: currentPath } = queue.shift();
|
|
85
|
+
// Categorize routes at current level
|
|
86
|
+
let indexRoute = null;
|
|
87
|
+
const pageRoutes = [];
|
|
88
|
+
const otherRoutes = [];
|
|
89
|
+
for (const route of currentRoutes) {
|
|
90
|
+
if (route.__typename === 'IndexRoute') {
|
|
91
|
+
indexRoute = route;
|
|
92
|
+
}
|
|
93
|
+
else if (route.__typename === 'PageRoute') {
|
|
94
|
+
pageRoutes.push(route);
|
|
95
|
+
}
|
|
96
|
+
else if (route.__typename === 'LayoutRoute' || route.__typename === 'PrefixRoute') {
|
|
97
|
+
otherRoutes.push(route);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// 1. Prefer index routes - return current path as it's navigatable
|
|
101
|
+
if (indexRoute) {
|
|
102
|
+
return currentPath === '' ? '/' : joinPaths('', currentPath);
|
|
103
|
+
}
|
|
104
|
+
// 2. Then prefer page routes - just return first one joined with parent
|
|
105
|
+
if (pageRoutes.length > 0) {
|
|
106
|
+
return joinPaths(currentPath, pageRoutes[0].path);
|
|
107
|
+
}
|
|
108
|
+
// 3. Add layout/prefix routes to queue for processing
|
|
109
|
+
for (const otherRoute of otherRoutes) {
|
|
110
|
+
const routePath = 'path' in otherRoute ? otherRoute.path : '';
|
|
111
|
+
queue.push({ routes: otherRoute.children, path: joinPaths(currentPath, routePath) });
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return '/';
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Simple boolean to track whether we have done an initial verification of the token.
|
|
118
|
+
* We only do it once, as we don't want to do it on every navigation - any server interaction will require a valid token anyway.
|
|
119
|
+
* The initial check is only done to ensure that on initial load we short-circuit and bail out as early as possible.
|
|
120
|
+
*/
|
|
121
|
+
let verifiedToken = false;
|
|
122
|
+
/**
|
|
123
|
+
* Create the router for the application
|
|
124
|
+
*/
|
|
125
|
+
export function createRouter(config, queryClient, snapshotRef) {
|
|
126
|
+
let basename = '';
|
|
127
|
+
// The base_url is set in the html template by the backend when returning it
|
|
128
|
+
if (window.dara.base_url !== '') {
|
|
129
|
+
basename = new URL(window.dara.base_url, window.origin).pathname;
|
|
130
|
+
}
|
|
131
|
+
const _a = config.auth_components, { login, logout } = _a, extraRoutes = __rest(_a, ["login", "logout"]);
|
|
132
|
+
const userRoutes = config.router.children.map((r) => createRoute(r, queryClient, snapshotRef));
|
|
133
|
+
const defaultPath = findFirstPath(config.router.children) || '/';
|
|
134
|
+
return createBrowserRouter([
|
|
135
|
+
{
|
|
136
|
+
// wrapper around all the router content
|
|
137
|
+
element: _jsx(UnauthenticatedRoot, {}),
|
|
138
|
+
hydrateFallbackElement: _jsx(DefaultFallbackStatic, {}),
|
|
139
|
+
ErrorBoundary: RouteErrorBoundary,
|
|
140
|
+
children: [
|
|
141
|
+
{
|
|
142
|
+
path: 'error',
|
|
143
|
+
Component: ErrorStatusCodePage,
|
|
144
|
+
},
|
|
145
|
+
// core auth routes
|
|
146
|
+
{
|
|
147
|
+
path: 'login',
|
|
148
|
+
element: _jsx(DynamicAuthComponent, { component: login }),
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
path: 'logout',
|
|
152
|
+
element: _jsx(DynamicAuthComponent, { component: logout }),
|
|
153
|
+
},
|
|
154
|
+
// extra auth routes
|
|
155
|
+
...Object.entries(extraRoutes).map(([path, component]) => ({
|
|
156
|
+
path,
|
|
157
|
+
element: _jsx(DynamicAuthComponent, { component: component }),
|
|
158
|
+
})),
|
|
159
|
+
// root of the app
|
|
160
|
+
{
|
|
161
|
+
element: _jsx(AuthenticatedRoot, { daraData: config }),
|
|
162
|
+
// token must be set to access the authenticated routes
|
|
163
|
+
unstable_middleware: [
|
|
164
|
+
() => __awaiter(this, void 0, void 0, function* () {
|
|
165
|
+
var _a, _b;
|
|
166
|
+
if (verifiedToken) {
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
const token = getSessionToken();
|
|
170
|
+
// if there is a token and we can verify it, we're good to go
|
|
171
|
+
if (token && (yield verifySessionToken())) {
|
|
172
|
+
verifiedToken = true;
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
// otherwise there is no token or it's invalid, redirect to login
|
|
176
|
+
const referrer = resolveReferrer();
|
|
177
|
+
const baseUrl = (_b = (_a = window.dara) === null || _a === void 0 ? void 0 : _a.base_url) !== null && _b !== void 0 ? _b : '';
|
|
178
|
+
const redirectUrl = new URL(`${baseUrl}/login`, window.location.origin);
|
|
179
|
+
redirectUrl.searchParams.set('referrer', referrer);
|
|
180
|
+
// Intended RR API usage
|
|
181
|
+
// eslint-disable-next-line @typescript-eslint/only-throw-error
|
|
182
|
+
throw redirect(redirectUrl.toString());
|
|
183
|
+
}),
|
|
184
|
+
],
|
|
185
|
+
// user-defined routes
|
|
186
|
+
children: [
|
|
187
|
+
...userRoutes,
|
|
188
|
+
// fallback route, redirect to first navigatable path
|
|
189
|
+
{
|
|
190
|
+
path: '*',
|
|
191
|
+
element: _jsx(Navigate, { to: defaultPath }),
|
|
192
|
+
},
|
|
193
|
+
],
|
|
194
|
+
},
|
|
195
|
+
],
|
|
196
|
+
},
|
|
197
|
+
], { basename });
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../js/shared/router.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAAE,QAAQ,EAAoB,mBAAmB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGzF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,mBAAmB,MAAM,gCAAgC,CAAC;AACjE,OAAO,kBAAkB,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAON,MAAM,cAAc,CAAC;AAEtB,OAAO,oBAAoB,MAAM,4CAA4C,CAAC;AAC9E,OAAO,iBAAiB,MAAM,2BAA2B,CAAC;AAC1D,OAAO,YAAY,EAAE,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,mBAAmB,MAAM,6BAA6B,CAAC;AAE9D;;GAEG;AACH,SAAS,SAAS,CAAC,IAAY;IAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,UAAkB,EAAE,SAAiB;IACpD,kDAAkD;IAClD,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAExC,kDAAkD;IAClD,IAAI,WAAW,KAAK,EAAE,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QAC1C,OAAO,GAAG,CAAC;IACf,CAAC;IACD,IAAI,WAAW,KAAK,EAAE,EAAE,CAAC;QACrB,OAAO,IAAI,UAAU,EAAE,CAAC;IAC5B,CAAC;IACD,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QACpB,OAAO,IAAI,WAAW,EAAE,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,WAAW,CAChB,KAAsB,EACtB,WAAwB,EACxB,WAA6C;IAE7C,MAAM,WAAW,GAAG;QAChB,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,aAAa,EAAE,KAAK,CAAC,cAAc;QACnC,sBAAsB,EAAE,KAAC,qBAAqB,KAAG;QACjD,aAAa,EAAE,kBAAkB;KACpC,CAAC;IAEF,QAAQ,KAAK,CAAC,UAAU,EAAE,CAAC;QACvB,KAAK,YAAY;YACb,uCACO,WAAW,KACd,KAAK,EAAE,IAAI,EACX,OAAO,EAAE,KAAC,YAAY,IAAC,KAAK,EAAE,KAAK,IAAO,KAAK,CAAC,EAAE,CAAI,EACtD,MAAM,EAAE,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,IAC5D;QACN,KAAK,WAAW;YACZ,uCACO,WAAW,KACd,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC3B,OAAO,EAAE,KAAC,YAAY,IAAC,KAAK,EAAE,KAAK,IAAO,KAAK,CAAC,EAAE,CAAI,EACtD,MAAM,EAAE,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,EAC1D,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,IAC/E;QACN,KAAK,aAAa;YACd,uCACO,WAAW,KACd,OAAO,EAAE,KAAC,YAAY,IAAC,KAAK,EAAE,KAAK,IAAO,KAAK,CAAC,EAAE,CAAI,EACtD,MAAM,EAAE,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,EAC1D,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,IAC/E;QACN,KAAK,aAAa;YACd,uCACO,WAAW,KACd,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC3B,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,IAC/E;QACN;YACI,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;AACL,CAAC;AACD;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAyB;IAMnD,MAAM,KAAK,GAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAEnD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QAEpE,qCAAqC;QACrC,IAAI,UAAU,GAAgC,IAAI,CAAC;QACnD,MAAM,UAAU,GAA0B,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAsD,EAAE,CAAC;QAE1E,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,UAAU,KAAK,YAAY,EAAE,CAAC;gBACpC,UAAU,GAAG,KAAK,CAAC;YACvB,CAAC;iBAAM,IAAI,KAAK,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;gBAC1C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;iBAAM,IAAI,KAAK,CAAC,UAAU,KAAK,aAAa,IAAI,KAAK,CAAC,UAAU,KAAK,aAAa,EAAE,CAAC;gBAClF,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;QAED,mEAAmE;QACnE,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QACjE,CAAC;QAED,wEAAwE;QACxE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;QAED,sDAAsD;QACtD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,IAAI,aAAa,GAAG,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,UAAU,YAAY,CACxB,MAAgB,EAChB,WAAwB,EACxB,WAA6C;IAE7C,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,4EAA4E;IAC5E,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;QAC9B,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;IACrE,CAAC;IAED,MAAM,KAAoC,MAAM,CAAC,eAAe,EAA1D,EAAE,KAAK,EAAE,MAAM,OAA2C,EAAtC,WAAW,cAA/B,mBAAiC,CAAyB,CAAC;IAEjE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IAC/F,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC;IAEjE,OAAO,mBAAmB,CACtB;QACI;YACI,wCAAwC;YACxC,OAAO,EAAE,KAAC,mBAAmB,KAAG;YAChC,sBAAsB,EAAE,KAAC,qBAAqB,KAAG;YACjD,aAAa,EAAE,kBAAkB;YACjC,QAAQ,EAAE;gBACN;oBACI,IAAI,EAAE,OAAO;oBACb,SAAS,EAAE,mBAAmB;iBACjC;gBACD,mBAAmB;gBACnB;oBACI,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,KAAC,oBAAoB,IAAC,SAAS,EAAE,KAAK,GAAI;iBACtD;gBACD;oBACI,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,KAAC,oBAAoB,IAAC,SAAS,EAAE,MAAM,GAAI;iBACvD;gBACD,oBAAoB;gBACpB,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;oBACvD,IAAI;oBACJ,OAAO,EAAE,KAAC,oBAAoB,IAAC,SAAS,EAAE,SAAS,GAAI;iBAC1D,CAAC,CAAC;gBACH,kBAAkB;gBAClB;oBACI,OAAO,EAAE,KAAC,iBAAiB,IAAC,QAAQ,EAAE,MAAM,GAAI;oBAChD,uDAAuD;oBACvD,mBAAmB,EAAE;wBACjB,GAAS,EAAE;;4BACP,IAAI,aAAa,EAAE,CAAC;gCAChB,OAAO;4BACX,CAAC;4BAED,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;4BAEhC,6DAA6D;4BAC7D,IAAI,KAAK,IAAI,CAAC,MAAM,kBAAkB,EAAE,CAAC,EAAE,CAAC;gCACxC,aAAa,GAAG,IAAI,CAAC;gCACrB,OAAO;4BACX,CAAC;4BAED,iEAAiE;4BACjE,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;4BACnC,MAAM,OAAO,GAAW,MAAA,MAAA,MAAM,CAAC,IAAI,0CAAE,QAAQ,mCAAI,EAAE,CAAC;4BACpD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,GAAG,OAAO,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;4BACxE,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;4BACnD,wBAAwB;4BACxB,+DAA+D;4BAC/D,MAAM,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;wBAC3C,CAAC,CAAA;qBACJ;oBACD,sBAAsB;oBACtB,QAAQ,EAAE;wBACN,GAAG,UAAU;wBACb,qDAAqD;wBACrD;4BACI,IAAI,EAAE,GAAG;4BACT,OAAO,EAAE,KAAC,QAAQ,IAAC,EAAE,EAAE,WAAW,GAAI;yBACzC;qBACJ;iBACJ;aACJ;SACJ;KACJ,EACD,EAAE,QAAQ,EAAE,CACf,CAAC;AACN,CAAC"}
|
|
@@ -4,7 +4,6 @@ export { getToken, getTokenKey, DARA_JWT_TOKEN } from './embed';
|
|
|
4
4
|
export { default as isJsComponent } from './is-js-component';
|
|
5
5
|
export { default as resolveTheme } from './resolve-theme';
|
|
6
6
|
export { default as useDeferLoadable } from './use-defer-loadable';
|
|
7
|
-
export { default as useComponentRegistry } from './use-component-registry';
|
|
8
7
|
export { default as useInterval } from './use-interval';
|
|
9
8
|
export { default as usePrevious } from './use-previous';
|
|
10
9
|
export { default as useWindowTitle } from './use-window-title';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../js/shared/utils/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../js/shared/utils/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -3,7 +3,6 @@ export { getToken, getTokenKey, DARA_JWT_TOKEN } from './embed';
|
|
|
3
3
|
export { default as isJsComponent } from './is-js-component';
|
|
4
4
|
export { default as resolveTheme } from './resolve-theme';
|
|
5
5
|
export { default as useDeferLoadable } from './use-defer-loadable';
|
|
6
|
-
export { default as useComponentRegistry } from './use-component-registry';
|
|
7
6
|
export { default as useInterval } from './use-interval';
|
|
8
7
|
export { default as usePrevious } from './use-previous';
|
|
9
8
|
export { default as useWindowTitle } from './use-window-title';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../js/shared/utils/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../js/shared/utils/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -19,6 +19,6 @@ export declare function parseRawCss(rawCss: string | CustomCSSProperties | React
|
|
|
19
19
|
* @param props props to get styles from
|
|
20
20
|
* @param useDisplayContext whether or not to use the display context, for some components such as Modal, these do not care for the context of their parent
|
|
21
21
|
*/
|
|
22
|
-
export default function useComponentStyles(props: StyledComponentProps, useDisplayContext?: boolean): [CustomCSSProperties, string];
|
|
22
|
+
export default function useComponentStyles(props: StyledComponentProps, useDisplayContext?: boolean, propName?: string): [CustomCSSProperties, string];
|
|
23
23
|
export {};
|
|
24
24
|
//# sourceMappingURL=use-component-styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-component-styles.d.ts","sourceRoot":"","sources":["../../../js/shared/utils/use-component-styles.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAUpD;;GAEG;AACH,UAAU,mBAAoB,SAAQ,KAAK,CAAC,aAAa;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAsCD;;;;GAIG;AACH,wBAAgB,WAAW,CACvB,MAAM,EAAE,MAAM,GAAG,mBAAmB,GAAG,KAAK,CAAC,aAAa,GAAG,SAAS,GAAG,IAAI,GAC9E,CAAC,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,CAAC,CAOlD;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACtC,KAAK,EAAE,oBAAoB,EAC3B,iBAAiB,UAAO,
|
|
1
|
+
{"version":3,"file":"use-component-styles.d.ts","sourceRoot":"","sources":["../../../js/shared/utils/use-component-styles.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAUpD;;GAEG;AACH,UAAU,mBAAoB,SAAQ,KAAK,CAAC,aAAa;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAsCD;;;;GAIG;AACH,wBAAgB,WAAW,CACvB,MAAM,EAAE,MAAM,GAAG,mBAAmB,GAAG,KAAK,CAAC,aAAa,GAAG,SAAS,GAAG,IAAI,GAC9E,CAAC,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,CAAC,CAOlD;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACtC,KAAK,EAAE,oBAAoB,EAC3B,iBAAiB,UAAO,EACxB,QAAQ,GAAE,MAAkB,GAC7B,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAsC/B"}
|
|
@@ -56,8 +56,8 @@ export function parseRawCss(rawCss) {
|
|
|
56
56
|
* @param props props to get styles from
|
|
57
57
|
* @param useDisplayContext whether or not to use the display context, for some components such as Modal, these do not care for the context of their parent
|
|
58
58
|
*/
|
|
59
|
-
export default function useComponentStyles(props, useDisplayContext = true) {
|
|
60
|
-
const [rawCssValue] = useVariable(props
|
|
59
|
+
export default function useComponentStyles(props, useDisplayContext = true, propName = 'raw_css') {
|
|
60
|
+
const [rawCssValue] = useVariable(props[propName]);
|
|
61
61
|
const [rawStyles, rawCss] = parseRawCss(rawCssValue);
|
|
62
62
|
const displayCtx = useContext(DisplayCtx);
|
|
63
63
|
const flexProps = flexStyles(props, displayCtx, useDisplayContext);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-component-styles.js","sourceRoot":"","sources":["../../../js/shared/utils/use-component-styles.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAwB,MAAM,kCAAkC,CAAC;AAC/F,OAAO,EAA6B,MAAM,SAAS,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAe5D;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,KAA2B,EAAE,UAA2B,EAAE,iBAA0B;IACpG,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;IAC5B,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;IAC9B,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;IAE1B,IAAI,iBAAiB,EAAE,CAAC;QACpB,yEAAyE;QACzE,IAAI,KAAK,CAAC,KAAK,IAAI,UAAU,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YACvD,SAAS,aAAT,SAAS,cAAT,SAAS,IAAT,SAAS,GAAK,KAAK,CAAC,KAAK,EAAC;YAC1B,UAAU,aAAV,UAAU,cAAV,UAAU,IAAV,UAAU,GAAK,GAAG,EAAC;YACnB,QAAQ,aAAR,QAAQ,cAAR,QAAQ,IAAR,QAAQ,GAAK,GAAG,EAAC;QACrB,CAAC;QACD,wEAAwE;QACxE,IAAI,KAAK,CAAC,MAAM,IAAI,UAAU,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACtD,SAAS,aAAT,SAAS,cAAT,SAAS,IAAT,SAAS,GAAK,KAAK,CAAC,MAAM,EAAC;YAC3B,UAAU,aAAV,UAAU,cAAV,UAAU,IAAV,UAAU,GAAK,GAAG,EAAC;YACnB,QAAQ,aAAR,QAAQ,cAAR,QAAQ,IAAR,QAAQ,GAAK,GAAG,EAAC;QACrB,CAAC;IACL,CAAC;IACD,8DAA8D;IAC9D,4GAA4G;IAC5G,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,SAAS,aAAT,SAAS,cAAT,SAAS,IAAT,SAAS,GAAK,SAAS,EAAC;QACxB,UAAU,aAAV,UAAU,cAAV,UAAU,IAAV,UAAU,GAAK,GAAG,EAAC;QACnB,QAAQ,aAAR,QAAQ,cAAR,QAAQ,IAAR,QAAQ,GAAK,GAAG,EAAC;IACrB,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACvB,MAA6E;IAE7E,MAAM,WAAW,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,CAAC;IAE1F,MAAM,YAAY,GAAG,CAAC,WAAW,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzC,OAAO,CAAC,MAA6B,EAAE,YAAY,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACtC,KAA2B,EAC3B,iBAAiB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"use-component-styles.js","sourceRoot":"","sources":["../../../js/shared/utils/use-component-styles.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,8 @@
|
|
|
1
|
-
import { type History } from 'history';
|
|
2
1
|
import { type RecoilURLSyncOptions } from 'recoil-sync';
|
|
3
|
-
interface UrlSyncOptions {
|
|
4
|
-
/**
|
|
5
|
-
* History object to use
|
|
6
|
-
*/
|
|
7
|
-
history: History;
|
|
8
|
-
/**
|
|
9
|
-
* Whether to use memory history overrides for testing
|
|
10
|
-
*/
|
|
11
|
-
memory_TEST?: boolean;
|
|
12
|
-
}
|
|
13
2
|
/**
|
|
14
3
|
* Setup the URL sync for the application. This is used to sync Recoil state with the URL query params.
|
|
15
4
|
*
|
|
16
5
|
* @param basename router basename
|
|
17
6
|
*/
|
|
18
|
-
export default function useUrlSync(
|
|
19
|
-
export {};
|
|
7
|
+
export default function useUrlSync(): Omit<RecoilURLSyncOptions, 'children'>;
|
|
20
8
|
//# sourceMappingURL=use-url-sync.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-url-sync.d.ts","sourceRoot":"","sources":["../../../js/shared/utils/use-url-sync.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-url-sync.d.ts","sourceRoot":"","sources":["../../../js/shared/utils/use-url-sync.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,IAAI,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAiE3E"}
|