@oxyhq/bloom 1.7.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/teleport.mdx +72 -0
- package/lib/commonjs/teleport/Portal.js +109 -0
- package/lib/commonjs/teleport/Portal.js.map +1 -0
- package/lib/commonjs/teleport/PortalHost.js +75 -0
- package/lib/commonjs/teleport/PortalHost.js.map +1 -0
- package/lib/commonjs/teleport/PortalHostView.js +40 -0
- package/lib/commonjs/teleport/PortalHostView.js.map +1 -0
- package/lib/commonjs/teleport/PortalHostView.native.js +24 -0
- package/lib/commonjs/teleport/PortalHostView.native.js.map +1 -0
- package/lib/commonjs/teleport/PortalProvider.js +57 -0
- package/lib/commonjs/teleport/PortalProvider.js.map +1 -0
- package/lib/commonjs/teleport/PortalProviderView.js +59 -0
- package/lib/commonjs/teleport/PortalProviderView.js.map +1 -0
- package/lib/commonjs/teleport/PortalProviderView.native.js +19 -0
- package/lib/commonjs/teleport/PortalProviderView.native.js.map +1 -0
- package/lib/commonjs/teleport/PortalView.js +83 -0
- package/lib/commonjs/teleport/PortalView.js.map +1 -0
- package/lib/commonjs/teleport/PortalView.native.js +14 -0
- package/lib/commonjs/teleport/PortalView.native.js.map +1 -0
- package/lib/commonjs/teleport/index.js +35 -0
- package/lib/commonjs/teleport/index.js.map +1 -0
- package/lib/commonjs/teleport/portal-manager.js +40 -0
- package/lib/commonjs/teleport/portal-manager.js.map +1 -0
- package/lib/commonjs/teleport/portal-registry.js +24 -0
- package/lib/commonjs/teleport/portal-registry.js.map +1 -0
- package/lib/commonjs/teleport/reducer.js +86 -0
- package/lib/commonjs/teleport/reducer.js.map +1 -0
- package/lib/commonjs/teleport/scroll-view-context/context.js +17 -0
- package/lib/commonjs/teleport/scroll-view-context/context.js.map +1 -0
- package/lib/commonjs/teleport/scroll-view-context/context.native.js +22 -0
- package/lib/commonjs/teleport/scroll-view-context/context.native.js.map +1 -0
- package/lib/commonjs/teleport/scroll-view-context/types.js +2 -0
- package/lib/commonjs/teleport/scroll-view-context/types.js.map +1 -0
- package/lib/commonjs/teleport/specs/PortalHostViewNativeComponent.js +17 -0
- package/lib/commonjs/teleport/specs/PortalHostViewNativeComponent.js.map +1 -0
- package/lib/commonjs/teleport/specs/PortalViewNativeComponent.js +17 -0
- package/lib/commonjs/teleport/specs/PortalViewNativeComponent.js.map +1 -0
- package/lib/commonjs/teleport/teleport-global.d.js +2 -0
- package/lib/commonjs/teleport/teleport-global.d.js.map +1 -0
- package/lib/commonjs/teleport/types.js +6 -0
- package/lib/commonjs/teleport/types.js.map +1 -0
- package/lib/commonjs/teleport/use-id.js +24 -0
- package/lib/commonjs/teleport/use-id.js.map +1 -0
- package/lib/commonjs/teleport/use-portal.js +59 -0
- package/lib/commonjs/teleport/use-portal.js.map +1 -0
- package/lib/module/teleport/Portal.js +103 -0
- package/lib/module/teleport/Portal.js.map +1 -0
- package/lib/module/teleport/PortalHost.js +71 -0
- package/lib/module/teleport/PortalHost.js.map +1 -0
- package/lib/module/teleport/PortalHostView.js +35 -0
- package/lib/module/teleport/PortalHostView.js.map +1 -0
- package/lib/module/teleport/PortalHostView.native.js +18 -0
- package/lib/module/teleport/PortalHostView.native.js.map +1 -0
- package/lib/module/teleport/PortalProvider.js +51 -0
- package/lib/module/teleport/PortalProvider.js.map +1 -0
- package/lib/module/teleport/PortalProviderView.js +54 -0
- package/lib/module/teleport/PortalProviderView.js.map +1 -0
- package/lib/module/teleport/PortalProviderView.native.js +15 -0
- package/lib/module/teleport/PortalProviderView.native.js.map +1 -0
- package/lib/module/teleport/PortalView.js +79 -0
- package/lib/module/teleport/PortalView.js.map +1 -0
- package/lib/module/teleport/PortalView.native.js +10 -0
- package/lib/module/teleport/PortalView.native.js.map +1 -0
- package/lib/module/teleport/index.js +30 -0
- package/lib/module/teleport/index.js.map +1 -0
- package/lib/module/teleport/portal-manager.js +33 -0
- package/lib/module/teleport/portal-manager.js.map +1 -0
- package/lib/module/teleport/portal-registry.js +18 -0
- package/lib/module/teleport/portal-registry.js.map +1 -0
- package/lib/module/teleport/reducer.js +81 -0
- package/lib/module/teleport/reducer.js.map +1 -0
- package/lib/module/teleport/scroll-view-context/context.js +12 -0
- package/lib/module/teleport/scroll-view-context/context.js.map +1 -0
- package/lib/module/teleport/scroll-view-context/context.native.js +18 -0
- package/lib/module/teleport/scroll-view-context/context.native.js.map +1 -0
- package/lib/module/teleport/scroll-view-context/types.js +2 -0
- package/lib/module/teleport/scroll-view-context/types.js.map +1 -0
- package/lib/module/teleport/specs/PortalHostViewNativeComponent.js +13 -0
- package/lib/module/teleport/specs/PortalHostViewNativeComponent.js.map +1 -0
- package/lib/module/teleport/specs/PortalViewNativeComponent.js +13 -0
- package/lib/module/teleport/specs/PortalViewNativeComponent.js.map +1 -0
- package/lib/module/teleport/teleport-global.d.js +2 -0
- package/lib/module/teleport/teleport-global.d.js.map +1 -0
- package/lib/module/teleport/types.js +4 -0
- package/lib/module/teleport/types.js.map +1 -0
- package/lib/module/teleport/use-id.js +19 -0
- package/lib/module/teleport/use-id.js.map +1 -0
- package/lib/module/teleport/use-portal.js +55 -0
- package/lib/module/teleport/use-portal.js.map +1 -0
- package/lib/typescript/commonjs/teleport/Portal.d.ts +48 -0
- package/lib/typescript/commonjs/teleport/Portal.d.ts.map +1 -0
- package/lib/typescript/commonjs/teleport/PortalHost.d.ts +25 -0
- package/lib/typescript/commonjs/teleport/PortalHost.d.ts.map +1 -0
- package/lib/typescript/commonjs/teleport/PortalHostView.d.ts +5 -0
- package/lib/typescript/commonjs/teleport/PortalHostView.d.ts.map +1 -0
- package/lib/typescript/commonjs/teleport/PortalHostView.native.d.ts +4 -0
- package/lib/typescript/commonjs/teleport/PortalHostView.native.d.ts.map +1 -0
- package/lib/typescript/commonjs/teleport/PortalProvider.d.ts +23 -0
- package/lib/typescript/commonjs/teleport/PortalProvider.d.ts.map +1 -0
- package/lib/typescript/commonjs/teleport/PortalProviderView.d.ts +3 -0
- package/lib/typescript/commonjs/teleport/PortalProviderView.d.ts.map +1 -0
- package/lib/typescript/commonjs/teleport/PortalProviderView.native.d.ts +9 -0
- package/lib/typescript/commonjs/teleport/PortalProviderView.native.d.ts.map +1 -0
- package/lib/typescript/commonjs/teleport/PortalView.d.ts +9 -0
- package/lib/typescript/commonjs/teleport/PortalView.d.ts.map +1 -0
- package/lib/typescript/commonjs/teleport/PortalView.native.d.ts +8 -0
- package/lib/typescript/commonjs/teleport/PortalView.native.d.ts.map +1 -0
- package/lib/typescript/commonjs/teleport/index.d.ts +29 -0
- package/lib/typescript/commonjs/teleport/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/teleport/portal-manager.d.ts +16 -0
- package/lib/typescript/commonjs/teleport/portal-manager.d.ts.map +1 -0
- package/lib/typescript/commonjs/teleport/portal-registry.d.ts +10 -0
- package/lib/typescript/commonjs/teleport/portal-registry.d.ts.map +1 -0
- package/lib/typescript/commonjs/teleport/reducer.d.ts +40 -0
- package/lib/typescript/commonjs/teleport/reducer.d.ts.map +1 -0
- package/lib/typescript/commonjs/teleport/scroll-view-context/context.d.ts +4 -0
- package/lib/typescript/commonjs/teleport/scroll-view-context/context.d.ts.map +1 -0
- package/lib/typescript/commonjs/teleport/scroll-view-context/context.native.d.ts +13 -0
- package/lib/typescript/commonjs/teleport/scroll-view-context/context.native.d.ts.map +1 -0
- package/lib/typescript/commonjs/teleport/scroll-view-context/types.d.ts +10 -0
- package/lib/typescript/commonjs/teleport/scroll-view-context/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/teleport/specs/PortalHostViewNativeComponent.d.ts +13 -0
- package/lib/typescript/commonjs/teleport/specs/PortalHostViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/teleport/specs/PortalViewNativeComponent.d.ts +14 -0
- package/lib/typescript/commonjs/teleport/specs/PortalViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/teleport/types.d.ts +22 -0
- package/lib/typescript/commonjs/teleport/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/teleport/use-id.d.ts +2 -0
- package/lib/typescript/commonjs/teleport/use-id.d.ts.map +1 -0
- package/lib/typescript/commonjs/teleport/use-portal.d.ts +35 -0
- package/lib/typescript/commonjs/teleport/use-portal.d.ts.map +1 -0
- package/lib/typescript/module/teleport/Portal.d.ts +48 -0
- package/lib/typescript/module/teleport/Portal.d.ts.map +1 -0
- package/lib/typescript/module/teleport/PortalHost.d.ts +25 -0
- package/lib/typescript/module/teleport/PortalHost.d.ts.map +1 -0
- package/lib/typescript/module/teleport/PortalHostView.d.ts +5 -0
- package/lib/typescript/module/teleport/PortalHostView.d.ts.map +1 -0
- package/lib/typescript/module/teleport/PortalHostView.native.d.ts +4 -0
- package/lib/typescript/module/teleport/PortalHostView.native.d.ts.map +1 -0
- package/lib/typescript/module/teleport/PortalProvider.d.ts +23 -0
- package/lib/typescript/module/teleport/PortalProvider.d.ts.map +1 -0
- package/lib/typescript/module/teleport/PortalProviderView.d.ts +3 -0
- package/lib/typescript/module/teleport/PortalProviderView.d.ts.map +1 -0
- package/lib/typescript/module/teleport/PortalProviderView.native.d.ts +9 -0
- package/lib/typescript/module/teleport/PortalProviderView.native.d.ts.map +1 -0
- package/lib/typescript/module/teleport/PortalView.d.ts +9 -0
- package/lib/typescript/module/teleport/PortalView.d.ts.map +1 -0
- package/lib/typescript/module/teleport/PortalView.native.d.ts +8 -0
- package/lib/typescript/module/teleport/PortalView.native.d.ts.map +1 -0
- package/lib/typescript/module/teleport/index.d.ts +29 -0
- package/lib/typescript/module/teleport/index.d.ts.map +1 -0
- package/lib/typescript/module/teleport/portal-manager.d.ts +16 -0
- package/lib/typescript/module/teleport/portal-manager.d.ts.map +1 -0
- package/lib/typescript/module/teleport/portal-registry.d.ts +10 -0
- package/lib/typescript/module/teleport/portal-registry.d.ts.map +1 -0
- package/lib/typescript/module/teleport/reducer.d.ts +40 -0
- package/lib/typescript/module/teleport/reducer.d.ts.map +1 -0
- package/lib/typescript/module/teleport/scroll-view-context/context.d.ts +4 -0
- package/lib/typescript/module/teleport/scroll-view-context/context.d.ts.map +1 -0
- package/lib/typescript/module/teleport/scroll-view-context/context.native.d.ts +13 -0
- package/lib/typescript/module/teleport/scroll-view-context/context.native.d.ts.map +1 -0
- package/lib/typescript/module/teleport/scroll-view-context/types.d.ts +10 -0
- package/lib/typescript/module/teleport/scroll-view-context/types.d.ts.map +1 -0
- package/lib/typescript/module/teleport/specs/PortalHostViewNativeComponent.d.ts +13 -0
- package/lib/typescript/module/teleport/specs/PortalHostViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/teleport/specs/PortalViewNativeComponent.d.ts +14 -0
- package/lib/typescript/module/teleport/specs/PortalViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/teleport/types.d.ts +22 -0
- package/lib/typescript/module/teleport/types.d.ts.map +1 -0
- package/lib/typescript/module/teleport/use-id.d.ts +2 -0
- package/lib/typescript/module/teleport/use-id.d.ts.map +1 -0
- package/lib/typescript/module/teleport/use-portal.d.ts +35 -0
- package/lib/typescript/module/teleport/use-portal.d.ts.map +1 -0
- package/package.json +15 -1
- package/src/teleport/Portal.tsx +97 -0
- package/src/teleport/PortalHost.tsx +61 -0
- package/src/teleport/PortalHostView.native.tsx +14 -0
- package/src/teleport/PortalHostView.tsx +30 -0
- package/src/teleport/PortalProvider.tsx +51 -0
- package/src/teleport/PortalProviderView.native.tsx +11 -0
- package/src/teleport/PortalProviderView.tsx +67 -0
- package/src/teleport/PortalView.native.tsx +7 -0
- package/src/teleport/PortalView.tsx +94 -0
- package/src/teleport/index.ts +32 -0
- package/src/teleport/portal-manager.tsx +48 -0
- package/src/teleport/portal-registry.ts +27 -0
- package/src/teleport/reducer.ts +94 -0
- package/src/teleport/scroll-view-context/context.native.ts +19 -0
- package/src/teleport/scroll-view-context/context.ts +12 -0
- package/src/teleport/scroll-view-context/types.ts +7 -0
- package/src/teleport/specs/PortalHostViewNativeComponent.ts +15 -0
- package/src/teleport/specs/PortalViewNativeComponent.ts +16 -0
- package/src/teleport/teleport-global.d.ts +11 -0
- package/src/teleport/types.ts +22 -0
- package/src/teleport/use-id.ts +18 -0
- package/src/teleport/use-portal.ts +47 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Teleport
|
|
3
|
+
description: react-native-teleport, vendored — one view moved between hosts, not rebuilt at each end
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Teleport
|
|
7
|
+
|
|
8
|
+
`@oxyhq/bloom/teleport` is **a copy of [react-native-teleport][upstream] 1.2.0**,
|
|
9
|
+
by Kiryl Ziusko, MIT-licensed. It is not a reimplementation and not an
|
|
10
|
+
adaptation: the files under `src/teleport/` are theirs, each one carrying a
|
|
11
|
+
header that names the file it came from and what changed — import paths, in
|
|
12
|
+
almost every case, and nothing else.
|
|
13
|
+
|
|
14
|
+
The full licence is in `NOTICE` at the repository root, and it ships in the
|
|
15
|
+
published tarball.
|
|
16
|
+
|
|
17
|
+
[upstream]: https://github.com/kirillzyusko/react-native-teleport
|
|
18
|
+
|
|
19
|
+
## Why Bloom carries it rather than depending on it
|
|
20
|
+
|
|
21
|
+
Bloom needs its **native re-parenting**: moving one platform view between hosts
|
|
22
|
+
instead of mounting a second one somewhere else. That arrives as Fabric
|
|
23
|
+
components — C++ shadow nodes, Kotlin, Objective-C++ — not as JavaScript, and
|
|
24
|
+
Bloom's media flight is the consumer.
|
|
25
|
+
|
|
26
|
+
Vendoring is a decision with a cost, and the cost is that **this is a fork**.
|
|
27
|
+
Their fixes will not arrive here on their own; their repository is active. Read
|
|
28
|
+
theirs before rewriting anything here.
|
|
29
|
+
|
|
30
|
+
## The one thing Bloom does differently, and it is not their code
|
|
31
|
+
|
|
32
|
+
**Bloom mounts these portals from its ROOT LAYER. Never from the origin screen.**
|
|
33
|
+
|
|
34
|
+
Their `<Portal>` renders `createPortal(children, …)` inside the component that
|
|
35
|
+
mounts it, so the children belong to that component's tree. Their Instagram
|
|
36
|
+
recipe mounts it inside the screen the media starts on and keeps that screen
|
|
37
|
+
alive with `presentation: 'transparentModal'`, which is correct for a navigator
|
|
38
|
+
that behaves that way — and it is the premise the design needs.
|
|
39
|
+
|
|
40
|
+
Under expo-router on **web** the origin route is unmounted the moment the URL
|
|
41
|
+
changes. Measured against their library, with the origin unmounting:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
origin UNMOUNTS count 1 -> 0 -> 0 the media is gone
|
|
45
|
+
origin STAYS stamps ["1","1","1"], ct 0.93 -> 1.73 one element, still playing
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The portal is not what fails there; the **ownership** is. Same piece, mounted
|
|
49
|
+
where it does not die — which is what `MediaFlightLayer` does.
|
|
50
|
+
|
|
51
|
+
`src/__tests__/Teleport.test.tsx` pins all three behaviours, including that last
|
|
52
|
+
one, so nobody re-discovers it in an app.
|
|
53
|
+
|
|
54
|
+
## Status
|
|
55
|
+
|
|
56
|
+
- **Web: in, and used.** The move primitive in `media-flight/media-node.web.ts`
|
|
57
|
+
is theirs (`moveBefore` with an `insertBefore` fallback).
|
|
58
|
+
- **Native: not yet.** The Fabric components are not in this repo. Until they
|
|
59
|
+
are, Bloom's native flight keeps its three surfaces on one player.
|
|
60
|
+
- **Their own test suite is not here yet, and the reason is measured.** It is
|
|
61
|
+
written for `preset: react-native`, and Bloom's jest resolves no platform
|
|
62
|
+
extensions, so it reaches the web files instead. Moving their tests to a web
|
|
63
|
+
renderer does not work either: they depend on react-native-testing-library's
|
|
64
|
+
API, not only its renderer — `fireEvent.press` and `toBeOnTheScreen` appear
|
|
65
|
+
37 times in one 221-line file, and neither exists in
|
|
66
|
+
`@testing-library/react`. Rewriting those is rewriting every interaction and
|
|
67
|
+
every assertion, which is not vendoring their tests, it is writing ours.
|
|
68
|
+
|
|
69
|
+
So they arrive with the native side, which is what they were written for. They
|
|
70
|
+
are held, not `.skip`ped: a skipped vendored test claims coverage that does not
|
|
71
|
+
exist. Meanwhile `src/__tests__/Teleport.test.tsx` covers their code on the
|
|
72
|
+
path Bloom uses today. See `AGENTS.md`, "Jest resolves no platform extensions".
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _portalManager = require("./portal-manager.js");
|
|
9
|
+
var _context = _interopRequireDefault(require("./scroll-view-context/context"));
|
|
10
|
+
var _PortalView = _interopRequireDefault(require("./PortalView"));
|
|
11
|
+
var _useId = _interopRequireDefault(require("./use-id.js"));
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
/**
|
|
15
|
+
* COPIED FROM react-native-teleport 1.2.0 — `src/components/Portal.tsx`
|
|
16
|
+
* MIT, Copyright (c) 2025 Kiryl Ziusko. Full licence in `NOTICE` at the root.
|
|
17
|
+
*
|
|
18
|
+
* Changed: import paths only, for this flat directory.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Portal helps you to render a component in a different place in the view hierarchy.
|
|
23
|
+
* This is useful when you need a view to visually “break out” of its parent container (for example: modals, toasts, floating UI, popovers).
|
|
24
|
+
*
|
|
25
|
+
* @category components
|
|
26
|
+
* @param hostName - The `name` of the `PortalHost`. It's used to identify the host where the content should be rendered.
|
|
27
|
+
* @param name - The name of the portal. It's used to identify the portal.
|
|
28
|
+
* @param children - The content that should be rendered in the portal.
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* import { useState } from "react";
|
|
32
|
+
* import { View, StyleSheet, Button } from "react-native";
|
|
33
|
+
* import { Portal } from "react-native-teleport";
|
|
34
|
+
* export default function InstantRootExample() {
|
|
35
|
+
* const [shouldBeTeleported, setTeleported] = useState(true);
|
|
36
|
+
* return (
|
|
37
|
+
* <View style={styles.container}>
|
|
38
|
+
* {shouldBeTeleported && (
|
|
39
|
+
* <Portal hostName={"overlay"}>
|
|
40
|
+
* <View style={styles.box} />
|
|
41
|
+
* </Portal>
|
|
42
|
+
* )}
|
|
43
|
+
* <Button
|
|
44
|
+
* title={shouldBeTeleported ? "Hide" : "Show"}
|
|
45
|
+
* onPress={() => setTeleported((t) => !t)}
|
|
46
|
+
* />
|
|
47
|
+
* </View>
|
|
48
|
+
* );
|
|
49
|
+
* }
|
|
50
|
+
* const styles = StyleSheet.create({
|
|
51
|
+
* container: {
|
|
52
|
+
* flex: 1,
|
|
53
|
+
* alignItems: "center",
|
|
54
|
+
* justifyContent: "center",
|
|
55
|
+
* },
|
|
56
|
+
* box: {
|
|
57
|
+
* width: 160,
|
|
58
|
+
* height: 160,
|
|
59
|
+
* marginVertical: 20,
|
|
60
|
+
* backgroundColor: "blue",
|
|
61
|
+
* },
|
|
62
|
+
* });
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
const PortalComponent = ({
|
|
66
|
+
hostName,
|
|
67
|
+
name,
|
|
68
|
+
style,
|
|
69
|
+
children
|
|
70
|
+
}) => {
|
|
71
|
+
const sourceScrollViewContext = (0, _react.useContext)(_context.default);
|
|
72
|
+
const {
|
|
73
|
+
state,
|
|
74
|
+
dispatch
|
|
75
|
+
} = (0, _portalManager.usePortalManagerContext)();
|
|
76
|
+
const instanceId = (0, _useId.default)();
|
|
77
|
+
const scrollViewContext = hostName && state.hosts[hostName] ? state.hostScrollViewContexts[hostName] ?? null : sourceScrollViewContext;
|
|
78
|
+
const isRemoved = hostName && name ? state.removed[hostName]?.[name]?.[instanceId] : false;
|
|
79
|
+
(0, _react.useEffect)(() => {
|
|
80
|
+
if (!hostName || !name) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
dispatch({
|
|
84
|
+
type: "REGISTER_PORTAL",
|
|
85
|
+
hostName,
|
|
86
|
+
name,
|
|
87
|
+
instanceId
|
|
88
|
+
});
|
|
89
|
+
return () => {
|
|
90
|
+
dispatch({
|
|
91
|
+
type: "CLEAR_REMOVED_ON_UNMOUNT",
|
|
92
|
+
hostName,
|
|
93
|
+
name,
|
|
94
|
+
instanceId
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
}, [dispatch, hostName, name, instanceId]);
|
|
98
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.default.Provider, {
|
|
99
|
+
value: scrollViewContext,
|
|
100
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PortalView.default, {
|
|
101
|
+
hostName: hostName,
|
|
102
|
+
name: name,
|
|
103
|
+
style: style,
|
|
104
|
+
children: isRemoved ? null : children
|
|
105
|
+
})
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
var _default = exports.default = PortalComponent;
|
|
109
|
+
//# sourceMappingURL=Portal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_portalManager","_context","_interopRequireDefault","_PortalView","_useId","_jsxRuntime","e","__esModule","default","PortalComponent","hostName","name","style","children","sourceScrollViewContext","useContext","ScrollViewContext","state","dispatch","usePortalManagerContext","instanceId","useId","scrollViewContext","hosts","hostScrollViewContexts","isRemoved","removed","useEffect","type","jsx","Provider","value","_default","exports"],"sourceRoot":"../../../src","sources":["teleport/Portal.tsx"],"mappings":";;;;;;AAMA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,WAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,MAAA,GAAAF,sBAAA,CAAAH,OAAA;AAA6B,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAG,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAV7B;AACA;AACA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,eAAe,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,IAAI;EAAEC,KAAK;EAAEC;AAAsB,CAAC,KAAK;EAC5E,MAAMC,uBAAuB,GAAG,IAAAC,iBAAU,EAACC,gBAAiB,CAAC;EAC7D,MAAM;IAAEC,KAAK;IAAEC;EAAS,CAAC,GAAG,IAAAC,sCAAuB,EAAC,CAAC;EACrD,MAAMC,UAAU,GAAG,IAAAC,cAAK,EAAC,CAAC;EAE1B,MAAMC,iBAAiB,GACrBZ,QAAQ,IAAIO,KAAK,CAACM,KAAK,CAACb,QAAQ,CAAC,GAC5BO,KAAK,CAACO,sBAAsB,CAACd,QAAQ,CAAC,IAAI,IAAI,GAC/CI,uBAAuB;EAE7B,MAAMW,SAAS,GACbf,QAAQ,IAAIC,IAAI,GAAGM,KAAK,CAACS,OAAO,CAAChB,QAAQ,CAAC,GAAGC,IAAI,CAAC,GAAGS,UAAU,CAAC,GAAG,KAAK;EAE1E,IAAAO,gBAAS,EAAC,MAAM;IACd,IAAI,CAACjB,QAAQ,IAAI,CAACC,IAAI,EAAE;MACtB;IACF;IAEAO,QAAQ,CAAC;MAAEU,IAAI,EAAE,iBAAiB;MAAElB,QAAQ;MAAEC,IAAI;MAAES;IAAW,CAAC,CAAC;IAEjE,OAAO,MAAM;MACXF,QAAQ,CAAC;QACPU,IAAI,EAAE,0BAA0B;QAChClB,QAAQ;QACRC,IAAI;QACJS;MACF,CAAC,CAAC;IACJ,CAAC;EACH,CAAC,EAAE,CAACF,QAAQ,EAAER,QAAQ,EAAEC,IAAI,EAAES,UAAU,CAAC,CAAC;EAE1C,oBACE,IAAAf,WAAA,CAAAwB,GAAA,EAAC5B,QAAA,CAAAO,OAAiB,CAACsB,QAAQ;IAACC,KAAK,EAAET,iBAAkB;IAAAT,QAAA,eACnD,IAAAR,WAAA,CAAAwB,GAAA,EAAC1B,WAAA,CAAAK,OAAU;MAACE,QAAQ,EAAEA,QAAS;MAACC,IAAI,EAAEA,IAAK;MAACC,KAAK,EAAEA,KAAM;MAAAC,QAAA,EACtDY,SAAS,GAAG,IAAI,GAAGZ;IAAQ,CAClB;EAAC,CACa,CAAC;AAEjC,CAAC;AAAC,IAAAmB,QAAA,GAAAC,OAAA,CAAAzB,OAAA,GAEaC,eAAe","ignoreList":[]}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _portalManager = require("./portal-manager.js");
|
|
9
|
+
var _context = _interopRequireDefault(require("./scroll-view-context/context"));
|
|
10
|
+
var _PortalHostView = _interopRequireDefault(require("./PortalHostView"));
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
/**
|
|
14
|
+
* COPIED FROM react-native-teleport 1.2.0 — `src/components/PortalHost.tsx`
|
|
15
|
+
* MIT, Copyright (c) 2025 Kiryl Ziusko. Full licence in `NOTICE` at the root.
|
|
16
|
+
*
|
|
17
|
+
* Changed: import paths only, for this flat directory.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* PortalHost is a component that acts as an anchor for the portals.
|
|
22
|
+
* You can define multiple portal hosts in your app and use them to render different portals.
|
|
23
|
+
* Each portal host has a unique name that you can use to identify a necessary one among the others.
|
|
24
|
+
*
|
|
25
|
+
* @category components
|
|
26
|
+
* @param name - The name of the portal host. It's used by `<Portal />` component to identify the host.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```tsx
|
|
30
|
+
* import { StyleSheet, View } from "react-native";
|
|
31
|
+
* import { PortalHost, PortalProvider } from "react-native-teleport";
|
|
32
|
+
* export default function App() {
|
|
33
|
+
* return (
|
|
34
|
+
* <PortalProvider>
|
|
35
|
+
* <PortalHost style={StyleSheet.absoluteFillObject} name="overlay" />
|
|
36
|
+
* </PortalProvider>
|
|
37
|
+
* );
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*/const PortalHostComponent = ({
|
|
41
|
+
name,
|
|
42
|
+
children,
|
|
43
|
+
style
|
|
44
|
+
}) => {
|
|
45
|
+
const {
|
|
46
|
+
dispatch
|
|
47
|
+
} = (0, _portalManager.usePortalManagerContext)();
|
|
48
|
+
const scrollViewContext = (0, _react.useContext)(_context.default);
|
|
49
|
+
(0, _react.useEffect)(() => {
|
|
50
|
+
dispatch({
|
|
51
|
+
type: "REGISTER_HOST",
|
|
52
|
+
hostName: name
|
|
53
|
+
});
|
|
54
|
+
return () => {
|
|
55
|
+
dispatch({
|
|
56
|
+
type: "UNREGISTER_HOST",
|
|
57
|
+
hostName: name
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
}, [name, dispatch]);
|
|
61
|
+
(0, _react.useEffect)(() => {
|
|
62
|
+
dispatch({
|
|
63
|
+
type: "SET_HOST_SCROLL_VIEW_CONTEXT",
|
|
64
|
+
hostName: name,
|
|
65
|
+
value: scrollViewContext
|
|
66
|
+
});
|
|
67
|
+
}, [name, dispatch, scrollViewContext]);
|
|
68
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PortalHostView.default, {
|
|
69
|
+
name: name,
|
|
70
|
+
style: style,
|
|
71
|
+
children: children
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
var _default = exports.default = PortalHostComponent;
|
|
75
|
+
//# sourceMappingURL=PortalHost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_portalManager","_context","_interopRequireDefault","_PortalHostView","_jsxRuntime","e","__esModule","default","PortalHostComponent","name","children","style","dispatch","usePortalManagerContext","scrollViewContext","useContext","ScrollViewContext","useEffect","type","hostName","value","jsx","_default","exports"],"sourceRoot":"../../../src","sources":["teleport/PortalHost.tsx"],"mappings":";;;;;;AAMA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,eAAA,GAAAD,sBAAA,CAAAH,OAAA;AAA0C,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAG,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAV1C;AACA;AACA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACA,MAAMG,mBAAmB,GAAGA,CAAC;EAAEC,IAAI;EAAEC,QAAQ;EAAEC;AAAuB,CAAC,KAAK;EAC1E,MAAM;IAAEC;EAAS,CAAC,GAAG,IAAAC,sCAAuB,EAAC,CAAC;EAC9C,MAAMC,iBAAiB,GAAG,IAAAC,iBAAU,EAACC,gBAAiB,CAAC;EAEvD,IAAAC,gBAAS,EAAC,MAAM;IACdL,QAAQ,CAAC;MAAEM,IAAI,EAAE,eAAe;MAAEC,QAAQ,EAAEV;IAAK,CAAC,CAAC;IAEnD,OAAO,MAAM;MACXG,QAAQ,CAAC;QAAEM,IAAI,EAAE,iBAAiB;QAAEC,QAAQ,EAAEV;MAAK,CAAC,CAAC;IACvD,CAAC;EACH,CAAC,EAAE,CAACA,IAAI,EAAEG,QAAQ,CAAC,CAAC;EAEpB,IAAAK,gBAAS,EAAC,MAAM;IACdL,QAAQ,CAAC;MACPM,IAAI,EAAE,8BAA8B;MACpCC,QAAQ,EAAEV,IAAI;MACdW,KAAK,EAAEN;IACT,CAAC,CAAC;EACJ,CAAC,EAAE,CAACL,IAAI,EAAEG,QAAQ,EAAEE,iBAAiB,CAAC,CAAC;EAEvC,oBACE,IAAAV,WAAA,CAAAiB,GAAA,EAAClB,eAAA,CAAAI,OAAU;IAACE,IAAI,EAAEA,IAAK;IAACE,KAAK,EAAEA,KAAM;IAAAD,QAAA,EAClCA;EAAQ,CACC,CAAC;AAEjB,CAAC;AAAC,IAAAY,QAAA,GAAAC,OAAA,CAAAhB,OAAA,GAEaC,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _portalRegistry = require("./portal-registry.js");
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
/**
|
|
11
|
+
* COPIED FROM react-native-teleport 1.2.0 — `src/views/PortalHost/index.tsx`
|
|
12
|
+
* MIT, Copyright (c) 2025 Kiryl Ziusko. Full licence in `NOTICE` at the root.
|
|
13
|
+
*
|
|
14
|
+
* Changed: import paths only, for this flat directory.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
function PortalHost({
|
|
18
|
+
name,
|
|
19
|
+
children,
|
|
20
|
+
style
|
|
21
|
+
}) {
|
|
22
|
+
const {
|
|
23
|
+
registerHost
|
|
24
|
+
} = (0, _portalRegistry.usePortalRegistryContext)();
|
|
25
|
+
(0, _react.useEffect)(() => {
|
|
26
|
+
return () => {
|
|
27
|
+
registerHost(name, null);
|
|
28
|
+
};
|
|
29
|
+
}, [name, registerHost]);
|
|
30
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
31
|
+
style: {
|
|
32
|
+
...style,
|
|
33
|
+
pointerEvents: "none"
|
|
34
|
+
},
|
|
35
|
+
ref: ref => registerHost(name, ref),
|
|
36
|
+
children: children
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
var _default = exports.default = /*#__PURE__*/(0, _react.memo)(PortalHost);
|
|
40
|
+
//# sourceMappingURL=PortalHostView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_portalRegistry","_jsxRuntime","PortalHost","name","children","style","registerHost","usePortalRegistryContext","useEffect","jsx","pointerEvents","ref","_default","exports","default","memo"],"sourceRoot":"../../../src","sources":["teleport/PortalHostView.tsx"],"mappings":";;;;;;AAMA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAA6D,IAAAE,WAAA,GAAAF,OAAA;AAP7D;AACA;AACA;AACA;AACA;AACA;;AAKA,SAASG,UAAUA,CAAC;EAAEC,IAAI;EAAEC,QAAQ;EAAEC;AAAuB,CAAC,EAAE;EAC9D,MAAM;IAAEC;EAAa,CAAC,GAAG,IAAAC,wCAAwB,EAAC,CAAC;EAEnD,IAAAC,gBAAS,EAAC,MAAM;IACd,OAAO,MAAM;MACXF,YAAY,CAACH,IAAI,EAAE,IAAI,CAAC;IAC1B,CAAC;EACH,CAAC,EAAE,CAACA,IAAI,EAAEG,YAAY,CAAC,CAAC;EAExB,oBACE,IAAAL,WAAA,CAAAQ,GAAA;IACEJ,KAAK,EAAE;MAAE,GAAGA,KAAK;MAAEK,aAAa,EAAE;IAAO,CAAyB;IAClEC,GAAG,EAAGA,GAAG,IAAKL,YAAY,CAACH,IAAI,EAAEQ,GAAG,CAAE;IAAAP,QAAA,EAErCA;EAAQ,CACN,CAAC;AAEV;AAAC,IAAAQ,QAAA,GAAAC,OAAA,CAAAC,OAAA,gBAEc,IAAAC,WAAI,EAACb,UAAU,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _PortalHostViewNativeComponent = _interopRequireDefault(require("./specs/PortalHostViewNativeComponent.js"));
|
|
8
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
/**
|
|
11
|
+
* COPIED FROM react-native-teleport 1.2.0 — `src/views/PortalHost/index.native.tsx`
|
|
12
|
+
* MIT, Copyright (c) 2025 Kiryl Ziusko. Full licence in `NOTICE` at the root.
|
|
13
|
+
*
|
|
14
|
+
* Changed: import paths only, for this flat directory.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
const PortalHost = props => {
|
|
18
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PortalHostViewNativeComponent.default, {
|
|
19
|
+
pointerEvents: "box-none",
|
|
20
|
+
...props
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
var _default = exports.default = PortalHost;
|
|
24
|
+
//# sourceMappingURL=PortalHostView.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_PortalHostViewNativeComponent","_interopRequireDefault","require","_jsxRuntime","e","__esModule","default","PortalHost","props","jsx","pointerEvents","_default","exports"],"sourceRoot":"../../../src","sources":["teleport/PortalHostView.native.tsx"],"mappings":";;;;;;AAMA,IAAAA,8BAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA8E,IAAAC,WAAA,GAAAD,OAAA;AAAA,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAN9E;AACA;AACA;AACA;AACA;AACA;;AAIA,MAAMG,UAAU,GAAIC,KAAsB,IAAK;EAC7C,oBAAO,IAAAL,WAAA,CAAAM,GAAA,EAACT,8BAAA,CAAAM,OAAyB;IAACI,aAAa,EAAC,UAAU;IAAA,GAAKF;EAAK,CAAG,CAAC;AAC1E,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,CAAAN,OAAA,GAEaC,UAAU","ignoreList":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = PortalProvider;
|
|
7
|
+
var _PortalHost = _interopRequireDefault(require("./PortalHost.js"));
|
|
8
|
+
var _PortalProviderView = _interopRequireDefault(require("./PortalProviderView"));
|
|
9
|
+
var _portalManager = require("./portal-manager.js");
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
/**
|
|
13
|
+
* COPIED FROM react-native-teleport 1.2.0 — `src/PortalProvider.tsx`
|
|
14
|
+
* MIT, Copyright (c) 2025 Kiryl Ziusko. Full licence in `NOTICE` at the root.
|
|
15
|
+
*
|
|
16
|
+
* Changed: import paths only, for this flat directory.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Wraps your app with this component to use the teleport API.
|
|
21
|
+
*
|
|
22
|
+
* This component provides a context/registry for all Portals so that you can use imperative API, such as `usePortal` hook to manage Portals.
|
|
23
|
+
*
|
|
24
|
+
* @category components
|
|
25
|
+
* @example
|
|
26
|
+
* ```tsx
|
|
27
|
+
* import { PortalProvider } from "react-native-teleport";
|
|
28
|
+
* export default function App() {
|
|
29
|
+
* return (
|
|
30
|
+
* <PortalProvider>
|
|
31
|
+
* //* your main application code goes here
|
|
32
|
+
* </PortalProvider>
|
|
33
|
+
* );
|
|
34
|
+
* }
|
|
35
|
+
*/
|
|
36
|
+
function PortalProvider({
|
|
37
|
+
children
|
|
38
|
+
}) {
|
|
39
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PortalProviderView.default, {
|
|
40
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_portalManager.PortalManagerProvider, {
|
|
41
|
+
children: [children, /*#__PURE__*/(0, _jsxRuntime.jsx)(_PortalHost.default, {
|
|
42
|
+
name: "root",
|
|
43
|
+
style: styles.root
|
|
44
|
+
})]
|
|
45
|
+
})
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
const styles = {
|
|
49
|
+
root: {
|
|
50
|
+
position: "absolute",
|
|
51
|
+
top: 0,
|
|
52
|
+
bottom: 0,
|
|
53
|
+
left: 0,
|
|
54
|
+
right: 0
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=PortalProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_PortalHost","_interopRequireDefault","require","_PortalProviderView","_portalManager","_jsxRuntime","e","__esModule","default","PortalProvider","children","jsx","jsxs","PortalManagerProvider","name","style","styles","root","position","top","bottom","left","right"],"sourceRoot":"../../../src","sources":["teleport/PortalProvider.tsx"],"mappings":";;;;;;AAMA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAAyD,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AARzD;AACA;AACA;AACA;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASG,cAAcA,CAAC;EAAEC;AAA8B,CAAC,EAAE;EACxE,oBACE,IAAAL,WAAA,CAAAM,GAAA,EAACR,mBAAA,CAAAK,OAAoB;IAAAE,QAAA,eACnB,IAAAL,WAAA,CAAAO,IAAA,EAACR,cAAA,CAAAS,qBAAqB;MAAAH,QAAA,GACnBA,QAAQ,eACT,IAAAL,WAAA,CAAAM,GAAA,EAACX,WAAA,CAAAQ,OAAU;QAACM,IAAI,EAAC,MAAM;QAACC,KAAK,EAAEC,MAAM,CAACC;MAAK,CAAE,CAAC;IAAA,CACzB;EAAC,CACJ,CAAC;AAE3B;AAEA,MAAMD,MAAM,GAAG;EACbC,IAAI,EAAE;IACJC,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,MAAM,EAAE,CAAC;IACTC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE;EACT;AACF,CAAU","ignoreList":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = PortalProvider;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _portalRegistry = require("./portal-registry.js");
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
/**
|
|
11
|
+
* COPIED FROM react-native-teleport 1.2.0 — `src/views/PortalProvider/index.tsx`
|
|
12
|
+
* MIT, Copyright (c) 2025 Kiryl Ziusko. Full licence in `NOTICE` at the root.
|
|
13
|
+
*
|
|
14
|
+
* Changed: import paths only, for this flat directory.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
function PortalProvider({
|
|
18
|
+
children
|
|
19
|
+
}) {
|
|
20
|
+
const hostsRef = (0, _react.useRef)(new Map());
|
|
21
|
+
const pendingPortalsRef = (0, _react.useRef)(new Map());
|
|
22
|
+
const registerHost = (0, _react.useCallback)((name, node) => {
|
|
23
|
+
if (node) {
|
|
24
|
+
hostsRef.current.set(name, node);
|
|
25
|
+
} else {
|
|
26
|
+
hostsRef.current.delete(name);
|
|
27
|
+
}
|
|
28
|
+
const callbacks = pendingPortalsRef.current.get(name);
|
|
29
|
+
if (callbacks) {
|
|
30
|
+
callbacks.forEach(callback => callback());
|
|
31
|
+
}
|
|
32
|
+
}, []);
|
|
33
|
+
const getHost = (0, _react.useCallback)(name => hostsRef.current.get(name) ?? null, []);
|
|
34
|
+
const registerPendingPortal = (0, _react.useCallback)((name, callback) => {
|
|
35
|
+
const callbacks = pendingPortalsRef.current.get(name) ?? new Set();
|
|
36
|
+
callbacks.add(callback);
|
|
37
|
+
pendingPortalsRef.current.set(name, callbacks);
|
|
38
|
+
}, []);
|
|
39
|
+
const unregisterPendingPortal = (0, _react.useCallback)((name, callback) => {
|
|
40
|
+
const callbacks = pendingPortalsRef.current.get(name);
|
|
41
|
+
if (callbacks) {
|
|
42
|
+
callbacks.delete(callback);
|
|
43
|
+
if (callbacks.size === 0) {
|
|
44
|
+
pendingPortalsRef.current.delete(name);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}, []);
|
|
48
|
+
const value = (0, _react.useMemo)(() => ({
|
|
49
|
+
registerHost,
|
|
50
|
+
getHost,
|
|
51
|
+
registerPendingPortal,
|
|
52
|
+
unregisterPendingPortal
|
|
53
|
+
}), [registerHost, getHost, registerPendingPortal, unregisterPendingPortal]);
|
|
54
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_portalRegistry.PortalRegistryContext.Provider, {
|
|
55
|
+
value: value,
|
|
56
|
+
children: children
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=PortalProviderView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_portalRegistry","_jsxRuntime","PortalProvider","children","hostsRef","useRef","Map","pendingPortalsRef","registerHost","useCallback","name","node","current","set","delete","callbacks","get","forEach","callback","getHost","registerPendingPortal","Set","add","unregisterPendingPortal","size","value","useMemo","jsx","PortalRegistryContext","Provider"],"sourceRoot":"../../../src","sources":["teleport/PortalProviderView.tsx"],"mappings":";;;;;;AAMA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAA0D,IAAAE,WAAA,GAAAF,OAAA;AAP1D;AACA;AACA;AACA;AACA;AACA;;AAKe,SAASG,cAAcA,CAAC;EAAEC;AAA8B,CAAC,EAAE;EACxE,MAAMC,QAAQ,GAAG,IAAAC,aAAM,EAA2B,IAAIC,GAAG,CAAC,CAAC,CAAC;EAC5D,MAAMC,iBAAiB,GAAG,IAAAF,aAAM,EAA+B,IAAIC,GAAG,CAAC,CAAC,CAAC;EAEzE,MAAME,YAAY,GAAG,IAAAC,kBAAW,EAAC,CAACC,IAAY,EAAEC,IAAwB,KAAK;IAC3E,IAAIA,IAAI,EAAE;MACRP,QAAQ,CAACQ,OAAO,CAACC,GAAG,CAACH,IAAI,EAAEC,IAAI,CAAC;IAClC,CAAC,MAAM;MACLP,QAAQ,CAACQ,OAAO,CAACE,MAAM,CAACJ,IAAI,CAAC;IAC/B;IAEA,MAAMK,SAAS,GAAGR,iBAAiB,CAACK,OAAO,CAACI,GAAG,CAACN,IAAI,CAAC;IACrD,IAAIK,SAAS,EAAE;MACbA,SAAS,CAACE,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;IAC7C;EACF,CAAC,EAAE,EAAE,CAAC;EACN,MAAMC,OAAO,GAAG,IAAAV,kBAAW,EACxBC,IAAY,IAAKN,QAAQ,CAACQ,OAAO,CAACI,GAAG,CAACN,IAAI,CAAC,IAAI,IAAI,EACpD,EACF,CAAC;EACD,MAAMU,qBAAqB,GAAG,IAAAX,kBAAW,EACvC,CAACC,IAAY,EAAEQ,QAAoB,KAAK;IACtC,MAAMH,SAAS,GAAGR,iBAAiB,CAACK,OAAO,CAACI,GAAG,CAACN,IAAI,CAAC,IAAI,IAAIW,GAAG,CAAC,CAAC;IAClEN,SAAS,CAACO,GAAG,CAACJ,QAAQ,CAAC;IACvBX,iBAAiB,CAACK,OAAO,CAACC,GAAG,CAACH,IAAI,EAAEK,SAAS,CAAC;EAChD,CAAC,EACD,EACF,CAAC;EACD,MAAMQ,uBAAuB,GAAG,IAAAd,kBAAW,EACzC,CAACC,IAAY,EAAEQ,QAAoB,KAAK;IACtC,MAAMH,SAAS,GAAGR,iBAAiB,CAACK,OAAO,CAACI,GAAG,CAACN,IAAI,CAAC;IACrD,IAAIK,SAAS,EAAE;MACbA,SAAS,CAACD,MAAM,CAACI,QAAQ,CAAC;MAC1B,IAAIH,SAAS,CAACS,IAAI,KAAK,CAAC,EAAE;QACxBjB,iBAAiB,CAACK,OAAO,CAACE,MAAM,CAACJ,IAAI,CAAC;MACxC;IACF;EACF,CAAC,EACD,EACF,CAAC;EAED,MAAMe,KAAK,GAAG,IAAAC,cAAO,EACnB,OAAO;IACLlB,YAAY;IACZW,OAAO;IACPC,qBAAqB;IACrBG;EACF,CAAC,CAAC,EACF,CAACf,YAAY,EAAEW,OAAO,EAAEC,qBAAqB,EAAEG,uBAAuB,CACxE,CAAC;EAED,oBACE,IAAAtB,WAAA,CAAA0B,GAAA,EAAC3B,eAAA,CAAA4B,qBAAqB,CAACC,QAAQ;IAACJ,KAAK,EAAEA,KAAM;IAAAtB,QAAA,EAC1CA;EAAQ,CACqB,CAAC;AAErC","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = PortalProvider;
|
|
7
|
+
/**
|
|
8
|
+
* COPIED FROM react-native-teleport 1.2.0 — `src/views/PortalProvider/index.native.tsx`
|
|
9
|
+
* MIT, Copyright (c) 2025 Kiryl Ziusko. Full licence in `NOTICE` at the root.
|
|
10
|
+
*
|
|
11
|
+
* Changed: nothing — byte-for-byte, only its path.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
function PortalProvider({
|
|
15
|
+
children
|
|
16
|
+
}) {
|
|
17
|
+
return children;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=PortalProviderView.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["PortalProvider","children"],"sourceRoot":"../../../src","sources":["teleport/PortalProviderView.native.tsx"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;AAGe,SAASA,cAAcA,CAAC;EAAEC;AAA8B,CAAC,EAAE;EACxE,OAAOA,QAAQ;AACjB","ignoreList":[]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = Portal;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactDom = require("react-dom");
|
|
9
|
+
var _portalRegistry = require("./portal-registry.js");
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
/**
|
|
12
|
+
* COPIED FROM react-native-teleport 1.2.0 — `src/views/Portal/index.tsx`
|
|
13
|
+
* MIT, Copyright (c) 2025 Kiryl Ziusko. Full licence in `NOTICE` at the root.
|
|
14
|
+
*
|
|
15
|
+
* Changed: import paths only, for this flat directory.
|
|
16
|
+
*/
|
|
17
|
+
/// <reference lib="dom" />
|
|
18
|
+
|
|
19
|
+
const supportsMoveBefore = typeof Element !== "undefined" && "moveBefore" in Element.prototype;
|
|
20
|
+
function moveElementTo(parent, child, before = null) {
|
|
21
|
+
if (supportsMoveBefore && child.parentNode) {
|
|
22
|
+
parent.moveBefore(child, before);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (child.parentNode) {
|
|
26
|
+
child.parentNode.removeChild(child);
|
|
27
|
+
}
|
|
28
|
+
parent.insertBefore(child, before);
|
|
29
|
+
}
|
|
30
|
+
function Portal({
|
|
31
|
+
hostName,
|
|
32
|
+
children,
|
|
33
|
+
style
|
|
34
|
+
}) {
|
|
35
|
+
const {
|
|
36
|
+
getHost,
|
|
37
|
+
registerPendingPortal,
|
|
38
|
+
unregisterPendingPortal
|
|
39
|
+
} = (0, _portalRegistry.usePortalRegistryContext)();
|
|
40
|
+
const elRef = (0, _react.useRef)(null);
|
|
41
|
+
if (!elRef.current) {
|
|
42
|
+
elRef.current = document.createElement("div");
|
|
43
|
+
}
|
|
44
|
+
const sentinelRef = (0, _react.useRef)(null);
|
|
45
|
+
(0, _react.useLayoutEffect)(() => {
|
|
46
|
+
if (elRef.current && style) {
|
|
47
|
+
Object.assign(elRef.current.style, style);
|
|
48
|
+
}
|
|
49
|
+
}, [style]);
|
|
50
|
+
const teleportToHost = (0, _react.useCallback)(() => {
|
|
51
|
+
const el = elRef.current;
|
|
52
|
+
if (!el) return;
|
|
53
|
+
const hostNode = hostName ? getHost(hostName) : null;
|
|
54
|
+
if (hostNode) {
|
|
55
|
+
// teleport view to the host
|
|
56
|
+
moveElementTo(hostNode, el);
|
|
57
|
+
} else if (sentinelRef.current && sentinelRef.current.parentElement) {
|
|
58
|
+
// keep view locally
|
|
59
|
+
const parent = sentinelRef.current.parentElement;
|
|
60
|
+
moveElementTo(parent, el, sentinelRef.current);
|
|
61
|
+
}
|
|
62
|
+
}, [hostName, getHost]);
|
|
63
|
+
(0, _react.useLayoutEffect)(() => {
|
|
64
|
+
teleportToHost();
|
|
65
|
+
if (!hostName) return;
|
|
66
|
+
registerPendingPortal(hostName, teleportToHost);
|
|
67
|
+
return () => {
|
|
68
|
+
unregisterPendingPortal(hostName, teleportToHost);
|
|
69
|
+
};
|
|
70
|
+
}, [hostName, registerPendingPortal, unregisterPendingPortal, teleportToHost]);
|
|
71
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
72
|
+
children: [/*#__PURE__*/(0, _reactDom.createPortal)(children, elRef.current), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
73
|
+
ref: sentinelRef,
|
|
74
|
+
style: styles.anchor
|
|
75
|
+
})]
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
const styles = {
|
|
79
|
+
anchor: {
|
|
80
|
+
display: "contents"
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=PortalView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactDom","_portalRegistry","_jsxRuntime","supportsMoveBefore","Element","prototype","moveElementTo","parent","child","before","parentNode","moveBefore","removeChild","insertBefore","Portal","hostName","children","style","getHost","registerPendingPortal","unregisterPendingPortal","usePortalRegistryContext","elRef","useRef","current","document","createElement","sentinelRef","useLayoutEffect","Object","assign","teleportToHost","useCallback","el","hostNode","parentElement","jsxs","Fragment","createPortal","jsx","ref","styles","anchor","display"],"sourceRoot":"../../../src","sources":["teleport/PortalView.tsx"],"mappings":";;;;;;AAQA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AAA6D,IAAAG,WAAA,GAAAH,OAAA;AAV7D;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA,MAAMI,kBAAkB,GACtB,OAAOC,OAAO,KAAK,WAAW,IAAI,YAAY,IAAIA,OAAO,CAACC,SAAS;AAErE,SAASC,aAAaA,CACpBC,MAAe,EACfC,KAAc,EACdC,MAAsB,GAAG,IAAI,EAC7B;EACA,IAAIN,kBAAkB,IAAIK,KAAK,CAACE,UAAU,EAAE;IAC1CH,MAAM,CAACI,UAAU,CAACH,KAAK,EAAEC,MAAM,CAAC;IAChC;EACF;EAEA,IAAID,KAAK,CAACE,UAAU,EAAE;IACpBF,KAAK,CAACE,UAAU,CAACE,WAAW,CAACJ,KAAK,CAAC;EACrC;EAEAD,MAAM,CAACM,YAAY,CAACL,KAAK,EAAEC,MAAM,CAAC;AACpC;AAEe,SAASK,MAAMA,CAAC;EAAEC,QAAQ;EAAEC,QAAQ;EAAEC;AAAmB,CAAC,EAAE;EACzE,MAAM;IAAEC,OAAO;IAAEC,qBAAqB;IAAEC;EAAwB,CAAC,GAC/D,IAAAC,wCAAwB,EAAC,CAAC;EAC5B,MAAMC,KAAK,GAAG,IAAAC,aAAM,EAAwB,IAAI,CAAC;EACjD,IAAI,CAACD,KAAK,CAACE,OAAO,EAAE;IAClBF,KAAK,CAACE,OAAO,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;EAC/C;EAEA,MAAMC,WAAW,GAAG,IAAAJ,aAAM,EAAiB,IAAI,CAAC;EAEhD,IAAAK,sBAAe,EAAC,MAAM;IACpB,IAAIN,KAAK,CAACE,OAAO,IAAIP,KAAK,EAAE;MAC1BY,MAAM,CAACC,MAAM,CAACR,KAAK,CAACE,OAAO,CAACP,KAAK,EAAEA,KAAK,CAAC;IAC3C;EACF,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,MAAMc,cAAc,GAAG,IAAAC,kBAAW,EAAC,MAAM;IACvC,MAAMC,EAAE,GAAGX,KAAK,CAACE,OAAO;IACxB,IAAI,CAACS,EAAE,EAAE;IAET,MAAMC,QAAQ,GAAGnB,QAAQ,GAAGG,OAAO,CAACH,QAAQ,CAAC,GAAG,IAAI;IACpD,IAAImB,QAAQ,EAAE;MACZ;MACA5B,aAAa,CAAC4B,QAAQ,EAAED,EAAE,CAAC;IAC7B,CAAC,MAAM,IAAIN,WAAW,CAACH,OAAO,IAAIG,WAAW,CAACH,OAAO,CAACW,aAAa,EAAE;MACnE;MACA,MAAM5B,MAAM,GAAGoB,WAAW,CAACH,OAAO,CAACW,aAAa;MAChD7B,aAAa,CAACC,MAAM,EAAE0B,EAAE,EAAEN,WAAW,CAACH,OAAO,CAAC;IAChD;EACF,CAAC,EAAE,CAACT,QAAQ,EAAEG,OAAO,CAAC,CAAC;EAEvB,IAAAU,sBAAe,EAAC,MAAM;IACpBG,cAAc,CAAC,CAAC;IAEhB,IAAI,CAAChB,QAAQ,EAAE;IAEfI,qBAAqB,CAACJ,QAAQ,EAAEgB,cAAc,CAAC;IAC/C,OAAO,MAAM;MACXX,uBAAuB,CAACL,QAAQ,EAAEgB,cAAc,CAAC;IACnD,CAAC;EACH,CAAC,EAAE,CACDhB,QAAQ,EACRI,qBAAqB,EACrBC,uBAAuB,EACvBW,cAAc,CACf,CAAC;EAEF,oBACE,IAAA7B,WAAA,CAAAkC,IAAA,EAAAlC,WAAA,CAAAmC,QAAA;IAAArB,QAAA,gBACG,IAAAsB,sBAAY,EAACtB,QAAQ,EAAEM,KAAK,CAACE,OAAO,CAAC,eAEtC,IAAAtB,WAAA,CAAAqC,GAAA;MAAKC,GAAG,EAAEb,WAAY;MAACV,KAAK,EAAEwB,MAAM,CAACC;IAAO,CAAE,CAAC;EAAA,CAC/C,CAAC;AAEP;AAEA,MAAMD,MAAM,GAAG;EACbC,MAAM,EAAE;IACNC,OAAO,EAAE;EACX;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "default", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _PortalViewNativeComponent.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _PortalViewNativeComponent = _interopRequireDefault(require("./specs/PortalViewNativeComponent.js"));
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
//# sourceMappingURL=PortalView.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_PortalViewNativeComponent","_interopRequireDefault","require","e","__esModule","default"],"sourceRoot":"../../../src","sources":["teleport/PortalView.native.tsx"],"mappings":";;;;;;;;;;;AAMA,IAAAA,0BAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA4D,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "Portal", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _Portal.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "PortalHost", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _PortalHost.default;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "PortalProvider", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _PortalProvider.default;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "usePortal", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _usePortal.default;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
var _PortalHost = _interopRequireDefault(require("./PortalHost.js"));
|
|
31
|
+
var _Portal = _interopRequireDefault(require("./Portal.js"));
|
|
32
|
+
var _PortalProvider = _interopRequireDefault(require("./PortalProvider.js"));
|
|
33
|
+
var _usePortal = _interopRequireDefault(require("./use-portal.js"));
|
|
34
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_PortalHost","_interopRequireDefault","require","_Portal","_PortalProvider","_usePortal","e","__esModule","default"],"sourceRoot":"../../../src","sources":["teleport/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,eAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,UAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAAoD,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|