@cuemath/leap 2.8.54-hg1 → 2.8.55-as1

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.
Files changed (20) hide show
  1. package/dist/features/analytics-events/platform-events-teacher.js +11 -6
  2. package/dist/features/analytics-events/platform-events-teacher.js.map +1 -1
  3. package/dist/features/circle-games/game-launcher/api/get-content-for-today/get-circle-home-api.js +4 -3
  4. package/dist/features/circle-games/game-launcher/api/get-content-for-today/get-circle-home-api.js.map +1 -1
  5. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js +39 -26
  6. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js.map +1 -1
  7. package/dist/features/circle-games/game-launcher/dal/use-post-update-circle-journey-dal/use-post-update-circle-journey-dal.js +11 -11
  8. package/dist/features/circle-games/game-launcher/dal/use-post-update-circle-journey-dal/use-post-update-circle-journey-dal.js.map +1 -1
  9. package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/constants.js +10 -9
  10. package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/constants.js.map +1 -1
  11. package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/use-table-launcher-journey.js +131 -126
  12. package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/use-table-launcher-journey.js.map +1 -1
  13. package/dist/features/circle-games/games/tutorial/tutorial.js +13 -14
  14. package/dist/features/circle-games/games/tutorial/tutorial.js.map +1 -1
  15. package/dist/features/hooks/use-auto-play-permission/use-auto-play-permission-context-provider.js +10 -10
  16. package/dist/features/hooks/use-auto-play-permission/use-auto-play-permission-context-provider.js.map +1 -1
  17. package/dist/features/sheets/utils/is-v3-worksheet.js +9 -9
  18. package/dist/features/sheets/utils/is-v3-worksheet.js.map +1 -1
  19. package/dist/index.d.ts +16 -5
  20. package/package.json +1 -1
