@burdenoff/fe-libs 2026.825.3 → 2026.825.4
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/chrome/notificationCenter/NotificationFooter.d.ts.map +1 -1
- package/dist/chrome/notificationCenter/NotificationFooter.js +13 -12
- package/dist/chrome/notificationCenter/PushOptInToggle.d.ts +19 -0
- package/dist/chrome/notificationCenter/PushOptInToggle.d.ts.map +1 -0
- package/dist/chrome/notificationCenter/PushOptInToggle.js +56 -0
- package/dist/shared/native/index.d.ts +1 -0
- package/dist/shared/native/index.d.ts.map +1 -1
- package/dist/shared/native/push-optin.d.ts +66 -0
- package/dist/shared/native/push-optin.d.ts.map +1 -0
- package/dist/shared/native/push-optin.js +10 -0
- package/dist/shared/providers/AppShellProvider.d.ts.map +1 -1
- package/dist/shared/providers/AppShellProvider.js +104 -100
- package/dist/shared-native.js +2 -1
- package/dist/shared.js +3 -2
- package/dist/shell-native/boot.d.ts.map +1 -1
- package/dist/shell-native/boot.js +24 -23
- package/dist/shell-native/index.d.ts +1 -0
- package/dist/shell-native/index.d.ts.map +1 -1
- package/dist/shell-native/push-optin.d.ts +29 -0
- package/dist/shell-native/push-optin.d.ts.map +1 -0
- package/dist/shell-native/push-optin.js +62 -0
- package/dist/shell-native.js +10 -9
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationFooter.d.ts","sourceRoot":"","sources":["../../../src/chrome/notificationCenter/NotificationFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"NotificationFooter.d.ts","sourceRoot":"","sources":["../../../src/chrome/notificationCenter/NotificationFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAIhC,UAAU,uBAAuB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAwB1D,CAAC"}
|
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PushOptInToggle as e } from "./PushOptInToggle.js";
|
|
2
|
+
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
2
3
|
//#region src/chrome/notificationCenter/NotificationFooter.tsx
|
|
3
|
-
var
|
|
4
|
-
className: "
|
|
5
|
-
children: /* @__PURE__ */ t("div", {
|
|
6
|
-
className: "flex items-center justify-between",
|
|
7
|
-
children: [/* @__PURE__ */
|
|
4
|
+
var r = ({ totalCount: r, onViewAll: i }) => /* @__PURE__ */ n("div", {
|
|
5
|
+
className: "border-t border-border-subtle",
|
|
6
|
+
children: [/* @__PURE__ */ t(e, {}), /* @__PURE__ */ n("div", {
|
|
7
|
+
className: "flex items-center justify-between px-3 pb-3 pt-0",
|
|
8
|
+
children: [/* @__PURE__ */ n("span", {
|
|
8
9
|
className: "text-[11px] text-text-muted",
|
|
9
10
|
children: [
|
|
10
|
-
|
|
11
|
+
r,
|
|
11
12
|
" notification",
|
|
12
|
-
|
|
13
|
+
r === 1 ? "" : "s"
|
|
13
14
|
]
|
|
14
|
-
}),
|
|
15
|
+
}), i && /* @__PURE__ */ t("button", {
|
|
15
16
|
type: "button",
|
|
16
|
-
onClick:
|
|
17
|
+
onClick: i,
|
|
17
18
|
className: "text-xs text-action-primary-bg hover:underline font-medium",
|
|
18
19
|
children: "View All"
|
|
19
20
|
})]
|
|
20
|
-
})
|
|
21
|
+
})]
|
|
21
22
|
});
|
|
22
23
|
//#endregion
|
|
23
|
-
export {
|
|
24
|
+
export { r as NotificationFooter };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Push opt-in control for the notification centre.
|
|
4
|
+
*
|
|
5
|
+
* Lives here rather than in a settings page because this is the one surface
|
|
6
|
+
* every shell already renders, and because it is where a user is thinking about
|
|
7
|
+
* notifications — which is the whole requirement for the permission prompt.
|
|
8
|
+
* The prompt is one-shot on iOS and sticky everywhere, so it must be raised
|
|
9
|
+
* from a deliberate gesture in context, never at boot.
|
|
10
|
+
*
|
|
11
|
+
* It talks to the registry (`shared/native/push-optin`) rather than importing
|
|
12
|
+
* the implementation: `chrome` is statically imported by most microfrontends,
|
|
13
|
+
* and `shell-native` resolves `@capacitor/*`, which must never end up in their
|
|
14
|
+
* bundles. When nothing has registered a controller — an MFE in isolation, a
|
|
15
|
+
* Storybook story, a browser without push — this renders NOTHING at all rather
|
|
16
|
+
* than a dead switch.
|
|
17
|
+
*/
|
|
18
|
+
export declare const PushOptInToggle: FC;
|
|
19
|
+
//# sourceMappingURL=PushOptInToggle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PushOptInToggle.d.ts","sourceRoot":"","sources":["../../../src/chrome/notificationCenter/PushOptInToggle.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAOlE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe,EAAE,EAkE7B,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { getPushOptInController as e } from "../../shared/native/push-optin.js";
|
|
2
|
+
import { useCallback as t, useEffect as n, useState as r } from "react";
|
|
3
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
4
|
+
//#region src/chrome/notificationCenter/PushOptInToggle.tsx
|
|
5
|
+
var o = () => {
|
|
6
|
+
let o = e(), [s, c] = r(() => o?.getState() ?? "unsupported"), [l, u] = r(!1);
|
|
7
|
+
n(() => {
|
|
8
|
+
if (o) return c(o.getState()), o.subscribe(c);
|
|
9
|
+
}, [o]);
|
|
10
|
+
let d = t(async () => {
|
|
11
|
+
if (!(!o || l)) {
|
|
12
|
+
u(!0);
|
|
13
|
+
try {
|
|
14
|
+
c(s === "enabled" ? await o.disable() : await o.enable());
|
|
15
|
+
} finally {
|
|
16
|
+
u(!1);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}, [
|
|
20
|
+
o,
|
|
21
|
+
l,
|
|
22
|
+
s
|
|
23
|
+
]);
|
|
24
|
+
if (!o || s === "unsupported") return null;
|
|
25
|
+
if (s === "denied") return /* @__PURE__ */ i("div", {
|
|
26
|
+
className: "px-3 pb-3 pt-1",
|
|
27
|
+
children: /* @__PURE__ */ i("p", {
|
|
28
|
+
className: "text-[11px] text-text-muted",
|
|
29
|
+
children: "Push notifications are blocked. Re-enable them in your browser or device settings."
|
|
30
|
+
})
|
|
31
|
+
});
|
|
32
|
+
let f = s === "enabled";
|
|
33
|
+
return /* @__PURE__ */ a("div", {
|
|
34
|
+
className: "flex items-center justify-between gap-3 px-3 pb-3 pt-1",
|
|
35
|
+
children: [/* @__PURE__ */ i("span", {
|
|
36
|
+
className: "text-[11px] text-text-muted",
|
|
37
|
+
children: f ? "Push notifications are on" : "Get notified when this tab is closed"
|
|
38
|
+
}), /* @__PURE__ */ i("button", {
|
|
39
|
+
type: "button",
|
|
40
|
+
role: "switch",
|
|
41
|
+
"aria-checked": f,
|
|
42
|
+
"aria-label": "Push notifications",
|
|
43
|
+
disabled: l,
|
|
44
|
+
onClick: () => void d(),
|
|
45
|
+
className: [
|
|
46
|
+
"relative inline-flex h-5 w-9 shrink-0 items-center rounded-full",
|
|
47
|
+
"transition-colors disabled:opacity-50",
|
|
48
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-strong",
|
|
49
|
+
f ? "bg-action-primary-bg" : "bg-bg-sunken"
|
|
50
|
+
].join(" "),
|
|
51
|
+
children: /* @__PURE__ */ i("span", { className: ["inline-block size-4 rounded-full bg-bg-surface transition-transform", f ? "translate-x-[18px]" : "translate-x-0.5"].join(" ") })
|
|
52
|
+
})]
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
//#endregion
|
|
56
|
+
export { o as PushOptInToggle };
|
|
@@ -10,4 +10,5 @@ export type { NativeEntryRoutes } from './entry';
|
|
|
10
10
|
export { nativeSelection, nativeActionSheet } from './consumers';
|
|
11
11
|
export { getDesktopBridge, getLegacyDesktopRuntime, isDesktop, getDesktopRuntimeConfig, getDesktopGatewayBases, getDesktopGatewayUrls, getDesktopAuthBridgeConfig, desktopOpenExternal, desktopNotify, desktopSetBadgeCount, desktopSetTheme, desktopSetTrayQuickActions, desktopSetLocale, desktopDeepLinkToPath, installDesktopDeepLinkHandler, installDesktopNavigateHandler, registerDesktopNavigator, bootDesktopShell, onDesktopUpdateState, onDesktopWindowState, getDesktopWindowState, desktopCheckForUpdates, desktopInstallUpdate, getDesktopUpdateState, DESKTOP_UPDATE_UNSUPPORTED, DESKTOP_WINDOW_STATE_DEFAULT, } from './desktop';
|
|
12
12
|
export type { BootDesktopShellOptions, DesktopShellHandle, LegacyDesktopRuntime } from './desktop';
|
|
13
|
+
export { getPushOptInController, registerPushOptInController, type PushOptInController, type PushOptInState, } from './push-optin';
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/native/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,QAAQ,EACR,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,yBAAyB,EACzB,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EACL,WAAW,EACX,SAAS,EACT,KAAK,EACL,QAAQ,EACR,KAAK,EACL,UAAU,EACV,eAAe,EACf,cAAc,EACd,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,aAAa,EACb,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACxE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,SAAS,EACT,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,0BAA0B,EAC1B,gBAAgB,EAChB,qBAAqB,EACrB,6BAA6B,EAC7B,6BAA6B,EAC7B,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/native/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,QAAQ,EACR,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,yBAAyB,EACzB,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EACL,WAAW,EACX,SAAS,EACT,KAAK,EACL,QAAQ,EACR,KAAK,EACL,UAAU,EACV,eAAe,EACf,cAAc,EACd,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,aAAa,EACb,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACxE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,SAAS,EACT,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,0BAA0B,EAC1B,gBAAgB,EAChB,qBAAqB,EACrB,6BAA6B,EAC7B,6BAA6B,EAC7B,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACnG,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,KAAK,mBAAmB,EACxB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Push Opt-In Registry
|
|
3
|
+
*
|
|
4
|
+
* The seam that lets shell chrome offer a push toggle without importing
|
|
5
|
+
* `shell-native` — and therefore without dragging Capacitor into every
|
|
6
|
+
* microfrontend.
|
|
7
|
+
*
|
|
8
|
+
* ── Why a registry and not a direct import ─────────────────────────────────
|
|
9
|
+
* `chrome` is statically imported by most MFEs (`microfe-auth`,
|
|
10
|
+
* `microfe-billing`, `microfe-conversations`, …). `shell-native` resolves
|
|
11
|
+
* `@capacitor/*`, which those packages must never pull in — the rule the
|
|
12
|
+
* shell-native docblock states as "never re-export shell-native from
|
|
13
|
+
* shared/native". A toggle living in chrome therefore cannot import the push
|
|
14
|
+
* implementation; it has to be handed one.
|
|
15
|
+
*
|
|
16
|
+
* So the app shell registers a controller during `bootNativeShell()`, and
|
|
17
|
+
* chrome asks for whatever is registered. On a surface where nothing registers
|
|
18
|
+
* — an MFE rendered in isolation, a Storybook story, a test — `getPushOptInController()`
|
|
19
|
+
* returns null and the toggle renders nothing rather than throwing.
|
|
20
|
+
*
|
|
21
|
+
* The same indirection is what lets one component serve both platforms: the
|
|
22
|
+
* shell registers the Capacitor implementation on native and the Web Push one
|
|
23
|
+
* in a browser, and chrome does not need to know which it got.
|
|
24
|
+
*
|
|
25
|
+
* @module shared/native/push-optin
|
|
26
|
+
*/
|
|
27
|
+
/** Where a push opt-in currently stands, from the UI's point of view. */
|
|
28
|
+
export type PushOptInState =
|
|
29
|
+
/** No push support at all — no controller, or the browser lacks the APIs. */
|
|
30
|
+
'unsupported'
|
|
31
|
+
/** Supported, never asked. Showing the control is safe; it will prompt. */
|
|
32
|
+
| 'default'
|
|
33
|
+
/** Permission granted AND a live subscription/token exists. */
|
|
34
|
+
| 'enabled'
|
|
35
|
+
/** Permission granted but not currently subscribed. */
|
|
36
|
+
| 'disabled'
|
|
37
|
+
/** Permission refused. Cannot be re-prompted from script — see below. */
|
|
38
|
+
| 'denied';
|
|
39
|
+
/**
|
|
40
|
+
* The capability chrome needs, implemented by the shell.
|
|
41
|
+
*
|
|
42
|
+
* `enable()` MUST be called from a user gesture. The permission prompt is
|
|
43
|
+
* one-shot on iOS and sticky everywhere, so a denied prompt is unrecoverable
|
|
44
|
+
* in-page: the user has to change it in browser or OS settings. That is why
|
|
45
|
+
* there is a distinct `denied` state rather than an error.
|
|
46
|
+
*/
|
|
47
|
+
export interface PushOptInController {
|
|
48
|
+
/** Current state. Cheap and synchronous — safe to call during render. */
|
|
49
|
+
getState(): PushOptInState;
|
|
50
|
+
/** Prompt if needed, then subscribe. Resolves to the resulting state. */
|
|
51
|
+
enable(): Promise<PushOptInState>;
|
|
52
|
+
/** Drop the subscription and revoke the device registration. */
|
|
53
|
+
disable(): Promise<PushOptInState>;
|
|
54
|
+
/** Subscribe to state changes; returns an unsubscribe function. */
|
|
55
|
+
subscribe(listener: (state: PushOptInState) => void): () => void;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Install the shell's implementation. Called by `bootNativeShell()`.
|
|
59
|
+
*
|
|
60
|
+
* Last registration wins, and passing `null` clears it — a test that installs a
|
|
61
|
+
* fake can restore the previous state without reloading the module.
|
|
62
|
+
*/
|
|
63
|
+
export declare function registerPushOptInController(next: PushOptInController | null): void;
|
|
64
|
+
/** The registered controller, or `null` when the surface has no push support. */
|
|
65
|
+
export declare function getPushOptInController(): PushOptInController | null;
|
|
66
|
+
//# sourceMappingURL=push-optin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push-optin.d.ts","sourceRoot":"","sources":["../../../src/shared/native/push-optin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,yEAAyE;AACzE,MAAM,MAAM,cAAc;AACxB,6EAA6E;AAC3E,aAAa;AACf,2EAA2E;GACzE,SAAS;AACX,+DAA+D;GAC7D,SAAS;AACX,uDAAuD;GACrD,UAAU;AACZ,yEAAyE;GACvE,QAAQ,CAAC;AAEb;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,yEAAyE;IACzE,QAAQ,IAAI,cAAc,CAAC;IAC3B,yEAAyE;IACzE,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IAClC,gEAAgE;IAChE,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IACnC,mEAAmE;IACnE,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CAClE;AAID;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,GAAG,IAAI,CAElF;AAED,iFAAiF;AACjF,wBAAgB,sBAAsB,IAAI,mBAAmB,GAAG,IAAI,CAEnE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShellProvider.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/AppShellProvider.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAqD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAa1F,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAa/B,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EASL,KAAK,kBAAkB,EACxB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"AppShellProvider.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/AppShellProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -30,16 +30,17 @@ import { AnalyticsConsentBanner as A, RybbitSink as j } from "../events/sinks/Ry
|
|
|
30
30
|
import { OtelBrowserSink as M } from "../events/sinks/OtelBrowserSink.js";
|
|
31
31
|
import { EventBusProvider as le, useEventBus as N } from "../../shared-events.js";
|
|
32
32
|
import { useReferralAttribution as P } from "../hooks/useReferralAttribution.js";
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
36
|
-
import {
|
|
37
|
-
import {
|
|
38
|
-
import {
|
|
39
|
-
import {
|
|
33
|
+
import { usePushDeviceRegistration as F } from "../hooks/usePushDeviceRegistration.js";
|
|
34
|
+
import { TourPlayerProvider as I } from "../tours/TourPlayerProvider.js";
|
|
35
|
+
import { ToursProvider as L, useToursContext as R } from "../tours/ToursContext.js";
|
|
36
|
+
import { TourInitializer as z } from "../tours/TourInitializer.js";
|
|
37
|
+
import { Suspense as B, useCallback as V, useEffect as H, useMemo as U, useRef as W } from "react";
|
|
38
|
+
import { Fragment as G, jsx as K, jsxs as q } from "react/jsx-runtime";
|
|
39
|
+
import { BrowserRouter as ue, useLocation as J } from "react-router";
|
|
40
|
+
import { Toaster as Y, toast as X } from "sonner";
|
|
40
41
|
import { MutationCache as de, QueryCache as fe, QueryClient as pe, QueryClientProvider as me } from "@tanstack/react-query";
|
|
41
42
|
//#region src/shared/providers/AppShellProvider.tsx
|
|
42
|
-
var
|
|
43
|
+
var Z = {
|
|
43
44
|
artistrybase: { prod: "cfbecacb6002" },
|
|
44
45
|
atheletebridge: { prod: "c34c6ead7aa8" },
|
|
45
46
|
adaptercloud: {},
|
|
@@ -65,8 +66,8 @@ var X = {
|
|
|
65
66
|
subscriberbot: {},
|
|
66
67
|
intelwatchtower: {},
|
|
67
68
|
kadaikodi: {}
|
|
68
|
-
},
|
|
69
|
-
function
|
|
69
|
+
}, Q = /* @__PURE__ */ "nav.route.changed,auth.signed_in,auth.signed_out,support.ticket.created,support.ticket.closed,support.ticket.reopened,support.kb.article_rated,conversations.conversation.created,conversations.conversation.archived,notification.item.opened,notification.preference.updated,notification.admin.sent,notification.template.saved,notification.schedule.updated,collabkin.tree.created,collabkin.person.created,collabkin.memory.created,collabkin.story.created,collabkin.member.invited,crewfoundry.page.viewed,crewfoundry.dashboard.viewed,crewfoundry.job_posting.created,crewfoundry.candidate.created,crewfoundry.employee.created,crewfoundry.team.created,crewfoundry.project.created,crewfoundry.course.enrolled,crewfoundry.learning_path.created,crewfoundry.service.listed,crewfoundry.leave.approved,crewfoundry.payroll.processed,crewfoundry.invoice.created,coolandlovely.page.viewed,coolandlovely.brand.created,coolandlovely.collection.created,coolandlovely.style_item.created,coolandlovely.look.created,coolandlovely.collaboration.created,coolandlovely.lookbook.created,coolandlovely.wardrobe.item_added,coolandlovely.search.performed,vibecontrols.agent.registered,atheletebridge.page.viewed,atheletebridge.team.created,atheletebridge.fixture.created,atheletebridge.program.created,atheletebridge.session.completed,atheletebridge.metric.logged,atheletebridge.tournament.created,vibecontrols.agent.gateway_auth_setup,vibecontrols.session.created,vibecontrols.session.started,vibecontrols.session.terminal_opened_in_browser,vibecontrols.session.share_link_created,vibecontrols.session.joined_shared,vibecontrols.tunnel.created,vibecontrols.tunnel.started,vibecontrols.vibedeck.button_executed,vibecontrols.quota.agent_limit_hit,vibecontrols.quota.session_limit_hit,vibecontrols.quota.tunnel_limit_hit,vibecontrols.billing.upgrade_clicked,bigconsole.dashboard.import_clicked,bigconsole.dashboard.imported,bigconsole.dashboard.share_clicked,bigconsole.dashboard.shared,bigconsole.data_sink.import_clicked,bigconsole.data_sink.imported,bigconsole.widget.create_clicked,bigconsole.widget.created,bigconsole.widget.duplicate_clicked,bigconsole.widget.duplicated,bigconsole.ai.generate_clicked,bigconsole.ai.dashboard_generated,bigconsole.ai.create_dashboard_clicked,bigconsole.ai.dashboard_created,assethandler.page.viewed,assethandler.asset.viewed,assethandler.asset.created,assethandler.work_order.viewed,assethandler.work_order.created,assethandler.incident.viewed,assethandler.incident.created,assethandler.change.viewed,assethandler.change.created,assethandler.problem.viewed,assethandler.problem.created,assethandler.maintenance.viewed,assethandler.maintenance.created,assethandler.report.viewed,assethandler.analytics.viewed,movethewheels.page.viewed,movethewheels.shipment.created,movethewheels.shipment.delivered,movethewheels.order.created,movethewheels.route.planned,movethewheels.vehicle.assigned,movethewheels.warehouse.inbound_received,theglobalfuel.dashboard.viewed,theglobalfuel.asset.created,theglobalfuel.production.recorded,theglobalfuel.reserve.created,theglobalfuel.contract.created,theglobalfuel.shipment.scheduled,theglobalfuel.shipment.delivered,theglobalfuel.inventory_lot.created,theglobalfuel.emission.recorded,theglobalfuel.emission.verified,theglobalfuel.compliance_cert.created,housingvista.dashboard.viewed,housingvista.property.created,housingvista.property.updated,housingvista.property.deleted,housingvista.property.viewed,housingvista.shortlist.property_added,housingvista.transaction.created,housingvista.transaction.updated,housingvista.investment.created,housingvista.offer.created,housingvista.viewing.scheduled,housingvista.chat.conversation_opened,housingvista.chat.message_sent,housingvista.analytics.viewed,housingvista.asset.created,housingvista.asset.updated,housingvista.amc.purchased,housingvista.verification.submitted,housingvista.home_loan.apply_clicked,housingvista.market_analytics.viewed,housingvista.search.performed,housingvista.export.requested,manufacturedops.production_order.created,manufacturedops.production_order.updated,manufacturedops.production_order.transitioned,manufacturedops.operation.added,manufacturedops.operation.recorded,manufacturedops.work_center.created,manufacturedops.work_center.updated,manufacturedops.work_center.archived,manufacturedops.material_lot.created,manufacturedops.material_lot.updated,manufacturedops.material_lot.status_updated,manufacturedops.inspection_plan.created,manufacturedops.quality_inspection.recorded,manufacturedops.non_conformance.raised,manufacturedops.non_conformance.updated,manufacturedops.non_conformance.transitioned,manufacturedops.asset.created,manufacturedops.maintenance_work_order.created,manufacturedops.maintenance_work_order.transitioned,manufacturedops.downtime_event.recorded,manufacturedops.page.viewed,subscriberbot.page.viewed,adaptercloud.page.viewed,comradecircle.page.viewed,comradecircle.circle.created,comradecircle.post.created,comradecircle.event.created,comradecircle.member.invited,psw.client.created,psw.client.updated,psw.client.archived,psw.engagement.created,psw.engagement.transitioned,psw.matter.created,psw.matter.closed,psw.timeentry.created,psw.invoice.created,psw.compliance.resolved,psw.conflictcheck.recorded,psw.document.created,psw.practicearea.created,psw.search.performed,psw.export.requested,mybodyshield.page.viewed,mybodyshield.program.created,mybodyshield.program.updated,mybodyshield.program.status_changed,mybodyshield.program.archived,mybodyshield.workout.created,mybodyshield.exercise.created,mybodyshield.session.started,intelwatchtower.page.viewed,intelwatchtower.source.created,intelwatchtower.mission.created,intelwatchtower.mission.assigned,intelwatchtower.mission.completed,intelwatchtower.entity.created,intelwatchtower.entity.linked,intelwatchtower.indicator.created,intelwatchtower.observation.created,intelwatchtower.requirement.created,intelwatchtower.alert.created,intelwatchtower.alert.triaged,intelwatchtower.alert.escalated,intelwatchtower.case.created,intelwatchtower.case.closed,intelwatchtower.report.created,intelwatchtower.report.exported,intelwatchtower.task.created,intelwatchtower.task.completed,intelwatchtower.cop.opened,govcitizenhub.page.viewed,govcitizenhub.dashboard.viewed,govcitizenhub.service.published,govcitizenhub.application.submitted,govcitizenhub.application.decided,govcitizenhub.permit.issued,govcitizenhub.payment.settled,govcitizenhub.grievance.reported,govcitizenhub.grievance.resolved,govcitizenhub.search.performed,cosmicintersection.page.viewed,labsofscience.page.viewed,labsofscience.project.created,labsofscience.experiment.created,labsofscience.protocol.created,labsofscience.dataset.created,labsofscience.inventory_item.created,labsofscience.notebook_entry.signed,labsofscience.pipeline.run_started,hookmovies.page.viewed,headshotmarketing.page.viewed,timecampus.page.viewed,timecampus.dashboard.viewed,timecampus.timer.started,timecampus.timer.stopped,timecampus.time_entry.created,timecampus.timesheet.submitted,timecampus.report.viewed,timecampus.project.viewed,timecampus.meeting.created,timecampus.pomodoro.session.completed,timecampus.focus_score.viewed,kadaikodi.page.viewed,healthybowl.farm.created,healthybowl.crop.created,healthybowl.crop.updated,healthybowl.harvest.recorded,workspaces.page.viewed,workspace.created,project.created,workspace-member.added,project-member.added".split(","), he = 4e3;
|
|
70
|
+
function ge(e) {
|
|
70
71
|
let t = e.technicalMessage ?? e.extensions?.technicalMessage, n = {
|
|
71
72
|
code: e.code,
|
|
72
73
|
operationName: e.operationName,
|
|
@@ -78,13 +79,13 @@ function he(e) {
|
|
|
78
79
|
};
|
|
79
80
|
console.error("[Burdenoff backend error]", e.message, n);
|
|
80
81
|
}
|
|
81
|
-
function
|
|
82
|
+
function _e(e) {
|
|
82
83
|
return e === "prod" || e === "production" ? "prod" : e === "alpha" || e === "staging" ? "alpha" : "dev";
|
|
83
84
|
}
|
|
84
|
-
function
|
|
85
|
+
function ve(e, t) {
|
|
85
86
|
return e.VITE_DISABLE_ANALYTICS === "true" ? !1 : e.VITE_ENABLE_ANALYTICS === "true" || e.PROD || t !== "dev" ? !0 : e.VITE_ENABLE_ANALYTICS !== "false";
|
|
86
87
|
}
|
|
87
|
-
function
|
|
88
|
+
function ye() {
|
|
88
89
|
return {
|
|
89
90
|
BASE_URL: "/",
|
|
90
91
|
DEV: !1,
|
|
@@ -93,8 +94,8 @@ function ve() {
|
|
|
93
94
|
SSR: !1
|
|
94
95
|
};
|
|
95
96
|
}
|
|
96
|
-
function
|
|
97
|
-
let n =
|
|
97
|
+
function be(e, t) {
|
|
98
|
+
let n = _e(t.VITE_DEPLOY_ENV ?? t.MODE), r = ve(t, n), i = Z[e], a = n === "prod" ? i?.prod : i?.nonProd, o = t.VITE_RYBBIT_SITE_ID || a, s = t.VITE_BACKEND_AUDIT_ENDPOINT || (t.PROD ? "/api/fe-events" : void 0);
|
|
98
99
|
return {
|
|
99
100
|
enabled: r,
|
|
100
101
|
appVersion: t.VITE_APP_VERSION || "0.0.0",
|
|
@@ -105,7 +106,7 @@ function ye(e, t) {
|
|
|
105
106
|
enabled: r && !!o,
|
|
106
107
|
siteId: o,
|
|
107
108
|
scriptUrl: t.VITE_RYBBIT_SCRIPT_URL,
|
|
108
|
-
allowlist:
|
|
109
|
+
allowlist: Q,
|
|
109
110
|
identifyOn: "auth.signed_in",
|
|
110
111
|
rename: { "nav.route.changed": "pageview" }
|
|
111
112
|
},
|
|
@@ -120,16 +121,16 @@ function ye(e, t) {
|
|
|
120
121
|
}
|
|
121
122
|
};
|
|
122
123
|
}
|
|
123
|
-
function
|
|
124
|
-
let { trackProgress: a, recordStepCompletion: o, trackEvent: s } =
|
|
125
|
-
return /* @__PURE__ */
|
|
126
|
-
onTourStart:
|
|
124
|
+
function xe({ children: e, enablePWA: t, toasterPosition: n, productName: r, brandInitial: i }) {
|
|
125
|
+
let { trackProgress: a, recordStepCompletion: o, trackEvent: s } = R(), c = V((e, t) => e.steps?.[t], []);
|
|
126
|
+
return /* @__PURE__ */ q(I, {
|
|
127
|
+
onTourStart: V((e) => {
|
|
127
128
|
a(e.id, "started"), s("TOUR_STARTED", e.id);
|
|
128
129
|
}, [s, a]),
|
|
129
|
-
onTourComplete:
|
|
130
|
+
onTourComplete: V((e) => {
|
|
130
131
|
a(e.id, "completed"), s("TOUR_COMPLETED", e.id);
|
|
131
132
|
}, [s, a]),
|
|
132
|
-
onTourSkip:
|
|
133
|
+
onTourSkip: V((e, t) => {
|
|
133
134
|
let n = c(e, t);
|
|
134
135
|
a(e.id, "skipped"), s("TOUR_SKIPPED", e.id, {
|
|
135
136
|
stepId: n?.id,
|
|
@@ -140,14 +141,14 @@ function be({ children: e, enablePWA: t, toasterPosition: n, productName: r, bra
|
|
|
140
141
|
s,
|
|
141
142
|
a
|
|
142
143
|
]),
|
|
143
|
-
onStepChange:
|
|
144
|
+
onStepChange: V((e, t) => {
|
|
144
145
|
let n = c(e, t);
|
|
145
146
|
n && s("STEP_VIEWED", e.id, {
|
|
146
147
|
stepId: n.id,
|
|
147
148
|
stepOrder: n.stepOrder
|
|
148
149
|
});
|
|
149
150
|
}, [c, s]),
|
|
150
|
-
onStepComplete:
|
|
151
|
+
onStepComplete: V((e, t) => {
|
|
151
152
|
let n = c(e, t);
|
|
152
153
|
n && (o(e.id, n.id), s("STEP_COMPLETED", e.id, {
|
|
153
154
|
stepId: n.id,
|
|
@@ -159,19 +160,19 @@ function be({ children: e, enablePWA: t, toasterPosition: n, productName: r, bra
|
|
|
159
160
|
s
|
|
160
161
|
]),
|
|
161
162
|
children: [
|
|
162
|
-
/* @__PURE__ */
|
|
163
|
+
/* @__PURE__ */ K(z, {}),
|
|
163
164
|
e,
|
|
164
|
-
/* @__PURE__ */
|
|
165
|
-
/* @__PURE__ */
|
|
166
|
-
/* @__PURE__ */
|
|
165
|
+
/* @__PURE__ */ K(Se, {}),
|
|
166
|
+
/* @__PURE__ */ K(we, {}),
|
|
167
|
+
/* @__PURE__ */ K(Y, {
|
|
167
168
|
position: n,
|
|
168
169
|
richColors: !0,
|
|
169
170
|
closeButton: !0
|
|
170
171
|
}),
|
|
171
|
-
/* @__PURE__ */
|
|
172
|
-
t && /* @__PURE__ */
|
|
172
|
+
/* @__PURE__ */ K(E, {}),
|
|
173
|
+
t && /* @__PURE__ */ K(B, {
|
|
173
174
|
fallback: null,
|
|
174
|
-
children: /* @__PURE__ */
|
|
175
|
+
children: /* @__PURE__ */ K(_, {
|
|
175
176
|
productName: r,
|
|
176
177
|
brandInitial: i
|
|
177
178
|
})
|
|
@@ -179,44 +180,44 @@ function be({ children: e, enablePWA: t, toasterPosition: n, productName: r, bra
|
|
|
179
180
|
]
|
|
180
181
|
});
|
|
181
182
|
}
|
|
182
|
-
function
|
|
183
|
-
let e =
|
|
184
|
-
return
|
|
183
|
+
function Se() {
|
|
184
|
+
let e = W(null);
|
|
185
|
+
return H(() => {
|
|
185
186
|
let t = (t) => {
|
|
186
187
|
let n = t instanceof CustomEvent && a(t.detail) ? t.detail : null;
|
|
187
188
|
if (!o(n)) return;
|
|
188
|
-
|
|
189
|
+
ge(n);
|
|
189
190
|
let r = `${n.code ?? ""}|${n.message}`, i = Date.now(), s = e.current;
|
|
190
|
-
s?.key === r && i - s.shownAt <
|
|
191
|
+
s?.key === r && i - s.shownAt < he || (e.current = {
|
|
191
192
|
key: r,
|
|
192
193
|
shownAt: i
|
|
193
|
-
},
|
|
194
|
+
}, X.error(n.message, { duration: 7e3 }));
|
|
194
195
|
};
|
|
195
196
|
return window.addEventListener(n, t), () => window.removeEventListener(n, t);
|
|
196
197
|
}, []), null;
|
|
197
198
|
}
|
|
198
|
-
var $ = "burdenoff-connection-status",
|
|
199
|
-
function
|
|
200
|
-
let e =
|
|
201
|
-
return
|
|
199
|
+
var $ = "burdenoff-connection-status", Ce = 1500;
|
|
200
|
+
function we() {
|
|
201
|
+
let e = W(null), t = W(!1);
|
|
202
|
+
return H(() => {
|
|
202
203
|
let n = () => {
|
|
203
|
-
t.current || (t.current = !0,
|
|
204
|
+
t.current || (t.current = !0, X.error("Connection lost. Trying to reconnect…", {
|
|
204
205
|
id: $,
|
|
205
206
|
duration: Infinity
|
|
206
207
|
}));
|
|
207
208
|
}, i = () => {
|
|
208
209
|
t.current || e.current || (e.current = setTimeout(() => {
|
|
209
210
|
e.current = null, n();
|
|
210
|
-
},
|
|
211
|
+
}, Ce));
|
|
211
212
|
}, a = (n) => {
|
|
212
213
|
if (e.current &&= (clearTimeout(e.current), null), !t.current) {
|
|
213
|
-
|
|
214
|
+
X.dismiss($);
|
|
214
215
|
return;
|
|
215
216
|
}
|
|
216
|
-
t.current = !1, n ?
|
|
217
|
+
t.current = !1, n ? X.success("Back online", {
|
|
217
218
|
id: $,
|
|
218
219
|
duration: 2500
|
|
219
|
-
}) :
|
|
220
|
+
}) : X.dismiss($);
|
|
220
221
|
}, o = (e) => {
|
|
221
222
|
if (!(e instanceof CustomEvent)) return;
|
|
222
223
|
let t = e.detail;
|
|
@@ -229,44 +230,47 @@ function Ce() {
|
|
|
229
230
|
};
|
|
230
231
|
}, []), null;
|
|
231
232
|
}
|
|
232
|
-
function
|
|
233
|
-
|
|
233
|
+
function Te() {
|
|
234
|
+
return F(), null;
|
|
235
|
+
}
|
|
236
|
+
function Ee({ children: e, i18nProductId: t, fallbackTranslations: n, defaultBrand: r, defaultMode: i, defaultDensity: a, defaultTypography: o, defaultGlass: s, productName: c, brandInitial: l, enablePWA: u, toasterPosition: d, tourPageIdFromPath: f }) {
|
|
237
|
+
let p = J();
|
|
234
238
|
P();
|
|
235
|
-
let m = /* @__PURE__ */
|
|
239
|
+
let m = /* @__PURE__ */ K(T, { children: /* @__PURE__ */ K(v, { children: /* @__PURE__ */ K(y, {
|
|
236
240
|
workspaceId: null,
|
|
237
241
|
gateway: "global",
|
|
238
242
|
defaultEnabled: !0,
|
|
239
|
-
children: /* @__PURE__ */
|
|
243
|
+
children: /* @__PURE__ */ K(b, { children: /* @__PURE__ */ K(x, { children: /* @__PURE__ */ K(g, {
|
|
240
244
|
fallback: null,
|
|
241
|
-
children: /* @__PURE__ */
|
|
245
|
+
children: /* @__PURE__ */ K(L, {
|
|
242
246
|
disabled: p.pathname.startsWith("/devportal") || p.pathname.startsWith("/organizations") || p.pathname.startsWith("/workspaces"),
|
|
243
247
|
getPageIdFromPath: f,
|
|
244
|
-
children: /* @__PURE__ */
|
|
248
|
+
children: /* @__PURE__ */ q(xe, {
|
|
245
249
|
enablePWA: u,
|
|
246
250
|
toasterPosition: d,
|
|
247
251
|
productName: c,
|
|
248
252
|
brandInitial: l,
|
|
249
|
-
children: e
|
|
253
|
+
children: [/* @__PURE__ */ K(Te, {}), e]
|
|
250
254
|
})
|
|
251
255
|
})
|
|
252
256
|
}) }) })
|
|
253
257
|
}) }) });
|
|
254
|
-
return /* @__PURE__ */
|
|
258
|
+
return /* @__PURE__ */ q(h, {
|
|
255
259
|
defaultBrand: r,
|
|
256
260
|
defaultMode: i,
|
|
257
261
|
defaultDensity: a,
|
|
258
262
|
defaultTypography: o,
|
|
259
263
|
defaultGlass: s,
|
|
260
|
-
children: [/* @__PURE__ */
|
|
264
|
+
children: [/* @__PURE__ */ K(De, {}), /* @__PURE__ */ K(ce, {
|
|
261
265
|
i18nProductId: t,
|
|
262
266
|
fallbackTranslations: n,
|
|
263
267
|
children: m
|
|
264
268
|
})]
|
|
265
269
|
});
|
|
266
270
|
}
|
|
267
|
-
function
|
|
268
|
-
let e =
|
|
269
|
-
return
|
|
271
|
+
function De() {
|
|
272
|
+
let e = J();
|
|
273
|
+
return H(() => {
|
|
270
274
|
e.hash || requestAnimationFrame(() => {
|
|
271
275
|
window.scrollTo({
|
|
272
276
|
top: 0,
|
|
@@ -284,7 +288,7 @@ function Te() {
|
|
|
284
288
|
e.hash
|
|
285
289
|
]), null;
|
|
286
290
|
}
|
|
287
|
-
function
|
|
291
|
+
function Oe(e) {
|
|
288
292
|
if (e instanceof Error) return e.message;
|
|
289
293
|
if (typeof e == "string") return e;
|
|
290
294
|
try {
|
|
@@ -293,9 +297,9 @@ function Ee(e) {
|
|
|
293
297
|
return String(e);
|
|
294
298
|
}
|
|
295
299
|
}
|
|
296
|
-
function
|
|
297
|
-
let e = N(), t =
|
|
298
|
-
return
|
|
300
|
+
function ke() {
|
|
301
|
+
let e = N(), t = J(), n = W(void 0), r = W(void 0), i = W(null);
|
|
302
|
+
return H(() => {
|
|
299
303
|
let a = `${t.pathname}${t.search}${t.hash}`;
|
|
300
304
|
if (r.current !== a) return i.current && clearTimeout(i.current), i.current = setTimeout(() => {
|
|
301
305
|
i.current = null;
|
|
@@ -315,7 +319,7 @@ function De() {
|
|
|
315
319
|
t.hash,
|
|
316
320
|
t.pathname,
|
|
317
321
|
t.search
|
|
318
|
-
]),
|
|
322
|
+
]), H(() => {
|
|
319
323
|
let t = (t) => {
|
|
320
324
|
e.emit("error.runtime.caught", {
|
|
321
325
|
message: t.message || "Runtime error",
|
|
@@ -325,12 +329,12 @@ function De() {
|
|
|
325
329
|
errorName: t.error instanceof Error ? t.error.name : void 0
|
|
326
330
|
});
|
|
327
331
|
}, n = (t) => {
|
|
328
|
-
e.emit("error.unhandledrejection", { reason:
|
|
332
|
+
e.emit("error.unhandledrejection", { reason: Oe(t.reason) });
|
|
329
333
|
};
|
|
330
334
|
return window.addEventListener("error", t), window.addEventListener("unhandledrejection", n), () => {
|
|
331
335
|
window.removeEventListener("error", t), window.removeEventListener("unhandledrejection", n);
|
|
332
336
|
};
|
|
333
|
-
}, [e]),
|
|
337
|
+
}, [e]), H(() => {
|
|
334
338
|
S((t) => {
|
|
335
339
|
e.emit("perf.lcp.measured", {
|
|
336
340
|
metric: "LCP",
|
|
@@ -362,23 +366,23 @@ function De() {
|
|
|
362
366
|
});
|
|
363
367
|
}, [e]), null;
|
|
364
368
|
}
|
|
365
|
-
function
|
|
366
|
-
let { pathname: a } =
|
|
367
|
-
return /* @__PURE__ */
|
|
368
|
-
/* @__PURE__ */
|
|
369
|
-
r && !o ? /* @__PURE__ */
|
|
370
|
-
t.enabled === !1 ? null : /* @__PURE__ */
|
|
371
|
-
t.devtools ? /* @__PURE__ */
|
|
372
|
-
t.broadcast === !1 ? null : /* @__PURE__ */
|
|
373
|
-
t.backendAudit?.enabled && t.backendAudit.endpoint ? /* @__PURE__ */
|
|
374
|
-
t.rybbit?.enabled && t.rybbit.siteId ? /* @__PURE__ */
|
|
369
|
+
function Ae({ config: t, productSlug: n, privacyConsent: r, consentRouteDenylist: i }) {
|
|
370
|
+
let { pathname: a } = J(), o = e(a) || i?.(a) === !0;
|
|
371
|
+
return /* @__PURE__ */ q(G, { children: [
|
|
372
|
+
/* @__PURE__ */ K(ke, {}),
|
|
373
|
+
r && !o ? /* @__PURE__ */ K(A, { productName: n }) : null,
|
|
374
|
+
t.enabled === !1 ? null : /* @__PURE__ */ q(G, { children: [
|
|
375
|
+
t.devtools ? /* @__PURE__ */ K(D, { enabled: !0 }) : null,
|
|
376
|
+
t.broadcast === !1 ? null : /* @__PURE__ */ K(O, {}),
|
|
377
|
+
t.backendAudit?.enabled && t.backendAudit.endpoint ? /* @__PURE__ */ K(k, { endpoint: t.backendAudit.endpoint }) : null,
|
|
378
|
+
t.rybbit?.enabled && t.rybbit.siteId ? /* @__PURE__ */ K(j, {
|
|
375
379
|
siteId: t.rybbit.siteId,
|
|
376
380
|
scriptUrl: t.rybbit.scriptUrl,
|
|
377
381
|
allowlist: t.rybbit.allowlist,
|
|
378
382
|
identifyOn: t.rybbit.identifyOn,
|
|
379
383
|
rename: t.rybbit.rename
|
|
380
384
|
}) : null,
|
|
381
|
-
t.otel?.enabled && t.otel.endpoint ? /* @__PURE__ */
|
|
385
|
+
t.otel?.enabled && t.otel.endpoint ? /* @__PURE__ */ K(M, {
|
|
382
386
|
endpoint: t.otel.endpoint,
|
|
383
387
|
serviceName: t.otel.serviceName ?? `${n}-app`,
|
|
384
388
|
flushInterval: t.otel.flushInterval
|
|
@@ -386,8 +390,8 @@ function Oe({ config: t, productSlug: n, privacyConsent: r, consentRouteDenylist
|
|
|
386
390
|
] })
|
|
387
391
|
] });
|
|
388
392
|
}
|
|
389
|
-
function
|
|
390
|
-
let { productName: o, productSlug: h = o.toLowerCase().replace(/\s+/g, ""), tagline: _ = "", domain: v, i18nProductId: y, gatewayUrls: b, authBridge: x, defaultBrand: S = "default", defaultMode: C, defaultDensity: w, defaultTypography: se, defaultGlass: ce, enablePWA: T = !0, brandInitial: E = o.charAt(0), defaultGateway: D = "workspace", enableSubscriptions: O = !0, fallbackTranslations: k, queryClientOptions: A, toasterPosition: j = "bottom-right", observability: M, privacyConsent: N = !1, consentRouteDenylist: P, tourPageIdFromPath: F } = n, I =
|
|
393
|
+
function je({ config: n, children: r, clearAuthStore: a }) {
|
|
394
|
+
let { productName: o, productSlug: h = o.toLowerCase().replace(/\s+/g, ""), tagline: _ = "", domain: v, i18nProductId: y, gatewayUrls: b, authBridge: x, defaultBrand: S = "default", defaultMode: C, defaultDensity: w, defaultTypography: se, defaultGlass: ce, enablePWA: T = !0, brandInitial: E = o.charAt(0), defaultGateway: D = "workspace", enableSubscriptions: O = !0, fallbackTranslations: k, queryClientOptions: A, toasterPosition: j = "bottom-right", observability: M, privacyConsent: N = !1, consentRouteDenylist: P, tourPageIdFromPath: F } = n, I = U(() => M ?? be(h, ye()), [M, h]), L = U(() => ({
|
|
391
395
|
productName: o,
|
|
392
396
|
productSlug: h,
|
|
393
397
|
brandInitial: E,
|
|
@@ -399,7 +403,7 @@ function ke({ config: n, children: r, clearAuthStore: a }) {
|
|
|
399
403
|
E,
|
|
400
404
|
_,
|
|
401
405
|
v
|
|
402
|
-
]), R =
|
|
406
|
+
]), R = W(!1), z = W(!!x?.url), B = V((t) => {
|
|
403
407
|
if (!t?.force && (() => {
|
|
404
408
|
try {
|
|
405
409
|
let e = sessionStorage.getItem("bf-active-profile");
|
|
@@ -417,14 +421,14 @@ function ke({ config: n, children: r, clearAuthStore: a }) {
|
|
|
417
421
|
return;
|
|
418
422
|
}
|
|
419
423
|
window.location.replace(r);
|
|
420
|
-
}, [a]),
|
|
424
|
+
}, [a]), G = U(() => ({
|
|
421
425
|
globalBaseUrl: b.globalBaseUrl,
|
|
422
426
|
...d()
|
|
423
|
-
}), [b.globalBaseUrl]), J =
|
|
424
|
-
window.location.pathname.startsWith("/auth/") || await J() ||
|
|
425
|
-
}, [J,
|
|
426
|
-
f(e) ? await J() ||
|
|
427
|
-
}, [J,
|
|
427
|
+
}), [b.globalBaseUrl]), J = V(async () => l(G), [G]), Y = V(async () => {
|
|
428
|
+
window.location.pathname.startsWith("/auth/") || await J() || B({ force: !0 });
|
|
429
|
+
}, [J, B]), X = V(async (e) => {
|
|
430
|
+
f(e) ? await J() || B({ force: !0 }) : console.error("[Network] Backend unreachable:", e.message);
|
|
431
|
+
}, [J, B]), Z = V(async (e) => {
|
|
428
432
|
let t = await c({
|
|
429
433
|
gateway: "global",
|
|
430
434
|
baseUrl: b.globalBaseUrl,
|
|
@@ -439,7 +443,7 @@ function ke({ config: n, children: r, clearAuthStore: a }) {
|
|
|
439
443
|
refreshToken: n.refreshToken,
|
|
440
444
|
expiresAt: n.expiresIn ? Date.now() + n.expiresIn * 1e3 : void 0
|
|
441
445
|
};
|
|
442
|
-
}, [b.globalBaseUrl]), Q =
|
|
446
|
+
}, [b.globalBaseUrl]), Q = V(() => t("organization"), []), he = U(() => {
|
|
443
447
|
let e = new pe({
|
|
444
448
|
queryCache: new fe({ onError: (e) => {
|
|
445
449
|
i(e);
|
|
@@ -460,33 +464,33 @@ function ke({ config: n, children: r, clearAuthStore: a }) {
|
|
|
460
464
|
});
|
|
461
465
|
return e;
|
|
462
466
|
}, [A]);
|
|
463
|
-
return
|
|
467
|
+
return H(() => {
|
|
464
468
|
let e = () => {
|
|
465
|
-
|
|
469
|
+
B({ force: !0 });
|
|
466
470
|
};
|
|
467
471
|
return window.addEventListener(s, e), () => {
|
|
468
472
|
window.removeEventListener(s, e);
|
|
469
473
|
};
|
|
470
|
-
}, [
|
|
474
|
+
}, [B]), H(() => {
|
|
471
475
|
let e = te.getInstance();
|
|
472
476
|
e.getLogger("shell") || e.getLogger("shell").addTransport(new ne());
|
|
473
|
-
}, []), /* @__PURE__ */
|
|
477
|
+
}, []), /* @__PURE__ */ K(p, {
|
|
474
478
|
value: L,
|
|
475
|
-
children: /* @__PURE__ */
|
|
479
|
+
children: /* @__PURE__ */ K(le, {
|
|
476
480
|
appName: h,
|
|
477
481
|
appVersion: I.appVersion,
|
|
478
482
|
appEnv: I.appEnv,
|
|
479
483
|
sourceMfe: h,
|
|
480
|
-
children: /* @__PURE__ */
|
|
484
|
+
children: /* @__PURE__ */ K(g, {
|
|
481
485
|
FallbackComponent: re,
|
|
482
|
-
children: /* @__PURE__ */
|
|
486
|
+
children: /* @__PURE__ */ q(ue, { children: [/* @__PURE__ */ K(Ae, {
|
|
483
487
|
config: I,
|
|
484
488
|
productSlug: h,
|
|
485
489
|
privacyConsent: N,
|
|
486
490
|
consentRouteDenylist: P
|
|
487
|
-
}), /* @__PURE__ */
|
|
491
|
+
}), /* @__PURE__ */ K(me, {
|
|
488
492
|
client: he,
|
|
489
|
-
children: /* @__PURE__ */
|
|
493
|
+
children: /* @__PURE__ */ K(ae, { children: /* @__PURE__ */ K(oe, {
|
|
490
494
|
workspaceBaseUrl: b.workspaceBaseUrl,
|
|
491
495
|
globalBaseUrl: b.globalBaseUrl,
|
|
492
496
|
organizationId: Q,
|
|
@@ -496,7 +500,7 @@ function ke({ config: n, children: r, clearAuthStore: a }) {
|
|
|
496
500
|
onAuthError: Y,
|
|
497
501
|
onNetworkError: X,
|
|
498
502
|
onRefreshToken: J,
|
|
499
|
-
children: /* @__PURE__ */
|
|
503
|
+
children: /* @__PURE__ */ K(m, {
|
|
500
504
|
bridgeUrl: x?.url,
|
|
501
505
|
bridgeAllowedOrigins: x?.allowedOrigins,
|
|
502
506
|
bridgeDebug: x?.debug,
|
|
@@ -508,11 +512,11 @@ function ke({ config: n, children: r, clearAuthStore: a }) {
|
|
|
508
512
|
console.warn("[Auth] Session will expire in 5 minutes");
|
|
509
513
|
},
|
|
510
514
|
onTokenExpired: () => {
|
|
511
|
-
|
|
515
|
+
B();
|
|
512
516
|
},
|
|
513
|
-
children: /* @__PURE__ */
|
|
517
|
+
children: /* @__PURE__ */ K(ee, {
|
|
514
518
|
syncToUrl: !0,
|
|
515
|
-
children: /* @__PURE__ */
|
|
519
|
+
children: /* @__PURE__ */ K(ie, { children: /* @__PURE__ */ K(Ee, {
|
|
516
520
|
i18nProductId: y,
|
|
517
521
|
fallbackTranslations: k,
|
|
518
522
|
defaultBrand: S,
|
|
@@ -536,4 +540,4 @@ function ke({ config: n, children: r, clearAuthStore: a }) {
|
|
|
536
540
|
});
|
|
537
541
|
}
|
|
538
542
|
//#endregion
|
|
539
|
-
export {
|
|
543
|
+
export { je as AppShellProvider, be as resolveAppShellObservabilityConfig };
|
package/dist/shared-native.js
CHANGED
|
@@ -19,4 +19,5 @@ import { useDesktopWindowState as ue } from "./shared/native/hooks/useDesktopWin
|
|
|
19
19
|
import "./shared/native/hooks/index.js";
|
|
20
20
|
import { acknowledgeNativePurchase as de, getNativeProducts as fe, getNativePurchases as pe, installNativeIAP as me, isNativeIAPAvailable as he, purchaseNativeProduct as ge, restoreNativePurchases as _e } from "./shared/native/purchases.js";
|
|
21
21
|
import { getNativeEntryRoutes as ve, shouldShowNativeWelcome as ye } from "./shared/native/entry.js";
|
|
22
|
-
|
|
22
|
+
import { getPushOptInController as be, registerPushOptInController as xe } from "./shared/native/push-optin.js";
|
|
23
|
+
export { e as DESKTOP_UPDATE_UNSUPPORTED, t as DESKTOP_WINDOW_STATE_DEFAULT, Y as PULL_TO_REFRESH_THRESHOLD, G as SafeAreaView, de as acknowledgeNativePurchase, n as bootDesktopShell, X as computePullOffset, Z as computePullProgress, r as desktopCheckForUpdates, i as desktopDeepLinkToPath, a as desktopInstallUpdate, o as desktopNotify, s as desktopOpenExternal, c as desktopSetBadgeCount, l as desktopSetLocale, u as desktopSetTheme, d as desktopSetTrayQuickActions, f as getDesktopAuthBridgeConfig, p as getDesktopBridge, m as getDesktopGatewayBases, h as getDesktopGatewayUrls, g as getDesktopRuntimeConfig, _ as getDesktopUpdateState, v as getDesktopWindowState, y as getLegacyDesktopRuntime, E as getNativeBridge, ve as getNativeEntryRoutes, fe as getNativeProducts, pe as getNativePurchases, D as getPlatform, be as getPushOptInController, b as installDesktopDeepLinkHandler, x as installDesktopNavigateHandler, me as installNativeIAP, O as isAndroid, S as isDesktop, k as isElectron, A as isIOS, j as isInstalledApp, M as isNative, he as isNativeIAPAvailable, N as isStandalonePWA, P as isWeb, F as isWebBrowser, I as nativeActionSheet, L as nativeConfirm, R as nativeCopyText, z as nativeImpact, B as nativeNotify, V as nativeOpenUrl, H as nativeSelection, U as nativeShare, W as nativeToast, C as onDesktopUpdateState, w as onDesktopWindowState, ge as purchaseNativeProduct, K as readInitialNetworkStatus, q as reduceNetworkStatus, T as registerDesktopNavigator, xe as registerPushOptInController, oe as resolveActionSheetOutcome, _e as restoreNativePurchases, ye as shouldShowNativeWelcome, se as useActionSheet, ne as useAppState, ce as useDesktop, le as useDesktopUpdateState, ue as useDesktopWindowState, re as useDeviceInfo, ie as useHaptics, te as useNativeKeyboard, $ as useNativePlatform, J as useNetworkStatus, Q as usePullToRefresh, ee as useSafeArea, ae as useStatusBar };
|
package/dist/shared.js
CHANGED
|
@@ -127,9 +127,10 @@ import { TourTrigger as Ba } from "./shared/tours/TourTrigger.js";
|
|
|
127
127
|
import "./shared-tours.js";
|
|
128
128
|
import { acknowledgeNativePurchase as Va, getNativeProducts as Ha, getNativePurchases as Ua, installNativeIAP as Wa, isNativeIAPAvailable as Ga, purchaseNativeProduct as Ka, restoreNativePurchases as qa } from "./shared/native/purchases.js";
|
|
129
129
|
import { getNativeEntryRoutes as Ja, shouldShowNativeWelcome as Ya } from "./shared/native/entry.js";
|
|
130
|
+
import { getPushOptInController as Xa, registerPushOptInController as Za } from "./shared/native/push-optin.js";
|
|
130
131
|
import "./shared-native.js";
|
|
131
132
|
import "./shared/actors/index.js";
|
|
132
133
|
//#region src/shared/index.ts
|
|
133
|
-
var
|
|
134
|
+
var Qa = "1.0.0";
|
|
134
135
|
//#endregion
|
|
135
|
-
export { Rr as ASSISTANT_WIDGET_TOGGLE_EVENT, er as AccessDenied, Gn as ActorIdentity, ri as AnalyticsConsentBanner, ct as ApolloClient, lt as ApolloProvider, ur as AppErrorBoundary, an as AppInitializer, La as AppShellProvider, zr as AssistantWidget, je as BACKEND_ERROR_EVENT, gi as BREAKPOINTS, ni as BackendAuditSink, ti as BroadcastChannelSink, ve as COMMON_SHELL_LESS_ROUTES, Me as CONNECTION_STATUS_EVENT, sr as ConditionalShell, fn as ConsoleTransport, _r as ContextConversationWidget, we as DEFAULT_PAGE_SIZE, ye as DEFAULT_SHELL_CONFIG, I as DESKTOP_UPDATE_UNSUPPORTED, L as DESKTOP_WINDOW_STATE_DEFAULT, $r as DesktopUpdateToast, ei as DevtoolsSink, Jn as ErrorBoundary, nr as ErrorFallback, li as EventBusProvider,
|
|
136
|
+
export { Rr as ASSISTANT_WIDGET_TOGGLE_EVENT, er as AccessDenied, Gn as ActorIdentity, ri as AnalyticsConsentBanner, ct as ApolloClient, lt as ApolloProvider, ur as AppErrorBoundary, an as AppInitializer, La as AppShellProvider, zr as AssistantWidget, je as BACKEND_ERROR_EVENT, gi as BREAKPOINTS, ni as BackendAuditSink, ti as BroadcastChannelSink, ve as COMMON_SHELL_LESS_ROUTES, Me as CONNECTION_STATUS_EVENT, sr as ConditionalShell, fn as ConsoleTransport, _r as ContextConversationWidget, we as DEFAULT_PAGE_SIZE, ye as DEFAULT_SHELL_CONFIG, I as DESKTOP_UPDATE_UNSUPPORTED, L as DESKTOP_WINDOW_STATE_DEFAULT, $r as DesktopUpdateToast, ei as DevtoolsSink, Jn as ErrorBoundary, nr as ErrorFallback, li as EventBusProvider, Qa as FE_SHARED_VERSION, dr as FeatureFlagProvider, gr as FeatureGate, Te as GATEWAYS, Bi as GLOBAL_SHORTCUT_CATEGORIES, tt as GatewayProvider, ut as InMemoryCache, jr as KeyboardHelpDialogWrapper, rr as LoadingFallback, cn as LogLevel, un as LogManager, ln as Logger, Fi as MODIFIER_KEYS, Br as Markdown, sa as MicrofrontendContext, or as MicrofrontendErrorBoundary, za as MicrofrontendProvider, ci as OtelBrowserSink, na as PLAN_USAGE_SNAPSHOT_EVENT, Ii as PLATFORM_TYPES, me as PRODUCTS, he as PRODUCT_URLS, Vn as PULL_TO_REFRESH_THRESHOLD, Ji as PUSH_DEVICE_ID_STORAGE_KEY, lr as PWAInstallBanner, ir as PageLoadingFallback, Zn as PermissionButton, tr as PermissionDenied, Qn as PermissionGate, $n as PermissionLink, vn as QUOTA_EXHAUSTED_CODE, $i as QUOTA_EXHAUSTED_EVENT, Mr as QuotaMeter, yn as RESOURCE_CAP_EXCEEDED_CODE, Yn as RequireAuth, Xn as RequireGuest, ii as RybbitSink, Ye as SSELink, Vt as SSORedirectSpinner, Kt as SSO_DEPOSITED_PARAM, bn as STORAGE_QUOTA_EXCEEDED_CODE, Ln as SafeAreaView, ar as SectionLoadingFallback, Ia as TourInitializer, ya as TourPlayer, ma as TourPlayerProvider, fa as TourSpotlight, pa as TourTooltip, Ba as TourTrigger, ba as TourTriggerButton, ja as ToursProvider, xn as UPGRADE_ERROR_CODES, Nr as UPGRADE_PROMPT_EVENT, Ir as UpgradeInlineBanner, Pr as UpgradePromptModal, st as WsLink, Va as acknowledgeNativePurchase, r as alertTokens, aa as appendContextToPath, _t as attemptTokenRefresh, qt as beginSsoNavigation, R as bootDesktopShell, Kn as buildActorFallback, Sn as buildQuotaExhaustedMessage, Jt as buildSsoDepositUrl, m as capitalizeFirst, h as capitalizeWords, i as categoryTokens, Ht as checkRemoteSLO, Ut as checkSLO, vt as clearAuthSessionStorage, Be as clearGraphqlFetchResponseCache, Wt as clearLocalAuthState, Ct as clearSSoCookie, wt as clearShellSsoCookies, Yt as clearSsoDepositState, Xt as clearSsoNavigation, pn as clearUserContext, Dn as cn, Hn as computePullOffset, Un as computePullProgress, Zt as consumeSsoDepositMarker, n as createApolloClient, ui as createEventBus, Vi as createGlobalShortcuts, Xe as createGraphQLClient, gn as createProfileScopedStorage, z as desktopCheckForUpdates, B as desktopDeepLinkToPath, V as desktopInstallUpdate, H as desktopNotify, U as desktopOpenExternal, W as desktopSetBadgeCount, G as desktopSetLocale, K as desktopSetTheme, q as desktopSetTrayQuickActions, la as detectDeviceType, vr as detectPlatform, Ne as dispatchBackendErrorEvent, ea as dispatchQuotaExhausted, Fr as dispatchUpgradePrompt, Pe as extractBackendError, Cn as extractQuotaExhaustedExtensions, wn as extractUpgradeErrorExtensions, g as formatBytes, _ as formatCompactNumber, v as formatCurrency, y as formatCurrencyCompact, b as formatDate, x as formatDateTime, S as formatDuration, yr as formatKeyCombo, C as formatList, w as formatNumber, T as formatOrdinal, E as formatPercentage, D as formatRelativeTime, O as formatTime, a as getAlertTokens, o as getCategoryTokens, J as getDesktopAuthBridgeConfig, Y as getDesktopBridge, X as getDesktopGatewayBases, Z as getDesktopGatewayUrls, Q as getDesktopRuntimeConfig, $ as getDesktopUpdateState, ee as getDesktopWindowState, br as getDisplayKeysForPlatform, Ee as getGatewayConfig, De as getGatewayUrl, Ze as getGlobalClient, Hi as getGlobalShortcutsByCategory, Oe as getGraphQLEndpoint, te as getLegacyDesktopRuntime, jt as getNativeBridge, Ja as getNativeEntryRoutes, Ha as getNativeProducts, Ua as getNativePurchases, Yi as getOrCreatePushDeviceId, Mt as getPlatform, ge as getProductUrl, _e as getProductsWithUrls, _n as getProfileScopedKey, s as getProgressTokens, Xa as getPushOptInController, ua as getResponsiveSelector, Gt as getSSORedirectUrl, Tt as getSSoCookie, be as getShellConfig, xr as getShortcutLabel, c as getStatusBadgeTokens, l as getStatusTokens, Ve as getStoredAuthToken, He as getStoredLocale, Ue as getStoredOrganizationId, We as getStoredProjectId, Ge as getStoredWorkspaceId, Ke as getStoredWorkspaceToken, Sa as getTourContextRank, Ca as getTourRouteCatalog, wa as getTourRouteModules, Ta as getTourRoutePages, u as getTrendTokens, Qe as getWorkspaceClient, ke as getWorkspaceTokenPayload, dt as gql, qe as graphqlFetch, yt as hasAuthGraphQLErrors, $e as initializeAppClients, mn as initializeLogger, ne as installDesktopDeepLinkHandler, re as installDesktopNavigateHandler, le as installGatewayFetchRewrite, Wa as installNativeIAP, Fe as isAbortError, Nt as isAndroid, bt as isAuthGraphQLError, xt as isAuthNetworkError, Ie as isBackendErrorDisplay, P as isChunkLoadError, ie as isDesktop, Pt as isElectron, Ft as isIOS, It as isInstalledApp, Sr as isMac, Cr as isMobileDevice, Lt as isNative, Ga as isNativeIAPAvailable, Tn as isQuotaExhaustedError, Et as isSharedSsoCookieDomain, xe as isShellLessRoute, Qt as isSsoNavigationPending, Rt as isStandalonePWA, wr as isTabletDevice, Ea as isTourVisibleForContext, Le as isTransportError, Dt as isTrustedSsoOrigin, En as isUpgradeError, zt as isWeb, Bt as isWebBrowser, Ae as isWorkspaceTokenValidForContext, F as lazyWithRetry, dn as logManager, Re as markConnectionHealthy, $t as markSsoDepositDone, en as markSsoDepositPending, Tr as matchesKeyCombo, Ui as mergeShortcuts, tn as mintSsoSessionTokens, On as nativeActionSheet, kn as nativeConfirm, An as nativeCopyText, jn as nativeImpact, Mn as nativeNotify, Nn as nativeOpenUrl, Pn as nativeSelection, Fn as nativeShare, In as nativeToast, Er as normalizeKey, Dr as normalizePlatformCombo, Da as normalizeTourPath, ae as onDesktopUpdateState, oe as onDesktopWindowState, Or as parseKeyCombo, k as pluralize, d as progressTokens, ra as publishPlanUsageSnapshot, Ka as purchaseNativeProduct, ai as readAnalyticsConsent, oi as readAnalyticsConsentChoice, Rn as readInitialNetworkStatus, Ot as readShellSsoCookie, nn as readSsoDepositState, St as redirectToLogin, zn as reduceNetworkStatus, se as registerDesktopNavigator, Xi as registerPushDevice, Za as registerPushOptInController, Oa as registerTourRouteCatalog, et as resetAppClients, Jr as resolveActionSheetOutcome, Ra as resolveAppShellObservabilityConfig, fe as resolveAuthBridgeConfig, ue as resolveGatewayBases, Je as resolveGatewayUrl, ce as resolveGatewayUrls, pe as resolveShellAuthBridgeConfig, ka as resolveTourTargetPath, qa as restoreNativePurchases, si as setAnalyticsConsent, kt as setSSoCookie, At as setShellSsoCookies, hn as setUserContext, rn as shouldAttemptSsoDeposit, kr as shouldEnableKeyboardShortcuts, Ar as shouldIgnoreShortcut, Se as shouldShowBreadcrumb, Ya as shouldShowNativeWelcome, Ce as shouldShowSidebar, ze as shouldToastBackendError, A as slugify, f as statusTokens, de as suppressConsole, j as toCamelCase, M as toPascalCase, p as trendTokens, N as truncateText, Zi as unregisterPushDevice, Yr as useActionSheet, qn as useActorProfiles, ft as useApolloClient, Wr as useAppState, Ni as useAsync, Pi as useAsyncImmediate, Ma as useAutoStartTour, _i as useBreakpoint, ki as useConditionalToggle, e as useCopyToClipboard, oa as useCurrentContextSearchParams, mi as useDebounce, Xr as useDesktop, Zr as useDesktopUpdateState, Qr as useDesktopWindowState, Gr as useDeviceInfo, di as useEvent, fi as useEventBus, pi as useEventEmitter, Ci as useExclusiveMenu, pr as useFeatureFlag, mr as useFeatureFlagDetails, hr as useFeatureFlagValue, fr as useFeatureFlags, nt as useGateway, rt as useGatewayClient, Kr as useHaptics, Gi as useHasAnimated, ot as useHasAuthToken, Ri as useHotkeys, ha as useIsTourPlaying, xi as useKeyPress, Si as useKeyboardShortcut, Li as useKeyboardShortcuts, pt as useLazyQuery, wi as useLocalStorage, Wi as useLogger, t as useMediaQuery, ca as useMicrofrontendContext, vi as useMobileBreakpoint, mt as useMutation, Ur as useNativeKeyboard, Vr as useNativePlatform, Bn as useNetworkStatus, yi as useOnClickOutside, bi as useOnClickOutsideWithRef, cr as usePWA, Mi as usePagination, xa as usePlayTour, Ei as usePrevious, Di as usePreviousDistinct, Oi as usePreviousHistory, Wn as usePullToRefresh, Qi as usePushDeviceRegistration, ht as useQuery, ta as useQuotaErrorToast, qi as useRecordProductVisit, Ki as useReferralAttribution, on as useRegistryHelpers, Hr as useSafeArea, it as useSafeGateway, at as useSafeGatewayClient, Na as useSafeToursContext, Ti as useSessionStorage, sn as useShellNavigate, zi as useShortcutHelp, ga as useStartTour, qr as useStatusBar, _a as useStopTour, gt as useSubscription, hi as useThrottle, Ai as useToggle, ji as useToggleObject, da as useTourPlayer, va as useTourPlayerContext, Pa as useTours, Fa as useToursContext, ia as useUpgradePrompt, Lr as useVoiceInput, Aa as withTourProgressStatus };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boot.d.ts","sourceRoot":"","sources":["../../src/shell-native/boot.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"boot.d.ts","sourceRoot":"","sources":["../../src/shell-native/boot.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAsB,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAyC7F;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,iBAAiB,CA+FlF;AAED,uBAAuB;AACvB,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD"}
|
|
@@ -14,11 +14,12 @@ import { configureKeyboard as y } from "./keyboard.js";
|
|
|
14
14
|
import { installNetworkListener as b } from "./network.js";
|
|
15
15
|
import { notifyOtaReady as x } from "./ota.js";
|
|
16
16
|
import { installPushNotifications as S } from "./push.js";
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
17
|
+
import { installPushOptIn as C } from "./push-optin.js";
|
|
18
|
+
import { installPwa as w } from "./pwa.js";
|
|
19
|
+
import { armSplashSafetyTimer as T, markAppReady as E } from "./splash.js";
|
|
20
|
+
import { installStatusBarThemeListener as D } from "./system-bars.js";
|
|
20
21
|
//#region src/shell-native/boot.ts
|
|
21
|
-
function
|
|
22
|
+
function O(e, t) {
|
|
22
23
|
try {
|
|
23
24
|
let n = t();
|
|
24
25
|
n instanceof Promise && n.catch((t) => {
|
|
@@ -28,38 +29,38 @@ function D(e, t) {
|
|
|
28
29
|
console.debug(`[shell-native] boot step "${e}" failed:`, t);
|
|
29
30
|
}
|
|
30
31
|
}
|
|
31
|
-
function
|
|
32
|
+
function k() {
|
|
32
33
|
if (typeof document > "u") return;
|
|
33
34
|
let e = document.querySelector("meta[name=\"viewport\"]");
|
|
34
35
|
if (!e) return;
|
|
35
36
|
let t = (e.content || "").split(",").map((e) => e.trim()).filter((e) => e.length > 0 && !e.startsWith("maximum-scale") && !e.startsWith("user-scalable") && !e.startsWith("interactive-widget"));
|
|
36
37
|
t.push("maximum-scale=1", "user-scalable=no"), o() === "android" && t.push("interactive-widget=resizes-content"), e.content = t.join(", ");
|
|
37
38
|
}
|
|
38
|
-
var
|
|
39
|
-
function
|
|
40
|
-
if (
|
|
41
|
-
if (d(
|
|
39
|
+
var A = null;
|
|
40
|
+
function j(j) {
|
|
41
|
+
if (A) return A;
|
|
42
|
+
if (d(j.electronGlobalKey ?? `${j.product}Electron`), j.preview?.allow !== !1 && O("preview", () => n(i())), O("notifyOtaReady", () => x(j.plugins ?? {})), O("authIntercept", () => f(j.authIntercept)), O("externalUrlOpener", () => h()), O("nativeBridge", () => {
|
|
42
43
|
g(), a();
|
|
43
|
-
}),
|
|
44
|
-
...p(
|
|
45
|
-
...
|
|
46
|
-
})),
|
|
47
|
-
let e =
|
|
48
|
-
|
|
44
|
+
}), O("deviceInfo", () => v()), O("statusBarTheme", () => D()), O("keyboard", () => y()), O("backButton", () => m({
|
|
45
|
+
...p(j.appName),
|
|
46
|
+
...j.backButton
|
|
47
|
+
})), O("deepLinks", () => _()), O("network", () => b(j.network ?? {})), O("runtimeHooks", () => u(j.runtimeHooks ?? {})), j.push?.enabled && j.plugins?.pushNotifications) {
|
|
48
|
+
let e = j.plugins.pushNotifications;
|
|
49
|
+
O("push", () => S(e, j.push ?? {}));
|
|
49
50
|
}
|
|
50
|
-
return l() &&
|
|
51
|
+
return l() && j.splash?.autoHide !== !1 && O("splashSafetyTimer", () => T(j.splash?.maxWaitMs ?? 8e3)), O("pwa", () => w({
|
|
51
52
|
enabled: !0,
|
|
52
|
-
...
|
|
53
|
-
})), t() &&
|
|
53
|
+
...j.pwa
|
|
54
|
+
})), O("pushOptIn", () => C()), t() && O("desktopShell", () => e(j.desktop)), s() && O("viewport", () => k()), A = {
|
|
54
55
|
platform: o(),
|
|
55
56
|
isNative: s(),
|
|
56
57
|
isPreview: c(),
|
|
57
58
|
previewMode: r(),
|
|
58
|
-
markAppReady:
|
|
59
|
-
},
|
|
59
|
+
markAppReady: E
|
|
60
|
+
}, A;
|
|
60
61
|
}
|
|
61
|
-
function
|
|
62
|
-
|
|
62
|
+
function M() {
|
|
63
|
+
A = null;
|
|
63
64
|
}
|
|
64
65
|
//#endregion
|
|
65
|
-
export {
|
|
66
|
+
export { j as bootNativeShell, M as resetNativeShellBootForTests };
|
|
@@ -52,4 +52,5 @@ export { defineCapacitorConfig, type CapacitorConfigLike } from './capacitor-con
|
|
|
52
52
|
export { defineWebManifest, type WebManifestIcon, type WebManifestLike, type WebManifestPushConfig, type WebManifestShortcut, } from './web-manifest';
|
|
53
53
|
export { renderServiceWorker, SERVICE_WORKER_TEMPLATE } from './service-worker';
|
|
54
54
|
export type { AuthInterceptOptions, BackButtonHandlers, BeforeInstallPromptEventLike, BootNativeShellOptions, CapacitorListenerHandleLike, CapacitorUpdaterLike, DeepLinkDetail, LegacyElectronBridge, MobileRuntimeHooks, NativeConfig, NativePreviewMode, NativeShellHandle, NativeShellPlatform, NetworkHooks, NetworkStatusDetail, OptionalPluginLoaders, PushActionPerformedLike, PushNotificationSchemaLike, PushNotificationsLike, PushNotificationsLoader, PushOptions, PushPermissionStateLike, PushTokenLike, PwaOptions, SplashOptions, UpdaterLoader, } from './types';
|
|
55
|
+
export { installPushOptIn, resetPushOptInForTests } from './push-optin';
|
|
55
56
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shell-native/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shell-native/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,EAAE,eAAe,EAAE,4BAA4B,EAAE,MAAM,QAAQ,CAAC;AAGvE,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,UAAU,EACV,YAAY,EACZ,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,GACrC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,+BAA+B,EAC/B,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC/F,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,6BAA6B,EAC7B,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,EAC5B,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,6BAA6B,EAC7B,mCAAmC,EACnC,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,OAAO,CAAC;AAGf,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,qBAAqB,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EACL,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAGhF,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,4BAA4B,EAC5B,sBAAsB,EACtB,2BAA2B,EAC3B,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,EACvB,WAAW,EACX,uBAAuB,EACvB,aAAa,EACb,UAAU,EACV,aAAa,EACb,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The platform calls this module makes, injectable so tests can supply fakes.
|
|
3
|
+
*
|
|
4
|
+
* Injection rather than `mock.module` on purpose: bun's module mocks are
|
|
5
|
+
* process-global, so mocking `./web-push` here silently replaced it for
|
|
6
|
+
* `web-push.test.ts` too and failed twenty of its assertions. A seam costs one
|
|
7
|
+
* optional parameter; the alternative corrupts unrelated suites.
|
|
8
|
+
*/
|
|
9
|
+
export interface PushOptInDeps {
|
|
10
|
+
isRealNativePlatform: () => boolean;
|
|
11
|
+
isWebPushSupported: () => boolean;
|
|
12
|
+
getWebPushSubscription: () => Promise<unknown>;
|
|
13
|
+
requestNativePermission: () => Promise<boolean>;
|
|
14
|
+
requestWebPermission: () => Promise<unknown>;
|
|
15
|
+
unsubscribeWeb: () => Promise<boolean>;
|
|
16
|
+
unregisterDevice: () => Promise<boolean>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Install the controller and prime its state.
|
|
20
|
+
*
|
|
21
|
+
* Called by `bootNativeShell()`. Safe to call more than once — the registry
|
|
22
|
+
* keeps the last registration and the listener set is module-scoped.
|
|
23
|
+
*
|
|
24
|
+
* @param overrides - Test seam only; production passes nothing.
|
|
25
|
+
*/
|
|
26
|
+
export declare function installPushOptIn(overrides?: Partial<PushOptInDeps>): void;
|
|
27
|
+
/** Test seam — drop the controller and every listener. */
|
|
28
|
+
export declare function resetPushOptInForTests(): void;
|
|
29
|
+
//# sourceMappingURL=push-optin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push-optin.d.ts","sourceRoot":"","sources":["../../src/shell-native/push-optin.ts"],"names":[],"mappings":"AAkGA;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,oBAAoB,EAAE,MAAM,OAAO,CAAC;IACpC,kBAAkB,EAAE,MAAM,OAAO,CAAC;IAClC,sBAAsB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,uBAAuB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,oBAAoB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,cAAc,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1C;AA6CD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAYzE;AAED,0DAA0D;AAC1D,wBAAgB,sBAAsB,IAAI,IAAI,CAK7C"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { unregisterPushDevice as e } from "../shared/native/push-registration.js";
|
|
2
|
+
import { registerPushOptInController as t } from "../shared/native/push-optin.js";
|
|
3
|
+
import { isRealNativePlatform as n } from "./platform.js";
|
|
4
|
+
import { requestPushPermission as r } from "./push.js";
|
|
5
|
+
import { getWebPushSubscription as i, isWebPushSupported as a, requestWebPushPermission as o, unsubscribeWebPush as s } from "./web-push.js";
|
|
6
|
+
//#region src/shell-native/push-optin.ts
|
|
7
|
+
var c = /* @__PURE__ */ new Set(), l = "unsupported";
|
|
8
|
+
function u(e) {
|
|
9
|
+
l = e;
|
|
10
|
+
for (let t of c) try {
|
|
11
|
+
t(e);
|
|
12
|
+
} catch {}
|
|
13
|
+
}
|
|
14
|
+
function d() {
|
|
15
|
+
return typeof Notification > "u" ? null : Notification.permission;
|
|
16
|
+
}
|
|
17
|
+
async function f() {
|
|
18
|
+
if (h.isRealNativePlatform()) {
|
|
19
|
+
let e = d();
|
|
20
|
+
return e === "denied" ? "denied" : e === "granted" ? "enabled" : "default";
|
|
21
|
+
}
|
|
22
|
+
if (!h.isWebPushSupported()) return "unsupported";
|
|
23
|
+
let e = d();
|
|
24
|
+
return e === "denied" ? "denied" : e === "granted" ? await h.getWebPushSubscription() ? "enabled" : "disabled" : "default";
|
|
25
|
+
}
|
|
26
|
+
async function p() {
|
|
27
|
+
let e = await f();
|
|
28
|
+
return u(e), e;
|
|
29
|
+
}
|
|
30
|
+
var m = {
|
|
31
|
+
isRealNativePlatform: n,
|
|
32
|
+
isWebPushSupported: a,
|
|
33
|
+
getWebPushSubscription: i,
|
|
34
|
+
requestNativePermission: r,
|
|
35
|
+
requestWebPermission: o,
|
|
36
|
+
unsubscribeWeb: s,
|
|
37
|
+
unregisterDevice: e
|
|
38
|
+
}, h = m, g = {
|
|
39
|
+
getState: () => l,
|
|
40
|
+
async enable() {
|
|
41
|
+
return h.isRealNativePlatform() ? await h.requestNativePermission() : await h.requestWebPermission(), p();
|
|
42
|
+
},
|
|
43
|
+
async disable() {
|
|
44
|
+
return h.isRealNativePlatform() || await h.unsubscribeWeb(), await h.unregisterDevice(), p();
|
|
45
|
+
},
|
|
46
|
+
subscribe(e) {
|
|
47
|
+
return c.add(e), () => c.delete(e);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
function _(e) {
|
|
51
|
+
h = e ? {
|
|
52
|
+
...m,
|
|
53
|
+
...e
|
|
54
|
+
} : m, t(g), p(), typeof window < "u" && window.addEventListener("burdenoff:pushToken", () => {
|
|
55
|
+
p();
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
function v() {
|
|
59
|
+
c.clear(), l = "unsupported", h = m, t(null);
|
|
60
|
+
}
|
|
61
|
+
//#endregion
|
|
62
|
+
export { _ as installPushOptIn, v as resetPushOptInForTests };
|
package/dist/shell-native.js
CHANGED
|
@@ -19,12 +19,13 @@ import { KEYBOARD_HEIGHT_CSS_VAR as z, KEYBOARD_OPEN_CLASS as B, configureKeyboa
|
|
|
19
19
|
import { NETWORK_STATUS_EVENT as U, getLastNetworkStatus as W, installNetworkListener as G } from "./shell-native/network.js";
|
|
20
20
|
import { notifyOtaReady as K } from "./shell-native/ota.js";
|
|
21
21
|
import { PUSH_TOKEN_EVENT as q, emitPushToken as J, installPushNotifications as Y, requestPushPermission as X } from "./shell-native/push.js";
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
30
|
-
|
|
22
|
+
import { SW_NOTIFICATION_CLICK_MESSAGE as Z, SW_PUSH_SUBSCRIPTION_CHANGE_MESSAGE as Q, WEB_PUSH_MANIFEST_KEY as $, getWebPushManifestConfig as ee, getWebPushSubscription as te, installWebPushMessageBridge as ne, isWebPushSupported as re, requestWebPushPermission as ie, resetWebPushForTests as ae, resolveVapidPublicKey as oe, serializeWebPushSubscription as se, subscribeWebPush as ce, unsubscribeWebPush as le, urlBase64ToUint8Array as ue } from "./shell-native/web-push.js";
|
|
23
|
+
import { installPushOptIn as de, resetPushOptInForTests as fe } from "./shell-native/push-optin.js";
|
|
24
|
+
import { PWA_INSTALLED_EVENT as pe, PWA_INSTALL_AVAILABLE_EVENT as me, PWA_UPDATE_READY_EVENT as he, installPwa as ge, installPwaPrompt as _e, isPwaEligibleHost as ve, resetPwaForTests as ye } from "./shell-native/pwa.js";
|
|
25
|
+
import { APP_READY_EVENT as be, armSplashSafetyTimer as xe, isAppReady as Se, markAppReady as Ce, resetAppReadyForTests as we } from "./shell-native/splash.js";
|
|
26
|
+
import { DARK_FAMILY_THEMES as Te, applyStatusBarTheme as Ee, installStatusBarThemeListener as De, isDarkThemeName as Oe, resolveDocumentIsDark as ke, statusBarDetailIsDark as Ae } from "./shell-native/system-bars.js";
|
|
27
|
+
import { bootNativeShell as je, resetNativeShellBootForTests as Me } from "./shell-native/boot.js";
|
|
28
|
+
import { defineCapacitorConfig as Ne } from "./shell-native/capacitor-config.js";
|
|
29
|
+
import { defineWebManifest as Pe } from "./shell-native/web-manifest.js";
|
|
30
|
+
import { SERVICE_WORKER_TEMPLATE as Fe, renderServiceWorker as Ie } from "./shell-native/service-worker.js";
|
|
31
|
+
export { be as APP_READY_EVENT, Te as DARK_FAMILY_THEMES, _ as DEFAULT_AUTH_INTERCEPT_PREFIXES, z as KEYBOARD_HEIGHT_CSS_VAR, B as KEYBOARD_OPEN_CLASS, t as NATIVE_PREVIEW_QUERY_PARAM, n as NATIVE_PREVIEW_STORAGE_KEY, U as NETWORK_STATUS_EVENT, q as PUSH_TOKEN_EVENT, pe as PWA_INSTALLED_EVENT, me as PWA_INSTALL_AVAILABLE_EVENT, he as PWA_UPDATE_READY_EVENT, Fe as SERVICE_WORKER_TEMPLATE, Z as SW_NOTIFICATION_CLICK_MESSAGE, Q as SW_PUSH_SUBSCRIPTION_CHANGE_MESSAGE, $ as WEB_PUSH_MANIFEST_KEY, o as applyNativePlatformClass, r as applyNativePreview, Ee as applyStatusBarTheme, xe as armSplashSafetyTimer, je as bootNativeShell, N as clearDeepLinkNavigator, p as configureElectronGlobalKey, V as configureKeyboard, b as createDefaultBackButtonHandlers, P as deepLinkUrlToPath, Ne as defineCapacitorConfig, Pe as defineWebManifest, J as emitPushToken, i as getActiveNativePreview, e as getDesktopBridge, m as getElectronGlobalKey, W as getLastNetworkStatus, h as getLegacyElectronBridge, s as getNativePlatform, ee as getWebPushManifestConfig, te as getWebPushSubscription, D as impactFeedback, x as installBackButtonHandler, F as installDeepLinkHandler, w as installExternalUrlOpener, f as installMobileRuntimeHooks, v as installNativeAuthNavigationIntercept, M as installNativeBridge, G as installNetworkListener, Y as installPushNotifications, de as installPushOptIn, ge as installPwa, _e as installPwaPrompt, De as installStatusBarThemeListener, ne as installWebPushMessageBridge, Se as isAppReady, Oe as isDarkThemeName, g as isDesktopShell, c as isNativePlatform, l as isNativePluginAvailable, u as isNativePreview, ve as isPwaEligibleHost, d as isRealNativePlatform, re as isWebPushSupported, H as keyboardHandlers, Ce as markAppReady, I as navigateDeepLinkPath, O as notificationFeedback, K as notifyOtaReady, T as openExternalUrl, R as populateDeviceInfo, L as registerDeepLinkNavigator, Ie as renderServiceWorker, X as requestPushPermission, ie as requestWebPushPermission, we as resetAppReadyForTests, Me as resetNativeShellBootForTests, fe as resetPushOptInForTests, ye as resetPwaForTests, ae as resetWebPushForTests, ke as resolveDocumentIsDark, a as resolveNativePreview, oe as resolveVapidPublicKey, S as runBackButtonPrecedence, k as selectionFeedback, se as serializeWebPushSubscription, j as shareContent, C as showNativeActionSheet, y as showNativeConfirm, A as showNativeToast, Ae as statusBarDetailIsDark, ce as subscribeWebPush, le as unsubscribeWebPush, ue as urlBase64ToUint8Array, E as writeClipboardText };
|