@cuemath/leap 2.8.36-beta-0.1 → 2.8.36-hg1

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 (115) hide show
  1. package/dist/assets/lottie/lottie.js +6 -0
  2. package/dist/assets/lottie/lottie.js.map +1 -1
  3. package/dist/features/analytics-events/whitelist-events.js +13 -15
  4. package/dist/features/analytics-events/whitelist-events.js.map +1 -1
  5. package/dist/features/circle-games/game-launcher/comps/card-container/card-container-styled.js +53 -0
  6. package/dist/features/circle-games/game-launcher/comps/card-container/card-container-styled.js.map +1 -0
  7. package/dist/features/circle-games/game-launcher/comps/card-container/card-container.js +24 -0
  8. package/dist/features/circle-games/game-launcher/comps/card-container/card-container.js.map +1 -0
  9. package/dist/features/circle-games/game-launcher/comps/card-container/constants.js +7 -0
  10. package/dist/features/circle-games/game-launcher/comps/card-container/constants.js.map +1 -0
  11. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/constants.js +6 -6
  12. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/constants.js.map +1 -1
  13. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card-styled.js +29 -73
  14. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card-styled.js.map +1 -1
  15. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js +87 -85
  16. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js.map +1 -1
  17. package/dist/features/circle-games/game-launcher/comps/tables-card/constants.js +20 -0
  18. package/dist/features/circle-games/game-launcher/comps/tables-card/constants.js.map +1 -0
  19. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode-styled.js +24 -0
  20. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode-styled.js.map +1 -0
  21. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode.js +54 -0
  22. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode.js.map +1 -0
  23. package/dist/features/circle-games/game-launcher/comps/tables-card/table-star/table-star-styled.js +11 -0
  24. package/dist/features/circle-games/game-launcher/comps/tables-card/table-star/table-star-styled.js.map +1 -0
  25. package/dist/features/circle-games/game-launcher/comps/tables-card/table-star/table-star.js +16 -0
  26. package/dist/features/circle-games/game-launcher/comps/tables-card/table-star/table-star.js.map +1 -0
  27. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card-styled.js +161 -0
  28. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card-styled.js.map +1 -0
  29. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js +209 -0
  30. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js.map +1 -0
  31. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js +25 -15
  32. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js.map +1 -1
  33. package/dist/features/circle-games/game-launcher/game-launcher.js +103 -61
  34. package/dist/features/circle-games/game-launcher/game-launcher.js.map +1 -1
  35. package/dist/features/circle-games/games/web-view/enums/project-type-enum.js +1 -1
  36. package/dist/features/circle-games/games/web-view/enums/project-type-enum.js.map +1 -1
  37. package/dist/features/circle-games/games/web-view/web-view-types.js.map +1 -1
  38. package/dist/features/circle-games/games/web-view/web-view.js +69 -82
  39. package/dist/features/circle-games/games/web-view/web-view.js.map +1 -1
  40. package/dist/features/communication/pub-sub/constants.js +1 -2
  41. package/dist/features/communication/pub-sub/constants.js.map +1 -1
  42. package/dist/features/milestone/milestone-list-container/milestone-list-container.js +117 -130
  43. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  44. package/dist/features/post-game-stats/accuracy/accuracy-styled.js +17 -16
  45. package/dist/features/post-game-stats/accuracy/accuracy-styled.js.map +1 -1
  46. package/dist/features/post-game-stats/clock/clock-styled.js +11 -10
  47. package/dist/features/post-game-stats/clock/clock-styled.js.map +1 -1
  48. package/dist/features/post-game-stats/points/points.js +25 -24
  49. package/dist/features/post-game-stats/points/points.js.map +1 -1
  50. package/dist/features/post-game-stats/post-game-stats-styled.js +1 -1
  51. package/dist/features/post-game-stats/post-game-stats-styled.js.map +1 -1
  52. package/dist/features/post-game-stats/streak/streak-styled.js +18 -17
  53. package/dist/features/post-game-stats/streak/streak-styled.js.map +1 -1
  54. package/dist/features/trial-session/comps/trial-circle-game/constants.js.map +1 -1
  55. package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js.map +1 -1
  56. package/dist/features/ui/grade-selector/grade-tab.js +15 -15
  57. package/dist/features/ui/grade-selector/grade-tab.js.map +1 -1
  58. package/dist/features/ui/tab/tab-styled.js +8 -7
  59. package/dist/features/ui/tab/tab-styled.js.map +1 -1
  60. package/dist/features/ui/tab/tab.js +31 -36
  61. package/dist/features/ui/tab/tab.js.map +1 -1
  62. package/dist/features/ui/theme/tab.js +3 -3
  63. package/dist/features/ui/theme/tab.js.map +1 -1
  64. package/dist/index.d.ts +79 -151
  65. package/dist/index.js +343 -352
  66. package/dist/index.js.map +1 -1
  67. package/dist/static/advance-mode-segment-lottie.51ff6707.json +1 -0
  68. package/dist/static/infinite-button-bg.5909225e.json +1 -0
  69. package/dist/static/infinite-button-symbol.aa31350c.json +1 -0
  70. package/dist/static/random-mode-segment-lottie.79cf1c07.json +1 -0
  71. package/dist/static/sequence-mode-segment-lottie.11ac49e9.json +1 -0
  72. package/dist/static/table-mode-reveal.b44a82c3.json +1 -0
  73. package/package.json +1 -1
  74. package/dist/assets/line-icons/icons/sheet.js +0 -54
  75. package/dist/assets/line-icons/icons/sheet.js.map +0 -1
  76. package/dist/features/circle-games/games/web-view/enums/project-ids-enum.js +0 -14
  77. package/dist/features/circle-games/games/web-view/enums/project-ids-enum.js.map +0 -1
  78. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js +0 -188
  79. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js.map +0 -1
  80. package/dist/features/milestone/milestone-resources/resources-assign/api/get-resource.js +0 -11
  81. package/dist/features/milestone/milestone-resources/resources-assign/api/get-resource.js.map +0 -1
  82. package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js +0 -9
  83. package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js.map +0 -1
  84. package/dist/features/milestone/milestone-resources/resources-assign/api/lpar-resource-assign.js +0 -9
  85. package/dist/features/milestone/milestone-resources/resources-assign/api/lpar-resource-assign.js.map +0 -1
  86. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item-styled.js +0 -19
  87. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item-styled.js.map +0 -1
  88. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js +0 -47
  89. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js.map +0 -1
  90. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item-styled.js +0 -22
  91. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item-styled.js.map +0 -1
  92. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js +0 -60
  93. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js.map +0 -1
  94. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/utils.js +0 -6
  95. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/utils.js.map +0 -1
  96. package/dist/features/milestone/milestone-resources/resources-assign/constant.js +0 -6
  97. package/dist/features/milestone/milestone-resources/resources-assign/constant.js.map +0 -1
  98. package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-analytics-events.js +0 -19
  99. package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-analytics-events.js.map +0 -1
  100. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/no-resource-screen.js +0 -32
  101. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/no-resource-screen.js.map +0 -1
  102. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items-styled.js +0 -19
  103. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items-styled.js.map +0 -1
  104. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js +0 -85
  105. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js.map +0 -1
  106. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign-styled.js +0 -63
  107. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign-styled.js.map +0 -1
  108. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +0 -232
  109. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +0 -1
  110. package/dist/features/milestone/milestone-resources/resources-assign/utils.js +0 -12
  111. package/dist/features/milestone/milestone-resources/resources-assign/utils.js.map +0 -1
  112. package/dist/features/ui/inputs/searchable-input/searchable-input-styled.js +0 -28
  113. package/dist/features/ui/inputs/searchable-input/searchable-input-styled.js.map +0 -1
  114. package/dist/features/ui/inputs/searchable-input/searchable-input.js +0 -101
  115. package/dist/features/ui/inputs/searchable-input/searchable-input.js.map +0 -1