@@ -1,10 +1,15 @@
1
- import { PLUGINS as r } from "../../node_modules/@cuemath/analytics-v2/dist/constants.js";
2
- var E = /* @__PURE__ */ ((e) => (e.PAGE_VIEWED = "page_viewed", e.RESOURCE_ASSIGNED = "resource_assigned", e))(E || {});
3
- const _ = {
4
- page_viewed: [r.MIXPANEL]
1
+ import { PLUGINS as _ } from "../../node_modules/@cuemath/analytics-v2/dist/constants.js";
2
+ var s = /* @__PURE__ */ ((e) => (e.PAGE_VIEWED = "page_viewed", e.RESOURCE_ASSIGNED = "resource_assigned", e.LESSON_FEEDBACK_POSITIVE = "lesson_feedback_positive", e.LESSON_FEEDBACK_NEGATIVE = "lesson_feedback_negative", e.LESSON_FEEDBACK_BACK_BUTTON = "lesson_feedback_back_button", e.LESSON_FEEDBACK_SUBMIT = "lesson_feedback_submit", e.LESSON_FEEDBACK_NEXT = "lesson_feedback_next", e))(s || {});
3
+ const o = {
4
+ page_viewed: [_.MIXPANEL],
5
+ lesson_feedback_positive: [_.MIXPANEL],
6
+ lesson_feedback_negative: [_.MIXPANEL],
7
+ lesson_feedback_back_button: [_.MIXPANEL],
8
+ lesson_feedback_submit: [_.MIXPANEL],
9
+ lesson_feedback_next: [_.MIXPANEL]
5
10
  };
6
11
  export {
7
- E as PLATFORM_EVENTS_TEACHER,
8
- _ as PLATFORM_WHITELIST_EVENTS_TEACHER
12
+ s as PLATFORM_EVENTS_TEACHER,
13
+ o as PLATFORM_WHITELIST_EVENTS_TEACHER
9
14
  };
10
15
  //# sourceMappingURL=platform-events-teacher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform-events-teacher.js","sources":["../../../src/features/analytics-events/platform-events-teacher.ts"],"sourcesContent":["import { PLUGINS } from '@cuemath/analytics-v2/dist/constants';\n\nexport enum PLATFORM_EVENTS_TEACHER {\n PAGE_VIEWED = 'page_viewed',\n RESOURCE_ASSIGNED = 'resource_assigned',\n}\n\nexport const PLATFORM_WHITELIST_EVENTS_TEACHER = {\n [PLATFORM_EVENTS_TEACHER.PAGE_VIEWED]: [PLUGINS.MIXPANEL],\n};\n"],"names":["PLATFORM_EVENTS_TEACHER","PLATFORM_WHITELIST_EVENTS_TEACHER","PLUGINS"],"mappings":";AAEY,IAAAA,sBAAAA,OACVA,EAAA,cAAc,eACdA,EAAA,oBAAoB,qBAFVA,IAAAA,KAAA,CAAA,CAAA;AAKL,MAAMC,IAAoC;AAAA,EAC9C,aAAsC,CAACC,EAAQ,QAAQ;AAC1D;"}
1
+ {"version":3,"file":"platform-events-teacher.js","sources":["../../../src/features/analytics-events/platform-events-teacher.ts"],"sourcesContent":["import { PLUGINS } from '@cuemath/analytics-v2/dist/constants';\n\nexport enum PLATFORM_EVENTS_TEACHER {\n PAGE_VIEWED = 'page_viewed',\n RESOURCE_ASSIGNED = 'resource_assigned',\n LESSON_FEEDBACK_POSITIVE = 'lesson_feedback_positive',\n LESSON_FEEDBACK_NEGATIVE = 'lesson_feedback_negative',\n LESSON_FEEDBACK_BACK_BUTTON = 'lesson_feedback_back_button',\n LESSON_FEEDBACK_SUBMIT = 'lesson_feedback_submit',\n LESSON_FEEDBACK_NEXT = 'lesson_feedback_next',\n}\n\nexport const PLATFORM_WHITELIST_EVENTS_TEACHER = {\n [PLATFORM_EVENTS_TEACHER.PAGE_VIEWED]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_TEACHER.LESSON_FEEDBACK_POSITIVE]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_TEACHER.LESSON_FEEDBACK_NEGATIVE]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_TEACHER.LESSON_FEEDBACK_BACK_BUTTON]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_TEACHER.LESSON_FEEDBACK_SUBMIT]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_TEACHER.LESSON_FEEDBACK_NEXT]: [PLUGINS.MIXPANEL],\n};\n"],"names":["PLATFORM_EVENTS_TEACHER","PLATFORM_WHITELIST_EVENTS_TEACHER","PLUGINS"],"mappings":";AAEY,IAAAA,sBAAAA,OACVA,EAAA,cAAc,eACdA,EAAA,oBAAoB,qBACpBA,EAAA,2BAA2B,4BAC3BA,EAAA,2BAA2B,4BAC3BA,EAAA,8BAA8B,+BAC9BA,EAAA,yBAAyB,0BACzBA,EAAA,uBAAuB,wBAPbA,IAAAA,KAAA,CAAA,CAAA;AAUL,MAAMC,IAAoC;AAAA,EAC9C,aAAsC,CAACC,EAAQ,QAAQ;AAAA,EACvD,0BAAmD,CAACA,EAAQ,QAAQ;AAAA,EACpE,0BAAmD,CAACA,EAAQ,QAAQ;AAAA,EACpE,6BAAsD,CAACA,EAAQ,QAAQ;AAAA,EACvE,wBAAiD,CAACA,EAAQ,QAAQ;AAAA,EAClE,sBAA+C,CAACA,EAAQ,QAAQ;AACnE;"}
@@ -1,9 +1,10 @@
1
1
  import { createGetAPI as r } from "@cuemath/rest-api";
2
- import { BASE_URL as c } from "./constants.js";
3
- const { useGet: n } = r({
4
- getURL: (m, { user_id: e, country_code: t, grade: o }) => `${c}/circle-home/?intelenrollment_id=${e}&country_code=${t}&grade=${o}`
2
+ import { BASE_URL as i } from "./constants.js";
3
+ const { useGet: n, invalidate: a } = r({
4
+ getURL: (c, { user_id: e, country_code: t, grade: o }) => `${i}/circle-home/?intelenrollment_id=${e}&country_code=${t}&grade=${o}`
5
5
  });
6
6
  export {
7
+ a as invalidateCircleHomeAPI,
7
8
  n as useGetCircleHomeAPI
8
9
  };
9
10
  //# sourceMappingURL=get-circle-home-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-circle-home-api.js","sources":["../../../../../../src/features/circle-games/game-launcher/api/get-content-for-today/get-circle-home-api.ts"],"sourcesContent":["import type {\n IGetCircleHomeResponseModel,\n IGetCircleHomePayloadModel,\n} from './get-circle-home-api-types';\n\nimport { createGetAPI } from '@cuemath/rest-api';\n\nimport { BASE_URL } from './constants';\n\nexport const { useGet: useGetCircleHomeAPI } = createGetAPI<\n IGetCircleHomeResponseModel,\n IGetCircleHomePayloadModel\n>({\n getURL: (_, { user_id, country_code, grade }) =>\n `${BASE_URL}/circle-home/?intelenrollment_id=${user_id}&country_code=${country_code}&grade=${grade}`,\n});\n"],"names":["useGetCircleHomeAPI","createGetAPI","_","user_id","country_code","grade","BASE_URL"],"mappings":";;AASO,MAAM,EAAE,QAAQA,EAAoB,IAAIC,EAG7C;AAAA,EACA,QAAQ,CAACC,GAAG,EAAE,SAAAC,GAAS,cAAAC,GAAc,OAAAC,EAAA,MACnC,GAAGC,CAAQ,oCAAoCH,CAAO,iBAAiBC,CAAY,UAAUC,CAAK;AACtG,CAAC;"}
1
+ {"version":3,"file":"get-circle-home-api.js","sources":["../../../../../../src/features/circle-games/game-launcher/api/get-content-for-today/get-circle-home-api.ts"],"sourcesContent":["import type {\n IGetCircleHomeResponseModel,\n IGetCircleHomePayloadModel,\n} from './get-circle-home-api-types';\n\nimport { createGetAPI } from '@cuemath/rest-api';\n\nimport { BASE_URL } from './constants';\n\nexport const { useGet: useGetCircleHomeAPI, invalidate: invalidateCircleHomeAPI } = createGetAPI<\n IGetCircleHomeResponseModel,\n IGetCircleHomePayloadModel\n>({\n getURL: (_, { user_id, country_code, grade }) =>\n `${BASE_URL}/circle-home/?intelenrollment_id=${user_id}&country_code=${country_code}&grade=${grade}`,\n});\n"],"names":["useGetCircleHomeAPI","invalidateCircleHomeAPI","createGetAPI","_","user_id","country_code","grade","BASE_URL"],"mappings":";;AASO,MAAM,EAAE,QAAQA,GAAqB,YAAYC,EAAA,IAA4BC,EAGlF;AAAA,EACA,QAAQ,CAACC,GAAG,EAAE,SAAAC,GAAS,cAAAC,GAAc,OAAAC,EAAA,MACnC,GAAGC,CAAQ,oCAAoCH,CAAO,iBAAiBC,CAAY,UAAUC,CAAK;AACtG,CAAC;"}
@@ -1,20 +1,27 @@
1
- import { useState as d, useCallback as R, useEffect as E } from "react";
2
- import { useGetCircleHomeAPI as p } from "../../api/get-content-for-today/get-circle-home-api.js";
3
- import { ProjectType as s } from "../../../games/web-view/enums/project-type-enum.js";
4
- const T = (r, o) => {
5
- const [n, _] = d(null), { data: t, get: c, isProcessed: i, ...m } = p(), l = R(
6
- (a) => {
7
- c("", {
8
- user_id: r,
9
- country_code: a,
10
- grade: o
11
- });
12
- },
13
- [c, r, o]
14
- );
15
- return E(() => {
16
- let a = null;
17
- i && t && (a = {
1
+ import { useMemo as C, useState as u, useCallback as l, useEffect as T } from "react";
2
+ import { useGetCircleHomeAPI as I, invalidateCircleHomeAPI as L } from "../../api/get-content-for-today/get-circle-home-api.js";
3
+ import { ProjectType as o } from "../../../games/web-view/enums/project-type-enum.js";
4
+ const A = (a, n, c) => {
5
+ const i = C(
6
+ () => ({
7
+ user_id: a,
8
+ grade: n,
9
+ country_code: c
10
+ }),
11
+ [a, n, c]
12
+ ), [m, R] = u(null), {
13
+ data: t,
14
+ get: _,
15
+ isProcessed: r,
16
+ ...E
17
+ } = I(a, i), d = l(() => {
18
+ _(a, i);
19
+ }, [_, i, a]), p = l(() => {
20
+ L(a, i);
21
+ }, [i, a]);
22
+ return T(() => {
23
+ let s = null;
24
+ r && t && (s = {
18
25
  points: t.points,
19
26
  streakDays: t.streak_days,
20
27
  streakReduction: t.streak_reduction,
@@ -24,7 +31,7 @@ const T = (r, o) => {
24
31
  projects: {
25
32
  games: {
26
33
  label: t.projects.games.label,
27
- type: s.GAME,
34
+ type: o.GAME,
28
35
  initialProgressValue: 0,
29
36
  data: t.projects.games.data.map((e) => ({
30
37
  id: e.id,
@@ -37,7 +44,7 @@ const T = (r, o) => {
37
44
  },
38
45
  puzzles: {
39
46
  label: t.projects.puzzles.label,
40
- type: s.PUZZLE,
47
+ type: o.PUZZLE,
41
48
  initialProgressValue: 0,
42
49
  data: t.projects.puzzles.data.map((e) => ({
43
50
  id: e.id,
@@ -64,9 +71,9 @@ const T = (r, o) => {
64
71
  CIRCLE_TUTORIAL_JOURNEY: t.coachmark_completion.CIRCLE_TUTORIAL_JOURNEY,
65
72
  CIRCLE_TABLES_INTRO_JOURNEY: t.coachmark_completion.CIRCLE_TABLES_INTRO_JOURNEY
66
73
  }
67
- }, t.projects.lessons && (a.projects.lessons = {
74
+ }, t.projects.lessons && (s.projects.lessons = {
68
75
  label: t.projects.lessons.label,
69
- type: s.LESSON,
76
+ type: o.LESSON,
70
77
  initialProgressValue: 0,
71
78
  data: t.projects.lessons.data.map((e) => ({
72
79
  id: e.id,
@@ -79,9 +86,9 @@ const T = (r, o) => {
79
86
  targetQuestions: e.target_questions,
80
87
  status: e.status
81
88
  }))
82
- }), t.projects.tables && (a.projects.tables = {
89
+ }), t.projects.tables && (s.projects.tables = {
83
90
  label: t.projects.tables.label,
84
- type: s.TABLE,
91
+ type: o.TABLE,
85
92
  data: {
86
93
  infiniteModeHighScore: t.projects.tables.data.infinite_mode_high_score,
87
94
  tableList: t.projects.tables.data.table_wise_details.map((e) => ({
@@ -89,10 +96,16 @@ const T = (r, o) => {
89
96
  stars: e.stars
90
97
  }))
91
98
  }
92
- })), _(a);
93
- }, [t, i]), { data: n, isProcessed: i, getCircleHomeDetails: l, ...m };
99
+ })), R(s);
100
+ }, [t, r]), {
101
+ data: m,
102
+ isProcessed: r,
103
+ getCircleHomeDetails: d,
104
+ invalidateCircleHomeDetails: p,
105
+ ...E
106
+ };
94
107
  };
95
108
  export {
96
- T as useGetCircleHomeDetailsDal
109
+ A as useGetCircleHomeDetailsDal
97
110
  };
98
111
  //# sourceMappingURL=use-get-circle-home-details-dal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-get-circle-home-details-dal.js","sources":["../../../../../../src/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.ts"],"sourcesContent":["import type {\n ICircleHomeDetails,\n TStreakStatus,\n TTableMode,\n} from './use-get-circle-home-dal-types';\n\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { ProjectType } from '../../../games/web-view/enums';\nimport { useGetCircleHomeAPI } from '../../api/get-content-for-today/get-circle-home-api';\n\nexport const useGetCircleHomeDetailsDal = (\n userId: string,\n grade: string,\n): Omit<ReturnType<typeof useGetCircleHomeAPI>, 'data' | 'get'> & {\n data: ICircleHomeDetails | null;\n getCircleHomeDetails: (countryCode: string) => void;\n} => {\n const [contentForToday, setContentForToday] = useState<ICircleHomeDetails | null>(null);\n const { data, get: getHomeDetails, isProcessed, ...rest } = useGetCircleHomeAPI();\n\n const getCircleHomeDetails = useCallback(\n (countryCode: string) => {\n getHomeDetails('', {\n user_id: userId,\n country_code: countryCode,\n grade: grade,\n });\n },\n [getHomeDetails, userId, grade],\n );\n\n useEffect(() => {\n let circleHomeDetails: ICircleHomeDetails | null = null;\n\n if (isProcessed && data) {\n circleHomeDetails = {\n points: data.points,\n streakDays: data.streak_days,\n streakReduction: data.streak_reduction,\n streakDaysBeforeReduction: data.streak_days_before_reduction,\n streakStatus: data.streak_status as TStreakStatus,\n tournamentRank: data.tournament_rank,\n projects: {\n games: {\n label: data.projects.games.label,\n type: ProjectType.GAME,\n initialProgressValue: 0,\n data: data.projects.games.data.map(game => ({\n id: game.id,\n name: game.name,\n cardLottie: game.card,\n tutorial: game.tutorial,\n variant: game.variant,\n isPlayed: game.played,\n })),\n },\n puzzles: {\n label: data.projects.puzzles.label,\n type: ProjectType.PUZZLE,\n initialProgressValue: 0,\n data: data.projects.puzzles.data.map(puzzle => ({\n id: puzzle.id,\n name: puzzle.name,\n cardLottie: puzzle.card,\n tutorial: puzzle.tutorial,\n variant: puzzle.variant,\n question: puzzle.question,\n isHintSeen: puzzle.is_hint_seen,\n solved: puzzle.solved,\n })),\n },\n },\n timestamps: {\n startTimestamp: data.timestamps.start_timestamp,\n endTimestamp: data.timestamps.end_timestamp,\n current: data.timestamps.current,\n },\n coachmarkProgress: {\n CIRCLE_ACTIVITIES_INTRO_JOURNEY:\n data.coachmark_completion.CIRCLE_ACTIVITIES_INTRO_JOURNEY,\n CIRCLE_LEADERBOARD_INTRO_JOURNEY:\n data.coachmark_completion.CIRCLE_LEADERBOARD_INTRO_JOURNEY,\n CIRCLE_POINTS_REWARD_JOURNEY: data.coachmark_completion.CIRCLE_POINTS_REWARD_JOURNEY,\n CIRCLE_STREAK_UPDATE_JOURNEY: data.coachmark_completion.CIRCLE_STREAK_UPDATE_JOURNEY,\n CIRCLE_TUTORIAL_JOURNEY: data.coachmark_completion.CIRCLE_TUTORIAL_JOURNEY,\n CIRCLE_TABLES_INTRO_JOURNEY: data.coachmark_completion.CIRCLE_TABLES_INTRO_JOURNEY,\n },\n };\n\n if (data.projects.lessons) {\n circleHomeDetails.projects.lessons = {\n label: data.projects.lessons.label,\n type: ProjectType.LESSON,\n initialProgressValue: 0,\n data: data.projects.lessons.data.map(lesson => ({\n id: lesson.id,\n name: lesson.name,\n cardLottie: lesson.card,\n tutorial: lesson.tutorial,\n variant: lesson.variant,\n sessionId: lesson.session_id,\n miniGameIdentifier: lesson.mini_game_identifier,\n targetQuestions: lesson.target_questions,\n status: lesson.status,\n })),\n };\n }\n\n if (data.projects.tables) {\n circleHomeDetails.projects.tables = {\n label: data.projects.tables.label,\n type: ProjectType.TABLE,\n data: {\n infiniteModeHighScore: data.projects.tables.data.infinite_mode_high_score,\n tableList: data.projects.tables.data.table_wise_details.map(table => ({\n tableNumber: table.table_number,\n stars: table.stars as TTableMode[],\n })),\n },\n };\n }\n }\n setContentForToday(circleHomeDetails);\n }, [data, isProcessed]);\n\n return { data: contentForToday, isProcessed, getCircleHomeDetails, ...rest };\n};\n"],"names":["useGetCircleHomeDetailsDal","userId","grade","contentForToday","setContentForToday","useState","data","getHomeDetails","isProcessed","rest","useGetCircleHomeAPI","getCircleHomeDetails","useCallback","countryCode","useEffect","circleHomeDetails","ProjectType","game","puzzle","lesson","table"],"mappings":"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"}
1
+ {"version":3,"file":"use-get-circle-home-details-dal.js","sources":["../../../../../../src/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.ts"],"sourcesContent":["import type {\n ICircleHomeDetails,\n TStreakStatus,\n TTableMode,\n} from './use-get-circle-home-dal-types';\n\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { ProjectType } from '../../../games/web-view/enums';\nimport {\n invalidateCircleHomeAPI,\n useGetCircleHomeAPI,\n} from '../../api/get-content-for-today/get-circle-home-api';\n\nexport const useGetCircleHomeDetailsDal = (\n userId: string,\n grade: string,\n countryCode: string,\n): Omit<ReturnType<typeof useGetCircleHomeAPI>, 'data' | 'get'> & {\n data: ICircleHomeDetails | null;\n getCircleHomeDetails: () => void;\n invalidateCircleHomeDetails: () => void;\n} => {\n const initialQuery = useMemo(\n () => ({\n user_id: userId,\n grade,\n country_code: countryCode,\n }),\n [userId, grade, countryCode],\n );\n\n const [contentForToday, setContentForToday] = useState<ICircleHomeDetails | null>(null);\n\n const {\n data,\n get: getHomeDetails,\n isProcessed,\n ...rest\n } = useGetCircleHomeAPI(userId, initialQuery);\n\n const getCircleHomeDetails = useCallback(() => {\n getHomeDetails(userId, initialQuery);\n }, [getHomeDetails, initialQuery, userId]);\n\n const invalidateCircleHomeDetails = useCallback(() => {\n invalidateCircleHomeAPI(userId, initialQuery);\n }, [initialQuery, userId]);\n\n useEffect(() => {\n let circleHomeDetails: ICircleHomeDetails | null = null;\n\n if (isProcessed && data) {\n circleHomeDetails = {\n points: data.points,\n streakDays: data.streak_days,\n streakReduction: data.streak_reduction,\n streakDaysBeforeReduction: data.streak_days_before_reduction,\n streakStatus: data.streak_status as TStreakStatus,\n tournamentRank: data.tournament_rank,\n projects: {\n games: {\n label: data.projects.games.label,\n type: ProjectType.GAME,\n initialProgressValue: 0,\n data: data.projects.games.data.map(game => ({\n id: game.id,\n name: game.name,\n cardLottie: game.card,\n tutorial: game.tutorial,\n variant: game.variant,\n isPlayed: game.played,\n })),\n },\n puzzles: {\n label: data.projects.puzzles.label,\n type: ProjectType.PUZZLE,\n initialProgressValue: 0,\n data: data.projects.puzzles.data.map(puzzle => ({\n id: puzzle.id,\n name: puzzle.name,\n cardLottie: puzzle.card,\n tutorial: puzzle.tutorial,\n variant: puzzle.variant,\n question: puzzle.question,\n isHintSeen: puzzle.is_hint_seen,\n solved: puzzle.solved,\n })),\n },\n },\n timestamps: {\n startTimestamp: data.timestamps.start_timestamp,\n endTimestamp: data.timestamps.end_timestamp,\n current: data.timestamps.current,\n },\n coachmarkProgress: {\n CIRCLE_ACTIVITIES_INTRO_JOURNEY:\n data.coachmark_completion.CIRCLE_ACTIVITIES_INTRO_JOURNEY,\n CIRCLE_LEADERBOARD_INTRO_JOURNEY:\n data.coachmark_completion.CIRCLE_LEADERBOARD_INTRO_JOURNEY,\n CIRCLE_POINTS_REWARD_JOURNEY: data.coachmark_completion.CIRCLE_POINTS_REWARD_JOURNEY,\n CIRCLE_STREAK_UPDATE_JOURNEY: data.coachmark_completion.CIRCLE_STREAK_UPDATE_JOURNEY,\n CIRCLE_TUTORIAL_JOURNEY: data.coachmark_completion.CIRCLE_TUTORIAL_JOURNEY,\n CIRCLE_TABLES_INTRO_JOURNEY: data.coachmark_completion.CIRCLE_TABLES_INTRO_JOURNEY,\n },\n };\n\n if (data.projects.lessons) {\n circleHomeDetails.projects.lessons = {\n label: data.projects.lessons.label,\n type: ProjectType.LESSON,\n initialProgressValue: 0,\n data: data.projects.lessons.data.map(lesson => ({\n id: lesson.id,\n name: lesson.name,\n cardLottie: lesson.card,\n tutorial: lesson.tutorial,\n variant: lesson.variant,\n sessionId: lesson.session_id,\n miniGameIdentifier: lesson.mini_game_identifier,\n targetQuestions: lesson.target_questions,\n status: lesson.status,\n })),\n };\n }\n\n if (data.projects.tables) {\n circleHomeDetails.projects.tables = {\n label: data.projects.tables.label,\n type: ProjectType.TABLE,\n data: {\n infiniteModeHighScore: data.projects.tables.data.infinite_mode_high_score,\n tableList: data.projects.tables.data.table_wise_details.map(table => ({\n tableNumber: table.table_number,\n stars: table.stars as TTableMode[],\n })),\n },\n };\n }\n }\n\n setContentForToday(circleHomeDetails);\n }, [data, isProcessed]);\n\n return {\n data: contentForToday,\n isProcessed,\n getCircleHomeDetails,\n invalidateCircleHomeDetails,\n ...rest,\n };\n};\n"],"names":["useGetCircleHomeDetailsDal","userId","grade","countryCode","initialQuery","useMemo","contentForToday","setContentForToday","useState","data","getHomeDetails","isProcessed","rest","useGetCircleHomeAPI","getCircleHomeDetails","useCallback","invalidateCircleHomeDetails","invalidateCircleHomeAPI","useEffect","circleHomeDetails","ProjectType","game","puzzle","lesson","table"],"mappings":"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"}
@@ -1,21 +1,21 @@
1
1
  import { useCallback as n } from "react";
2
2
  import { usePostUpdateCircleCoachmark as a } from "../../api/update-circle-onboarding/post-circle-coachmark-api.js";
3
- const p = (o) => {
3
+ const p = () => {
4
4
  const {
5
- post: e,
6
- isProcessing: t,
7
- onComplete: r,
8
- ...s
9
- } = a(), c = n(
10
- (l) => {
11
- e({
12
- intelenrollment_id: o,
5
+ post: o,
6
+ isProcessing: e,
7
+ onComplete: t,
8
+ ...r
9
+ } = a(), s = n(
10
+ (c, l) => {
11
+ o({
12
+ intelenrollment_id: c,
13
13
  completed_coachmarks: l
14
14
  });
15
15
  },
16
- [e, o]
16
+ [o]
17
17
  );
18
- return { ...s, isProcessing: t, onComplete: r, postCircleJourneyCompletion: c };
18
+ return { ...r, isProcessing: e, onComplete: t, postCircleJourneyCompletion: s };
19
19
  };
20
20
  export {
21
21
  p as usePostUpdateCircleJourneyDal
@@ -1 +1 @@
1
- {"version":3,"file":"use-post-update-circle-journey-dal.js","sources":["../../../../../../src/features/circle-games/game-launcher/dal/use-post-update-circle-journey-dal/use-post-update-circle-journey-dal.ts"],"sourcesContent":["import type { TJourneyId } from '../../../../journey/journey-id/journey-id-types';\n\nimport { useCallback } from 'react';\n\nimport { usePostUpdateCircleCoachmark } from '../../api/update-circle-onboarding/post-circle-coachmark-api';\n\nexport const usePostUpdateCircleJourneyDal = (\n userId: string,\n): Omit<ReturnType<typeof usePostUpdateCircleCoachmark>, 'data' | 'post'> & {\n postCircleJourneyCompletion: (journeyCompletionIds: TJourneyId[]) => void;\n} => {\n const {\n post: postCircleCoachmark,\n isProcessing,\n onComplete,\n ...rest\n } = usePostUpdateCircleCoachmark();\n\n const postCircleJourneyCompletion = useCallback(\n (journeyCompletionIds: TJourneyId[]) => {\n postCircleCoachmark({\n intelenrollment_id: userId,\n completed_coachmarks: journeyCompletionIds,\n });\n },\n [postCircleCoachmark, userId],\n );\n\n return { ...rest, isProcessing, onComplete, postCircleJourneyCompletion };\n};\n"],"names":["usePostUpdateCircleJourneyDal","userId","postCircleCoachmark","isProcessing","onComplete","rest","usePostUpdateCircleCoachmark","postCircleJourneyCompletion","useCallback","journeyCompletionIds"],"mappings":";;AAMa,MAAAA,IAAgC,CAC3CC,MAGG;AACG,QAAA;AAAA,IACJ,MAAMC;AAAA,IACN,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,GAAGC;AAAA,MACDC,EAA6B,GAE3BC,IAA8BC;AAAA,IAClC,CAACC,MAAuC;AAClB,MAAAP,EAAA;AAAA,QAClB,oBAAoBD;AAAA,QACpB,sBAAsBQ;AAAA,MAAA,CACvB;AAAA,IACH;AAAA,IACA,CAACP,GAAqBD,CAAM;AAAA,EAAA;AAG9B,SAAO,EAAE,GAAGI,GAAM,cAAAF,GAAc,YAAAC,GAAY,6BAAAG,EAA4B;AAC1E;"}
1
+ {"version":3,"file":"use-post-update-circle-journey-dal.js","sources":["../../../../../../src/features/circle-games/game-launcher/dal/use-post-update-circle-journey-dal/use-post-update-circle-journey-dal.ts"],"sourcesContent":["import type { TJourneyId } from '../../../../journey/journey-id/journey-id-types';\n\nimport { useCallback } from 'react';\n\nimport { usePostUpdateCircleCoachmark } from '../../api/update-circle-onboarding/post-circle-coachmark-api';\n\nexport const usePostUpdateCircleJourneyDal = (): Omit<\n ReturnType<typeof usePostUpdateCircleCoachmark>,\n 'data' | 'post'\n> & {\n postCircleJourneyCompletion: (userId: string, journeyCompletionIds: TJourneyId[]) => void;\n} => {\n const {\n post: postCircleCoachmark,\n isProcessing,\n onComplete,\n ...rest\n } = usePostUpdateCircleCoachmark();\n\n const postCircleJourneyCompletion = useCallback(\n (userId: string, journeyCompletionIds: TJourneyId[]) => {\n postCircleCoachmark({\n intelenrollment_id: userId,\n completed_coachmarks: journeyCompletionIds,\n });\n },\n [postCircleCoachmark],\n );\n\n return { ...rest, isProcessing, onComplete, postCircleJourneyCompletion };\n};\n"],"names":["usePostUpdateCircleJourneyDal","postCircleCoachmark","isProcessing","onComplete","rest","usePostUpdateCircleCoachmark","postCircleJourneyCompletion","useCallback","userId","journeyCompletionIds"],"mappings":";;AAMO,MAAMA,IAAgC,MAKxC;AACG,QAAA;AAAA,IACJ,MAAMC;AAAA,IACN,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,GAAGC;AAAA,MACDC,EAA6B,GAE3BC,IAA8BC;AAAA,IAClC,CAACC,GAAgBC,MAAuC;AAClC,MAAAR,EAAA;AAAA,QAClB,oBAAoBO;AAAA,QACpB,sBAAsBC;AAAA,MAAA,CACvB;AAAA,IACH;AAAA,IACA,CAACR,CAAmB;AAAA,EAAA;AAGtB,SAAO,EAAE,GAAGG,GAAM,cAAAF,GAAc,YAAAC,GAAY,6BAAAG,EAA4B;AAC1E;"}
@@ -1,13 +1,14 @@
1
- const _ = 2, E = 3, A = 500, T = 1500, L = 1e3, I = 3e3, O = 3100, S = 100, C = 3e3;
1
+ const _ = 0, E = 2, A = 3, T = 500, L = 1500, I = 1e3, O = 3e3, S = 3100, N = 100, C = 3e3;
2
2
  export {
3
- L as GO_TO_TABLE_LAUNCHER_DURATION_MS,
4
- _ as PUZZLE_CARD_INDEX,
5
- I as SHOW_CLICK_TABLE_NUDGE_AFTER_MS,
6
- A as SHOW_INITIAL_COACHMARK_AFTER_MS,
7
- T as SHOW_INITIAL_TOOLTIP_AFTER_MS,
3
+ I as GO_TO_TABLE_LAUNCHER_DURATION_MS,
4
+ _ as LESSON_CARD_INDEX,
5
+ E as PUZZLE_CARD_INDEX,
6
+ O as SHOW_CLICK_TABLE_NUDGE_AFTER_MS,
7
+ T as SHOW_INITIAL_COACHMARK_AFTER_MS,
8
+ L as SHOW_INITIAL_TOOLTIP_AFTER_MS,
8
9
  C as SHOW_PICK_A_LEVEL_NUDGE_AFTER_MS,
9
- S as SHOW_PICK_A_LEVEL_TOOLTIP_AFTER_MS,
10
- O as START_ANIMATING_CLONED_ELEM,
11
- E as TABLE_CARD_INDEX
10
+ N as SHOW_PICK_A_LEVEL_TOOLTIP_AFTER_MS,
11
+ S as START_ANIMATING_CLONED_ELEM,
12
+ A as TABLE_CARD_INDEX
12
13
  };
13
14
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../../../src/features/circle-games/game-launcher/hooks/use-table-launcher-journey/constants.ts"],"sourcesContent":["export const PUZZLE_CARD_INDEX = 2;\nexport const TABLE_CARD_INDEX = 3;\n\nexport const SHOW_INITIAL_COACHMARK_AFTER_MS = 500;\nexport const SHOW_INITIAL_TOOLTIP_AFTER_MS = 1500;\n\nexport const GO_TO_TABLE_LAUNCHER_DURATION_MS = 1000;\nexport const SHOW_CLICK_TABLE_NUDGE_AFTER_MS = 3000;\nexport const START_ANIMATING_CLONED_ELEM = SHOW_CLICK_TABLE_NUDGE_AFTER_MS + 100;\n\nexport const SHOW_PICK_A_LEVEL_TOOLTIP_AFTER_MS = 100;\nexport const SHOW_PICK_A_LEVEL_NUDGE_AFTER_MS = 3000;\n"],"names":["PUZZLE_CARD_INDEX","TABLE_CARD_INDEX","SHOW_INITIAL_COACHMARK_AFTER_MS","SHOW_INITIAL_TOOLTIP_AFTER_MS","GO_TO_TABLE_LAUNCHER_DURATION_MS","SHOW_CLICK_TABLE_NUDGE_AFTER_MS","START_ANIMATING_CLONED_ELEM","SHOW_PICK_A_LEVEL_TOOLTIP_AFTER_MS","SHOW_PICK_A_LEVEL_NUDGE_AFTER_MS"],"mappings":"AAAO,MAAMA,IAAoB,GACpBC,IAAmB,GAEnBC,IAAkC,KAClCC,IAAgC,MAEhCC,IAAmC,KACnCC,IAAkC,KAClCC,IAA8B,MAE9BC,IAAqC,KACrCC,IAAmC;"}
1
+ {"version":3,"file":"constants.js","sources":["../../../../../../src/features/circle-games/game-launcher/hooks/use-table-launcher-journey/constants.ts"],"sourcesContent":["export const LESSON_CARD_INDEX = 0;\nexport const PUZZLE_CARD_INDEX = 2;\nexport const TABLE_CARD_INDEX = 3;\n\nexport const SHOW_INITIAL_COACHMARK_AFTER_MS = 500;\nexport const SHOW_INITIAL_TOOLTIP_AFTER_MS = 1500;\n\nexport const GO_TO_TABLE_LAUNCHER_DURATION_MS = 1000;\nexport const SHOW_CLICK_TABLE_NUDGE_AFTER_MS = 3000;\nexport const START_ANIMATING_CLONED_ELEM = SHOW_CLICK_TABLE_NUDGE_AFTER_MS + 100;\n\nexport const SHOW_PICK_A_LEVEL_TOOLTIP_AFTER_MS = 100;\nexport const SHOW_PICK_A_LEVEL_NUDGE_AFTER_MS = 3000;\n"],"names":["LESSON_CARD_INDEX","PUZZLE_CARD_INDEX","TABLE_CARD_INDEX","SHOW_INITIAL_COACHMARK_AFTER_MS","SHOW_INITIAL_TOOLTIP_AFTER_MS","GO_TO_TABLE_LAUNCHER_DURATION_MS","SHOW_CLICK_TABLE_NUDGE_AFTER_MS","START_ANIMATING_CLONED_ELEM","SHOW_PICK_A_LEVEL_TOOLTIP_AFTER_MS","SHOW_PICK_A_LEVEL_NUDGE_AFTER_MS"],"mappings":"AAAO,MAAMA,IAAoB,GACpBC,IAAoB,GACpBC,IAAmB,GAEnBC,IAAkC,KAClCC,IAAgC,MAEhCC,IAAmC,KACnCC,IAAkC,KAClCC,IAA8B,MAE9BC,IAAqC,KACrCC,IAAmC;"}
@@ -1,66 +1,66 @@
1
1
  import { jsx as r, Fragment as R } from "react/jsx-runtime";
2
- import { useRef as A, useCallback as C, useEffect as V } from "react";
2
+ import { useRef as A, useCallback as C, useEffect as X } from "react";
3
3
  import J from "../../../../../assets/line-icons/icons/carat-right.js";
4
- import { PLATFORM_EVENTS_STUDENT as U } from "../../../../analytics-events/platform-events-student.js";
5
- import { JOURNEY_ID_STUDENT as X } from "../../../../journey/journey-id/journey-id-student.js";
6
- import { IndicatorType as u } from "../../../../journey/use-journey/constants.js";
7
- import { useJourney as K } from "../../../../journey/use-journey/use-journey.js";
8
- import j from "../../../../ui/buttons/icon-button/icon-button.js";
9
- import { useUIContext as Z } from "../../../../ui/context/context.js";
10
- import O from "../../../../ui/layout/flex-view.js";
4
+ import { PLATFORM_EVENTS_STUDENT as G } from "../../../../analytics-events/platform-events-student.js";
5
+ import { JOURNEY_ID_STUDENT as K } from "../../../../journey/journey-id/journey-id-student.js";
6
+ import { IndicatorType as d } from "../../../../journey/use-journey/constants.js";
7
+ import { useJourney as j } from "../../../../journey/use-journey/use-journey.js";
8
+ import Z from "../../../../ui/buttons/icon-button/icon-button.js";
9
+ import { useUIContext as q } from "../../../../ui/context/context.js";
10
+ import N from "../../../../ui/layout/flex-view.js";
11
11
  import m from "../../../../ui/text/text.js";
12
- import { CIRCLE_ONBOARDING_ANALYTICS_STEPS as G } from "../../../enum/circle-onboarding-steps.js";
13
- import { useCircleSounds as q } from "../../../hooks/use-circle-sounds/use-circle-sounds.js";
14
- import { TablesCard as v } from "../../comps/tables-card/tables-card.js";
15
- import { GAME_LAUNCHER_ANALYTICS_EVENTS as z } from "../../game-launcher-analytics-events.js";
16
- import { SHOW_PICK_A_LEVEL_TOOLTIP_AFTER_MS as Q, SHOW_PICK_A_LEVEL_NUDGE_AFTER_MS as ee, START_ANIMATING_CLONED_ELEM as M, TABLE_CARD_INDEX as $, GO_TO_TABLE_LAUNCHER_DURATION_MS as te, SHOW_CLICK_TABLE_NUDGE_AFTER_MS as re, PUZZLE_CARD_INDEX as ne, SHOW_INITIAL_COACHMARK_AFTER_MS as x, SHOW_INITIAL_TOOLTIP_AFTER_MS as ie } from "./constants.js";
17
- import { Indicator as oe } from "./use-table-launcher-journey-styled.js";
18
- const Ie = ({
19
- carouselRefs: s,
20
- onTableSegmentClick: N,
12
+ import { CIRCLE_ONBOARDING_ANALYTICS_STEPS as v } from "../../../enum/circle-onboarding-steps.js";
13
+ import { useCircleSounds as z } from "../../../hooks/use-circle-sounds/use-circle-sounds.js";
14
+ import { TablesCard as M } from "../../comps/tables-card/tables-card.js";
15
+ import { GAME_LAUNCHER_ANALYTICS_EVENTS as Q } from "../../game-launcher-analytics-events.js";
16
+ import { SHOW_PICK_A_LEVEL_TOOLTIP_AFTER_MS as ee, SHOW_PICK_A_LEVEL_NUDGE_AFTER_MS as te, START_ANIMATING_CLONED_ELEM as $, TABLE_CARD_INDEX as x, GO_TO_TABLE_LAUNCHER_DURATION_MS as re, SHOW_CLICK_TABLE_NUDGE_AFTER_MS as ne, PUZZLE_CARD_INDEX as oe, SHOW_INITIAL_COACHMARK_AFTER_MS as w, LESSON_CARD_INDEX as ie, SHOW_INITIAL_TOOLTIP_AFTER_MS as le } from "./constants.js";
17
+ import { Indicator as ce } from "./use-table-launcher-journey-styled.js";
18
+ const Oe = ({
19
+ carouselRefs: a,
20
+ onTableSegmentClick: S,
21
21
  onJourneyComplete: P
22
22
  }) => {
23
- const e = X.CIRCLE_TABLES_INTRO_JOURNEY, t = A(null), p = A(null), L = A(!1), T = A([]), { playButtonSound: S } = q(), { nextCoachmark: i, setJourney: H, addCoachmark: c } = K(), { onEvent: _ } = Z(), I = C(
23
+ const e = K.CIRCLE_TABLES_INTRO_JOURNEY, t = A(null), _ = A(null), L = A(!1), T = A([]), { playButtonSound: H } = z(), { nextCoachmark: o, setJourney: I, addCoachmark: u } = j(), { onEvent: p } = q(), b = C(
24
24
  (n) => {
25
- var a, o;
26
- n && N(n), _(U.ONBOARDING_STEP_COMPLETED, {
27
- step: G.TABLES
28
- }), (a = t == null ? void 0 : t.current) == null || a.setLabelVisiblity(!0), (o = t == null ? void 0 : t.current) == null || o.stopLabelAnimation(), P(e), i(e, !1);
25
+ var c, i;
26
+ n && S(n), p(G.ONBOARDING_STEP_COMPLETED, {
27
+ step: v.TABLES
28
+ }), (c = t == null ? void 0 : t.current) == null || c.setLabelVisiblity(!0), (i = t == null ? void 0 : t.current) == null || i.stopLabelAnimation(), P(e), o(e, !1);
29
29
  },
30
- [e, i, P, N, _]
30
+ [e, o, P, S, p]
31
31
  ), y = C(
32
- (n, a) => {
33
- var g, h, E;
34
- if (!((g = t.current) != null && g.segmentedCardWrapperRef.current) || !((h = t.current) != null && h.labelRef.current))
32
+ (n, c) => {
33
+ var g, E, h;
34
+ if (!((g = t.current) != null && g.segmentedCardWrapperRef.current) || !((E = t.current) != null && E.labelRef.current))
35
35
  return;
36
- const o = t.current.labelRef.current.getBoundingClientRect(), l = (E = t.current) == null ? void 0 : E.segmentedCardWrapperRef.current.getBoundingClientRect();
37
- c(e, {
36
+ const i = t.current.labelRef.current.getBoundingClientRect(), l = (h = t.current) == null ? void 0 : h.segmentedCardWrapperRef.current.getBoundingClientRect();
37
+ u(e, {
38
38
  originalElementToHighlightRef: t.current.segmentedCardWrapperRef,
39
39
  isActive: !1,
40
- type: u.TOOLTIP,
40
+ type: d.TOOLTIP,
41
41
  elementToHighlight: /* @__PURE__ */ r(
42
- v,
42
+ M,
43
43
  {
44
- ref: p,
45
- defaultTable: a,
44
+ ref: _,
45
+ defaultTable: c,
46
46
  label: n.label,
47
47
  data: n.data,
48
- onPress: I,
49
- onGoBackFromTableLevel: I
48
+ onPress: b,
49
+ onGoBackFromTableLevel: b
50
50
  }
51
51
  ),
52
52
  indicator: {
53
53
  position: "left",
54
54
  backgroundColor: "YELLOW_4",
55
55
  width: 236,
56
- tooltipItem: /* @__PURE__ */ r(O, { children: /* @__PURE__ */ r(m, { $renderAs: "ab2-bold", children: "Each table has 3 levels—clear them and earn 3 stars!" }) }),
56
+ tooltipItem: /* @__PURE__ */ r(N, { children: /* @__PURE__ */ r(m, { $renderAs: "ab2-bold", children: "Each table has 3 levels—clear them and earn 3 stars!" }) }),
57
57
  tooltipXCoOrdinates: 0,
58
- tooltipYCoOrdinates: o.height * 0.35
58
+ tooltipYCoOrdinates: i.height * 0.35
59
59
  }
60
- }), c(e, {
60
+ }), u(e, {
61
61
  originalElementToHighlightRef: t.current.segmentedCardWrapperRef,
62
62
  isActive: !1,
63
- type: u.NUDGE,
63
+ type: d.NUDGE,
64
64
  indicator: {
65
65
  nudge: "click",
66
66
  content: /* @__PURE__ */ r(m, { $renderAs: "ab1", $color: "WHITE", children: "Pick a level" }),
@@ -68,144 +68,149 @@ const Ie = ({
68
68
  nudgePointerY: l.height * 0.4
69
69
  },
70
70
  elementToHighlight: /* @__PURE__ */ r(R, {})
71
- }), i(e, !1, Q), i(e, !0, ee);
72
- const d = setTimeout(() => {
71
+ }), o(e, !1, ee), o(e, !0, te);
72
+ const s = setTimeout(() => {
73
73
  var f;
74
- clearTimeout(d), (f = p.current) == null || f.startLabelAnimation("YELLOW_4");
75
- }, M);
76
- T.current.push(d);
74
+ clearTimeout(s), (f = _.current) == null || f.startLabelAnimation("YELLOW_4");
75
+ }, $);
76
+ T.current.push(s);
77
77
  },
78
- [c, I, e, i]
79
- ), b = C(() => {
80
- var o;
81
- S(), (o = s.current) == null || o.goToIndex($), i(e, !1, te), _(U.ONBOARDING_STEP_VIEWED, {
82
- step: G.TABLES
78
+ [u, b, e, o]
79
+ ), O = C(() => {
80
+ var i;
81
+ H(), (i = a.current) == null || i.goToIndex(x), o(e, !1, re), p(G.ONBOARDING_STEP_VIEWED, {
82
+ step: v.TABLES
83
83
  });
84
84
  const n = setTimeout(() => {
85
85
  var l;
86
- clearTimeout(n), (l = t.current) == null || l.setLabelVisiblity(!1), i(e, !0);
87
- }, re);
86
+ clearTimeout(n), (l = t.current) == null || l.setLabelVisiblity(!1), o(e, !0);
87
+ }, ne);
88
88
  T.current.push(n);
89
- const a = setTimeout(() => {
89
+ const c = setTimeout(() => {
90
90
  var l;
91
- clearTimeout(a), (l = p.current) == null || l.startLabelAnimation("YELLOW_4");
92
- }, M);
93
- T.current.push(a);
94
- }, [s, e, i, S, _]), w = C(
95
- (n, a = !1) => {
96
- var E, f, W, D, Y, k, B;
91
+ clearTimeout(c), (l = _.current) == null || l.startLabelAnimation("YELLOW_4");
92
+ }, $);
93
+ T.current.push(c);
94
+ }, [a, e, o, H, p]), F = C(
95
+ (n, c = !1) => {
96
+ var h, f, D, W, Y, k, B, U;
97
97
  if (L.current)
98
98
  return;
99
- const o = (E = s.current) == null ? void 0 : E.indicatorRefs, l = (f = s.current) == null ? void 0 : f.nextBtnRef, d = o == null ? void 0 : o[$];
100
- if (!((W = t.current) != null && W.segmentedCardWrapperRef.current) || !((D = t.current) != null && D.labelRef.current) || !o || !(l != null && l.current) || !d || !d.current)
99
+ const i = (h = a.current) == null ? void 0 : h.indicatorRefs, l = (f = a.current) == null ? void 0 : f.nextBtnRef, s = i == null ? void 0 : i[x];
100
+ if (!((D = t.current) != null && D.segmentedCardWrapperRef.current) || !((W = t.current) != null && W.labelRef.current) || !i || !(l != null && l.current) || !s || !s.current)
101
101
  return;
102
102
  L.current = !0;
103
- const g = t.current.labelRef.current.getBoundingClientRect(), h = (Y = t.current) == null ? void 0 : Y.segmentedCardWrapperRef.current.getBoundingClientRect();
104
- H(e, []), a ? (c(e, {
105
- originalElementToHighlightRef: d,
106
- isActive: !1,
107
- type: u.TOOLTIP,
108
- elementToHighlight: /* @__PURE__ */ r(oe, { $isActive: !1 }),
109
- indicator: {
110
- position: "bottom",
111
- backgroundColor: "YELLOW_4",
112
- width: 52,
113
- tooltipItem: /* @__PURE__ */ r(
114
- O,
103
+ const g = t.current.labelRef.current.getBoundingClientRect(), E = (Y = t.current) == null ? void 0 : Y.segmentedCardWrapperRef.current.getBoundingClientRect();
104
+ c ? (I(e, [
105
+ {
106
+ originalElementToHighlightRef: s,
107
+ isActive: !1,
108
+ type: d.TOOLTIP,
109
+ elementToHighlight: /* @__PURE__ */ r(ce, { $isActive: !1 }),
110
+ indicator: {
111
+ position: "bottom",
112
+ backgroundColor: "YELLOW_4",
113
+ width: 52,
114
+ tooltipItem: /* @__PURE__ */ r(
115
+ N,
116
+ {
117
+ $position: "absolute",
118
+ $flexDirection: "row",
119
+ style: { top: 6, left: 8, cursor: "pointer" },
120
+ onClick: O,
121
+ children: /* @__PURE__ */ r(m, { $renderAs: "ab2-bold", children: "NEW" })
122
+ }
123
+ ),
124
+ tooltipYCoOrdinates: 14
125
+ // Need some offset in Y direction from top
126
+ }
127
+ },
128
+ {
129
+ originalElementToHighlightRef: s,
130
+ isActive: !1,
131
+ type: d.NUDGE,
132
+ indicator: {
133
+ nudge: "click",
134
+ content: "",
135
+ nudgePointerY: 20
136
+ },
137
+ elementToHighlight: /* @__PURE__ */ r(R, {})
138
+ }
139
+ ]), (U = a.current) == null || U.goToIndex(ie), o(e, !1, w), o(e, !0, le)) : (I(e, [
140
+ {
141
+ originalElementToHighlightRef: (k = a.current) == null ? void 0 : k.nextBtnRef,
142
+ isActive: !1,
143
+ type: d.NUDGE,
144
+ indicator: {
145
+ nudge: "click",
146
+ content: /* @__PURE__ */ r(m, { $renderAs: "ab1", $color: "WHITE", children: "Click to proceed" }),
147
+ nudgePointerX: 0,
148
+ nudgePointerY: 0
149
+ },
150
+ elementToHighlight: /* @__PURE__ */ r(
151
+ Z,
115
152
  {
116
- $position: "absolute",
117
- $flexDirection: "row",
118
- style: { top: 6, left: 8, cursor: "pointer" },
119
- onClick: b,
120
- children: /* @__PURE__ */ r(m, { $renderAs: "ab2-bold", children: "NEW" })
153
+ renderAs: "secondary",
154
+ Icon: J,
155
+ onClick: O,
156
+ analyticsLabel: Q.JOURNEY_NEXT_ACTIVITY
121
157
  }
122
- ),
123
- tooltipYCoOrdinates: 14
124
- // Need some offset in Y direction from top
158
+ )
125
159
  }
126
- }), c(e, {
127
- originalElementToHighlightRef: d,
128
- isActive: !1,
129
- type: u.NUDGE,
130
- indicator: {
131
- nudge: "click",
132
- content: "",
133
- nudgePointerY: 20
134
- },
135
- elementToHighlight: /* @__PURE__ */ r(R, {})
136
- }), i(e, !1, x), i(e, !0, ie)) : (c(e, {
137
- originalElementToHighlightRef: (k = s.current) == null ? void 0 : k.nextBtnRef,
138
- isActive: !1,
139
- type: u.NUDGE,
140
- indicator: {
141
- nudge: "click",
142
- content: /* @__PURE__ */ r(m, { $renderAs: "ab1", $color: "WHITE", children: "Click to proceed" }),
143
- nudgePointerX: 0,
144
- nudgePointerY: 0
145
- },
146
- elementToHighlight: /* @__PURE__ */ r(
147
- j,
148
- {
149
- renderAs: "secondary",
150
- Icon: J,
151
- onClick: b,
152
- analyticsLabel: z.JOURNEY_NEXT_ACTIVITY
153
- }
154
- )
155
- }), (B = s.current) == null || B.goToIndex(ne), i(e, !1, x)), c(e, {
160
+ ]), (B = a.current) == null || B.goToIndex(oe), o(e, !1, w)), u(e, {
156
161
  originalElementToHighlightRef: t.current.labelRef,
157
162
  isActive: !1,
158
- type: u.TOOLTIP,
163
+ type: d.TOOLTIP,
159
164
  elementToHighlight: /* @__PURE__ */ r(R, {}),
160
165
  indicator: {
161
166
  position: "right",
162
167
  backgroundColor: "YELLOW_4",
163
168
  width: 264,
164
- tooltipItem: /* @__PURE__ */ r(O, { children: /* @__PURE__ */ r(m, { $renderAs: "ab2-bold", children: "Get faster at multiplication! Practice everyday and become a Tables champ." }) }),
169
+ tooltipItem: /* @__PURE__ */ r(N, { children: /* @__PURE__ */ r(m, { $renderAs: "ab2-bold", children: "Get faster at multiplication! Practice everyday and become a Tables champ." }) }),
165
170
  tooltipXCoOrdinates: g.width + 50,
166
171
  tooltipYCoOrdinates: g.height / 2
167
172
  }
168
- }), c(e, {
173
+ }), u(e, {
169
174
  originalElementToHighlightRef: t.current.segmentedCardWrapperRef,
170
175
  isActive: !1,
171
- type: u.NUDGE,
176
+ type: d.NUDGE,
172
177
  indicator: {
173
178
  nudge: "click",
174
179
  content: /* @__PURE__ */ r(m, { $renderAs: "ab1", $color: "WHITE", children: "Pick a table to start" }),
175
- nudgePointerX: h.width / 2 + 50,
176
- nudgePointerY: h.height / 2
180
+ nudgePointerX: E.width / 2 + 50,
181
+ nudgePointerY: E.height / 2
177
182
  },
178
183
  elementToHighlight: /* @__PURE__ */ r(
179
- v,
184
+ M,
180
185
  {
181
- ref: p,
186
+ ref: _,
182
187
  label: n.label,
183
188
  data: n.data,
184
189
  onPress: () => {
185
190
  },
186
- onPressTableSegment: (F) => y(n, F)
191
+ onPressTableSegment: (V) => y(n, V)
187
192
  }
188
193
  )
189
194
  });
190
195
  },
191
196
  [
192
- c,
193
- s,
194
- b,
197
+ u,
198
+ a,
199
+ O,
195
200
  y,
196
201
  e,
197
- i,
198
- H
202
+ o,
203
+ I
199
204
  ]
200
205
  );
201
- return V(() => () => {
206
+ return X(() => () => {
202
207
  T.current.forEach((n) => clearTimeout(n)), T.current = [], L.current = !1;
203
208
  }, [e]), {
204
209
  tableRef: t,
205
- startJourney: w
210
+ startJourney: F
206
211
  };
207
212
  };
208
213
  export {
209
- Ie as useTableLauncherJourney
214
+ Oe as useTableLauncherJourney
210
215
  };
211
216
  //# sourceMappingURL=use-table-launcher-journey.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-launcher-journey.js","sources":["../../../../../../src/features/circle-games/game-launcher/hooks/use-table-launcher-journey/use-table-launcher-journey.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport type { IArrowTooltipProps } from '../../../../ui/arrow-tooltip/arrow-tooltip-types';\nimport type { INudgeProps } from '../../../../ui/nudge/nudge-types';\nimport type { ITableCardRef, ITableDetails } from '../../comps/tables-card/tables-card-types';\nimport type {\n ITableInfo,\n ITables,\n} from '../../dal/use-get-circle-home-details-dal/use-get-circle-home-dal-types';\nimport type { IUseTableJourneyProps } from './use-table-launcher-journey-types';\n\nimport { useCallback, useEffect, useRef } from 'react';\n\nimport CaratRightIcon from '../../../../../assets/line-icons/icons/carat-right';\nimport { PLATFORM_EVENTS_STUDENT } from '../../../../analytics-events/platform-events-student';\nimport { JOURNEY_ID_STUDENT } from '../../../../journey/journey-id/journey-id-student';\nimport { IndicatorType } from '../../../../journey/use-journey/constants';\nimport { useJourney } from '../../../../journey/use-journey/use-journey';\nimport IconButton from '../../../../ui/buttons/icon-button/icon-button';\nimport { useUIContext } from '../../../../ui/context/context';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport { CIRCLE_ONBOARDING_ANALYTICS_STEPS as Action } from '../../../enum/circle-onboarding-steps';\nimport { useCircleSounds } from '../../../hooks/use-circle-sounds/use-circle-sounds';\nimport { TablesCard } from '../../comps/tables-card/tables-card';\nimport { GAME_LAUNCHER_ANALYTICS_EVENTS } from '../../game-launcher-analytics-events';\nimport {\n PUZZLE_CARD_INDEX,\n SHOW_PICK_A_LEVEL_NUDGE_AFTER_MS,\n SHOW_PICK_A_LEVEL_TOOLTIP_AFTER_MS,\n TABLE_CARD_INDEX,\n} from './constants';\nimport {\n GO_TO_TABLE_LAUNCHER_DURATION_MS,\n SHOW_CLICK_TABLE_NUDGE_AFTER_MS,\n SHOW_INITIAL_COACHMARK_AFTER_MS,\n SHOW_INITIAL_TOOLTIP_AFTER_MS,\n START_ANIMATING_CLONED_ELEM,\n} from './constants';\nimport * as S from './use-table-launcher-journey-styled';\n\nexport const useTableLauncherJourney = ({\n carouselRefs,\n onTableSegmentClick,\n onJourneyComplete,\n}: IUseTableJourneyProps) => {\n const journeyId = JOURNEY_ID_STUDENT.CIRCLE_TABLES_INTRO_JOURNEY;\n const originalTableRef = useRef<ITableCardRef>(null);\n const highlightedTableRef = useRef<ITableCardRef>(null);\n const isJourneyInProgress = useRef(false);\n\n const timerRefs = useRef<ReturnType<typeof setTimeout>[]>([]);\n\n const { playButtonSound } = useCircleSounds();\n const { nextCoachmark, setJourney, addCoachmark } = useJourney();\n const { onEvent: trackAnalytics } = useUIContext();\n\n const endJourney = useCallback(\n (tableDetails?: ITableDetails) => {\n // Only when User clicked on play\n if (tableDetails) {\n onTableSegmentClick(tableDetails);\n }\n trackAnalytics(PLATFORM_EVENTS_STUDENT.ONBOARDING_STEP_COMPLETED, {\n step: Action.TABLES,\n });\n\n // Reset original table card ref label\n originalTableRef?.current?.setLabelVisiblity(true);\n originalTableRef?.current?.stopLabelAnimation();\n onJourneyComplete(journeyId);\n nextCoachmark(journeyId, false);\n },\n [journeyId, nextCoachmark, onJourneyComplete, onTableSegmentClick, trackAnalytics],\n );\n\n const handleTableSegmentClick = useCallback(\n (launcherData: ITables, tableData: ITableInfo) => {\n if (\n !originalTableRef.current?.segmentedCardWrapperRef.current ||\n !originalTableRef.current?.labelRef.current\n ) {\n return;\n }\n\n const segmentedCardDims = originalTableRef.current.labelRef.current.getBoundingClientRect();\n const tableCardDims =\n originalTableRef.current?.segmentedCardWrapperRef.current.getBoundingClientRect();\n\n addCoachmark(journeyId, {\n originalElementToHighlightRef: originalTableRef.current.segmentedCardWrapperRef,\n isActive: false,\n type: IndicatorType.TOOLTIP,\n elementToHighlight: (\n <TablesCard\n ref={highlightedTableRef}\n defaultTable={tableData}\n label={launcherData.label}\n data={launcherData.data}\n onPress={endJourney}\n onGoBackFromTableLevel={endJourney}\n />\n ),\n indicator: {\n position: 'left',\n backgroundColor: 'YELLOW_4',\n width: 236,\n tooltipItem: (\n <FlexView>\n <Text $renderAs=\"ab2-bold\">Each table has 3 levels—clear them and earn 3 stars!</Text>\n </FlexView>\n ),\n tooltipXCoOrdinates: 0,\n tooltipYCoOrdinates: segmentedCardDims.height * 0.35,\n } as IArrowTooltipProps,\n });\n\n addCoachmark(journeyId, {\n originalElementToHighlightRef: originalTableRef.current.segmentedCardWrapperRef,\n isActive: false,\n type: IndicatorType.NUDGE,\n indicator: {\n nudge: 'click',\n content: (\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n Pick a level\n </Text>\n ),\n nudgePointerX: tableCardDims.width / 2 + 50,\n nudgePointerY: tableCardDims.height * 0.4,\n } as INudgeProps,\n elementToHighlight: <></>,\n });\n\n nextCoachmark(journeyId, false, SHOW_PICK_A_LEVEL_TOOLTIP_AFTER_MS); // Show coachmark => Each table has 3... and Hide the previous two\n nextCoachmark(journeyId, true, SHOW_PICK_A_LEVEL_NUDGE_AFTER_MS); // Show nudge => Pick a level\n\n const startAnimationOnLabelAgain = setTimeout(() => {\n clearTimeout(startAnimationOnLabelAgain);\n highlightedTableRef.current?.startLabelAnimation('YELLOW_4');\n }, START_ANIMATING_CLONED_ELEM);\n\n timerRefs.current.push(startAnimationOnLabelAgain);\n },\n [addCoachmark, endJourney, journeyId, nextCoachmark],\n );\n\n const goToTableLauncher = useCallback(() => {\n playButtonSound();\n carouselRefs.current?.goToIndex(TABLE_CARD_INDEX);\n nextCoachmark(journeyId, false, GO_TO_TABLE_LAUNCHER_DURATION_MS);\n\n trackAnalytics(PLATFORM_EVENTS_STUDENT.ONBOARDING_STEP_VIEWED, {\n step: Action.TABLES,\n });\n\n const showNudge = setTimeout(() => {\n clearTimeout(showNudge);\n originalTableRef.current?.setLabelVisiblity(false);\n nextCoachmark(journeyId, true);\n }, SHOW_CLICK_TABLE_NUDGE_AFTER_MS);\n\n timerRefs.current.push(showNudge);\n\n const animateLabel = setTimeout(() => {\n clearTimeout(animateLabel);\n highlightedTableRef.current?.startLabelAnimation('YELLOW_4');\n }, START_ANIMATING_CLONED_ELEM);\n\n timerRefs.current.push(animateLabel);\n }, [carouselRefs, journeyId, nextCoachmark, playButtonSound, trackAnalytics]);\n\n const startJourney = useCallback(\n (tablesData: ITables, isTutorialOnboardingDone: boolean = false) => {\n if (isJourneyInProgress.current) {\n return;\n }\n\n const paginationList = carouselRefs.current?.indicatorRefs;\n const carouselNextBtnRef = carouselRefs.current?.nextBtnRef;\n const tablePaginationRef = paginationList?.[TABLE_CARD_INDEX];\n\n if (\n !originalTableRef.current?.segmentedCardWrapperRef.current ||\n !originalTableRef.current?.labelRef.current ||\n !paginationList ||\n !carouselNextBtnRef?.current ||\n !tablePaginationRef ||\n !tablePaginationRef.current\n ) {\n return;\n }\n\n isJourneyInProgress.current = true;\n\n const labelDims = originalTableRef.current.labelRef.current.getBoundingClientRect();\n const tableCardDims =\n originalTableRef.current?.segmentedCardWrapperRef.current.getBoundingClientRect();\n\n setJourney(journeyId, []);\n\n // TAKE THE USER TO THE TABLE CARD\n if (!isTutorialOnboardingDone) {\n addCoachmark(journeyId, {\n originalElementToHighlightRef: carouselRefs.current?.nextBtnRef,\n isActive: false,\n type: IndicatorType.NUDGE,\n indicator: {\n nudge: 'click',\n content: (\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n Click to proceed\n </Text>\n ),\n nudgePointerX: 0,\n nudgePointerY: 0,\n } as INudgeProps,\n elementToHighlight: (\n <IconButton\n renderAs=\"secondary\"\n Icon={CaratRightIcon}\n onClick={goToTableLauncher}\n analyticsLabel={GAME_LAUNCHER_ANALYTICS_EVENTS.JOURNEY_NEXT_ACTIVITY}\n />\n ),\n });\n carouselRefs.current?.goToIndex(PUZZLE_CARD_INDEX);\n nextCoachmark(journeyId, false, SHOW_INITIAL_COACHMARK_AFTER_MS); // Show nudge => Click to proceed\n } else {\n addCoachmark(journeyId, {\n originalElementToHighlightRef: tablePaginationRef as React.RefObject<HTMLDivElement>,\n isActive: false,\n type: IndicatorType.TOOLTIP,\n elementToHighlight: <S.Indicator $isActive={false} />,\n indicator: {\n position: 'bottom',\n backgroundColor: 'YELLOW_4',\n width: 52,\n tooltipItem: (\n <FlexView\n $position=\"absolute\"\n $flexDirection=\"row\"\n style={{ top: 6, left: 8, cursor: 'pointer' }}\n onClick={goToTableLauncher}\n >\n <Text $renderAs=\"ab2-bold\">NEW</Text>\n </FlexView>\n ),\n tooltipYCoOrdinates: 14, // Need some offset in Y direction from top\n } as IArrowTooltipProps,\n });\n addCoachmark(journeyId, {\n originalElementToHighlightRef: tablePaginationRef as React.RefObject<HTMLDivElement>,\n isActive: false,\n type: IndicatorType.NUDGE,\n indicator: {\n nudge: 'click',\n content: '',\n nudgePointerY: 20,\n } as INudgeProps,\n elementToHighlight: <></>,\n });\n nextCoachmark(journeyId, false, SHOW_INITIAL_COACHMARK_AFTER_MS); // Show Coachmark => NEW\n nextCoachmark(journeyId, true, SHOW_INITIAL_TOOLTIP_AFTER_MS); // Show Nudge over Coachmark\n }\n\n // SHOW THE USER SELECT A TABLE\n addCoachmark(journeyId, {\n originalElementToHighlightRef: originalTableRef.current.labelRef,\n isActive: false,\n type: IndicatorType.TOOLTIP,\n elementToHighlight: <></>,\n indicator: {\n position: 'right',\n backgroundColor: 'YELLOW_4',\n width: 264,\n tooltipItem: (\n <FlexView>\n <Text $renderAs=\"ab2-bold\">\n Get faster at multiplication! Practice everyday and become a Tables champ.\n </Text>\n </FlexView>\n ),\n tooltipXCoOrdinates: labelDims.width + 50,\n tooltipYCoOrdinates: labelDims.height / 2,\n } as IArrowTooltipProps,\n });\n\n addCoachmark(journeyId, {\n originalElementToHighlightRef: originalTableRef.current.segmentedCardWrapperRef,\n isActive: false,\n type: IndicatorType.NUDGE,\n indicator: {\n nudge: 'click',\n content: (\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n {'Pick a table to start'}\n </Text>\n ),\n nudgePointerX: tableCardDims.width / 2 + 50,\n nudgePointerY: tableCardDims.height / 2,\n } as INudgeProps,\n elementToHighlight: (\n <TablesCard\n ref={highlightedTableRef}\n label={tablesData.label}\n data={tablesData.data}\n onPress={() => {}}\n onPressTableSegment={tableInfo => handleTableSegmentClick(tablesData, tableInfo)}\n />\n ),\n });\n },\n [\n addCoachmark,\n carouselRefs,\n goToTableLauncher,\n handleTableSegmentClick,\n journeyId,\n nextCoachmark,\n setJourney,\n ],\n );\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n timerRefs.current.forEach(timer => clearTimeout(timer));\n timerRefs.current = [];\n isJourneyInProgress.current = false;\n };\n }, [journeyId]);\n\n return {\n tableRef: originalTableRef,\n startJourney,\n };\n};\n"],"names":["useTableLauncherJourney","carouselRefs","onTableSegmentClick","onJourneyComplete","journeyId","JOURNEY_ID_STUDENT","originalTableRef","useRef","highlightedTableRef","isJourneyInProgress","timerRefs","playButtonSound","useCircleSounds","nextCoachmark","setJourney","addCoachmark","useJourney","trackAnalytics","useUIContext","endJourney","useCallback","tableDetails","PLATFORM_EVENTS_STUDENT","Action","_a","_b","handleTableSegmentClick","launcherData","tableData","segmentedCardDims","tableCardDims","_c","IndicatorType","jsx","TablesCard","FlexView","Text","Fragment","SHOW_PICK_A_LEVEL_TOOLTIP_AFTER_MS","SHOW_PICK_A_LEVEL_NUDGE_AFTER_MS","startAnimationOnLabelAgain","START_ANIMATING_CLONED_ELEM","goToTableLauncher","TABLE_CARD_INDEX","GO_TO_TABLE_LAUNCHER_DURATION_MS","showNudge","SHOW_CLICK_TABLE_NUDGE_AFTER_MS","animateLabel","startJourney","tablesData","isTutorialOnboardingDone","paginationList","carouselNextBtnRef","tablePaginationRef","_d","labelDims","_e","S.Indicator","SHOW_INITIAL_COACHMARK_AFTER_MS","SHOW_INITIAL_TOOLTIP_AFTER_MS","_f","IconButton","CaratRightIcon","GAME_LAUNCHER_ANALYTICS_EVENTS","_g","PUZZLE_CARD_INDEX","tableInfo","useEffect","timer"],"mappings":"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"}
1
+ {"version":3,"file":"use-table-launcher-journey.js","sources":["../../../../../../src/features/circle-games/game-launcher/hooks/use-table-launcher-journey/use-table-launcher-journey.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport type { IArrowTooltipProps } from '../../../../ui/arrow-tooltip/arrow-tooltip-types';\nimport type { INudgeProps } from '../../../../ui/nudge/nudge-types';\nimport type { ITableCardRef, ITableDetails } from '../../comps/tables-card/tables-card-types';\nimport type {\n ITableInfo,\n ITables,\n} from '../../dal/use-get-circle-home-details-dal/use-get-circle-home-dal-types';\nimport type { IUseTableJourneyProps } from './use-table-launcher-journey-types';\n\nimport { useCallback, useEffect, useRef } from 'react';\n\nimport CaratRightIcon from '../../../../../assets/line-icons/icons/carat-right';\nimport { PLATFORM_EVENTS_STUDENT } from '../../../../analytics-events/platform-events-student';\nimport { JOURNEY_ID_STUDENT } from '../../../../journey/journey-id/journey-id-student';\nimport { IndicatorType } from '../../../../journey/use-journey/constants';\nimport { useJourney } from '../../../../journey/use-journey/use-journey';\nimport IconButton from '../../../../ui/buttons/icon-button/icon-button';\nimport { useUIContext } from '../../../../ui/context/context';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport { CIRCLE_ONBOARDING_ANALYTICS_STEPS as Action } from '../../../enum/circle-onboarding-steps';\nimport { useCircleSounds } from '../../../hooks/use-circle-sounds/use-circle-sounds';\nimport { TablesCard } from '../../comps/tables-card/tables-card';\nimport { GAME_LAUNCHER_ANALYTICS_EVENTS } from '../../game-launcher-analytics-events';\nimport {\n LESSON_CARD_INDEX,\n PUZZLE_CARD_INDEX,\n SHOW_PICK_A_LEVEL_NUDGE_AFTER_MS,\n SHOW_PICK_A_LEVEL_TOOLTIP_AFTER_MS,\n TABLE_CARD_INDEX,\n} from './constants';\nimport {\n GO_TO_TABLE_LAUNCHER_DURATION_MS,\n SHOW_CLICK_TABLE_NUDGE_AFTER_MS,\n SHOW_INITIAL_COACHMARK_AFTER_MS,\n SHOW_INITIAL_TOOLTIP_AFTER_MS,\n START_ANIMATING_CLONED_ELEM,\n} from './constants';\nimport * as S from './use-table-launcher-journey-styled';\n\nexport const useTableLauncherJourney = ({\n carouselRefs,\n onTableSegmentClick,\n onJourneyComplete,\n}: IUseTableJourneyProps) => {\n const journeyId = JOURNEY_ID_STUDENT.CIRCLE_TABLES_INTRO_JOURNEY;\n const originalTableRef = useRef<ITableCardRef>(null);\n const highlightedTableRef = useRef<ITableCardRef>(null);\n const isJourneyInProgress = useRef(false);\n\n const timerRefs = useRef<ReturnType<typeof setTimeout>[]>([]);\n\n const { playButtonSound } = useCircleSounds();\n const { nextCoachmark, setJourney, addCoachmark } = useJourney();\n const { onEvent: trackAnalytics } = useUIContext();\n\n const endJourney = useCallback(\n (tableDetails?: ITableDetails) => {\n // Only when User clicked on play\n if (tableDetails) {\n onTableSegmentClick(tableDetails);\n }\n trackAnalytics(PLATFORM_EVENTS_STUDENT.ONBOARDING_STEP_COMPLETED, {\n step: Action.TABLES,\n });\n\n // Reset original table card ref label\n originalTableRef?.current?.setLabelVisiblity(true);\n originalTableRef?.current?.stopLabelAnimation();\n onJourneyComplete(journeyId);\n nextCoachmark(journeyId, false);\n },\n [journeyId, nextCoachmark, onJourneyComplete, onTableSegmentClick, trackAnalytics],\n );\n\n const handleTableSegmentClick = useCallback(\n (launcherData: ITables, tableData: ITableInfo) => {\n if (\n !originalTableRef.current?.segmentedCardWrapperRef.current ||\n !originalTableRef.current?.labelRef.current\n ) {\n return;\n }\n\n const segmentedCardDims = originalTableRef.current.labelRef.current.getBoundingClientRect();\n const tableCardDims =\n originalTableRef.current?.segmentedCardWrapperRef.current.getBoundingClientRect();\n\n addCoachmark(journeyId, {\n originalElementToHighlightRef: originalTableRef.current.segmentedCardWrapperRef,\n isActive: false,\n type: IndicatorType.TOOLTIP,\n elementToHighlight: (\n <TablesCard\n ref={highlightedTableRef}\n defaultTable={tableData}\n label={launcherData.label}\n data={launcherData.data}\n onPress={endJourney}\n onGoBackFromTableLevel={endJourney}\n />\n ),\n indicator: {\n position: 'left',\n backgroundColor: 'YELLOW_4',\n width: 236,\n tooltipItem: (\n <FlexView>\n <Text $renderAs=\"ab2-bold\">Each table has 3 levels—clear them and earn 3 stars!</Text>\n </FlexView>\n ),\n tooltipXCoOrdinates: 0,\n tooltipYCoOrdinates: segmentedCardDims.height * 0.35,\n } as IArrowTooltipProps,\n });\n\n addCoachmark(journeyId, {\n originalElementToHighlightRef: originalTableRef.current.segmentedCardWrapperRef,\n isActive: false,\n type: IndicatorType.NUDGE,\n indicator: {\n nudge: 'click',\n content: (\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n Pick a level\n </Text>\n ),\n nudgePointerX: tableCardDims.width / 2 + 50,\n nudgePointerY: tableCardDims.height * 0.4,\n } as INudgeProps,\n elementToHighlight: <></>,\n });\n\n nextCoachmark(journeyId, false, SHOW_PICK_A_LEVEL_TOOLTIP_AFTER_MS); // Show coachmark => Each table has 3... and Hide the previous two\n nextCoachmark(journeyId, true, SHOW_PICK_A_LEVEL_NUDGE_AFTER_MS); // Show nudge => Pick a level\n\n const startAnimationOnLabelAgain = setTimeout(() => {\n clearTimeout(startAnimationOnLabelAgain);\n highlightedTableRef.current?.startLabelAnimation('YELLOW_4');\n }, START_ANIMATING_CLONED_ELEM);\n\n timerRefs.current.push(startAnimationOnLabelAgain);\n },\n [addCoachmark, endJourney, journeyId, nextCoachmark],\n );\n\n const goToTableLauncher = useCallback(() => {\n playButtonSound();\n carouselRefs.current?.goToIndex(TABLE_CARD_INDEX);\n nextCoachmark(journeyId, false, GO_TO_TABLE_LAUNCHER_DURATION_MS);\n\n trackAnalytics(PLATFORM_EVENTS_STUDENT.ONBOARDING_STEP_VIEWED, {\n step: Action.TABLES,\n });\n\n const showNudge = setTimeout(() => {\n clearTimeout(showNudge);\n originalTableRef.current?.setLabelVisiblity(false);\n nextCoachmark(journeyId, true);\n }, SHOW_CLICK_TABLE_NUDGE_AFTER_MS);\n\n timerRefs.current.push(showNudge);\n\n const animateLabel = setTimeout(() => {\n clearTimeout(animateLabel);\n highlightedTableRef.current?.startLabelAnimation('YELLOW_4');\n }, START_ANIMATING_CLONED_ELEM);\n\n timerRefs.current.push(animateLabel);\n }, [carouselRefs, journeyId, nextCoachmark, playButtonSound, trackAnalytics]);\n\n const startJourney = useCallback(\n (tablesData: ITables, isTutorialOnboardingDone: boolean = false) => {\n if (isJourneyInProgress.current) {\n return;\n }\n\n const paginationList = carouselRefs.current?.indicatorRefs;\n const carouselNextBtnRef = carouselRefs.current?.nextBtnRef;\n const tablePaginationRef = paginationList?.[TABLE_CARD_INDEX];\n\n if (\n !originalTableRef.current?.segmentedCardWrapperRef.current ||\n !originalTableRef.current?.labelRef.current ||\n !paginationList ||\n !carouselNextBtnRef?.current ||\n !tablePaginationRef ||\n !tablePaginationRef.current\n ) {\n return;\n }\n\n isJourneyInProgress.current = true;\n\n const labelDims = originalTableRef.current.labelRef.current.getBoundingClientRect();\n const tableCardDims =\n originalTableRef.current?.segmentedCardWrapperRef.current.getBoundingClientRect();\n\n // TAKE THE USER TO THE TABLE CARD\n if (!isTutorialOnboardingDone) {\n setJourney(journeyId, [\n {\n originalElementToHighlightRef: carouselRefs.current?.nextBtnRef,\n isActive: false,\n type: IndicatorType.NUDGE,\n indicator: {\n nudge: 'click',\n content: (\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n Click to proceed\n </Text>\n ),\n nudgePointerX: 0,\n nudgePointerY: 0,\n } as INudgeProps,\n elementToHighlight: (\n <IconButton\n renderAs=\"secondary\"\n Icon={CaratRightIcon}\n onClick={goToTableLauncher}\n analyticsLabel={GAME_LAUNCHER_ANALYTICS_EVENTS.JOURNEY_NEXT_ACTIVITY}\n />\n ),\n },\n ]);\n carouselRefs.current?.goToIndex(PUZZLE_CARD_INDEX);\n nextCoachmark(journeyId, false, SHOW_INITIAL_COACHMARK_AFTER_MS); // Show nudge => Click to proceed\n } else {\n setJourney(journeyId, [\n {\n originalElementToHighlightRef: tablePaginationRef as React.RefObject<HTMLDivElement>,\n isActive: false,\n type: IndicatorType.TOOLTIP,\n elementToHighlight: <S.Indicator $isActive={false} />,\n indicator: {\n position: 'bottom',\n backgroundColor: 'YELLOW_4',\n width: 52,\n tooltipItem: (\n <FlexView\n $position=\"absolute\"\n $flexDirection=\"row\"\n style={{ top: 6, left: 8, cursor: 'pointer' }}\n onClick={goToTableLauncher}\n >\n <Text $renderAs=\"ab2-bold\">NEW</Text>\n </FlexView>\n ),\n tooltipYCoOrdinates: 14, // Need some offset in Y direction from top\n } as IArrowTooltipProps,\n },\n {\n originalElementToHighlightRef: tablePaginationRef as React.RefObject<HTMLDivElement>,\n isActive: false,\n type: IndicatorType.NUDGE,\n indicator: {\n nudge: 'click',\n content: '',\n nudgePointerY: 20,\n } as INudgeProps,\n elementToHighlight: <></>,\n },\n ]);\n carouselRefs.current?.goToIndex(LESSON_CARD_INDEX);\n nextCoachmark(journeyId, false, SHOW_INITIAL_COACHMARK_AFTER_MS); // Show Coachmark => NEW\n nextCoachmark(journeyId, true, SHOW_INITIAL_TOOLTIP_AFTER_MS); // Show Nudge over Coachmark\n }\n\n // SHOW THE USER SELECT A TABLE\n addCoachmark(journeyId, {\n originalElementToHighlightRef: originalTableRef.current.labelRef,\n isActive: false,\n type: IndicatorType.TOOLTIP,\n elementToHighlight: <></>,\n indicator: {\n position: 'right',\n backgroundColor: 'YELLOW_4',\n width: 264,\n tooltipItem: (\n <FlexView>\n <Text $renderAs=\"ab2-bold\">\n Get faster at multiplication! Practice everyday and become a Tables champ.\n </Text>\n </FlexView>\n ),\n tooltipXCoOrdinates: labelDims.width + 50,\n tooltipYCoOrdinates: labelDims.height / 2,\n } as IArrowTooltipProps,\n });\n\n addCoachmark(journeyId, {\n originalElementToHighlightRef: originalTableRef.current.segmentedCardWrapperRef,\n isActive: false,\n type: IndicatorType.NUDGE,\n indicator: {\n nudge: 'click',\n content: (\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n {'Pick a table to start'}\n </Text>\n ),\n nudgePointerX: tableCardDims.width / 2 + 50,\n nudgePointerY: tableCardDims.height / 2,\n } as INudgeProps,\n elementToHighlight: (\n <TablesCard\n ref={highlightedTableRef}\n label={tablesData.label}\n data={tablesData.data}\n onPress={() => {}}\n onPressTableSegment={tableInfo => handleTableSegmentClick(tablesData, tableInfo)}\n />\n ),\n });\n },\n [\n addCoachmark,\n carouselRefs,\n goToTableLauncher,\n handleTableSegmentClick,\n journeyId,\n nextCoachmark,\n setJourney,\n ],\n );\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n timerRefs.current.forEach(timer => clearTimeout(timer));\n timerRefs.current = [];\n isJourneyInProgress.current = false;\n };\n }, [journeyId]);\n\n return {\n tableRef: originalTableRef,\n startJourney,\n };\n};\n"],"names":["useTableLauncherJourney","carouselRefs","onTableSegmentClick","onJourneyComplete","journeyId","JOURNEY_ID_STUDENT","originalTableRef","useRef","highlightedTableRef","isJourneyInProgress","timerRefs","playButtonSound","useCircleSounds","nextCoachmark","setJourney","addCoachmark","useJourney","trackAnalytics","useUIContext","endJourney","useCallback","tableDetails","PLATFORM_EVENTS_STUDENT","Action","_a","_b","handleTableSegmentClick","launcherData","tableData","segmentedCardDims","tableCardDims","_c","IndicatorType","jsx","TablesCard","FlexView","Text","Fragment","SHOW_PICK_A_LEVEL_TOOLTIP_AFTER_MS","SHOW_PICK_A_LEVEL_NUDGE_AFTER_MS","startAnimationOnLabelAgain","START_ANIMATING_CLONED_ELEM","goToTableLauncher","TABLE_CARD_INDEX","GO_TO_TABLE_LAUNCHER_DURATION_MS","showNudge","SHOW_CLICK_TABLE_NUDGE_AFTER_MS","animateLabel","startJourney","tablesData","isTutorialOnboardingDone","paginationList","carouselNextBtnRef","tablePaginationRef","_d","labelDims","_e","S.Indicator","_h","LESSON_CARD_INDEX","SHOW_INITIAL_COACHMARK_AFTER_MS","SHOW_INITIAL_TOOLTIP_AFTER_MS","_f","IconButton","CaratRightIcon","GAME_LAUNCHER_ANALYTICS_EVENTS","_g","PUZZLE_CARD_INDEX","tableInfo","useEffect","timer"],"mappings":"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"}
@@ -1,26 +1,26 @@
1
- import { jsxs as a, jsx as r } from "react/jsx-runtime";
2
- import { useState as l, useRef as f, useCallback as h } from "react";
1
+ import { jsxs as d, jsx as r } from "react/jsx-runtime";
2
+ import { useState as f, useRef as h, useCallback as l } from "react";
3
3
  import g from "../../../../assets/line-icons/icons/cross.js";
4
4
  import C from "../../../ui/text/text.js";
5
- import { GameTutorialWrapper as I, GameTutorialHeader as V, HeaderIconContainer as x, GameTutorialContainer as T, VideoContainer as $, VideoProgressWrapper as G, VideoProgressContainer as H, VideoProgress as P } from "./tutorial-styled.js";
5
+ import { GameTutorialWrapper as V, GameTutorialHeader as x, HeaderIconContainer as I, GameTutorialContainer as T, VideoContainer as $, VideoProgressWrapper as G, VideoProgressContainer as H, VideoProgress as P } from "./tutorial-styled.js";
6
6
  const E = ({
7
- src: d,
8
- title: t,
9
- onCross: o,
7
+ src: a,
8
+ title: o,
9
+ onCross: t,
10
10
  showProgress: m = !0,
11
11
  onTutorialPlayedOnce: e
12
12
  }) => {
13
- const [i, u] = l(0), s = f(!1), p = h(
13
+ const [i, u] = f(0), s = h(!1), p = l(
14
14
  (n) => {
15
15
  const c = (n.target.currentTime || 0) / (n.target.duration || 1) * 100;
16
16
  c >= 90 && !s.current && (s.current = !0, e == null || e()), u(c);
17
17
  },
18
18
  [e]
19
19
  );
20
- return /* @__PURE__ */ a(I, { children: [
21
- (t || o) && /* @__PURE__ */ a(V, { children: [
22
- t && /* @__PURE__ */ r(C, { $renderAs: "ac3", $color: "WHITE", $align: "center", children: t }),
23
- o && /* @__PURE__ */ r(x, { children: /* @__PURE__ */ r(g, { color: "#fff", onClick: o }) })
20
+ return /* @__PURE__ */ d(V, { children: [
21
+ (o || t) && /* @__PURE__ */ d(x, { children: [
22
+ o && /* @__PURE__ */ r(C, { $renderAs: "ac3", $color: "WHITE", $align: "center", children: o }),
23
+ t && /* @__PURE__ */ r(I, { children: /* @__PURE__ */ r(g, { color: "#fff", onClick: t }) })
24
24
  ] }),
25
25
  /* @__PURE__ */ r(T, { children: /* @__PURE__ */ r($, { children: /* @__PURE__ */ r(
26
26
  "video",
@@ -28,11 +28,10 @@ const E = ({
28
28
  loop: !0,
29
29
  autoPlay: !0,
30
30
  muted: !0,
31
- src: d,
31
+ src: a,
32
32
  onTimeUpdate: p,
33
33
  disablePictureInPicture: !0,
34
- itemType: "video/mp4",
35
- playsInline: !0
34
+ itemType: "video/mp4"
36
35
  }
37
36
  ) }) }),
38
37
  m && /* @__PURE__ */ r(G, { children: /* @__PURE__ */ r(H, { children: i > 0 && /* @__PURE__ */ r(P, { $width: i }) }) })
@@ -1 +1 @@
1
- {"version":3,"file":"tutorial.js","sources":["../../../../../src/features/circle-games/games/tutorial/tutorial.tsx"],"sourcesContent":["import type { ITutorialProps } from './tutorial-types';\nimport type { ChangeEvent } from 'react';\n\nimport { useCallback, useRef, useState } from 'react';\n\nimport CrossIcon from '../../../../assets/line-icons/icons/cross';\nimport Text from '../../../ui/text/text';\nimport * as Styled from './tutorial-styled';\n\nexport const Tutorial = ({\n src,\n title,\n onCross,\n showProgress = true,\n onTutorialPlayedOnce,\n}: ITutorialProps) => {\n const [progress, setProgress] = useState(0);\n const hasVideoEnded = useRef(false);\n\n const onProgress = useCallback(\n (e: ChangeEvent<HTMLVideoElement>) => {\n const p = ((e.target.currentTime || 0) / (e.target.duration || 1)) * 100;\n\n if (p >= 90 && !hasVideoEnded.current) {\n hasVideoEnded.current = true;\n onTutorialPlayedOnce?.();\n }\n\n setProgress(p);\n },\n [onTutorialPlayedOnce],\n );\n\n return (\n <Styled.GameTutorialWrapper>\n {(title || onCross) && (\n <Styled.GameTutorialHeader>\n {title && (\n <Text $renderAs=\"ac3\" $color=\"WHITE\" $align=\"center\">\n {title}\n </Text>\n )}\n {onCross && (\n <Styled.HeaderIconContainer>\n <CrossIcon color=\"#fff\" onClick={onCross} />\n </Styled.HeaderIconContainer>\n )}\n </Styled.GameTutorialHeader>\n )}\n\n <Styled.GameTutorialContainer>\n <Styled.VideoContainer>\n <video\n loop={true}\n autoPlay={true}\n muted={true}\n src={src}\n onTimeUpdate={onProgress}\n disablePictureInPicture={true}\n itemType=\"video/mp4\"\n playsInline\n />\n </Styled.VideoContainer>\n </Styled.GameTutorialContainer>\n\n {showProgress && (\n <Styled.VideoProgressWrapper>\n <Styled.VideoProgressContainer>\n {progress > 0 && <Styled.VideoProgress $width={progress} />}\n </Styled.VideoProgressContainer>\n </Styled.VideoProgressWrapper>\n )}\n </Styled.GameTutorialWrapper>\n );\n};\n"],"names":["Tutorial","src","title","onCross","showProgress","onTutorialPlayedOnce","progress","setProgress","useState","hasVideoEnded","useRef","onProgress","useCallback","e","p","jsxs","Styled.GameTutorialWrapper","Styled.GameTutorialHeader","jsx","Text","Styled.HeaderIconContainer","CrossIcon","Styled.GameTutorialContainer","Styled.VideoContainer","Styled.VideoProgressWrapper","Styled.VideoProgressContainer","Styled.VideoProgress"],"mappings":";;;;;AASO,MAAMA,IAAW,CAAC;AAAA,EACvB,KAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,sBAAAC;AACF,MAAsB;AACpB,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAS,CAAC,GACpCC,IAAgBC,EAAO,EAAK,GAE5BC,IAAaC;AAAA,IACjB,CAACC,MAAqC;AAC9B,YAAAC,KAAMD,EAAE,OAAO,eAAe,MAAMA,EAAE,OAAO,YAAY,KAAM;AAErE,MAAIC,KAAK,MAAM,CAACL,EAAc,YAC5BA,EAAc,UAAU,IACDJ,KAAA,QAAAA,MAGzBE,EAAYO,CAAC;AAAA,IACf;AAAA,IACA,CAACT,CAAoB;AAAA,EAAA;AAIrB,SAAA,gBAAAU,EAACC,GAAA,EACG,UAAA;AAAA,KAAAd,KAASC,MACT,gBAAAY,EAACE,GAAA,EACE,UAAA;AAAA,MACCf,KAAA,gBAAAgB,EAACC,KAAK,WAAU,OAAM,QAAO,SAAQ,QAAO,UACzC,UACHjB,EAAA,CAAA;AAAA,MAEDC,KACE,gBAAAe,EAAAE,GAAA,EACC,UAAC,gBAAAF,EAAAG,GAAA,EAAU,OAAM,QAAO,SAASlB,EAAA,CAAS,EAC5C,CAAA;AAAA,IAAA,GAEJ;AAAA,sBAGDmB,GAAA,EACC,UAAC,gBAAAJ,EAAAK,GAAA,EACC,UAAA,gBAAAL;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,UAAU;AAAA,QACV,OAAO;AAAA,QACP,KAAAjB;AAAA,QACA,cAAcU;AAAA,QACd,yBAAyB;AAAA,QACzB,UAAS;AAAA,QACT,aAAW;AAAA,MAAA;AAAA,OAEf,EACF,CAAA;AAAA,IAECP,KACE,gBAAAc,EAAAM,GAAA,EACC,UAAA,gBAAAN,EAACO,GAAA,EACE,UAAWnB,IAAA,uBAAMoB,GAAA,EAAqB,QAAQpB,EAAU,CAAA,EAC3D,CAAA,GACF;AAAA,EAEJ,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"tutorial.js","sources":["../../../../../src/features/circle-games/games/tutorial/tutorial.tsx"],"sourcesContent":["import type { ITutorialProps } from './tutorial-types';\nimport type { ChangeEvent } from 'react';\n\nimport { useCallback, useRef, useState } from 'react';\n\nimport CrossIcon from '../../../../assets/line-icons/icons/cross';\nimport Text from '../../../ui/text/text';\nimport * as Styled from './tutorial-styled';\n\nexport const Tutorial = ({\n src,\n title,\n onCross,\n showProgress = true,\n onTutorialPlayedOnce,\n}: ITutorialProps) => {\n const [progress, setProgress] = useState(0);\n const hasVideoEnded = useRef(false);\n\n const onProgress = useCallback(\n (e: ChangeEvent<HTMLVideoElement>) => {\n const p = ((e.target.currentTime || 0) / (e.target.duration || 1)) * 100;\n\n if (p >= 90 && !hasVideoEnded.current) {\n hasVideoEnded.current = true;\n onTutorialPlayedOnce?.();\n }\n\n setProgress(p);\n },\n [onTutorialPlayedOnce],\n );\n\n return (\n <Styled.GameTutorialWrapper>\n {(title || onCross) && (\n <Styled.GameTutorialHeader>\n {title && (\n <Text $renderAs=\"ac3\" $color=\"WHITE\" $align=\"center\">\n {title}\n </Text>\n )}\n {onCross && (\n <Styled.HeaderIconContainer>\n <CrossIcon color=\"#fff\" onClick={onCross} />\n </Styled.HeaderIconContainer>\n )}\n </Styled.GameTutorialHeader>\n )}\n\n <Styled.GameTutorialContainer>\n <Styled.VideoContainer>\n <video\n loop={true}\n autoPlay={true}\n muted={true}\n src={src}\n onTimeUpdate={onProgress}\n disablePictureInPicture={true}\n itemType=\"video/mp4\"\n />\n </Styled.VideoContainer>\n </Styled.GameTutorialContainer>\n\n {showProgress && (\n <Styled.VideoProgressWrapper>\n <Styled.VideoProgressContainer>\n {progress > 0 && <Styled.VideoProgress $width={progress} />}\n </Styled.VideoProgressContainer>\n </Styled.VideoProgressWrapper>\n )}\n </Styled.GameTutorialWrapper>\n );\n};\n"],"names":["Tutorial","src","title","onCross","showProgress","onTutorialPlayedOnce","progress","setProgress","useState","hasVideoEnded","useRef","onProgress","useCallback","e","p","jsxs","Styled.GameTutorialWrapper","Styled.GameTutorialHeader","jsx","Text","Styled.HeaderIconContainer","CrossIcon","Styled.GameTutorialContainer","Styled.VideoContainer","Styled.VideoProgressWrapper","Styled.VideoProgressContainer","Styled.VideoProgress"],"mappings":";;;;;AASO,MAAMA,IAAW,CAAC;AAAA,EACvB,KAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,sBAAAC;AACF,MAAsB;AACpB,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAS,CAAC,GACpCC,IAAgBC,EAAO,EAAK,GAE5BC,IAAaC;AAAA,IACjB,CAACC,MAAqC;AAC9B,YAAAC,KAAMD,EAAE,OAAO,eAAe,MAAMA,EAAE,OAAO,YAAY,KAAM;AAErE,MAAIC,KAAK,MAAM,CAACL,EAAc,YAC5BA,EAAc,UAAU,IACDJ,KAAA,QAAAA,MAGzBE,EAAYO,CAAC;AAAA,IACf;AAAA,IACA,CAACT,CAAoB;AAAA,EAAA;AAIrB,SAAA,gBAAAU,EAACC,GAAA,EACG,UAAA;AAAA,KAAAd,KAASC,MACT,gBAAAY,EAACE,GAAA,EACE,UAAA;AAAA,MACCf,KAAA,gBAAAgB,EAACC,KAAK,WAAU,OAAM,QAAO,SAAQ,QAAO,UACzC,UACHjB,EAAA,CAAA;AAAA,MAEDC,KACE,gBAAAe,EAAAE,GAAA,EACC,UAAC,gBAAAF,EAAAG,GAAA,EAAU,OAAM,QAAO,SAASlB,EAAA,CAAS,EAC5C,CAAA;AAAA,IAAA,GAEJ;AAAA,sBAGDmB,GAAA,EACC,UAAC,gBAAAJ,EAAAK,GAAA,EACC,UAAA,gBAAAL;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,UAAU;AAAA,QACV,OAAO;AAAA,QACP,KAAAjB;AAAA,QACA,cAAcU;AAAA,QACd,yBAAyB;AAAA,QACzB,UAAS;AAAA,MAAA;AAAA,OAEb,EACF,CAAA;AAAA,IAECP,KACE,gBAAAc,EAAAM,GAAA,EACC,UAAA,gBAAAN,EAACO,GAAA,EACE,UAAWnB,IAAA,uBAAMoB,GAAA,EAAqB,QAAQpB,EAAU,CAAA,EAC3D,CAAA,GACF;AAAA,EAEJ,EAAA,CAAA;AAEJ;"}
@@ -7,7 +7,7 @@ const v = E({
7
7
  canAutoPlayAudio: !1,
8
8
  canAutoPlayVideo: !1
9
9
  }), O = ({ children: u }) => {
10
- const [l, a] = s(!1), [A, c] = s(!1), { onEvent: o } = f();
10
+ const [l, a] = s(!1), [A, c] = s(!1), { onEvent: t } = f();
11
11
  return d(() => {
12
12
  const n = () => {
13
13
  a(!0), c(!0), r.forEach((e) => {
@@ -17,36 +17,36 @@ const v = E({
17
17
  r.forEach((e) => {
18
18
  document.addEventListener(e, n);
19
19
  });
20
- const t = (e) => {
21
- e instanceof DOMException ? e.name !== "NotAllowedError" && o(i.ERROR_LOADING_MEDIA, {
20
+ const o = (e) => {
21
+ e instanceof DOMException ? e.name !== "NotAllowedError" && t(i.ERROR_LOADING_MEDIA, {
22
22
  name: e.name
23
- }) : (console.log(e), o(i.ERROR_LOADING_MEDIA, {
23
+ }) : (console.log(e), t(i.ERROR_LOADING_MEDIA, {
24
24
  error: e
25
25
  }));
26
26
  };
27
27
  try {
28
28
  new Audio(y).play().then(() => {
29
29
  a(!0);
30
- }).catch(t);
30
+ }).catch(o);
31
31
  } catch (e) {
32
- t(e);
32
+ o(e);
33
33
  }
34
34
  try {
35
35
  const e = document.createElement("video");
36
- e.src = P, e.setAttribute("playsinline", "true"), e.play().then(() => {
36
+ e.src = P, e.play().then(() => {
37
37
  c(!0);
38
- }).catch(t).finally(() => {
38
+ }).catch(o).finally(() => {
39
39
  e.remove();
40
40
  });
41
41
  } catch (e) {
42
- t(e);
42
+ o(e);
43
43
  }
44
44
  return () => {
45
45
  r.forEach((e) => {
46
46
  document.removeEventListener(e, n);
47
47
  });
48
48
  };
49
- }, [o]), /* @__PURE__ */ m(v.Provider, { value: { canAutoPlayAudio: l, canAutoPlayVideo: A }, children: u });
49
+ }, [t]), /* @__PURE__ */ m(v.Provider, { value: { canAutoPlayAudio: l, canAutoPlayVideo: A }, children: u });
50
50
  };
51
51
  export {
52
52
  v as AutoPlayPermissionContext,
@@ -1 +1 @@
1
- {"version":3,"file":"use-auto-play-permission-context-provider.js","sources":["../../../../src/features/hooks/use-auto-play-permission/use-auto-play-permission-context-provider.tsx"],"sourcesContent":["import type { IAutoPlayPermissionContextType } from './use-auto-play-permission-context-types';\nimport type { FC, ReactNode } from 'react';\n\nimport { useState, useEffect, createContext } from 'react';\n\nimport { useUIContext } from '../../ui/context/context';\nimport { EVENTS, SMALL_AUDIO, SMALL_VIDEO } from './constants';\nimport { USE_AUTO_PLAY_PERMISSION_ANALYTICS_EVENTS } from './use-auto-play-permission-analytics-events';\n\nexport const AutoPlayPermissionContext = createContext<IAutoPlayPermissionContextType>({\n canAutoPlayAudio: false,\n canAutoPlayVideo: false,\n});\n\nexport const AutoPlayPermissionProvider: FC<{ children: ReactNode }> = ({ children }) => {\n const [canAutoPlayAudio, setCanAutoPlayAudio] = useState(false);\n const [canAutoPlayVideo, setCanAutoPlayVideo] = useState(false);\n const { onEvent } = useUIContext();\n\n useEffect(() => {\n const enableAutoplay = () => {\n setCanAutoPlayAudio(true);\n setCanAutoPlayVideo(true);\n EVENTS.forEach(event => {\n document.removeEventListener(event, enableAutoplay);\n });\n };\n\n EVENTS.forEach(event => {\n document.addEventListener(event, enableAutoplay);\n });\n\n const handleError = (err: unknown) => {\n if (err instanceof DOMException) {\n err.name !== 'NotAllowedError' &&\n onEvent(USE_AUTO_PLAY_PERMISSION_ANALYTICS_EVENTS.ERROR_LOADING_MEDIA, {\n name: err.name,\n });\n } else {\n // eslint-disable-next-line no-console\n console.log(err);\n onEvent(USE_AUTO_PLAY_PERMISSION_ANALYTICS_EVENTS.ERROR_LOADING_MEDIA, {\n error: err,\n });\n }\n };\n\n // audio autoplay check\n // way to check if autoplay is allowed by the browser for audio\n try {\n new Audio(SMALL_AUDIO) // smallest silent audio file\n .play()\n .then(() => {\n setCanAutoPlayAudio(true);\n })\n .catch(handleError);\n } catch (err) {\n handleError(err);\n }\n\n // video autoplay check\n // way to check if autoplay is allowed by the browserfor video\n try {\n const video = document.createElement('video');\n\n video.src = SMALL_VIDEO; // smallest silent video file\n video.setAttribute('playsinline', 'true');\n\n video\n .play()\n .then(() => {\n setCanAutoPlayVideo(true);\n })\n .catch(handleError)\n .finally(() => {\n video.remove();\n });\n } catch (err) {\n handleError(err);\n }\n\n return () => {\n EVENTS.forEach(event => {\n document.removeEventListener(event, enableAutoplay);\n });\n };\n }, [onEvent]);\n\n return (\n <AutoPlayPermissionContext.Provider value={{ canAutoPlayAudio, canAutoPlayVideo }}>\n {children}\n </AutoPlayPermissionContext.Provider>\n );\n};\n"],"names":["AutoPlayPermissionContext","createContext","AutoPlayPermissionProvider","children","canAutoPlayAudio","setCanAutoPlayAudio","useState","canAutoPlayVideo","setCanAutoPlayVideo","onEvent","useUIContext","useEffect","enableAutoplay","EVENTS","event","handleError","err","USE_AUTO_PLAY_PERMISSION_ANALYTICS_EVENTS","SMALL_AUDIO","video","SMALL_VIDEO","jsx"],"mappings":";;;;;AASO,MAAMA,IAA4BC,EAA8C;AAAA,EACrF,kBAAkB;AAAA,EAClB,kBAAkB;AACpB,CAAC,GAEYC,IAA0D,CAAC,EAAE,UAAAC,QAAe;AACvF,QAAM,CAACC,GAAkBC,CAAmB,IAAIC,EAAS,EAAK,GACxD,CAACC,GAAkBC,CAAmB,IAAIF,EAAS,EAAK,GACxD,EAAE,SAAAG,MAAYC;AAEpB,SAAAC,EAAU,MAAM;AACd,UAAMC,IAAiB,MAAM;AAC3B,MAAAP,EAAoB,EAAI,GACxBG,EAAoB,EAAI,GACxBK,EAAO,QAAQ,CAASC,MAAA;AACb,iBAAA,oBAAoBA,GAAOF,CAAc;AAAA,MAAA,CACnD;AAAA,IAAA;AAGH,IAAAC,EAAO,QAAQ,CAASC,MAAA;AACb,eAAA,iBAAiBA,GAAOF,CAAc;AAAA,IAAA,CAChD;AAEK,UAAAG,IAAc,CAACC,MAAiB;AACpC,MAAIA,aAAe,eACjBA,EAAI,SAAS,qBACXP,EAAQQ,EAA0C,qBAAqB;AAAA,QACrE,MAAMD,EAAI;AAAA,MAAA,CACX,KAGH,QAAQ,IAAIA,CAAG,GACfP,EAAQQ,EAA0C,qBAAqB;AAAA,QACrE,OAAOD;AAAA,MAAA,CACR;AAAA,IACH;AAKE,QAAA;AACF,UAAI,MAAME,CAAW,EAClB,KAAK,EACL,KAAK,MAAM;AACV,QAAAb,EAAoB,EAAI;AAAA,MAAA,CACzB,EACA,MAAMU,CAAW;AAAA,aACbC,GAAK;AACZ,MAAAD,EAAYC,CAAG;AAAA,IACjB;AAII,QAAA;AACI,YAAAG,IAAQ,SAAS,cAAc,OAAO;AAE5C,MAAAA,EAAM,MAAMC,GACND,EAAA,aAAa,eAAe,MAAM,GAGrCA,EAAA,OACA,KAAK,MAAM;AACV,QAAAX,EAAoB,EAAI;AAAA,MACzB,CAAA,EACA,MAAMO,CAAW,EACjB,QAAQ,MAAM;AACb,QAAAI,EAAM,OAAO;AAAA,MAAA,CACd;AAAA,aACIH,GAAK;AACZ,MAAAD,EAAYC,CAAG;AAAA,IACjB;AAEA,WAAO,MAAM;AACX,MAAAH,EAAO,QAAQ,CAASC,MAAA;AACb,iBAAA,oBAAoBA,GAAOF,CAAc;AAAA,MAAA,CACnD;AAAA,IAAA;AAAA,EACH,GACC,CAACH,CAAO,CAAC,GAGV,gBAAAY,EAACrB,EAA0B,UAA1B,EAAmC,OAAO,EAAE,kBAAAI,GAAkB,kBAAAG,EAAiB,GAC7E,UAAAJ,EACH,CAAA;AAEJ;"}
1
+ {"version":3,"file":"use-auto-play-permission-context-provider.js","sources":["../../../../src/features/hooks/use-auto-play-permission/use-auto-play-permission-context-provider.tsx"],"sourcesContent":["import type { IAutoPlayPermissionContextType } from './use-auto-play-permission-context-types';\nimport type { FC, ReactNode } from 'react';\n\nimport { useState, useEffect, createContext } from 'react';\n\nimport { useUIContext } from '../../ui/context/context';\nimport { EVENTS, SMALL_AUDIO, SMALL_VIDEO } from './constants';\nimport { USE_AUTO_PLAY_PERMISSION_ANALYTICS_EVENTS } from './use-auto-play-permission-analytics-events';\n\nexport const AutoPlayPermissionContext = createContext<IAutoPlayPermissionContextType>({\n canAutoPlayAudio: false,\n canAutoPlayVideo: false,\n});\n\nexport const AutoPlayPermissionProvider: FC<{ children: ReactNode }> = ({ children }) => {\n const [canAutoPlayAudio, setCanAutoPlayAudio] = useState(false);\n const [canAutoPlayVideo, setCanAutoPlayVideo] = useState(false);\n const { onEvent } = useUIContext();\n\n useEffect(() => {\n const enableAutoplay = () => {\n setCanAutoPlayAudio(true);\n setCanAutoPlayVideo(true);\n EVENTS.forEach(event => {\n document.removeEventListener(event, enableAutoplay);\n });\n };\n\n EVENTS.forEach(event => {\n document.addEventListener(event, enableAutoplay);\n });\n\n const handleError = (err: unknown) => {\n if (err instanceof DOMException) {\n err.name !== 'NotAllowedError' &&\n onEvent(USE_AUTO_PLAY_PERMISSION_ANALYTICS_EVENTS.ERROR_LOADING_MEDIA, {\n name: err.name,\n });\n } else {\n // eslint-disable-next-line no-console\n console.log(err);\n onEvent(USE_AUTO_PLAY_PERMISSION_ANALYTICS_EVENTS.ERROR_LOADING_MEDIA, {\n error: err,\n });\n }\n };\n\n // audio autoplay check\n // way to check if autoplay is allowed by the browser for audio\n try {\n new Audio(SMALL_AUDIO) // smallest silent audio file\n .play()\n .then(() => {\n setCanAutoPlayAudio(true);\n })\n .catch(handleError);\n } catch (err) {\n handleError(err);\n }\n\n // video autoplay check\n // way to check if autoplay is allowed by the browserfor video\n try {\n const video = document.createElement('video');\n\n video.src = SMALL_VIDEO; // smallest silent video file\n\n video\n .play()\n .then(() => {\n setCanAutoPlayVideo(true);\n })\n .catch(handleError)\n .finally(() => {\n video.remove();\n });\n } catch (err) {\n handleError(err);\n }\n\n return () => {\n EVENTS.forEach(event => {\n document.removeEventListener(event, enableAutoplay);\n });\n };\n }, [onEvent]);\n\n return (\n <AutoPlayPermissionContext.Provider value={{ canAutoPlayAudio, canAutoPlayVideo }}>\n {children}\n </AutoPlayPermissionContext.Provider>\n );\n};\n"],"names":["AutoPlayPermissionContext","createContext","AutoPlayPermissionProvider","children","canAutoPlayAudio","setCanAutoPlayAudio","useState","canAutoPlayVideo","setCanAutoPlayVideo","onEvent","useUIContext","useEffect","enableAutoplay","EVENTS","event","handleError","err","USE_AUTO_PLAY_PERMISSION_ANALYTICS_EVENTS","SMALL_AUDIO","video","SMALL_VIDEO","jsx"],"mappings":";;;;;AASO,MAAMA,IAA4BC,EAA8C;AAAA,EACrF,kBAAkB;AAAA,EAClB,kBAAkB;AACpB,CAAC,GAEYC,IAA0D,CAAC,EAAE,UAAAC,QAAe;AACvF,QAAM,CAACC,GAAkBC,CAAmB,IAAIC,EAAS,EAAK,GACxD,CAACC,GAAkBC,CAAmB,IAAIF,EAAS,EAAK,GACxD,EAAE,SAAAG,MAAYC;AAEpB,SAAAC,EAAU,MAAM;AACd,UAAMC,IAAiB,MAAM;AAC3B,MAAAP,EAAoB,EAAI,GACxBG,EAAoB,EAAI,GACxBK,EAAO,QAAQ,CAASC,MAAA;AACb,iBAAA,oBAAoBA,GAAOF,CAAc;AAAA,MAAA,CACnD;AAAA,IAAA;AAGH,IAAAC,EAAO,QAAQ,CAASC,MAAA;AACb,eAAA,iBAAiBA,GAAOF,CAAc;AAAA,IAAA,CAChD;AAEK,UAAAG,IAAc,CAACC,MAAiB;AACpC,MAAIA,aAAe,eACjBA,EAAI,SAAS,qBACXP,EAAQQ,EAA0C,qBAAqB;AAAA,QACrE,MAAMD,EAAI;AAAA,MAAA,CACX,KAGH,QAAQ,IAAIA,CAAG,GACfP,EAAQQ,EAA0C,qBAAqB;AAAA,QACrE,OAAOD;AAAA,MAAA,CACR;AAAA,IACH;AAKE,QAAA;AACF,UAAI,MAAME,CAAW,EAClB,KAAK,EACL,KAAK,MAAM;AACV,QAAAb,EAAoB,EAAI;AAAA,MAAA,CACzB,EACA,MAAMU,CAAW;AAAA,aACbC,GAAK;AACZ,MAAAD,EAAYC,CAAG;AAAA,IACjB;AAII,QAAA;AACI,YAAAG,IAAQ,SAAS,cAAc,OAAO;AAE5C,MAAAA,EAAM,MAAMC,GAGTD,EAAA,OACA,KAAK,MAAM;AACV,QAAAX,EAAoB,EAAI;AAAA,MACzB,CAAA,EACA,MAAMO,CAAW,EACjB,QAAQ,MAAM;AACb,QAAAI,EAAM,OAAO;AAAA,MAAA,CACd;AAAA,aACIH,GAAK;AACZ,MAAAD,EAAYC,CAAG;AAAA,IACjB;AAEA,WAAO,MAAM;AACX,MAAAH,EAAO,QAAQ,CAASC,MAAA;AACb,iBAAA,oBAAoBA,GAAOF,CAAc;AAAA,MAAA,CACnD;AAAA,IAAA;AAAA,EACH,GACC,CAACH,CAAO,CAAC,GAGV,gBAAAY,EAACrB,EAA0B,UAA1B,EAAmC,OAAO,EAAE,kBAAAI,GAAkB,kBAAAG,EAAiB,GAC7E,UAAAJ,EACH,CAAA;AAEJ;"}
@@ -5,7 +5,7 @@ const A = [
5
5
  "SAT_MATH_RECAP",
6
6
  "SAT_MATH_LEARNING",
7
7
  "SAT_ENGLISH_LEARNING"
8
- ], o = [
8
+ ], T = [
9
9
  ...A,
10
10
  E.REMEDIAL,
11
11
  E.LEGACY,
@@ -31,15 +31,15 @@ const A = [
31
31
  E.DIAGNOSTIC,
32
32
  E.SUBJECTIVE,
33
33
  E.TURING_SUBJECTIVE
34
- ], I = (_, S) => {
35
- const { node_type: n, is_worksheet_v3: t, is_lesson_v3_enabled: T } = _;
36
- if (S === "review")
37
- return (t || T) ?? !1;
38
- const e = "can_start" in _ ? _.can_start : _.permissions.can_start, r = "can_reattempt" in _ ? _.can_reattempt : _.permissions.can_reattempt, s = "can_redo" in _ ? _.can_redo : !1;
39
- return t || T ? !0 : e || r || s ? o.includes(n) : !!A.includes(n);
34
+ ], I = (_, t) => {
35
+ const { node_type: n, is_worksheet_v3: S, is_lesson_v3_enabled: e } = _;
36
+ if (t === "review")
37
+ return T.includes(n);
38
+ const r = "can_start" in _ ? _.can_start : _.permissions.can_start, s = "can_reattempt" in _ ? _.can_reattempt : _.permissions.can_reattempt, o = "can_redo" in _ ? _.can_redo : !1;
39
+ return S || e ? !0 : r || s || o ? T.includes(n) : !!A.includes(n);
40
40
  }, N = (_) => {
41
- const { node_type: S, is_worksheet_v3: n, is_lesson_v3_enabled: t } = _;
42
- return n || t || A.includes(S);
41
+ const { node_type: t, is_worksheet_v3: n, is_lesson_v3_enabled: S } = _;
42
+ return n || S || A.includes(t);
43
43
  };
44
44
  export {
45
45
  I as isV3Worksheet,
@@ -1 +1 @@
1
- {"version":3,"file":"is-v3-worksheet.js","sources":["../../../../src/features/sheets/utils/is-v3-worksheet.ts"],"sourcesContent":["import type { IWorksheetAttemptModel } from '../../../types/models/worksheet';\nimport type { TLPARSheetData } from '../../chapters/lpar-chapter/block-section/sheet-item/sheet-item-type';\nimport type { ISheetDataProps, TNodeTypeProps } from '../sheets-list/sheet-item/sheet-item-types';\n\nimport { NODE_TYPE } from '../constants/sheet';\n\nconst SAT_V3_NODE_TYPES: TNodeTypeProps[] = [\n 'SAT_MATH_ASSESSMENT',\n 'SAT_ENGLISH_ASSESSMENT',\n 'SAT_MATH_RECAP',\n 'SAT_MATH_LEARNING',\n 'SAT_ENGLISH_LEARNING',\n];\nconst WORKSHEET_V3_NODE_TYPES: TNodeTypeProps[] = [\n ...SAT_V3_NODE_TYPES,\n NODE_TYPE.REMEDIAL,\n NODE_TYPE.LEGACY,\n NODE_TYPE.RECAP,\n NODE_TYPE.GENERAL,\n NODE_TYPE.LEVEL3,\n NODE_TYPE.LEVEL2,\n NODE_TYPE.REVISION,\n NODE_TYPE.TARGET_PRACTICE,\n NODE_TYPE.EXTRA_PRACTICE,\n NODE_TYPE.PRACTICE,\n NODE_TYPE.LEARNING,\n NODE_TYPE.PUZZLE_EASY,\n NODE_TYPE.PUZZLE_MEDIUM,\n NODE_TYPE.PUZZLE_HARD,\n NODE_TYPE.CHAPTER_ASSESSMENT,\n NODE_TYPE.ASSESSMENT,\n NODE_TYPE.MASTERY,\n NODE_TYPE.TRIAL_DIAGNOSTIC,\n NODE_TYPE.DYNAMIC,\n NODE_TYPE.TURING_ASSESSMENT,\n NODE_TYPE.TURING_PRACTICE,\n NODE_TYPE.DIAGNOSTIC,\n NODE_TYPE.SUBJECTIVE,\n NODE_TYPE.TURING_SUBJECTIVE,\n];\n\nconst isV3Worksheet = (\n sheet: ISheetDataProps | TLPARSheetData,\n mode?: 'resume' | 'review',\n): boolean => {\n const { node_type, is_worksheet_v3, is_lesson_v3_enabled } = sheet;\n\n if (mode === 'review') {\n return (is_worksheet_v3 || is_lesson_v3_enabled) ?? false;\n }\n\n const canStart = 'can_start' in sheet ? sheet.can_start : sheet.permissions.can_start;\n const canReattempt =\n 'can_reattempt' in sheet ? sheet.can_reattempt : sheet.permissions.can_reattempt;\n const canRedo = 'can_redo' in sheet ? sheet.can_redo : false;\n\n if (is_worksheet_v3 || is_lesson_v3_enabled) {\n return true;\n }\n\n // For new and reattemptable worksheets start the worksheet in v3 mode\n if (canStart || canReattempt || canRedo) {\n return WORKSHEET_V3_NODE_TYPES.includes(node_type);\n }\n\n // For SAT assessments start the worksheet in v3 mode\n if (SAT_V3_NODE_TYPES.includes(node_type)) {\n return true;\n }\n\n return false;\n};\n\nconst isV3WorksheetAttempt = (attempt: IWorksheetAttemptModel): boolean => {\n const { node_type, is_worksheet_v3, is_lesson_v3_enabled } = attempt;\n\n return (\n is_worksheet_v3 ||\n is_lesson_v3_enabled ||\n SAT_V3_NODE_TYPES.includes(node_type as TNodeTypeProps)\n );\n};\n\nexport { isV3Worksheet, isV3WorksheetAttempt };\n"],"names":["SAT_V3_NODE_TYPES","WORKSHEET_V3_NODE_TYPES","NODE_TYPE","isV3Worksheet","sheet","mode","node_type","is_worksheet_v3","is_lesson_v3_enabled","canStart","canReattempt","canRedo","isV3WorksheetAttempt","attempt"],"mappings":";AAMA,MAAMA,IAAsC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GACMC,IAA4C;AAAA,EAChD,GAAGD;AAAA,EACHE,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AACZ,GAEMC,IAAgB,CACpBC,GACAC,MACY;AACZ,QAAM,EAAE,WAAAC,GAAW,iBAAAC,GAAiB,sBAAAC,EAAA,IAAyBJ;AAE7D,MAAIC,MAAS;AACX,YAAQE,KAAmBC,MAAyB;AAGtD,QAAMC,IAAW,eAAeL,IAAQA,EAAM,YAAYA,EAAM,YAAY,WACtEM,IACJ,mBAAmBN,IAAQA,EAAM,gBAAgBA,EAAM,YAAY,eAC/DO,IAAU,cAAcP,IAAQA,EAAM,WAAW;AAEvD,SAAIG,KAAmBC,IACd,KAILC,KAAYC,KAAgBC,IACvBV,EAAwB,SAASK,CAAS,IAI/C,EAAAN,EAAkB,SAASM,CAAS;AAK1C,GAEMM,IAAuB,CAACC,MAA6C;AACzE,QAAM,EAAE,WAAAP,GAAW,iBAAAC,GAAiB,sBAAAC,EAAA,IAAyBK;AAE7D,SACEN,KACAC,KACAR,EAAkB,SAASM,CAA2B;AAE1D;"}
1
+ {"version":3,"file":"is-v3-worksheet.js","sources":["../../../../src/features/sheets/utils/is-v3-worksheet.ts"],"sourcesContent":["import type { IWorksheetAttemptModel } from '../../../types/models/worksheet';\nimport type { TLPARSheetData } from '../../chapters/lpar-chapter/block-section/sheet-item/sheet-item-type';\nimport type { ISheetDataProps, TNodeTypeProps } from '../sheets-list/sheet-item/sheet-item-types';\n\nimport { NODE_TYPE } from '../constants/sheet';\n\nconst SAT_V3_NODE_TYPES: TNodeTypeProps[] = [\n 'SAT_MATH_ASSESSMENT',\n 'SAT_ENGLISH_ASSESSMENT',\n 'SAT_MATH_RECAP',\n 'SAT_MATH_LEARNING',\n 'SAT_ENGLISH_LEARNING',\n];\nconst WORKSHEET_V3_NODE_TYPES: TNodeTypeProps[] = [\n ...SAT_V3_NODE_TYPES,\n NODE_TYPE.REMEDIAL,\n NODE_TYPE.LEGACY,\n NODE_TYPE.RECAP,\n NODE_TYPE.GENERAL,\n NODE_TYPE.LEVEL3,\n NODE_TYPE.LEVEL2,\n NODE_TYPE.REVISION,\n NODE_TYPE.TARGET_PRACTICE,\n NODE_TYPE.EXTRA_PRACTICE,\n NODE_TYPE.PRACTICE,\n NODE_TYPE.LEARNING,\n NODE_TYPE.PUZZLE_EASY,\n NODE_TYPE.PUZZLE_MEDIUM,\n NODE_TYPE.PUZZLE_HARD,\n NODE_TYPE.CHAPTER_ASSESSMENT,\n NODE_TYPE.ASSESSMENT,\n NODE_TYPE.MASTERY,\n NODE_TYPE.TRIAL_DIAGNOSTIC,\n NODE_TYPE.DYNAMIC,\n NODE_TYPE.TURING_ASSESSMENT,\n NODE_TYPE.TURING_PRACTICE,\n NODE_TYPE.DIAGNOSTIC,\n NODE_TYPE.SUBJECTIVE,\n NODE_TYPE.TURING_SUBJECTIVE,\n];\n\nconst isV3Worksheet = (\n sheet: ISheetDataProps | TLPARSheetData,\n mode?: 'resume' | 'review',\n): boolean => {\n const { node_type, is_worksheet_v3, is_lesson_v3_enabled } = sheet;\n\n if (mode === 'review') {\n return WORKSHEET_V3_NODE_TYPES.includes(node_type);\n }\n\n const canStart = 'can_start' in sheet ? sheet.can_start : sheet.permissions.can_start;\n const canReattempt =\n 'can_reattempt' in sheet ? sheet.can_reattempt : sheet.permissions.can_reattempt;\n const canRedo = 'can_redo' in sheet ? sheet.can_redo : false;\n\n if (is_worksheet_v3 || is_lesson_v3_enabled) {\n return true;\n }\n\n // For new and reattemptable worksheets start the worksheet in v3 mode\n if (canStart || canReattempt || canRedo) {\n return WORKSHEET_V3_NODE_TYPES.includes(node_type);\n }\n\n // For SAT assessments start the worksheet in v3 mode\n if (SAT_V3_NODE_TYPES.includes(node_type)) {\n return true;\n }\n\n return false;\n};\n\nconst isV3WorksheetAttempt = (attempt: IWorksheetAttemptModel): boolean => {\n const { node_type, is_worksheet_v3, is_lesson_v3_enabled } = attempt;\n\n return (\n is_worksheet_v3 ||\n is_lesson_v3_enabled ||\n SAT_V3_NODE_TYPES.includes(node_type as TNodeTypeProps)\n );\n};\n\nexport { isV3Worksheet, isV3WorksheetAttempt };\n"],"names":["SAT_V3_NODE_TYPES","WORKSHEET_V3_NODE_TYPES","NODE_TYPE","isV3Worksheet","sheet","mode","node_type","is_worksheet_v3","is_lesson_v3_enabled","canStart","canReattempt","canRedo","isV3WorksheetAttempt","attempt"],"mappings":";AAMA,MAAMA,IAAsC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GACMC,IAA4C;AAAA,EAChD,GAAGD;AAAA,EACHE,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AAAA,EACVA,EAAU;AACZ,GAEMC,IAAgB,CACpBC,GACAC,MACY;AACZ,QAAM,EAAE,WAAAC,GAAW,iBAAAC,GAAiB,sBAAAC,EAAA,IAAyBJ;AAE7D,MAAIC,MAAS;AACJ,WAAAJ,EAAwB,SAASK,CAAS;AAGnD,QAAMG,IAAW,eAAeL,IAAQA,EAAM,YAAYA,EAAM,YAAY,WACtEM,IACJ,mBAAmBN,IAAQA,EAAM,gBAAgBA,EAAM,YAAY,eAC/DO,IAAU,cAAcP,IAAQA,EAAM,WAAW;AAEvD,SAAIG,KAAmBC,IACd,KAILC,KAAYC,KAAgBC,IACvBV,EAAwB,SAASK,CAAS,IAI/C,EAAAN,EAAkB,SAASM,CAAS;AAK1C,GAEMM,IAAuB,CAACC,MAA6C;AACzE,QAAM,EAAE,WAAAP,GAAW,iBAAAC,GAAiB,sBAAAC,EAAA,IAAyBK;AAE7D,SACEN,KACAC,KACAR,EAAkB,SAASM,CAA2B;AAE1D;"}
package/dist/index.d.ts CHANGED
@@ -3720,7 +3720,12 @@ export declare enum PLATFORM_EVENTS_STUDENT {
3720
3720
 
3721
3721
  export declare enum PLATFORM_EVENTS_TEACHER {
3722
3722
  PAGE_VIEWED = "page_viewed",
3723
- RESOURCE_ASSIGNED = "resource_assigned"
3723
+ RESOURCE_ASSIGNED = "resource_assigned",
3724
+ LESSON_FEEDBACK_POSITIVE = "lesson_feedback_positive",
3725
+ LESSON_FEEDBACK_NEGATIVE = "lesson_feedback_negative",
3726
+ LESSON_FEEDBACK_BACK_BUTTON = "lesson_feedback_back_button",
3727
+ LESSON_FEEDBACK_SUBMIT = "lesson_feedback_submit",
3728
+ LESSON_FEEDBACK_NEXT = "lesson_feedback_next"
3724
3729
  }
3725
3730
 
3726
3731
  export declare const Play2Icon: React_2.FC<React_2.SVGProps<SVGSVGElement>>;
@@ -4275,6 +4280,11 @@ export declare type TInclassMessage = {
4275
4280
  attemptId: string;
4276
4281
  itemType: TItemType;
4277
4282
  };
4283
+ } | {
4284
+ eventName: 'STUDENT_LEARNING_WORKSHEET_COMPLETED';
4285
+ eventPayload: {
4286
+ worksheetId: string;
4287
+ };
4278
4288
  } | {
4279
4289
  eventName: typeof EVENTS.CHAPTER_UPDATED;
4280
4290
  eventPayload: {
@@ -5006,9 +5016,10 @@ declare const useGetCircleHomeAPI: (initialId?: string, initialQuery?: IGetCircl
5006
5016
  } & Record<string, unknown>) | undefined;
5007
5017
  };
5008
5018
 
5009
- export declare const useGetCircleHomeDetailsDal: (userId: string, grade: string) => Omit<ReturnType<typeof useGetCircleHomeAPI>, "data" | "get"> & {
5019
+ export declare const useGetCircleHomeDetailsDal: (userId: string, grade: string, countryCode: string) => Omit<ReturnType<typeof useGetCircleHomeAPI>, "data" | "get"> & {
5010
5020
  data: ICircleHomeDetails | null;
5011
- getCircleHomeDetails: (countryCode: string) => void;
5021
+ getCircleHomeDetails: () => void;
5022
+ invalidateCircleHomeDetails: () => void;
5012
5023
  };
5013
5024
 
5014
5025
  declare const useGetLeaderboard: (initialId?: string, initialQuery?: IGetLeaderboardPayloadModel | undefined) => {
@@ -5086,8 +5097,8 @@ declare const usePostUpdateCircleCoachmark: (opts?: {
5086
5097
  onComplete: (() => void) | undefined;
5087
5098
  };
5088
5099
 
5089
- export declare const usePostUpdateCircleJourneyDal: (userId: string) => Omit<ReturnType<typeof usePostUpdateCircleCoachmark>, "data" | "post"> & {
5090
- postCircleJourneyCompletion: (journeyCompletionIds: TJourneyId[]) => void;
5100
+ export declare const usePostUpdateCircleJourneyDal: () => Omit<ReturnType<typeof usePostUpdateCircleCoachmark>, "data" | "post"> & {
5101
+ postCircleJourneyCompletion: (userId: string, journeyCompletionIds: TJourneyId[]) => void;
5091
5102
  };
5092
5103
 
5093
5104
  export declare const User2Icon: React.FC<React.SVGProps<SVGSVGElement>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/leap",
3
- "version": "2.8.54-hg1",
3
+ "version": "2.8.55-as1",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"