@cuemath/leap 3.2.11-mb → 3.2.11
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/assets/lottie/lottie.js +1 -1
- package/dist/assets/lottie/lottie.js.map +1 -1
- package/dist/features/auth/account-selector/account-selector.js +26 -25
- package/dist/features/auth/account-selector/account-selector.js.map +1 -1
- package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js +15 -14
- package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js.map +1 -1
- package/dist/features/auth/comps/user-list/user-item/user-item.js +30 -31
- package/dist/features/auth/comps/user-list/user-item/user-item.js.map +1 -1
- package/dist/features/auth/comps/user-list/user-list.js +35 -34
- package/dist/features/auth/comps/user-list/user-list.js.map +1 -1
- package/dist/features/auth/forgot-password/forgot-password-styled.js +14 -15
- package/dist/features/auth/forgot-password/forgot-password-styled.js.map +1 -1
- package/dist/features/auth/login/identifier-otp-form/identifier-otp-form-styled.js +6 -7
- package/dist/features/auth/login/identifier-otp-form/identifier-otp-form-styled.js.map +1 -1
- package/dist/features/auth/login/login-styled.js +8 -9
- package/dist/features/auth/login/login-styled.js.map +1 -1
- package/dist/features/circle-games/game-launcher/hooks/use-game-launcher-journey/use-game-launcher-journey.js +121 -98
- package/dist/features/circle-games/game-launcher/hooks/use-game-launcher-journey/use-game-launcher-journey.js.map +1 -1
- package/dist/features/circle-games/game-launcher/hooks/use-table-infinite-launcher-journey/use-table-infinite-launcher-journey.js +29 -28
- package/dist/features/circle-games/game-launcher/hooks/use-table-infinite-launcher-journey/use-table-infinite-launcher-journey.js.map +1 -1
- package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/use-table-launcher-journey.js +43 -42
- package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/use-table-launcher-journey.js.map +1 -1
- package/dist/features/circle-games/games/tutorial/tutorial.js +43 -35
- package/dist/features/circle-games/games/tutorial/tutorial.js.map +1 -1
- package/dist/features/circle-games/sign-up/comp/grade-input/grade-input-styled.js +2 -2
- package/dist/features/circle-games/sign-up/comp/grade-input/grade-input-styled.js.map +1 -1
- package/dist/features/circle-games/sign-up/comp/grade-input/grade-input.js +1 -1
- package/dist/features/circle-games/sign-up/comp/grade-input/grade-input.js.map +1 -1
- package/dist/features/circle-games/sign-up/comp/username-input/username-input.js +26 -24
- package/dist/features/circle-games/sign-up/comp/username-input/username-input.js.map +1 -1
- package/dist/features/circle-games/sign-up/constants.js +3 -1
- package/dist/features/circle-games/sign-up/constants.js.map +1 -1
- package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +42 -42
- package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
- package/dist/features/journey/comps/coachmark/coachmark.js +29 -27
- package/dist/features/journey/comps/coachmark/coachmark.js.map +1 -1
- package/dist/features/journey/journey-id/journey-id-student.js +2 -2
- package/dist/features/journey/journey-id/journey-id-student.js.map +1 -1
- package/dist/features/journey/use-journey/journey-context-provider.js +73 -72
- package/dist/features/journey/use-journey/journey-context-provider.js.map +1 -1
- package/dist/features/journey/use-journey/journey-styled.js +6 -4
- package/dist/features/journey/use-journey/journey-styled.js.map +1 -1
- package/dist/features/ui/arrow-tooltip/arrow-tooltip-constants.js +6 -0
- package/dist/features/ui/arrow-tooltip/arrow-tooltip-constants.js.map +1 -0
- package/dist/features/ui/arrow-tooltip/arrow-tooltip-styled.js +12 -60
- package/dist/features/ui/arrow-tooltip/arrow-tooltip-styled.js.map +1 -1
- package/dist/features/ui/arrow-tooltip/arrow-tooltip.js +72 -77
- package/dist/features/ui/arrow-tooltip/arrow-tooltip.js.map +1 -1
- package/dist/features/ui/arrow-tooltip/comps/tooltip-body-styled.js +63 -0
- package/dist/features/ui/arrow-tooltip/comps/tooltip-body-styled.js.map +1 -0
- package/dist/features/ui/arrow-tooltip/comps/tooltip-body.js +21 -0
- package/dist/features/ui/arrow-tooltip/comps/tooltip-body.js.map +1 -0
- package/dist/features/ui/error/error.js +65 -27
- package/dist/features/ui/error/error.js.map +1 -1
- package/dist/features/ui/modals/modal-styled.js +35 -28
- package/dist/features/ui/modals/modal-styled.js.map +1 -1
- package/dist/features/ui/modals/modal.js +40 -14
- package/dist/features/ui/modals/modal.js.map +1 -1
- package/dist/features/ui/nudge/nudge-styled.js +14 -7
- package/dist/features/ui/nudge/nudge-styled.js.map +1 -1
- package/dist/features/ui/nudge/nudge.js +13 -12
- package/dist/features/ui/nudge/nudge.js.map +1 -1
- package/dist/features/ui/sticker-grid/sticker-grid-styles.js +86 -0
- package/dist/features/ui/sticker-grid/sticker-grid-styles.js.map +1 -0
- package/dist/features/ui/sticker-grid/sticker-grid.js +24 -0
- package/dist/features/ui/sticker-grid/sticker-grid.js.map +1 -0
- package/dist/features/ui/sticker-grid/sticker.js +57 -0
- package/dist/features/ui/sticker-grid/sticker.js.map +1 -0
- package/dist/features/ui/stickers/constants.js +6 -0
- package/dist/features/ui/stickers/constants.js.map +1 -0
- package/dist/features/ui/stickers/stickers-effects.js +64 -0
- package/dist/features/ui/stickers/stickers-effects.js.map +1 -0
- package/dist/features/ui/stickers/stickers-styled.js +29 -0
- package/dist/features/ui/stickers/stickers-styled.js.map +1 -0
- package/dist/features/ui/stickers/stickers-utils.js +91 -0
- package/dist/features/ui/stickers/stickers-utils.js.map +1 -0
- package/dist/features/ui/stickers/stickers.js +40 -0
- package/dist/features/ui/stickers/stickers.js.map +1 -0
- package/dist/features/ui/streak-icon/streak-icon-styled.js +13 -13
- package/dist/features/ui/streak-icon/streak-icon-styled.js.map +1 -1
- package/dist/features/ui/streak-icon/streak-icon.js +17 -15
- package/dist/features/ui/streak-icon/streak-icon.js.map +1 -1
- package/dist/features/ui/text/text.js +40 -36
- package/dist/features/ui/text/text.js.map +1 -1
- package/dist/features/ui/theme/constants.js +4 -2
- package/dist/features/ui/theme/constants.js.map +1 -1
- package/dist/features/ui/theme/get-device.js +3 -3
- package/dist/features/ui/theme/get-device.js.map +1 -1
- package/dist/features/worksheet/worksheet/constants.js +12 -13
- package/dist/features/worksheet/worksheet/constants.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js +246 -260
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-styled.js +37 -28
- package/dist/features/worksheet/worksheet/worksheet-styled.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet.js +166 -164
- package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
- package/dist/index.d.ts +48 -16
- package/dist/index.js +353 -349
- package/dist/index.js.map +1 -1
- package/dist/static/nudge-tap.0591aef4.json +1 -0
- package/package.json +1 -1
- package/dist/features/hooks/use-viewport/use-viewport.js +0 -22
- package/dist/features/hooks/use-viewport/use-viewport.js.map +0 -1
- package/dist/static/nudge-tap.5cb30093.json +0 -1057
@@ -1,55 +1,55 @@
|
|
1
|
-
import { jsxs as
|
2
|
-
import { createContext as
|
3
|
-
import { Coachmark as
|
4
|
-
import { usePostUserJourney as
|
5
|
-
import { Overlay as
|
6
|
-
const
|
7
|
-
const [U, q] =
|
1
|
+
import { jsxs as R, jsx as j } from "react/jsx-runtime";
|
2
|
+
import { createContext as W, useState as s, useRef as k, useCallback as h, useMemo as M, useEffect as O } from "react";
|
3
|
+
import { Coachmark as V } from "../comps/coachmark/coachmark.js";
|
4
|
+
import { usePostUserJourney as G, useGetUserJourney as F } from "../user-journey-api/user-journey-api.js";
|
5
|
+
import { Overlay as I } from "./journey-styled.js";
|
6
|
+
const K = W(null), re = ({ children: T, appId: a, userId: c }) => {
|
7
|
+
const [b, U] = s(!0), [q, z] = s(!1), [v, p] = s(null), [l, y] = s([]), [J, x] = s(!1), m = k(-1), t = k(void 0), f = k([]), [D, H] = s(!1), [A, L] = s({
|
8
8
|
height: window.innerHeight,
|
9
9
|
width: window.innerWidth
|
10
|
-
}), { post:
|
11
|
-
(e, r, o) => {
|
12
|
-
var
|
13
|
-
if (
|
10
|
+
}), { post: $ } = G(), { data: w = null, get: _ } = F(), B = h(
|
11
|
+
(e, r, o, C = !0) => {
|
12
|
+
var d, n;
|
13
|
+
if (l.length > 0) {
|
14
14
|
console.error(
|
15
15
|
`setJourney: Other Journey is already active, Current Journey: ${t.current}, New Journey Request: ${e}`
|
16
16
|
);
|
17
17
|
return;
|
18
18
|
}
|
19
|
-
x(!0), t.current = e, m.current = -1,
|
20
|
-
r.map((
|
21
|
-
...
|
19
|
+
x(!0), U(C), t.current = e, m.current = -1, y(
|
20
|
+
r.map((u) => ({
|
21
|
+
...u,
|
22
22
|
isActive: !1
|
23
23
|
// New coachmarks are inactive by default
|
24
24
|
}))
|
25
|
-
), o && (
|
26
|
-
height: ((
|
27
|
-
width: ((
|
28
|
-
}),
|
25
|
+
), o && (L({
|
26
|
+
height: ((d = o.current) == null ? void 0 : d.clientHeight) || window.innerHeight,
|
27
|
+
width: ((n = o.current) == null ? void 0 : n.clientWidth) || window.innerWidth
|
28
|
+
}), H(!0));
|
29
29
|
},
|
30
|
-
[
|
31
|
-
),
|
32
|
-
|
30
|
+
[l.length]
|
31
|
+
), i = h(() => {
|
32
|
+
f.current.forEach((e) => {
|
33
33
|
clearTimeout(e);
|
34
|
-
}),
|
35
|
-
}, []),
|
34
|
+
}), f.current = [], t.current = void 0, m.current = -1, y([]), x(!1);
|
35
|
+
}, []), E = h(
|
36
36
|
(e) => {
|
37
|
-
|
38
|
-
app_id:
|
39
|
-
user_id:
|
37
|
+
i(), p((r) => r && !r.includes(e) ? [...r, e] : r), $({
|
38
|
+
app_id: a,
|
39
|
+
user_id: c,
|
40
40
|
journey_id: e,
|
41
41
|
journey_status: "COMPLETED"
|
42
42
|
});
|
43
43
|
},
|
44
|
-
[
|
45
|
-
),
|
44
|
+
[a, i, $, c]
|
45
|
+
), P = h((e, r) => {
|
46
46
|
if (!t.current || e !== t.current) {
|
47
47
|
console.error(
|
48
48
|
t.current ? `A Journey is already active, Current Journey: ${t.current}, New Journey Request: ${e}` : "addCoachmark was called before setJourney and Journey ID is undefined"
|
49
49
|
);
|
50
50
|
return;
|
51
51
|
}
|
52
|
-
|
52
|
+
y((o) => [
|
53
53
|
...o,
|
54
54
|
{
|
55
55
|
...r,
|
@@ -57,86 +57,87 @@ const F = N(null), I = ({ children: b, appId: i, userId: u }) => {
|
|
57
57
|
// New coachmarks are inactive by default
|
58
58
|
}
|
59
59
|
]);
|
60
|
-
}, []),
|
61
|
-
(e, r = !1, o = 0,
|
60
|
+
}, []), S = h(
|
61
|
+
(e, r = !1, o = 0, C = !1) => {
|
62
62
|
if (!t.current || e !== t.current) {
|
63
63
|
console.error(
|
64
64
|
t.current ? "nextCoachmark was called before setJourney" : `A Journey is already active, Current Journey: ${t.current}, New Journey Request: ${e}`
|
65
65
|
);
|
66
66
|
return;
|
67
67
|
}
|
68
|
-
|
69
|
-
const
|
70
|
-
clearTimeout(
|
68
|
+
z(C), o !== 0 && y((n) => n.map((u) => ({ ...u, isActive: !1 })));
|
69
|
+
const d = setTimeout(() => {
|
70
|
+
clearTimeout(d);
|
71
71
|
const n = m.current + 1;
|
72
|
-
|
73
|
-
if (n >=
|
74
|
-
return
|
72
|
+
y((u) => {
|
73
|
+
if (n >= u.length || u.length === 0)
|
74
|
+
return i(), [];
|
75
75
|
m.current = n;
|
76
|
-
const g = [...
|
76
|
+
const g = [...u];
|
77
77
|
return g[n].isActive = !0, n > 0 && (g[n - 1].isActive = r), g;
|
78
78
|
});
|
79
79
|
}, o);
|
80
|
-
|
80
|
+
f.current.push(d);
|
81
81
|
},
|
82
|
-
[
|
83
|
-
),
|
82
|
+
[i]
|
83
|
+
), N = M(
|
84
84
|
() => ({
|
85
|
-
nextCoachmark:
|
86
|
-
setJourney:
|
87
|
-
addCoachmark:
|
88
|
-
clearJourney:
|
89
|
-
endJourney:
|
90
|
-
coachmarks:
|
91
|
-
userCompletedJourneyIds:
|
92
|
-
isJourneyActive:
|
85
|
+
nextCoachmark: S,
|
86
|
+
setJourney: B,
|
87
|
+
addCoachmark: P,
|
88
|
+
clearJourney: i,
|
89
|
+
endJourney: E,
|
90
|
+
coachmarks: l,
|
91
|
+
userCompletedJourneyIds: v,
|
92
|
+
isJourneyActive: J
|
93
93
|
}),
|
94
94
|
[
|
95
|
-
j,
|
96
|
-
E,
|
97
95
|
S,
|
98
|
-
|
96
|
+
B,
|
99
97
|
P,
|
100
|
-
|
101
|
-
|
102
|
-
|
98
|
+
i,
|
99
|
+
E,
|
100
|
+
l,
|
101
|
+
v,
|
102
|
+
J
|
103
103
|
]
|
104
104
|
);
|
105
|
-
return
|
106
|
-
|
107
|
-
app_id:
|
108
|
-
user_id:
|
105
|
+
return O(() => {
|
106
|
+
a && c && _(c, {
|
107
|
+
app_id: a,
|
108
|
+
user_id: c,
|
109
109
|
journey_status: "COMPLETED"
|
110
110
|
});
|
111
|
-
}, [
|
112
|
-
if (
|
113
|
-
const e =
|
111
|
+
}, [a, _, c]), O(() => {
|
112
|
+
if (w) {
|
113
|
+
const e = w.map((r) => r.journey_id);
|
114
114
|
p(e);
|
115
115
|
}
|
116
|
-
}, [
|
117
|
-
|
118
|
-
|
116
|
+
}, [w]), /* @__PURE__ */ R(K.Provider, { value: N, children: [
|
117
|
+
J && /* @__PURE__ */ j(
|
118
|
+
I,
|
119
119
|
{
|
120
120
|
about: "journey-overlay",
|
121
121
|
height: A.height,
|
122
122
|
width: A.width,
|
123
|
-
$isJourneyBlurred:
|
123
|
+
$isJourneyBlurred: q,
|
124
|
+
$isBlockingJourney: b,
|
124
125
|
"data-testid": t.current,
|
125
|
-
children:
|
126
|
-
|
126
|
+
children: l.map((e, r) => /* @__PURE__ */ j(
|
127
|
+
V,
|
127
128
|
{
|
128
129
|
coachmark: e,
|
129
|
-
isInsideScrollView:
|
130
|
+
isInsideScrollView: D
|
130
131
|
},
|
131
132
|
`coachmark-${r}`
|
132
133
|
))
|
133
134
|
}
|
134
135
|
),
|
135
|
-
|
136
|
+
T
|
136
137
|
] });
|
137
138
|
};
|
138
139
|
export {
|
139
|
-
|
140
|
-
|
140
|
+
K as JourneyContext,
|
141
|
+
re as JourneyProvider
|
141
142
|
};
|
142
143
|
//# sourceMappingURL=journey-context-provider.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"journey-context-provider.js","sources":["../../../../src/features/journey/use-journey/journey-context-provider.tsx"],"sourcesContent":["/* eslint-disable no-console */\nimport type { TJourneyId } from '../journey-id/journey-id-types';\nimport type {\n ICoachmarkProps,\n IJourneyContext,\n IJourneyProviderProps,\n TCoachmarkJourneyProps,\n} from './journey-context-types';\nimport type { FC, RefObject } from 'react';\n\nimport { createContext, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { Coachmark } from '../comps/coachmark/coachmark';\nimport { useGetUserJourney, usePostUserJourney } from '../user-journey-api/user-journey-api';\nimport * as S from './journey-styled';\n\nexport const JourneyContext = createContext<IJourneyContext | null>(null);\n\nexport const JourneyProvider: FC<IJourneyProviderProps> = ({ children, appId, userId }) => {\n const [isJourneyBlurred, setIsJourneyBlurred] = useState<boolean>(false);\n const [userCompletedJourneyIds, setUserCompletedJourneyIds] = useState<TJourneyId[] | null>(null);\n const [coachmarkList, setCoachmarkList] = useState<ICoachmarkProps[]>([]);\n const [isJourneyActive, setIsJourneyActive] = useState(false);\n const currentIndex = useRef(-1);\n const currentJourneyId = useRef<TJourneyId | undefined>(undefined);\n const timerRefs = useRef<ReturnType<typeof setTimeout>[]>([]);\n\n const [isScrollableJourney, setIsScrollableJourney] = useState<boolean>(false);\n const [overlaySize, setOverlaySize] = useState({\n height: window.innerHeight,\n width: window.innerWidth,\n });\n\n const { post: postJourneyCompletion } = usePostUserJourney();\n const { data: userCompletedJourneys = null, get: getJourneyProgress } = useGetUserJourney();\n\n const setJourney = useCallback(\n (\n id: TJourneyId,\n coachmarks: TCoachmarkJourneyProps[],\n scrollableContRef?: RefObject<HTMLDivElement | null>,\n ) => {\n if (coachmarkList.length > 0) {\n console.error(\n `setJourney: Other Journey is already active, Current Journey: ${currentJourneyId.current}, New Journey Request: ${id}`,\n );\n\n return;\n }\n setIsJourneyActive(true);\n currentJourneyId.current = id;\n currentIndex.current = -1;\n setCoachmarkList(\n coachmarks.map((item: TCoachmarkJourneyProps) => {\n return {\n ...item,\n isActive: false, // New coachmarks are inactive by default\n } as ICoachmarkProps;\n }),\n );\n if (scrollableContRef) {\n setOverlaySize({\n height: scrollableContRef.current?.clientHeight || window.innerHeight,\n width: scrollableContRef.current?.clientWidth || window.innerWidth,\n });\n setIsScrollableJourney(true);\n }\n },\n [coachmarkList.length],\n );\n\n const clearJourney = useCallback(() => {\n // Clear all timers\n timerRefs.current.forEach(timer => {\n clearTimeout(timer);\n });\n timerRefs.current = [];\n currentJourneyId.current = undefined;\n currentIndex.current = -1;\n setCoachmarkList([]);\n setIsJourneyActive(false);\n }, []);\n\n const endJourney = useCallback(\n (journeyId: TJourneyId) => {\n clearJourney();\n setUserCompletedJourneyIds(prev => {\n if (prev && !prev.includes(journeyId)) {\n return [...prev, journeyId];\n }\n\n return prev;\n });\n // fire the API (doesn’t block the UI)\n postJourneyCompletion({\n app_id: appId,\n user_id: userId,\n journey_id: journeyId,\n journey_status: 'COMPLETED',\n });\n },\n [appId, clearJourney, postJourneyCompletion, userId],\n );\n\n const addCoachmark = useCallback((id: TJourneyId, coachmark: TCoachmarkJourneyProps) => {\n if (!currentJourneyId.current || id !== currentJourneyId.current) {\n console.error(\n currentJourneyId.current\n ? `A Journey is already active, Current Journey: ${currentJourneyId.current}, New Journey Request: ${id}`\n : `addCoachmark was called before setJourney and Journey ID is undefined`,\n );\n\n return;\n }\n\n setCoachmarkList(prev => [\n ...prev,\n {\n ...coachmark,\n isActive: false, // New coachmarks are inactive by default\n } as ICoachmarkProps,\n ]);\n }, []);\n\n const nextCoachmark = useCallback(\n (\n id: TJourneyId,\n keepPrevActive: boolean = false,\n delayInMs: number = 0,\n shouldBlurNextJourney: boolean = false,\n ) => {\n if (!currentJourneyId.current || id !== currentJourneyId.current) {\n console.error(\n currentJourneyId.current\n ? `nextCoachmark was called before setJourney`\n : `A Journey is already active, Current Journey: ${currentJourneyId.current}, New Journey Request: ${id}`,\n );\n\n return;\n }\n\n setIsJourneyBlurred(shouldBlurNextJourney);\n\n if (delayInMs !== 0) {\n // If delay is not 0, we will hide all them coachmarks and reveal only after the delay\n setCoachmarkList(prevList => {\n return prevList.map((item: TCoachmarkJourneyProps) => {\n return { ...item, isActive: false };\n });\n });\n }\n\n const timer = setTimeout(() => {\n clearTimeout(timer);\n const currIndex = currentIndex.current + 1;\n\n setCoachmarkList(prevList => {\n // Finish onboarding\n if (currIndex >= prevList.length || prevList.length === 0) {\n clearJourney();\n\n return [];\n }\n\n currentIndex.current = currIndex;\n const updatedCoachmarkList = [...prevList];\n\n (updatedCoachmarkList[currIndex] as ICoachmarkProps).isActive = true;\n\n if (currIndex > 0) {\n (updatedCoachmarkList[currIndex - 1] as ICoachmarkProps).isActive = keepPrevActive;\n }\n\n return updatedCoachmarkList;\n });\n }, delayInMs);\n\n timerRefs.current.push(timer);\n },\n [clearJourney],\n );\n\n const memoizedContextValue: IJourneyContext = useMemo(\n () => ({\n nextCoachmark,\n setJourney,\n addCoachmark,\n clearJourney,\n endJourney,\n coachmarks: coachmarkList,\n userCompletedJourneyIds,\n isJourneyActive,\n }),\n [\n nextCoachmark,\n setJourney,\n addCoachmark,\n clearJourney,\n endJourney,\n coachmarkList,\n userCompletedJourneyIds,\n isJourneyActive,\n ],\n );\n\n // Get the initial state of incompleteJourneys\n useEffect(() => {\n if (appId && userId) {\n getJourneyProgress(userId, {\n app_id: appId,\n user_id: userId,\n journey_status: 'COMPLETED',\n });\n }\n }, [appId, getJourneyProgress, userId]);\n\n // Set the data to context state initially\n useEffect(() => {\n if (userCompletedJourneys) {\n const completedUserJourneysIds = userCompletedJourneys.map(journey => journey.journey_id);\n\n setUserCompletedJourneyIds(completedUserJourneysIds);\n }\n }, [userCompletedJourneys]);\n\n return (\n <JourneyContext.Provider value={memoizedContextValue}>\n {isJourneyActive && (\n <S.Overlay\n about=\"journey-overlay\"\n height={overlaySize.height}\n width={overlaySize.width}\n $isJourneyBlurred={isJourneyBlurred}\n data-testid={currentJourneyId.current}\n >\n {coachmarkList.map((coachmark, index) => (\n <Coachmark\n key={`coachmark-${index}`}\n coachmark={coachmark}\n isInsideScrollView={isScrollableJourney}\n />\n ))}\n </S.Overlay>\n )}\n {children}\n </JourneyContext.Provider>\n );\n};\n"],"names":["JourneyContext","createContext","JourneyProvider","children","appId","userId","isJourneyBlurred","setIsJourneyBlurred","useState","userCompletedJourneyIds","setUserCompletedJourneyIds","coachmarkList","setCoachmarkList","isJourneyActive","setIsJourneyActive","currentIndex","useRef","currentJourneyId","timerRefs","isScrollableJourney","setIsScrollableJourney","overlaySize","setOverlaySize","postJourneyCompletion","usePostUserJourney","userCompletedJourneys","getJourneyProgress","useGetUserJourney","setJourney","useCallback","id","coachmarks","scrollableContRef","item","_a","_b","clearJourney","timer","endJourney","journeyId","prev","addCoachmark","coachmark","nextCoachmark","keepPrevActive","delayInMs","shouldBlurNextJourney","prevList","currIndex","updatedCoachmarkList","memoizedContextValue","useMemo","useEffect","completedUserJourneysIds","journey","jsxs","jsx","S.Overlay","index","Coachmark"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"journey-context-provider.js","sources":["../../../../src/features/journey/use-journey/journey-context-provider.tsx"],"sourcesContent":["/* eslint-disable no-console */\nimport type { TJourneyId } from '../journey-id/journey-id-types';\nimport type {\n ICoachmarkProps,\n IJourneyContext,\n IJourneyProviderProps,\n TCoachmarkJourneyProps,\n} from './journey-context-types';\nimport type { FC, RefObject } from 'react';\n\nimport { createContext, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { Coachmark } from '../comps/coachmark/coachmark';\nimport { useGetUserJourney, usePostUserJourney } from '../user-journey-api/user-journey-api';\nimport * as S from './journey-styled';\n\nexport const JourneyContext = createContext<IJourneyContext | null>(null);\n\nexport const JourneyProvider: FC<IJourneyProviderProps> = ({ children, appId, userId }) => {\n const [isBlockingJourney, setIsBlockingJourney] = useState<boolean>(true);\n const [isJourneyBlurred, setIsJourneyBlurred] = useState<boolean>(false);\n const [userCompletedJourneyIds, setUserCompletedJourneyIds] = useState<TJourneyId[] | null>(null);\n const [coachmarkList, setCoachmarkList] = useState<ICoachmarkProps[]>([]);\n const [isJourneyActive, setIsJourneyActive] = useState(false);\n const currentIndex = useRef(-1);\n const currentJourneyId = useRef<TJourneyId | undefined>(undefined);\n const timerRefs = useRef<ReturnType<typeof setTimeout>[]>([]);\n\n const [isScrollableJourney, setIsScrollableJourney] = useState<boolean>(false);\n const [overlaySize, setOverlaySize] = useState({\n height: window.innerHeight,\n width: window.innerWidth,\n });\n\n const { post: postJourneyCompletion } = usePostUserJourney();\n const { data: userCompletedJourneys = null, get: getJourneyProgress } = useGetUserJourney();\n\n const setJourney = useCallback(\n (\n id: TJourneyId,\n coachmarks: TCoachmarkJourneyProps[],\n scrollableContRef?: RefObject<HTMLDivElement | null>,\n isBlocking: boolean = true,\n ) => {\n if (coachmarkList.length > 0) {\n console.error(\n `setJourney: Other Journey is already active, Current Journey: ${currentJourneyId.current}, New Journey Request: ${id}`,\n );\n\n return;\n }\n setIsJourneyActive(true);\n setIsBlockingJourney(isBlocking);\n currentJourneyId.current = id;\n currentIndex.current = -1;\n setCoachmarkList(\n coachmarks.map((item: TCoachmarkJourneyProps) => {\n return {\n ...item,\n isActive: false, // New coachmarks are inactive by default\n } as ICoachmarkProps;\n }),\n );\n if (scrollableContRef) {\n setOverlaySize({\n height: scrollableContRef.current?.clientHeight || window.innerHeight,\n width: scrollableContRef.current?.clientWidth || window.innerWidth,\n });\n setIsScrollableJourney(true);\n }\n },\n [coachmarkList.length],\n );\n\n const clearJourney = useCallback(() => {\n // Clear all timers\n timerRefs.current.forEach(timer => {\n clearTimeout(timer);\n });\n timerRefs.current = [];\n currentJourneyId.current = undefined;\n currentIndex.current = -1;\n setCoachmarkList([]);\n setIsJourneyActive(false);\n }, []);\n\n const endJourney = useCallback(\n (journeyId: TJourneyId) => {\n clearJourney();\n setUserCompletedJourneyIds(prev => {\n if (prev && !prev.includes(journeyId)) {\n return [...prev, journeyId];\n }\n\n return prev;\n });\n // fire the API (doesn’t block the UI)\n postJourneyCompletion({\n app_id: appId,\n user_id: userId,\n journey_id: journeyId,\n journey_status: 'COMPLETED',\n });\n },\n [appId, clearJourney, postJourneyCompletion, userId],\n );\n\n const addCoachmark = useCallback((id: TJourneyId, coachmark: TCoachmarkJourneyProps) => {\n if (!currentJourneyId.current || id !== currentJourneyId.current) {\n console.error(\n currentJourneyId.current\n ? `A Journey is already active, Current Journey: ${currentJourneyId.current}, New Journey Request: ${id}`\n : `addCoachmark was called before setJourney and Journey ID is undefined`,\n );\n\n return;\n }\n\n setCoachmarkList(prev => [\n ...prev,\n {\n ...coachmark,\n isActive: false, // New coachmarks are inactive by default\n } as ICoachmarkProps,\n ]);\n }, []);\n\n const nextCoachmark = useCallback(\n (\n id: TJourneyId,\n keepPrevActive: boolean = false,\n delayInMs: number = 0,\n shouldBlurNextJourney: boolean = false,\n ) => {\n if (!currentJourneyId.current || id !== currentJourneyId.current) {\n console.error(\n currentJourneyId.current\n ? `nextCoachmark was called before setJourney`\n : `A Journey is already active, Current Journey: ${currentJourneyId.current}, New Journey Request: ${id}`,\n );\n\n return;\n }\n\n setIsJourneyBlurred(shouldBlurNextJourney);\n\n if (delayInMs !== 0) {\n // If delay is not 0, we will hide all them coachmarks and reveal only after the delay\n setCoachmarkList(prevList => {\n return prevList.map((item: TCoachmarkJourneyProps) => {\n return { ...item, isActive: false };\n });\n });\n }\n\n const timer = setTimeout(() => {\n clearTimeout(timer);\n const currIndex = currentIndex.current + 1;\n\n setCoachmarkList(prevList => {\n // Finish onboarding\n if (currIndex >= prevList.length || prevList.length === 0) {\n clearJourney();\n\n return [];\n }\n\n currentIndex.current = currIndex;\n const updatedCoachmarkList = [...prevList];\n\n (updatedCoachmarkList[currIndex] as ICoachmarkProps).isActive = true;\n\n if (currIndex > 0) {\n (updatedCoachmarkList[currIndex - 1] as ICoachmarkProps).isActive = keepPrevActive;\n }\n\n return updatedCoachmarkList;\n });\n }, delayInMs);\n\n timerRefs.current.push(timer);\n },\n [clearJourney],\n );\n\n const memoizedContextValue: IJourneyContext = useMemo(\n () => ({\n nextCoachmark,\n setJourney,\n addCoachmark,\n clearJourney,\n endJourney,\n coachmarks: coachmarkList,\n userCompletedJourneyIds,\n isJourneyActive,\n }),\n [\n nextCoachmark,\n setJourney,\n addCoachmark,\n clearJourney,\n endJourney,\n coachmarkList,\n userCompletedJourneyIds,\n isJourneyActive,\n ],\n );\n\n // Get the initial state of incompleteJourneys\n useEffect(() => {\n if (appId && userId) {\n getJourneyProgress(userId, {\n app_id: appId,\n user_id: userId,\n journey_status: 'COMPLETED',\n });\n }\n }, [appId, getJourneyProgress, userId]);\n\n // Set the data to context state initially\n useEffect(() => {\n if (userCompletedJourneys) {\n const completedUserJourneysIds = userCompletedJourneys.map(journey => journey.journey_id);\n\n setUserCompletedJourneyIds(completedUserJourneysIds);\n }\n }, [userCompletedJourneys]);\n\n return (\n <JourneyContext.Provider value={memoizedContextValue}>\n {isJourneyActive && (\n <S.Overlay\n about=\"journey-overlay\"\n height={overlaySize.height}\n width={overlaySize.width}\n $isJourneyBlurred={isJourneyBlurred}\n $isBlockingJourney={isBlockingJourney}\n data-testid={currentJourneyId.current}\n >\n {coachmarkList.map((coachmark, index) => (\n <Coachmark\n key={`coachmark-${index}`}\n coachmark={coachmark}\n isInsideScrollView={isScrollableJourney}\n />\n ))}\n </S.Overlay>\n )}\n {children}\n </JourneyContext.Provider>\n );\n};\n"],"names":["JourneyContext","createContext","JourneyProvider","children","appId","userId","isBlockingJourney","setIsBlockingJourney","useState","isJourneyBlurred","setIsJourneyBlurred","userCompletedJourneyIds","setUserCompletedJourneyIds","coachmarkList","setCoachmarkList","isJourneyActive","setIsJourneyActive","currentIndex","useRef","currentJourneyId","timerRefs","isScrollableJourney","setIsScrollableJourney","overlaySize","setOverlaySize","postJourneyCompletion","usePostUserJourney","userCompletedJourneys","getJourneyProgress","useGetUserJourney","setJourney","useCallback","id","coachmarks","scrollableContRef","isBlocking","item","_a","_b","clearJourney","timer","endJourney","journeyId","prev","addCoachmark","coachmark","nextCoachmark","keepPrevActive","delayInMs","shouldBlurNextJourney","prevList","currIndex","updatedCoachmarkList","memoizedContextValue","useMemo","useEffect","completedUserJourneysIds","journey","jsxs","jsx","S.Overlay","index","Coachmark"],"mappings":"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"}
|
@@ -1,14 +1,16 @@
|
|
1
|
-
import
|
2
|
-
const p =
|
1
|
+
import e, { css as r } from "styled-components";
|
2
|
+
const p = e.div`
|
3
3
|
position: absolute;
|
4
4
|
top: 0;
|
5
5
|
right: 0;
|
6
6
|
bottom: 0;
|
7
7
|
left: 0;
|
8
|
-
z-index: ${({
|
8
|
+
z-index: ${({ $isBlockingJourney: t, theme: o }) => t ? o.zIndex.JOURNEY_OVERLAY : 0};
|
9
|
+
pointer-events: ${({ $isBlockingJourney: t }) => t ? "auto" : "none"};
|
10
|
+
|
9
11
|
height: ${({ height: t }) => t}px;
|
10
12
|
width: ${({ width: t }) => t}px;
|
11
|
-
${({ $isJourneyBlurred: t, theme: o }) => t &&
|
13
|
+
${({ $isJourneyBlurred: t, theme: o }) => t && r`
|
12
14
|
background: ${o.colors.BLACK_T_38};
|
13
15
|
backdrop-filter: blur(80px);
|
14
16
|
-webkit-backdrop-filter: blur(80px);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"journey-styled.js","sources":["../../../../src/features/journey/use-journey/journey-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { css } from 'styled-components';\n\nexport const Overlay = styled.div<{\n $isJourneyBlurred: boolean;\n height: number;\n width: number;\n}>`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: ${({ theme })
|
1
|
+
{"version":3,"file":"journey-styled.js","sources":["../../../../src/features/journey/use-journey/journey-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { css } from 'styled-components';\n\nexport const Overlay = styled.div<{\n $isJourneyBlurred: boolean;\n $isBlockingJourney: boolean;\n height: number;\n width: number;\n}>`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: ${({ $isBlockingJourney, theme }) =>\n $isBlockingJourney ? theme.zIndex.JOURNEY_OVERLAY : 0};\n pointer-events: ${({ $isBlockingJourney }) => ($isBlockingJourney ? 'auto' : 'none')};\n\n height: ${({ height }) => height}px;\n width: ${({ width }) => width}px;\n ${({ $isJourneyBlurred, theme }) =>\n $isJourneyBlurred &&\n css`\n background: ${theme.colors.BLACK_T_38};\n backdrop-filter: blur(80px);\n -webkit-backdrop-filter: blur(80px);\n `}\n`;\n"],"names":["Overlay","styled","$isBlockingJourney","theme","height","width","$isJourneyBlurred","css"],"mappings":";AAGO,MAAMA,IAAUC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAWjB,CAAC,EAAE,oBAAAC,GAAoB,OAAAC,QAChCD,IAAqBC,EAAM,OAAO,kBAAkB,CAAC;AAAA,oBACrC,CAAC,EAAE,oBAAAD,EAAA,MAA0BA,IAAqB,SAAS,MAAO;AAAA;AAAA,YAE1E,CAAC,EAAE,QAAAE,EAAO,MAAMA,CAAM;AAAA,WACvB,CAAC,EAAE,OAAAC,EAAM,MAAMA,CAAK;AAAA,IAC3B,CAAC,EAAE,mBAAAC,GAAmB,OAAAH,EAAA,MACtBG,KACAC;AAAA,oBACgBJ,EAAM,OAAO,UAAU;AAAA;AAAA;AAAA,KAGtC;AAAA;"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"arrow-tooltip-constants.js","sources":["../../../../src/features/ui/arrow-tooltip/arrow-tooltip-constants.ts"],"sourcesContent":["export const DEFAULT_ARROW_SIZE = 8;\nexport const THROTTLE_DURATION = 100;\n"],"names":["DEFAULT_ARROW_SIZE","THROTTLE_DURATION"],"mappings":"AAAO,MAAMA,IAAqB,GACrBC,IAAoB;"}
|
@@ -1,63 +1,15 @@
|
|
1
|
-
import
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
$
|
11
|
-
|
12
|
-
$position: n,
|
13
|
-
$renderAs: s,
|
14
|
-
$tooltipCoOrdinates: e,
|
15
|
-
$tooltipOffset: f,
|
16
|
-
$tooltipXCoOrdinates: g,
|
17
|
-
$tooltipYCoOrdinates: u,
|
18
|
-
$zIndex: C,
|
19
|
-
$backgroundColor: O
|
20
|
-
}) => {
|
21
|
-
const { gutter: l } = o.layout, { REAL_BLACK_15: $ } = o.colors, { tooltipVariants: a } = o.arrowTooltip;
|
22
|
-
let { backgroundColorName: i } = a[s];
|
23
|
-
const { textColorName: b } = a[s];
|
24
|
-
return i = O || i, `
|
25
|
-
position: fixed;
|
26
|
-
z-index: ${C || 1};
|
27
|
-
padding: ${l * 0.25}px ${l * 0.5}px;
|
28
|
-
color: ${b};
|
29
|
-
box-shadow: 0px 2px 15px 0px ${$};
|
30
|
-
background-color: ${o.colors[i]};
|
31
|
-
border: 1px solid ${p ? o.colors[p] : "transparent"};
|
32
|
-
|
33
|
-
&::after {
|
34
|
-
content: '';
|
35
|
-
position: absolute;
|
36
|
-
height: ${t}px;
|
37
|
-
width: ${t}px;
|
38
|
-
clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
|
39
|
-
background-color: ${r ? o.colors[r] : o.colors[i]};
|
40
|
-
${T({
|
41
|
-
position: n,
|
42
|
-
arrowXCoOrdinates: c,
|
43
|
-
arrowYCoOrdinates: d,
|
44
|
-
arrowSize: t
|
45
|
-
})};
|
46
|
-
}
|
47
|
-
|
48
|
-
${k({
|
49
|
-
position: n,
|
50
|
-
arrowSize: t,
|
51
|
-
tooltipCoOrdinates: e,
|
52
|
-
tooltipOffset: f,
|
53
|
-
tooltipXCoOrdinates: g,
|
54
|
-
tooltipYCoOrdinates: u
|
55
|
-
})};
|
56
|
-
|
57
|
-
${m(x)};
|
58
|
-
`;
|
59
|
-
});
|
1
|
+
import o from "styled-components";
|
2
|
+
const i = o.div`
|
3
|
+
position: absolute;
|
4
|
+
top: 0;
|
5
|
+
left: 0;
|
6
|
+
right: 0;
|
7
|
+
bottom: 0;
|
8
|
+
width: 100%;
|
9
|
+
height: 100%;
|
10
|
+
z-index: ${({ theme: t }) => t.zIndex.JOURNEY_OVERLAY};
|
11
|
+
`;
|
60
12
|
export {
|
61
|
-
|
13
|
+
i as BackgroundOverlay
|
62
14
|
};
|
63
15
|
//# sourceMappingURL=arrow-tooltip-styled.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"arrow-tooltip-styled.js","sources":["../../../../src/features/ui/arrow-tooltip/arrow-tooltip-styled.tsx"],"sourcesContent":["import
|
1
|
+
{"version":3,"file":"arrow-tooltip-styled.js","sources":["../../../../src/features/ui/arrow-tooltip/arrow-tooltip-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nexport const BackgroundOverlay = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n z-index: ${({ theme }) => theme.zIndex.JOURNEY_OVERLAY};\n`;\n"],"names":["BackgroundOverlay","styled","theme"],"mappings":";AAEO,MAAMA,IAAoBC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAQ3B,CAAC,EAAE,OAAAC,EAAA,MAAYA,EAAM,OAAO,eAAe;AAAA;"}
|
@@ -1,105 +1,100 @@
|
|
1
|
-
import { jsxs as
|
2
|
-
import
|
3
|
-
import { useRef as H, useState as
|
4
|
-
import
|
5
|
-
import
|
6
|
-
import Z from "
|
7
|
-
import
|
8
|
-
import { TooltipBody as G } from "./arrow-tooltip-styled.js";
|
1
|
+
import { jsxs as D, Fragment as U, jsx as e } from "react/jsx-runtime";
|
2
|
+
import W from "../../../node_modules/lodash.throttle/index.js";
|
3
|
+
import { memo as Y, useRef as H, useState as f, useCallback as p, useEffect as m } from "react";
|
4
|
+
import $ from "../layout/flex-view.js";
|
5
|
+
import P from "../portal/portal.js";
|
6
|
+
import { THROTTLE_DURATION as Z, DEFAULT_ARROW_SIZE as q } from "./arrow-tooltip-constants.js";
|
7
|
+
import { BackgroundOverlay as G } from "./arrow-tooltip-styled.js";
|
9
8
|
import { computeTooltipNewCoOrdinates as J } from "./arrow-tooltip-util.js";
|
10
|
-
|
11
|
-
|
9
|
+
import K from "./comps/tooltip-body.js";
|
10
|
+
const Q = ({
|
11
|
+
isAnimated: C,
|
12
12
|
alwaysVisible: o = !1,
|
13
|
-
arrowColor:
|
14
|
-
arrowSize:
|
15
|
-
arrowXCoOrdinates:
|
16
|
-
arrowYCoOrdinates:
|
13
|
+
arrowColor: O,
|
14
|
+
arrowSize: w = q,
|
15
|
+
arrowXCoOrdinates: E,
|
16
|
+
arrowYCoOrdinates: T,
|
17
17
|
backgroundColor: v,
|
18
18
|
borderColor: R,
|
19
|
-
children:
|
19
|
+
children: h,
|
20
20
|
hidden: t,
|
21
21
|
position: l,
|
22
|
-
renderAs:
|
22
|
+
renderAs: A,
|
23
23
|
textVariant: L,
|
24
|
-
tooltipItem:
|
25
|
-
tooltipOffset:
|
26
|
-
tooltipXCoOrdinates:
|
27
|
-
tooltipYCoOrdinates:
|
28
|
-
width:
|
29
|
-
widthX:
|
30
|
-
zIndex:
|
31
|
-
parentWidth:
|
24
|
+
tooltipItem: g,
|
25
|
+
tooltipOffset: x,
|
26
|
+
tooltipXCoOrdinates: z,
|
27
|
+
tooltipYCoOrdinates: I,
|
28
|
+
width: b,
|
29
|
+
widthX: k,
|
30
|
+
zIndex: B,
|
31
|
+
parentWidth: F,
|
32
|
+
isBlocking: M = !1
|
32
33
|
}) => {
|
33
|
-
const
|
34
|
+
const u = H(null), [N, d] = f(o), [S, X] = f(
|
34
35
|
null
|
35
|
-
),
|
36
|
+
), s = p(
|
36
37
|
(n, i) => {
|
37
|
-
|
38
|
+
X(n), d(i);
|
38
39
|
},
|
39
40
|
[]
|
40
|
-
),
|
41
|
+
), _ = p(() => {
|
41
42
|
if (t || o)
|
42
43
|
return null;
|
43
|
-
|
44
|
-
}, [o,
|
45
|
-
var
|
46
|
-
const { current: n } =
|
44
|
+
s(null, !1);
|
45
|
+
}, [o, s, t]), r = W(() => {
|
46
|
+
var a;
|
47
|
+
const { current: n } = u;
|
47
48
|
if (t || !n) return null;
|
48
|
-
const i = (
|
49
|
-
return
|
50
|
-
},
|
51
|
-
|
49
|
+
const i = (a = n.children[0]) == null ? void 0 : a.getBoundingClientRect(), j = i ? J(l, i) : null;
|
50
|
+
return s(j, !0), null;
|
51
|
+
}, Z);
|
52
|
+
m(() => {
|
52
53
|
if (!(!o || t))
|
53
54
|
return window.addEventListener("scroll", r, !0), window.addEventListener("resize", r), () => {
|
54
55
|
window.removeEventListener("scroll", r, !0), window.removeEventListener("resize", r);
|
55
56
|
};
|
56
|
-
}, [o, t, l, r]),
|
57
|
-
t &&
|
58
|
-
}, [o, t])
|
57
|
+
}, [o, t, l, r]), m(() => {
|
58
|
+
t && d(!1), o && r();
|
59
|
+
}, [o, t]);
|
60
|
+
const c = /* @__PURE__ */ e(
|
61
|
+
K,
|
62
|
+
{
|
63
|
+
$arrowSize: w,
|
64
|
+
$arrowXCoOrdinates: E,
|
65
|
+
$arrowYCoOrdinates: T,
|
66
|
+
$position: l,
|
67
|
+
$renderAs: A,
|
68
|
+
$tooltipCoOrdinates: S,
|
69
|
+
$tooltipOffset: x,
|
70
|
+
$tooltipXCoOrdinates: z,
|
71
|
+
$tooltipYCoOrdinates: I,
|
72
|
+
$zIndex: B,
|
73
|
+
$backgroundColor: v,
|
74
|
+
$arrowColor: O,
|
75
|
+
$borderColor: R,
|
76
|
+
$isAnimated: C,
|
77
|
+
$width: b,
|
78
|
+
$widthX: k,
|
79
|
+
textVariant: L || "body3",
|
80
|
+
children: g
|
81
|
+
}
|
82
|
+
);
|
83
|
+
return /* @__PURE__ */ D(U, { children: [
|
59
84
|
/* @__PURE__ */ e(
|
60
|
-
|
85
|
+
$,
|
61
86
|
{
|
62
|
-
$width:
|
63
|
-
ref:
|
87
|
+
$width: F || "fit-content",
|
88
|
+
ref: u,
|
64
89
|
onMouseEnter: r,
|
65
|
-
onMouseLeave:
|
66
|
-
children: /* @__PURE__ */ e(
|
90
|
+
onMouseLeave: _,
|
91
|
+
children: /* @__PURE__ */ e($, { children: h })
|
67
92
|
}
|
68
93
|
),
|
69
|
-
|
70
|
-
G,
|
71
|
-
{
|
72
|
-
$arrowSize: E,
|
73
|
-
$arrowXCoOrdinates: g,
|
74
|
-
$arrowYCoOrdinates: h,
|
75
|
-
$position: l,
|
76
|
-
$renderAs: s,
|
77
|
-
$tooltipCoOrdinates: j,
|
78
|
-
$tooltipOffset: A,
|
79
|
-
$tooltipXCoOrdinates: b,
|
80
|
-
$tooltipYCoOrdinates: N,
|
81
|
-
$width: k,
|
82
|
-
$widthX: z,
|
83
|
-
$zIndex: F,
|
84
|
-
$background: X,
|
85
|
-
$backgroundColor: v,
|
86
|
-
$arrowColor: T,
|
87
|
-
$borderColor: R,
|
88
|
-
$isAnimated: O,
|
89
|
-
children: typeof c == "string" ? /* @__PURE__ */ e(
|
90
|
-
q,
|
91
|
-
{
|
92
|
-
$renderAs: L || "body3",
|
93
|
-
$color: a[s].textColorName,
|
94
|
-
$align: "center",
|
95
|
-
children: c
|
96
|
-
}
|
97
|
-
) : c
|
98
|
-
}
|
99
|
-
) })
|
94
|
+
N && /* @__PURE__ */ e(P, { portalId: "tooltip-root", children: M ? /* @__PURE__ */ e(G, { children: c }) : c })
|
100
95
|
] });
|
101
|
-
},
|
96
|
+
}, so = Y(Q);
|
102
97
|
export {
|
103
|
-
|
98
|
+
so as default
|
104
99
|
};
|
105
100
|
//# sourceMappingURL=arrow-tooltip.js.map
|