@cuemath/leap 2.8.25 → 2.8.26

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 (238) hide show
  1. package/dist/assets/lottie/lottie.js +61 -0
  2. package/dist/assets/lottie/lottie.js.map +1 -0
  3. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js +81 -79
  4. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js.map +1 -1
  5. package/dist/features/circle-games/game-launcher/game-launcher.js +61 -65
  6. package/dist/features/circle-games/game-launcher/game-launcher.js.map +1 -1
  7. package/dist/features/circle-games/leaderboard/comps/banner/banner.js +35 -53
  8. package/dist/features/circle-games/leaderboard/comps/banner/banner.js.map +1 -1
  9. package/dist/features/circle-games/leaderboard/leaderboard.js +56 -55
  10. package/dist/features/circle-games/leaderboard/leaderboard.js.map +1 -1
  11. package/dist/features/circle-games/sign-up/comp/circular-steps/circular-steps.js +40 -41
  12. package/dist/features/circle-games/sign-up/comp/circular-steps/circular-steps.js.map +1 -1
  13. package/dist/features/circle-games/sign-up/comp/spinner/spinner-styled.js +4 -8
  14. package/dist/features/circle-games/sign-up/comp/spinner/spinner-styled.js.map +1 -1
  15. package/dist/features/circle-games/sign-up/comp/spinner/spinner.js +6 -23
  16. package/dist/features/circle-games/sign-up/comp/spinner/spinner.js.map +1 -1
  17. package/dist/features/circle-games/sign-up/comp/splash-screen/splash-screen.js +40 -35
  18. package/dist/features/circle-games/sign-up/comp/splash-screen/splash-screen.js.map +1 -1
  19. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js +2 -2
  20. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/test-radio-card/test-card-lottie-animation.js +8 -23
  21. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/test-radio-card/test-card-lottie-animation.js.map +1 -1
  22. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/test-radio-card/test-radio-card.js +11 -11
  23. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/test-radio-card/test-radio-card.js.map +1 -1
  24. package/dist/features/milestone/milestone-tests/tests-creation/utils/index.js +37 -43
  25. package/dist/features/milestone/milestone-tests/tests-creation/utils/index.js.map +1 -1
  26. package/dist/features/post-game-stats/accuracy/accuracy.js +38 -34
  27. package/dist/features/post-game-stats/accuracy/accuracy.js.map +1 -1
  28. package/dist/features/post-game-stats/clock/clock.js +43 -39
  29. package/dist/features/post-game-stats/clock/clock.js.map +1 -1
  30. package/dist/features/post-game-stats/points/points.js +43 -44
  31. package/dist/features/post-game-stats/points/points.js.map +1 -1
  32. package/dist/features/post-game-stats/streak/streak.js +30 -28
  33. package/dist/features/post-game-stats/streak/streak.js.map +1 -1
  34. package/dist/features/trial-session/comps/av-panels/teacher-av-panel/teacher-av-panel.js +56 -54
  35. package/dist/features/trial-session/comps/av-panels/teacher-av-panel/teacher-av-panel.js.map +1 -1
  36. package/dist/features/trial-session/comps/parent-app/parent-app.js +25 -20
  37. package/dist/features/trial-session/comps/parent-app/parent-app.js.map +1 -1
  38. package/dist/features/trial-session/comps/school-goals/school-goals-view.js +4 -4
  39. package/dist/features/trial-session/comps/school-goals/school-goals-view.js.map +1 -1
  40. package/dist/features/trial-session/comps/session-insights/session-insights.js +40 -39
  41. package/dist/features/trial-session/comps/session-insights/session-insights.js.map +1 -1
  42. package/dist/features/trial-session/trial-session-view.js +95 -79
  43. package/dist/features/trial-session/trial-session-view.js.map +1 -1
  44. package/dist/features/ui/loader/circular-loader/circular-loader.js +16 -20
  45. package/dist/features/ui/loader/circular-loader/circular-loader.js.map +1 -1
  46. package/dist/features/ui/lottie-animation/helper.js +13 -0
  47. package/dist/features/ui/lottie-animation/helper.js.map +1 -0
  48. package/dist/features/ui/lottie-animation/lottie-animation.js +37 -0
  49. package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -0
  50. package/dist/features/ui/nudge/nudge-styled.js +4 -8
  51. package/dist/features/ui/nudge/nudge-styled.js.map +1 -1
  52. package/dist/features/ui/nudge/nudge.js +13 -30
  53. package/dist/features/ui/nudge/nudge.js.map +1 -1
  54. package/dist/features/ui/perfect-hits/perfect-hits-helpers.js +22 -20
  55. package/dist/features/ui/perfect-hits/perfect-hits-helpers.js.map +1 -1
  56. package/dist/features/worksheet/worksheet/worksheet-permissions/error.js +25 -48
  57. package/dist/features/worksheet/worksheet/worksheet-permissions/error.js.map +1 -1
  58. package/dist/features/worksheet/worksheet/worksheet-question/header/validated-animation.js +12 -26
  59. package/dist/features/worksheet/worksheet/worksheet-question/header/validated-animation.js.map +1 -1
  60. package/dist/index.d.ts +58 -0
  61. package/dist/index.js +466 -464
  62. package/dist/index.js.map +1 -1
  63. package/dist/static/accuracy-meter.99585cba.json +4218 -0
  64. package/dist/static/accuracy-needle.cd6e63ac.json +618 -0
  65. package/dist/static/beginner1x.489908a7.json +3508 -0
  66. package/dist/static/bronze-1.da4e4b5f.json +4176 -0
  67. package/dist/static/bronze-2.97f9c639.json +4433 -0
  68. package/dist/static/bronze-3.6a433ebd.json +4786 -0
  69. package/dist/static/circular-loader.a5a1a0a6.json +238 -0
  70. package/dist/static/clock-30min.eae818b8.json +1197 -0
  71. package/dist/static/clock-45min.df8adf51.json +1197 -0
  72. package/dist/static/clock-60min.2b48d875.json +1197 -0
  73. package/dist/static/clock-90min.3e557ed7.json +1407 -0
  74. package/dist/static/color-1.45101b9a.json +4545 -0
  75. package/dist/static/color-2.ccdc7d0a.json +4828 -0
  76. package/dist/static/color-3.5e8e1422.json +5273 -0
  77. package/dist/static/difficult.6846c064.json +2755 -0
  78. package/dist/static/easy-rescheduling-lottie.28026af9.json +9301 -0
  79. package/dist/static/easy.68242ddd.json +2658 -0
  80. package/dist/static/elite-circle.3df58972.json +6876 -0
  81. package/dist/static/error-lottie.b3507a4b.json +5255 -0
  82. package/dist/static/familiar1x.7c9c7f15.json +3046 -0
  83. package/dist/static/fifteen-min-clock.0af4e303.json +715 -0
  84. package/dist/static/five-min-clock.6be5cc41.json +721 -0
  85. package/dist/static/gold-1.ab2489fe.json +4176 -0
  86. package/dist/static/gold-2.34045826.json +4441 -0
  87. package/dist/static/gold-3.d704698b.json +4810 -0
  88. package/dist/static/levelup-rings.b1055283.json +549 -0
  89. package/dist/static/medium.94c3829b.json +2289 -0
  90. package/dist/static/nudge-tap.5cb30093.json +1057 -0
  91. package/dist/static/point1.b53831de.json +2942 -0
  92. package/dist/static/point10.7b5e536d.json +3179 -0
  93. package/dist/static/point100.1df16f82.json +3196 -0
  94. package/dist/static/point15.fea00c32.json +3179 -0
  95. package/dist/static/point20.c88d776d.json +3178 -0
  96. package/dist/static/point25.a18c346a.json +3178 -0
  97. package/dist/static/point30.c5224b0b.json +3202 -0
  98. package/dist/static/point35.fad343dd.json +3058 -0
  99. package/dist/static/point40.10a16f72.json +3082 -0
  100. package/dist/static/point45.2ad7561f.json +3082 -0
  101. package/dist/static/point5.da40ed1f.json +2948 -0
  102. package/dist/static/point50.5718cb3d.json +3046 -0
  103. package/dist/static/point60.17380d9f.json +3076 -0
  104. package/dist/static/proficient1x.fa6e7b80.json +3430 -0
  105. package/dist/static/silver-1.0396328a.json +4168 -0
  106. package/dist/static/silver-2.bf50615f.json +4433 -0
  107. package/dist/static/silver-3.13d66b84.json +4810 -0
  108. package/dist/static/sleepy-boi.031a1165.json +1008 -0
  109. package/dist/static/spinner-white.639e0d87.json +122 -0
  110. package/dist/static/splash-screen.bbf567ce.json +2411 -0
  111. package/dist/static/stay-connected-lottie.111439b3.json +3547 -0
  112. package/dist/static/teacher-validation.7577ecdc.json +245 -0
  113. package/dist/static/total-streak.d5ce7669.json +842 -0
  114. package/dist/static/total-time-spent.434005d3.json +200 -0
  115. package/dist/static/total-time.d979cbb9.json +24383 -0
  116. package/dist/static/tournament-ripple.e5c239a5.json +1047 -0
  117. package/dist/static/track-progress-lottie.422108cf.json +2972 -0
  118. package/package.json +1 -1
  119. package/dist/assets/lotties/circle/100pts.json.js +0 -7957
  120. package/dist/assets/lotties/circle/100pts.json.js.map +0 -1
  121. package/dist/assets/lotties/circle/10pts.json.js +0 -7753
  122. package/dist/assets/lotties/circle/10pts.json.js.map +0 -1
  123. package/dist/assets/lotties/circle/15pts.json.js +0 -7879
  124. package/dist/assets/lotties/circle/15pts.json.js.map +0 -1
  125. package/dist/assets/lotties/circle/1pts.json.js +0 -7257
  126. package/dist/assets/lotties/circle/1pts.json.js.map +0 -1
  127. package/dist/assets/lotties/circle/20pts.json.js +0 -7845
  128. package/dist/assets/lotties/circle/20pts.json.js.map +0 -1
  129. package/dist/assets/lotties/circle/25pts.json.js +0 -7971
  130. package/dist/assets/lotties/circle/25pts.json.js.map +0 -1
  131. package/dist/assets/lotties/circle/30pts.json.js +0 -7941
  132. package/dist/assets/lotties/circle/30pts.json.js.map +0 -1
  133. package/dist/assets/lotties/circle/35pts.json.js +0 -7881
  134. package/dist/assets/lotties/circle/35pts.json.js.map +0 -1
  135. package/dist/assets/lotties/circle/40pts.json.js +0 -7725
  136. package/dist/assets/lotties/circle/40pts.json.js.map +0 -1
  137. package/dist/assets/lotties/circle/45pts.json.js +0 -7851
  138. package/dist/assets/lotties/circle/45pts.json.js.map +0 -1
  139. package/dist/assets/lotties/circle/50pts.json.js +0 -7707
  140. package/dist/assets/lotties/circle/50pts.json.js.map +0 -1
  141. package/dist/assets/lotties/circle/5pts.json.js +0 -7420
  142. package/dist/assets/lotties/circle/5pts.json.js.map +0 -1
  143. package/dist/assets/lotties/circle/60pts.json.js +0 -7701
  144. package/dist/assets/lotties/circle/60pts.json.js.map +0 -1
  145. package/dist/assets/lotties/circle/accuracy-meter-lottie.json.js +0 -6811
  146. package/dist/assets/lotties/circle/accuracy-meter-lottie.json.js.map +0 -1
  147. package/dist/assets/lotties/circle/accuracy-needle-lottie.json.js +0 -1503
  148. package/dist/assets/lotties/circle/accuracy-needle-lottie.json.js.map +0 -1
  149. package/dist/assets/lotties/circle/circular-loader.json.js +0 -635
  150. package/dist/assets/lotties/circle/circular-loader.json.js.map +0 -1
  151. package/dist/assets/lotties/circle/elite-circle-lottie.json.js +0 -12079
  152. package/dist/assets/lotties/circle/elite-circle-lottie.json.js.map +0 -1
  153. package/dist/assets/lotties/circle/levelup-rings-lottie.json.js +0 -1412
  154. package/dist/assets/lotties/circle/levelup-rings-lottie.json.js.map +0 -1
  155. package/dist/assets/lotties/circle/sleepy-boi-lottie.json.js +0 -2632
  156. package/dist/assets/lotties/circle/sleepy-boi-lottie.json.js.map +0 -1
  157. package/dist/assets/lotties/circle/spinner-white.json.js +0 -316
  158. package/dist/assets/lotties/circle/spinner-white.json.js.map +0 -1
  159. package/dist/assets/lotties/circle/splash-screen.json.js +0 -5864
  160. package/dist/assets/lotties/circle/splash-screen.json.js.map +0 -1
  161. package/dist/assets/lotties/circle/total-streak-lottie.json.js +0 -2103
  162. package/dist/assets/lotties/circle/total-streak-lottie.json.js.map +0 -1
  163. package/dist/assets/lotties/circle/total-time-lottie.json.js +0 -33016
  164. package/dist/assets/lotties/circle/total-time-lottie.json.js.map +0 -1
  165. package/dist/assets/lotties/circle/total-time-spent-lottie.json.js +0 -260
  166. package/dist/assets/lotties/circle/total-time-spent-lottie.json.js.map +0 -1
  167. package/dist/assets/lotties/circle/tournament-ripple-lottie.json.js +0 -1563
  168. package/dist/assets/lotties/circle/tournament-ripple-lottie.json.js.map +0 -1
  169. package/dist/assets/lotties/common/nudge-tap.json.js +0 -3597
  170. package/dist/assets/lotties/common/nudge-tap.json.js.map +0 -1
  171. package/dist/assets/lotties/error-lottie.json.js +0 -12755
  172. package/dist/assets/lotties/error-lottie.json.js.map +0 -1
  173. package/dist/assets/lotties/perfect-hits/bronze-1.json.js +0 -10871
  174. package/dist/assets/lotties/perfect-hits/bronze-1.json.js.map +0 -1
  175. package/dist/assets/lotties/perfect-hits/bronze-2.json.js +0 -11389
  176. package/dist/assets/lotties/perfect-hits/bronze-2.json.js.map +0 -1
  177. package/dist/assets/lotties/perfect-hits/bronze-3.json.js +0 -12169
  178. package/dist/assets/lotties/perfect-hits/bronze-3.json.js.map +0 -1
  179. package/dist/assets/lotties/perfect-hits/color-1.json.js +0 -12348
  180. package/dist/assets/lotties/perfect-hits/color-1.json.js.map +0 -1
  181. package/dist/assets/lotties/perfect-hits/color-2.json.js +0 -12941
  182. package/dist/assets/lotties/perfect-hits/color-2.json.js.map +0 -1
  183. package/dist/assets/lotties/perfect-hits/color-3.json.js +0 -14034
  184. package/dist/assets/lotties/perfect-hits/color-3.json.js.map +0 -1
  185. package/dist/assets/lotties/perfect-hits/gold-1.json.js +0 -10871
  186. package/dist/assets/lotties/perfect-hits/gold-1.json.js.map +0 -1
  187. package/dist/assets/lotties/perfect-hits/gold-2.json.js +0 -11389
  188. package/dist/assets/lotties/perfect-hits/gold-2.json.js.map +0 -1
  189. package/dist/assets/lotties/perfect-hits/gold-3.json.js +0 -12169
  190. package/dist/assets/lotties/perfect-hits/gold-3.json.js.map +0 -1
  191. package/dist/assets/lotties/perfect-hits/silver-1.json.js +0 -10871
  192. package/dist/assets/lotties/perfect-hits/silver-1.json.js.map +0 -1
  193. package/dist/assets/lotties/perfect-hits/silver-2.json.js +0 -11389
  194. package/dist/assets/lotties/perfect-hits/silver-2.json.js.map +0 -1
  195. package/dist/assets/lotties/perfect-hits/silver-3.json.js +0 -12169
  196. package/dist/assets/lotties/perfect-hits/silver-3.json.js.map +0 -1
  197. package/dist/assets/lotties/teacher-validation.json.js +0 -649
  198. package/dist/assets/lotties/teacher-validation.json.js.map +0 -1
  199. package/dist/assets/lotties/tests-creation/clock_30_min.json.js +0 -2857
  200. package/dist/assets/lotties/tests-creation/clock_30_min.json.js.map +0 -1
  201. package/dist/assets/lotties/tests-creation/clock_45_min.json.js +0 -2857
  202. package/dist/assets/lotties/tests-creation/clock_45_min.json.js.map +0 -1
  203. package/dist/assets/lotties/tests-creation/clock_60_min.json.js +0 -2857
  204. package/dist/assets/lotties/tests-creation/clock_60_min.json.js.map +0 -1
  205. package/dist/assets/lotties/tests-creation/clock_90_min.json.js +0 -3345
  206. package/dist/assets/lotties/tests-creation/clock_90_min.json.js.map +0 -1
  207. package/dist/assets/lotties/tests-creation/difficult.json.js +0 -6713
  208. package/dist/assets/lotties/tests-creation/difficult.json.js.map +0 -1
  209. package/dist/assets/lotties/tests-creation/easy.json.js +0 -6525
  210. package/dist/assets/lotties/tests-creation/easy.json.js.map +0 -1
  211. package/dist/assets/lotties/tests-creation/medium.json.js +0 -5603
  212. package/dist/assets/lotties/tests-creation/medium.json.js.map +0 -1
  213. package/dist/assets/lotties/trial-v3/15min-clock.json.js +0 -2037
  214. package/dist/assets/lotties/trial-v3/15min-clock.json.js.map +0 -1
  215. package/dist/assets/lotties/trial-v3/5min-clock.json.js +0 -2062
  216. package/dist/assets/lotties/trial-v3/5min-clock.json.js.map +0 -1
  217. package/dist/assets/lotties/trial-v3/insight/beginner1x.json.js +0 -8517
  218. package/dist/assets/lotties/trial-v3/insight/beginner1x.json.js.map +0 -1
  219. package/dist/assets/lotties/trial-v3/insight/familiar1x.json.js +0 -7396
  220. package/dist/assets/lotties/trial-v3/insight/familiar1x.json.js.map +0 -1
  221. package/dist/assets/lotties/trial-v3/insight/proficient1x.json.js +0 -8559
  222. package/dist/assets/lotties/trial-v3/insight/proficient1x.json.js.map +0 -1
  223. package/dist/assets/lotties/trial-v3/parent-app/easy-rescheduling-lottie.json.js +0 -23284
  224. package/dist/assets/lotties/trial-v3/parent-app/easy-rescheduling-lottie.json.js.map +0 -1
  225. package/dist/assets/lotties/trial-v3/parent-app/stay-connected-lottie.json.js +0 -9090
  226. package/dist/assets/lotties/trial-v3/parent-app/stay-connected-lottie.json.js.map +0 -1
  227. package/dist/assets/lotties/trial-v3/parent-app/track-progress-lottie.json.js +0 -8675
  228. package/dist/assets/lotties/trial-v3/parent-app/track-progress-lottie.json.js.map +0 -1
  229. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/fetch-lottie.js +0 -13
  230. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/fetch-lottie.js.map +0 -1
  231. package/dist/features/circle-games/game-launcher/game-launcher-styled.js +0 -10
  232. package/dist/features/circle-games/game-launcher/game-launcher-styled.js.map +0 -1
  233. package/dist/features/post-game-stats/points/points-styled.js +0 -10
  234. package/dist/features/post-game-stats/points/points-styled.js.map +0 -1
  235. package/dist/features/trial-session/comps/render-lottie/index.js +0 -26
  236. package/dist/features/trial-session/comps/render-lottie/index.js.map +0 -1
  237. package/dist/features/ui/loader/circular-loader/circular-loader-styled.js +0 -17
  238. package/dist/features/ui/loader/circular-loader/circular-loader-styled.js.map +0 -1
