@cuemath/leap 2.8.40-link.3 → 2.8.41-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 (87) hide show
  1. package/dist/assets/illustrations/illustrations.js +0 -2
  2. package/dist/assets/illustrations/illustrations.js.map +1 -1
  3. package/dist/assets/lottie/lottie.js +6 -0
  4. package/dist/assets/lottie/lottie.js.map +1 -1
  5. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode-styled.js +3 -3
  6. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode-styled.js.map +1 -1
  7. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode.js +29 -35
  8. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode.js.map +1 -1
  9. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode-star/constants.js +6 -0
  10. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode-star/constants.js.map +1 -0
  11. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode-star/table-mode-star-styled.js +25 -0
  12. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode-star/table-mode-star-styled.js.map +1 -0
  13. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode-star/table-mode-star.js +57 -0
  14. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode-star/table-mode-star.js.map +1 -0
  15. package/dist/features/circle-games/game-launcher/comps/tables-card/table-segment-star/table-segment-star-styled.js +27 -0
  16. package/dist/features/circle-games/game-launcher/comps/tables-card/table-segment-star/table-segment-star-styled.js.map +1 -0
  17. package/dist/features/circle-games/game-launcher/comps/tables-card/table-segment-star/table-segment-star.js +37 -0
  18. package/dist/features/circle-games/game-launcher/comps/tables-card/table-segment-star/table-segment-star.js.map +1 -0
  19. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card-styled.js +35 -42
  20. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card-styled.js.map +1 -1
  21. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js +221 -212
  22. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js.map +1 -1
  23. package/dist/features/circle-games/game-launcher/game-launcher-analytics-events.js +8 -7
  24. package/dist/features/circle-games/game-launcher/game-launcher-analytics-events.js.map +1 -1
  25. package/dist/features/circle-games/game-launcher/game-launcher.js +67 -67
  26. package/dist/features/circle-games/game-launcher/game-launcher.js.map +1 -1
  27. package/dist/features/circle-games/games/web-view/web-view-types.js.map +1 -1
  28. package/dist/features/circle-games/hooks/use-circle-sounds/constants.js +8 -3
  29. package/dist/features/circle-games/hooks/use-circle-sounds/constants.js.map +1 -1
  30. package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds-enums.js +2 -2
  31. package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds-enums.js.map +1 -1
  32. package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js +22 -17
  33. package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js.map +1 -1
  34. package/dist/features/post-game-stats/digital-meter/comp/animated-arc/animated-arc-styled.js +17 -0
  35. package/dist/features/post-game-stats/digital-meter/comp/animated-arc/animated-arc-styled.js.map +1 -0
  36. package/dist/features/post-game-stats/digital-meter/comp/animated-arc/animated-arc.js +50 -0
  37. package/dist/features/post-game-stats/digital-meter/comp/animated-arc/animated-arc.js.map +1 -0
  38. package/dist/features/post-game-stats/digital-meter/comp/animated-arc/constants.js +6 -0
  39. package/dist/features/post-game-stats/digital-meter/comp/animated-arc/constants.js.map +1 -0
  40. package/dist/features/post-game-stats/digital-meter/constants.js +18 -0
  41. package/dist/features/post-game-stats/digital-meter/constants.js.map +1 -0
  42. package/dist/features/post-game-stats/digital-meter/digital-meter-styled.js +87 -0
  43. package/dist/features/post-game-stats/digital-meter/digital-meter-styled.js.map +1 -0
  44. package/dist/features/post-game-stats/digital-meter/digital-meter.js +191 -0
  45. package/dist/features/post-game-stats/digital-meter/digital-meter.js.map +1 -0
  46. package/dist/features/post-game-stats/digital-meter/helper.js +33 -0
  47. package/dist/features/post-game-stats/digital-meter/helper.js.map +1 -0
  48. package/dist/features/post-game-stats/enums/post-game-stats-enum.js +1 -1
  49. package/dist/features/post-game-stats/enums/post-game-stats-enum.js.map +1 -1
  50. package/dist/features/post-game-stats/number-count-animation/number-count-animation.js +27 -0
  51. package/dist/features/post-game-stats/number-count-animation/number-count-animation.js.map +1 -0
  52. package/dist/features/post-game-stats/points/points.js +27 -18
  53. package/dist/features/post-game-stats/points/points.js.map +1 -1
  54. package/dist/features/post-game-stats/post-game-stats.js +88 -61
  55. package/dist/features/post-game-stats/post-game-stats.js.map +1 -1
  56. package/dist/index.d.ts +52 -45
  57. package/dist/index.js +100 -100
  58. package/dist/static/point2.7cec6e24.json +1 -0
  59. package/dist/static/point3.f96fe7aa.json +1 -0
  60. package/dist/static/point4.fe04fb83.json +1 -0
  61. package/dist/static/table-mode-star.b8a1d762.json +1 -0
  62. package/dist/static/table-segment-star.78e851d6.json +1 -0
  63. package/dist/static/target-achieved-text.053bd142.json +2830 -0
  64. package/dist/static/target-achieved-text.10db8475.json +1 -0
  65. package/package.json +3 -2
  66. package/dist/assets/sounds/sounds.js +0 -7
  67. package/dist/assets/sounds/sounds.js.map +0 -1
  68. package/dist/features/circle-games/game-launcher/comps/tables-card/table-star/table-star-styled.js +0 -11
  69. package/dist/features/circle-games/game-launcher/comps/tables-card/table-star/table-star-styled.js.map +0 -1
  70. package/dist/features/circle-games/game-launcher/comps/tables-card/table-star/table-star.js +0 -16
  71. package/dist/features/circle-games/game-launcher/comps/tables-card/table-star/table-star.js.map +0 -1
  72. package/dist/features/talk-meter/helper.js +0 -11
  73. package/dist/features/talk-meter/helper.js.map +0 -1
  74. package/dist/features/talk-meter/hooks/use-talk-meter.js +0 -123
  75. package/dist/features/talk-meter/hooks/use-talk-meter.js.map +0 -1
  76. package/dist/features/talk-meter/ripple/index.js +0 -62
  77. package/dist/features/talk-meter/ripple/index.js.map +0 -1
  78. package/dist/features/talk-meter/talk-meter-styled.js +0 -89
  79. package/dist/features/talk-meter/talk-meter-styled.js.map +0 -1
  80. package/dist/features/talk-meter/talk-meter-view/talk-meter-view-styled.js +0 -22
  81. package/dist/features/talk-meter/talk-meter-view/talk-meter-view-styled.js.map +0 -1
  82. package/dist/features/talk-meter/talk-meter-view/talk-meter-view.js +0 -101
  83. package/dist/features/talk-meter/talk-meter-view/talk-meter-view.js.map +0 -1
  84. package/dist/features/talk-meter/talk-meter.js +0 -75
  85. package/dist/features/talk-meter/talk-meter.js.map +0 -1
  86. package/dist/static/female-avatar.b8cd1012.svg +0 -1
  87. package/dist/static/male-avatar.2febc9eb.svg +0 -1
@@ -1,59 +1,59 @@
1
1
  import { jsx as i } from "react/jsx-runtime";
2
- import { memo as D, useState as T, useCallback as n, useMemo as h, useEffect as B } from "react";
3
- import { LOTTIE as K } from "../../../assets/lottie/lottie.js";
4
- import { CircularLoader as U } from "../../ui/loader/circular-loader/circular-loader.js";
5
- import Y from "../../ui/lottie-animation/lottie-animation.js";
6
- import { useCircleSounds as H } from "../hooks/use-circle-sounds/use-circle-sounds.js";
7
- import { CircleSoundKey as t } from "../hooks/use-circle-sounds/use-circle-sounds-enums.js";
8
- import { GAME_LAUNCHER_SIZE as J } from "./comps/card-container/constants.js";
9
- import { Carousel as z } from "./comps/carousel/carousel.js";
10
- import { GAME_LAUNCHER_ASSET_PADDING as O } from "./comps/segmented-game-card/constants.js";
2
+ import { memo as S, useState as v, useCallback as n, useMemo as I, useEffect as D } from "react";
3
+ import { LOTTIE as B } from "../../../assets/lottie/lottie.js";
4
+ import { CircularLoader as K } from "../../ui/loader/circular-loader/circular-loader.js";
5
+ import O from "../../ui/lottie-animation/lottie-animation.js";
6
+ import { useCircleSounds as U } from "../hooks/use-circle-sounds/use-circle-sounds.js";
7
+ import { CircleSoundKey as m } from "../hooks/use-circle-sounds/use-circle-sounds-enums.js";
8
+ import { GAME_LAUNCHER_SIZE as Y } from "./comps/card-container/constants.js";
9
+ import { Carousel as T } from "./comps/carousel/carousel.js";
10
+ import { GAME_LAUNCHER_ASSET_PADDING as H } from "./comps/segmented-game-card/constants.js";
11
11
  import { SegmentedGameCard as f } from "./comps/segmented-game-card/segmented-game-card.js";
