@cratis/scene.react 4.13.0 → 4.14.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/cjs/core/coreComponents.js +1 -1
- package/dist/cjs/index.js +12 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/navigation/SceneNavigationContext.js.map +1 -1
- package/dist/cjs/navigation/SceneNavigationHost.js +19 -44
- package/dist/cjs/navigation/SceneNavigationHost.js.map +1 -1
- package/dist/cjs/navigation/createBrowserSceneHistory.js +39 -0
- package/dist/cjs/navigation/createBrowserSceneHistory.js.map +1 -0
- package/dist/cjs/navigation/createMemorySceneHistory.js +53 -0
- package/dist/cjs/navigation/createMemorySceneHistory.js.map +1 -0
- package/dist/cjs/navigation/matchSceneRoute.js +43 -0
- package/dist/cjs/navigation/matchSceneRoute.js.map +1 -0
- package/dist/cjs/navigation/resolveDestination.js +1 -0
- package/dist/cjs/navigation/resolveDestination.js.map +1 -1
- package/dist/cjs/navigation/sceneRoutesFrom.js +37 -0
- package/dist/cjs/navigation/sceneRoutesFrom.js.map +1 -0
- package/dist/cjs/navigation/useSceneHistoryNavigation.js +112 -0
- package/dist/cjs/navigation/useSceneHistoryNavigation.js.map +1 -0
- package/dist/esm/core/coreComponents.js +1 -1
- package/dist/esm/index.js +6 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/navigation/DestinationResolution.d.ts +1 -0
- package/dist/esm/navigation/DestinationResolution.d.ts.map +1 -1
- package/dist/esm/navigation/DialogResult.d.ts +5 -0
- package/dist/esm/navigation/DialogResult.d.ts.map +1 -0
- package/dist/esm/navigation/DialogResult.js +2 -0
- package/dist/esm/navigation/DialogResult.js.map +1 -0
- package/dist/esm/navigation/SceneHistory.d.ts +10 -0
- package/dist/esm/navigation/SceneHistory.d.ts.map +1 -0
- package/dist/esm/navigation/SceneHistory.js +2 -0
- package/dist/esm/navigation/SceneHistory.js.map +1 -0
- package/dist/esm/navigation/SceneNavigationContext.d.ts +6 -1
- package/dist/esm/navigation/SceneNavigationContext.d.ts.map +1 -1
- package/dist/esm/navigation/SceneNavigationContext.js.map +1 -1
- package/dist/esm/navigation/SceneNavigationHost.d.ts +7 -2
- package/dist/esm/navigation/SceneNavigationHost.d.ts.map +1 -1
- package/dist/esm/navigation/SceneNavigationHost.js +20 -45
- package/dist/esm/navigation/SceneNavigationHost.js.map +1 -1
- package/dist/esm/navigation/SceneNavigationState.d.ts +8 -0
- package/dist/esm/navigation/SceneNavigationState.d.ts.map +1 -0
- package/dist/esm/navigation/SceneNavigationState.js +2 -0
- package/dist/esm/navigation/SceneNavigationState.js.map +1 -0
- package/dist/esm/navigation/SceneRoute.d.ts +6 -0
- package/dist/esm/navigation/SceneRoute.d.ts.map +1 -0
- package/dist/esm/navigation/SceneRoute.js +2 -0
- package/dist/esm/navigation/SceneRoute.js.map +1 -0
- package/dist/esm/navigation/createBrowserSceneHistory.d.ts +4 -0
- package/dist/esm/navigation/createBrowserSceneHistory.d.ts.map +1 -0
- package/dist/esm/navigation/createBrowserSceneHistory.js +37 -0
- package/dist/esm/navigation/createBrowserSceneHistory.js.map +1 -0
- package/dist/esm/navigation/createMemorySceneHistory.d.ts +7 -0
- package/dist/esm/navigation/createMemorySceneHistory.d.ts.map +1 -0
- package/dist/esm/navigation/createMemorySceneHistory.js +51 -0
- package/dist/esm/navigation/createMemorySceneHistory.js.map +1 -0
- package/dist/esm/navigation/index.d.ts +10 -1
- package/dist/esm/navigation/index.d.ts.map +1 -1
- package/dist/esm/navigation/index.js +10 -1
- package/dist/esm/navigation/index.js.map +1 -1
- package/dist/esm/navigation/matchSceneRoute.d.ts +7 -0
- package/dist/esm/navigation/matchSceneRoute.d.ts.map +1 -0
- package/dist/esm/navigation/matchSceneRoute.js +41 -0
- package/dist/esm/navigation/matchSceneRoute.js.map +1 -0
- package/dist/esm/navigation/resolveDestination.d.ts.map +1 -1
- package/dist/esm/navigation/resolveDestination.js +1 -0
- package/dist/esm/navigation/resolveDestination.js.map +1 -1
- package/dist/esm/navigation/sceneRoutesFrom.d.ts +4 -0
- package/dist/esm/navigation/sceneRoutesFrom.d.ts.map +1 -0
- package/dist/esm/navigation/sceneRoutesFrom.js +35 -0
- package/dist/esm/navigation/sceneRoutesFrom.js.map +1 -0
- package/dist/esm/navigation/useSceneHistoryNavigation.d.ts +6 -0
- package/dist/esm/navigation/useSceneHistoryNavigation.d.ts.map +1 -0
- package/dist/esm/navigation/useSceneHistoryNavigation.js +110 -0
- package/dist/esm/navigation/useSceneHistoryNavigation.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/navigation/DestinationResolution.ts +3 -0
- package/navigation/DialogResult.ts +8 -0
- package/navigation/SceneHistory.ts +24 -0
- package/navigation/SceneNavigationContext.tsx +16 -1
- package/navigation/SceneNavigationHost.tsx +30 -40
- package/navigation/SceneNavigationState.ts +19 -0
- package/navigation/SceneRoute.ts +12 -0
- package/navigation/createBrowserSceneHistory.ts +40 -0
- package/navigation/createMemorySceneHistory.ts +44 -0
- package/navigation/index.ts +10 -1
- package/navigation/matchSceneRoute.ts +45 -0
- package/navigation/resolveDestination.ts +1 -0
- package/navigation/sceneRoutesFrom.ts +24 -0
- package/navigation/useSceneHistoryNavigation.ts +80 -0
- package/package.json +5 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sceneRoutesFrom.d.ts","sourceRoot":"","sources":["../../../navigation/sceneRoutesFrom.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO1C,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,GAAE,oBAAoB,EAAO,GAAG,UAAU,EAAE,CAW1G"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { DestinationKind } from '@cratis/scene.model';
|
|
2
|
+
import { identityRoute } from './identityRoute.js';
|
|
3
|
+
|
|
4
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
5
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
6
|
+
/**
|
|
7
|
+
* The routes a host can deep link to: every screen at its own name, and every outlet destination at its
|
|
8
|
+
* authored route override or identity route. A destination listed earlier wins a route it shares with a
|
|
9
|
+
* later one, and authored overrides come before the screen-name defaults.
|
|
10
|
+
*/ function sceneRoutesFrom(screens, destinations = []) {
|
|
11
|
+
const routes = [];
|
|
12
|
+
for (const destination of destinations){
|
|
13
|
+
const kind = destination.kind ?? (destination.dialog ? DestinationKind.Dialog : DestinationKind.Outlet);
|
|
14
|
+
const screen = destination.screen ?? destination.slice;
|
|
15
|
+
const route = destination.route ?? identityRoute(destination);
|
|
16
|
+
if (kind !== DestinationKind.Outlet || !screen || !route) continue;
|
|
17
|
+
routes.push({
|
|
18
|
+
route,
|
|
19
|
+
screen,
|
|
20
|
+
...destination.outlet ? {
|
|
21
|
+
outlet: destination.outlet
|
|
22
|
+
} : {}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return [
|
|
26
|
+
...routes,
|
|
27
|
+
...screens.map((screen)=>({
|
|
28
|
+
route: screen,
|
|
29
|
+
screen
|
|
30
|
+
}))
|
|
31
|
+
];
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export { sceneRoutesFrom };
|
|
35
|
+
//# sourceMappingURL=sceneRoutesFrom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sceneRoutesFrom.js","sources":["../../../navigation/sceneRoutesFrom.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DestinationKind, DestinationReference } from '@cratis/scene.model';\nimport { identityRoute } from './identityRoute';\nimport { SceneRoute } from './SceneRoute';\n\n/**\n * The routes a host can deep link to: every screen at its own name, and every outlet destination at its\n * authored route override or identity route. A destination listed earlier wins a route it shares with a\n * later one, and authored overrides come before the screen-name defaults.\n */\nexport function sceneRoutesFrom(screens: string[], destinations: DestinationReference[] = []): SceneRoute[] {\n const routes: SceneRoute[] = [];\n for (const destination of destinations) {\n const kind = destination.kind ?? (destination.dialog ? DestinationKind.Dialog : DestinationKind.Outlet);\n const screen = destination.screen ?? destination.slice;\n const route = destination.route ?? identityRoute(destination);\n if (kind !== DestinationKind.Outlet || !screen || !route) continue;\n routes.push({ route, screen, ...(destination.outlet ? { outlet: destination.outlet } : {}) });\n }\n\n return [...routes, ...screens.map(screen => ({ route: screen, screen }))];\n}\n"],"names":["sceneRoutesFrom","screens","destinations","routes","destination","kind","dialog","DestinationKind","Dialog","Outlet","screen","slice","route","identityRoute","push","outlet","map"],"mappings":";;;AAAA;AACA;AAMA;;;;AAIC,IACM,SAASA,eAAAA,CAAgBC,OAAiB,EAAEC,eAAuC,EAAE,EAAA;AACxF,IAAA,MAAMC,SAAuB,EAAE;IAC/B,KAAK,MAAMC,eAAeF,YAAAA,CAAc;AACpC,QAAA,MAAMG,IAAAA,GAAOD,WAAAA,CAAYC,IAAI,KAAKD,WAAAA,CAAYE,MAAM,GAAGC,eAAAA,CAAgBC,MAAM,GAAGD,eAAAA,CAAgBE,MAAM,CAAD;AACrG,QAAA,MAAMC,MAAAA,GAASN,WAAAA,CAAYM,MAAM,IAAIN,YAAYO,KAAK;AACtD,QAAA,MAAMC,KAAAA,GAAQR,WAAAA,CAAYQ,KAAK,IAAIC,aAAAA,CAAcT,WAAAA,CAAAA;AACjD,QAAA,IAAIC,SAASE,eAAAA,CAAgBE,MAAM,IAAI,CAACC,MAAAA,IAAU,CAACE,KAAAA,EAAO;AAC1DT,QAAAA,MAAAA,CAAOW,IAAI,CAAC;AAAEF,YAAAA,KAAAA;AAAOF,YAAAA,MAAAA;YAAQ,GAAIN,WAAAA,CAAYW,MAAM,GAAG;AAAEA,gBAAAA,MAAAA,EAAQX,YAAYW;AAAO,aAAA,GAAI;AAAI,SAAA,CAAA;AAC/F,IAAA;IAEA,OAAO;AAAIZ,QAAAA,GAAAA,MAAAA;AAAWF,QAAAA,GAAAA,OAAAA,CAAQe,GAAG,CAACN,CAAAA,MAAAA,IAAW;gBAAEE,KAAAA,EAAOF,MAAAA;AAAQA,gBAAAA;aAAO,CAAA;AAAI,KAAA;AAC7E;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BindingScope } from '@cratis/scene.engine';
|
|
2
|
+
import { SceneHistory } from './SceneHistory';
|
|
3
|
+
import { SceneNavigationContextValue } from './SceneNavigationContext';
|
|
4
|
+
import { SceneRoute } from './SceneRoute';
|
|
5
|
+
export declare function useSceneHistoryNavigation(history: SceneHistory, routes: SceneRoute[], initialScreen: string, bindingScope: BindingScope): SceneNavigationContextValue;
|
|
6
|
+
//# sourceMappingURL=useSceneHistoryNavigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSceneHistoryNavigation.d.ts","sourceRoot":"","sources":["../../../navigation/useSceneHistoryNavigation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAKpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO1C,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,2BAA2B,CA4DrK"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { useCallback, useMemo, useState, useRef, useEffect } from 'react';
|
|
2
|
+
import { DestinationKind } from '@cratis/scene.model';
|
|
3
|
+
import { matchSceneRoute } from './matchSceneRoute.js';
|
|
4
|
+
import { resolveDestination } from './resolveDestination.js';
|
|
5
|
+
|
|
6
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
7
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
8
|
+
/**
|
|
9
|
+
* Keeps a navigation host's state in a {@link SceneHistory}: every navigation and every dialog is an entry,
|
|
10
|
+
* so back and forward step through them, a refresh restores the stored entry, and a deep link is matched
|
|
11
|
+
* against the route table. Closing a dialog goes back to the entry that opened it.
|
|
12
|
+
*/ function useSceneHistoryNavigation(history, routes, initialScreen, bindingScope) {
|
|
13
|
+
const fromLocation = useCallback((url)=>{
|
|
14
|
+
const match = url ? matchSceneRoute(url, routes) : undefined;
|
|
15
|
+
return match ? {
|
|
16
|
+
screen: match.route.screen,
|
|
17
|
+
url,
|
|
18
|
+
outlet: match.route.outlet,
|
|
19
|
+
parameters: match.parameters
|
|
20
|
+
} : undefined;
|
|
21
|
+
}, [
|
|
22
|
+
routes
|
|
23
|
+
]);
|
|
24
|
+
const fallback = useMemo(()=>({
|
|
25
|
+
screen: initialScreen,
|
|
26
|
+
url: initialScreen,
|
|
27
|
+
parameters: {}
|
|
28
|
+
}), [
|
|
29
|
+
initialScreen
|
|
30
|
+
]);
|
|
31
|
+
const [unresolvedUrl] = useState(()=>{
|
|
32
|
+
const url = history.location();
|
|
33
|
+
return !history.state() && url && !fromLocation(url) ? url : undefined;
|
|
34
|
+
});
|
|
35
|
+
const [state, setState] = useState(()=>history.state() ?? fromLocation(history.location()) ?? fallback);
|
|
36
|
+
const [dialogResult, setDialogResult] = useState();
|
|
37
|
+
// Back and forward restore the stored entry, or match a URL the host never wrote against the current routes.
|
|
38
|
+
const restore = useRef((url, stored)=>stored ?? fromLocation(url) ?? fallback);
|
|
39
|
+
restore.current = (url, stored)=>stored ?? fromLocation(url) ?? fallback;
|
|
40
|
+
const initialState = useRef(state);
|
|
41
|
+
// The current entry is written once, when a history is attached; later entries are written by navigate.
|
|
42
|
+
useEffect(()=>{
|
|
43
|
+
history.replace(initialState.current);
|
|
44
|
+
return history.listen((url, stored)=>setState(restore.current(url, stored)));
|
|
45
|
+
}, [
|
|
46
|
+
history
|
|
47
|
+
]);
|
|
48
|
+
const go = useCallback((next)=>{
|
|
49
|
+
history.push(next);
|
|
50
|
+
setState(next);
|
|
51
|
+
}, [
|
|
52
|
+
history
|
|
53
|
+
]);
|
|
54
|
+
const navigate = useCallback((destination)=>{
|
|
55
|
+
const resolution = resolveDestination(destination, bindingScope);
|
|
56
|
+
if (resolution.kind === DestinationKind.Dialog) {
|
|
57
|
+
if (resolution.dialog) go({
|
|
58
|
+
...state,
|
|
59
|
+
dialog: resolution.dialog
|
|
60
|
+
});
|
|
61
|
+
} else if (resolution.kind !== DestinationKind.External) {
|
|
62
|
+
go({
|
|
63
|
+
screen: destination.screen ?? destination.slice ?? state.screen,
|
|
64
|
+
url: resolution.url,
|
|
65
|
+
outlet: resolution.outlet,
|
|
66
|
+
parameters: resolution.parameters
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return resolution;
|
|
70
|
+
}, [
|
|
71
|
+
bindingScope,
|
|
72
|
+
go,
|
|
73
|
+
state
|
|
74
|
+
]);
|
|
75
|
+
const closeDialog = useCallback((result)=>{
|
|
76
|
+
if (!state.dialog) return;
|
|
77
|
+
setDialogResult({
|
|
78
|
+
dialog: state.dialog,
|
|
79
|
+
result
|
|
80
|
+
});
|
|
81
|
+
history.back();
|
|
82
|
+
}, [
|
|
83
|
+
history,
|
|
84
|
+
state.dialog
|
|
85
|
+
]);
|
|
86
|
+
return useMemo(()=>({
|
|
87
|
+
currentScreen: state.screen,
|
|
88
|
+
currentUrl: state.url,
|
|
89
|
+
currentOutlet: state.outlet,
|
|
90
|
+
currentDialog: state.dialog,
|
|
91
|
+
currentParameters: state.parameters,
|
|
92
|
+
dialogResult,
|
|
93
|
+
unresolvedUrl,
|
|
94
|
+
bindingScope,
|
|
95
|
+
navigate,
|
|
96
|
+
closeDialog,
|
|
97
|
+
back: ()=>history.back()
|
|
98
|
+
}), [
|
|
99
|
+
bindingScope,
|
|
100
|
+
closeDialog,
|
|
101
|
+
dialogResult,
|
|
102
|
+
history,
|
|
103
|
+
navigate,
|
|
104
|
+
state,
|
|
105
|
+
unresolvedUrl
|
|
106
|
+
]);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export { useSceneHistoryNavigation };
|
|
110
|
+
//# sourceMappingURL=useSceneHistoryNavigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSceneHistoryNavigation.js","sources":["../../../navigation/useSceneHistoryNavigation.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { BindingScope } from '@cratis/scene.engine';\nimport { DestinationKind, DestinationReference } from '@cratis/scene.model';\nimport { DialogResult } from './DialogResult';\nimport { matchSceneRoute } from './matchSceneRoute';\nimport { resolveDestination } from './resolveDestination';\nimport { SceneHistory } from './SceneHistory';\nimport { SceneNavigationContextValue } from './SceneNavigationContext';\nimport { SceneNavigationState } from './SceneNavigationState';\nimport { SceneRoute } from './SceneRoute';\n\n/**\n * Keeps a navigation host's state in a {@link SceneHistory}: every navigation and every dialog is an entry,\n * so back and forward step through them, a refresh restores the stored entry, and a deep link is matched\n * against the route table. Closing a dialog goes back to the entry that opened it.\n */\nexport function useSceneHistoryNavigation(history: SceneHistory, routes: SceneRoute[], initialScreen: string, bindingScope: BindingScope): SceneNavigationContextValue {\n const fromLocation = useCallback((url: string | undefined): SceneNavigationState | undefined => {\n const match = url ? matchSceneRoute(url, routes) : undefined;\n return match ? { screen: match.route.screen, url, outlet: match.route.outlet, parameters: match.parameters } : undefined;\n }, [routes]);\n const fallback = useMemo<SceneNavigationState>(() => ({ screen: initialScreen, url: initialScreen, parameters: {} }), [initialScreen]);\n\n const [unresolvedUrl] = useState(() => {\n const url = history.location();\n return !history.state() && url && !fromLocation(url) ? url : undefined;\n });\n const [state, setState] = useState<SceneNavigationState>(() => history.state() ?? fromLocation(history.location()) ?? fallback);\n const [dialogResult, setDialogResult] = useState<DialogResult>();\n\n // Back and forward restore the stored entry, or match a URL the host never wrote against the current routes.\n const restore = useRef((url: string | undefined, stored: SceneNavigationState | undefined) => stored ?? fromLocation(url) ?? fallback);\n restore.current = (url, stored) => stored ?? fromLocation(url) ?? fallback;\n const initialState = useRef(state);\n\n // The current entry is written once, when a history is attached; later entries are written by navigate.\n useEffect(() => {\n history.replace(initialState.current);\n return history.listen((url, stored) => setState(restore.current(url, stored)));\n }, [history]);\n\n const go = useCallback((next: SceneNavigationState) => {\n history.push(next);\n setState(next);\n }, [history]);\n\n const navigate = useCallback((destination: DestinationReference) => {\n const resolution = resolveDestination(destination, bindingScope);\n if (resolution.kind === DestinationKind.Dialog) {\n if (resolution.dialog) go({ ...state, dialog: resolution.dialog });\n } else if (resolution.kind !== DestinationKind.External) {\n go({ screen: destination.screen ?? destination.slice ?? state.screen, url: resolution.url, outlet: resolution.outlet, parameters: resolution.parameters });\n }\n\n return resolution;\n }, [bindingScope, go, state]);\n\n const closeDialog = useCallback((result?: unknown) => {\n if (!state.dialog) return;\n setDialogResult({ dialog: state.dialog, result });\n history.back();\n }, [history, state.dialog]);\n\n return useMemo(() => ({\n currentScreen: state.screen,\n currentUrl: state.url,\n currentOutlet: state.outlet,\n currentDialog: state.dialog,\n currentParameters: state.parameters,\n dialogResult,\n unresolvedUrl,\n bindingScope,\n navigate,\n closeDialog,\n back: () => history.back(),\n }), [bindingScope, closeDialog, dialogResult, history, navigate, state, unresolvedUrl]);\n}\n"],"names":["useSceneHistoryNavigation","history","routes","initialScreen","bindingScope","fromLocation","useCallback","url","match","matchSceneRoute","undefined","screen","route","outlet","parameters","fallback","useMemo","unresolvedUrl","useState","location","state","setState","dialogResult","setDialogResult","restore","useRef","stored","current","initialState","useEffect","replace","listen","go","next","push","navigate","destination","resolution","resolveDestination","kind","DestinationKind","Dialog","dialog","External","slice","closeDialog","result","back","currentScreen","currentUrl","currentOutlet","currentDialog","currentParameters"],"mappings":"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"}
|