@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,39 +1,41 @@
|
|
1
1
|
import { jsx as f } from "react/jsx-runtime";
|
2
2
|
import { useCallback as l } from "react";
|
3
|
-
import {
|
4
|
-
import { useValidateUsernameDal as
|
5
|
-
import { InputWrapper as
|
6
|
-
import { USERNAME_MIN_LENGTH as
|
7
|
-
import { Input as
|
8
|
-
const
|
3
|
+
import { useTheme as M } from "styled-components";
|
4
|
+
import { useValidateUsernameDal as T } from "../../dal/validate-username-dal/validate-username-dal.js";
|
5
|
+
import { InputWrapper as U } from "../input-wrapper/input-wrapper.js";
|
6
|
+
import { USERNAME_MIN_LENGTH as x, ErrorMessage as r, USERNAME_MAX_LENGTH as n } from "./constants.js";
|
7
|
+
import { Input as A } from "./username-input-styled.js";
|
8
|
+
const W = ({
|
9
9
|
circleUsername: s,
|
10
10
|
username: m,
|
11
11
|
error: i,
|
12
12
|
isEdit: c,
|
13
13
|
showSpinner: p,
|
14
|
-
setError:
|
14
|
+
setError: a,
|
15
15
|
setUsername: u,
|
16
|
-
setShowSpinner:
|
16
|
+
setShowSpinner: o
|
17
17
|
}) => {
|
18
|
-
const
|
19
|
-
|
18
|
+
const {
|
19
|
+
colors: { RED: R, GREEN_4: g }
|
20
|
+
} = M(), E = `Only letters, _ , & digits allowed.
|
21
|
+
Upto ${n} characters.`, d = l(
|
20
22
|
(e) => {
|
21
23
|
let t = "";
|
22
|
-
|
24
|
+
o(!1), e ? e.is_valid || (t = r.USERNAME_ALREADY_EXISTS) : t = r.SOMETHING_WENT_WRONG, a(t);
|
23
25
|
},
|
24
|
-
[
|
25
|
-
), { validateUsernameExists: _ } =
|
26
|
+
[a, o]
|
27
|
+
), { validateUsernameExists: _ } = T(d), N = l(
|
26
28
|
(e) => {
|
27
|
-
if (
|
28
|
-
if (e.length <
|
29
|
-
|
29
|
+
if (a(""), u(e), !(c && s === e)) {
|
30
|
+
if (e.length < x) {
|
31
|
+
a(r.USERNAME_MIN_LENGTH);
|
30
32
|
return;
|
31
33
|
}
|
32
|
-
|
34
|
+
o(!0), _(e);
|
33
35
|
}
|
34
36
|
},
|
35
|
-
[s, c,
|
36
|
-
),
|
37
|
+
[s, c, a, o, u, _]
|
38
|
+
), h = l(
|
37
39
|
(e) => {
|
38
40
|
const t = e.target.value;
|
39
41
|
!/^[a-z0-9_]*$/.test(t) || t.length > n || N(t);
|
@@ -41,18 +43,18 @@ Upto ${n} characters.`, R = l(
|
|
41
43
|
[N]
|
42
44
|
);
|
43
45
|
return /* @__PURE__ */ f(
|
44
|
-
|
46
|
+
U,
|
45
47
|
{
|
46
48
|
showSpinner: p,
|
47
49
|
helperText: m.length >= n ? E : i || E,
|
48
50
|
children: /* @__PURE__ */ f(
|
49
|
-
|
51
|
+
A,
|
50
52
|
{
|
51
53
|
value: m,
|
52
|
-
onChange:
|
54
|
+
onChange: h,
|
53
55
|
autoFocus: !0,
|
54
56
|
placeholder: "loopy_circle",
|
55
|
-
color: i ?
|
57
|
+
color: i ? R : p ? "" : g,
|
56
58
|
autoCapitalize: "none"
|
57
59
|
}
|
58
60
|
)
|
@@ -60,6 +62,6 @@ Upto ${n} characters.`, R = l(
|
|
60
62
|
);
|
61
63
|
};
|
62
64
|
export {
|
63
|
-
|
65
|
+
W as UsernameInput
|
64
66
|
};
|
65
67
|
//# sourceMappingURL=username-input.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"username-input.js","sources":["../../../../../../src/features/circle-games/sign-up/comp/username-input/username-input.tsx"],"sourcesContent":["import type { IUsernameAvailabilityData } from '../../api/use-validate-username-api/use-username-availability-get-types';\nimport type { UsernameInputProps } from './username-input.types';\n\nimport { useCallback } from 'react';\
|
1
|
+
{"version":3,"file":"username-input.js","sources":["../../../../../../src/features/circle-games/sign-up/comp/username-input/username-input.tsx"],"sourcesContent":["import type { IUsernameAvailabilityData } from '../../api/use-validate-username-api/use-username-availability-get-types';\nimport type { UsernameInputProps } from './username-input.types';\n\nimport { useCallback } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { useValidateUsernameDal } from '../../dal/validate-username-dal/validate-username-dal';\nimport { InputWrapper } from '../input-wrapper/input-wrapper';\nimport { ErrorMessage, USERNAME_MAX_LENGTH, USERNAME_MIN_LENGTH } from './constants';\nimport * as S from './username-input-styled';\n\nexport const UsernameInput = ({\n circleUsername,\n username,\n error,\n isEdit,\n showSpinner,\n setError,\n setUsername,\n setShowSpinner,\n}: UsernameInputProps) => {\n const {\n colors: { RED, GREEN_4 },\n } = useTheme();\n const helperText = `Only letters, _ , & digits allowed.\\nUpto ${USERNAME_MAX_LENGTH} characters.`;\n\n const handleUsernameValidationResponse = useCallback(\n (data?: IUsernameAvailabilityData) => {\n let err = '';\n\n setShowSpinner(false);\n\n if (data) {\n if (!data.is_valid) {\n err = ErrorMessage.USERNAME_ALREADY_EXISTS;\n }\n } else {\n err = ErrorMessage.SOMETHING_WENT_WRONG;\n }\n\n setError(err);\n },\n [setError, setShowSpinner],\n );\n\n const { validateUsernameExists } = useValidateUsernameDal(handleUsernameValidationResponse);\n\n const validateUserName = useCallback(\n (value: string) => {\n setError('');\n setUsername(value);\n if (isEdit && circleUsername === value) return;\n\n if (value.length < USERNAME_MIN_LENGTH) {\n setError(ErrorMessage.USERNAME_MIN_LENGTH);\n\n return;\n }\n setShowSpinner(true);\n validateUsernameExists(value);\n },\n [circleUsername, isEdit, setError, setShowSpinner, setUsername, validateUsernameExists],\n );\n\n const handleUsernameChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n const usernameRegex = /^[a-z0-9_]*$/; // only letters, numbers and underscore\n\n if (!usernameRegex.test(value) || value.length > USERNAME_MAX_LENGTH) {\n return;\n }\n validateUserName(value);\n },\n [validateUserName],\n );\n\n return (\n <InputWrapper\n showSpinner={showSpinner}\n helperText={username.length >= USERNAME_MAX_LENGTH ? helperText : error || helperText}\n >\n <S.Input\n value={username}\n onChange={handleUsernameChange}\n autoFocus={true}\n placeholder={'loopy_circle'}\n color={error ? RED : showSpinner ? '' : GREEN_4}\n autoCapitalize=\"none\"\n />\n </InputWrapper>\n );\n};\n"],"names":["UsernameInput","circleUsername","username","error","isEdit","showSpinner","setError","setUsername","setShowSpinner","RED","GREEN_4","useTheme","helperText","USERNAME_MAX_LENGTH","handleUsernameValidationResponse","useCallback","data","err","ErrorMessage","validateUsernameExists","useValidateUsernameDal","validateUserName","value","USERNAME_MIN_LENGTH","handleUsernameChange","event","jsx","InputWrapper","S.Input"],"mappings":";;;;;;;AAWO,MAAMA,IAAgB,CAAC;AAAA,EAC5B,gBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,gBAAAC;AACF,MAA0B;AAClB,QAAA;AAAA,IACJ,QAAQ,EAAE,KAAAC,GAAK,SAAAC,EAAQ;AAAA,MACrBC,EAAS,GACPC,IAAa;AAAA,OAA6CC,CAAmB,gBAE7EC,IAAmCC;AAAA,IACvC,CAACC,MAAqC;AACpC,UAAIC,IAAM;AAEV,MAAAT,EAAe,EAAK,GAEhBQ,IACGA,EAAK,aACRC,IAAMC,EAAa,2BAGrBD,IAAMC,EAAa,sBAGrBZ,EAASW,CAAG;AAAA,IACd;AAAA,IACA,CAACX,GAAUE,CAAc;AAAA,EAAA,GAGrB,EAAE,wBAAAW,EAAA,IAA2BC,EAAuBN,CAAgC,GAEpFO,IAAmBN;AAAA,IACvB,CAACO,MAAkB;AAGb,UAFJhB,EAAS,EAAE,GACXC,EAAYe,CAAK,GACb,EAAAlB,KAAUH,MAAmBqB,IAE7B;AAAA,YAAAA,EAAM,SAASC,GAAqB;AACtC,UAAAjB,EAASY,EAAa,mBAAmB;AAEzC;AAAA,QACF;AACA,QAAAV,EAAe,EAAI,GACnBW,EAAuBG,CAAK;AAAA;AAAA,IAC9B;AAAA,IACA,CAACrB,GAAgBG,GAAQE,GAAUE,GAAgBD,GAAaY,CAAsB;AAAA,EAAA,GAGlFK,IAAuBT;AAAA,IAC3B,CAACU,MAA+C;AACxC,YAAAH,IAAQG,EAAM,OAAO;AAG3B,MAAI,CAFkB,eAEH,KAAKH,CAAK,KAAKA,EAAM,SAAST,KAGjDQ,EAAiBC,CAAK;AAAA,IACxB;AAAA,IACA,CAACD,CAAgB;AAAA,EAAA;AAIjB,SAAA,gBAAAK;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,aAAAtB;AAAA,MACA,YAAYH,EAAS,UAAUW,IAAsBD,IAAaT,KAASS;AAAA,MAE3E,UAAA,gBAAAc;AAAA,QAACE;AAAAA,QAAA;AAAA,UACC,OAAO1B;AAAA,UACP,UAAUsB;AAAA,UACV,WAAW;AAAA,UACX,aAAa;AAAA,UACb,OAAOrB,IAAQM,IAAMJ,IAAc,KAAKK;AAAA,UACxC,gBAAe;AAAA,QAAA;AAAA,MACjB;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
@@ -1,5 +1,7 @@
|
|
1
1
|
import { State as e } from "./sign-up-types.js";
|
2
2
|
const h = [e.ACTIVE, e.PAUSED, e.PAID], i = [e.TRIAL, e.DEMO], p = [
|
3
|
+
{ label: "KG", key: "0" },
|
4
|
+
{ label: "1", key: "1", sup: "st" },
|
3
5
|
{ label: "2", key: "2", sup: "nd" },
|
4
6
|
{ label: "3", key: "3", sup: "rd" },
|
5
7
|
{ label: "4", key: "4", sup: "th" },
|
@@ -11,7 +13,7 @@ const h = [e.ACTIVE, e.PAUSED, e.PAID], i = [e.TRIAL, e.DEMO], p = [
|
|
11
13
|
{ label: "10", key: "10", sup: "th" },
|
12
14
|
{ label: "11", key: "11", sup: "th" },
|
13
15
|
{ label: "12", key: "12", sup: "th" }
|
14
|
-
], t = 440, s = 640,
|
16
|
+
], t = 440, s = 640, a = window.innerWidth / t, n = window.innerHeight / s, l = Math.min(a, n), u = Math.min(s * l, s), b = Math.min(t * l, t);
|
15
17
|
export {
|
16
18
|
s as ACTUAL_HEIGHT,
|
17
19
|
t as ACTUAL_WIDTH,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../../../src/features/circle-games/sign-up/constants.ts"],"sourcesContent":["import type { Grade } from './comp/grade-input/grade-input-types';\n\nimport { State } from './sign-up-types';\n\nexport const userIsEnrolledCases = [State.ACTIVE, State.PAUSED, State.PAID];\nexport const userIsOnTrialCases = [State.TRIAL, State.DEMO];\n\nexport const GRADES: Grade[] = [\n { label: '2', key: '2', sup: 'nd' },\n { label: '3', key: '3', sup: 'rd' },\n { label: '4', key: '4', sup: 'th' },\n { label: '5', key: '5', sup: 'th' },\n { label: '6', key: '6', sup: 'th' },\n { label: '7', key: '7', sup: 'th' },\n { label: '8', key: '8', sup: 'th' },\n { label: '9', key: '9', sup: 'th' },\n { label: '10', key: '10', sup: 'th' },\n { label: '11', key: '11', sup: 'th' },\n { label: '12', key: '12', sup: 'th' },\n];\n\nexport const MIN_HEIGHT_TO_SUPPORT = 540;\nexport const ACTUAL_WIDTH = 440;\nexport const ACTUAL_HEIGHT = 640;\n\nconst widthRatio = window.innerWidth / ACTUAL_WIDTH;\nconst heightRatio = window.innerHeight / ACTUAL_HEIGHT;\nconst ratio = Math.min(widthRatio, heightRatio);\n\nexport const CONTAINER_HEIGHT = Math.min(ACTUAL_HEIGHT * ratio, ACTUAL_HEIGHT);\nexport const CONTAINER_WIDTH = Math.min(ACTUAL_WIDTH * ratio, ACTUAL_WIDTH);\n"],"names":["userIsEnrolledCases","State","userIsOnTrialCases","GRADES","ACTUAL_WIDTH","ACTUAL_HEIGHT","widthRatio","heightRatio","ratio","CONTAINER_HEIGHT","CONTAINER_WIDTH"],"mappings":";AAIO,MAAMA,IAAsB,CAACC,EAAM,QAAQA,EAAM,QAAQA,EAAM,IAAI,GAC7DC,IAAqB,CAACD,EAAM,OAAOA,EAAM,IAAI,GAE7CE,IAAkB;AAAA,EAC7B,EAAE,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,EAAE,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,EAAE,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,EAAE,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,EAAE,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,EAAE,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,EAAE,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,EAAE,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,EAAE,OAAO,MAAM,KAAK,MAAM,KAAK,KAAK;AAAA,EACpC,EAAE,OAAO,MAAM,KAAK,MAAM,KAAK,KAAK;AAAA,EACpC,EAAE,OAAO,MAAM,KAAK,MAAM,KAAK,KAAK;AACtC,GAGaC,IAAe,KACfC,IAAgB,KAEvBC,IAAa,OAAO,aAAaF,GACjCG,IAAc,OAAO,cAAcF,GACnCG,IAAQ,KAAK,IAAIF,GAAYC,CAAW,GAEjCE,IAAmB,KAAK,IAAIJ,IAAgBG,GAAOH,CAAa,GAChEK,IAAkB,KAAK,IAAIN,IAAeI,GAAOJ,CAAY;"}
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../src/features/circle-games/sign-up/constants.ts"],"sourcesContent":["import type { Grade } from './comp/grade-input/grade-input-types';\n\nimport { State } from './sign-up-types';\n\nexport const userIsEnrolledCases = [State.ACTIVE, State.PAUSED, State.PAID];\nexport const userIsOnTrialCases = [State.TRIAL, State.DEMO];\n\nexport const GRADES: Grade[] = [\n { label: 'KG', key: '0' },\n { label: '1', key: '1', sup: 'st' },\n { label: '2', key: '2', sup: 'nd' },\n { label: '3', key: '3', sup: 'rd' },\n { label: '4', key: '4', sup: 'th' },\n { label: '5', key: '5', sup: 'th' },\n { label: '6', key: '6', sup: 'th' },\n { label: '7', key: '7', sup: 'th' },\n { label: '8', key: '8', sup: 'th' },\n { label: '9', key: '9', sup: 'th' },\n { label: '10', key: '10', sup: 'th' },\n { label: '11', key: '11', sup: 'th' },\n { label: '12', key: '12', sup: 'th' },\n];\n\nexport const MIN_HEIGHT_TO_SUPPORT = 540;\nexport const ACTUAL_WIDTH = 440;\nexport const ACTUAL_HEIGHT = 640;\n\nconst widthRatio = window.innerWidth / ACTUAL_WIDTH;\nconst heightRatio = window.innerHeight / ACTUAL_HEIGHT;\nconst ratio = Math.min(widthRatio, heightRatio);\n\nexport const CONTAINER_HEIGHT = Math.min(ACTUAL_HEIGHT * ratio, ACTUAL_HEIGHT);\nexport const CONTAINER_WIDTH = Math.min(ACTUAL_WIDTH * ratio, ACTUAL_WIDTH);\n"],"names":["userIsEnrolledCases","State","userIsOnTrialCases","GRADES","ACTUAL_WIDTH","ACTUAL_HEIGHT","widthRatio","heightRatio","ratio","CONTAINER_HEIGHT","CONTAINER_WIDTH"],"mappings":";AAIO,MAAMA,IAAsB,CAACC,EAAM,QAAQA,EAAM,QAAQA,EAAM,IAAI,GAC7DC,IAAqB,CAACD,EAAM,OAAOA,EAAM,IAAI,GAE7CE,IAAkB;AAAA,EAC7B,EAAE,OAAO,MAAM,KAAK,IAAI;AAAA,EACxB,EAAE,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,EAAE,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,EAAE,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,EAAE,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,EAAE,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,EAAE,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,EAAE,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,EAAE,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,EAAE,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,EAAE,OAAO,MAAM,KAAK,MAAM,KAAK,KAAK;AAAA,EACpC,EAAE,OAAO,MAAM,KAAK,MAAM,KAAK,KAAK;AAAA,EACpC,EAAE,OAAO,MAAM,KAAK,MAAM,KAAK,KAAK;AACtC,GAGaC,IAAe,KACfC,IAAgB,KAEvBC,IAAa,OAAO,aAAaF,GACjCG,IAAc,OAAO,cAAcF,GACnCG,IAAQ,KAAK,IAAIF,GAAYC,CAAW,GAEjCE,IAAmB,KAAK,IAAIJ,IAAgBG,GAAOH,CAAa,GAChEK,IAAkB,KAAK,IAAIN,IAAeI,GAAOJ,CAAY;"}
|
@@ -1,72 +1,72 @@
|
|
1
|
-
import { useMessageBrokerChannel as
|
2
|
-
import { useMemo as
|
3
|
-
const
|
1
|
+
import { useMessageBrokerChannel as $ } from "@cuemath/cue-message-broker";
|
2
|
+
import { useMemo as C, useState as j, useRef as z, useCallback as f } from "react";
|
3
|
+
const M = (e) => ({
|
4
4
|
userId: e.userId,
|
5
5
|
data: e.data,
|
6
6
|
height: e.height,
|
7
7
|
responseId: e.responseId
|
8
|
-
}),
|
9
|
-
var
|
8
|
+
}), A = (e) => {
|
9
|
+
var a, i;
|
10
10
|
const n = {};
|
11
11
|
if (!e) return n;
|
12
12
|
for (const { message: u } of e) {
|
13
|
-
const t = (
|
13
|
+
const t = (a = u.payload) == null ? void 0 : a.eventPayload, r = t == null ? void 0 : t.responseId;
|
14
14
|
if (!(t != null && t.responseId)) continue;
|
15
|
-
const
|
16
|
-
|
15
|
+
const c = M(t);
|
16
|
+
r && n[r] ? (i = n[r]) == null || i.push(c) : n[r] = [c];
|
17
17
|
}
|
18
18
|
return n;
|
19
|
-
},
|
20
|
-
const u =
|
21
|
-
() =>
|
22
|
-
[
|
23
|
-
), [t,
|
19
|
+
}, E = (e, n, a, i = "canvas") => {
|
20
|
+
const u = C(
|
21
|
+
() => A(a),
|
22
|
+
[a]
|
23
|
+
), [t, r] = j(void 0), c = z({}), g = i === "canvas" || e.includes("practice") ? 0 : 24, S = C(
|
24
24
|
() => ({
|
25
25
|
channelId: e,
|
26
|
-
ttl:
|
26
|
+
ttl: g,
|
27
27
|
logger: n
|
28
28
|
}),
|
29
|
-
[e, n,
|
30
|
-
),
|
31
|
-
|
32
|
-
}, []),
|
29
|
+
[e, n, g]
|
30
|
+
), b = f((k, l) => {
|
31
|
+
c.current = { ...c.current, [k]: l };
|
32
|
+
}, []), D = f(
|
33
33
|
(k, l) => {
|
34
34
|
const h = u;
|
35
|
-
k.forEach((
|
35
|
+
k.forEach((F) => {
|
36
36
|
var I;
|
37
|
-
const { payload:
|
38
|
-
if (!l &&
|
39
|
-
|
40
|
-
data:
|
41
|
-
height:
|
42
|
-
userId:
|
43
|
-
responseId:
|
37
|
+
const { payload: O } = F.message, { eventPayload: s } = O, o = s == null ? void 0 : s.responseId, v = s == null ? void 0 : s.data, H = s == null ? void 0 : s.userId, W = s == null ? void 0 : s.height, p = c.current[o];
|
38
|
+
if (!l && p)
|
39
|
+
p({
|
40
|
+
data: v,
|
41
|
+
height: W,
|
42
|
+
userId: H,
|
43
|
+
responseId: o
|
44
44
|
});
|
45
45
|
else {
|
46
|
-
const
|
47
|
-
|
46
|
+
const m = M(s);
|
47
|
+
o && h[o] ? (I = h[o]) == null || I.push(m) : h[o] = [m];
|
48
48
|
}
|
49
|
-
}),
|
49
|
+
}), r(h);
|
50
50
|
},
|
51
51
|
[u]
|
52
|
-
), { publish:
|
53
|
-
channelOptions:
|
54
|
-
consumerFn:
|
55
|
-
metadataRequired:
|
56
|
-
}),
|
52
|
+
), { publish: R, channelStatus: q, channel: d, channelMetadata: B, setChannelMetadata: w } = $({
|
53
|
+
channelOptions: S,
|
54
|
+
consumerFn: D,
|
55
|
+
metadataRequired: i === "whiteboard"
|
56
|
+
}), x = f(() => {
|
57
57
|
d && d.destroyChannel();
|
58
58
|
}, [d]);
|
59
59
|
return {
|
60
|
-
publishStrokes:
|
61
|
-
channelStatus:
|
62
|
-
closeChannel:
|
60
|
+
publishStrokes: R,
|
61
|
+
channelStatus: q,
|
62
|
+
closeChannel: x,
|
63
63
|
initialStrokesData: t,
|
64
|
-
registerCallback:
|
65
|
-
setChannelMetadata:
|
66
|
-
channelMetadata:
|
64
|
+
registerCallback: b,
|
65
|
+
setChannelMetadata: w,
|
66
|
+
channelMetadata: B
|
67
67
|
};
|
68
|
-
},
|
68
|
+
}, K = E;
|
69
69
|
export {
|
70
|
-
|
70
|
+
K as default
|
71
71
|
};
|
72
72
|
//# sourceMappingURL=use-canvas-sync-broker.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-canvas-sync-broker.js","sources":["../../../../src/features/cue-canvas/hooks/use-canvas-sync-broker.ts"],"sourcesContent":["import type {\n IActionData,\n ICanvasUpdateConfig,\n IPublishData,\n TCueCanvasChangeDataObject,\n TRenderAs,\n} from '../types/cue-canvas';\n\nimport { useMessageBrokerChannel, type IChannelMessage } from '@cuemath/cue-message-broker';\nimport { useMemo, useCallback, useState, useRef } from 'react';\n\ninterface IMessage {\n eventName: string;\n eventPayload: {\n responseId: string;\n data: TCueCanvasChangeDataObject;\n userId: string;\n height: number;\n };\n}\n\nconst extractStrokeData = (payload: IMessage['eventPayload']): IActionData => ({\n userId: payload.userId,\n data: payload.data,\n height: payload.height,\n responseId: payload.responseId,\n});\n\nconst getCanvasDataFromInitialData = (\n initialCanvasData: Array<IChannelMessage> | undefined,\n): Record<string, IActionData[]> => {\n const map: Record<string, IActionData[]> = {};\n\n if (!initialCanvasData) return map;\n\n for (const { message } of initialCanvasData) {\n const payload = (message.payload as IMessage)?.eventPayload;\n const qrId = payload?.responseId;\n\n if (!payload?.responseId) continue;\n\n const strokeData = extractStrokeData(payload);\n\n if (qrId && map[qrId]) {\n map[qrId]?.push(strokeData);\n } else {\n map[qrId] = [strokeData];\n }\n }\n\n return map;\n};\n\nconst useCanvasSyncBroker = (\n channelId: string,\n logEvent: (type: string, payload?: Record<string, unknown>) => void,\n initialCanvasData?: Array<IChannelMessage>,\n type: TRenderAs = 'canvas',\n) => {\n const initialCanvasDataMap = useMemo(\n () => getCanvasDataFromInitialData(initialCanvasData),\n [initialCanvasData],\n );\n const [initialStrokesData, setInitialStrokesData] = useState<\n Record<string, IActionData[]> | undefined\n >(undefined);\n const callbacksMapRef = useRef<Record<string, (data: IActionData) => void>>({});\n\n const channelOptions = useMemo(\n () => ({\n channelId,\n ttl:
|
1
|
+
{"version":3,"file":"use-canvas-sync-broker.js","sources":["../../../../src/features/cue-canvas/hooks/use-canvas-sync-broker.ts"],"sourcesContent":["import type {\n IActionData,\n ICanvasUpdateConfig,\n IPublishData,\n TCueCanvasChangeDataObject,\n TRenderAs,\n} from '../types/cue-canvas';\n\nimport { useMessageBrokerChannel, type IChannelMessage } from '@cuemath/cue-message-broker';\nimport { useMemo, useCallback, useState, useRef } from 'react';\n\ninterface IMessage {\n eventName: string;\n eventPayload: {\n responseId: string;\n data: TCueCanvasChangeDataObject;\n userId: string;\n height: number;\n };\n}\n\nconst extractStrokeData = (payload: IMessage['eventPayload']): IActionData => ({\n userId: payload.userId,\n data: payload.data,\n height: payload.height,\n responseId: payload.responseId,\n});\n\nconst getCanvasDataFromInitialData = (\n initialCanvasData: Array<IChannelMessage> | undefined,\n): Record<string, IActionData[]> => {\n const map: Record<string, IActionData[]> = {};\n\n if (!initialCanvasData) return map;\n\n for (const { message } of initialCanvasData) {\n const payload = (message.payload as IMessage)?.eventPayload;\n const qrId = payload?.responseId;\n\n if (!payload?.responseId) continue;\n\n const strokeData = extractStrokeData(payload);\n\n if (qrId && map[qrId]) {\n map[qrId]?.push(strokeData);\n } else {\n map[qrId] = [strokeData];\n }\n }\n\n return map;\n};\n\nconst useCanvasSyncBroker = (\n channelId: string,\n logEvent: (type: string, payload?: Record<string, unknown>) => void,\n initialCanvasData?: Array<IChannelMessage>,\n type: TRenderAs = 'canvas',\n) => {\n const initialCanvasDataMap = useMemo(\n () => getCanvasDataFromInitialData(initialCanvasData),\n [initialCanvasData],\n );\n const [initialStrokesData, setInitialStrokesData] = useState<\n Record<string, IActionData[]> | undefined\n >(undefined);\n const callbacksMapRef = useRef<Record<string, (data: IActionData) => void>>({});\n const ttl = type === 'canvas' ? 0 : channelId.includes('practice') ? 0 : 24;\n\n const channelOptions = useMemo(\n () => ({\n channelId,\n ttl: ttl,\n logger: logEvent,\n }),\n [channelId, logEvent, ttl],\n );\n\n const registerCallback = useCallback((qrId: string, cb: (data: IActionData) => void) => {\n callbacksMapRef.current = { ...callbacksMapRef.current, [qrId]: cb };\n }, []);\n\n const onMessageReceive = useCallback(\n (messages: Array<IChannelMessage>, initialData?: boolean) => {\n const strokesPerWidgetMap: Record<string, Array<IActionData>> = initialCanvasDataMap;\n\n messages.forEach(message => {\n const { payload } = message.message;\n const { eventPayload } = payload as IMessage;\n const qrId = eventPayload?.responseId as string;\n const strokes = eventPayload?.data;\n const userId = eventPayload?.userId;\n const canvasHeight = eventPayload?.height;\n const widgetOnReceiveCallback = callbacksMapRef.current[qrId];\n\n if (!initialData && widgetOnReceiveCallback) {\n widgetOnReceiveCallback({\n data: strokes,\n height: canvasHeight,\n userId,\n responseId: qrId,\n });\n } else {\n const strokeData = extractStrokeData(eventPayload);\n\n if (qrId && strokesPerWidgetMap[qrId]) {\n strokesPerWidgetMap[qrId]?.push(strokeData);\n } else {\n strokesPerWidgetMap[qrId] = [strokeData];\n }\n }\n });\n setInitialStrokesData(strokesPerWidgetMap);\n },\n [initialCanvasDataMap],\n );\n\n const { publish, channelStatus, channel, channelMetadata, setChannelMetadata } =\n useMessageBrokerChannel<IPublishData, ICanvasUpdateConfig>({\n channelOptions,\n consumerFn: onMessageReceive,\n metadataRequired: type === 'whiteboard',\n });\n\n const closeChannel = useCallback(() => {\n if (channel) {\n channel.destroyChannel();\n }\n }, [channel]);\n\n return {\n publishStrokes: publish,\n channelStatus,\n closeChannel,\n initialStrokesData,\n registerCallback,\n setChannelMetadata,\n channelMetadata,\n };\n};\n\nexport default useCanvasSyncBroker;\n"],"names":["extractStrokeData","payload","getCanvasDataFromInitialData","initialCanvasData","map","message","_a","qrId","strokeData","_b","useCanvasSyncBroker","channelId","logEvent","type","initialCanvasDataMap","useMemo","initialStrokesData","setInitialStrokesData","useState","callbacksMapRef","useRef","ttl","channelOptions","registerCallback","useCallback","cb","onMessageReceive","messages","initialData","strokesPerWidgetMap","eventPayload","strokes","userId","canvasHeight","widgetOnReceiveCallback","publish","channelStatus","channel","channelMetadata","setChannelMetadata","useMessageBrokerChannel","closeChannel","useCanvasSyncBroker$1"],"mappings":"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"}
|
@@ -1,17 +1,19 @@
|
|
1
1
|
import { jsx as i, jsxs as g, Fragment as m } from "react/jsx-runtime";
|
2
2
|
import L from "../../../../node_modules/lodash.throttle/index.js";
|
3
|
-
import { useState as
|
3
|
+
import { useState as a, useEffect as O, useMemo as p } from "react";
|
4
|
+
import { useTheme as $ } from "styled-components";
|
4
5
|
import c from "../../../ui/arrow-tooltip/arrow-tooltip.js";
|
5
6
|
import R from "../../../ui/nudge/nudge.js";
|
6
|
-
import
|
7
|
+
import A from "../../../ui/portal/portal.js";
|
8
|
+
import { EDeviceType as X } from "../../../ui/theme/constants.js";
|
7
9
|
import { IndicatorType as u } from "../../use-journey/constants.js";
|
8
|
-
import { CoachmarkBody as
|
9
|
-
import { getTooltipXCoordinates as
|
10
|
-
const
|
10
|
+
import { CoachmarkBody as Y, ClonedElementWrapper as h } from "./coachmark-styled.js";
|
11
|
+
import { getTooltipXCoordinates as x } from "./coachmark-utils.js";
|
12
|
+
const S = ({
|
11
13
|
coachmark: e,
|
12
14
|
isInsideScrollView: T
|
13
15
|
}) => {
|
14
|
-
const t = e.originalElementToHighlightRef.current,
|
16
|
+
const t = e.originalElementToHighlightRef.current, { device: C, zIndex: I } = $(), [P, v] = a(() => {
|
15
17
|
const o = t == null ? void 0 : t.getBoundingClientRect();
|
16
18
|
return {
|
17
19
|
top: ((o == null ? void 0 : o.top) ?? 0) + window.scrollY,
|
@@ -19,32 +21,32 @@ const V = ({
|
|
19
21
|
width: (o == null ? void 0 : o.width) ?? 0,
|
20
22
|
height: (o == null ? void 0 : o.height) ?? 0
|
21
23
|
};
|
22
|
-
}),
|
24
|
+
}), r = L(() => {
|
23
25
|
const o = t == null ? void 0 : t.getBoundingClientRect();
|
24
|
-
o &&
|
26
|
+
o && v({
|
25
27
|
top: o.top + window.scrollY,
|
26
28
|
left: o.left + window.scrollX,
|
27
29
|
width: o.width,
|
28
30
|
height: o.height
|
29
31
|
});
|
30
32
|
}, 100), {
|
31
|
-
top:
|
33
|
+
top: n = 0,
|
32
34
|
left: l = 0,
|
33
|
-
height:
|
34
|
-
width:
|
35
|
-
} = T ?
|
36
|
-
O(() => (window.addEventListener("resize",
|
37
|
-
window.removeEventListener("resize",
|
38
|
-
}), [
|
39
|
-
const
|
35
|
+
height: E = 0,
|
36
|
+
width: b = 0
|
37
|
+
} = T ? P : (t == null ? void 0 : t.getBoundingClientRect()) ?? {};
|
38
|
+
O(() => (window.addEventListener("resize", r), window.addEventListener("scroll", r), () => {
|
39
|
+
window.removeEventListener("resize", r), window.removeEventListener("scroll", r);
|
40
|
+
}), [r, t]);
|
41
|
+
const f = C === X.MOBILE, d = I.JOURNEY_OVERLAY, s = p(() => t ? window.getComputedStyle(t).position === "absolute" : !1, [t]), w = p(() => {
|
40
42
|
const o = e.indicator;
|
41
43
|
return {
|
42
|
-
width:
|
44
|
+
width: f ? 246 : 264,
|
43
45
|
// Can be over ridden
|
44
|
-
tooltipXCoOrdinates:
|
46
|
+
tooltipXCoOrdinates: x(o),
|
45
47
|
zIndex: d + 1,
|
46
48
|
...o,
|
47
|
-
tooltipItem: /* @__PURE__ */ i(
|
49
|
+
tooltipItem: /* @__PURE__ */ i(Y, { children: o.tooltipItem }),
|
48
50
|
alwaysVisible: !0,
|
49
51
|
renderAs: "primary",
|
50
52
|
// Deprecate this
|
@@ -54,31 +56,31 @@ const V = ({
|
|
54
56
|
type: u.TOOLTIP,
|
55
57
|
isAnimated: !0
|
56
58
|
};
|
57
|
-
}, [d, e.indicator,
|
59
|
+
}, [d, e.indicator, f]), y = p(() => {
|
58
60
|
const o = e.indicator;
|
59
61
|
return {
|
60
62
|
...o,
|
61
63
|
nudgePointerX: l + (o.nudgePointerX ?? 0),
|
62
|
-
nudgePointerY:
|
64
|
+
nudgePointerY: n + (o.nudgePointerY ?? 0)
|
63
65
|
};
|
64
|
-
}, [e.indicator, l,
|
66
|
+
}, [e.indicator, l, n]);
|
65
67
|
return !t || !e.isActive ? null : e.type === u.TOOLTIP ? s ? /* @__PURE__ */ g(m, { children: [
|
66
68
|
e.elementToHighlight,
|
67
|
-
/* @__PURE__ */ i(h, { $position: "absolute", $top:
|
68
|
-
] }) : /* @__PURE__ */ i(h, { $position: "absolute", $top:
|
69
|
+
/* @__PURE__ */ i(h, { $position: "absolute", $top: n, $left: l, children: /* @__PURE__ */ i(c, { ...w, children: /* @__PURE__ */ i("div", { style: { height: E, width: b } }) }) })
|
70
|
+
] }) : /* @__PURE__ */ i(h, { $position: "absolute", $top: n, $left: l, children: /* @__PURE__ */ i(c, { ...w, children: e.elementToHighlight }) }) : e.type === u.NUDGE ? /* @__PURE__ */ g(m, { children: [
|
69
71
|
/* @__PURE__ */ i(
|
70
72
|
h,
|
71
73
|
{
|
72
|
-
$top: s ? 0 :
|
74
|
+
$top: s ? 0 : n,
|
73
75
|
$left: s ? 0 : l,
|
74
76
|
$position: s ? "relative" : "absolute",
|
75
77
|
children: e.elementToHighlight
|
76
78
|
}
|
77
79
|
),
|
78
|
-
/* @__PURE__ */ i(R, { zIndex: d + 1, ...
|
80
|
+
/* @__PURE__ */ i(A, { portalId: "tooltip-root", children: /* @__PURE__ */ i(R, { zIndex: d + 1, ...y }) })
|
79
81
|
] }) : null;
|
80
82
|
};
|
81
83
|
export {
|
82
|
-
|
84
|
+
S as Coachmark
|
83
85
|
};
|
84
86
|
//# sourceMappingURL=coachmark.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"coachmark.js","sources":["../../../../../src/features/journey/comps/coachmark/coachmark.tsx"],"sourcesContent":["import type { IArrowTooltipProps } from '../../../ui/arrow-tooltip/arrow-tooltip-types';\nimport type { INudgeProps } from '../../../ui/nudge/nudge-types';\nimport type { ICoachmarkProps } from '../../use-journey/journey-context-types';\n\nimport throttle from 'lodash.throttle';\nimport React, { useEffect, useMemo, useState } from 'react';\n\nimport ArrowTooltip from '../../../ui/arrow-tooltip/arrow-tooltip';\nimport Nudge from '../../../ui/nudge/nudge';\nimport {
|
1
|
+
{"version":3,"file":"coachmark.js","sources":["../../../../../src/features/journey/comps/coachmark/coachmark.tsx"],"sourcesContent":["import type { IArrowTooltipProps } from '../../../ui/arrow-tooltip/arrow-tooltip-types';\nimport type { INudgeProps } from '../../../ui/nudge/nudge-types';\nimport type { ICoachmarkProps } from '../../use-journey/journey-context-types';\n\nimport throttle from 'lodash.throttle';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport ArrowTooltip from '../../../ui/arrow-tooltip/arrow-tooltip';\nimport Nudge from '../../../ui/nudge/nudge';\nimport Portal from '../../../ui/portal/portal';\nimport { EDeviceType } from '../../../ui/theme/constants';\nimport { IndicatorType } from '../../use-journey/constants';\nimport * as S from './coachmark-styled';\nimport { getTooltipXCoordinates } from './coachmark-utils';\n\nexport const Coachmark: React.FC<{ coachmark: ICoachmarkProps; isInsideScrollView: boolean }> = ({\n coachmark,\n isInsideScrollView,\n}) => {\n const targetElement = coachmark.originalElementToHighlightRef.current;\n const { device, zIndex } = useTheme();\n\n const [position, setPosition] = useState(() => {\n const rect = targetElement?.getBoundingClientRect();\n\n return {\n top: (rect?.top ?? 0) + window.scrollY,\n left: rect?.left ?? 0 + window.scrollX,\n width: rect?.width ?? 0,\n height: rect?.height ?? 0,\n };\n });\n\n const handlePositionChange = throttle(() => {\n const rect = targetElement?.getBoundingClientRect();\n\n if (rect) {\n setPosition({\n top: rect.top + window.scrollY,\n left: rect.left + window.scrollX,\n width: rect.width,\n height: rect.height,\n });\n }\n }, 100);\n\n const {\n top = 0,\n left = 0,\n height = 0,\n width = 0,\n } = isInsideScrollView ? position : targetElement?.getBoundingClientRect() ?? {};\n\n useEffect(() => {\n window.addEventListener('resize', handlePositionChange);\n window.addEventListener('scroll', handlePositionChange);\n\n return () => {\n window.removeEventListener('resize', handlePositionChange);\n window.removeEventListener('scroll', handlePositionChange);\n };\n }, [handlePositionChange, targetElement]);\n\n const isMobile = device === EDeviceType.MOBILE;\n\n const BLUR_OVERLAY_Z_INDEX = zIndex.JOURNEY_OVERLAY;\n\n const isAbsolute = useMemo(() => {\n if (!targetElement) return false;\n\n return window.getComputedStyle(targetElement).position === 'absolute';\n }, [targetElement]);\n\n const tooltipProps = useMemo(() => {\n const arrowToolTipProps = coachmark.indicator as IArrowTooltipProps;\n\n return {\n width: isMobile ? 246 : 264, // Can be over ridden\n tooltipXCoOrdinates: getTooltipXCoordinates(arrowToolTipProps),\n zIndex: BLUR_OVERLAY_Z_INDEX + 1,\n ...arrowToolTipProps,\n tooltipItem: <S.CoachmarkBody>{arrowToolTipProps.tooltipItem}</S.CoachmarkBody>,\n alwaysVisible: true,\n renderAs: 'primary', // Deprecate this\n borderWidth: 1,\n arrowColor: arrowToolTipProps.arrowColor || 'WHITE',\n borderColor: arrowToolTipProps.borderColor || 'WHITE',\n type: IndicatorType.TOOLTIP,\n isAnimated: true,\n } as IArrowTooltipProps;\n }, [BLUR_OVERLAY_Z_INDEX, coachmark.indicator, isMobile]);\n\n const nudgeProps = useMemo(() => {\n const props: INudgeProps = coachmark.indicator as INudgeProps;\n\n return {\n ...props,\n nudgePointerX: left + (props.nudgePointerX ?? 0),\n nudgePointerY: top + (props.nudgePointerY ?? 0),\n };\n }, [coachmark.indicator, left, top]);\n\n if (!targetElement || !coachmark.isActive) {\n return null;\n }\n\n if (coachmark.type === IndicatorType.TOOLTIP) {\n if (isAbsolute) {\n return (\n <>\n {coachmark.elementToHighlight}\n <S.ClonedElementWrapper $position=\"absolute\" $top={top} $left={left}>\n <ArrowTooltip {...tooltipProps}>\n <div style={{ height, width }} />\n </ArrowTooltip>\n </S.ClonedElementWrapper>\n </>\n );\n }\n\n return (\n <S.ClonedElementWrapper $position=\"absolute\" $top={top} $left={left}>\n <ArrowTooltip {...tooltipProps}>{coachmark.elementToHighlight}</ArrowTooltip>\n </S.ClonedElementWrapper>\n );\n }\n\n if (coachmark.type === IndicatorType.NUDGE) {\n return (\n <>\n <S.ClonedElementWrapper\n $top={isAbsolute ? 0 : top}\n $left={isAbsolute ? 0 : left}\n $position={isAbsolute ? 'relative' : 'absolute'}\n >\n {coachmark.elementToHighlight}\n </S.ClonedElementWrapper>\n <Portal portalId=\"tooltip-root\">\n <Nudge zIndex={BLUR_OVERLAY_Z_INDEX + 1} {...nudgeProps} />\n </Portal>\n </>\n );\n }\n\n return null;\n};\n"],"names":["Coachmark","coachmark","isInsideScrollView","targetElement","device","zIndex","useTheme","position","setPosition","useState","rect","handlePositionChange","throttle","top","left","height","width","useEffect","isMobile","EDeviceType","BLUR_OVERLAY_Z_INDEX","isAbsolute","useMemo","tooltipProps","arrowToolTipProps","getTooltipXCoordinates","jsx","S.CoachmarkBody","IndicatorType","nudgeProps","props","jsxs","Fragment","S.ClonedElementWrapper","ArrowTooltip","Portal","Nudge"],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
var
|
1
|
+
var R = /* @__PURE__ */ ((E) => (E.CIRCLE_ACTIVITIES_INTRO_JOURNEY = "CIRCLE_ACTIVITIES_INTRO_JOURNEY", E.CIRCLE_LEADERBOARD_INTRO_JOURNEY = "CIRCLE_LEADERBOARD_INTRO_JOURNEY", E.CIRCLE_POINTS_REWARD_JOURNEY = "CIRCLE_POINTS_REWARD_JOURNEY", E.CIRCLE_STREAK_UPDATE_JOURNEY = "CIRCLE_STREAK_UPDATE_JOURNEY", E.CIRCLE_TUTORIAL_JOURNEY = "CIRCLE_TUTORIAL_JOURNEY", E.CIRCLE_TABLES_INTRO_JOURNEY = "CIRCLE_TABLES_INTRO_JOURNEY", E.CIRCLE_TABLES_INFINTE_JOURNEY = "CIRCLE_TABLES_INFINITE_JOURNEY", E.CIRCLE_LESSONS_K_1_INTRO_JOURNEY = "CIRCLE_LESSONS_K_1_INTRO_JOURNEY", E.HOMEPAGE_JOURNEY = "HOMEPAGE_JOURNEY", E.CHAPTER_PAGE_JOURNEY = "CHAPTER_PAGE_JOURNEY", E.CHALLENGE_ARENA_JOURNEY = "CHALLENGE_ARENA_JOURNEY", E))(R || {});
|
2
2
|
export {
|
3
|
-
|
3
|
+
R as JOURNEY_ID_STUDENT
|
4
4
|
};
|
5
5
|
//# sourceMappingURL=journey-id-student.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"journey-id-student.js","sources":["../../../../src/features/journey/journey-id/journey-id-student.ts"],"sourcesContent":["export enum JOURNEY_ID_STUDENT {\n CIRCLE_ACTIVITIES_INTRO_JOURNEY = 'CIRCLE_ACTIVITIES_INTRO_JOURNEY',\n CIRCLE_LEADERBOARD_INTRO_JOURNEY = 'CIRCLE_LEADERBOARD_INTRO_JOURNEY',\n CIRCLE_POINTS_REWARD_JOURNEY = 'CIRCLE_POINTS_REWARD_JOURNEY',\n CIRCLE_STREAK_UPDATE_JOURNEY = 'CIRCLE_STREAK_UPDATE_JOURNEY',\n CIRCLE_TUTORIAL_JOURNEY = 'CIRCLE_TUTORIAL_JOURNEY',\n CIRCLE_TABLES_INTRO_JOURNEY = 'CIRCLE_TABLES_INTRO_JOURNEY',\n CIRCLE_TABLES_INFINTE_JOURNEY = 'CIRCLE_TABLES_INFINITE_JOURNEY',\n CIRCLE_LESSONS_K_1_INTRO_JOURNEY = 'CIRCLE_LESSONS_K_1_INTRO_JOURNEY',\n\n // TODO: Deprecate bottom journeys, they are not actually journeys\n
|
1
|
+
{"version":3,"file":"journey-id-student.js","sources":["../../../../src/features/journey/journey-id/journey-id-student.ts"],"sourcesContent":["export enum JOURNEY_ID_STUDENT {\n CIRCLE_ACTIVITIES_INTRO_JOURNEY = 'CIRCLE_ACTIVITIES_INTRO_JOURNEY',\n CIRCLE_LEADERBOARD_INTRO_JOURNEY = 'CIRCLE_LEADERBOARD_INTRO_JOURNEY',\n CIRCLE_POINTS_REWARD_JOURNEY = 'CIRCLE_POINTS_REWARD_JOURNEY',\n CIRCLE_STREAK_UPDATE_JOURNEY = 'CIRCLE_STREAK_UPDATE_JOURNEY',\n CIRCLE_TUTORIAL_JOURNEY = 'CIRCLE_TUTORIAL_JOURNEY',\n CIRCLE_TABLES_INTRO_JOURNEY = 'CIRCLE_TABLES_INTRO_JOURNEY',\n CIRCLE_TABLES_INFINTE_JOURNEY = 'CIRCLE_TABLES_INFINITE_JOURNEY',\n CIRCLE_LESSONS_K_1_INTRO_JOURNEY = 'CIRCLE_LESSONS_K_1_INTRO_JOURNEY',\n\n // TODO: Deprecate bottom journeys, they are not actually journeys\n HOMEPAGE_JOURNEY = 'HOMEPAGE_JOURNEY',\n CHAPTER_PAGE_JOURNEY = 'CHAPTER_PAGE_JOURNEY',\n CHALLENGE_ARENA_JOURNEY = 'CHALLENGE_ARENA_JOURNEY',\n}\n"],"names":["JOURNEY_ID_STUDENT"],"mappings":"AAAY,IAAAA,sBAAAA,OACVA,EAAA,kCAAkC,mCAClCA,EAAA,mCAAmC,oCACnCA,EAAA,+BAA+B,gCAC/BA,EAAA,+BAA+B,gCAC/BA,EAAA,0BAA0B,2BAC1BA,EAAA,8BAA8B,+BAC9BA,EAAA,gCAAgC,kCAChCA,EAAA,mCAAmC,oCAGnCA,EAAA,mBAAmB,oBACnBA,EAAA,uBAAuB,wBACvBA,EAAA,0BAA0B,2BAbhBA,IAAAA,KAAA,CAAA,CAAA;"}
|