12
- import { TablesCard as Z } from "./comps/tables-card/tables-card.js";
13
- import { GAME_LAUNCHER_ANALYTICS_EVENTS as x } from "./game-launcher-analytics-events.js";
14
- import { useGameLauncherJourney as w } from "./use-game-launcher-journey/use-game-launcher-journey.js";
15
- import { ProjectType as m } from "../games/web-view/enums/project-type-enum.js";
16
- const G = J + O, ne = D(
17
- ({ onSegmentClick: r, onJourneyComplete: V, journeyId: u, data: e, isLoading: g, defaultIndex: N = 0 }) => {
18
- const [R, S] = T(N), [p] = T(!1), { playSwipSound: c, play: o } = H(), {
19
- gameRefs: a,
20
- lessonRefs: C,
21
- puzzleRefs: L,
22
- startJourney: E,
23
- carouselNextBtnRef: A,
24
- isJourneyInProgress: b
25
- } = w({
26
- setCarouselIndex: S,
12
+ import { TablesCard as J } from "./comps/tables-card/tables-card.js";
13
+ import { GAME_LAUNCHER_ANALYTICS_EVENTS as h } from "./game-launcher-analytics-events.js";
14
+ import { useGameLauncherJourney as Z } from "./use-game-launcher-journey/use-game-launcher-journey.js";
15
+ import { ProjectType as t } from "../games/web-view/enums/project-type-enum.js";
16
+ const z = Y + H, ie = S(
17
+ ({ onSegmentClick: r, onJourneyComplete: x, journeyId: u, data: e, isLoading: G, defaultIndex: V = 0 }) => {
18
+ const [g, N] = v(V), { playSwipSound: p, play: o } = U(), {
19
+ gameRefs: c,
20
+ lessonRefs: a,
21
+ puzzleRefs: C,
22
+ startJourney: L,
23
+ carouselNextBtnRef: E,
24
+ isJourneyInProgress: A
25
+ } = Z({
26
+ setCarouselIndex: N,
27
27
  onSegmentClick: r,
28
- onJourneyComplete: V
29
- }), _ = n(
28
+ onJourneyComplete: x
29
+ }), b = n(
30
30
  (l) => {
31
- o(t.GAME_CARD_CLICK), r(l, m.TABLE);
31
+ o(m.GAME_CARD_CLICK), r(l, t.TABLE);
32
32
  },
33
33
  [r, o]
34
- ), P = n(
34
+ ), _ = n(
35
35
  (l) => {
36
- l.status !== "completed" && (o(t.GAME_CARD_CLICK), r(l, m.LESSON));
36
+ l.status !== "completed" && (o(m.GAME_CARD_CLICK), r(l, t.LESSON));
37
37
  },
38
38
  [r, o]
39
- ), y = n(
39
+ ), P = n(
40
40
  (l) => {
41
- o(t.GAME_CARD_CLICK), r(l, m.GAME);
41
+ o(m.GAME_CARD_CLICK), r(l, t.GAME);
42
42
  },
43
43
  [r, o]
44
- ), I = n(
44
+ ), y = n(
45
45
  (l) => {
46
- o(t.GAME_CARD_CLICK), r(l, m.PUZZLE);
46
+ o(m.GAME_CARD_CLICK), r(l, t.PUZZLE);
47
47
  },
48
48
  [r, o]
49
- ), M = h(() => {
49
+ ), R = I(() => {
50
50
  let l = [];
51
51
  return e && (e.lessons && (l = [
52
52
  ...l,
53
53
  /* @__PURE__ */ i(
54
54
  f,
55
55
  {
56
- ref: C,
56
+ ref: a,
57
57
  label: e.lessons.label,
58
58
  value: e.lessons.data.filter((s) => s.status === "completed").length,
59
59
  maxValue: e.lessons.data.length,
@@ -62,7 +62,7 @@ const G = J + O, ne = D(
62
62
  card: s.cardLottie,
63
63
  name: s.name,
64
64
  isCompleted: s.status === "completed",
65
- onPress: () => P(s)
65
+ onPress: () => _(s)
66
66
  }))
67
67
  }
68
68
  )
@@ -71,7 +71,7 @@ const G = J + O, ne = D(
71
71
  /* @__PURE__ */ i(
72
72
  f,
73
73
  {
74
- ref: a,
74
+ ref: c,
75
75
  label: e.games.label,
76
76
  value: e.games.data.filter((s) => s.isPlayed).length,
77
77
  maxValue: e.games.data.length,
@@ -80,14 +80,14 @@ const G = J + O, ne = D(
80
80
  card: s.cardLottie,
81
81
  name: s.name,
82
82
  isCompleted: !1,
83
- onPress: () => y(s)
83
+ onPress: () => P(s)
84
84
  }))
85
85
  }
86
86
  ),
87
87
  /* @__PURE__ */ i(
88
88
  f,
89
89
  {
90
- ref: L,
90
+ ref: C,
91
91
  label: e.puzzles.label,
92
92
  value: e.puzzles.data.filter((s) => s.solved).length,
93
93
  maxValue: e.puzzles.data.length,
@@ -96,66 +96,66 @@ const G = J + O, ne = D(
96
96
  card: s.cardLottie,
97
97
  name: s.name,
98
98
  isCompleted: s.solved,
99
- onPress: () => I(s)
99
+ onPress: () => y(s)
100
100
  }))
101
101
  }
102
102
  )
103
- ], e.tables && p && (l = [
103
+ ], e.tables && (l = [
104
104
  ...l,
105
105
  /* @__PURE__ */ i(
106
- Z,
106
+ J,
107
107
  {
108
108
  label: e.tables.label,
109
109
  data: e.tables.data,
110
- onPress: _
110
+ onPress: b,
111
+ openModesOfTable: e.tables.openModesOfTable
111
112
  }
112
113
  )
113
114
  ])), l;
114
115
  }, [
115
116
  e,
117
+ c,
116
118
  a,
117
119
  C,
118
- L,
119
- P,
120
120
  _,
121
- I,
121
+ b,
122
122
  y,
123
- p
124
- ]), v = h(
123
+ P
124
+ ]), M = I(
125
125
  () => [
126
126
  /* @__PURE__ */ i(
127
- Y,
127
+ O,
128
128
  {
129
- src: K.SLEEPY_BOI,
130
- width: G,
131
- height: G
129
+ src: B.SLEEPY_BOI,
130
+ width: z,
131
+ height: z
132
132
  }
133
133
  )
134
134
  ],
135
135
  []
136
136
  );
137
- return B(() => {
138
- e != null && e.puzzles && u && b && E(e == null ? void 0 : e.puzzles, !!(e != null && e.lessons), u);
139
- }, [e == null ? void 0 : e.lessons, e == null ? void 0 : e.puzzles, b, u, E]), g ? /* @__PURE__ */ i(U, {}) : e ? /* @__PURE__ */ i(
140
- z,
137
+ return D(() => {
138
+ e != null && e.puzzles && u && A && L(e == null ? void 0 : e.puzzles, !!(e != null && e.lessons), u);
139
+ }, [e == null ? void 0 : e.lessons, e == null ? void 0 : e.puzzles, A, u, L]), G ? /* @__PURE__ */ i(K, {}) : e ? /* @__PURE__ */ i(
140
+ T,
141
141
  {
142
- ref: A,
143
- items: M,
144
- defaultIndex: R,
145
- onNext: c,
146
- onPrev: c,
142
+ ref: E,
143
+ items: R,
144
+ defaultIndex: g,
145
+ onNext: p,
146
+ onPrev: p,
147
147
  analyticsNext: {
148
- analyticsLabel: x.NEXT_ACTIVITY
148
+ analyticsLabel: h.NEXT_ACTIVITY
149
149
  },
150
150
  analyticsPrev: {
151
- analyticsLabel: x.PREV_ACTIVITY
151
+ analyticsLabel: h.PREV_ACTIVITY
152
152
  }
153
153
  }
154
154
  ) : /* @__PURE__ */ i(
155
- z,
155
+ T,
156
156
  {
157
- ref: A,
158
- items: v,
157
+ ref: E,
158
+ items: M,
159
159
  analyticsNext: {
160
160
  analyticsLabel: ""
161
161
  },
@@ -167,6 +167,6 @@ const G = J + O, ne = D(
167
167
  }
168
168
  );
169
169
  export {
170
- ne as GameLauncher
170
+ ie as GameLauncher
171
171
  };
172
172
  //# sourceMappingURL=game-launcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"game-launcher.js","sources":["../../../../src/features/circle-games/game-launcher/game-launcher.tsx"],"sourcesContent":["import type { ITableDetails } from './comps/tables-card/tables-card-types';\nimport type {\n Game,\n Lesson,\n Puzzle,\n} from './dal/use-get-circle-home-details-dal/use-get-circle-home-dal-types';\nimport type { IGameLauncherProps } from './game-launcher-types';\nimport type { FC, ReactNode } from 'react';\n\nimport { memo, useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport { CircularLoader } from '../../ui/loader/circular-loader/circular-loader';\nimport LottieAnimation from '../../ui/lottie-animation/lottie-animation';\nimport { ProjectType } from '../games/web-view/enums';\nimport { useCircleSounds } from '../hooks/use-circle-sounds/use-circle-sounds';\nimport { CircleSoundKey } from '../hooks/use-circle-sounds/use-circle-sounds-enums';\nimport { GAME_LAUNCHER_SIZE } from './comps/card-container/constants';\nimport { Carousel } from './comps/carousel/carousel';\nimport { GAME_LAUNCHER_ASSET_PADDING } from './comps/segmented-game-card/constants';\nimport { SegmentedGameCard } from './comps/segmented-game-card/segmented-game-card';\nimport { TablesCard } from './comps/tables-card/tables-card';\nimport { GAME_LAUNCHER_ANALYTICS_EVENTS } from './game-launcher-analytics-events';\nimport { useGameLauncherJourney } from './use-game-launcher-journey/use-game-launcher-journey';\n\nconst sleepyBoiDimension = GAME_LAUNCHER_SIZE + GAME_LAUNCHER_ASSET_PADDING;\n\nexport const GameLauncher: FC<IGameLauncherProps> = memo(\n ({ onSegmentClick, onJourneyComplete, journeyId, data, isLoading, defaultIndex = 0 }) => {\n const [currentIndex, setCurrentIndex] = useState(defaultIndex);\n const [enableTables] = useState(false);\n\n const { playSwipSound, play } = useCircleSounds();\n const {\n gameRefs,\n lessonRefs,\n puzzleRefs,\n startJourney,\n carouselNextBtnRef,\n isJourneyInProgress,\n } = useGameLauncherJourney({\n setCarouselIndex: setCurrentIndex,\n onSegmentClick,\n onJourneyComplete,\n });\n\n const onTableSegmentClick = useCallback(\n (table: ITableDetails) => {\n play(CircleSoundKey.GAME_CARD_CLICK);\n onSegmentClick(table, ProjectType.TABLE);\n },\n [onSegmentClick, play],\n );\n\n const handleLessonSegmentClick = useCallback(\n (lesson: Lesson) => {\n if (lesson.status !== 'completed') {\n play(CircleSoundKey.GAME_CARD_CLICK);\n onSegmentClick(lesson, ProjectType.LESSON);\n }\n },\n [onSegmentClick, play],\n );\n\n const handleGameSegmentClick = useCallback(\n (game: Game) => {\n play(CircleSoundKey.GAME_CARD_CLICK);\n onSegmentClick(game, ProjectType.GAME);\n },\n [onSegmentClick, play],\n );\n\n const handlePuzzleSegmentClick = useCallback(\n (puzzle: Puzzle) => {\n play(CircleSoundKey.GAME_CARD_CLICK);\n onSegmentClick(puzzle, ProjectType.PUZZLE);\n },\n [onSegmentClick, play],\n );\n\n const items = useMemo(() => {\n let itemTypes: ReactNode[] = [];\n\n if (data) {\n if (data.lessons) {\n itemTypes = [\n ...itemTypes,\n <SegmentedGameCard\n ref={lessonRefs}\n label={data.lessons.label}\n value={data.lessons.data.filter(lesson => lesson.status === 'completed').length}\n maxValue={data.lessons.data.length}\n initialValue={data.lessons.initialProgressValue}\n data={data?.lessons.data.map(lesson => ({\n card: lesson.cardLottie,\n name: lesson.name,\n isCompleted: lesson.status === 'completed',\n onPress: () => handleLessonSegmentClick(lesson),\n }))}\n />,\n ];\n }\n\n itemTypes = [\n ...itemTypes,\n <SegmentedGameCard\n ref={gameRefs}\n label={data.games.label}\n value={data.games.data.filter(game => game.isPlayed).length}\n maxValue={data.games.data.length}\n initialValue={data.games.initialProgressValue}\n data={data.games.data.map(game => ({\n card: game.cardLottie,\n name: game.name,\n isCompleted: false,\n onPress: () => handleGameSegmentClick(game),\n }))}\n />,\n <SegmentedGameCard\n ref={puzzleRefs}\n label={data.puzzles.label}\n value={data.puzzles.data.filter(puzzle => puzzle.solved).length}\n maxValue={data.puzzles.data.length}\n initialValue={data.puzzles.initialProgressValue}\n data={data.puzzles.data.map(puzzle => ({\n card: puzzle.cardLottie,\n name: puzzle.name,\n isCompleted: puzzle.solved,\n onPress: () => handlePuzzleSegmentClick(puzzle),\n }))}\n />,\n ];\n\n if (data.tables && enableTables) {\n itemTypes = [\n ...itemTypes,\n <TablesCard\n label={data.tables.label}\n data={data.tables.data}\n onPress={onTableSegmentClick}\n />,\n ];\n }\n }\n\n return itemTypes;\n }, [\n data,\n gameRefs,\n lessonRefs,\n puzzleRefs,\n handleLessonSegmentClick,\n onTableSegmentClick,\n handlePuzzleSegmentClick,\n handleGameSegmentClick,\n enableTables,\n ]);\n\n const sleepyBoiItem = useMemo(\n () => [\n <LottieAnimation\n src={LOTTIE.SLEEPY_BOI}\n width={sleepyBoiDimension}\n height={sleepyBoiDimension}\n />,\n ],\n [],\n );\n\n // Start game launcher journey when the data for puzzles is available\n useEffect(() => {\n if (data?.puzzles && journeyId && isJourneyInProgress) {\n startJourney(data?.puzzles, !!data?.lessons, journeyId);\n }\n }, [data?.lessons, data?.puzzles, isJourneyInProgress, journeyId, startJourney]);\n\n if (isLoading) {\n return <CircularLoader />;\n }\n\n if (!data) {\n return (\n <Carousel\n ref={carouselNextBtnRef}\n items={sleepyBoiItem}\n analyticsNext={{\n analyticsLabel: '',\n }}\n analyticsPrev={{\n analyticsLabel: '',\n }}\n />\n );\n }\n\n return (\n <Carousel\n ref={carouselNextBtnRef}\n items={items}\n defaultIndex={currentIndex}\n onNext={playSwipSound}\n onPrev={playSwipSound}\n analyticsNext={{\n analyticsLabel: GAME_LAUNCHER_ANALYTICS_EVENTS.NEXT_ACTIVITY,\n }}\n analyticsPrev={{\n analyticsLabel: GAME_LAUNCHER_ANALYTICS_EVENTS.PREV_ACTIVITY,\n }}\n />\n );\n },\n);\n"],"names":["sleepyBoiDimension","GAME_LAUNCHER_SIZE","GAME_LAUNCHER_ASSET_PADDING","GameLauncher","memo","onSegmentClick","onJourneyComplete","journeyId","data","isLoading","defaultIndex","currentIndex","setCurrentIndex","useState","enableTables","playSwipSound","play","useCircleSounds","gameRefs","lessonRefs","puzzleRefs","startJourney","carouselNextBtnRef","isJourneyInProgress","useGameLauncherJourney","onTableSegmentClick","useCallback","table","CircleSoundKey","ProjectType","handleLessonSegmentClick","lesson","handleGameSegmentClick","game","handlePuzzleSegmentClick","puzzle","items","useMemo","itemTypes","jsx","SegmentedGameCard","TablesCard","sleepyBoiItem","LottieAnimation","LOTTIE","useEffect","CircularLoader","Carousel","GAME_LAUNCHER_ANALYTICS_EVENTS"],"mappings":"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"}
1
+ {"version":3,"file":"game-launcher.js","sources":["../../../../src/features/circle-games/game-launcher/game-launcher.tsx"],"sourcesContent":["import type { ITableDetails } from './comps/tables-card/tables-card-types';\nimport type {\n Game,\n Lesson,\n Puzzle,\n} from './dal/use-get-circle-home-details-dal/use-get-circle-home-dal-types';\nimport type { IGameLauncherProps } from './game-launcher-types';\nimport type { FC, ReactNode } from 'react';\n\nimport { memo, useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport { CircularLoader } from '../../ui/loader/circular-loader/circular-loader';\nimport LottieAnimation from '../../ui/lottie-animation/lottie-animation';\nimport { ProjectType } from '../games/web-view/enums';\nimport { useCircleSounds } from '../hooks/use-circle-sounds/use-circle-sounds';\nimport { CircleSoundKey } from '../hooks/use-circle-sounds/use-circle-sounds-enums';\nimport { GAME_LAUNCHER_SIZE } from './comps/card-container/constants';\nimport { Carousel } from './comps/carousel/carousel';\nimport { GAME_LAUNCHER_ASSET_PADDING } from './comps/segmented-game-card/constants';\nimport { SegmentedGameCard } from './comps/segmented-game-card/segmented-game-card';\nimport { TablesCard } from './comps/tables-card/tables-card';\nimport { GAME_LAUNCHER_ANALYTICS_EVENTS } from './game-launcher-analytics-events';\nimport { useGameLauncherJourney } from './use-game-launcher-journey/use-game-launcher-journey';\n\nconst sleepyBoiDimension = GAME_LAUNCHER_SIZE + GAME_LAUNCHER_ASSET_PADDING;\n\nexport const GameLauncher: FC<IGameLauncherProps> = memo(\n ({ onSegmentClick, onJourneyComplete, journeyId, data, isLoading, defaultIndex = 0 }) => {\n const [currentIndex, setCurrentIndex] = useState(defaultIndex);\n\n const { playSwipSound, play } = useCircleSounds();\n const {\n gameRefs,\n lessonRefs,\n puzzleRefs,\n startJourney,\n carouselNextBtnRef,\n isJourneyInProgress,\n } = useGameLauncherJourney({\n setCarouselIndex: setCurrentIndex,\n onSegmentClick,\n onJourneyComplete,\n });\n\n const onTableSegmentClick = useCallback(\n (table: ITableDetails) => {\n play(CircleSoundKey.GAME_CARD_CLICK);\n onSegmentClick(table, ProjectType.TABLE);\n },\n [onSegmentClick, play],\n );\n\n const handleLessonSegmentClick = useCallback(\n (lesson: Lesson) => {\n if (lesson.status !== 'completed') {\n play(CircleSoundKey.GAME_CARD_CLICK);\n onSegmentClick(lesson, ProjectType.LESSON);\n }\n },\n [onSegmentClick, play],\n );\n\n const handleGameSegmentClick = useCallback(\n (game: Game) => {\n play(CircleSoundKey.GAME_CARD_CLICK);\n onSegmentClick(game, ProjectType.GAME);\n },\n [onSegmentClick, play],\n );\n\n const handlePuzzleSegmentClick = useCallback(\n (puzzle: Puzzle) => {\n play(CircleSoundKey.GAME_CARD_CLICK);\n onSegmentClick(puzzle, ProjectType.PUZZLE);\n },\n [onSegmentClick, play],\n );\n\n const items = useMemo(() => {\n let itemTypes: ReactNode[] = [];\n\n if (data) {\n if (data.lessons) {\n itemTypes = [\n ...itemTypes,\n <SegmentedGameCard\n ref={lessonRefs}\n label={data.lessons.label}\n value={data.lessons.data.filter(lesson => lesson.status === 'completed').length}\n maxValue={data.lessons.data.length}\n initialValue={data.lessons.initialProgressValue}\n data={data?.lessons.data.map(lesson => ({\n card: lesson.cardLottie,\n name: lesson.name,\n isCompleted: lesson.status === 'completed',\n onPress: () => handleLessonSegmentClick(lesson),\n }))}\n />,\n ];\n }\n\n itemTypes = [\n ...itemTypes,\n <SegmentedGameCard\n ref={gameRefs}\n label={data.games.label}\n value={data.games.data.filter(game => game.isPlayed).length}\n maxValue={data.games.data.length}\n initialValue={data.games.initialProgressValue}\n data={data.games.data.map(game => ({\n card: game.cardLottie,\n name: game.name,\n isCompleted: false,\n onPress: () => handleGameSegmentClick(game),\n }))}\n />,\n <SegmentedGameCard\n ref={puzzleRefs}\n label={data.puzzles.label}\n value={data.puzzles.data.filter(puzzle => puzzle.solved).length}\n maxValue={data.puzzles.data.length}\n initialValue={data.puzzles.initialProgressValue}\n data={data.puzzles.data.map(puzzle => ({\n card: puzzle.cardLottie,\n name: puzzle.name,\n isCompleted: puzzle.solved,\n onPress: () => handlePuzzleSegmentClick(puzzle),\n }))}\n />,\n ];\n\n if (data.tables) {\n itemTypes = [\n ...itemTypes,\n <TablesCard\n label={data.tables.label}\n data={data.tables.data}\n onPress={onTableSegmentClick}\n openModesOfTable={data.tables.openModesOfTable}\n />,\n ];\n }\n }\n\n return itemTypes;\n }, [\n data,\n gameRefs,\n lessonRefs,\n puzzleRefs,\n handleLessonSegmentClick,\n onTableSegmentClick,\n handlePuzzleSegmentClick,\n handleGameSegmentClick,\n ]);\n\n const sleepyBoiItem = useMemo(\n () => [\n <LottieAnimation\n src={LOTTIE.SLEEPY_BOI}\n width={sleepyBoiDimension}\n height={sleepyBoiDimension}\n />,\n ],\n [],\n );\n\n // Start game launcher journey when the data for puzzles is available\n useEffect(() => {\n if (data?.puzzles && journeyId && isJourneyInProgress) {\n startJourney(data?.puzzles, !!data?.lessons, journeyId);\n }\n }, [data?.lessons, data?.puzzles, isJourneyInProgress, journeyId, startJourney]);\n\n if (isLoading) {\n return <CircularLoader />;\n }\n\n if (!data) {\n return (\n <Carousel\n ref={carouselNextBtnRef}\n items={sleepyBoiItem}\n analyticsNext={{\n analyticsLabel: '',\n }}\n analyticsPrev={{\n analyticsLabel: '',\n }}\n />\n );\n }\n\n return (\n <Carousel\n ref={carouselNextBtnRef}\n items={items}\n defaultIndex={currentIndex}\n onNext={playSwipSound}\n onPrev={playSwipSound}\n analyticsNext={{\n analyticsLabel: GAME_LAUNCHER_ANALYTICS_EVENTS.NEXT_ACTIVITY,\n }}\n analyticsPrev={{\n analyticsLabel: GAME_LAUNCHER_ANALYTICS_EVENTS.PREV_ACTIVITY,\n }}\n />\n );\n },\n);\n"],"names":["sleepyBoiDimension","GAME_LAUNCHER_SIZE","GAME_LAUNCHER_ASSET_PADDING","GameLauncher","memo","onSegmentClick","onJourneyComplete","journeyId","data","isLoading","defaultIndex","currentIndex","setCurrentIndex","useState","playSwipSound","play","useCircleSounds","gameRefs","lessonRefs","puzzleRefs","startJourney","carouselNextBtnRef","isJourneyInProgress","useGameLauncherJourney","onTableSegmentClick","useCallback","table","CircleSoundKey","ProjectType","handleLessonSegmentClick","lesson","handleGameSegmentClick","game","handlePuzzleSegmentClick","puzzle","items","useMemo","itemTypes","jsx","SegmentedGameCard","TablesCard","sleepyBoiItem","LottieAnimation","LOTTIE","useEffect","CircularLoader","Carousel","GAME_LAUNCHER_ANALYTICS_EVENTS"],"mappings":"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"}
@@ -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 { 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
+ {"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 starEligibleTime?: number;\n starEligibleAccuracy?: number;\n starRewarded?: boolean;\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,5 +1,5 @@
1
1
  import { CircleSoundKey as c } from "./use-circle-sounds-enums.js";
2
- const e = "https://cuemath-circle.s3.ap-southeast-1.amazonaws.com/assets/sounds/production", r = {
2
+ const e = "https://cuemath-circle.s3.ap-southeast-1.amazonaws.com/assets/sounds/production", a = "https://static.cuemath.com/static/sounds", t = {
3
3
  [c.BACKGROUND]: `${e}/bg-sound.mp3`,
4
4
  [c.BACKGROUND_RUSHHOUR]: `${e}/circle-background-rushhour.mp3`,
5
5
  [c.TUTORIAL]: `${e}/bg-sound-tutorials.mp3`,
@@ -17,7 +17,12 @@ const e = "https://cuemath-circle.s3.ap-southeast-1.amazonaws.com/assets/sounds/
17
17
  [c.ACCURACY_IN]: `${e}/circle-meter-v1.wav`,
18
18
  [c.ACCURACY_OUT]: `${e}/circle-disappear-v1.wav`,
19
19
  [c.STREAK_IN]: `${e}/circle-streak-v1.wav`,
20
- [c.STREAK_OUT]: `${e}/circle-disappear-v1.wav`
20
+ [c.STREAK_OUT]: `${e}/circle-disappear-v1.wav`,
21
+ [c.ACCURACY_INTRO]: `${a}/accuracy-intro.mp3`,
22
+ [c.ACCURACY_TARGET]: `${a}/accuracy-target.mp3`,
23
+ [c.TIME_INTRO]: `${a}/timer-intro.mp3`,
24
+ [c.TIME_TARGET]: `${a}/timer-target.mp3`,
25
+ [c.METER_FILL]: `${a}/meter-fill.mp3`
21
26
  }, i = [
22
27
  c.SWIPE_04,
23
28
  c.SWIPE_02,
@@ -25,7 +30,7 @@ const e = "https://cuemath-circle.s3.ap-southeast-1.amazonaws.com/assets/sounds/
25
30
  c.SWIPE_01
26
31
  ];
27
32
  export {
28
- r as CircleSoundKeyMapper,
33
+ t as CircleSoundKeyMapper,
29
34
  i as SWIPE_SOUND_ORDER
30
35
  };
31
36
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../../src/features/circle-games/hooks/use-circle-sounds/constants.ts"],"sourcesContent":["import { CircleSoundKey } from './use-circle-sounds-enums';\n\nconst BASE_URL = 'https://cuemath-circle.s3.ap-southeast-1.amazonaws.com/assets/sounds/production';\n\nexport const CircleSoundKeyMapper = {\n [CircleSoundKey.BACKGROUND]: `${BASE_URL}/bg-sound.mp3`,\n [CircleSoundKey.BACKGROUND_RUSHHOUR]: `${BASE_URL}/circle-background-rushhour.mp3`,\n [CircleSoundKey.TUTORIAL]: `${BASE_URL}/bg-sound-tutorials.mp3`,\n [CircleSoundKey.SWIPE_01]: `${BASE_URL}/circle-swipe-1.wav`,\n [CircleSoundKey.SWIPE_02]: `${BASE_URL}/circle-swipe-2.wav`,\n [CircleSoundKey.SWIPE_03]: `${BASE_URL}/circle-swipe-3.wav`,\n [CircleSoundKey.SWIPE_04]: `${BASE_URL}/circle-swipe-4.wav`,\n [CircleSoundKey.SWIPE_DOWN]: `${BASE_URL}/circle-swipe-down-1.wav`,\n [CircleSoundKey.TOGGLE]: `${BASE_URL}/circle-button-v3.wav`,\n [CircleSoundKey.POINTS_AWARDED]: `${BASE_URL}/circle-points-v1.wav`,\n [CircleSoundKey.POINTS_ADDED]: `${BASE_URL}/circle-points-add-v1.wav`,\n [CircleSoundKey.GAME_CARD_CLICK]: `${BASE_URL}/circle-gamecard-button-v1.wav`,\n [CircleSoundKey.CLOCK_IN]: `${BASE_URL}/circle-meter-v1.wav`,\n [CircleSoundKey.CLOCK_OUT]: `${BASE_URL}/circle-disappear-v1.wav`,\n [CircleSoundKey.ACCURACY_IN]: `${BASE_URL}/circle-meter-v1.wav`,\n [CircleSoundKey.ACCURACY_OUT]: `${BASE_URL}/circle-disappear-v1.wav`,\n [CircleSoundKey.STREAK_IN]: `${BASE_URL}/circle-streak-v1.wav`,\n [CircleSoundKey.STREAK_OUT]: `${BASE_URL}/circle-disappear-v1.wav`,\n};\n\nexport const SWIPE_SOUND_ORDER = [\n CircleSoundKey.SWIPE_04,\n CircleSoundKey.SWIPE_02,\n CircleSoundKey.SWIPE_03,\n CircleSoundKey.SWIPE_01,\n];\n"],"names":["BASE_URL","CircleSoundKeyMapper","CircleSoundKey","SWIPE_SOUND_ORDER"],"mappings":";AAEA,MAAMA,IAAW,mFAEJC,IAAuB;AAAA,EAClC,CAACC,EAAe,UAAU,GAAG,GAAGF,CAAQ;AAAA,EACxC,CAACE,EAAe,mBAAmB,GAAG,GAAGF,CAAQ;AAAA,EACjD,CAACE,EAAe,QAAQ,GAAG,GAAGF,CAAQ;AAAA,EACtC,CAACE,EAAe,QAAQ,GAAG,GAAGF,CAAQ;AAAA,EACtC,CAACE,EAAe,QAAQ,GAAG,GAAGF,CAAQ;AAAA,EACtC,CAACE,EAAe,QAAQ,GAAG,GAAGF,CAAQ;AAAA,EACtC,CAACE,EAAe,QAAQ,GAAG,GAAGF,CAAQ;AAAA,EACtC,CAACE,EAAe,UAAU,GAAG,GAAGF,CAAQ;AAAA,EACxC,CAACE,EAAe,MAAM,GAAG,GAAGF,CAAQ;AAAA,EACpC,CAACE,EAAe,cAAc,GAAG,GAAGF,CAAQ;AAAA,EAC5C,CAACE,EAAe,YAAY,GAAG,GAAGF,CAAQ;AAAA,EAC1C,CAACE,EAAe,eAAe,GAAG,GAAGF,CAAQ;AAAA,EAC7C,CAACE,EAAe,QAAQ,GAAG,GAAGF,CAAQ;AAAA,EACtC,CAACE,EAAe,SAAS,GAAG,GAAGF,CAAQ;AAAA,EACvC,CAACE,EAAe,WAAW,GAAG,GAAGF,CAAQ;AAAA,EACzC,CAACE,EAAe,YAAY,GAAG,GAAGF,CAAQ;AAAA,EAC1C,CAACE,EAAe,SAAS,GAAG,GAAGF,CAAQ;AAAA,EACvC,CAACE,EAAe,UAAU,GAAG,GAAGF,CAAQ;AAC1C,GAEaG,IAAoB;AAAA,EAC/BD,EAAe;AAAA,EACfA,EAAe;AAAA,EACfA,EAAe;AAAA,EACfA,EAAe;AACjB;"}
1
+ {"version":3,"file":"constants.js","sources":["../../../../../src/features/circle-games/hooks/use-circle-sounds/constants.ts"],"sourcesContent":["import { CircleSoundKey } from './use-circle-sounds-enums';\n\nconst BASE_URL = 'https://cuemath-circle.s3.ap-southeast-1.amazonaws.com/assets/sounds/production';\n\nconst STATIC_BASE_URL = 'https://static.cuemath.com/static/sounds';\n\nexport const CircleSoundKeyMapper = {\n [CircleSoundKey.BACKGROUND]: `${BASE_URL}/bg-sound.mp3`,\n [CircleSoundKey.BACKGROUND_RUSHHOUR]: `${BASE_URL}/circle-background-rushhour.mp3`,\n [CircleSoundKey.TUTORIAL]: `${BASE_URL}/bg-sound-tutorials.mp3`,\n [CircleSoundKey.SWIPE_01]: `${BASE_URL}/circle-swipe-1.wav`,\n [CircleSoundKey.SWIPE_02]: `${BASE_URL}/circle-swipe-2.wav`,\n [CircleSoundKey.SWIPE_03]: `${BASE_URL}/circle-swipe-3.wav`,\n [CircleSoundKey.SWIPE_04]: `${BASE_URL}/circle-swipe-4.wav`,\n [CircleSoundKey.SWIPE_DOWN]: `${BASE_URL}/circle-swipe-down-1.wav`,\n [CircleSoundKey.TOGGLE]: `${BASE_URL}/circle-button-v3.wav`,\n [CircleSoundKey.POINTS_AWARDED]: `${BASE_URL}/circle-points-v1.wav`,\n [CircleSoundKey.POINTS_ADDED]: `${BASE_URL}/circle-points-add-v1.wav`,\n [CircleSoundKey.GAME_CARD_CLICK]: `${BASE_URL}/circle-gamecard-button-v1.wav`,\n [CircleSoundKey.CLOCK_IN]: `${BASE_URL}/circle-meter-v1.wav`,\n [CircleSoundKey.CLOCK_OUT]: `${BASE_URL}/circle-disappear-v1.wav`,\n [CircleSoundKey.ACCURACY_IN]: `${BASE_URL}/circle-meter-v1.wav`,\n [CircleSoundKey.ACCURACY_OUT]: `${BASE_URL}/circle-disappear-v1.wav`,\n [CircleSoundKey.STREAK_IN]: `${BASE_URL}/circle-streak-v1.wav`,\n [CircleSoundKey.STREAK_OUT]: `${BASE_URL}/circle-disappear-v1.wav`,\n [CircleSoundKey.ACCURACY_INTRO]: `${STATIC_BASE_URL}/accuracy-intro.mp3`,\n [CircleSoundKey.ACCURACY_TARGET]: `${STATIC_BASE_URL}/accuracy-target.mp3`,\n [CircleSoundKey.TIME_INTRO]: `${STATIC_BASE_URL}/timer-intro.mp3`,\n [CircleSoundKey.TIME_TARGET]: `${STATIC_BASE_URL}/timer-target.mp3`,\n [CircleSoundKey.METER_FILL]: `${STATIC_BASE_URL}/meter-fill.mp3`,\n};\n\nexport const SWIPE_SOUND_ORDER = [\n CircleSoundKey.SWIPE_04,\n CircleSoundKey.SWIPE_02,\n CircleSoundKey.SWIPE_03,\n CircleSoundKey.SWIPE_01,\n];\n"],"names":["BASE_URL","STATIC_BASE_URL","CircleSoundKeyMapper","CircleSoundKey","SWIPE_SOUND_ORDER"],"mappings":";AAEA,MAAMA,IAAW,mFAEXC,IAAkB,4CAEXC,IAAuB;AAAA,EAClC,CAACC,EAAe,UAAU,GAAG,GAAGH,CAAQ;AAAA,EACxC,CAACG,EAAe,mBAAmB,GAAG,GAAGH,CAAQ;AAAA,EACjD,CAACG,EAAe,QAAQ,GAAG,GAAGH,CAAQ;AAAA,EACtC,CAACG,EAAe,QAAQ,GAAG,GAAGH,CAAQ;AAAA,EACtC,CAACG,EAAe,QAAQ,GAAG,GAAGH,CAAQ;AAAA,EACtC,CAACG,EAAe,QAAQ,GAAG,GAAGH,CAAQ;AAAA,EACtC,CAACG,EAAe,QAAQ,GAAG,GAAGH,CAAQ;AAAA,EACtC,CAACG,EAAe,UAAU,GAAG,GAAGH,CAAQ;AAAA,EACxC,CAACG,EAAe,MAAM,GAAG,GAAGH,CAAQ;AAAA,EACpC,CAACG,EAAe,cAAc,GAAG,GAAGH,CAAQ;AAAA,EAC5C,CAACG,EAAe,YAAY,GAAG,GAAGH,CAAQ;AAAA,EAC1C,CAACG,EAAe,eAAe,GAAG,GAAGH,CAAQ;AAAA,EAC7C,CAACG,EAAe,QAAQ,GAAG,GAAGH,CAAQ;AAAA,EACtC,CAACG,EAAe,SAAS,GAAG,GAAGH,CAAQ;AAAA,EACvC,CAACG,EAAe,WAAW,GAAG,GAAGH,CAAQ;AAAA,EACzC,CAACG,EAAe,YAAY,GAAG,GAAGH,CAAQ;AAAA,EAC1C,CAACG,EAAe,SAAS,GAAG,GAAGH,CAAQ;AAAA,EACvC,CAACG,EAAe,UAAU,GAAG,GAAGH,CAAQ;AAAA,EACxC,CAACG,EAAe,cAAc,GAAG,GAAGF,CAAe;AAAA,EACnD,CAACE,EAAe,eAAe,GAAG,GAAGF,CAAe;AAAA,EACpD,CAACE,EAAe,UAAU,GAAG,GAAGF,CAAe;AAAA,EAC/C,CAACE,EAAe,WAAW,GAAG,GAAGF,CAAe;AAAA,EAChD,CAACE,EAAe,UAAU,GAAG,GAAGF,CAAe;AACjD,GAEaG,IAAoB;AAAA,EAC/BD,EAAe;AAAA,EACfA,EAAe;AAAA,EACfA,EAAe;AAAA,EACfA,EAAe;AACjB;"}
@@ -1,5 +1,5 @@
1
- var A = /* @__PURE__ */ ((_) => (_.BACKGROUND = "background", _.BACKGROUND_RUSHHOUR = "background_rushhour", _.TUTORIAL = "tutorial", _.SWIPE_01 = "swipe-1", _.SWIPE_02 = "swipe-2", _.SWIPE_03 = "swipe-3", _.SWIPE_04 = "swipe-4", _.SWIPE_DOWN = "swipe-down", _.TOGGLE = "toggle", _.POINTS_AWARDED = "pointsAwarded", _.POINTS_ADDED = "pointsAdded", _.GAME_CARD_CLICK = "gameCardClick", _.CLOCK_IN = "clock-in", _.CLOCK_OUT = "clock-out", _.ACCURACY_IN = "accuracy-in", _.ACCURACY_OUT = "accuracy-out", _.STREAK_IN = "streak-in", _.STREAK_OUT = "streak-out", _))(A || {});
1
+ var _ = /* @__PURE__ */ ((A) => (A.BACKGROUND = "background", A.BACKGROUND_RUSHHOUR = "background_rushhour", A.TUTORIAL = "tutorial", A.SWIPE_01 = "swipe-1", A.SWIPE_02 = "swipe-2", A.SWIPE_03 = "swipe-3", A.SWIPE_04 = "swipe-4", A.SWIPE_DOWN = "swipe-down", A.TOGGLE = "toggle", A.POINTS_AWARDED = "pointsAwarded", A.POINTS_ADDED = "pointsAdded", A.GAME_CARD_CLICK = "gameCardClick", A.CLOCK_IN = "clock-in", A.CLOCK_OUT = "clock-out", A.ACCURACY_IN = "accuracy-in", A.ACCURACY_OUT = "accuracy-out", A.STREAK_IN = "streak-in", A.STREAK_OUT = "streak-out", A.ACCURACY_INTRO = "accuracy-intro", A.ACCURACY_TARGET = "accuracy-target", A.TIME_INTRO = "time-intro", A.TIME_TARGET = "time-target", A.METER_FILL = "meter-fill", A))(_ || {});
2
2
  export {
3
- A as CircleSoundKey
3
+ _ as CircleSoundKey
4
4
  };
5
5
  //# sourceMappingURL=use-circle-sounds-enums.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-circle-sounds-enums.js","sources":["../../../../../src/features/circle-games/hooks/use-circle-sounds/use-circle-sounds-enums.ts"],"sourcesContent":["export enum CircleSoundKey {\n BACKGROUND = 'background',\n BACKGROUND_RUSHHOUR = 'background_rushhour',\n TUTORIAL = 'tutorial',\n SWIPE_01 = 'swipe-1',\n SWIPE_02 = 'swipe-2',\n SWIPE_03 = 'swipe-3',\n SWIPE_04 = 'swipe-4',\n SWIPE_DOWN = 'swipe-down',\n TOGGLE = 'toggle',\n POINTS_AWARDED = 'pointsAwarded',\n POINTS_ADDED = 'pointsAdded',\n GAME_CARD_CLICK = 'gameCardClick',\n CLOCK_IN = 'clock-in',\n CLOCK_OUT = 'clock-out',\n ACCURACY_IN = 'accuracy-in',\n ACCURACY_OUT = 'accuracy-out',\n STREAK_IN = 'streak-in',\n STREAK_OUT = 'streak-out',\n}\n"],"names":["CircleSoundKey"],"mappings":"AAAY,IAAAA,sBAAAA,OACVA,EAAA,aAAa,cACbA,EAAA,sBAAsB,uBACtBA,EAAA,WAAW,YACXA,EAAA,WAAW,WACXA,EAAA,WAAW,WACXA,EAAA,WAAW,WACXA,EAAA,WAAW,WACXA,EAAA,aAAa,cACbA,EAAA,SAAS,UACTA,EAAA,iBAAiB,iBACjBA,EAAA,eAAe,eACfA,EAAA,kBAAkB,iBAClBA,EAAA,WAAW,YACXA,EAAA,YAAY,aACZA,EAAA,cAAc,eACdA,EAAA,eAAe,gBACfA,EAAA,YAAY,aACZA,EAAA,aAAa,cAlBHA,IAAAA,KAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"use-circle-sounds-enums.js","sources":["../../../../../src/features/circle-games/hooks/use-circle-sounds/use-circle-sounds-enums.ts"],"sourcesContent":["export enum CircleSoundKey {\n BACKGROUND = 'background',\n BACKGROUND_RUSHHOUR = 'background_rushhour',\n TUTORIAL = 'tutorial',\n SWIPE_01 = 'swipe-1',\n SWIPE_02 = 'swipe-2',\n SWIPE_03 = 'swipe-3',\n SWIPE_04 = 'swipe-4',\n SWIPE_DOWN = 'swipe-down',\n TOGGLE = 'toggle',\n POINTS_AWARDED = 'pointsAwarded',\n POINTS_ADDED = 'pointsAdded',\n GAME_CARD_CLICK = 'gameCardClick',\n CLOCK_IN = 'clock-in',\n CLOCK_OUT = 'clock-out',\n ACCURACY_IN = 'accuracy-in',\n ACCURACY_OUT = 'accuracy-out',\n STREAK_IN = 'streak-in',\n STREAK_OUT = 'streak-out',\n ACCURACY_INTRO = 'accuracy-intro',\n ACCURACY_TARGET = 'accuracy-target',\n TIME_INTRO = 'time-intro',\n TIME_TARGET = 'time-target',\n METER_FILL = 'meter-fill',\n}\n"],"names":["CircleSoundKey"],"mappings":"AAAY,IAAAA,sBAAAA,OACVA,EAAA,aAAa,cACbA,EAAA,sBAAsB,uBACtBA,EAAA,WAAW,YACXA,EAAA,WAAW,WACXA,EAAA,WAAW,WACXA,EAAA,WAAW,WACXA,EAAA,WAAW,WACXA,EAAA,aAAa,cACbA,EAAA,SAAS,UACTA,EAAA,iBAAiB,iBACjBA,EAAA,eAAe,eACfA,EAAA,kBAAkB,iBAClBA,EAAA,WAAW,YACXA,EAAA,YAAY,aACZA,EAAA,cAAc,eACdA,EAAA,eAAe,gBACfA,EAAA,YAAY,aACZA,EAAA,aAAa,cACbA,EAAA,iBAAiB,kBACjBA,EAAA,kBAAkB,mBAClBA,EAAA,aAAa,cACbA,EAAA,cAAc,eACdA,EAAA,aAAa,cAvBHA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -1,7 +1,7 @@
1
1
  import { useCallback as a } from "react";
2
- import { CircleSoundKeyMapper as E, SWIPE_SOUND_ORDER as S } from "./constants.js";
2
+ import { CircleSoundKeyMapper as A, SWIPE_SOUND_ORDER as i } from "./constants.js";
3
3
  import { CircleSoundKey as l } from "./use-circle-sounds-enums.js";
4
- let i = 0;
4
+ let C = 0;
5
5
  const r = {
6
6
  [l.BACKGROUND]: null,
7
7
  [l.BACKGROUND_RUSHHOUR]: null,
@@ -20,24 +20,29 @@ const r = {
20
20
  [l.ACCURACY_IN]: null,
21
21
  [l.ACCURACY_OUT]: null,
22
22
  [l.STREAK_IN]: null,
23
- [l.STREAK_OUT]: null
24
- }, p = {}, f = () => {
23
+ [l.STREAK_OUT]: null,
24
+ [l.ACCURACY_INTRO]: null,
25
+ [l.ACCURACY_TARGET]: null,
26
+ [l.TIME_INTRO]: null,
27
+ [l.TIME_TARGET]: null,
28
+ [l.METER_FILL]: null
29
+ }, I = {}, O = () => {
25
30
  const e = a((n) => {
26
31
  if (!r[n]) {
27
- const t = new Audio(E[n]);
32
+ const t = new Audio(A[n]);
28
33
  r[n] = t;
29
34
  }
30
- }, []), d = a(() => {
35
+ }, []), p = a(() => {
31
36
  var t;
32
- S.forEach((o) => {
37
+ i.forEach((o) => {
33
38
  e(o);
34
39
  });
35
- const n = S[i] || l.SWIPE_01;
36
- i < S.length - 1 ? i++ : i = 0, (t = r[n]) == null || t.play();
37
- }, [e]), I = a(() => {
40
+ const n = i[C] || l.SWIPE_01;
41
+ C < i.length - 1 ? C++ : C = 0, (t = r[n]) == null || t.play();
42
+ }, [e]), _ = a(() => {
38
43
  var t;
39
44
  return e(l.TOGGLE), (t = r[l.TOGGLE]) == null ? void 0 : t.play();
40
- }, [e]), C = a(
45
+ }, [e]), E = a(
41
46
  (n, t = !0, o = !1) => {
42
47
  e(n);
43
48
  const u = r[n];
@@ -45,22 +50,22 @@ const r = {
45
50
  if (u.loop = o, t) {
46
51
  u.volume = 1;
47
52
  const s = u.play();
48
- p[n] = s;
53
+ I[n] = s;
49
54
  return;
50
55
  }
51
56
  u.volume = 0;
52
57
  const c = u.play();
53
- return p[n] = c, setInterval(() => {
58
+ return I[n] = c, setInterval(() => {
54
59
  if (!u) return;
55
60
  const s = 0;
56
61
  u.volume = s + 0.1;
57
62
  }, 100), u;
58
63
  },
59
64
  [e]
60
- ), _ = a((n, t = !0) => {
65
+ ), S = a((n, t = !0) => {
61
66
  var u;
62
67
  const o = r[n];
63
- p[n] !== void 0 && ((u = p[n]) == null || u.then(() => {
68
+ I[n] !== void 0 && ((u = I[n]) == null || u.then(() => {
64
69
  if (t) {
65
70
  o == null || o.pause();
66
71
  return;
@@ -74,10 +79,10 @@ const r = {
74
79
  console.log("sound not playing", c);
75
80
  }));
76
81
  }, []);
77
- return { playSwipSound: d, play: C, stop: _, playButtonSound: I };
82
+ return { playSwipSound: p, play: E, stop: S, playButtonSound: _ };
78
83
  };
79
84
  export {
80
85
  r as soundMapper,
81
- f as useCircleSounds
86
+ O as useCircleSounds
82
87
  };
83
88
  //# sourceMappingURL=use-circle-sounds.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-circle-sounds.js","sources":["../../../../../src/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { CircleSoundKeyMapper, SWIPE_SOUND_ORDER } from './constants';\nimport { CircleSoundKey } from './use-circle-sounds-enums';\n\nlet swipeSoundIndex = 0;\n\nexport const soundMapper: Record<keyof typeof CircleSoundKeyMapper, null | HTMLAudioElement> = {\n [CircleSoundKey.BACKGROUND]: null,\n [CircleSoundKey.BACKGROUND_RUSHHOUR]: null,\n [CircleSoundKey.TUTORIAL]: null,\n [CircleSoundKey.SWIPE_01]: null,\n [CircleSoundKey.SWIPE_02]: null,\n [CircleSoundKey.SWIPE_03]: null,\n [CircleSoundKey.SWIPE_04]: null,\n [CircleSoundKey.SWIPE_DOWN]: null,\n [CircleSoundKey.TOGGLE]: null,\n [CircleSoundKey.POINTS_AWARDED]: null,\n [CircleSoundKey.POINTS_ADDED]: null,\n [CircleSoundKey.GAME_CARD_CLICK]: null,\n [CircleSoundKey.CLOCK_IN]: null,\n [CircleSoundKey.CLOCK_OUT]: null,\n [CircleSoundKey.ACCURACY_IN]: null,\n [CircleSoundKey.ACCURACY_OUT]: null,\n [CircleSoundKey.STREAK_IN]: null,\n [CircleSoundKey.STREAK_OUT]: null,\n};\n\nconst soundInstancePromise: Partial<Record<keyof typeof CircleSoundKeyMapper, Promise<void>>> = {};\n\nexport const useCircleSounds = () => {\n const loadSound = useCallback((key: CircleSoundKey) => {\n if (!soundMapper[key]) {\n const loadedSound = new Audio(CircleSoundKeyMapper[key]);\n\n soundMapper[key] = loadedSound;\n }\n }, []);\n\n const playSwipSound = useCallback(() => {\n SWIPE_SOUND_ORDER.forEach(key => {\n loadSound(key);\n });\n\n const key = SWIPE_SOUND_ORDER[swipeSoundIndex] || CircleSoundKey.SWIPE_01;\n\n if (swipeSoundIndex < SWIPE_SOUND_ORDER.length - 1) {\n swipeSoundIndex++;\n } else {\n swipeSoundIndex = 0;\n }\n soundMapper[key]?.play();\n }, [loadSound]);\n\n const playButtonSound = useCallback(() => {\n loadSound(CircleSoundKey.TOGGLE);\n const sound = soundMapper[CircleSoundKey.TOGGLE]?.play();\n\n return sound;\n }, [loadSound]);\n\n const play = useCallback(\n (key: CircleSoundKey, immediately: boolean = true, loop = false) => {\n loadSound(key);\n const soundInstance = soundMapper[key];\n\n if (!soundInstance) return;\n\n soundInstance.loop = loop;\n if (immediately) {\n soundInstance.volume = 1;\n const promise = soundInstance.play();\n\n soundInstancePromise[key] = promise;\n\n return;\n }\n\n soundInstance.volume = 0;\n const promise = soundInstance.play();\n\n soundInstancePromise[key] = promise;\n\n const intervalId = setInterval(() => {\n if (!soundInstance) return;\n\n const vol = 0;\n\n if (vol < 1) {\n soundInstance.volume = vol + 0.1;\n } else {\n clearInterval(intervalId);\n }\n }, 100);\n\n return soundInstance;\n },\n [loadSound],\n );\n\n const stop = useCallback((key: CircleSoundKey, immediately: boolean = true) => {\n const soundInstance = soundMapper[key];\n\n // check if the sound is playing as the play() return a promise\n if (soundInstancePromise[key] !== undefined) {\n soundInstancePromise[key]\n ?.then(() => {\n if (immediately) {\n soundInstance?.pause();\n\n return;\n }\n\n const intervalId = setInterval(() => {\n if (!soundInstance) return;\n\n const vol = soundInstance.volume || 0;\n\n if (vol - 0.1 <= 0) {\n soundInstance.volume = 0;\n soundInstance.pause();\n clearInterval(intervalId);\n } else {\n soundInstance.volume = vol - 0.1;\n }\n }, 100);\n })\n .catch(err => {\n // eslint-disable-next-line no-console\n console.log('sound not playing', err);\n });\n }\n }, []);\n\n return { playSwipSound, play, stop, playButtonSound };\n};\n"],"names":["swipeSoundIndex","soundMapper","CircleSoundKey","soundInstancePromise","useCircleSounds","loadSound","useCallback","key","loadedSound","CircleSoundKeyMapper","playSwipSound","SWIPE_SOUND_ORDER","_a","playButtonSound","play","immediately","loop","soundInstance","promise","vol","stop","intervalId","err"],"mappings":"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"}
1
+ {"version":3,"file":"use-circle-sounds.js","sources":["../../../../../src/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { CircleSoundKeyMapper, SWIPE_SOUND_ORDER } from './constants';\nimport { CircleSoundKey } from './use-circle-sounds-enums';\n\nlet swipeSoundIndex = 0;\n\nexport const soundMapper: Record<keyof typeof CircleSoundKeyMapper, null | HTMLAudioElement> = {\n [CircleSoundKey.BACKGROUND]: null,\n [CircleSoundKey.BACKGROUND_RUSHHOUR]: null,\n [CircleSoundKey.TUTORIAL]: null,\n [CircleSoundKey.SWIPE_01]: null,\n [CircleSoundKey.SWIPE_02]: null,\n [CircleSoundKey.SWIPE_03]: null,\n [CircleSoundKey.SWIPE_04]: null,\n [CircleSoundKey.SWIPE_DOWN]: null,\n [CircleSoundKey.TOGGLE]: null,\n [CircleSoundKey.POINTS_AWARDED]: null,\n [CircleSoundKey.POINTS_ADDED]: null,\n [CircleSoundKey.GAME_CARD_CLICK]: null,\n [CircleSoundKey.CLOCK_IN]: null,\n [CircleSoundKey.CLOCK_OUT]: null,\n [CircleSoundKey.ACCURACY_IN]: null,\n [CircleSoundKey.ACCURACY_OUT]: null,\n [CircleSoundKey.STREAK_IN]: null,\n [CircleSoundKey.STREAK_OUT]: null,\n [CircleSoundKey.ACCURACY_INTRO]: null,\n [CircleSoundKey.ACCURACY_TARGET]: null,\n [CircleSoundKey.TIME_INTRO]: null,\n [CircleSoundKey.TIME_TARGET]: null,\n [CircleSoundKey.METER_FILL]: null,\n};\n\nconst soundInstancePromise: Partial<Record<keyof typeof CircleSoundKeyMapper, Promise<void>>> = {};\n\nexport const useCircleSounds = () => {\n const loadSound = useCallback((key: CircleSoundKey) => {\n if (!soundMapper[key]) {\n const loadedSound = new Audio(CircleSoundKeyMapper[key]);\n\n soundMapper[key] = loadedSound;\n }\n }, []);\n\n const playSwipSound = useCallback(() => {\n SWIPE_SOUND_ORDER.forEach(key => {\n loadSound(key);\n });\n\n const key = SWIPE_SOUND_ORDER[swipeSoundIndex] || CircleSoundKey.SWIPE_01;\n\n if (swipeSoundIndex < SWIPE_SOUND_ORDER.length - 1) {\n swipeSoundIndex++;\n } else {\n swipeSoundIndex = 0;\n }\n soundMapper[key]?.play();\n }, [loadSound]);\n\n const playButtonSound = useCallback(() => {\n loadSound(CircleSoundKey.TOGGLE);\n const sound = soundMapper[CircleSoundKey.TOGGLE]?.play();\n\n return sound;\n }, [loadSound]);\n\n const play = useCallback(\n (key: CircleSoundKey, immediately: boolean = true, loop = false) => {\n loadSound(key);\n const soundInstance = soundMapper[key];\n\n if (!soundInstance) return;\n\n soundInstance.loop = loop;\n if (immediately) {\n soundInstance.volume = 1;\n const promise = soundInstance.play();\n\n soundInstancePromise[key] = promise;\n\n return;\n }\n\n soundInstance.volume = 0;\n const promise = soundInstance.play();\n\n soundInstancePromise[key] = promise;\n\n const intervalId = setInterval(() => {\n if (!soundInstance) return;\n\n const vol = 0;\n\n if (vol < 1) {\n soundInstance.volume = vol + 0.1;\n } else {\n clearInterval(intervalId);\n }\n }, 100);\n\n return soundInstance;\n },\n [loadSound],\n );\n\n const stop = useCallback((key: CircleSoundKey, immediately: boolean = true) => {\n const soundInstance = soundMapper[key];\n\n // check if the sound is playing as the play() return a promise\n if (soundInstancePromise[key] !== undefined) {\n soundInstancePromise[key]\n ?.then(() => {\n if (immediately) {\n soundInstance?.pause();\n\n return;\n }\n\n const intervalId = setInterval(() => {\n if (!soundInstance) return;\n\n const vol = soundInstance.volume || 0;\n\n if (vol - 0.1 <= 0) {\n soundInstance.volume = 0;\n soundInstance.pause();\n clearInterval(intervalId);\n } else {\n soundInstance.volume = vol - 0.1;\n }\n }, 100);\n })\n .catch(err => {\n // eslint-disable-next-line no-console\n console.log('sound not playing', err);\n });\n }\n }, []);\n\n return { playSwipSound, play, stop, playButtonSound };\n};\n"],"names":["swipeSoundIndex","soundMapper","CircleSoundKey","soundInstancePromise","useCircleSounds","loadSound","useCallback","key","loadedSound","CircleSoundKeyMapper","playSwipSound","SWIPE_SOUND_ORDER","_a","playButtonSound","play","immediately","loop","soundInstance","promise","vol","stop","intervalId","err"],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import i from "styled-components";
2
+ import { RAINBOW_COLOR_ANIMATION_DURATION as r } from "../../constants.js";
3
+ import { rainbowColorAnimation as n } from "../../helper.js";
4
+ import { ARC_Z_INDEX as s } from "./constants.js";
5
+ const p = i.svg`
6
+ position: absolute;
7
+ z-index: ${s};
8
+ `, A = i.path`
9
+ stroke: ${({ theme: o, stroke: t }) => o.colors[t]};
10
+ animation: ${({ $playRainbowColors: o }) => o ? n : "undefined"}
11
+ ${r}s ease infinite forwards;
12
+ `;
13
+ export {
14
+ A as Path,
15
+ p as Svg
16
+ };
17
+ //# sourceMappingURL=animated-arc-styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animated-arc-styled.js","sources":["../../../../../../src/features/post-game-stats/digital-meter/comp/animated-arc/animated-arc-styled.tsx"],"sourcesContent":["import type { TColorNames } from '../../../../ui/types';\n\nimport styled from 'styled-components';\n\nimport { RAINBOW_COLOR_ANIMATION_DURATION } from '../../constants';\nimport { rainbowColorAnimation } from '../../helper';\nimport { ARC_Z_INDEX } from './constants';\n\nexport const Svg = styled.svg`\n position: absolute;\n z-index: ${ARC_Z_INDEX};\n`;\n\nexport const Path = styled.path<{ stroke: TColorNames; $playRainbowColors: boolean }>`\n stroke: ${({ theme, stroke }) => theme.colors[stroke]};\n animation: ${({ $playRainbowColors }) =>\n $playRainbowColors ? rainbowColorAnimation : 'undefined'}\n ${RAINBOW_COLOR_ANIMATION_DURATION}s ease infinite forwards;\n`;\n"],"names":["Svg","styled","ARC_Z_INDEX","Path","theme","stroke","$playRainbowColors","rainbowColorAnimation","RAINBOW_COLOR_ANIMATION_DURATION"],"mappings":";;;;AAQO,MAAMA,IAAMC,EAAO;AAAA;AAAA,aAEbC,CAAW;AAAA,GAGXC,IAAOF,EAAO;AAAA,YACf,CAAC,EAAE,OAAAG,GAAO,QAAAC,EAAA,MAAaD,EAAM,OAAOC,CAAM,CAAC;AAAA,eACxC,CAAC,EAAE,oBAAAC,EAAA,MACZA,IAAqBC,IAAwB,WAAW;AAAA,MACxDC,CAAgC;AAAA;"}
@@ -0,0 +1,50 @@
1
+ import { jsx as y } from "react/jsx-runtime";
2
+ import { useRef as A, useMemo as u, useLayoutEffect as R } from "react";
3
+ import { describeArc as k } from "../../helper.js";
4
+ import { Svg as w, Path as D } from "./animated-arc-styled.js";
5
+ import { ADJUSTED_START_ANGLE as L } from "./constants.js";
6
+ const B = ({
7
+ radius: e,
8
+ strokeWidth: r,
9
+ color: $,
10
+ targetAngle: i,
11
+ startAngle: a = 0,
12
+ duration: c = 2,
13
+ mode: o = "draw",
14
+ delay: s = 0,
15
+ playRainbowColors: g = !1
16
+ }) => {
17
+ const f = A(null), l = u(() => -L + a, [a]), n = e, m = e - r / 2, h = u(
18
+ () => k(n, n, m, l, i),
19
+ [i, l, m, n]
20
+ );
21
+ return R(() => {
22
+ const t = f.current;
23
+ if (t) {
24
+ if (o === "draw") {
25
+ const p = t.getTotalLength();
26
+ t.style.strokeDasharray = `${p}`, t.style.strokeDashoffset = `${p}`, t.getBoundingClientRect(), requestAnimationFrame(() => {
27
+ t.style.transition = `stroke-dashoffset ${c}s linear ${s}s`, t.style.strokeDashoffset = "0";
28
+ });
29
+ }
30
+ o === "fade" && (t.style.opacity = "0", t.getBoundingClientRect(), requestAnimationFrame(() => {
31
+ t.style.transition = `opacity 0s ease-in-out ${s}s`, t.style.opacity = "1";
32
+ }));
33
+ }
34
+ }, [h, o, c, s]), /* @__PURE__ */ y(w, { width: 2 * e, height: 2 * e, viewBox: `0 0 ${2 * e} ${2 * e}`, children: /* @__PURE__ */ y(
35
+ D,
36
+ {
37
+ ref: f,
38
+ d: h,
39
+ fill: "none",
40
+ stroke: $,
41
+ strokeWidth: r,
42
+ strokeLinecap: "butt",
43
+ $playRainbowColors: g
44
+ }
45
+ ) });
46
+ };
47
+ export {
48
+ B as AnimatedArc
49
+ };
50
+ //# sourceMappingURL=animated-arc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animated-arc.js","sources":["../../../../../../src/features/post-game-stats/digital-meter/comp/animated-arc/animated-arc.tsx"],"sourcesContent":["import type { IAnimatedArcProps } from './animated-arc-types';\n\nimport React, { useRef, useLayoutEffect, useMemo } from 'react';\n\nimport { describeArc } from '../../helper';\nimport * as Styled from './animated-arc-styled';\nimport { ADJUSTED_START_ANGLE } from './constants';\n\nexport const AnimatedArc: React.FC<IAnimatedArcProps> = ({\n radius,\n strokeWidth,\n color,\n targetAngle,\n startAngle = 0,\n duration = 2,\n mode = 'draw',\n delay = 0,\n playRainbowColors = false,\n}) => {\n const pathRef = useRef<SVGPathElement>(null);\n\n const adjustedStartAngle = useMemo(() => -ADJUSTED_START_ANGLE + startAngle, [startAngle]);\n const center = radius;\n const arcRadius = radius - strokeWidth / 2; // draw arc inside the visible bounds\n const arcPath = useMemo(\n () => describeArc(center, center, arcRadius, adjustedStartAngle, targetAngle),\n [targetAngle, adjustedStartAngle, arcRadius, center],\n );\n\n useLayoutEffect(() => {\n const path = pathRef.current;\n\n if (!path) return;\n\n if (mode === 'draw') {\n const length = path.getTotalLength();\n\n path.style.strokeDasharray = `${length}`;\n path.style.strokeDashoffset = `${length}`;\n path.getBoundingClientRect();\n\n requestAnimationFrame(() => {\n path.style.transition = `stroke-dashoffset ${duration}s linear ${delay}s`;\n path.style.strokeDashoffset = '0';\n });\n }\n\n if (mode === 'fade') {\n path.style.opacity = '0';\n path.getBoundingClientRect();\n\n requestAnimationFrame(() => {\n path.style.transition = `opacity 0s ease-in-out ${delay}s`;\n path.style.opacity = '1';\n });\n }\n }, [arcPath, mode, duration, delay]);\n\n return (\n <Styled.Svg width={2 * radius} height={2 * radius} viewBox={`0 0 ${2 * radius} ${2 * radius}`}>\n <Styled.Path\n ref={pathRef}\n d={arcPath}\n fill=\"none\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"butt\"\n $playRainbowColors={playRainbowColors}\n />\n </Styled.Svg>\n );\n};\n"],"names":["AnimatedArc","radius","strokeWidth","color","targetAngle","startAngle","duration","mode","delay","playRainbowColors","pathRef","useRef","adjustedStartAngle","useMemo","ADJUSTED_START_ANGLE","center","arcRadius","arcPath","describeArc","useLayoutEffect","path","length","Styled.Svg","jsx","Styled.Path"],"mappings":";;;;;AAQO,MAAMA,IAA2C,CAAC;AAAA,EACvD,QAAAC;AAAA,EACA,aAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,UAAAC,IAAW;AAAA,EACX,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,mBAAAC,IAAoB;AACtB,MAAM;AACE,QAAAC,IAAUC,EAAuB,IAAI,GAErCC,IAAqBC,EAAQ,MAAM,CAACC,IAAuBT,GAAY,CAACA,CAAU,CAAC,GACnFU,IAASd,GACTe,IAAYf,IAASC,IAAc,GACnCe,IAAUJ;AAAA,IACd,MAAMK,EAAYH,GAAQA,GAAQC,GAAWJ,GAAoBR,CAAW;AAAA,IAC5E,CAACA,GAAaQ,GAAoBI,GAAWD,CAAM;AAAA,EAAA;AAGrD,SAAAI,EAAgB,MAAM;AACpB,UAAMC,IAAOV,EAAQ;AAErB,QAAKU,GAEL;AAAA,UAAIb,MAAS,QAAQ;AACb,cAAAc,IAASD,EAAK;AAEf,QAAAA,EAAA,MAAM,kBAAkB,GAAGC,CAAM,IACjCD,EAAA,MAAM,mBAAmB,GAAGC,CAAM,IACvCD,EAAK,sBAAsB,GAE3B,sBAAsB,MAAM;AAC1B,UAAAA,EAAK,MAAM,aAAa,qBAAqBd,CAAQ,YAAYE,CAAK,KACtEY,EAAK,MAAM,mBAAmB;AAAA,QAAA,CAC/B;AAAA,MACH;AAEA,MAAIb,MAAS,WACXa,EAAK,MAAM,UAAU,KACrBA,EAAK,sBAAsB,GAE3B,sBAAsB,MAAM;AACrB,QAAAA,EAAA,MAAM,aAAa,0BAA0BZ,CAAK,KACvDY,EAAK,MAAM,UAAU;AAAA,MAAA,CACtB;AAAA;AAAA,KAEF,CAACH,GAASV,GAAMD,GAAUE,CAAK,CAAC,qBAGhCc,GAAA,EAAW,OAAO,IAAIrB,GAAQ,QAAQ,IAAIA,GAAQ,SAAS,OAAO,IAAIA,CAAM,IAAI,IAAIA,CAAM,IACzF,UAAA,gBAAAsB;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,KAAKd;AAAA,MACL,GAAGO;AAAA,MACH,MAAK;AAAA,MACL,QAAQd;AAAA,MACR,aAAAD;AAAA,MACA,eAAc;AAAA,MACd,oBAAoBO;AAAA,IAAA;AAAA,EAExB,EAAA,CAAA;AAEJ;"}
@@ -0,0 +1,6 @@
1
+ const A = 1, _ = 150;
2
+ export {
3
+ _ as ADJUSTED_START_ANGLE,
4
+ A as ARC_Z_INDEX
5
+ };
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../../../../src/features/post-game-stats/digital-meter/comp/animated-arc/constants.ts"],"sourcesContent":["export const ARC_Z_INDEX = 1;\n\nexport const ADJUSTED_START_ANGLE = 150;\n"],"names":["ARC_Z_INDEX","ADJUSTED_START_ANGLE"],"mappings":"AAAO,MAAMA,IAAc,GAEdC,IAAuB;"}
@@ -0,0 +1,18 @@
1
+ import { GAME_LAUNCHER_SIZE as _, GAME_LAUNCHER_SIZE_LARGE as A } from "../../circle-games/game-launcher/comps/card-container/constants.js";
2
+ import { ARC_Z_INDEX as E } from "./comp/animated-arc/constants.js";
3
+ const L = 300, R = 2, I = E + 1, N = I + 1, O = N + 1, t = _ === A ? 16 : 12, D = (_ - R) / 2, c = 3.8, n = 2 / 30, s = 2.37, C = 12 / 30, G = 20 / 30, S = 43 / 30;
4
+ export {
5
+ D as ARC_RADIUS,
6
+ N as CONTENT_CONTAINER_Z_INDEX,
7
+ I as LINE_MARKING_Z_INDEX,
8
+ O as NUMBER_MARKING_Z_INDEX,
9
+ C as PROGRESS_FILL_DELAY,
10
+ G as PROGRESS_FILL_DURATION,
11
+ S as RAINBOW_COLOR_ANIMATION_DURATION,
12
+ t as STROKE_WIDTH,
13
+ s as TARGET_ACHIEVED_DELAY,
14
+ n as TARGET_HELPER_TEXT_APPEAR_DELAY,
15
+ c as TOTAL_ANIMATION_DURATION,
16
+ L as TOTAL_ARC_AVAILABLE
17
+ };
18
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../../src/features/post-game-stats/digital-meter/constants.ts"],"sourcesContent":["import {\n GAME_LAUNCHER_SIZE,\n GAME_LAUNCHER_SIZE_LARGE,\n} from '../../circle-games/game-launcher/comps/card-container/constants';\nimport { ARC_Z_INDEX } from './comp/animated-arc/constants';\n\nexport const TOTAL_ARC_AVAILABLE = 300;\n\nconst BORDER_OFFSET = 2;\n\nexport const LINE_MARKING_Z_INDEX = ARC_Z_INDEX + 1;\nexport const CONTENT_CONTAINER_Z_INDEX = LINE_MARKING_Z_INDEX + 1;\nexport const NUMBER_MARKING_Z_INDEX = CONTENT_CONTAINER_Z_INDEX + 1;\nexport const STROKE_WIDTH = GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 16 : 12;\nexport const ARC_RADIUS = (GAME_LAUNCHER_SIZE - BORDER_OFFSET) / 2;\n\n// animation details\nexport const TOTAL_ANIMATION_DURATION = 3.8; // in sec\nexport const TARGET_HELPER_TEXT_APPEAR_DELAY = 2 / 30; // delay of 2 frames\nexport const TARGET_ACHIEVED_DELAY = 2.37; // delay of 3 sec\nexport const PROGRESS_FILL_DELAY = 12 / 30; // delay of 12 frames\nexport const PROGRESS_FILL_DURATION = 20 / 30; // in 20 frames\nexport const RAINBOW_COLOR_ANIMATION_DURATION = 43 / 30; // 43 frames;\n"],"names":["TOTAL_ARC_AVAILABLE","BORDER_OFFSET","LINE_MARKING_Z_INDEX","ARC_Z_INDEX","CONTENT_CONTAINER_Z_INDEX","NUMBER_MARKING_Z_INDEX","STROKE_WIDTH","GAME_LAUNCHER_SIZE","GAME_LAUNCHER_SIZE_LARGE","ARC_RADIUS","TOTAL_ANIMATION_DURATION","TARGET_HELPER_TEXT_APPEAR_DELAY","TARGET_ACHIEVED_DELAY","PROGRESS_FILL_DELAY","PROGRESS_FILL_DURATION","RAINBOW_COLOR_ANIMATION_DURATION"],"mappings":";;AAMO,MAAMA,IAAsB,KAE7BC,IAAgB,GAETC,IAAuBC,IAAc,GACrCC,IAA4BF,IAAuB,GACnDG,IAAyBD,IAA4B,GACrDE,IAAeC,MAAuBC,IAA2B,KAAK,IACtEC,KAAcF,IAAqBN,KAAiB,GAGpDS,IAA2B,KAC3BC,IAAkC,IAAI,IACtCC,IAAwB,MACxBC,IAAsB,KAAK,IAC3BC,IAAyB,KAAK,IAC9BC,IAAmC,KAAK;"}