@multiplatform.one/core 7.83.1 → 7.83.2
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/app/CreateApp.cjs +233 -0
- package/dist/cjs/app/CreateApp.native.js +253 -0
- package/dist/cjs/app/CreateApp.native.js.map +1 -0
- package/dist/cjs/app/CreateRootLayout.cjs +181 -0
- package/dist/cjs/app/CreateRootLayout.native.js +115 -0
- package/dist/cjs/app/CreateRootLayout.native.js.map +1 -0
- package/dist/cjs/app/RuntimePublicConfigScript.cjs +40 -0
- package/dist/cjs/app/RuntimePublicConfigScript.native.js +48 -0
- package/dist/cjs/app/RuntimePublicConfigScript.native.js.map +1 -0
- package/dist/cjs/app/TanstackDevtools.cjs +145 -0
- package/dist/cjs/app/TanstackDevtools.native.js +163 -0
- package/dist/cjs/app/TanstackDevtools.native.js.map +1 -0
- package/dist/cjs/app/TanstackProvider.cjs +81 -0
- package/dist/cjs/app/TanstackProvider.native.js +56 -0
- package/dist/cjs/app/TanstackProvider.native.js.map +1 -0
- package/dist/cjs/app/deepLinkPath.cjs +41 -0
- package/dist/cjs/app/deepLinkPath.native.js +46 -0
- package/dist/cjs/app/deepLinkPath.native.js.map +1 -0
- package/dist/cjs/app/devtoolsTrigger.cjs +281 -0
- package/dist/cjs/app/devtoolsTrigger.native.js +338 -0
- package/dist/cjs/app/devtoolsTrigger.native.js.map +1 -0
- package/dist/cjs/app/frappeSocketPort.cjs +40 -0
- package/dist/cjs/app/frappeSocketPort.native.js +45 -0
- package/dist/cjs/app/frappeSocketPort.native.js.map +1 -0
- package/dist/cjs/app/frappeSyncOptions.cjs +43 -0
- package/dist/cjs/app/frappeSyncOptions.native.js +46 -0
- package/dist/cjs/app/frappeSyncOptions.native.js.map +1 -0
- package/dist/cjs/app/index.cjs +22 -0
- package/dist/cjs/app/index.native.js +25 -0
- package/dist/cjs/app/index.native.js.map +1 -0
- package/dist/cjs/app/loadWalletProvider.cjs +32 -0
- package/dist/cjs/app/loadWalletProvider.native.js +44 -0
- package/dist/cjs/app/loadWalletProvider.native.js.map +1 -0
- package/dist/cjs/app/oneFrappeNavigation.cjs +45 -0
- package/dist/cjs/app/oneFrappeNavigation.native.js +52 -0
- package/dist/cjs/app/oneFrappeNavigation.native.js.map +1 -0
- package/dist/cjs/app/rootLayoutShared.cjs +18 -0
- package/dist/cjs/app/rootLayoutShared.native.js +21 -0
- package/dist/cjs/app/rootLayoutShared.native.js.map +1 -0
- package/dist/cjs/app/runtimePublicConfigMiddleware.cjs +50 -0
- package/dist/cjs/app/runtimePublicConfigMiddleware.native.js +55 -0
- package/dist/cjs/app/runtimePublicConfigMiddleware.native.js.map +1 -0
- package/dist/cjs/app/useNativeDeepLinks.cjs +28 -0
- package/dist/cjs/app/useNativeDeepLinks.native.js +56 -0
- package/dist/cjs/app/useNativeDeepLinks.native.js.map +1 -0
- package/dist/cjs/healthz.cjs +32 -0
- package/dist/cjs/healthz.native.js +35 -0
- package/dist/cjs/healthz.native.js.map +1 -0
- package/dist/cjs/index.cjs +21 -0
- package/dist/cjs/index.native.js +24 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/cjs/layouts/CreateDefaultLayout.cjs +99 -0
- package/dist/cjs/layouts/CreateDefaultLayout.native.js +105 -0
- package/dist/cjs/layouts/CreateDefaultLayout.native.js.map +1 -0
- package/dist/cjs/layouts/index.cjs +28 -0
- package/dist/cjs/layouts/index.native.js +31 -0
- package/dist/cjs/layouts/index.native.js.map +1 -0
- package/dist/esm/app/CreateApp.mjs +196 -0
- package/dist/esm/app/CreateApp.mjs.map +1 -0
- package/dist/esm/app/CreateApp.native.js +213 -0
- package/dist/esm/app/CreateApp.native.js.map +1 -0
- package/dist/esm/app/CreateRootLayout.mjs +145 -0
- package/dist/esm/app/CreateRootLayout.mjs.map +1 -0
- package/dist/esm/app/CreateRootLayout.native.js +76 -0
- package/dist/esm/app/CreateRootLayout.native.js.map +1 -0
- package/dist/esm/app/RuntimePublicConfigScript.mjs +15 -0
- package/dist/esm/app/RuntimePublicConfigScript.mjs.map +1 -0
- package/dist/esm/app/RuntimePublicConfigScript.native.js +20 -0
- package/dist/esm/app/RuntimePublicConfigScript.native.js.map +1 -0
- package/dist/esm/app/TanstackDevtools.mjs +109 -0
- package/dist/esm/app/TanstackDevtools.mjs.map +1 -0
- package/dist/esm/app/TanstackDevtools.native.js +124 -0
- package/dist/esm/app/TanstackDevtools.native.js.map +1 -0
- package/dist/esm/app/TanstackProvider.mjs +45 -0
- package/dist/esm/app/TanstackProvider.mjs.map +1 -0
- package/dist/esm/app/TanstackProvider.native.js +28 -0
- package/dist/esm/app/TanstackProvider.native.js.map +1 -0
- package/dist/esm/app/deepLinkPath.mjs +16 -0
- package/dist/esm/app/deepLinkPath.mjs.map +1 -0
- package/dist/esm/app/deepLinkPath.native.js +18 -0
- package/dist/esm/app/deepLinkPath.native.js.map +1 -0
- package/dist/esm/app/devtoolsTrigger.mjs +238 -0
- package/dist/esm/app/devtoolsTrigger.mjs.map +1 -0
- package/dist/esm/app/devtoolsTrigger.native.js +292 -0
- package/dist/esm/app/devtoolsTrigger.native.js.map +1 -0
- package/dist/esm/app/frappeSocketPort.mjs +15 -0
- package/dist/esm/app/frappeSocketPort.mjs.map +1 -0
- package/dist/esm/app/frappeSocketPort.native.js +17 -0
- package/dist/esm/app/frappeSocketPort.native.js.map +1 -0
- package/dist/esm/app/frappeSyncOptions.mjs +18 -0
- package/dist/esm/app/frappeSyncOptions.mjs.map +1 -0
- package/dist/esm/app/frappeSyncOptions.native.js +18 -0
- package/dist/esm/app/frappeSyncOptions.native.js.map +1 -0
- package/dist/esm/app/index.mjs +4 -0
- package/dist/esm/app/index.mjs.map +1 -0
- package/dist/esm/app/index.native.js +4 -0
- package/dist/esm/app/index.native.js.map +1 -0
- package/dist/esm/app/loadWalletProvider.mjs +7 -0
- package/dist/esm/app/loadWalletProvider.mjs.map +1 -0
- package/dist/esm/app/loadWalletProvider.native.js +16 -0
- package/dist/esm/app/loadWalletProvider.native.js.map +1 -0
- package/dist/esm/app/oneFrappeNavigation.mjs +20 -0
- package/dist/esm/app/oneFrappeNavigation.mjs.map +1 -0
- package/dist/esm/app/oneFrappeNavigation.native.js +24 -0
- package/dist/esm/app/oneFrappeNavigation.native.js.map +1 -0
- package/dist/esm/app/rootLayoutShared.mjs +2 -0
- package/dist/esm/app/rootLayoutShared.mjs.map +1 -0
- package/dist/esm/app/rootLayoutShared.native.js +2 -0
- package/dist/esm/app/rootLayoutShared.native.js.map +1 -0
- package/dist/esm/app/runtimePublicConfigMiddleware.mjs +25 -0
- package/dist/esm/app/runtimePublicConfigMiddleware.mjs.map +1 -0
- package/dist/esm/app/runtimePublicConfigMiddleware.native.js +27 -0
- package/dist/esm/app/runtimePublicConfigMiddleware.native.js.map +1 -0
- package/dist/esm/app/useNativeDeepLinks.mjs +3 -0
- package/dist/esm/app/useNativeDeepLinks.mjs.map +1 -0
- package/dist/esm/app/useNativeDeepLinks.native.js +28 -0
- package/dist/esm/app/useNativeDeepLinks.native.js.map +1 -0
- package/dist/esm/healthz.mjs +7 -0
- package/dist/esm/healthz.mjs.map +1 -0
- package/dist/esm/healthz.native.js +7 -0
- package/dist/esm/healthz.native.js.map +1 -0
- package/dist/esm/index.mjs +3 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +3 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/esm/layouts/CreateDefaultLayout.mjs +74 -0
- package/dist/esm/layouts/CreateDefaultLayout.mjs.map +1 -0
- package/dist/esm/layouts/CreateDefaultLayout.native.js +77 -0
- package/dist/esm/layouts/CreateDefaultLayout.native.js.map +1 -0
- package/dist/esm/layouts/index.mjs +3 -0
- package/dist/esm/layouts/index.mjs.map +1 -0
- package/dist/esm/layouts/index.native.js +3 -0
- package/dist/esm/layouts/index.native.js.map +1 -0
- package/package.json +32 -16
- package/src/app/CreateApp.frappeAuth.spec.tsx +73 -0
- package/src/app/CreateApp.tsx +23 -23
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ReactQueryDevtools","TanStackDevtools","formDevtoolsPlugin","createReactPanel","createReactPlugin","PacerDevtoolsCore","ThemeDevtoolsPanel","storage","useEffect","useState","devtoolsOpenHotkey","useDevtoolsKeyboardTrigger","useDevtoolsOpenRequests","useShakeToOpen","jsx","devtoolsSettingsKey","PacerDevtoolsPanel","pacerDevtoolsPlugin","name","Component","syncDevtoolsTheme","resolvedScheme","raw","Promise","resolve","getItem","settings","JSON","parse","theme","setItem","stringify","useFrappePlugin","plugin","setPlugin","cancelled","tryResolve","frappeDevtoolsPlugin","__getActiveSyncModule","all","sync","then","found","attempts","interval","setInterval","clearInterval","TanstackDevtoolsWrapper","tanstackConfig","window","frappePlugin","shakeToOpen","openRequests","plugins","id","render","initialIsOpen","defaultOpen","_el","props","useUserScheme","devtoolsTheme","tamaguiConfig","themeColors","currentThemeColor","onThemeColorChange","config","triggerHidden","openHotkey"],"sources":["../../../src/app/TanstackDevtools.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { ReactQueryDevtools } from "@tanstack/react-query-devtools/production";
|
|
4
|
+
import { TanStackDevtools } from "@tanstack/react-devtools";
|
|
5
|
+
import { formDevtoolsPlugin } from "@tanstack/react-form-devtools/production";
|
|
6
|
+
import { createReactPanel, createReactPlugin } from "@tanstack/devtools-utils/react";
|
|
7
|
+
import { PacerDevtoolsCore } from "@tanstack/pacer-devtools/production";
|
|
8
|
+
import { ThemeDevtoolsPanel } from "@multiplatform.one/theme";
|
|
9
|
+
import { storage } from "@multiplatform.one/store";
|
|
10
|
+
import { useEffect, useState } from "react";
|
|
11
|
+
import { devtoolsOpenHotkey, useDevtoolsKeyboardTrigger, useDevtoolsOpenRequests, useShakeToOpen } from "./devtoolsTrigger.native.js";
|
|
12
|
+
var devtoolsSettingsKey = "tanstack_devtools_settings";
|
|
13
|
+
var [PacerDevtoolsPanel] = createReactPanel(PacerDevtoolsCore);
|
|
14
|
+
var [pacerDevtoolsPlugin] = createReactPlugin({
|
|
15
|
+
name: "TanStack Pacer",
|
|
16
|
+
Component: PacerDevtoolsPanel
|
|
17
|
+
});
|
|
18
|
+
async function syncDevtoolsTheme(resolvedScheme) {
|
|
19
|
+
try {
|
|
20
|
+
var raw = await Promise.resolve(storage.getItem(devtoolsSettingsKey));
|
|
21
|
+
var settings = raw ? JSON.parse(raw) : {};
|
|
22
|
+
if (settings.theme !== resolvedScheme) {
|
|
23
|
+
settings.theme = resolvedScheme;
|
|
24
|
+
await Promise.resolve(storage.setItem(devtoolsSettingsKey, JSON.stringify(settings)));
|
|
25
|
+
}
|
|
26
|
+
} catch (unused) {}
|
|
27
|
+
}
|
|
28
|
+
function useFrappePlugin() {
|
|
29
|
+
var [plugin, setPlugin] = useState(null);
|
|
30
|
+
useEffect(function () {
|
|
31
|
+
var cancelled = false;
|
|
32
|
+
async function tryResolve() {
|
|
33
|
+
try {
|
|
34
|
+
var [{
|
|
35
|
+
frappeDevtoolsPlugin
|
|
36
|
+
}, {
|
|
37
|
+
__getActiveSyncModule
|
|
38
|
+
}] = await Promise.all([import("@multiplatform.one/frappe/devtools"), import("@multiplatform.one/frappe")]);
|
|
39
|
+
var sync = __getActiveSyncModule();
|
|
40
|
+
if (sync && !cancelled) {
|
|
41
|
+
setPlugin(frappeDevtoolsPlugin(sync));
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
} catch (unused) {}
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
void tryResolve().then(function (found) {
|
|
48
|
+
if (found || cancelled) return;
|
|
49
|
+
var attempts = 0;
|
|
50
|
+
var interval = setInterval(async function () {
|
|
51
|
+
attempts++;
|
|
52
|
+
var _$found = await tryResolve();
|
|
53
|
+
if (_$found || cancelled || attempts >= 10) clearInterval(interval);
|
|
54
|
+
}, 2e3);
|
|
55
|
+
return function () {
|
|
56
|
+
return clearInterval(interval);
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
return function () {
|
|
60
|
+
cancelled = true;
|
|
61
|
+
};
|
|
62
|
+
}, []);
|
|
63
|
+
return plugin;
|
|
64
|
+
}
|
|
65
|
+
function TanstackDevtoolsWrapper(param) {
|
|
66
|
+
var {
|
|
67
|
+
resolvedScheme,
|
|
68
|
+
tanstackConfig
|
|
69
|
+
} = param;
|
|
70
|
+
useEffect(function () {
|
|
71
|
+
if (typeof window === "undefined") return;
|
|
72
|
+
void syncDevtoolsTheme(resolvedScheme);
|
|
73
|
+
}, [resolvedScheme]);
|
|
74
|
+
var frappePlugin = useFrappePlugin();
|
|
75
|
+
useShakeToOpen(tanstackConfig.shakeToOpen !== false);
|
|
76
|
+
useDevtoolsKeyboardTrigger(true);
|
|
77
|
+
var openRequests = useDevtoolsOpenRequests();
|
|
78
|
+
var plugins = [{
|
|
79
|
+
id: "react-query",
|
|
80
|
+
name: "React Query",
|
|
81
|
+
render: /* @__PURE__ */_jsx(ReactQueryDevtools, {
|
|
82
|
+
initialIsOpen: false
|
|
83
|
+
})
|
|
84
|
+
}, formDevtoolsPlugin(), pacerDevtoolsPlugin(), {
|
|
85
|
+
id: "theme",
|
|
86
|
+
name: "Theme",
|
|
87
|
+
// The panel opens focused on Theme, so a shake (or the hotkey) lands
|
|
88
|
+
// straight on the theme flipper — the whole point of the trigger is
|
|
89
|
+
// to check that everything is themable. `defaultOpen` seeds the tab
|
|
90
|
+
// only on first open, when no layout is persisted yet; once the user
|
|
91
|
+
// moves to another tab their choice is restored on later opens.
|
|
92
|
+
defaultOpen: true,
|
|
93
|
+
render: function render(_el, props) {
|
|
94
|
+
return /* @__PURE__ */_jsx(ThemeDevtoolsPanel, {
|
|
95
|
+
useUserScheme: tanstackConfig.useUserScheme,
|
|
96
|
+
devtoolsTheme: props.theme,
|
|
97
|
+
tamaguiConfig: tanstackConfig.tamaguiConfig,
|
|
98
|
+
// The accent channel. `ThemeDevtoolsPanel` has taken these three
|
|
99
|
+
// props all along and core passed none of them, so the panel's
|
|
100
|
+
// accent dropdown never rendered and its Randomize action skipped
|
|
101
|
+
// the colour — a control that is present in the component and
|
|
102
|
+
// unreachable through the only wrapper that mounts it. They are
|
|
103
|
+
// forwarded, not invented here: a theme colour is app state, so the
|
|
104
|
+
// app supplies the list, the current value and the setter, exactly
|
|
105
|
+
// as it already supplies `useUserScheme`. Undefined stays undefined,
|
|
106
|
+
// so an app that wires nothing sees the panel it sees today.
|
|
107
|
+
themeColors: tanstackConfig.themeColors,
|
|
108
|
+
currentThemeColor: tanstackConfig.currentThemeColor,
|
|
109
|
+
onThemeColorChange: tanstackConfig.onThemeColorChange
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}, ...(frappePlugin ? [frappePlugin] : [])];
|
|
113
|
+
return /* @__PURE__ */_jsx(TanStackDevtools, {
|
|
114
|
+
config: {
|
|
115
|
+
defaultOpen: false,
|
|
116
|
+
triggerHidden: true,
|
|
117
|
+
openHotkey: [...devtoolsOpenHotkey],
|
|
118
|
+
theme: resolvedScheme
|
|
119
|
+
},
|
|
120
|
+
plugins
|
|
121
|
+
}, `${resolvedScheme}:${openRequests}`);
|
|
122
|
+
}
|
|
123
|
+
export { TanstackDevtoolsWrapper as default };
|
|
124
|
+
//# sourceMappingURL=TanstackDevtools.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","React","ReactQueryDevtools","TanStackDevtools","formDevtoolsPlugin","createReactPanel","createReactPlugin","PacerDevtoolsCore","ThemeDevtoolsPanel","storage","useEffect","useState","devtoolsOpenHotkey","useDevtoolsKeyboardTrigger","useDevtoolsOpenRequests","useShakeToOpen","devtoolsSettingsKey","PacerDevtoolsPanel","pacerDevtoolsPlugin","name","Component","syncDevtoolsTheme","resolvedScheme","raw","Promise","resolve","getItem","settings","JSON","parse","theme","setItem","stringify","unused","useFrappePlugin","plugin","setPlugin","cancelled","tryResolve","frappeDevtoolsPlugin","__getActiveSyncModule","all","sync","then","found","attempts","interval","setInterval","_$found","clearInterval","TanstackDevtoolsWrapper","param","tanstackConfig","window","frappePlugin","shakeToOpen","openRequests","plugins","id","render","initialIsOpen","defaultOpen","_el","props","useUserScheme","devtoolsTheme","tamaguiConfig","themeColors","currentThemeColor","onThemeColorChange","config","triggerHidden","openHotkey"],"sources":["../../../src/app/TanstackDevtools.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
2
|
+
import { Suspense, lazy, useEffect, useState } from "react";
|
|
3
|
+
import { config, isDev, platform } from "@multiplatform.one/platform";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
const LazyDevtools = lazy(() => import("./TanstackDevtools.mjs"));
|
|
6
|
+
function useHydrated() {
|
|
7
|
+
const [hydrated, setHydrated] = useState(false);
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
setHydrated(true);
|
|
10
|
+
}, []);
|
|
11
|
+
return hydrated;
|
|
12
|
+
}
|
|
13
|
+
function createTanstackProvider(tanstackConfig) {
|
|
14
|
+
const queryClient = new QueryClient({
|
|
15
|
+
defaultOptions: {
|
|
16
|
+
queries: {
|
|
17
|
+
staleTime: 30 * 1e3,
|
|
18
|
+
retryDelay: attempt => Math.min(1e3 * 2 ** attempt, 1e4)
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
...tanstackConfig.queryClientOptions
|
|
22
|
+
});
|
|
23
|
+
function TanstackProvider({
|
|
24
|
+
children
|
|
25
|
+
}) {
|
|
26
|
+
const wantsDevtools = (tanstackConfig.debug ?? (isDev || config.get("DEBUG") === "1")) && !platform.isStorybook;
|
|
27
|
+
const hydrated = useHydrated();
|
|
28
|
+
const showDevtools = wantsDevtools && hydrated;
|
|
29
|
+
const scheme = tanstackConfig.useUserScheme?.();
|
|
30
|
+
const resolvedScheme = scheme?.value ?? "light";
|
|
31
|
+
return /* @__PURE__ */jsxs(QueryClientProvider, {
|
|
32
|
+
client: queryClient,
|
|
33
|
+
children: [showDevtools && /* @__PURE__ */jsx(Suspense, {
|
|
34
|
+
children: /* @__PURE__ */jsx(LazyDevtools, {
|
|
35
|
+
resolvedScheme,
|
|
36
|
+
tanstackConfig
|
|
37
|
+
})
|
|
38
|
+
}), children]
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
TanstackProvider.displayName = "TanstackProvider";
|
|
42
|
+
return TanstackProvider;
|
|
43
|
+
}
|
|
44
|
+
export { createTanstackProvider };
|
|
45
|
+
//# sourceMappingURL=TanstackProvider.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["QueryClient","QueryClientProvider","Suspense","lazy","useEffect","useState","config","isDev","platform","jsx","jsxs","LazyDevtools","useHydrated","hydrated","setHydrated","createTanstackProvider","tanstackConfig","queryClient","defaultOptions","queries","staleTime","retryDelay","attempt","Math","min","queryClientOptions","TanstackProvider","children","wantsDevtools","debug","get","isStorybook","showDevtools","scheme","useUserScheme","resolvedScheme","value","client","displayName"],"sources":["../../../src/app/TanstackProvider.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,EAAaC,mBAAA,QAA2B;AACjD,SAASC,QAAA,EAAUC,IAAA,EAAMC,SAAA,EAAWC,QAAA,QAAwC;AAC5E,SAASC,MAAA,EAAQC,KAAA,EAAOC,QAAA,QAAgB;AAmDlC,SAGMC,GAAA,EAHNC,IAAA;AAhDN,MAAMC,YAAA,GAAeR,IAAA,CAAK,MAAM,OAAO,wBAAoB,CAAC;AAO5D,SAASS,YAAA,EAAuB;EAC9B,MAAM,CAACC,QAAA,EAAUC,WAAW,IAAIT,QAAA,CAAS,KAAK;EAC9CD,SAAA,CAAU,MAAM;IACdU,WAAA,CAAY,IAAI;EAClB,GAAG,EAAE;EACL,OAAOD,QAAA;AACT;AAEO,SAASE,uBAAuBC,cAAA,EAAmD;EACxF,MAAMC,WAAA,GAAc,IAAIjB,WAAA,CAAY;IAClCkB,cAAA,EAAgB;MACdC,OAAA,EAAS;QACPC,SAAA,EAAW,KAAK;QAChBC,UAAA,EAAaC,OAAA,IAAYC,IAAA,CAAKC,GAAA,CAAI,MAAO,KAAKF,OAAA,EAAS,GAAM;MAC/D;IACF;IACA,GAAGN,cAAA,CAAeS;EACpB,CAAC;EAED,SAASC,iBAAiB;IAAEC;EAAS,GAAsB;IAIzD,MAAMC,aAAA,IACHZ,cAAA,CAAea,KAAA,KAAUtB,KAAA,IAASD,MAAA,CAAOwB,GAAA,CAAI,OAAO,MAAM,SAAS,CAACtB,QAAA,CAASuB,WAAA;IAChF,MAAMlB,QAAA,GAAWD,WAAA,CAAY;IAU7B,MAAMoB,YAAA,GAAeJ,aAAA,IAAiBf,QAAA;IAEtC,MAAMoB,MAAA,GAASjB,cAAA,CAAekB,aAAA,GAAgB;IAC9C,MAAMC,cAAA,GAAiBF,MAAA,EAAQG,KAAA,IAAS;IAExC,OACE,eAAA1B,IAAA,CAACT,mBAAA;MAAoBoC,MAAA,EAAQpB,WAAA;MAC1BU,QAAA,GAAAK,YAAA,IACC,eAAAvB,GAAA,CAACP,QAAA;QACCyB,QAAA,iBAAAlB,GAAA,CAACE,YAAA;UAAawB,cAAA;UAAgCnB;QAAA,CAAgC;MAAA,CAChF,GAEDW,QAAA;IAAA,CACH;EAEJ;EACAD,gBAAA,CAAiBY,WAAA,GAAc;EAC/B,OAAOZ,gBAAA;AACT","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
3
|
+
function createTanstackProvider(tanstackConfig) {
|
|
4
|
+
var queryClient = new QueryClient({
|
|
5
|
+
defaultOptions: {
|
|
6
|
+
queries: {
|
|
7
|
+
staleTime: 30 * 1e3,
|
|
8
|
+
retryDelay: function retryDelay(attempt) {
|
|
9
|
+
return Math.min(1e3 * Math.pow(2, attempt), 1e4);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
...tanstackConfig.queryClientOptions
|
|
14
|
+
});
|
|
15
|
+
function TanstackProvider(param) {
|
|
16
|
+
var {
|
|
17
|
+
children
|
|
18
|
+
} = param;
|
|
19
|
+
return /* @__PURE__ */_jsx(QueryClientProvider, {
|
|
20
|
+
client: queryClient,
|
|
21
|
+
children
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
TanstackProvider.displayName = "TanstackProvider";
|
|
25
|
+
return TanstackProvider;
|
|
26
|
+
}
|
|
27
|
+
export { createTanstackProvider };
|
|
28
|
+
//# sourceMappingURL=TanstackProvider.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","QueryClient","QueryClientProvider","createTanstackProvider","tanstackConfig","queryClient","defaultOptions","queries","staleTime","retryDelay","attempt","Math","min","pow","queryClientOptions","TanstackProvider","param","children","client","displayName"],"sources":["../../../src/app/TanstackProvider.native.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAOC,IAAA,QAAY;AAC5B,SAASC,WAAA,EAAaC,mBAAA,QAA2B;AAC1C,SAASC,uBAAuBC,cAAA,EAAgB;EACnD,IAAIC,WAAA,GAAc,IAAIJ,WAAA,CAAY;IAC9BK,cAAA,EAAgB;MACZC,OAAA,EAAS;QACLC,SAAA,EAAW,KAAK;QAChBC,UAAA,EAAY,SAASA,WAAWC,OAAA,EAAS;UACrC,OAAOC,IAAA,CAAKC,GAAA,CAAI,MAAOD,IAAA,CAAKE,GAAA,CAAI,GAAGH,OAAO,GAAG,GAAK;QACtD;MACJ;IACJ;IACA,GAAGN,cAAA,CAAeU;EACtB,CAAC;EACD,SAASC,iBAAiBC,KAAA,EAAO;IAC7B,IAAI;MAAEC;IAAS,IAAID,KAAA;IACnB,OAAqB,eAAAhB,IAAA,CAAKE,mBAAA,EAAqB;MAC3CgB,MAAA,EAAQb,WAAA;MACRY;IACJ,CAAC;EACL;EACAF,gBAAA,CAAiBI,WAAA,GAAc;EAC/B,OAAOJ,gBAAA;AACX","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
function deepLinkUrlToPath(url) {
|
|
2
|
+
if (!url) return null;
|
|
3
|
+
if (/^exps?:\/\//i.test(url)) {
|
|
4
|
+
const route = url.match(/\/--\/(.*)$/)?.[1];
|
|
5
|
+
return route ? toPath(route) : null;
|
|
6
|
+
}
|
|
7
|
+
const rest = url.match(/^[\w.+-]+:\/\/+(.*)$/)?.[1];
|
|
8
|
+
if (!rest || /^expo-development-client(?:[/?#]|$)/i.test(rest)) return null;
|
|
9
|
+
return toPath(rest);
|
|
10
|
+
}
|
|
11
|
+
function toPath(rest) {
|
|
12
|
+
const path = `/${rest.replace(/^\/+/, "").replace(/\/+$/, "")}`;
|
|
13
|
+
return path === "/" ? null : path;
|
|
14
|
+
}
|
|
15
|
+
export { deepLinkUrlToPath };
|
|
16
|
+
//# sourceMappingURL=deepLinkPath.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["deepLinkUrlToPath","url","test","route","match","toPath","rest","path","replace"],"sources":["../../../src/app/deepLinkPath.ts"],"sourcesContent":[null],"mappings":"AAkBO,SAASA,kBAAkBC,GAAA,EAA+C;EAC/E,IAAI,CAACA,GAAA,EAAK,OAAO;EACjB,IAAI,eAAeC,IAAA,CAAKD,GAAG,GAAG;IAC5B,MAAME,KAAA,GAAQF,GAAA,CAAIG,KAAA,CAAM,aAAa,IAAI,CAAC;IAC1C,OAAOD,KAAA,GAAQE,MAAA,CAAOF,KAAK,IAAI;EACjC;EACA,MAAMG,IAAA,GAAOL,GAAA,CAAIG,KAAA,CAAM,sBAAsB,IAAI,CAAC;EAClD,IAAI,CAACE,IAAA,IAAQ,uCAAuCJ,IAAA,CAAKI,IAAI,GAAG,OAAO;EACvE,OAAOD,MAAA,CAAOC,IAAI;AACpB;AAEA,SAASD,OAAOC,IAAA,EAA6B;EAC3C,MAAMC,IAAA,GAAO,IAAID,IAAA,CAAKE,OAAA,CAAQ,QAAQ,EAAE,EAAEA,OAAA,CAAQ,QAAQ,EAAE,CAAC;EAC7D,OAAOD,IAAA,KAAS,MAAM,OAAOA,IAAA;AAC/B","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
function deepLinkUrlToPath(url) {
|
|
2
|
+
var _url_match;
|
|
3
|
+
if (!url) return null;
|
|
4
|
+
if (/^exps?:\/\//i.test(url)) {
|
|
5
|
+
var _url_match1;
|
|
6
|
+
var route = (_url_match1 = url.match(/\/--\/(.*)$/)) === null || _url_match1 === void 0 ? void 0 : _url_match1[1];
|
|
7
|
+
return route ? toPath(route) : null;
|
|
8
|
+
}
|
|
9
|
+
var rest = (_url_match = url.match(/^[\w.+-]+:\/\/+(.*)$/)) === null || _url_match === void 0 ? void 0 : _url_match[1];
|
|
10
|
+
if (!rest || /^expo-development-client(?:[/?#]|$)/i.test(rest)) return null;
|
|
11
|
+
return toPath(rest);
|
|
12
|
+
}
|
|
13
|
+
function toPath(rest) {
|
|
14
|
+
var path = `/${rest.replace(/^\/+/, "").replace(/\/+$/, "")}`;
|
|
15
|
+
return path === "/" ? null : path;
|
|
16
|
+
}
|
|
17
|
+
export { deepLinkUrlToPath };
|
|
18
|
+
//# sourceMappingURL=deepLinkPath.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["deepLinkUrlToPath","url","_url_match","test","_url_match1","route","match","toPath","rest","path","replace"],"sources":["../../../src/app/deepLinkPath.ts"],"sourcesContent":[null],"mappings":"AAkBO,SAASA,kBAAkBC,GAAA,EAA+C;EAC/E,IAAIC,UAAM;EACV,IAAI,CAAAD,GAAA,aAAe;EACjB,kBAAc,CAAAE,IAAI,CAAAF,GAAM;IACxB,IAAAG,WAAe;IACjB,IAAAC,KAAA,IAAAD,WAAA,GAAAH,GAAA,CAAAK,KAAA,6BAAAF,WAAA,uBAAAA,WAAA;IACA,OAAMC,KAAO,GAAIE,MAAM,CAAAF,KAAA;EACvB;EACA,IAAAG,IAAO,IAAAN,UAAW,GAAAD,GAAA,CAAAK,KAAA,sCAAAJ,UAAA,uBAAAA,UAAA;EACpB,KAAAM,IAAA,2CAAAL,IAAA,CAAAK,IAAA;EAEA,OAASD,MAAA,CAAOC,IAAA;AACd;AACA,SAAOD,OAAAC,IAAS;EAClB,IAAAC,IAAA,OAAAD,IAAA,CAAAE,OAAA,aAAAA,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
const devtoolsOpenHotkey = ["CtrlOrMeta", "Shift", "~"];
|
|
3
|
+
function isDevtoolsOpenHotkeyEvent(event) {
|
|
4
|
+
if (!(event.metaKey || event.ctrlKey) || !event.shiftKey || event.altKey) {
|
|
5
|
+
return false;
|
|
6
|
+
}
|
|
7
|
+
if (event.code === "Backquote") return true;
|
|
8
|
+
return event.key === "`" || event.key === "~";
|
|
9
|
+
}
|
|
10
|
+
function useDevtoolsKeyboardTrigger(enabled) {
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
if (!enabled || typeof window === "undefined" || typeof window.addEventListener !== "function") return;
|
|
13
|
+
const onKeyDown = event => {
|
|
14
|
+
if (!isDevtoolsOpenHotkeyEvent(event)) return;
|
|
15
|
+
event.preventDefault();
|
|
16
|
+
event.stopImmediatePropagation();
|
|
17
|
+
openDevtoolsShell();
|
|
18
|
+
};
|
|
19
|
+
window.addEventListener("keydown", onKeyDown, {
|
|
20
|
+
capture: true
|
|
21
|
+
});
|
|
22
|
+
return () => window.removeEventListener("keydown", onKeyDown, {
|
|
23
|
+
capture: true
|
|
24
|
+
});
|
|
25
|
+
}, [enabled]);
|
|
26
|
+
}
|
|
27
|
+
const devtoolsShellStateKey = "tanstack_devtools_state";
|
|
28
|
+
const devtoolsOpenRequestEvent = "mpo:devtools-open";
|
|
29
|
+
function shellStorage() {
|
|
30
|
+
try {
|
|
31
|
+
return typeof localStorage === "undefined" ? void 0 : localStorage;
|
|
32
|
+
} catch {
|
|
33
|
+
return void 0;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function readShellState(storage) {
|
|
37
|
+
try {
|
|
38
|
+
const parsed = JSON.parse(storage.getItem(devtoolsShellStateKey) ?? "null");
|
|
39
|
+
return parsed && typeof parsed === "object" ? parsed : {};
|
|
40
|
+
} catch {
|
|
41
|
+
return {};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function isDevtoolsShellOpen(storage = shellStorage()) {
|
|
45
|
+
return storage ? readShellState(storage).persistOpen === true : false;
|
|
46
|
+
}
|
|
47
|
+
function openDevtoolsShell(storage = shellStorage()) {
|
|
48
|
+
if (!storage || isDevtoolsShellOpen(storage)) return;
|
|
49
|
+
try {
|
|
50
|
+
storage.setItem(devtoolsShellStateKey, JSON.stringify({
|
|
51
|
+
...readShellState(storage),
|
|
52
|
+
persistOpen: true
|
|
53
|
+
}));
|
|
54
|
+
} catch {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if (typeof window !== "undefined" && typeof window.dispatchEvent === "function") window.dispatchEvent(new Event(devtoolsOpenRequestEvent));
|
|
58
|
+
}
|
|
59
|
+
function useDevtoolsOpenRequests() {
|
|
60
|
+
const [requests, setRequests] = useState(0);
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
if (typeof window === "undefined" || typeof window.addEventListener !== "function") return;
|
|
63
|
+
const onRequest = () => setRequests(n => n + 1);
|
|
64
|
+
window.addEventListener(devtoolsOpenRequestEvent, onRequest);
|
|
65
|
+
return () => window.removeEventListener(devtoolsOpenRequestEvent, onRequest);
|
|
66
|
+
}, []);
|
|
67
|
+
return requests;
|
|
68
|
+
}
|
|
69
|
+
const gravityMs2 = 9.81;
|
|
70
|
+
const shakeDefaults = {
|
|
71
|
+
/** m/s² a sample must exceed to count as a shake peak. */
|
|
72
|
+
threshold: 12,
|
|
73
|
+
/** Minimum ms between counted peaks (one swing = one peak, not many samples). */
|
|
74
|
+
minPeakGapMs: 80,
|
|
75
|
+
/** Peaks required inside the rolling window to fire. */
|
|
76
|
+
peakCount: 3,
|
|
77
|
+
/** Rolling window (ms) the peaks must land in. */
|
|
78
|
+
windowMs: 1e3,
|
|
79
|
+
/** Dead time (ms) after firing before the detector re-arms. */
|
|
80
|
+
cooldownMs: 2e3
|
|
81
|
+
};
|
|
82
|
+
function motionMagnitude(event) {
|
|
83
|
+
const a = event.acceleration;
|
|
84
|
+
if (a && (a.x != null || a.y != null || a.z != null)) {
|
|
85
|
+
return Math.hypot(a.x ?? 0, a.y ?? 0, a.z ?? 0);
|
|
86
|
+
}
|
|
87
|
+
const g = event.accelerationIncludingGravity;
|
|
88
|
+
if (g && (g.x != null || g.y != null || g.z != null)) {
|
|
89
|
+
return Math.abs(Math.hypot(g.x ?? 0, g.y ?? 0, g.z ?? 0) - gravityMs2);
|
|
90
|
+
}
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
function createShakeDetector({
|
|
94
|
+
onShake,
|
|
95
|
+
threshold = shakeDefaults.threshold,
|
|
96
|
+
minPeakGapMs = shakeDefaults.minPeakGapMs,
|
|
97
|
+
peakCount = shakeDefaults.peakCount,
|
|
98
|
+
windowMs = shakeDefaults.windowMs,
|
|
99
|
+
cooldownMs = shakeDefaults.cooldownMs
|
|
100
|
+
}) {
|
|
101
|
+
let peaks = [];
|
|
102
|
+
let lastPeakAt = Number.NEGATIVE_INFINITY;
|
|
103
|
+
let cooldownUntil = Number.NEGATIVE_INFINITY;
|
|
104
|
+
function reset() {
|
|
105
|
+
peaks = [];
|
|
106
|
+
lastPeakAt = Number.NEGATIVE_INFINITY;
|
|
107
|
+
cooldownUntil = Number.NEGATIVE_INFINITY;
|
|
108
|
+
}
|
|
109
|
+
function handleMotion(event, now = Date.now()) {
|
|
110
|
+
if (now < cooldownUntil) return;
|
|
111
|
+
const magnitude = motionMagnitude(event);
|
|
112
|
+
if (magnitude == null || magnitude <= threshold) return;
|
|
113
|
+
if (now - lastPeakAt < minPeakGapMs) return;
|
|
114
|
+
lastPeakAt = now;
|
|
115
|
+
peaks = peaks.filter(at => now - at <= windowMs);
|
|
116
|
+
peaks.push(now);
|
|
117
|
+
if (peaks.length < peakCount) return;
|
|
118
|
+
peaks = [];
|
|
119
|
+
lastPeakAt = Number.NEGATIVE_INFINITY;
|
|
120
|
+
cooldownUntil = now + cooldownMs;
|
|
121
|
+
onShake();
|
|
122
|
+
}
|
|
123
|
+
return {
|
|
124
|
+
handleMotion,
|
|
125
|
+
reset
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
function createMotionPermissionFlow({
|
|
129
|
+
requestPermission,
|
|
130
|
+
onGranted,
|
|
131
|
+
onDenied
|
|
132
|
+
}) {
|
|
133
|
+
let state = requestPermission ? "awaiting-gesture" : "granted";
|
|
134
|
+
if (state === "granted") onGranted();
|
|
135
|
+
async function handleGesture() {
|
|
136
|
+
if (state !== "awaiting-gesture" || !requestPermission) return;
|
|
137
|
+
state = "requesting";
|
|
138
|
+
let result;
|
|
139
|
+
try {
|
|
140
|
+
result = await requestPermission();
|
|
141
|
+
} catch {
|
|
142
|
+
result = "denied";
|
|
143
|
+
}
|
|
144
|
+
if (result === "granted") {
|
|
145
|
+
state = "granted";
|
|
146
|
+
onGranted();
|
|
147
|
+
} else {
|
|
148
|
+
state = "denied";
|
|
149
|
+
onDenied?.();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return {
|
|
153
|
+
get state() {
|
|
154
|
+
return state;
|
|
155
|
+
},
|
|
156
|
+
handleGesture
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
function motionEventCtor() {
|
|
160
|
+
return globalThis.DeviceMotionEvent;
|
|
161
|
+
}
|
|
162
|
+
function isMotionPermissionRequired() {
|
|
163
|
+
return typeof motionEventCtor()?.requestPermission === "function";
|
|
164
|
+
}
|
|
165
|
+
const devtoolsArmMotionEvent = "mpo:devtools-arm-motion";
|
|
166
|
+
const devtoolsMotionArmedEvent = "mpo:devtools-motion-armed";
|
|
167
|
+
let motionGranted = false;
|
|
168
|
+
const motionAttachers = /* @__PURE__ */new Set();
|
|
169
|
+
function registerMotionAttacher(attach) {
|
|
170
|
+
if (motionGranted) {
|
|
171
|
+
attach();
|
|
172
|
+
return () => {};
|
|
173
|
+
}
|
|
174
|
+
motionAttachers.add(attach);
|
|
175
|
+
return () => {
|
|
176
|
+
motionAttachers.delete(attach);
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
function grantAndAttachAll() {
|
|
180
|
+
motionGranted = true;
|
|
181
|
+
for (const attach of motionAttachers) attach();
|
|
182
|
+
}
|
|
183
|
+
function __resetMotionArming() {
|
|
184
|
+
motionGranted = false;
|
|
185
|
+
motionAttachers.clear();
|
|
186
|
+
}
|
|
187
|
+
async function requestMotionPermissionFromGesture() {
|
|
188
|
+
if (motionGranted) return "granted";
|
|
189
|
+
const ctor = motionEventCtor();
|
|
190
|
+
const flow = createMotionPermissionFlow({
|
|
191
|
+
// Invoke as a static method on the constructor — a detached reference
|
|
192
|
+
// throws in WebKit.
|
|
193
|
+
requestPermission: typeof ctor?.requestPermission === "function" ? () => ctor.requestPermission() : void 0,
|
|
194
|
+
onGranted: grantAndAttachAll
|
|
195
|
+
});
|
|
196
|
+
if (flow.state !== "granted") await flow.handleGesture();
|
|
197
|
+
if (typeof window !== "undefined" && typeof window.dispatchEvent === "function") {
|
|
198
|
+
window.dispatchEvent(new CustomEvent(devtoolsMotionArmedEvent, {
|
|
199
|
+
detail: {
|
|
200
|
+
granted: flow.state === "granted"
|
|
201
|
+
}
|
|
202
|
+
}));
|
|
203
|
+
}
|
|
204
|
+
return flow.state;
|
|
205
|
+
}
|
|
206
|
+
function armDevtoolsMotion() {
|
|
207
|
+
if (typeof window === "undefined" || typeof window.dispatchEvent !== "function") return;
|
|
208
|
+
window.dispatchEvent(new Event(devtoolsArmMotionEvent));
|
|
209
|
+
}
|
|
210
|
+
function useShakeToOpen(enabled, onShake = openDevtoolsShell) {
|
|
211
|
+
useEffect(() => {
|
|
212
|
+
if (!enabled || typeof window === "undefined" || typeof window.addEventListener !== "function") return;
|
|
213
|
+
const detector = createShakeDetector({
|
|
214
|
+
onShake
|
|
215
|
+
});
|
|
216
|
+
const motionListener = event => detector.handleMotion(event);
|
|
217
|
+
const attach = () => window.addEventListener("devicemotion", motionListener, {
|
|
218
|
+
passive: true
|
|
219
|
+
});
|
|
220
|
+
const detach = () => window.removeEventListener("devicemotion", motionListener);
|
|
221
|
+
if (!isMotionPermissionRequired()) {
|
|
222
|
+
attach();
|
|
223
|
+
return detach;
|
|
224
|
+
}
|
|
225
|
+
const removeAttacher = registerMotionAttacher(attach);
|
|
226
|
+
const armListener = () => {
|
|
227
|
+
void requestMotionPermissionFromGesture();
|
|
228
|
+
};
|
|
229
|
+
window.addEventListener(devtoolsArmMotionEvent, armListener);
|
|
230
|
+
return () => {
|
|
231
|
+
detach();
|
|
232
|
+
removeAttacher();
|
|
233
|
+
window.removeEventListener(devtoolsArmMotionEvent, armListener);
|
|
234
|
+
};
|
|
235
|
+
}, [enabled, onShake]);
|
|
236
|
+
}
|
|
237
|
+
export { __resetMotionArming, armDevtoolsMotion, createMotionPermissionFlow, createShakeDetector, devtoolsArmMotionEvent, devtoolsMotionArmedEvent, devtoolsOpenHotkey, devtoolsOpenRequestEvent, devtoolsShellStateKey, isDevtoolsOpenHotkeyEvent, isDevtoolsShellOpen, isMotionPermissionRequired, motionMagnitude, openDevtoolsShell, requestMotionPermissionFromGesture, shakeDefaults, useDevtoolsKeyboardTrigger, useDevtoolsOpenRequests, useShakeToOpen };
|
|
238
|
+
//# sourceMappingURL=devtoolsTrigger.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useState","devtoolsOpenHotkey","isDevtoolsOpenHotkeyEvent","event","metaKey","ctrlKey","shiftKey","altKey","code","key","useDevtoolsKeyboardTrigger","enabled","window","addEventListener","onKeyDown","preventDefault","stopImmediatePropagation","openDevtoolsShell","capture","removeEventListener","devtoolsShellStateKey","devtoolsOpenRequestEvent","shellStorage","localStorage","readShellState","storage","parsed","JSON","parse","getItem","isDevtoolsShellOpen","persistOpen","setItem","stringify","dispatchEvent","Event","useDevtoolsOpenRequests","requests","setRequests","onRequest","n","gravityMs2","shakeDefaults","threshold","minPeakGapMs","peakCount","windowMs","cooldownMs","motionMagnitude","a","acceleration","x","y","z","Math","hypot","g","accelerationIncludingGravity","abs","createShakeDetector","onShake","peaks","lastPeakAt","Number","NEGATIVE_INFINITY","cooldownUntil","reset","handleMotion","now","Date","magnitude","filter","at","push","length","createMotionPermissionFlow","requestPermission","onGranted","onDenied","state","handleGesture","result","motionEventCtor","globalThis","DeviceMotionEvent","isMotionPermissionRequired","devtoolsArmMotionEvent","devtoolsMotionArmedEvent","motionGranted","motionAttachers","Set","registerMotionAttacher","attach","add","delete","grantAndAttachAll","__resetMotionArming","clear","requestMotionPermissionFromGesture","ctor","flow","CustomEvent","detail","granted","armDevtoolsMotion","useShakeToOpen","detector","motionListener","passive","detach","removeAttacher","armListener"],"sources":["../../../src/app/devtoolsTrigger.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|