@userflow-tech/react-native 0.5.0 → 0.6.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/README.md +24 -0
- package/docs/custom-fonts.md +36 -0
- package/docs/troubleshooting.md +7 -6
- package/lib/commonjs/anchors/fiber/FiberScanRootStore.js +8 -0
- package/lib/commonjs/anchors/fiber/FiberScanRootStore.js.map +1 -1
- package/lib/commonjs/anchors/fiber/detectAppFontFamily.js +341 -0
- package/lib/commonjs/anchors/fiber/detectAppFontFamily.js.map +1 -0
- package/lib/commonjs/anchors/fiber/visibleScreens.js +6 -0
- package/lib/commonjs/anchors/fiber/visibleScreens.js.map +1 -1
- package/lib/commonjs/content/BannerStepButton.js +2 -1
- package/lib/commonjs/content/BannerStepButton.js.map +1 -1
- package/lib/commonjs/content/RichContentRenderer.js +17 -11
- package/lib/commonjs/content/RichContentRenderer.js.map +1 -1
- package/lib/commonjs/content/StepButton.js +2 -1
- package/lib/commonjs/content/StepButton.js.map +1 -1
- package/lib/commonjs/content/resolveContentFontFamily.js +96 -0
- package/lib/commonjs/content/resolveContentFontFamily.js.map +1 -0
- package/lib/commonjs/index.js +2 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/runtime/BannerHost.js +3 -3
- package/lib/commonjs/runtime/BannerHost.js.map +1 -1
- package/lib/commonjs/runtime/pushBannerLayoutContext.js +11 -8
- package/lib/commonjs/runtime/pushBannerLayoutContext.js.map +1 -1
- package/lib/commonjs/surfaces/BannerSurface.js +2 -6
- package/lib/commonjs/surfaces/BannerSurface.js.map +1 -1
- package/lib/commonjs/surfaces/ProgressBar.js +2 -1
- package/lib/commonjs/surfaces/ProgressBar.js.map +1 -1
- package/lib/commonjs/surfaces/TooltipSurface.js +5 -0
- package/lib/commonjs/surfaces/TooltipSurface.js.map +1 -1
- package/lib/commonjs/surfaces/bannerWebView/BannerWebViewBar.js +6 -4
- package/lib/commonjs/surfaces/bannerWebView/BannerWebViewBar.js.map +1 -1
- package/lib/commonjs/surfaces/bannerWebView/bannerNeedsWebView.js +3 -33
- package/lib/commonjs/surfaces/bannerWebView/bannerNeedsWebView.js.map +1 -1
- package/lib/commonjs/surfaces/bannerWebView/bannerThemeStyles.js +2 -1
- package/lib/commonjs/surfaces/bannerWebView/bannerThemeStyles.js.map +1 -1
- package/lib/commonjs/surfaces/bannerWebView/bannerWebViewHeight.js +33 -0
- package/lib/commonjs/surfaces/bannerWebView/bannerWebViewHeight.js.map +1 -0
- package/lib/commonjs/surfaces/bannerWebView/buildCustomBannerHtml.js +45 -12
- package/lib/commonjs/surfaces/bannerWebView/buildCustomBannerHtml.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/module/anchors/fiber/FiberScanRootStore.js +8 -0
- package/lib/module/anchors/fiber/FiberScanRootStore.js.map +1 -1
- package/lib/module/anchors/fiber/detectAppFontFamily.js +330 -0
- package/lib/module/anchors/fiber/detectAppFontFamily.js.map +1 -0
- package/lib/module/anchors/fiber/visibleScreens.js +5 -0
- package/lib/module/anchors/fiber/visibleScreens.js.map +1 -1
- package/lib/module/content/BannerStepButton.js +2 -1
- package/lib/module/content/BannerStepButton.js.map +1 -1
- package/lib/module/content/RichContentRenderer.js +17 -11
- package/lib/module/content/RichContentRenderer.js.map +1 -1
- package/lib/module/content/StepButton.js +2 -1
- package/lib/module/content/StepButton.js.map +1 -1
- package/lib/module/content/resolveContentFontFamily.js +89 -0
- package/lib/module/content/resolveContentFontFamily.js.map +1 -0
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/runtime/BannerHost.js +3 -3
- package/lib/module/runtime/BannerHost.js.map +1 -1
- package/lib/module/runtime/pushBannerLayoutContext.js +11 -8
- package/lib/module/runtime/pushBannerLayoutContext.js.map +1 -1
- package/lib/module/surfaces/BannerSurface.js +2 -6
- package/lib/module/surfaces/BannerSurface.js.map +1 -1
- package/lib/module/surfaces/ProgressBar.js +2 -1
- package/lib/module/surfaces/ProgressBar.js.map +1 -1
- package/lib/module/surfaces/TooltipSurface.js +5 -0
- package/lib/module/surfaces/TooltipSurface.js.map +1 -1
- package/lib/module/surfaces/bannerWebView/BannerWebViewBar.js +6 -4
- package/lib/module/surfaces/bannerWebView/BannerWebViewBar.js.map +1 -1
- package/lib/module/surfaces/bannerWebView/bannerNeedsWebView.js +3 -31
- package/lib/module/surfaces/bannerWebView/bannerNeedsWebView.js.map +1 -1
- package/lib/module/surfaces/bannerWebView/bannerThemeStyles.js +2 -1
- package/lib/module/surfaces/bannerWebView/bannerThemeStyles.js.map +1 -1
- package/lib/module/surfaces/bannerWebView/bannerWebViewHeight.js +29 -0
- package/lib/module/surfaces/bannerWebView/bannerWebViewHeight.js.map +1 -0
- package/lib/module/surfaces/bannerWebView/buildCustomBannerHtml.js +45 -12
- package/lib/module/surfaces/bannerWebView/buildCustomBannerHtml.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/typescript/commonjs/src/anchors/fiber/FiberScanRootStore.d.ts +5 -0
- package/lib/typescript/commonjs/src/anchors/fiber/FiberScanRootStore.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/fiber/detectAppFontFamily.d.ts +30 -0
- package/lib/typescript/commonjs/src/anchors/fiber/detectAppFontFamily.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/anchors/fiber/visibleScreens.d.ts +2 -0
- package/lib/typescript/commonjs/src/anchors/fiber/visibleScreens.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/content/BannerStepButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/content/RichContentRenderer.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/content/StepButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/content/resolveContentFontFamily.d.ts +35 -0
- package/lib/typescript/commonjs/src/content/resolveContentFontFamily.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/pushBannerLayoutContext.d.ts +5 -0
- package/lib/typescript/commonjs/src/runtime/pushBannerLayoutContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/BannerSurface.d.ts +1 -4
- package/lib/typescript/commonjs/src/surfaces/BannerSurface.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/ProgressBar.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/TooltipSurface.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/bannerWebView/BannerWebViewBar.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerNeedsWebView.d.ts +3 -12
- package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerNeedsWebView.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerThemeStyles.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerWebViewHeight.d.ts +13 -0
- package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerWebViewHeight.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/surfaces/bannerWebView/buildCustomBannerHtml.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/version.d.ts +1 -1
- package/lib/typescript/module/src/anchors/fiber/FiberScanRootStore.d.ts +5 -0
- package/lib/typescript/module/src/anchors/fiber/FiberScanRootStore.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/fiber/detectAppFontFamily.d.ts +30 -0
- package/lib/typescript/module/src/anchors/fiber/detectAppFontFamily.d.ts.map +1 -0
- package/lib/typescript/module/src/anchors/fiber/visibleScreens.d.ts +2 -0
- package/lib/typescript/module/src/anchors/fiber/visibleScreens.d.ts.map +1 -1
- package/lib/typescript/module/src/content/BannerStepButton.d.ts.map +1 -1
- package/lib/typescript/module/src/content/RichContentRenderer.d.ts.map +1 -1
- package/lib/typescript/module/src/content/StepButton.d.ts.map +1 -1
- package/lib/typescript/module/src/content/resolveContentFontFamily.d.ts +35 -0
- package/lib/typescript/module/src/content/resolveContentFontFamily.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/pushBannerLayoutContext.d.ts +5 -0
- package/lib/typescript/module/src/runtime/pushBannerLayoutContext.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/BannerSurface.d.ts +1 -4
- package/lib/typescript/module/src/surfaces/BannerSurface.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/ProgressBar.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/TooltipSurface.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/bannerWebView/BannerWebViewBar.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/bannerWebView/bannerNeedsWebView.d.ts +3 -12
- package/lib/typescript/module/src/surfaces/bannerWebView/bannerNeedsWebView.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/bannerWebView/bannerThemeStyles.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/bannerWebView/bannerWebViewHeight.d.ts +13 -0
- package/lib/typescript/module/src/surfaces/bannerWebView/bannerWebViewHeight.d.ts.map +1 -0
- package/lib/typescript/module/src/surfaces/bannerWebView/buildCustomBannerHtml.d.ts.map +1 -1
- package/lib/typescript/module/src/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/anchors/fiber/FiberScanRootStore.ts +8 -0
- package/src/anchors/fiber/detectAppFontFamily.ts +400 -0
- package/src/anchors/fiber/visibleScreens.ts +5 -0
- package/src/content/BannerStepButton.tsx +2 -1
- package/src/content/RichContentRenderer.tsx +15 -10
- package/src/content/StepButton.tsx +2 -1
- package/src/content/resolveContentFontFamily.ts +119 -0
- package/src/index.ts +2 -0
- package/src/runtime/BannerHost.tsx +3 -3
- package/src/runtime/pushBannerLayoutContext.tsx +14 -9
- package/src/surfaces/BannerSurface.tsx +2 -6
- package/src/surfaces/ProgressBar.tsx +2 -1
- package/src/surfaces/TooltipSurface.tsx +15 -2
- package/src/surfaces/bannerWebView/BannerWebViewBar.tsx +6 -4
- package/src/surfaces/bannerWebView/bannerNeedsWebView.ts +4 -36
- package/src/surfaces/bannerWebView/bannerThemeStyles.ts +2 -1
- package/src/surfaces/bannerWebView/bannerWebViewHeight.ts +32 -0
- package/src/surfaces/bannerWebView/buildCustomBannerHtml.ts +48 -12
- package/src/version.ts +1 -1
- package/vendor/core/package.json +1 -1
- package/vendor/protocol/dist/flows.d.ts +2 -0
- package/vendor/protocol/dist/flows.d.ts.map +1 -1
- package/vendor/protocol/package.json +1 -1
|
@@ -92,6 +92,11 @@ export function usePushBannerLayoutRegistration(
|
|
|
92
92
|
* Clears the host top/bottom safe-area override only after push-layout chrome
|
|
93
93
|
* has laid out, so a session without visible chrome cannot leave a white strip.
|
|
94
94
|
*
|
|
95
|
+
* Remembers which edge laid out instead of resetting a flag in an effect: on
|
|
96
|
+
* Fabric the chrome's first onLayout can run before the mount's passive effects
|
|
97
|
+
* flush, and a reset there would discard it until the banner happened to
|
|
98
|
+
* re-layout, leaving already-mounted host screens on the old inset.
|
|
99
|
+
*
|
|
95
100
|
* @internal
|
|
96
101
|
*/
|
|
97
102
|
export function usePushBannerHostInsetRegistration(
|
|
@@ -99,23 +104,23 @@ export function usePushBannerHostInsetRegistration(
|
|
|
99
104
|
sessionId: string,
|
|
100
105
|
enabled: boolean,
|
|
101
106
|
): (event: LayoutChangeEvent) => void {
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
React.useEffect(() => {
|
|
105
|
-
setLaidOut(false);
|
|
106
|
-
}, [edge, enabled]);
|
|
107
|
+
const activeEdge = enabled && edge ? edge : null;
|
|
108
|
+
const [laidOutEdge, setLaidOutEdge] = React.useState<PushBannerLayoutEdge | null>(null);
|
|
107
109
|
|
|
108
|
-
usePushBannerLayoutRegistration(
|
|
110
|
+
usePushBannerLayoutRegistration(
|
|
111
|
+
activeEdge && laidOutEdge === activeEdge ? activeEdge : null,
|
|
112
|
+
sessionId,
|
|
113
|
+
);
|
|
109
114
|
|
|
110
115
|
return React.useCallback(
|
|
111
116
|
(event: LayoutChangeEvent) => {
|
|
112
|
-
if (!
|
|
117
|
+
if (!activeEdge) {
|
|
113
118
|
return;
|
|
114
119
|
}
|
|
115
120
|
if (event.nativeEvent.layout.height > 0) {
|
|
116
|
-
|
|
121
|
+
setLaidOutEdge(activeEdge);
|
|
117
122
|
}
|
|
118
123
|
},
|
|
119
|
-
[
|
|
124
|
+
[activeEdge],
|
|
120
125
|
);
|
|
121
126
|
}
|
|
@@ -25,10 +25,7 @@ export interface BannerSurfaceProps {
|
|
|
25
25
|
|
|
26
26
|
let warnedMissingWebView = false;
|
|
27
27
|
|
|
28
|
-
/**
|
|
29
|
-
* Native banner bar, or a WebView when a button runs Evaluate JavaScript or the
|
|
30
|
-
* theme has published custom CSS (same CDN stylesheet as userflow.js iframes).
|
|
31
|
-
*/
|
|
28
|
+
/** Native banner bar, or a WebView when `customBannerEnabled` is set on the banner. */
|
|
32
29
|
export function BannerSurface({
|
|
33
30
|
session,
|
|
34
31
|
pushLayoutEdge = null,
|
|
@@ -37,8 +34,7 @@ export function BannerSurface({
|
|
|
37
34
|
onDismiss,
|
|
38
35
|
}: BannerSurfaceProps): React.ReactElement | null {
|
|
39
36
|
const banner = session.version.banner;
|
|
40
|
-
const
|
|
41
|
-
const needsWebView = banner != null && bannerNeedsWebView(banner, theme);
|
|
37
|
+
const needsWebView = banner != null && bannerNeedsWebView(banner);
|
|
42
38
|
const webView = needsWebView ? getEvalJsWebView() : null;
|
|
43
39
|
|
|
44
40
|
React.useEffect(() => {
|
|
@@ -2,6 +2,7 @@ import type { ThemeFragment } from '@userflow-tech/protocol';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { StyleSheet, Text, View } from 'react-native';
|
|
4
4
|
|
|
5
|
+
import { resolveContentFontFamily } from '../content/resolveContentFontFamily';
|
|
5
6
|
import { foregroundAlpha } from '../content/themeColor';
|
|
6
7
|
|
|
7
8
|
export type ProgressBarPlacement = 'TOP' | 'BOTTOM';
|
|
@@ -72,7 +73,7 @@ export function ProgressBar({
|
|
|
72
73
|
styles.numberedLabel,
|
|
73
74
|
{
|
|
74
75
|
color: foregroundAlpha(theme.fontColor, 0.55),
|
|
75
|
-
fontFamily: theme
|
|
76
|
+
fontFamily: resolveContentFontFamily(theme),
|
|
76
77
|
fontSize: Math.max(12, Math.round(theme.fontSize * 0.875)),
|
|
77
78
|
},
|
|
78
79
|
]}
|
|
@@ -37,6 +37,7 @@ import { scrollAnchorIntoView } from '../anchors/scrollAnchorIntoView';
|
|
|
37
37
|
import { getScrollPadding } from '../anchors/scrollConfig';
|
|
38
38
|
import { targetPressMonitor } from '../anchors/targetPressMonitor';
|
|
39
39
|
import { RichContentRenderer } from '../content/RichContentRenderer';
|
|
40
|
+
import { resolveContentFontFamily } from '../content/resolveContentFontFamily';
|
|
40
41
|
import type { LookupAttribute } from '../content/types';
|
|
41
42
|
|
|
42
43
|
import { CardFade } from './CardFade';
|
|
@@ -156,6 +157,7 @@ export function TooltipSurface({
|
|
|
156
157
|
}: TooltipSurfaceProps): React.ReactElement | null {
|
|
157
158
|
const version = session.version;
|
|
158
159
|
const chrome = resolveBubbleChrome(theme, 'tooltip');
|
|
160
|
+
const contentFontFamily = resolveContentFontFamily(theme);
|
|
159
161
|
const progress = resolveStepProgress(version, currentStep.id);
|
|
160
162
|
const showClose = !version.closeDisabled;
|
|
161
163
|
const backdropOpacity = parseBackdropOpacity(theme.backdropOpacity);
|
|
@@ -915,6 +917,7 @@ export function TooltipSurface({
|
|
|
915
917
|
<Text
|
|
916
918
|
style={{
|
|
917
919
|
color: theme.fontColor,
|
|
920
|
+
fontFamily: contentFontFamily,
|
|
918
921
|
fontSize: theme.fontSize,
|
|
919
922
|
marginTop: 12,
|
|
920
923
|
textAlign: 'center',
|
|
@@ -962,11 +965,21 @@ export function TooltipSurface({
|
|
|
962
965
|
{showMissingUi ? (
|
|
963
966
|
<View testID="userflow-tooltip-missing">
|
|
964
967
|
<Text
|
|
965
|
-
style={[
|
|
968
|
+
style={[
|
|
969
|
+
styles.missingTitle,
|
|
970
|
+
{ color: theme.fontColor, fontFamily: contentFontFamily, fontSize: theme.fontSize },
|
|
971
|
+
]}
|
|
966
972
|
>
|
|
967
973
|
Target not found
|
|
968
974
|
</Text>
|
|
969
|
-
<Text
|
|
975
|
+
<Text
|
|
976
|
+
style={{
|
|
977
|
+
color: theme.fontColor,
|
|
978
|
+
fontFamily: contentFontFamily,
|
|
979
|
+
fontSize: theme.fontSize,
|
|
980
|
+
opacity: 0.8,
|
|
981
|
+
}}
|
|
982
|
+
>
|
|
970
983
|
This step's anchor is missing. Close to continue, or wait if the screen is still
|
|
971
984
|
loading.
|
|
972
985
|
</Text>
|
|
@@ -34,7 +34,6 @@ import {
|
|
|
34
34
|
resolveBannerBarBorderRadius,
|
|
35
35
|
} from '../bannerBarLayout';
|
|
36
36
|
import { bannerOverlayShadowStyle } from '../bannerBarTokens';
|
|
37
|
-
import { resolveBannerBackgroundColor } from '../resolveBannerTheme';
|
|
38
37
|
import { useUserflowSafeAreaInsets } from '../safeArea';
|
|
39
38
|
|
|
40
39
|
import { collectBannerAutoRunEvalCodes } from './bannerAutoRunEvalJs';
|
|
@@ -311,15 +310,18 @@ export function BannerWebViewBar({
|
|
|
311
310
|
const frameStyle = bannerFrameStyle(banner);
|
|
312
311
|
const overlayEdge = banner.embedMode === BannerEmbedMode.BODY_LAST ? 'bottom' : 'top';
|
|
313
312
|
const barRadius = resolveBannerBarBorderRadius(banner);
|
|
314
|
-
|
|
313
|
+
// Custom CSS paints the card, often with its own radius. The theme color
|
|
314
|
+
// (brand blue when banner tokens are unset) would otherwise fill the
|
|
315
|
+
// status-bar pad and the corners outside that radius.
|
|
316
|
+
const shellBackground = 'transparent';
|
|
315
317
|
const webStyle: ViewStyle = {
|
|
316
318
|
width: '100%',
|
|
317
319
|
height: contentHeight,
|
|
318
|
-
backgroundColor,
|
|
320
|
+
backgroundColor: shellBackground,
|
|
319
321
|
};
|
|
320
322
|
const debugging = typeof __DEV__ !== 'undefined' && __DEV__ ? true : undefined;
|
|
321
323
|
const insetChrome = safeAreaEdge
|
|
322
|
-
? bannerPushLayoutChrome(safeAreaEdge, insets,
|
|
324
|
+
? bannerPushLayoutChrome(safeAreaEdge, insets, shellBackground)
|
|
323
325
|
: null;
|
|
324
326
|
const insetChromeOutsideFade = insetChrome != null && fadeIn;
|
|
325
327
|
|
|
@@ -1,38 +1,6 @@
|
|
|
1
|
-
import type { BannerFragment
|
|
2
|
-
import { FlowActionType } from '@userflow-tech/protocol';
|
|
1
|
+
import type { BannerFragment } from '@userflow-tech/protocol';
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
/** POC / local testing when the builder flag is not on the wire yet. */
|
|
9
|
-
export function setDebugForceWebViewBanner(enabled: boolean): void {
|
|
10
|
-
debugForceWebViewBanner = enabled;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
/** @internal */
|
|
14
|
-
export function resetDebugForceWebViewBannerForTests(): void {
|
|
15
|
-
debugForceWebViewBanner = false;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function bannerHasEvalJsAction(banner: BannerFragment): boolean {
|
|
19
|
-
return banner.buttons.some((button) =>
|
|
20
|
-
button.actions.some((action) => action.type === FlowActionType.EVAL_JS),
|
|
21
|
-
);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Use the WebView banner renderer when any button runs Evaluate JavaScript
|
|
26
|
-
* (needs the shared eval page), when the theme has published custom CSS
|
|
27
|
-
* (`.userflow-custom-container-*` / `.userflow-custom-button-*` via CDN),
|
|
28
|
-
* or when {@link setDebugForceWebViewBanner} is true.
|
|
29
|
-
*/
|
|
30
|
-
export function bannerNeedsWebView(banner: BannerFragment, theme?: ThemeFragment | null): boolean {
|
|
31
|
-
if (debugForceWebViewBanner) {
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
34
|
-
if (theme != null && themeHasPublishedCustomCss(theme)) {
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
return bannerHasEvalJsAction(banner);
|
|
3
|
+
/** Use the WebView banner renderer when the builder enabled custom banners. */
|
|
4
|
+
export function bannerNeedsWebView(banner: BannerFragment): boolean {
|
|
5
|
+
return banner.customBannerEnabled === true;
|
|
38
6
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ThemeFragment } from '@userflow-tech/protocol';
|
|
2
2
|
|
|
3
|
+
import { contentFontFamilyCss } from '../../content/resolveContentFontFamily';
|
|
3
4
|
import { resolveBannerBackgroundColor, resolveBannerForegroundColor } from '../resolveBannerTheme';
|
|
4
5
|
|
|
5
6
|
function readString(theme: ThemeFragment, key: string, fallback: string): string {
|
|
@@ -68,7 +69,7 @@ export function bannerThemeInlineStyles(theme: ThemeFragment): Record<string, st
|
|
|
68
69
|
'bannerActiveForegroundColor',
|
|
69
70
|
bannerFg,
|
|
70
71
|
),
|
|
71
|
-
'--userflow-font-family':
|
|
72
|
+
'--userflow-font-family': contentFontFamilyCss(theme),
|
|
72
73
|
'--userflow-font-size': `${fontSize}px`,
|
|
73
74
|
'--userflow-line-height': `${lineHeight}px`,
|
|
74
75
|
'--userflow-button-height': readCssLength(theme, 'buttonHeight', 32),
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Height the native WebView should use for a custom banner.
|
|
3
|
+
*
|
|
4
|
+
* Custom CSS often sizes the card with `min-height` and takes the copy and
|
|
5
|
+
* buttons out of flow (`position: absolute`). The WebView is created shorter
|
|
6
|
+
* than that card, so a root that only looks as tall as the viewport because of
|
|
7
|
+
* `min-height` must not be replaced with the close button's box.
|
|
8
|
+
*
|
|
9
|
+
* When the root really is stretching to fill a taller viewport (`height: 100%`),
|
|
10
|
+
* fall back to in-flow content, and never below `min-height`.
|
|
11
|
+
*/
|
|
12
|
+
export function resolveBannerWebViewHeight(
|
|
13
|
+
rectHeight: number,
|
|
14
|
+
scrollHeight: number,
|
|
15
|
+
viewportHeight: number,
|
|
16
|
+
minHeight: number,
|
|
17
|
+
contentHeight: number,
|
|
18
|
+
): number {
|
|
19
|
+
const rect = rectHeight > 0 ? rectHeight : 0;
|
|
20
|
+
const scroll = scrollHeight > 0 ? scrollHeight : 0;
|
|
21
|
+
let height = Math.ceil(Math.max(rect, scroll));
|
|
22
|
+
const floor = minHeight > 0 ? Math.ceil(minHeight) : 0;
|
|
23
|
+
if (viewportHeight > 0 && height >= viewportHeight - 2 && height > floor + 1) {
|
|
24
|
+
if (contentHeight > 0 && contentHeight < height) {
|
|
25
|
+
height = Math.ceil(contentHeight > floor ? contentHeight : floor);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if (floor > height) {
|
|
29
|
+
height = floor;
|
|
30
|
+
}
|
|
31
|
+
return height;
|
|
32
|
+
}
|
|
@@ -2,6 +2,10 @@ import { interpolateVariables } from '@userflow-tech/core';
|
|
|
2
2
|
import type { BannerFragment, BannerSessionFragment } from '@userflow-tech/protocol';
|
|
3
3
|
import { BannerContentLayout } from '@userflow-tech/protocol';
|
|
4
4
|
|
|
5
|
+
import {
|
|
6
|
+
bannerContentFontLockCss,
|
|
7
|
+
contentFontFaceCss,
|
|
8
|
+
} from '../../content/resolveContentFontFamily';
|
|
5
9
|
import { buildBootstrapHtml, wrapCode } from '../../evalJs/bootstrap';
|
|
6
10
|
import type { EvalJsContext } from '../../evalJs/types';
|
|
7
11
|
|
|
@@ -27,26 +31,45 @@ function contentLayoutClass(layout: BannerContentLayout): string {
|
|
|
27
31
|
}
|
|
28
32
|
|
|
29
33
|
function layoutMeasureScript(): string {
|
|
34
|
+
// Inlined on purpose. Hermes' Function#toString is not the source text, so
|
|
35
|
+
// interpolating resolveBannerWebViewHeight.toString() ships a dead function.
|
|
36
|
+
// Keep this body in sync with resolveBannerWebViewHeight.
|
|
30
37
|
return `
|
|
31
38
|
(function(){
|
|
39
|
+
function resolveBannerWebViewHeight(rectHeight,scrollHeight,viewportHeight,minHeight,contentHeight){
|
|
40
|
+
var rect=rectHeight>0?rectHeight:0;
|
|
41
|
+
var scroll=scrollHeight>0?scrollHeight:0;
|
|
42
|
+
var height=Math.ceil(Math.max(rect,scroll));
|
|
43
|
+
var floor=minHeight>0?Math.ceil(minHeight):0;
|
|
44
|
+
if(viewportHeight>0&&height>=viewportHeight-2&&height>floor+1){
|
|
45
|
+
if(contentHeight>0&&contentHeight<height){
|
|
46
|
+
height=Math.ceil(contentHeight>floor?contentHeight:floor);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if(floor>height) height=floor;
|
|
50
|
+
return height;
|
|
51
|
+
}
|
|
32
52
|
function postLayout(){
|
|
33
53
|
var root=document.querySelector('.userflowjs-banner-root');
|
|
34
54
|
if(!root||!window.ReactNativeWebView||!window.ReactNativeWebView.postMessage)return;
|
|
35
55
|
var rectH=root.getBoundingClientRect().height;
|
|
36
56
|
var scrollH=root.scrollHeight;
|
|
37
|
-
var
|
|
57
|
+
var minH=parseFloat(window.getComputedStyle(root).minHeight);
|
|
58
|
+
if(!(minH>0)) minH=0;
|
|
38
59
|
var vh=window.innerHeight||0;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
60
|
+
var inFlow=0;
|
|
61
|
+
var all=0;
|
|
62
|
+
for(var i=0;i<root.childNodes.length;i++){
|
|
63
|
+
var node=root.childNodes[i];
|
|
64
|
+
if(!node||node.nodeType!==1) continue;
|
|
65
|
+
var box=node.scrollHeight||node.offsetHeight||0;
|
|
66
|
+
all+=box;
|
|
67
|
+
var cs=window.getComputedStyle(node);
|
|
68
|
+
if(cs.display==='none'||cs.position==='absolute'||cs.position==='fixed') continue;
|
|
69
|
+
inFlow+=box;
|
|
49
70
|
}
|
|
71
|
+
var content=inFlow>0?inFlow:all;
|
|
72
|
+
var h=resolveBannerWebViewHeight(rectH,scrollH,vh,minH,content);
|
|
50
73
|
window.ReactNativeWebView.postMessage(JSON.stringify({__userflow:1,type:'bannerLayout',height:h}));
|
|
51
74
|
}
|
|
52
75
|
window.__userflowBannerLayout=postLayout;
|
|
@@ -54,8 +77,18 @@ function layoutMeasureScript(): string {
|
|
|
54
77
|
var root=document.querySelector('.userflowjs-banner-root');
|
|
55
78
|
if(root){new ResizeObserver(postLayout).observe(root);}
|
|
56
79
|
}
|
|
80
|
+
var links=document.querySelectorAll('link[rel="stylesheet"]');
|
|
81
|
+
for(var s=0;s<links.length;s++){
|
|
82
|
+
links[s].addEventListener('load',postLayout);
|
|
83
|
+
links[s].addEventListener('error',postLayout);
|
|
84
|
+
}
|
|
57
85
|
window.addEventListener('load',postLayout);
|
|
86
|
+
// Custom CSS is often still applying on the first pass. A short WebView
|
|
87
|
+
// then clamps used height, so min-height never changes the box and
|
|
88
|
+
// ResizeObserver does not fire. Measure again after the stylesheet can apply.
|
|
58
89
|
setTimeout(postLayout,0);
|
|
90
|
+
setTimeout(postLayout,60);
|
|
91
|
+
setTimeout(postLayout,250);
|
|
59
92
|
})();
|
|
60
93
|
`;
|
|
61
94
|
}
|
|
@@ -171,6 +204,8 @@ export function buildCustomBannerBodyHtml(
|
|
|
171
204
|
const theme = session.version.theme;
|
|
172
205
|
const layoutClass = contentLayoutClass(banner.contentLayout);
|
|
173
206
|
const themeStyle = bannerThemeStyleAttribute(theme);
|
|
207
|
+
const fontFaceCss = contentFontFaceCss(theme);
|
|
208
|
+
const fontLockCss = bannerContentFontLockCss(theme);
|
|
174
209
|
const customCssUrl = resolveCustomStylesheetUrl(serverEndpoint, theme);
|
|
175
210
|
const innerMaxWidth = resolveBannerInnerMaxWidth(banner);
|
|
176
211
|
const maxInner =
|
|
@@ -200,8 +235,9 @@ export function buildCustomBannerBodyHtml(
|
|
|
200
235
|
: '';
|
|
201
236
|
|
|
202
237
|
return `
|
|
203
|
-
<style>${BANNER_WEB_FRAME_CSS}</style>
|
|
238
|
+
<style>${fontFaceCss}${BANNER_WEB_FRAME_CSS}</style>
|
|
204
239
|
${customLink}
|
|
240
|
+
<style>${fontLockCss}</style>
|
|
205
241
|
<div class="userflowjs-banner-root userflowjs-theme-root ${layoutClass}" style="${themeStyle}">
|
|
206
242
|
<div class="userflowjs-banner-start-spacer"></div>
|
|
207
243
|
<div class="userflowjs-banner-inner"${maxInner}>
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** Generated by scripts/write-version.mjs — do not edit. */
|
|
2
|
-
export const SDK_VERSION = '0.
|
|
2
|
+
export const SDK_VERSION = '0.6.0';
|
package/vendor/core/package.json
CHANGED
|
@@ -322,6 +322,8 @@ export interface BannerFragment {
|
|
|
322
322
|
marginRight: number | null;
|
|
323
323
|
marginBottom: number | null;
|
|
324
324
|
marginLeft: number | null;
|
|
325
|
+
/** When true, render the banner in a WebView (custom banner). Omitted when off. */
|
|
326
|
+
customBannerEnabled?: boolean;
|
|
325
327
|
}
|
|
326
328
|
export interface FlowButtonFragment {
|
|
327
329
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flows.d.ts","sourceRoot":"","sources":["../src/flows.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"flows.d.ts","sourceRoot":"","sources":["../src/flows.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,2FAA2F;AAC3F,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,6FAA6F;AAC7F,oBAAY,eAAe;IACzB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;CAChC;AAED,oEAAoE;AACpE,oBAAY,mBAAmB;IAC7B,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,aAAa,kBAAkB;CAChC;AAED,oBAAY,QAAQ;IAClB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,eAAe,oBAAoB;IACnC,IAAI,SAAS;CACd;AAED,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED,oBAAY,gBAAgB;IAC1B,KAAK,UAAU;IACf,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,oBAAY,sBAAsB;IAChC,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,oBAAY,cAAc;IACxB,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,aAAa,kBAAkB;IAC/B,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,kBAAkB,uBAAuB;CAC1C;AAED,oBAAY,wBAAwB;IAClC,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAED,oBAAY,4BAA4B;IACtC,GAAG,QAAQ;IACX,YAAY,iBAAiB;IAC7B,iBAAiB,sBAAsB;IACvC,QAAQ,aAAa;IACrB,GAAG,QAAQ;IACX,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,GAAG,QAAQ;CACZ;AAED,oBAAY,gBAAgB;IAC1B,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,oBAAY,uBAAuB;IACjC,KAAK,UAAU;CAChB;AAED;;;;;;;GAOG;AACH,oBAAY,iBAAiB;IAC3B,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,sBAAsB,2BAA2B;IACjD,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,eAAe,oBAAoB;IACnC,IAAI,SAAS;IACb,WAAW,gBAAgB;IAC3B,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,iEAAiE;AACjE,oBAAY,qBAAqB;IAC/B,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;IAC3B,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,EAAE,OAAO;IACT,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,KAAK,UAAU;IACf,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,EAAE,OAAO;IACT,KAAK,UAAU;IACf,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;IAC3B,IAAI,SAAS;IACb,GAAG,QAAQ;CACZ;AAED,8DAA8D;AAC9D,oBAAY,yBAAyB;IACnC,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,OAAO,YAAY;CACpB;AAED,oBAAY,gBAAgB;IAC1B,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IACnC,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,oBAAoB,yBAAyB;IAC7C,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,sBAAsB,2BAA2B;IACjD,UAAU,eAAe;IACzB,WAAW,gBAAgB;CAC5B;AAED,oBAAY,oBAAoB;IAC9B,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,aAAa,kBAAkB;IAC/B,eAAe,oBAAoB;IACnC,UAAU,eAAe;IACzB,SAAS,cAAc;CACxB;AAED,oBAAY,oBAAoB;IAC9B,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,oBAAY,eAAe;IACzB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IACnC,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAED,oBAAY,mBAAmB;IAC7B,GAAG,QAAQ;IACX,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;IACtB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,eAAe,CAAC;IACjC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,8BAA8B,EAAE,OAAO,CAAC;IACxC,4BAA4B,EAAE,MAAM,CAAC;IACrC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC1C,WAAW,EAAE,uBAAuB,GAAG,IAAI,CAAC;CAC7C;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACtC,YAAY,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAC/C,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACrC,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,cAAc,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAChD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,kBAAkB,EAAE,4BAA4B,GAAG,IAAI,CAAC;IACxD,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACjC,WAAW,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACzD,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACxC,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,SAAS,EAAE,eAAe,CAAC;IAC3B,aAAa,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,mBAAmB,CAAC;IACnC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,mFAAmF;IACnF,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACtC,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACtC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,QAAQ,EAAE,OAAO,CAAC;IAClB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,SAAS,EAAE,oBAAoB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,aAAa,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B;;OAEG;IACH,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B;;;OAGG;IACH,eAAe,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,mBAAmB,EAAE,CAAC;IAC5B,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,WAAW,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,cAAc,EAAE,MAAM,CAAC;KACxB,GAAG,IAAI,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,mBAAmB,EAAE,CAAC;IAC5B,MAAM,EAAE,cAAc,CAAC;CACxB"}
|