@@ -1,4 +1,4 @@
1
- var a = /* @__PURE__ */ ((E) => (E.GAME = "game", E.PUZZLE = "puzzle", E.LESSON = "lesson", E))(a || {});
1
+ var a = /* @__PURE__ */ ((E) => (E.GAME = "game", E.PUZZLE = "puzzle", E.LESSON = "lesson", E.TABLE = "table", E))(a || {});
2
2
  export {
3
3
  a as ProjectType
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"project-type-enum.js","sources":["../../../../../../src/features/circle-games/games/web-view/enums/project-type-enum.ts"],"sourcesContent":["export enum ProjectType {\n GAME = 'game',\n PUZZLE = 'puzzle',\n LESSON = 'lesson',\n}\n"],"names":["ProjectType"],"mappings":"AAAY,IAAAA,sBAAAA,OACVA,EAAA,OAAO,QACPA,EAAA,SAAS,UACTA,EAAA,SAAS,UAHCA,IAAAA,KAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"project-type-enum.js","sources":["../../../../../../src/features/circle-games/games/web-view/enums/project-type-enum.ts"],"sourcesContent":["export enum ProjectType {\n GAME = 'game',\n PUZZLE = 'puzzle',\n LESSON = 'lesson',\n TABLE = 'table',\n}\n"],"names":["ProjectType"],"mappings":"AAAY,IAAAA,sBAAAA,OACVA,EAAA,OAAO,QACPA,EAAA,SAAS,UACTA,EAAA,SAAS,UACTA,EAAA,QAAQ,SAJEA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -1 +1 @@
1
- {"version":3,"file":"web-view-types.js","sources":["../../../../../src/features/circle-games/games/web-view/web-view-types.ts"],"sourcesContent":["import type { IAvatarLayer } from '../../../ui/avatar/avatar-types';\nimport type { TUserTypes } from '../../../ui/types';\nimport type {\n GameId,\n PuzzleId,\n LessonId,\n MiniGameId,\n WebViewEvent,\n ProjectOutcome,\n ProjectType,\n} from './enums';\nimport type { WEBVIEW_ANALYTICS_EVENTS } from './web-view-analytics-events';\nimport type { IframeHTMLAttributes } from 'react';\n\nexport type TProject = GameId | PuzzleId | LessonId;\n\nexport interface IPlayer {\n id: string;\n username: string;\n grade?: string;\n avatar?: IAvatarLayer[] | null;\n playerType: TUserTypes;\n}\n\ninterface IBaseWebGameProps<T> {\n projectId: T;\n variant: string;\n projectType: ProjectType;\n joinByRoomId?: string;\n enableSync?: boolean; // applicable for all except multiplayer games\n enablePlayerTurnIndicators?: boolean;\n enableCloseButton?: boolean;\n}\n\nexport interface IMultiplayerWebGameProps extends IBaseWebGameProps<GameId> {}\n\nexport interface IPuzzleWebGameProps extends IBaseWebGameProps<PuzzleId> {\n question: string;\n askHintPermission?: boolean;\n}\n\nexport interface ILessonWebGameProps extends IBaseWebGameProps<LessonId> {\n miniGameIdentifier: MiniGameId;\n sessionId: string;\n targetQuestions: number;\n}\n\nexport interface IVibrationPattern {\n pattern: number[] | number;\n}\n\nexport enum IStatsToAwardErrorCode {\n DEFAULT = 'default',\n SUCCESS = 'success',\n FAIL = 'fail',\n}\n\nexport interface IPlayerStats {\n points: number;\n accuracy: number;\n timeSpent: number;\n streakDays: number;\n streakStatusToday: 'pending' | 'completed';\n errorCode: IStatsToAwardErrorCode;\n outcome: ProjectOutcome;\n value: string;\n}\n\nexport interface IInfoMessage {\n message: string;\n position: 'top' | 'bottom';\n}\n\nexport interface ITrackEvent {\n eventName: typeof WEBVIEW_ANALYTICS_EVENTS;\n properties: Record<string, unknown>;\n}\n\nexport interface IWebViewProps extends IframeHTMLAttributes<HTMLIFrameElement> {\n baseUrl: string;\n parentDomain: string;\n projectDetails: IMultiplayerWebGameProps | IPuzzleWebGameProps | ILessonWebGameProps;\n playerDetails: IPlayer;\n onBack?: () => void;\n onGameLoad?: () => void;\n onGamePlayFinish?: (playerStats: IPlayerStats) => void;\n handleInfoMessage?: (infoMessage: IInfoMessage) => void;\n}\n\nexport interface IMessageProps {\n event: `${WebViewEvent}`;\n payload: IVibrationPattern | IPlayerStats | IInfoMessage | null;\n}\n"],"names":["IStatsToAwardErrorCode"],"mappings":"AAmDY,IAAAA,sBAAAA,OACVA,EAAA,UAAU,WACVA,EAAA,UAAU,WACVA,EAAA,OAAO,QAHGA,IAAAA,KAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"web-view-types.js","sources":["../../../../../src/features/circle-games/games/web-view/web-view-types.ts"],"sourcesContent":["import type { IAvatarLayer } from '../../../ui/avatar/avatar-types';\nimport type { TUserTypes } from '../../../ui/types';\nimport type { WebViewEvent, ProjectOutcome, ProjectType } from './enums';\nimport type { WEBVIEW_ANALYTICS_EVENTS } from './web-view-analytics-events';\nimport type { IframeHTMLAttributes } from 'react';\n\nexport interface IPlayer {\n id: string;\n username: string;\n grade?: string;\n avatar?: IAvatarLayer[] | null;\n playerType: TUserTypes;\n}\n\ninterface ISyncableWebGameProps {\n joinByRoomId?: string;\n enableSync?: boolean; // applicable for all except multiplayer games and tables\n}\n\ninterface IBaseWebGameProps {\n projectId: string;\n variant: string;\n projectType: ProjectType;\n enableCloseButton?: boolean;\n}\n\nexport interface IMultiplayerWebGameProps extends IBaseWebGameProps, ISyncableWebGameProps {\n enablePlayerTurnIndicators?: boolean;\n}\n\nexport interface IPuzzleWebGameProps extends IBaseWebGameProps, ISyncableWebGameProps {\n question: string;\n askHintPermission?: boolean;\n}\n\nexport interface ILessonWebGameProps extends IBaseWebGameProps, ISyncableWebGameProps {\n miniGameIdentifier: string;\n sessionId: string;\n targetQuestions: number;\n}\n\nexport interface ITableWebGameProps extends IBaseWebGameProps {\n tableNumber: number;\n infiniteModeHighScore?: number;\n}\n\nexport interface IVibrationPattern {\n pattern: number[] | number;\n}\n\nexport enum IStatsToAwardErrorCode {\n DEFAULT = 'default',\n SUCCESS = 'success',\n FAIL = 'fail',\n}\n\nexport interface IPlayerStats {\n points: number;\n accuracy: number;\n timeSpent: number;\n streakDays: number;\n streakStatusToday: 'pending' | 'completed';\n errorCode: IStatsToAwardErrorCode;\n outcome: ProjectOutcome;\n value: string;\n}\n\nexport interface IInfoMessage {\n message: string;\n position: 'top' | 'bottom';\n}\n\nexport interface ITrackEvent {\n eventName: typeof WEBVIEW_ANALYTICS_EVENTS;\n properties: Record<string, unknown>;\n}\n\nexport interface IWebViewProps extends IframeHTMLAttributes<HTMLIFrameElement> {\n baseUrl: string;\n projectDetails:\n | IMultiplayerWebGameProps\n | IPuzzleWebGameProps\n | ILessonWebGameProps\n | ITableWebGameProps;\n parentDomain: string;\n playerDetails: IPlayer;\n onBack?: () => void;\n onGameLoad?: () => void;\n onGamePlayFinish?: (playerStats: IPlayerStats) => void;\n handleInfoMessage?: (infoMessage: IInfoMessage) => void;\n}\n\nexport interface IMessageProps {\n event: `${WebViewEvent}`;\n payload: IVibrationPattern | IPlayerStats | IInfoMessage | null;\n}\n"],"names":["IStatsToAwardErrorCode"],"mappings":"AAkDY,IAAAA,sBAAAA,OACVA,EAAA,UAAU,WACVA,EAAA,UAAU,WACVA,EAAA,OAAO,QAHGA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -1,115 +1,102 @@
1
- import { jsx as G } from "react/jsx-runtime";
2
- import { forwardRef as M, useRef as W, useMemo as j, useCallback as A, useImperativeHandle as H, useEffect as V } from "react";
3
- import { useUIContext as $ } from "../../../ui/context/context.js";
1
+ import { jsx as P } from "react/jsx-runtime";
2
+ import { forwardRef as G, useRef as W, useMemo as _, useCallback as T, useImperativeHandle as V, useEffect as $ } from "react";
3
+ import { useUIContext as B } from "../../../ui/context/context.js";
4
4
  import { ALLOWED_ORIGIN as N } from "./constants.js";
5
- import { ProjectType as I } from "./enums/project-type-enum.js";
6
- import { WebViewEvent as i } from "./enums/web-view-events-enum.js";
7
- const q = M((C, P) => {
5
+ import { ProjectType as s } from "./enums/project-type-enum.js";
6
+ import { WebViewEvent as o } from "./enums/web-view-events-enum.js";
7
+ const F = G((C, I) => {
8
8
  const {
9
- baseUrl: R,
10
- projectDetails: v,
11
- playerDetails: T,
9
+ baseUrl: L,
10
+ projectDetails: y,
11
+ playerDetails: v,
12
12
  onGameLoad: a,
13
- onGamePlayFinish: c,
14
- handleInfoMessage: f,
15
- onBack: p,
16
- parentDomain: g,
17
- ...b
18
- } = C, l = W(null), w = j(() => T, [T]), o = j(() => v, [v]);
19
- let u = "";
20
- const { onEvent: D } = $();
21
- o.projectType === I.LESSON && (u = o.miniGameIdentifier);
22
- const m = A(() => {
23
- const {
24
- enableCloseButton: r = !0,
25
- enablePlayerTurnIndicators: s = !1,
26
- enableSync: t = !1,
27
- joinByRoomId: E = ""
28
- } = o;
13
+ onGamePlayFinish: p,
14
+ handleInfoMessage: c,
15
+ onBack: f,
16
+ parentDomain: w,
17
+ ...R
18
+ } = C, l = W(null), D = _(() => v, [v]), t = _(() => y, [y]);
19
+ let A = "";
20
+ const { onEvent: O } = B();
21
+ t.projectType === s.LESSON && (A = t.miniGameIdentifier);
22
+ const m = T(() => {
23
+ const { enableCloseButton: n = !0 } = t;
29
24
  let e = {
30
- joinByRoomId: E,
31
- enableCloseButton: r,
32
- enablePlayerTurnIndicators: s,
33
- enableSync: t
25
+ enableCloseButton: n
34
26
  };
35
- if (o.projectType === I.PUZZLE) {
36
- const n = o;
37
- e = {
38
- ...e,
39
- question: n.question,
40
- askHintPermission: n.askHintPermission
41
- };
42
- }
43
- if (o.projectType === I.LESSON) {
44
- const n = o;
45
- e = {
46
- ...e,
47
- miniGameIdentifier: n.miniGameIdentifier,
48
- sessionId: n.sessionId,
49
- targetQuestions: n.targetQuestions
50
- };
51
- }
52
- return e;
53
- }, [o]), d = A(() => {
54
- var s, t;
55
- const r = m();
56
- (t = (s = l.current) == null ? void 0 : s.contentWindow) == null || t.postMessage(
27
+ return t.projectType === s.GAME && (e = {
28
+ ...e,
29
+ ...t
30
+ }), t.projectType === s.PUZZLE && (e = {
31
+ ...e,
32
+ ...t
33
+ }), t.projectType === s.LESSON && (e = {
34
+ ...e,
35
+ ...t
36
+ }), t.projectType === s.TABLE && (e = {
37
+ ...e,
38
+ ...t
39
+ }), e;
40
+ }, [t]), E = T(() => {
41
+ var e, r;
42
+ const n = m();
43
+ (r = (e = l.current) == null ? void 0 : e.contentWindow) == null || r.postMessage(
57
44
  JSON.stringify({
58
- event: i.GAME_DATA,
59
- payload: r
45
+ event: o.GAME_DATA,
46
+ payload: n
60
47
  }),
61
48
  N
62
49
  );
63
- }, [m]), O = A(() => {
64
- var s, t;
65
- const r = m();
66
- (t = (s = l.current) == null ? void 0 : s.contentWindow) == null || t.postMessage(
50
+ }, [m]), g = T(() => {
51
+ var e, r;
52
+ const n = m();
53
+ (r = (e = l.current) == null ? void 0 : e.contentWindow) == null || r.postMessage(
67
54
  JSON.stringify({
68
- event: i.SET_CONFIG,
55
+ event: o.SET_CONFIG,
69
56
  payload: {
70
- user: w,
71
- projectConfig: r,
72
- parentDomain: g
57
+ user: D,
58
+ projectConfig: n,
59
+ parentDomain: w
73
60
  }
74
61
  }),
75
62
  N
76
63
  );
77
- }, [w, m, g]);
78
- return H(P, () => l.current, []), V(() => {
79
- const r = (s) => {
80
- var S, _;
81
- const t = s.data, E = typeof t == "string" ? JSON.parse(t) : t, { event: e, payload: n = null } = E;
82
- if (e === i.VIBRATE) {
83
- const { pattern: y } = n;
84
- (_ = (S = window.navigator).vibrate) == null || _.call(S, y);
64
+ }, [D, m, w]);
65
+ return V(I, () => l.current, []), $(() => {
66
+ const n = (e) => {
67
+ var j, S;
68
+ const r = e.data, b = typeof r == "string" ? JSON.parse(r) : r, { event: i, payload: d = null } = b;
69
+ if (i === o.VIBRATE) {
70
+ const { pattern: u } = d;
71
+ (S = (j = window.navigator).vibrate) == null || S.call(j, u);
85
72
  }
86
- if (e === i.GAME_BACK && (p == null || p()), e === i.HIDE_LOADER && (a == null || a()), e === i.LOAD_DATA_FROM_APP && (d == null || d()), e === i.GET_CONFIG && O(), e === i.UPDATE_STATS && (c == null || c(n)), e === i.SHOW_SNACKBAR && (f == null || f(n)), e === i.TRACK_EVENT) {
87
- const { eventName: y, properties: L } = n;
88
- D(y, L);
73
+ if (i === o.GAME_BACK && (f == null || f()), i === o.HIDE_LOADER && (a == null || a()), i === o.LOAD_DATA_FROM_APP && (E == null || E()), i === o.GET_CONFIG && g(), i === o.UPDATE_STATS && (p == null || p(d)), i === o.SHOW_SNACKBAR && (c == null || c(d)), i === o.TRACK_EVENT) {
74
+ const { eventName: u, properties: M } = d;
75
+ O(u, M);
89
76
  }
90
77
  };
91
- return window.addEventListener("message", r), () => {
92
- window.removeEventListener("message", r);
78
+ return window.addEventListener("message", n), () => {
79
+ window.removeEventListener("message", n);
93
80
  };
94
81
  }, [
82
+ c,
95
83
  f,
96
84
  p,
97
- c,
98
85
  a,
99
- O,
100
- d,
101
- D
102
- ]), /* @__PURE__ */ G(
86
+ g,
87
+ E,
88
+ O
89
+ ]), /* @__PURE__ */ P(
103
90
  "iframe",
104
91
  {
105
- ...b,
92
+ ...R,
106
93
  ref: l,
107
- src: `${R}/play-game/${o.projectId}/${o.variant}${u ? `/${u}` : ""}?version=2`,
94
+ src: `${L}/play-game/${t.projectId}/${t.variant}${A ? `/${A}` : ""}?version=2`,
108
95
  allow: "autoplay"
109
96
  }
110
97
  );
111
98
  });
112
99
  export {
113
- q as WebView
100
+ F as WebView
114
101
  };
115
102
  //# sourceMappingURL=web-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-view.js","sources":["../../../../../src/features/circle-games/games/web-view/web-view.tsx"],"sourcesContent":["import type {\n IInfoMessage,\n ILessonWebGameProps,\n IMessageProps,\n IMultiplayerWebGameProps,\n IPlayerStats,\n IPuzzleWebGameProps,\n IVibrationPattern,\n IWebViewProps,\n} from './web-view-types';\nimport type { ForwardedRef } from 'react';\n\nimport { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from 'react';\n\nimport { useUIContext } from '../../../ui/context/context';\nimport { ALLOWED_ORIGIN } from './constants';\nimport { ProjectType, WebViewEvent } from './enums';\n\nexport const WebView = forwardRef((props: IWebViewProps, ref: ForwardedRef<HTMLIFrameElement>) => {\n const {\n baseUrl,\n projectDetails,\n playerDetails,\n onGameLoad,\n onGamePlayFinish,\n handleInfoMessage,\n onBack,\n parentDomain,\n ...rest\n } = props;\n const webViewRef = useRef<HTMLIFrameElement>(null);\n const memoizedPlayerDetails = useMemo(() => playerDetails, [playerDetails]);\n const memoizedProjectDetails = useMemo(() => projectDetails, [projectDetails]);\n\n let miniGameIdentifier = '';\n const { onEvent: trackEvent } = useUIContext();\n\n if (memoizedProjectDetails.projectType === ProjectType.LESSON) {\n miniGameIdentifier = (memoizedProjectDetails as ILessonWebGameProps).miniGameIdentifier;\n }\n\n const getProjectDetails = useCallback(() => {\n const {\n enableCloseButton = true,\n enablePlayerTurnIndicators = false,\n enableSync = false,\n joinByRoomId = '',\n } = memoizedProjectDetails;\n\n let payload = {\n joinByRoomId,\n enableCloseButton,\n enablePlayerTurnIndicators,\n enableSync,\n } as IMultiplayerWebGameProps | IPuzzleWebGameProps | ILessonWebGameProps;\n\n if (memoizedProjectDetails.projectType === ProjectType.PUZZLE) {\n const details = memoizedProjectDetails as IPuzzleWebGameProps;\n\n payload = {\n ...payload,\n question: details.question,\n askHintPermission: details.askHintPermission,\n } as IPuzzleWebGameProps;\n }\n\n if (memoizedProjectDetails.projectType === ProjectType.LESSON) {\n const details = memoizedProjectDetails as ILessonWebGameProps;\n\n payload = {\n ...payload,\n miniGameIdentifier: details.miniGameIdentifier,\n sessionId: details.sessionId,\n targetQuestions: details.targetQuestions,\n } as ILessonWebGameProps;\n }\n\n return payload;\n }, [memoizedProjectDetails]);\n\n const sendGamesData = useCallback(() => {\n const payload = getProjectDetails();\n\n webViewRef.current?.contentWindow?.postMessage(\n JSON.stringify({\n event: WebViewEvent.GAME_DATA,\n payload,\n }),\n ALLOWED_ORIGIN,\n );\n }, [getProjectDetails]);\n\n const setConfig = useCallback(() => {\n const projectConfig = getProjectDetails();\n\n webViewRef.current?.contentWindow?.postMessage(\n JSON.stringify({\n event: WebViewEvent.SET_CONFIG,\n payload: {\n user: memoizedPlayerDetails,\n projectConfig,\n parentDomain,\n },\n }),\n ALLOWED_ORIGIN,\n );\n }, [memoizedPlayerDetails, getProjectDetails, parentDomain]);\n\n useImperativeHandle(ref, () => webViewRef.current as HTMLIFrameElement, []);\n\n useEffect(() => {\n const handleMessage = (e: MessageEvent) => {\n const data: string = e.data;\n const parsedData = typeof data === 'string' ? JSON.parse(data) : (data as IMessageProps);\n\n const { event, payload = null } = parsedData;\n\n if (event === WebViewEvent.VIBRATE) {\n const { pattern } = payload as IVibrationPattern;\n\n window.navigator.vibrate?.(pattern);\n }\n\n if (event === WebViewEvent.GAME_BACK) {\n onBack?.();\n }\n\n if (event === WebViewEvent.HIDE_LOADER) {\n onGameLoad?.();\n }\n\n if (event === WebViewEvent.LOAD_DATA_FROM_APP) {\n sendGamesData?.();\n }\n\n if (event === WebViewEvent.GET_CONFIG) {\n setConfig();\n }\n\n if (event === WebViewEvent.UPDATE_STATS) {\n onGamePlayFinish?.(payload as IPlayerStats);\n }\n\n if (event === WebViewEvent.SHOW_SNACKBAR) {\n handleInfoMessage?.(payload as IInfoMessage);\n }\n\n if (event === WebViewEvent.TRACK_EVENT) {\n const { eventName, properties } = payload;\n\n trackEvent(eventName, properties);\n }\n };\n\n window.addEventListener('message', handleMessage);\n\n return () => {\n window.removeEventListener('message', handleMessage);\n };\n }, [\n handleInfoMessage,\n onBack,\n onGamePlayFinish,\n onGameLoad,\n setConfig,\n sendGamesData,\n trackEvent,\n ]);\n\n return (\n <iframe\n {...rest}\n ref={webViewRef}\n src={`${baseUrl}/play-game/${memoizedProjectDetails.projectId}/${\n memoizedProjectDetails.variant\n }${miniGameIdentifier ? `/${miniGameIdentifier}` : ''}?version=2`}\n allow=\"autoplay\"\n />\n );\n});\n"],"names":["WebView","forwardRef","props","ref","baseUrl","projectDetails","playerDetails","onGameLoad","onGamePlayFinish","handleInfoMessage","onBack","parentDomain","rest","webViewRef","useRef","memoizedPlayerDetails","useMemo","memoizedProjectDetails","miniGameIdentifier","trackEvent","useUIContext","ProjectType","getProjectDetails","useCallback","enableCloseButton","enablePlayerTurnIndicators","enableSync","joinByRoomId","payload","details","sendGamesData","_b","_a","WebViewEvent","ALLOWED_ORIGIN","setConfig","projectConfig","useImperativeHandle","useEffect","handleMessage","e","data","parsedData","event","pattern","eventName","properties","jsx"],"mappings":"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"}
1
+ {"version":3,"file":"web-view.js","sources":["../../../../../src/features/circle-games/games/web-view/web-view.tsx"],"sourcesContent":["import type {\n IInfoMessage,\n ILessonWebGameProps,\n IMessageProps,\n IMultiplayerWebGameProps,\n IPlayerStats,\n IPuzzleWebGameProps,\n ITableWebGameProps,\n IVibrationPattern,\n IWebViewProps,\n} from './web-view-types';\nimport type { ForwardedRef } from 'react';\n\nimport { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from 'react';\n\nimport { useUIContext } from '../../../ui/context/context';\nimport { ALLOWED_ORIGIN } from './constants';\nimport { ProjectType, WebViewEvent } from './enums';\n\nexport const WebView = forwardRef((props: IWebViewProps, ref: ForwardedRef<HTMLIFrameElement>) => {\n const {\n baseUrl,\n projectDetails,\n playerDetails,\n onGameLoad,\n onGamePlayFinish,\n handleInfoMessage,\n onBack,\n parentDomain,\n ...rest\n } = props;\n const webViewRef = useRef<HTMLIFrameElement>(null);\n const memoizedPlayerDetails = useMemo(() => playerDetails, [playerDetails]);\n const memoizedProjectDetails = useMemo(() => projectDetails, [projectDetails]);\n\n let miniGameIdentifier = '';\n const { onEvent: trackEvent } = useUIContext();\n\n if (memoizedProjectDetails.projectType === ProjectType.LESSON) {\n miniGameIdentifier = (memoizedProjectDetails as ILessonWebGameProps).miniGameIdentifier;\n }\n\n const getProjectDetails = useCallback(() => {\n const { enableCloseButton = true } = memoizedProjectDetails;\n\n let payload = {\n enableCloseButton,\n } as IMultiplayerWebGameProps | IPuzzleWebGameProps | ILessonWebGameProps;\n\n if (memoizedProjectDetails.projectType === ProjectType.GAME) {\n payload = {\n ...payload,\n ...memoizedProjectDetails,\n } as IMultiplayerWebGameProps;\n }\n\n if (memoizedProjectDetails.projectType === ProjectType.PUZZLE) {\n payload = {\n ...payload,\n ...memoizedProjectDetails,\n } as IPuzzleWebGameProps;\n }\n\n if (memoizedProjectDetails.projectType === ProjectType.LESSON) {\n payload = {\n ...payload,\n ...memoizedProjectDetails,\n } as ILessonWebGameProps;\n }\n\n if (memoizedProjectDetails.projectType === ProjectType.TABLE) {\n payload = {\n ...payload,\n ...memoizedProjectDetails,\n } as ITableWebGameProps;\n }\n\n return payload;\n }, [memoizedProjectDetails]);\n\n const sendGamesData = useCallback(() => {\n const payload = getProjectDetails();\n\n webViewRef.current?.contentWindow?.postMessage(\n JSON.stringify({\n event: WebViewEvent.GAME_DATA,\n payload,\n }),\n ALLOWED_ORIGIN,\n );\n }, [getProjectDetails]);\n\n const setConfig = useCallback(() => {\n const projectConfig = getProjectDetails();\n\n webViewRef.current?.contentWindow?.postMessage(\n JSON.stringify({\n event: WebViewEvent.SET_CONFIG,\n payload: {\n user: memoizedPlayerDetails,\n projectConfig,\n parentDomain,\n },\n }),\n ALLOWED_ORIGIN,\n );\n }, [memoizedPlayerDetails, getProjectDetails, parentDomain]);\n\n useImperativeHandle(ref, () => webViewRef.current as HTMLIFrameElement, []);\n\n useEffect(() => {\n const handleMessage = (e: MessageEvent) => {\n const data: string = e.data;\n const parsedData = typeof data === 'string' ? JSON.parse(data) : (data as IMessageProps);\n\n const { event, payload = null } = parsedData;\n\n if (event === WebViewEvent.VIBRATE) {\n const { pattern } = payload as IVibrationPattern;\n\n window.navigator.vibrate?.(pattern);\n }\n\n if (event === WebViewEvent.GAME_BACK) {\n onBack?.();\n }\n\n if (event === WebViewEvent.HIDE_LOADER) {\n onGameLoad?.();\n }\n\n if (event === WebViewEvent.LOAD_DATA_FROM_APP) {\n sendGamesData?.();\n }\n\n if (event === WebViewEvent.GET_CONFIG) {\n setConfig();\n }\n\n if (event === WebViewEvent.UPDATE_STATS) {\n onGamePlayFinish?.(payload as IPlayerStats);\n }\n\n if (event === WebViewEvent.SHOW_SNACKBAR) {\n handleInfoMessage?.(payload as IInfoMessage);\n }\n\n if (event === WebViewEvent.TRACK_EVENT) {\n const { eventName, properties } = payload;\n\n trackEvent(eventName, properties);\n }\n };\n\n window.addEventListener('message', handleMessage);\n\n return () => {\n window.removeEventListener('message', handleMessage);\n };\n }, [\n handleInfoMessage,\n onBack,\n onGamePlayFinish,\n onGameLoad,\n setConfig,\n sendGamesData,\n trackEvent,\n ]);\n\n return (\n <iframe\n {...rest}\n ref={webViewRef}\n src={`${baseUrl}/play-game/${memoizedProjectDetails.projectId}/${\n memoizedProjectDetails.variant\n }${miniGameIdentifier ? `/${miniGameIdentifier}` : ''}?version=2`}\n allow=\"autoplay\"\n />\n );\n});\n"],"names":["WebView","forwardRef","props","ref","baseUrl","projectDetails","playerDetails","onGameLoad","onGamePlayFinish","handleInfoMessage","onBack","parentDomain","rest","webViewRef","useRef","memoizedPlayerDetails","useMemo","memoizedProjectDetails","miniGameIdentifier","trackEvent","useUIContext","ProjectType","getProjectDetails","useCallback","enableCloseButton","payload","sendGamesData","_b","_a","WebViewEvent","ALLOWED_ORIGIN","setConfig","projectConfig","useImperativeHandle","useEffect","handleMessage","data","parsedData","event","pattern","eventName","properties","jsx"],"mappings":"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"}
@@ -21,8 +21,7 @@ const E = {
21
21
  MILESTONE_RESOURCE_ASSIGNED: "MILESTONE_RESOURCE_ASSIGNED",
22
22
  MILESTONE_RESOURCE_UNASSIGNED: "MILESTONE_RESOURCE_UNASSIGNED",
23
23
  MILESTONE_RESOURCE_RESET: "MILESTONE_RESOURCE_RESET",
24
- PAST_MILESTONE_OUTCOME_ADDED: "PAST_MILESTONE_OUTCOME_ADDED",
25
- MILESTONE_TEST_ASSIGNED: "MILESTONE_TEST_ASSIGNED"
24
+ PAST_MILESTONE_OUTCOME_ADDED: "PAST_MILESTONE_OUTCOME_ADDED"
26
25
  }, T = {
27
26
  ...E,
28
27
  ..._,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../src/features/communication/pub-sub/constants.ts"],"sourcesContent":["const CHAPTER_SHEET_EVENTS = {\n CHAPTER_UPDATED: 'CHAPTER_UPDATED',\n LESSONS_MARKED_AS_FAMILIAR: 'LESSONS_MARKED_AS_FAMILIAR',\n LESSONS_MARKED_AS_IRRELEVANT: 'LESSONS_MARKED_AS_IRRELEVANT',\n LESSONS_PROGRESS_RESET: 'LESSONS_PROGRESS_RESET',\n UNLOCK_SHEETS: 'UNLOCK_SHEETS',\n EXTRA_PRACTICE_ASSIGNED: 'EXTRA_PRACTICE_ASSIGNED',\n CHANGE_LOCATION: 'CHANGE_LOCATION',\n SHEET_STARTED: 'SHEET_STARTED',\n SHEET_UNASSIGNED: 'SHEET_UNASSIGNED',\n} as const;\n\nconst GOAL_EVENTS = {\n GOAL_CREATED: 'GOAL_CREATED',\n GOAL_EDITED: 'GOAL_EDITED',\n GOAL_DELETED: 'GOAL_DELETED',\n GOAL_OUTCOME_ADDED: 'GOAL_OUTCOME_ADDED',\n} as const;\n\nconst MILESTONE_EVENTS = {\n MILESTONE_NAME_UPDATED: 'MILESTONE_NAME_UPDATED',\n MILESTONE_DATE_UPDATED: 'MILESTONE_DATE_UPDATED',\n MILESTONE_DELETED: 'MILESTONE_DELETED',\n MILESTONE_EDITED: 'MILESTONE_EDITED',\n MILESTONE_RESOURCE_ASSIGNED: 'MILESTONE_RESOURCE_ASSIGNED',\n MILESTONE_RESOURCE_UNASSIGNED: 'MILESTONE_RESOURCE_UNASSIGNED',\n MILESTONE_RESOURCE_RESET: 'MILESTONE_RESOURCE_RESET',\n PAST_MILESTONE_OUTCOME_ADDED: 'PAST_MILESTONE_OUTCOME_ADDED',\n MILESTONE_TEST_ASSIGNED: 'MILESTONE_TEST_ASSIGNED',\n} as const;\n\nconst EVENTS = {\n ...CHAPTER_SHEET_EVENTS,\n ...MILESTONE_EVENTS,\n ...GOAL_EVENTS,\n};\n\nexport { EVENTS };\n"],"names":["CHAPTER_SHEET_EVENTS","GOAL_EVENTS","MILESTONE_EVENTS","EVENTS"],"mappings":"AAAA,MAAMA,IAAuB;AAAA,EAC3B,iBAAiB;AAAA,EACjB,4BAA4B;AAAA,EAC5B,8BAA8B;AAAA,EAC9B,wBAAwB;AAAA,EACxB,eAAe;AAAA,EACf,yBAAyB;AAAA,EACzB,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,kBAAkB;AACpB,GAEMC,IAAc;AAAA,EAClB,cAAc;AAAA,EACd,aAAa;AAAA,EACb,cAAc;AAAA,EACd,oBAAoB;AACtB,GAEMC,IAAmB;AAAA,EACvB,wBAAwB;AAAA,EACxB,wBAAwB;AAAA,EACxB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,6BAA6B;AAAA,EAC7B,+BAA+B;AAAA,EAC/B,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,yBAAyB;AAC3B,GAEMC,IAAS;AAAA,EACb,GAAGH;AAAA,EACH,GAAGE;AAAA,EACH,GAAGD;AACL;"}
1
+ {"version":3,"file":"constants.js","sources":["../../../../src/features/communication/pub-sub/constants.ts"],"sourcesContent":["const CHAPTER_SHEET_EVENTS = {\n CHAPTER_UPDATED: 'CHAPTER_UPDATED',\n LESSONS_MARKED_AS_FAMILIAR: 'LESSONS_MARKED_AS_FAMILIAR',\n LESSONS_MARKED_AS_IRRELEVANT: 'LESSONS_MARKED_AS_IRRELEVANT',\n LESSONS_PROGRESS_RESET: 'LESSONS_PROGRESS_RESET',\n UNLOCK_SHEETS: 'UNLOCK_SHEETS',\n EXTRA_PRACTICE_ASSIGNED: 'EXTRA_PRACTICE_ASSIGNED',\n CHANGE_LOCATION: 'CHANGE_LOCATION',\n SHEET_STARTED: 'SHEET_STARTED',\n SHEET_UNASSIGNED: 'SHEET_UNASSIGNED',\n} as const;\n\nconst GOAL_EVENTS = {\n GOAL_CREATED: 'GOAL_CREATED',\n GOAL_EDITED: 'GOAL_EDITED',\n GOAL_DELETED: 'GOAL_DELETED',\n GOAL_OUTCOME_ADDED: 'GOAL_OUTCOME_ADDED',\n} as const;\n\nconst MILESTONE_EVENTS = {\n MILESTONE_NAME_UPDATED: 'MILESTONE_NAME_UPDATED',\n MILESTONE_DATE_UPDATED: 'MILESTONE_DATE_UPDATED',\n MILESTONE_DELETED: 'MILESTONE_DELETED',\n MILESTONE_EDITED: 'MILESTONE_EDITED',\n MILESTONE_RESOURCE_ASSIGNED: 'MILESTONE_RESOURCE_ASSIGNED',\n MILESTONE_RESOURCE_UNASSIGNED: 'MILESTONE_RESOURCE_UNASSIGNED',\n MILESTONE_RESOURCE_RESET: 'MILESTONE_RESOURCE_RESET',\n PAST_MILESTONE_OUTCOME_ADDED: 'PAST_MILESTONE_OUTCOME_ADDED',\n} as const;\n\nconst EVENTS = {\n ...CHAPTER_SHEET_EVENTS,\n ...MILESTONE_EVENTS,\n ...GOAL_EVENTS,\n};\n\nexport { EVENTS };\n"],"names":["CHAPTER_SHEET_EVENTS","GOAL_EVENTS","MILESTONE_EVENTS","EVENTS"],"mappings":"AAAA,MAAMA,IAAuB;AAAA,EAC3B,iBAAiB;AAAA,EACjB,4BAA4B;AAAA,EAC5B,8BAA8B;AAAA,EAC9B,wBAAwB;AAAA,EACxB,eAAe;AAAA,EACf,yBAAyB;AAAA,EACzB,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,kBAAkB;AACpB,GAEMC,IAAc;AAAA,EAClB,cAAc;AAAA,EACd,aAAa;AAAA,EACb,cAAc;AAAA,EACd,oBAAoB;AACtB,GAEMC,IAAmB;AAAA,EACvB,wBAAwB;AAAA,EACxB,wBAAwB;AAAA,EACxB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,6BAA6B;AAAA,EAC7B,+BAA+B;AAAA,EAC/B,0BAA0B;AAAA,EAC1B,8BAA8B;AAChC,GAEMC,IAAS;AAAA,EACb,GAAGH;AAAA,EACH,GAAGE;AAAA,EACH,GAAGD;AACL;"}
@@ -1,81 +1,80 @@
1
- import { jsx as E, jsxs as R, Fragment as ne } from "react/jsx-runtime";
1
+ import { jsx as i, jsxs as I, Fragment as ne } from "react/jsx-runtime";
2
2
  import { h as re } from "../../../node_modules/humanize-plus/dist/humanize.js";
3
- import { memo as ie, useMemo as ae, useState as p, useCallback as Ee, useEffect as f } from "react";
3
+ import { memo as ie, useMemo as ae, useState as O, useCallback as Ee, useEffect as R } from "react";
4
4
  import { ILLUSTRATIONS as le } from "../../../assets/illustrations/illustrations.js";
5
5
  import { EVENTS as e } from "../../communication/pub-sub/constants.js";
6
6
  import { useInClassActionListener as Se } from "../../communication/pub-sub/hooks.js";
7
7
  import me from "../../ui/separator/separator.js";
8
8
  import { invalidateMilestoneResources as ce } from "./api/get-milestone-resources.js";
9
- import { useGetAllMilestonesdata as Te, invalidateMilestonesData as de } from "./api/get-milestones.js";
10
- import { invalidateTestHelpData as _e } from "./api/get-tests-list.js";
11
- import Ae from "./filter-milestones.js";
12
- import De from "./milestone-list/milestone-list.js";
13
- import Ne from "./milestone-list/milestone-loader/milestone-loader.js";
14
- import { ContentWrapper as Ie, LoaderWrapper as Me } from "./styled.js";
15
- const ue = (T) => {
16
- de(T);
17
- }, Le = ie(
18
- ({ studentName: T, studentId: d, studentClassroomId: h, ...P }) => {
9
+ import { useGetAllMilestonesdata as Te, invalidateMilestonesData as Ae } from "./api/get-milestones.js";
10
+ import _e from "./filter-milestones.js";
11
+ import de from "./milestone-list/milestone-list.js";
12
+ import De from "./milestone-list/milestone-loader/milestone-loader.js";
13
+ import { ContentWrapper as Le, LoaderWrapper as Me } from "./styled.js";
14
+ const ue = (S) => {
15
+ Ae(S);
16
+ }, Ce = ie(
17
+ ({ studentName: S, studentId: m, studentClassroomId: p, ...f }) => {
19
18
  const {
20
- milestoneType: o,
21
- isStudentPresent: N,
22
- isClassOngoing: _,
23
- userType: A,
24
- canCreatePlan: G,
25
- teacherName: U,
26
- parentName: v,
27
- courseStream: D,
19
+ milestoneType: s,
20
+ isStudentPresent: d,
21
+ isClassOngoing: c,
22
+ userType: T,
23
+ canCreatePlan: h,
24
+ teacherName: P,
25
+ parentName: U,
26
+ courseStream: A,
28
27
  onExpandPastMilestones: g,
29
- onAddOutcome: F,
30
- onChapterClick: w,
31
- onEdit: x,
32
- onCreateMilestoneTest: V,
33
- onPreview: y,
34
- onReattempt: b,
35
- onReset: H,
36
- onResume: k,
37
- onReview: K,
38
- onStart: j,
39
- onDraftPublish: W,
40
- onAddChapter: X,
41
- onCreatePlan: $,
42
- onDelete: q,
43
- onAssignResources: z,
44
- onUnAssignSheet: B,
45
- onTestPreview: J,
46
- onTestReview: Q,
47
- onTestStart: Y
48
- } = P, n = ae(
28
+ onAddOutcome: G,
29
+ onChapterClick: v,
30
+ onEdit: F,
31
+ onCreateMilestoneTest: w,
32
+ onPreview: x,
33
+ onReattempt: V,
34
+ onReset: b,
35
+ onResume: y,
36
+ onReview: H,
37
+ onStart: k,
38
+ onDraftPublish: K,
39
+ onAddChapter: j,
40
+ onCreatePlan: W,
41
+ onDelete: X,
42
+ onAssignResources: $,
43
+ onUnAssignSheet: q,
44
+ onTestPreview: z,
45
+ onTestReview: B,
46
+ onTestStart: J
47
+ } = f, n = ae(
49
48
  () => ({
50
- milestone_state_group: o === "ACTIVE" ? A === "TEACHER" ? "LIVE" : "STUDENT_LIVE" : o,
49
+ milestone_state_group: s === "ACTIVE" ? T === "TEACHER" ? "LIVE" : "STUDENT_LIVE" : s,
51
50
  with_plan: !0,
52
- course_stream: D,
53
- student_id: d,
54
- in_class: _
51
+ course_stream: A,
52
+ student_id: m,
53
+ in_class: c
55
54
  }),
56
- [_, o, D, d, A]
55
+ [c, s, A, m, T]
57
56
  ), {
58
57
  data: t,
59
- getAll: S,
60
- isStale: I,
61
- isProcessing: l
62
- } = Te(n), [M, u] = p(), [L, C] = p(!1), Z = Ee(
63
- (m) => {
64
- const { searchText: r, selectedBoard: i, selectedGrade: a } = m || {};
65
- (r || i || a) && C(!0);
66
- const c = t == null ? void 0 : t.filter((s) => {
67
- const { milestone_name: te, board: se, grade: oe } = s || {};
68
- return (r ? te.toLowerCase().includes(r.toLowerCase()) : !0) && (i ? se === i : !0) && (a ? oe === a : !0);
58
+ getAll: l,
59
+ isStale: D,
60
+ isProcessing: a
61
+ } = Te(n), [L, M] = O(), [u, C] = O(!1), Q = Ee(
62
+ (_) => {
63
+ const { searchText: o, selectedBoard: r, selectedGrade: E } = _ || {};
64
+ (o || r || E) && C(!0);
65
+ const Z = t == null ? void 0 : t.filter((ee) => {
66
+ const { milestone_name: te, board: se, grade: oe } = ee || {};
67
+ return (o ? te.toLowerCase().includes(o.toLowerCase()) : !0) && (r ? se === r : !0) && (E ? oe === E : !0);
69
68
  });
70
- u(c);
69
+ M(Z);
71
70
  },
72
71
  [t]
73
- ), ee = () => {
74
- C(!1), u(void 0);
72
+ ), Y = () => {
73
+ C(!1), M(void 0);
75
74
  };
76
75
  if (Se(
77
76
  {
78
- studentClassroomId: h,
77
+ studentClassroomId: p,
79
78
  actions: [
80
79
  [e.CHAPTER_UPDATED],
81
80
  [e.LESSONS_MARKED_AS_FAMILIAR],
@@ -95,91 +94,79 @@ const ue = (T) => {
95
94
  [e.GOAL_EDITED],
96
95
  [e.GOAL_DELETED],
97
96
  [e.GOAL_OUTCOME_ADDED],
98
- [e.PAST_MILESTONE_OUTCOME_ADDED],
99
- [e.MILESTONE_TEST_ASSIGNED]
97
+ [e.PAST_MILESTONE_OUTCOME_ADDED]
100
98
  ],
101
- callback: (m) => {
102
- var a, c;
103
- const r = (a = m.find(
104
- (s) => s.eventName === e.MILESTONE_RESOURCE_ASSIGNED || e.MILESTONE_RESOURCE_UNASSIGNED
105
- )) == null ? void 0 : a.eventPayload, i = (c = m.find(
106
- (s) => s.eventName === e.MILESTONE_TEST_ASSIGNED
107
- )) == null ? void 0 : c.eventPayload;
108
- if (r) {
109
- const { milestoneId: s } = r || {};
110
- ce(s);
111
- }
112
- if (i) {
113
- const { milestoneId: s } = i;
114
- _e(s);
115
- }
116
- ue(n);
99
+ callback: (_) => {
100
+ const o = _.find(
101
+ (E) => E.eventName === e.MILESTONE_RESOURCE_ASSIGNED || e.MILESTONE_RESOURCE_UNASSIGNED
102
+ ), { milestoneId: r } = (o == null ? void 0 : o.eventPayload) || {};
103
+ r && ce(r), ue(n);
117
104
  }
118
105
  },
119
- (o === "ACTIVE" || o === "INACTIVE") && N
120
- ), f(() => {
121
- S(n);
122
- }, [S, n]), f(() => {
123
- !l && I && S(n);
124
- }, [S, n, I, l]), l && !t)
125
- return /* @__PURE__ */ E(Ne, { numMilestones: 2 });
126
- const O = o === "ACTIVE" && t && t.length > 6;
127
- return /* @__PURE__ */ R(Ie, { $disablePointerEvents: l, children: [
128
- l && /* @__PURE__ */ E(Me, { children: /* @__PURE__ */ E("img", { src: le.LOADER_1, alt: "loading" }) }),
129
- O && /* @__PURE__ */ R(ne, { children: [
130
- /* @__PURE__ */ E(
131
- Ae,
106
+ (s === "ACTIVE" || s === "INACTIVE") && d
107
+ ), R(() => {
108
+ l(n);
109
+ }, [l, n]), R(() => {
110
+ !a && D && l(n);
111
+ }, [l, n, D, a]), a && !t)
112
+ return /* @__PURE__ */ i(De, { numMilestones: 2 });
113
+ const N = s === "ACTIVE" && t && t.length > 6;
114
+ return /* @__PURE__ */ I(Le, { $disablePointerEvents: a, children: [
115
+ a && /* @__PURE__ */ i(Me, { children: /* @__PURE__ */ i("img", { src: le.LOADER_1, alt: "loading" }) }),
116
+ N && /* @__PURE__ */ I(ne, { children: [
117
+ /* @__PURE__ */ i(
118
+ _e,
132
119
  {
133
- filteredMilestones: M,
120
+ filteredMilestones: L,
134
121
  milestones: t,
135
- handleFilterMilestones: Z,
136
- handleClearFilter: ee
122
+ handleFilterMilestones: Q,
123
+ handleClearFilter: Y
137
124
  }
138
125
  ),
139
- /* @__PURE__ */ E(me, { heightX: 1.5 })
126
+ /* @__PURE__ */ i(me, { heightX: 1.5 })
140
127
  ] }),
141
- /* @__PURE__ */ E(
142
- De,
128
+ /* @__PURE__ */ i(
129
+ de,
143
130
  {
144
- showFilters: !!O,
145
- canCreatePlan: G,
146
- isClassOngoing: _,
147
- isFiltersAdded: L,
148
- isStudentPresent: N,
149
- milestoneType: o,
150
- milestones: L ? M : t,
151
- onAddChapter: X,
152
- onAddOutcome: F,
153
- onChapterClick: w,
154
- onCreatePlan: $,
155
- onDelete: q,
156
- onDraftPublish: W,
157
- onEdit: x,
131
+ showFilters: !!N,
132
+ canCreatePlan: h,
133
+ isClassOngoing: c,
134
+ isFiltersAdded: u,
135
+ isStudentPresent: d,
136
+ milestoneType: s,
137
+ milestones: u ? L : t,
138
+ onAddChapter: j,
139
+ onAddOutcome: G,
140
+ onChapterClick: v,
141
+ onCreatePlan: W,
142
+ onDelete: X,
143
+ onDraftPublish: K,
144
+ onEdit: F,
158
145
  onExpandPastMilestones: g,
159
- onCreateMilestoneTest: V,
160
- onPreview: y,
161
- onReattempt: b,
162
- onReset: H,
163
- onResume: k,
164
- onReview: K,
165
- onStart: j,
166
- onAssignResources: z,
167
- onUnAssignSheet: B,
168
- onTestPreview: J,
169
- onTestReview: Q,
170
- onTestStart: Y,
171
- studentId: d,
172
- studentName: re.titleCase(T),
173
- teacherName: U,
174
- parentName: v,
175
- userType: A,
176
- courseStream: D
146
+ onCreateMilestoneTest: w,
147
+ onPreview: x,
148
+ onReattempt: V,
149
+ onReset: b,
150
+ onResume: y,
151
+ onReview: H,
152
+ onStart: k,
153
+ onAssignResources: $,
154
+ onUnAssignSheet: q,
155
+ onTestPreview: z,
156
+ onTestReview: B,
157
+ onTestStart: J,
158
+ studentId: m,
159
+ studentName: re.titleCase(S),
160
+ teacherName: P,
161
+ parentName: U,
162
+ userType: T,
163
+ courseStream: A
177
164
  }
178
165
  )
179
166
  ] });
180
167
  }
181
- ), He = Le;
168
+ ), be = Ce;
182
169
  export {
183
- He as default
170
+ be as default
184
171
  };
185
172
  //# sourceMappingURL=milestone-list-container.js.map