@@ -1,55 +1,60 @@
1
- import { jsxs as d, jsx as t } from "react/jsx-runtime";
2
- import f from "lottie-web";
3
- import { useRef as a, useState as o, useEffect as L } from "react";
4
- import { ILLUSTRATIONS as l } from "../../../../../assets/illustrations/illustrations.js";
1
+ import { jsxs as C, jsx as e } from "react/jsx-runtime";
2
+ import { useState as t, useRef as u, useMemo as p } from "react";
3
+ import { ILLUSTRATIONS as s } from "../../../../../assets/illustrations/illustrations.js";
4
+ import { LOTTIE as L } from "../../../../../assets/lottie/lottie.js";
5
5
  import S from "../../../../ui/image/image.js";
6
- import { SplashScreenWrapper as g, CircleLogo as w, InnerCircle as I, CuemathLogoWrapper as E, OuterCircleImage as O } from "./splash-screen-styled.js";
7
- const A = () => import("../../../../../assets/lotties/circle/splash-screen.json.js"), V = ({ animationCompleted: c }) => {
8
- const r = a(null), [i, m] = o(!1), [n, u] = o(!1), [s, h] = o(!1), C = a(!1);
9
- return L(() => {
10
- let e = null;
11
- return (async () => {
12
- const p = (await A()).default;
13
- e = f.loadAnimation({
14
- container: r.current,
15
- renderer: "svg",
16
- loop: !1,
17
- autoplay: !0,
18
- animationData: p,
19
- initialSegment: [0, 45]
20
- }), e.addEventListener("complete", () => {
21
- C.current = !0, u(!0), m(!0), setTimeout(() => {
22
- h(!0), setTimeout(() => {
23
- c();
6
+ import f from "../../../../ui/lottie-animation/lottie-animation.js";
7
+ import { SplashScreenWrapper as g, CircleLogo as I, InnerCircle as d, CuemathLogoWrapper as w, OuterCircleImage as E } from "./splash-screen-styled.js";
8
+ const O = {
9
+ renderer: "svg",
10
+ loop: !1,
11
+ autoplay: !0,
12
+ initialSegment: [0, 45]
13
+ }, U = ({ animationCompleted: n }) => {
14
+ const [r, l] = t(!1), [i, m] = t(!1), [o, a] = t(!1), c = u(!1), h = p(
15
+ () => ({
16
+ name: "complete",
17
+ callback: () => {
18
+ c.current = !0, m(!0), l(!0), setTimeout(() => {
19
+ a(!0), setTimeout(() => {
20
+ n();
24
21
  }, 500);
25
22
  }, 500);
26
- });
27
- })(), () => {
28
- e == null || e.destroy();
29
- };
30
- }, []), /* @__PURE__ */ d(g, { children: [
31
- /* @__PURE__ */ t(w, { ref: r }),
32
- n && /* @__PURE__ */ t(I, { isVisible: n, children: i && /* @__PURE__ */ t(E, { isVisible: i, children: /* @__PURE__ */ t(
23
+ }
24
+ }),
25
+ // eslint-disable-next-line react-hooks/exhaustive-deps
26
+ []
27
+ );
28
+ return /* @__PURE__ */ C(g, { children: [
29
+ /* @__PURE__ */ e(I, { children: /* @__PURE__ */ e(
30
+ f,
31
+ {
32
+ src: L.SPLASH_SCREEN,
33
+ settings: O,
34
+ eventListener: h
35
+ }
36
+ ) }),
37
+ i && /* @__PURE__ */ e(d, { isVisible: i, children: r && /* @__PURE__ */ e(w, { isVisible: r, children: /* @__PURE__ */ e(
33
38
  S,
34
39
  {
35
- src: l.CIRCLE_CUEMATH_LOGO,
40
+ src: s.CIRCLE_CUEMATH_LOGO,
36
41
  height: 56,
37
42
  width: 158.7,
38
43
  withLoader: !1
39
44
  }
40
45
  ) }) }),
41
- s && /* @__PURE__ */ t(
42
- O,
46
+ o && /* @__PURE__ */ e(
47
+ E,
43
48
  {
44
- src: l.CIRCLE_OUTERCIRCLE_BG,
49
+ src: s.CIRCLE_OUTERCIRCLE_BG,
45
50
  height: "100%",
46
51
  width: "100%",
47
- isVisible: s
52
+ isVisible: o
48
53
  }
49
54
  )
50
55
  ] });
51
56
  };
52
57
  export {
53
- V as SplashScreen
58
+ U as SplashScreen
54
59
  };
55
60
  //# sourceMappingURL=splash-screen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"splash-screen.js","sources":["../../../../../../src/features/circle-games/sign-up/comp/splash-screen/splash-screen.tsx"],"sourcesContent":["import type { AnimationItem } from 'lottie-web';\n\nimport Lottie from 'lottie-web';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../../assets/illustrations/illustrations';\nimport Image from '../../../../ui/image/image';\nimport * as S from './splash-screen-styled';\n\nconst splashScreen = () => import('../../../../../assets/lotties/circle/splash-screen.json');\n\nexport const SplashScreen = ({ animationCompleted }: { animationCompleted: () => void }) => {\n const lottieContainer = useRef<HTMLDivElement>(null);\n const [showCuemathLogo, setShowCuemathLogo] = useState(false);\n const [showInnerCircle, setShowInnerCircle] = useState(false);\n const [showOuterCircle, setShowOuterCircle] = useState(false);\n const isCircleAnimationCompleted = useRef(false);\n\n useEffect(() => {\n let animation: AnimationItem | null = null;\n const loadAnimation = async () => {\n const animationModule = await splashScreen();\n const animationData = animationModule.default;\n\n animation = Lottie.loadAnimation({\n container: lottieContainer.current as Element,\n renderer: 'svg',\n loop: false,\n autoplay: true,\n animationData: animationData,\n initialSegment: [0, 45],\n });\n\n animation.addEventListener('complete', () => {\n isCircleAnimationCompleted.current = true;\n setShowInnerCircle(true);\n setShowCuemathLogo(true);\n setTimeout(() => {\n setShowOuterCircle(true);\n setTimeout(() => {\n animationCompleted();\n }, 500);\n }, 500);\n });\n };\n\n loadAnimation();\n\n return () => {\n animation?.destroy();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <S.SplashScreenWrapper>\n <S.CircleLogo ref={lottieContainer} />\n\n {showInnerCircle && (\n <S.InnerCircle isVisible={showInnerCircle}>\n {showCuemathLogo && (\n <S.CuemathLogoWrapper isVisible={showCuemathLogo}>\n <Image\n src={ILLUSTRATIONS.CIRCLE_CUEMATH_LOGO}\n height={56}\n width={158.7}\n withLoader={false}\n />\n </S.CuemathLogoWrapper>\n )}\n </S.InnerCircle>\n )}\n\n {showOuterCircle && (\n <S.OuterCircleImage\n src={ILLUSTRATIONS.CIRCLE_OUTERCIRCLE_BG}\n height={'100%'}\n width={'100%'}\n isVisible={showOuterCircle}\n />\n )}\n </S.SplashScreenWrapper>\n );\n};\n"],"names":["splashScreen","SplashScreen","animationCompleted","lottieContainer","useRef","showCuemathLogo","setShowCuemathLogo","useState","showInnerCircle","setShowInnerCircle","showOuterCircle","setShowOuterCircle","isCircleAnimationCompleted","useEffect","animation","animationData","Lottie","jsxs","S.SplashScreenWrapper","jsx","S.CircleLogo","S.InnerCircle","S.CuemathLogoWrapper","Image","ILLUSTRATIONS","S.OuterCircleImage"],"mappings":";;;;;;AASA,MAAMA,IAAe,MAAM,OAAO,4DAAyD,GAE9EC,IAAe,CAAC,EAAE,oBAAAC,QAA6D;AACpF,QAAAC,IAAkBC,EAAuB,IAAI,GAC7C,CAACC,GAAiBC,CAAkB,IAAIC,EAAS,EAAK,GACtD,CAACC,GAAiBC,CAAkB,IAAIF,EAAS,EAAK,GACtD,CAACG,GAAiBC,CAAkB,IAAIJ,EAAS,EAAK,GACtDK,IAA6BR,EAAO,EAAK;AAE/C,SAAAS,EAAU,MAAM;AACd,QAAIC,IAAkC;AA2BxB,YA1BQ,YAAY;AAEhC,YAAMC,KADkB,MAAMf,KACQ;AAEtC,MAAAc,IAAYE,EAAO,cAAc;AAAA,QAC/B,WAAWb,EAAgB;AAAA,QAC3B,UAAU;AAAA,QACV,MAAM;AAAA,QACN,UAAU;AAAA,QACV,eAAAY;AAAA,QACA,gBAAgB,CAAC,GAAG,EAAE;AAAA,MAAA,CACvB,GAESD,EAAA,iBAAiB,YAAY,MAAM;AAC3C,QAAAF,EAA2B,UAAU,IACrCH,EAAmB,EAAI,GACvBH,EAAmB,EAAI,GACvB,WAAW,MAAM;AACf,UAAAK,EAAmB,EAAI,GACvB,WAAW,MAAM;AACI,YAAAT;aAClB,GAAG;AAAA,WACL,GAAG;AAAA,MAAA,CACP;AAAA,IAAA,MAKI,MAAM;AACX,MAAAY,KAAA,QAAAA,EAAW;AAAA,IAAQ;AAAA,EAGvB,GAAG,CAAE,CAAA,GAGH,gBAAAG,EAACC,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAa,KAAKjB,EAAiB,CAAA;AAAA,IAEnCK,KACC,gBAAAW,EAACE,GAAA,EAAc,WAAWb,GACvB,UAAAH,KACE,gBAAAc,EAAAG,GAAA,EAAqB,WAAWjB,GAC/B,UAAA,gBAAAc;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,KAAKC,EAAc;AAAA,QACnB,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,YAAY;AAAA,MAAA;AAAA,OAEhB,EAEJ,CAAA;AAAA,IAGDd,KACC,gBAAAS;AAAA,MAACM;AAAAA,MAAA;AAAA,QACC,KAAKD,EAAc;AAAA,QACnB,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,WAAWd;AAAA,MAAA;AAAA,IACb;AAAA,EAEJ,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"splash-screen.js","sources":["../../../../../../src/features/circle-games/sign-up/comp/splash-screen/splash-screen.tsx"],"sourcesContent":["import type { AnimationEventName } from 'lottie-web';\n\nimport { useMemo, useRef, useState } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../../assets/illustrations/illustrations';\nimport { LOTTIE } from '../../../../../assets/lottie/lottie';\nimport Image from '../../../../ui/image/image';\nimport LottieAnimation from '../../../../ui/lottie-animation/lottie-animation';\nimport * as S from './splash-screen-styled';\n\nconst animationSettings = {\n renderer: 'svg',\n loop: false,\n autoplay: true,\n initialSegment: [0, 45],\n};\n\nexport const SplashScreen = ({ animationCompleted }: { animationCompleted: () => void }) => {\n const [showCuemathLogo, setShowCuemathLogo] = useState(false);\n const [showInnerCircle, setShowInnerCircle] = useState(false);\n const [showOuterCircle, setShowOuterCircle] = useState(false);\n const isCircleAnimationCompleted = useRef(false);\n\n const animationEventListener = useMemo(\n () => ({\n name: 'complete' as AnimationEventName,\n callback: () => {\n isCircleAnimationCompleted.current = true;\n setShowInnerCircle(true);\n setShowCuemathLogo(true);\n setTimeout(() => {\n setShowOuterCircle(true);\n setTimeout(() => {\n animationCompleted();\n }, 500);\n }, 500);\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n return (\n <S.SplashScreenWrapper>\n <S.CircleLogo>\n <LottieAnimation\n src={LOTTIE.SPLASH_SCREEN}\n settings={animationSettings}\n eventListener={animationEventListener}\n />\n </S.CircleLogo>\n\n {showInnerCircle && (\n <S.InnerCircle isVisible={showInnerCircle}>\n {showCuemathLogo && (\n <S.CuemathLogoWrapper isVisible={showCuemathLogo}>\n <Image\n src={ILLUSTRATIONS.CIRCLE_CUEMATH_LOGO}\n height={56}\n width={158.7}\n withLoader={false}\n />\n </S.CuemathLogoWrapper>\n )}\n </S.InnerCircle>\n )}\n\n {showOuterCircle && (\n <S.OuterCircleImage\n src={ILLUSTRATIONS.CIRCLE_OUTERCIRCLE_BG}\n height={'100%'}\n width={'100%'}\n isVisible={showOuterCircle}\n />\n )}\n </S.SplashScreenWrapper>\n );\n};\n"],"names":["animationSettings","SplashScreen","animationCompleted","showCuemathLogo","setShowCuemathLogo","useState","showInnerCircle","setShowInnerCircle","showOuterCircle","setShowOuterCircle","isCircleAnimationCompleted","useRef","animationEventListener","useMemo","jsxs","S.SplashScreenWrapper","jsx","S.CircleLogo","LottieAnimation","LOTTIE","S.InnerCircle","S.CuemathLogoWrapper","Image","ILLUSTRATIONS","S.OuterCircleImage"],"mappings":";;;;;;;AAUA,MAAMA,IAAoB;AAAA,EACxB,UAAU;AAAA,EACV,MAAM;AAAA,EACN,UAAU;AAAA,EACV,gBAAgB,CAAC,GAAG,EAAE;AACxB,GAEaC,IAAe,CAAC,EAAE,oBAAAC,QAA6D;AAC1F,QAAM,CAACC,GAAiBC,CAAkB,IAAIC,EAAS,EAAK,GACtD,CAACC,GAAiBC,CAAkB,IAAIF,EAAS,EAAK,GACtD,CAACG,GAAiBC,CAAkB,IAAIJ,EAAS,EAAK,GACtDK,IAA6BC,EAAO,EAAK,GAEzCC,IAAyBC;AAAA,IAC7B,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU,MAAM;AACd,QAAAH,EAA2B,UAAU,IACrCH,EAAmB,EAAI,GACvBH,EAAmB,EAAI,GACvB,WAAW,MAAM;AACf,UAAAK,EAAmB,EAAI,GACvB,WAAW,MAAM;AACI,YAAAP;aAClB,GAAG;AAAA,WACL,GAAG;AAAA,MACR;AAAA,IAAA;AAAA;AAAA,IAGF,CAAC;AAAA,EAAA;AAID,SAAA,gBAAAY,EAACC,GAAA,EACC,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EACC,UAAA,gBAAAD;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,KAAKC,EAAO;AAAA,QACZ,UAAUnB;AAAA,QACV,eAAeY;AAAA,MAAA;AAAA,IAAA,GAEnB;AAAA,IAECN,KACC,gBAAAU,EAACI,GAAA,EAAc,WAAWd,GACvB,UAAAH,KACE,gBAAAa,EAAAK,GAAA,EAAqB,WAAWlB,GAC/B,UAAA,gBAAAa;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,KAAKC,EAAc;AAAA,QACnB,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,YAAY;AAAA,MAAA;AAAA,OAEhB,EAEJ,CAAA;AAAA,IAGDf,KACC,gBAAAQ;AAAA,MAACQ;AAAAA,MAAA;AAAA,QACC,KAAKD,EAAc;AAAA,QACnB,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,WAAWf;AAAA,MAAA;AAAA,IACb;AAAA,EAEJ,EAAA,CAAA;AAEJ;"}
@@ -7,7 +7,7 @@ import m from "../../../../../ui/text/text.js";
7
7
  import B from "../../../../create/comps/body-layout/body-layout.js";
8
8
  import { TESTS_CREATION_ANALYTICS_EVENTS as I } from "../../tests-creation-analytics-events.js";
9
9
  import { ButtonWrapper as G } from "../../tests-creation-styled.js";
10
- import { getRecommendedTestDuration as N, getDifficultyLevelCards as O, getTestDurationCards as P } from "../../utils/index.js";
10
+ import { getDifficultyLevelCards as N, getTestDurationCards as O, getRecommendedTestDuration as P } from "../../utils/index.js";
11
11
  import E from "./test-radio-card/test-radio-card.js";
12
12
  const Y = S((x) => {
13
13
  var y;
@@ -37,7 +37,7 @@ const Y = S((x) => {
37
37
  typeof t == "number" ? h(t) : p(t);
38
38
  },
39
39
  [p, h]
40
- ), C = ((y = r.selectedChapters) == null ? void 0 : y.length) || 0, $ = N(C), L = O(), b = P();
40
+ ), C = ((y = r.selectedChapters) == null ? void 0 : y.length) || 0, $ = P(C), L = N(), b = O();
41
41
  return /* @__PURE__ */ e(n, { children: /* @__PURE__ */ e(
42
42
  B,
43
43
  {
@@ -1,27 +1,12 @@
1
- import { jsx as o } from "react/jsx-runtime";
2
- import l from "lottie-web";
3
- import { memo as s, useRef as d, useEffect as u } from "react";
4
- import c from "../../../../../../ui/image/image.js";
5
- import h from "../../../../../../ui/layout/flex-view.js";
6
- const A = s((r) => {
7
- const { lottieJSON: t, imageUrl: a, imageAlt: n, renderLottieJSON: e, lottieWidthX: m } = r, i = d(null);
8
- return u(() => {
9
- if (e && t) {
10
- const f = l.loadAnimation({
11
- name: "validated",
12
- container: i.current,
13
- renderer: "canvas",
14
- loop: !1,
15
- autoplay: !0,
16
- animationData: t
17
- });
18
- return () => {
19
- f.destroy();
20
- };
21
- }
22
- }, [e, t]), e ? /* @__PURE__ */ o(h, { $widthX: m, $heightX: 3.9375, ref: i }) : /* @__PURE__ */ o(c, { src: a, alt: n, width: 61, height: 58, withLoader: !1 });
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { memo as h } from "react";
3
+ import n from "../../../../../../ui/image/image.js";
4
+ import s from "../../../../../../ui/lottie-animation/lottie-animation.js";
5
+ const p = h((i) => {
6
+ const { lottiePath: e, imageUrl: o, imageAlt: r, renderLottieJSON: m, lottieWidth: a } = i;
7
+ return m ? /* @__PURE__ */ t(s, { width: a, height: 63, src: e }) : /* @__PURE__ */ t(n, { src: o, alt: r, width: 61, height: 58, withLoader: !1 });
23
8
  });
24
9
  export {
25
- A as default
10
+ p as default
26
11
  };
27
12
  //# sourceMappingURL=test-card-lottie-animation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-card-lottie-animation.js","sources":["../../../../../../../../src/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/test-radio-card/test-card-lottie-animation.tsx"],"sourcesContent":["import type { ITestCardLottieAnimation } from './test-radio-card-types';\nimport type { FC } from 'react';\n\nimport Lottie from 'lottie-web';\nimport { memo, useEffect, useRef } from 'react';\n\nimport Image from '../../../../../../ui/image/image';\nimport FlexView from '../../../../../../ui/layout/flex-view';\n\nconst TestCardLottieAnimation: FC<ITestCardLottieAnimation> = memo(props => {\n const { lottieJSON, imageUrl, imageAlt, renderLottieJSON, lottieWidthX } = props;\n\n const animationContainerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (renderLottieJSON && lottieJSON) {\n const animation = Lottie.loadAnimation({\n name: 'validated',\n container: animationContainerRef.current as Element,\n renderer: 'canvas',\n loop: false,\n autoplay: true,\n animationData: lottieJSON,\n });\n\n return () => {\n animation.destroy();\n };\n }\n }, [renderLottieJSON, lottieJSON]);\n\n if (!renderLottieJSON) {\n return <Image src={imageUrl} alt={imageAlt} width={61} height={58} withLoader={false} />;\n }\n\n return <FlexView $widthX={lottieWidthX} $heightX={3.9375} ref={animationContainerRef} />;\n});\n\nexport default TestCardLottieAnimation;\n"],"names":["TestCardLottieAnimation","memo","props","lottieJSON","imageUrl","imageAlt","renderLottieJSON","lottieWidthX","animationContainerRef","useRef","useEffect","animation","Lottie","FlexView","jsx","Image"],"mappings":";;;;;AASM,MAAAA,IAAwDC,EAAK,CAASC,MAAA;AAC1E,QAAM,EAAE,YAAAC,GAAY,UAAAC,GAAU,UAAAC,GAAU,kBAAAC,GAAkB,cAAAC,EAAiB,IAAAL,GAErEM,IAAwBC,EAAuB,IAAI;AAmBzD,SAjBAC,EAAU,MAAM;AACd,QAAIJ,KAAoBH,GAAY;AAC5B,YAAAQ,IAAYC,EAAO,cAAc;AAAA,QACrC,MAAM;AAAA,QACN,WAAWJ,EAAsB;AAAA,QACjC,UAAU;AAAA,QACV,MAAM;AAAA,QACN,UAAU;AAAA,QACV,eAAeL;AAAA,MAAA,CAChB;AAED,aAAO,MAAM;AACX,QAAAQ,EAAU,QAAQ;AAAA,MAAA;AAAA,IAEtB;AAAA,EAAA,GACC,CAACL,GAAkBH,CAAU,CAAC,GAE5BG,sBAIGO,GAAS,EAAA,SAASN,GAAc,UAAU,QAAQ,KAAKC,EAAuB,CAAA,IAH7E,gBAAAM,EAACC,GAAM,EAAA,KAAKX,GAAU,KAAKC,GAAU,OAAO,IAAI,QAAQ,IAAI,YAAY,GAAO,CAAA;AAI1F,CAAC;"}
1
+ {"version":3,"file":"test-card-lottie-animation.js","sources":["../../../../../../../../src/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/test-radio-card/test-card-lottie-animation.tsx"],"sourcesContent":["import type { ITestCardLottieAnimation } from './test-radio-card-types';\nimport type { FC } from 'react';\n\nimport { memo } from 'react';\n\nimport Image from '../../../../../../ui/image/image';\nimport LottieAnimation from '../../../../../../ui/lottie-animation/lottie-animation';\n\nconst TestCardLottieAnimation: FC<ITestCardLottieAnimation> = memo(props => {\n const { lottiePath, imageUrl, imageAlt, renderLottieJSON, lottieWidth } = props;\n\n if (!renderLottieJSON) {\n return <Image src={imageUrl} alt={imageAlt} width={61} height={58} withLoader={false} />;\n }\n\n return <LottieAnimation width={lottieWidth} height={63} src={lottiePath} />;\n});\n\nexport default TestCardLottieAnimation;\n"],"names":["TestCardLottieAnimation","memo","props","lottiePath","imageUrl","imageAlt","renderLottieJSON","lottieWidth","LottieAnimation","jsx","Image"],"mappings":";;;;AAQM,MAAAA,IAAwDC,EAAK,CAASC,MAAA;AAC1E,QAAM,EAAE,YAAAC,GAAY,UAAAC,GAAU,UAAAC,GAAU,kBAAAC,GAAkB,aAAAC,EAAgB,IAAAL;AAE1E,SAAKI,sBAIGE,GAAgB,EAAA,OAAOD,GAAa,QAAQ,IAAI,KAAKJ,EAAY,CAAA,IAHhE,gBAAAM,EAACC,GAAM,EAAA,KAAKN,GAAU,KAAKC,GAAU,OAAO,IAAI,QAAQ,IAAI,YAAY,GAAO,CAAA;AAI1F,CAAC;"}
@@ -1,9 +1,9 @@
1
1
  import { jsxs as b, jsx as o } from "react/jsx-runtime";
2
2
  import { memo as T, useState as L, useCallback as r } from "react";
3
- import O from "../../../../../../ui/text/text.js";
4
- import A from "./test-card-lottie-animation.js";
5
- import { TestCardWrapper as R, RecommendedTag as X } from "./test-radio-card-styled.js";
6
- const J = T((d) => {
3
+ import A from "../../../../../../ui/text/text.js";
4
+ import O from "./test-card-lottie-animation.js";
5
+ import { TestCardWrapper as R, RecommendedTag as k } from "./test-radio-card-styled.js";
6
+ const S = T((d) => {
7
7
  const {
8
8
  selected: s,
9
9
  title: n,
@@ -13,7 +13,7 @@ const J = T((d) => {
13
13
  isRecommended: u,
14
14
  onTestRadioCardChange: e,
15
15
  value: i,
16
- lottieJSON: h,
16
+ lottiePath: h,
17
17
  isTestDifficultRendering: f
18
18
  } = d, [g, a] = L(!1), t = g || s, C = r(() => {
19
19
  e == null || e(i);
@@ -38,23 +38,23 @@ const J = T((d) => {
38
38
  onMouseEnter: $,
39
39
  onMouseLeave: p,
40
40
  children: [
41
- /* @__PURE__ */ o(O, { $renderAs: t ? "ab2-bold" : "ab2", children: n }),
41
+ /* @__PURE__ */ o(A, { $renderAs: t ? "ab2-bold" : "ab2", children: n }),
42
42
  /* @__PURE__ */ o(
43
- A,
43
+ O,
44
44
  {
45
45
  renderLottieJSON: t,
46
46
  imageUrl: c,
47
47
  imageAlt: n,
48
- lottieJSON: h,
49
- lottieWidthX: f ? 4.5 : 3.875
48
+ lottiePath: h,
49
+ lottieWidth: f ? 72 : 62
50
50
  }
51
51
  ),
52
- u && /* @__PURE__ */ o(X, { $renderAs: "ac4-black", children: "Recommended" })
52
+ u && /* @__PURE__ */ o(k, { $renderAs: "ac4-black", children: "Recommended" })
53
53
  ]
54
54
  }
55
55
  );
56
56
  });
57
57
  export {
58
- J as default
58
+ S as default
59
59
  };
60
60
  //# sourceMappingURL=test-radio-card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-radio-card.js","sources":["../../../../../../../../src/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/test-radio-card/test-radio-card.tsx"],"sourcesContent":["import type { ITestRadioCard } from './test-radio-card-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useState } from 'react';\n\nimport Text from '../../../../../../ui/text/text';\nimport TestCardLottieAnimation from './test-card-lottie-animation';\nimport * as Styled from './test-radio-card-styled';\n\nconst TestRadioCard: FC<ITestRadioCard> = memo(props => {\n const {\n selected,\n title,\n backgroundColor,\n imageUrl,\n widthX,\n isRecommended,\n onTestRadioCardChange,\n value,\n lottieJSON,\n isTestDifficultRendering,\n } = props;\n\n const [renderLottieJSON, setRenderJSON] = useState(false);\n\n const canHighlightCard = renderLottieJSON || selected;\n\n const handleOnTestRadioCardChange = useCallback(() => {\n onTestRadioCardChange?.(value);\n }, [onTestRadioCardChange, value]);\n\n const handleOnMouseEnter = useCallback(() => {\n setRenderJSON(true);\n }, []);\n\n const handleOnMouseLeave = useCallback(() => {\n setRenderJSON(false);\n }, []);\n\n return (\n <Styled.TestCardWrapper\n $flexDirection=\"row\"\n $justifyContent=\"space-between\"\n $alignItems=\"center\"\n $gapX={1}\n $gutterX={1}\n $widthX={widthX}\n $heightX={5.75}\n $borderColor={canHighlightCard ? 'BLACK_T_87' : 'BLACK_T_38'}\n $background={canHighlightCard ? backgroundColor : 'WHITE_1'}\n onClick={handleOnTestRadioCardChange}\n onMouseEnter={handleOnMouseEnter}\n onMouseLeave={handleOnMouseLeave}\n >\n <Text $renderAs={canHighlightCard ? 'ab2-bold' : 'ab2'}>{title}</Text>\n\n <TestCardLottieAnimation\n renderLottieJSON={canHighlightCard}\n imageUrl={imageUrl}\n imageAlt={title}\n lottieJSON={lottieJSON}\n lottieWidthX={isTestDifficultRendering ? 4.5 : 3.875}\n />\n\n {isRecommended && (\n <Styled.RecommendedTag $renderAs=\"ac4-black\">Recommended</Styled.RecommendedTag>\n )}\n </Styled.TestCardWrapper>\n );\n});\n\nexport default TestRadioCard;\n"],"names":["TestRadioCard","memo","props","selected","title","backgroundColor","imageUrl","widthX","isRecommended","onTestRadioCardChange","value","lottieJSON","isTestDifficultRendering","renderLottieJSON","setRenderJSON","useState","canHighlightCard","handleOnTestRadioCardChange","useCallback","handleOnMouseEnter","handleOnMouseLeave","jsxs","Styled.TestCardWrapper","jsx","Text","TestCardLottieAnimation","Styled.RecommendedTag"],"mappings":";;;;;AASM,MAAAA,IAAoCC,EAAK,CAASC,MAAA;AAChD,QAAA;AAAA,IACJ,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,QAAAC;AAAA,IACA,eAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,YAAAC;AAAA,IACA,0BAAAC;AAAA,EACE,IAAAV,GAEE,CAACW,GAAkBC,CAAa,IAAIC,EAAS,EAAK,GAElDC,IAAmBH,KAAoBV,GAEvCc,IAA8BC,EAAY,MAAM;AACpD,IAAAT,KAAA,QAAAA,EAAwBC;AAAA,EAAK,GAC5B,CAACD,GAAuBC,CAAK,CAAC,GAE3BS,IAAqBD,EAAY,MAAM;AAC3C,IAAAJ,EAAc,EAAI;AAAA,EACpB,GAAG,CAAE,CAAA,GAECM,IAAqBF,EAAY,MAAM;AAC3C,IAAAJ,EAAc,EAAK;AAAA,EACrB,GAAG,CAAE,CAAA;AAGH,SAAA,gBAAAO;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,gBAAe;AAAA,MACf,iBAAgB;AAAA,MAChB,aAAY;AAAA,MACZ,OAAO;AAAA,MACP,UAAU;AAAA,MACV,SAASf;AAAA,MACT,UAAU;AAAA,MACV,cAAcS,IAAmB,eAAe;AAAA,MAChD,aAAaA,IAAmBX,IAAkB;AAAA,MAClD,SAASY;AAAA,MACT,cAAcE;AAAA,MACd,cAAcC;AAAA,MAEd,UAAA;AAAA,QAAA,gBAAAG,EAACC,GAAK,EAAA,WAAWR,IAAmB,aAAa,OAAQ,UAAMZ,GAAA;AAAA,QAE/D,gBAAAmB;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,kBAAkBT;AAAA,YAClB,UAAAV;AAAA,YACA,UAAUF;AAAA,YACV,YAAAO;AAAA,YACA,cAAcC,IAA2B,MAAM;AAAA,UAAA;AAAA,QACjD;AAAA,QAECJ,KACE,gBAAAe,EAAAG,GAAA,EAAsB,WAAU,aAAY,UAAW,eAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIhE,CAAC;"}
1
+ {"version":3,"file":"test-radio-card.js","sources":["../../../../../../../../src/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/test-radio-card/test-radio-card.tsx"],"sourcesContent":["import type { ITestRadioCard } from './test-radio-card-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useState } from 'react';\n\nimport Text from '../../../../../../ui/text/text';\nimport TestCardLottieAnimation from './test-card-lottie-animation';\nimport * as Styled from './test-radio-card-styled';\n\nconst TestRadioCard: FC<ITestRadioCard> = memo(props => {\n const {\n selected,\n title,\n backgroundColor,\n imageUrl,\n widthX,\n isRecommended,\n onTestRadioCardChange,\n value,\n lottiePath,\n isTestDifficultRendering,\n } = props;\n\n const [renderLottieJSON, setRenderJSON] = useState(false);\n\n const canHighlightCard = renderLottieJSON || selected;\n\n const handleOnTestRadioCardChange = useCallback(() => {\n onTestRadioCardChange?.(value);\n }, [onTestRadioCardChange, value]);\n\n const handleOnMouseEnter = useCallback(() => {\n setRenderJSON(true);\n }, []);\n\n const handleOnMouseLeave = useCallback(() => {\n setRenderJSON(false);\n }, []);\n\n return (\n <Styled.TestCardWrapper\n $flexDirection=\"row\"\n $justifyContent=\"space-between\"\n $alignItems=\"center\"\n $gapX={1}\n $gutterX={1}\n $widthX={widthX}\n $heightX={5.75}\n $borderColor={canHighlightCard ? 'BLACK_T_87' : 'BLACK_T_38'}\n $background={canHighlightCard ? backgroundColor : 'WHITE_1'}\n onClick={handleOnTestRadioCardChange}\n onMouseEnter={handleOnMouseEnter}\n onMouseLeave={handleOnMouseLeave}\n >\n <Text $renderAs={canHighlightCard ? 'ab2-bold' : 'ab2'}>{title}</Text>\n\n <TestCardLottieAnimation\n renderLottieJSON={canHighlightCard}\n imageUrl={imageUrl}\n imageAlt={title}\n lottiePath={lottiePath}\n lottieWidth={isTestDifficultRendering ? 72 : 62}\n />\n\n {isRecommended && (\n <Styled.RecommendedTag $renderAs=\"ac4-black\">Recommended</Styled.RecommendedTag>\n )}\n </Styled.TestCardWrapper>\n );\n});\n\nexport default TestRadioCard;\n"],"names":["TestRadioCard","memo","props","selected","title","backgroundColor","imageUrl","widthX","isRecommended","onTestRadioCardChange","value","lottiePath","isTestDifficultRendering","renderLottieJSON","setRenderJSON","useState","canHighlightCard","handleOnTestRadioCardChange","useCallback","handleOnMouseEnter","handleOnMouseLeave","jsxs","Styled.TestCardWrapper","jsx","Text","TestCardLottieAnimation","Styled.RecommendedTag"],"mappings":";;;;;AASM,MAAAA,IAAoCC,EAAK,CAASC,MAAA;AAChD,QAAA;AAAA,IACJ,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,QAAAC;AAAA,IACA,eAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,YAAAC;AAAA,IACA,0BAAAC;AAAA,EACE,IAAAV,GAEE,CAACW,GAAkBC,CAAa,IAAIC,EAAS,EAAK,GAElDC,IAAmBH,KAAoBV,GAEvCc,IAA8BC,EAAY,MAAM;AACpD,IAAAT,KAAA,QAAAA,EAAwBC;AAAA,EAAK,GAC5B,CAACD,GAAuBC,CAAK,CAAC,GAE3BS,IAAqBD,EAAY,MAAM;AAC3C,IAAAJ,EAAc,EAAI;AAAA,EACpB,GAAG,CAAE,CAAA,GAECM,IAAqBF,EAAY,MAAM;AAC3C,IAAAJ,EAAc,EAAK;AAAA,EACrB,GAAG,CAAE,CAAA;AAGH,SAAA,gBAAAO;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,gBAAe;AAAA,MACf,iBAAgB;AAAA,MAChB,aAAY;AAAA,MACZ,OAAO;AAAA,MACP,UAAU;AAAA,MACV,SAASf;AAAA,MACT,UAAU;AAAA,MACV,cAAcS,IAAmB,eAAe;AAAA,MAChD,aAAaA,IAAmBX,IAAkB;AAAA,MAClD,SAASY;AAAA,MACT,cAAcE;AAAA,MACd,cAAcC;AAAA,MAEd,UAAA;AAAA,QAAA,gBAAAG,EAACC,GAAK,EAAA,WAAWR,IAAmB,aAAa,OAAQ,UAAMZ,GAAA;AAAA,QAE/D,gBAAAmB;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,kBAAkBT;AAAA,YAClB,UAAAV;AAAA,YACA,UAAUF;AAAA,YACV,YAAAO;AAAA,YACA,aAAaC,IAA2B,KAAK;AAAA,UAAA;AAAA,QAC/C;AAAA,QAECJ,KACE,gBAAAe,EAAAG,GAAA,EAAsB,WAAU,aAAY,UAAW,eAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIhE,CAAC;"}
@@ -1,75 +1,69 @@
1
- import { ILLUSTRATIONS as i } from "../../../../../assets/illustrations/illustrations.js";
2
- import t from "../../../../../assets/lotties/tests-creation/clock_30_min.json.js";
3
- import l from "../../../../../assets/lotties/tests-creation/clock_45_min.json.js";
4
- import _ from "../../../../../assets/lotties/tests-creation/clock_60_min.json.js";
5
- import I from "../../../../../assets/lotties/tests-creation/clock_90_min.json.js";
6
- import N from "../../../../../assets/lotties/tests-creation/difficult.json.js";
7
- import e from "../../../../../assets/lotties/tests-creation/easy.json.js";
8
- import m from "../../../../../assets/lotties/tests-creation/medium.json.js";
9
- import { TEST_DURATION as o } from "../constants/index.js";
1
+ import { ILLUSTRATIONS as o } from "../../../../../assets/illustrations/illustrations.js";
2
+ import { LOTTIE as r } from "../../../../../assets/lottie/lottie.js";
3
+ import { TEST_DURATION as t } from "../constants/index.js";
10
4
  const {
11
- DURATION_30MIN_GRAY: M,
12
- DURATION_45MIN_GRAY: a,
13
- DURATION_60MIN_GRAY: n,
14
- DURATION_90MIN_GRAY: T,
15
- TEST_DIFFICULTY_EASY: u,
16
- TEST_DIFFICULTY_MEDIUM: U,
17
- TEST_DIFFICULTY_HARD: c
18
- } = i, k = (r) => r > 0 && r <= 2 ? o.MIN_30 : r > 2 && r <= 4 ? o.MIN_45 : r > 4 && r <= 6 ? o.MIN_60 : o.MIN_90, Y = () => [
5
+ DURATION_30MIN_GRAY: _,
6
+ DURATION_45MIN_GRAY: i,
7
+ DURATION_60MIN_GRAY: l,
8
+ DURATION_90MIN_GRAY: M,
9
+ TEST_DIFFICULTY_EASY: a,
10
+ TEST_DIFFICULTY_MEDIUM: N,
11
+ TEST_DIFFICULTY_HARD: e
12
+ } = o, n = (I) => I > 0 && I <= 2 ? t.MIN_30 : I > 2 && I <= 4 ? t.MIN_45 : I > 4 && I <= 6 ? t.MIN_60 : t.MIN_90, u = () => [
19
13
  {
20
- title: `${o.MIN_30} Min`,
21
- value: o.MIN_30,
22
- imageUrl: M,
23
- lottieJSON: t,
14
+ title: `${t.MIN_30} Min`,
15
+ value: t.MIN_30,
16
+ imageUrl: _,
17
+ lottiePath: r.CLOCK_30MIN,
24
18
  backgroundColor: "GREEN_1"
25
19
  },
26
20
  {
27
- title: `${o.MIN_45} Min`,
28
- value: o.MIN_45,
29
- imageUrl: a,
30
- lottieJSON: l,
21
+ title: `${t.MIN_45} Min`,
22
+ value: t.MIN_45,
23
+ imageUrl: i,
24
+ lottiePath: r.CLOCK_45MIN,
31
25
  backgroundColor: "BLUE_1"
32
26
  },
33
27
  {
34
- title: `${o.MIN_60} Min`,
35
- value: o.MIN_60,
36
- imageUrl: n,
37
- lottieJSON: _,
28
+ title: `${t.MIN_60} Min`,
29
+ value: t.MIN_60,
30
+ imageUrl: l,
31
+ lottiePath: r.CLOCK_60MIN,
38
32
  backgroundColor: "YELLOW_1"
39
33
  },
40
34
  {
41
- title: `${o.MIN_90} Min`,
42
- value: o.MIN_90,
43
- imageUrl: T,
44
- lottieJSON: I,
35
+ title: `${t.MIN_90} Min`,
36
+ value: t.MIN_90,
37
+ imageUrl: M,
38
+ lottiePath: r.CLOCK_90MIN,
45
39
  backgroundColor: "ORANGE_1"
46
40
  }
47
- ], d = () => [
41
+ ], L = () => [
48
42
  {
49
43
  title: "Easy",
50
- imageUrl: u,
51
- lottieJSON: e,
44
+ imageUrl: a,
45
+ lottiePath: r.EASY,
52
46
  backgroundColor: "BLUE_1",
53
47
  value: "EASY"
54
48
  },
55
49
  {
56
50
  title: "Moderate",
57
51
  value: "MODERATE",
58
- lottieJSON: m,
59
- imageUrl: U,
52
+ lottiePath: r.MEDIUM,
53
+ imageUrl: N,
60
54
  backgroundColor: "YELLOW_1"
61
55
  },
62
56
  {
63
57
  title: "Difficult",
64
58
  value: "DIFFICULT",
65
- lottieJSON: N,
66
- imageUrl: c,
59
+ lottiePath: r.DIFFICULT,
60
+ imageUrl: e,
67
61
  backgroundColor: "ORANGE_1"
68
62
  }
69
63
  ];
70
64
  export {
71
- d as getDifficultyLevelCards,
72
- k as getRecommendedTestDuration,
73
- Y as getTestDurationCards
65
+ L as getDifficultyLevelCards,
66
+ n as getRecommendedTestDuration,
67
+ u as getTestDurationCards
74
68
  };
75
69
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../src/features/milestone/milestone-tests/tests-creation/utils/index.ts"],"sourcesContent":["import type { ITestDifficultyLevelCards } from '../test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection-types';\nimport type { ITestRadioCard } from '../test-stages/difficulty-and-duration-selection/test-radio-card/test-radio-card-types';\n\nimport { ILLUSTRATIONS } from '../../../../../assets/illustrations/illustrations';\nimport clock30Min from '../../../../../assets/lotties/tests-creation/clock_30_min.json';\nimport clock45Min from '../../../../../assets/lotties/tests-creation/clock_45_min.json';\nimport clock60Min from '../../../../../assets/lotties/tests-creation/clock_60_min.json';\nimport clock90Min from '../../../../../assets/lotties/tests-creation/clock_90_min.json';\nimport difficult from '../../../../../assets/lotties/tests-creation/difficult.json';\nimport easy from '../../../../../assets/lotties/tests-creation/easy.json';\nimport medium from '../../../../../assets/lotties/tests-creation/medium.json';\nimport { TEST_DURATION } from '../constants';\n\nconst {\n DURATION_30MIN_GRAY,\n DURATION_45MIN_GRAY,\n DURATION_60MIN_GRAY,\n DURATION_90MIN_GRAY,\n TEST_DIFFICULTY_EASY,\n TEST_DIFFICULTY_MEDIUM,\n TEST_DIFFICULTY_HARD,\n} = ILLUSTRATIONS;\n\nconst getRecommendedTestDuration = (selectedChaptersCount: number) => {\n if (selectedChaptersCount > 0 && selectedChaptersCount <= 2) return TEST_DURATION.MIN_30;\n\n if (selectedChaptersCount > 2 && selectedChaptersCount <= 4) return TEST_DURATION.MIN_45;\n\n if (selectedChaptersCount > 4 && selectedChaptersCount <= 6) return TEST_DURATION.MIN_60;\n\n return TEST_DURATION.MIN_90;\n};\n\nconst getTestDurationCards = (): ITestRadioCard[] => {\n return [\n {\n title: `${TEST_DURATION.MIN_30} Min`,\n value: TEST_DURATION.MIN_30,\n imageUrl: DURATION_30MIN_GRAY,\n lottieJSON: clock30Min,\n backgroundColor: 'GREEN_1',\n },\n {\n title: `${TEST_DURATION.MIN_45} Min`,\n value: TEST_DURATION.MIN_45,\n imageUrl: DURATION_45MIN_GRAY,\n lottieJSON: clock45Min,\n backgroundColor: 'BLUE_1',\n },\n {\n title: `${TEST_DURATION.MIN_60} Min`,\n value: TEST_DURATION.MIN_60,\n imageUrl: DURATION_60MIN_GRAY,\n lottieJSON: clock60Min,\n backgroundColor: 'YELLOW_1',\n },\n {\n title: `${TEST_DURATION.MIN_90} Min`,\n value: TEST_DURATION.MIN_90,\n imageUrl: DURATION_90MIN_GRAY,\n lottieJSON: clock90Min,\n backgroundColor: 'ORANGE_1',\n },\n ];\n};\n\nconst getDifficultyLevelCards = (): ITestDifficultyLevelCards[] => {\n return [\n {\n title: 'Easy',\n imageUrl: TEST_DIFFICULTY_EASY,\n lottieJSON: easy,\n backgroundColor: 'BLUE_1',\n value: 'EASY',\n },\n {\n title: 'Moderate',\n value: 'MODERATE',\n lottieJSON: medium,\n imageUrl: TEST_DIFFICULTY_MEDIUM,\n backgroundColor: 'YELLOW_1',\n },\n {\n title: 'Difficult',\n value: 'DIFFICULT',\n lottieJSON: difficult,\n imageUrl: TEST_DIFFICULTY_HARD,\n backgroundColor: 'ORANGE_1',\n },\n ];\n};\n\nexport { getRecommendedTestDuration, getTestDurationCards, getDifficultyLevelCards };\n"],"names":["DURATION_30MIN_GRAY","DURATION_45MIN_GRAY","DURATION_60MIN_GRAY","DURATION_90MIN_GRAY","TEST_DIFFICULTY_EASY","TEST_DIFFICULTY_MEDIUM","TEST_DIFFICULTY_HARD","ILLUSTRATIONS","getRecommendedTestDuration","selectedChaptersCount","TEST_DURATION","getTestDurationCards","clock30Min","clock45Min","clock60Min","clock90Min","getDifficultyLevelCards","easy","medium","difficult"],"mappings":";;;;;;;;;AAaA,MAAM;AAAA,EACJ,qBAAAA;AAAA,EACA,qBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,sBAAAC;AACF,IAAIC,GAEEC,IAA6B,CAACC,MAC9BA,IAAwB,KAAKA,KAAyB,IAAUC,EAAc,SAE9ED,IAAwB,KAAKA,KAAyB,IAAUC,EAAc,SAE9ED,IAAwB,KAAKA,KAAyB,IAAUC,EAAc,SAE3EA,EAAc,QAGjBC,IAAuB,MACpB;AAAA,EACL;AAAA,IACE,OAAO,GAAGD,EAAc,MAAM;AAAA,IAC9B,OAAOA,EAAc;AAAA,IACrB,UAAUV;AAAA,IACV,YAAYY;AAAA,IACZ,iBAAiB;AAAA,EACnB;AAAA,EACA;AAAA,IACE,OAAO,GAAGF,EAAc,MAAM;AAAA,IAC9B,OAAOA,EAAc;AAAA,IACrB,UAAUT;AAAA,IACV,YAAYY;AAAA,IACZ,iBAAiB;AAAA,EACnB;AAAA,EACA;AAAA,IACE,OAAO,GAAGH,EAAc,MAAM;AAAA,IAC9B,OAAOA,EAAc;AAAA,IACrB,UAAUR;AAAA,IACV,YAAYY;AAAA,IACZ,iBAAiB;AAAA,EACnB;AAAA,EACA;AAAA,IACE,OAAO,GAAGJ,EAAc,MAAM;AAAA,IAC9B,OAAOA,EAAc;AAAA,IACrB,UAAUP;AAAA,IACV,YAAYY;AAAA,IACZ,iBAAiB;AAAA,EACnB;AAAA,GAIEC,IAA0B,MACvB;AAAA,EACL;AAAA,IACE,OAAO;AAAA,IACP,UAAUZ;AAAA,IACV,YAAYa;AAAA,IACZ,iBAAiB;AAAA,IACjB,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAYC;AAAA,IACZ,UAAUb;AAAA,IACV,iBAAiB;AAAA,EACnB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAYc;AAAA,IACZ,UAAUb;AAAA,IACV,iBAAiB;AAAA,EACnB;AAAA;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/features/milestone/milestone-tests/tests-creation/utils/index.ts"],"sourcesContent":["import type { ITestDifficultyLevelCards } from '../test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection-types';\nimport type { ITestRadioCard } from '../test-stages/difficulty-and-duration-selection/test-radio-card/test-radio-card-types';\n\nimport { ILLUSTRATIONS } from '../../../../../assets/illustrations/illustrations';\nimport { LOTTIE } from '../../../../../assets/lottie/lottie';\nimport { TEST_DURATION } from '../constants';\n\nconst {\n DURATION_30MIN_GRAY,\n DURATION_45MIN_GRAY,\n DURATION_60MIN_GRAY,\n DURATION_90MIN_GRAY,\n TEST_DIFFICULTY_EASY,\n TEST_DIFFICULTY_MEDIUM,\n TEST_DIFFICULTY_HARD,\n} = ILLUSTRATIONS;\n\nconst getRecommendedTestDuration = (selectedChaptersCount: number) => {\n if (selectedChaptersCount > 0 && selectedChaptersCount <= 2) return TEST_DURATION.MIN_30;\n\n if (selectedChaptersCount > 2 && selectedChaptersCount <= 4) return TEST_DURATION.MIN_45;\n\n if (selectedChaptersCount > 4 && selectedChaptersCount <= 6) return TEST_DURATION.MIN_60;\n\n return TEST_DURATION.MIN_90;\n};\n\nconst getTestDurationCards = (): ITestRadioCard[] => {\n return [\n {\n title: `${TEST_DURATION.MIN_30} Min`,\n value: TEST_DURATION.MIN_30,\n imageUrl: DURATION_30MIN_GRAY,\n lottiePath: LOTTIE.CLOCK_30MIN,\n backgroundColor: 'GREEN_1',\n },\n {\n title: `${TEST_DURATION.MIN_45} Min`,\n value: TEST_DURATION.MIN_45,\n imageUrl: DURATION_45MIN_GRAY,\n lottiePath: LOTTIE.CLOCK_45MIN,\n backgroundColor: 'BLUE_1',\n },\n {\n title: `${TEST_DURATION.MIN_60} Min`,\n value: TEST_DURATION.MIN_60,\n imageUrl: DURATION_60MIN_GRAY,\n lottiePath: LOTTIE.CLOCK_60MIN,\n backgroundColor: 'YELLOW_1',\n },\n {\n title: `${TEST_DURATION.MIN_90} Min`,\n value: TEST_DURATION.MIN_90,\n imageUrl: DURATION_90MIN_GRAY,\n lottiePath: LOTTIE.CLOCK_90MIN,\n backgroundColor: 'ORANGE_1',\n },\n ];\n};\n\nconst getDifficultyLevelCards = (): ITestDifficultyLevelCards[] => {\n return [\n {\n title: 'Easy',\n imageUrl: TEST_DIFFICULTY_EASY,\n lottiePath: LOTTIE.EASY,\n backgroundColor: 'BLUE_1',\n value: 'EASY',\n },\n {\n title: 'Moderate',\n value: 'MODERATE',\n lottiePath: LOTTIE.MEDIUM,\n imageUrl: TEST_DIFFICULTY_MEDIUM,\n backgroundColor: 'YELLOW_1',\n },\n {\n title: 'Difficult',\n value: 'DIFFICULT',\n lottiePath: LOTTIE.DIFFICULT,\n imageUrl: TEST_DIFFICULTY_HARD,\n backgroundColor: 'ORANGE_1',\n },\n ];\n};\n\nexport { getRecommendedTestDuration, getTestDurationCards, getDifficultyLevelCards };\n"],"names":["DURATION_30MIN_GRAY","DURATION_45MIN_GRAY","DURATION_60MIN_GRAY","DURATION_90MIN_GRAY","TEST_DIFFICULTY_EASY","TEST_DIFFICULTY_MEDIUM","TEST_DIFFICULTY_HARD","ILLUSTRATIONS","getRecommendedTestDuration","selectedChaptersCount","TEST_DURATION","getTestDurationCards","LOTTIE","getDifficultyLevelCards"],"mappings":";;;AAOA,MAAM;AAAA,EACJ,qBAAAA;AAAA,EACA,qBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,sBAAAC;AACF,IAAIC,GAEEC,IAA6B,CAACC,MAC9BA,IAAwB,KAAKA,KAAyB,IAAUC,EAAc,SAE9ED,IAAwB,KAAKA,KAAyB,IAAUC,EAAc,SAE9ED,IAAwB,KAAKA,KAAyB,IAAUC,EAAc,SAE3EA,EAAc,QAGjBC,IAAuB,MACpB;AAAA,EACL;AAAA,IACE,OAAO,GAAGD,EAAc,MAAM;AAAA,IAC9B,OAAOA,EAAc;AAAA,IACrB,UAAUV;AAAA,IACV,YAAYY,EAAO;AAAA,IACnB,iBAAiB;AAAA,EACnB;AAAA,EACA;AAAA,IACE,OAAO,GAAGF,EAAc,MAAM;AAAA,IAC9B,OAAOA,EAAc;AAAA,IACrB,UAAUT;AAAA,IACV,YAAYW,EAAO;AAAA,IACnB,iBAAiB;AAAA,EACnB;AAAA,EACA;AAAA,IACE,OAAO,GAAGF,EAAc,MAAM;AAAA,IAC9B,OAAOA,EAAc;AAAA,IACrB,UAAUR;AAAA,IACV,YAAYU,EAAO;AAAA,IACnB,iBAAiB;AAAA,EACnB;AAAA,EACA;AAAA,IACE,OAAO,GAAGF,EAAc,MAAM;AAAA,IAC9B,OAAOA,EAAc;AAAA,IACrB,UAAUP;AAAA,IACV,YAAYS,EAAO;AAAA,IACnB,iBAAiB;AAAA,EACnB;AAAA,GAIEC,IAA0B,MACvB;AAAA,EACL;AAAA,IACE,OAAO;AAAA,IACP,UAAUT;AAAA,IACV,YAAYQ,EAAO;AAAA,IACnB,iBAAiB;AAAA,IACjB,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAYA,EAAO;AAAA,IACnB,UAAUP;AAAA,IACV,iBAAiB;AAAA,EACnB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAYO,EAAO;AAAA,IACnB,UAAUN;AAAA,IACV,iBAAiB;AAAA,EACnB;AAAA;"}
@@ -1,76 +1,80 @@
1
- import { jsxs as C, jsx as t } from "react/jsx-runtime";
1
+ import { jsxs as v, jsx as t } from "react/jsx-runtime";
2
2
  import I from "lottie-web";
3
- import { memo as v, useRef as a, useState as A, useCallback as X, useEffect as Y } from "react";
4
- import { useCircleSounds as j } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds.js";
5
- import { CircleSoundKey as M } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds-enums.js";
3
+ import { memo as X, useRef as a, useState as d, useCallback as W, useEffect as b } from "react";
4
+ import { LOTTIE as M } from "../../../assets/lottie/lottie.js";
5
+ import { useCircleSounds as k } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds.js";
6
+ import { CircleSoundKey as h } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds-enums.js";
6
7
  import { delay as s } from "../../utils/utils.js";
7
- import { AnimatedPercentTextInput as W } from "./accuracy-comps.js";
8
- import { Accuracy as b, AccuracyMeterLottie as k, AnimatedAccuracyNeedleContainer as H, AccuracyNeedleLottie as K, TextWrapper as q, PercentTextWrapper as z } from "./accuracy-styled.js";
9
- import { getAccuracyFramesToPlay as B } from "./accuracy-utils.js";
10
- import { NEEDLE_HOLD_TIME as h, METER as F, TEXT_DISAPPEAR_DELAY as G, TEXT_DISAPPEAR_DURATION as J, TEXT_APPEAR_DURATION as Q, NEEDLE as O, NEEDLE_LOTTIE_FPS as g } from "./constants.js";
11
- const V = () => import("../../../assets/lotties/circle/accuracy-meter-lottie.json.js"), Z = () => import("../../../assets/lotties/circle/accuracy-needle-lottie.json.js"), le = v(({ show: u, onComplete: n, accuracy: l, helperText: y }) => {
12
- const { play: c } = j(), E = a(null), p = a(null), o = a(), r = a(), [x, U] = A(!0), [m, T] = A(!1), [R, $] = A(!1), w = a(0), S = (O.IN_FRAMES[1] - O.IN_FRAMES[0]) / g * 1e3, P = X(async () => {
13
- var d;
8
+ import { AnimatedPercentTextInput as H } from "./accuracy-comps.js";
9
+ import { Accuracy as K, AccuracyMeterLottie as q, AnimatedAccuracyNeedleContainer as z, AccuracyNeedleLottie as B, TextWrapper as G, PercentTextWrapper as J } from "./accuracy-styled.js";
10
+ import { getAccuracyFramesToPlay as Q } from "./accuracy-utils.js";
11
+ import { NEEDLE_HOLD_TIME as C, METER as O, TEXT_DISAPPEAR_DELAY as V, TEXT_DISAPPEAR_DURATION as Z, TEXT_APPEAR_DURATION as ee, NEEDLE as F, NEEDLE_LOTTIE_FPS as U } from "./constants.js";
12
+ const Ae = X(({ show: u, onComplete: n, accuracy: l, helperText: E }) => {
13
+ const { play: c } = k(), y = a(null), p = a(null), o = a(), r = a(), [g, w] = d(!0), [m, T] = d(!1), [R, x] = d(!1), $ = a(0), _ = (F.IN_FRAMES[1] - F.IN_FRAMES[0]) / U * 1e3, S = W(async () => {
14
+ var A;
14
15
  try {
15
- await s(h), U(!1), T(!1), c(M.ACCURACY_OUT), (d = o.current) == null || d.playSegments(F.OUT_FRAMES, !0), await s(G), $(!0), n == null || n();
16
+ await s(C), w(!1), T(!1), c(h.ACCURACY_OUT), (A = o.current) == null || A.playSegments(O.OUT_FRAMES, !0), await s(V), x(!0), n == null || n();
16
17
  } catch (e) {
17
18
  console.log(e);
18
19
  }
19
20
  }, [n, c]);
20
- return Y(() => {
21
+ return b(() => {
21
22
  if (u)
22
23
  return (async () => {
23
- var _;
24
+ var L;
24
25
  const [e, i] = await Promise.all([
25
- V(),
26
- Z()
26
+ fetch(M.ACCURACY_METER),
27
+ fetch(M.ACCURACY_NEEDLE)
28
+ ]), [Y, j] = await Promise.all([
29
+ e.json(),
30
+ i.json()
27
31
  ]);
28
32
  o.current = I.loadAnimation({
29
- container: E.current,
30
- animationData: e.default,
33
+ container: y.current,
34
+ animationData: Y,
31
35
  autoplay: !1,
32
36
  loop: !1,
33
37
  renderer: "svg"
34
38
  }), r.current = I.loadAnimation({
35
39
  container: p.current,
36
- animationData: i.default,
40
+ animationData: j,
37
41
  autoplay: !1,
38
42
  loop: !1,
39
43
  renderer: "svg"
40
- }), c(M.ACCURACY_IN), (_ = o.current) == null || _.playSegments(F.IN_FRAMES, !0), s(S).then(() => {
41
- var L, N, D;
42
- const f = B(l);
43
- w.current = f, (L = r.current) == null || L.setSpeed(f / g), (N = r.current) == null || N.playSegments([0, f], !0), T(!0), (D = r.current) == null || D.addEventListener("complete", () => {
44
- s(h).then(() => P());
44
+ }), c(h.ACCURACY_IN), (L = o.current) == null || L.playSegments(O.IN_FRAMES, !0), s(_).then(() => {
45
+ var D, P, N;
46
+ const f = Q(l);
47
+ $.current = f, (D = r.current) == null || D.setSpeed(f / U), (P = r.current) == null || P.playSegments([0, f], !0), T(!0), (N = r.current) == null || N.addEventListener("complete", () => {
48
+ s(C).then(() => S());
45
49
  });
46
50
  });
47
51
  })(), () => {
48
52
  var e, i;
49
53
  (e = o.current) == null || e.destroy(), (i = r.current) == null || i.destroy();
50
54
  };
51
- }, [u, l, S, P, c]), u ? /* @__PURE__ */ C(b, { children: [
52
- /* @__PURE__ */ t(k, { ref: E }),
53
- x && /* @__PURE__ */ t(H, { children: /* @__PURE__ */ t(K, { ref: p }) }),
54
- y && /* @__PURE__ */ t(
55
- q,
55
+ }, [u, l, _, S, c]), u ? /* @__PURE__ */ v(K, { children: [
56
+ /* @__PURE__ */ t(q, { ref: y }),
57
+ g && /* @__PURE__ */ t(z, { children: /* @__PURE__ */ t(B, { ref: p }) }),
58
+ E && /* @__PURE__ */ t(
59
+ G,
56
60
  {
57
61
  $delay: 1e3,
58
62
  $animationType: R ? "fadeout" : "fadein",
59
- $duration: R ? J : Q,
60
- children: y
63
+ $duration: R ? Z : ee,
64
+ children: E
61
65
  }
62
66
  ),
63
67
  m && /* @__PURE__ */ t(
64
- z,
68
+ J,
65
69
  {
66
70
  $animationType: m ? "fadein" : "fadeout",
67
71
  $duration: 200,
68
- children: /* @__PURE__ */ t(W, { accuracy: Math.round(l), time: 1e3 })
72
+ children: /* @__PURE__ */ t(H, { accuracy: Math.round(l), time: 1e3 })
69
73
  }
70
74
  )
71
75
  ] }) : null;
72
76
  });
73
77
  export {
74
- le as Accuracy
78
+ Ae as Accuracy
75
79
  };
76
80
  //# sourceMappingURL=accuracy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accuracy.js","sources":["../../../../src/features/post-game-stats/accuracy/accuracy.tsx"],"sourcesContent":["import type { IAccuracyProps } from './accuracy-types';\nimport type { AnimationItem } from 'lottie-web';\nimport type { FC } from 'react';\n\nimport Lottie from 'lottie-web';\nimport { memo, useEffect, useRef, useState, useCallback } from 'react';\n\nimport { useCircleSounds } from '../../circle-games/hooks/use-circle-sounds/use-circle-sounds';\nimport { CircleSoundKey } from '../../circle-games/hooks/use-circle-sounds/use-circle-sounds-enums';\nimport { delay } from '../../utils/utils';\nimport { AnimatedPercentTextInput } from './accuracy-comps';\nimport * as Styled from './accuracy-styled';\nimport { getAccuracyFramesToPlay } from './accuracy-utils';\nimport {\n METER,\n NEEDLE,\n NEEDLE_HOLD_TIME,\n TEXT_APPEAR_DURATION,\n TEXT_DISAPPEAR_DELAY,\n TEXT_DISAPPEAR_DURATION,\n NEEDLE_LOTTIE_FPS,\n} from './constants';\n\nconst accuracyMeterLottie = () =>\n import('../../../assets/lotties/circle/accuracy-meter-lottie.json');\nconst accuracyNeedleLottie = () =>\n import('../../../assets/lotties/circle/accuracy-needle-lottie.json');\n\nexport const Accuracy: FC<IAccuracyProps> = memo(({ show, onComplete, accuracy, helperText }) => {\n const { play } = useCircleSounds();\n const accuracyMeterRef = useRef<HTMLDivElement>(null);\n const accuracyNeedleRef = useRef<HTMLDivElement>(null);\n const accuracyMeterAnimationRef = useRef<AnimationItem>();\n const accuracyNeedleAnimationRef = useRef<AnimationItem>();\n\n const [showAccuracy, setShowAccuracy] = useState(true);\n const [showPercent, setShowPercent] = useState(false);\n const [fadeOut, setFadeOut] = useState(false);\n const needleFramesToPlay = useRef(0);\n\n const percentStartAnimationDelayInMs =\n ((NEEDLE.IN_FRAMES[1] - NEEDLE.IN_FRAMES[0]) / NEEDLE_LOTTIE_FPS) * 1000;\n\n const playExitAnimation = useCallback(async () => {\n try {\n await delay(NEEDLE_HOLD_TIME);\n setShowAccuracy(false);\n setShowPercent(false);\n play(CircleSoundKey.ACCURACY_OUT);\n accuracyMeterAnimationRef.current?.playSegments(METER.OUT_FRAMES, true);\n await delay(TEXT_DISAPPEAR_DELAY);\n setFadeOut(true);\n onComplete?.();\n } catch (err) {\n /* eslint-disable no-console */\n console.log(err);\n }\n }, [onComplete, play]);\n\n useEffect(() => {\n if (show) {\n const loadAnimations = async () => {\n const [meterLottiePath, needleLottiePath] = await Promise.all([\n accuracyMeterLottie(),\n accuracyNeedleLottie(),\n ]);\n\n accuracyMeterAnimationRef.current = Lottie.loadAnimation({\n container: accuracyMeterRef.current as Element,\n animationData: meterLottiePath.default,\n autoplay: false,\n loop: false,\n renderer: 'svg',\n });\n\n accuracyNeedleAnimationRef.current = Lottie.loadAnimation({\n container: accuracyNeedleRef.current as Element,\n animationData: needleLottiePath.default,\n autoplay: false,\n loop: false,\n renderer: 'svg',\n });\n\n play(CircleSoundKey.ACCURACY_IN);\n accuracyMeterAnimationRef.current?.playSegments(METER.IN_FRAMES, true);\n\n delay(percentStartAnimationDelayInMs).then(() => {\n const frames = getAccuracyFramesToPlay(accuracy);\n\n needleFramesToPlay.current = frames;\n accuracyNeedleAnimationRef.current?.setSpeed(frames / NEEDLE_LOTTIE_FPS);\n accuracyNeedleAnimationRef.current?.playSegments([0, frames], true);\n setShowPercent(true);\n\n accuracyNeedleAnimationRef.current?.addEventListener('complete', () => {\n delay(NEEDLE_HOLD_TIME).then(() => playExitAnimation());\n });\n });\n };\n\n loadAnimations();\n\n return () => {\n accuracyMeterAnimationRef.current?.destroy();\n accuracyNeedleAnimationRef.current?.destroy();\n };\n }\n }, [show, accuracy, percentStartAnimationDelayInMs, playExitAnimation, play]);\n\n if (show) {\n return (\n <Styled.Accuracy>\n <Styled.AccuracyMeterLottie ref={accuracyMeterRef} />\n {showAccuracy && (\n <Styled.AnimatedAccuracyNeedleContainer>\n <Styled.AccuracyNeedleLottie ref={accuracyNeedleRef} />\n </Styled.AnimatedAccuracyNeedleContainer>\n )}\n {helperText && (\n <Styled.TextWrapper\n $delay={1000}\n $animationType={fadeOut ? 'fadeout' : 'fadein'}\n $duration={fadeOut ? TEXT_DISAPPEAR_DURATION : TEXT_APPEAR_DURATION}\n >\n {helperText}\n </Styled.TextWrapper>\n )}\n {showPercent && (\n <Styled.PercentTextWrapper\n $animationType={showPercent ? 'fadein' : 'fadeout'}\n $duration={showPercent ? 200 : 200}\n >\n <AnimatedPercentTextInput accuracy={Math.round(accuracy)} time={1000} />\n </Styled.PercentTextWrapper>\n )}\n </Styled.Accuracy>\n );\n }\n\n return null;\n});\n"],"names":["accuracyMeterLottie","accuracyNeedleLottie","Accuracy","memo","show","onComplete","accuracy","helperText","play","useCircleSounds","accuracyMeterRef","useRef","accuracyNeedleRef","accuracyMeterAnimationRef","accuracyNeedleAnimationRef","showAccuracy","setShowAccuracy","useState","showPercent","setShowPercent","fadeOut","setFadeOut","needleFramesToPlay","percentStartAnimationDelayInMs","NEEDLE","NEEDLE_LOTTIE_FPS","playExitAnimation","useCallback","delay","NEEDLE_HOLD_TIME","CircleSoundKey","_a","METER","TEXT_DISAPPEAR_DELAY","err","useEffect","meterLottiePath","needleLottiePath","Lottie","frames","getAccuracyFramesToPlay","_b","_c","jsxs","Styled.Accuracy","jsx","Styled.AccuracyMeterLottie","Styled.AnimatedAccuracyNeedleContainer","Styled.AccuracyNeedleLottie","Styled.TextWrapper","TEXT_DISAPPEAR_DURATION","TEXT_APPEAR_DURATION","Styled.PercentTextWrapper","AnimatedPercentTextInput"],"mappings":"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"}
1
+ {"version":3,"file":"accuracy.js","sources":["../../../../src/features/post-game-stats/accuracy/accuracy.tsx"],"sourcesContent":["import type { IAccuracyProps } from './accuracy-types';\nimport type { AnimationItem } from 'lottie-web';\nimport type { FC } from 'react';\n\nimport Lottie from 'lottie-web';\nimport { memo, useEffect, useRef, useState, useCallback } from 'react';\n\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport { useCircleSounds } from '../../circle-games/hooks/use-circle-sounds/use-circle-sounds';\nimport { CircleSoundKey } from '../../circle-games/hooks/use-circle-sounds/use-circle-sounds-enums';\nimport { delay } from '../../utils/utils';\nimport { AnimatedPercentTextInput } from './accuracy-comps';\nimport * as Styled from './accuracy-styled';\nimport { getAccuracyFramesToPlay } from './accuracy-utils';\nimport {\n METER,\n NEEDLE,\n NEEDLE_HOLD_TIME,\n TEXT_APPEAR_DURATION,\n TEXT_DISAPPEAR_DELAY,\n TEXT_DISAPPEAR_DURATION,\n NEEDLE_LOTTIE_FPS,\n} from './constants';\n\nexport const Accuracy: FC<IAccuracyProps> = memo(({ show, onComplete, accuracy, helperText }) => {\n const { play } = useCircleSounds();\n const accuracyMeterRef = useRef<HTMLDivElement>(null);\n const accuracyNeedleRef = useRef<HTMLDivElement>(null);\n const accuracyMeterAnimationRef = useRef<AnimationItem>();\n const accuracyNeedleAnimationRef = useRef<AnimationItem>();\n\n const [showAccuracy, setShowAccuracy] = useState(true);\n const [showPercent, setShowPercent] = useState(false);\n const [fadeOut, setFadeOut] = useState(false);\n const needleFramesToPlay = useRef(0);\n\n const percentStartAnimationDelayInMs =\n ((NEEDLE.IN_FRAMES[1] - NEEDLE.IN_FRAMES[0]) / NEEDLE_LOTTIE_FPS) * 1000;\n\n const playExitAnimation = useCallback(async () => {\n try {\n await delay(NEEDLE_HOLD_TIME);\n setShowAccuracy(false);\n setShowPercent(false);\n play(CircleSoundKey.ACCURACY_OUT);\n accuracyMeterAnimationRef.current?.playSegments(METER.OUT_FRAMES, true);\n await delay(TEXT_DISAPPEAR_DELAY);\n setFadeOut(true);\n onComplete?.();\n } catch (err) {\n /* eslint-disable no-console */\n console.log(err);\n }\n }, [onComplete, play]);\n\n useEffect(() => {\n if (show) {\n const loadAnimations = async () => {\n const [meterLottie, needleLottie] = await Promise.all([\n fetch(LOTTIE.ACCURACY_METER),\n fetch(LOTTIE.ACCURACY_NEEDLE),\n ]);\n const [meterLottieData, needleLottieData] = await Promise.all([\n meterLottie.json(),\n needleLottie.json(),\n ]);\n\n accuracyMeterAnimationRef.current = Lottie.loadAnimation({\n container: accuracyMeterRef.current as Element,\n animationData: meterLottieData,\n autoplay: false,\n loop: false,\n renderer: 'svg',\n });\n\n accuracyNeedleAnimationRef.current = Lottie.loadAnimation({\n container: accuracyNeedleRef.current as Element,\n animationData: needleLottieData,\n autoplay: false,\n loop: false,\n renderer: 'svg',\n });\n\n play(CircleSoundKey.ACCURACY_IN);\n accuracyMeterAnimationRef.current?.playSegments(METER.IN_FRAMES, true);\n\n delay(percentStartAnimationDelayInMs).then(() => {\n const frames = getAccuracyFramesToPlay(accuracy);\n\n needleFramesToPlay.current = frames;\n accuracyNeedleAnimationRef.current?.setSpeed(frames / NEEDLE_LOTTIE_FPS);\n accuracyNeedleAnimationRef.current?.playSegments([0, frames], true);\n setShowPercent(true);\n\n accuracyNeedleAnimationRef.current?.addEventListener('complete', () => {\n delay(NEEDLE_HOLD_TIME).then(() => playExitAnimation());\n });\n });\n };\n\n loadAnimations();\n\n return () => {\n accuracyMeterAnimationRef.current?.destroy();\n accuracyNeedleAnimationRef.current?.destroy();\n };\n }\n }, [show, accuracy, percentStartAnimationDelayInMs, playExitAnimation, play]);\n\n if (show) {\n return (\n <Styled.Accuracy>\n <Styled.AccuracyMeterLottie ref={accuracyMeterRef} />\n {showAccuracy && (\n <Styled.AnimatedAccuracyNeedleContainer>\n <Styled.AccuracyNeedleLottie ref={accuracyNeedleRef} />\n </Styled.AnimatedAccuracyNeedleContainer>\n )}\n {helperText && (\n <Styled.TextWrapper\n $delay={1000}\n $animationType={fadeOut ? 'fadeout' : 'fadein'}\n $duration={fadeOut ? TEXT_DISAPPEAR_DURATION : TEXT_APPEAR_DURATION}\n >\n {helperText}\n </Styled.TextWrapper>\n )}\n {showPercent && (\n <Styled.PercentTextWrapper\n $animationType={showPercent ? 'fadein' : 'fadeout'}\n $duration={showPercent ? 200 : 200}\n >\n <AnimatedPercentTextInput accuracy={Math.round(accuracy)} time={1000} />\n </Styled.PercentTextWrapper>\n )}\n </Styled.Accuracy>\n );\n }\n\n return null;\n});\n"],"names":["Accuracy","memo","show","onComplete","accuracy","helperText","play","useCircleSounds","accuracyMeterRef","useRef","accuracyNeedleRef","accuracyMeterAnimationRef","accuracyNeedleAnimationRef","showAccuracy","setShowAccuracy","useState","showPercent","setShowPercent","fadeOut","setFadeOut","needleFramesToPlay","percentStartAnimationDelayInMs","NEEDLE","NEEDLE_LOTTIE_FPS","playExitAnimation","useCallback","delay","NEEDLE_HOLD_TIME","CircleSoundKey","_a","METER","TEXT_DISAPPEAR_DELAY","err","useEffect","meterLottie","needleLottie","LOTTIE","meterLottieData","needleLottieData","Lottie","frames","getAccuracyFramesToPlay","_b","_c","jsxs","Styled.Accuracy","jsx","Styled.AccuracyMeterLottie","Styled.AnimatedAccuracyNeedleContainer","Styled.AccuracyNeedleLottie","Styled.TextWrapper","TEXT_DISAPPEAR_DURATION","TEXT_APPEAR_DURATION","Styled.PercentTextWrapper","AnimatedPercentTextInput"],"mappings":"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"}