@cuemath/leap 2.8.24-rj-2 → 2.8.25-link.0

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 (247) 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/analytics-events/platform-events-student.js +5 -6
  4. package/dist/features/analytics-events/platform-events-student.js.map +1 -1
  5. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js +81 -79
  6. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js.map +1 -1
  7. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js +5 -6
  8. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js.map +1 -1
  9. package/dist/features/circle-games/game-launcher/game-launcher.js +61 -65
  10. package/dist/features/circle-games/game-launcher/game-launcher.js.map +1 -1
  11. package/dist/features/circle-games/games/web-view/web-view-types.js.map +1 -1
  12. package/dist/features/circle-games/leaderboard/comps/banner/banner.js +35 -53
  13. package/dist/features/circle-games/leaderboard/comps/banner/banner.js.map +1 -1
  14. package/dist/features/circle-games/leaderboard/leaderboard.js +56 -55
  15. package/dist/features/circle-games/leaderboard/leaderboard.js.map +1 -1
  16. package/dist/features/circle-games/sign-up/comp/circular-steps/circular-steps.js +40 -41
  17. package/dist/features/circle-games/sign-up/comp/circular-steps/circular-steps.js.map +1 -1
  18. package/dist/features/circle-games/sign-up/comp/spinner/spinner-styled.js +4 -8
  19. package/dist/features/circle-games/sign-up/comp/spinner/spinner-styled.js.map +1 -1
  20. package/dist/features/circle-games/sign-up/comp/spinner/spinner.js +6 -23
  21. package/dist/features/circle-games/sign-up/comp/spinner/spinner.js.map +1 -1
  22. package/dist/features/circle-games/sign-up/comp/splash-screen/splash-screen.js +40 -35
  23. package/dist/features/circle-games/sign-up/comp/splash-screen/splash-screen.js.map +1 -1
  24. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js +2 -2
  25. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/test-radio-card/test-card-lottie-animation.js +8 -23
  26. 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
  27. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/test-radio-card/test-radio-card.js +11 -11
  28. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/test-radio-card/test-radio-card.js.map +1 -1
  29. package/dist/features/milestone/milestone-tests/tests-creation/utils/index.js +37 -43
  30. package/dist/features/milestone/milestone-tests/tests-creation/utils/index.js.map +1 -1
  31. package/dist/features/post-game-stats/accuracy/accuracy.js +38 -34
  32. package/dist/features/post-game-stats/accuracy/accuracy.js.map +1 -1
  33. package/dist/features/post-game-stats/clock/clock.js +43 -39
  34. package/dist/features/post-game-stats/clock/clock.js.map +1 -1
  35. package/dist/features/post-game-stats/points/points.js +43 -44
  36. package/dist/features/post-game-stats/points/points.js.map +1 -1
  37. package/dist/features/post-game-stats/streak/streak.js +30 -28
  38. package/dist/features/post-game-stats/streak/streak.js.map +1 -1
  39. package/dist/features/trial-session/comps/av-panels/teacher-av-panel/teacher-av-panel.js +56 -54
  40. package/dist/features/trial-session/comps/av-panels/teacher-av-panel/teacher-av-panel.js.map +1 -1
  41. package/dist/features/trial-session/comps/parent-app/parent-app.js +25 -20
  42. package/dist/features/trial-session/comps/parent-app/parent-app.js.map +1 -1
  43. package/dist/features/trial-session/comps/session-insights/session-insights.js +40 -39
  44. package/dist/features/trial-session/comps/session-insights/session-insights.js.map +1 -1
  45. package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js +38 -39
  46. package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js.map +1 -1
  47. package/dist/features/trial-session/trial-session-types.js.map +1 -1
  48. package/dist/features/trial-session/trial-session-view.js +66 -68
  49. package/dist/features/trial-session/trial-session-view.js.map +1 -1
  50. package/dist/features/ui/loader/circular-loader/circular-loader.js +16 -20
  51. package/dist/features/ui/loader/circular-loader/circular-loader.js.map +1 -1
  52. package/dist/features/ui/lottie-animation/helper.js +13 -0
  53. package/dist/features/ui/lottie-animation/helper.js.map +1 -0
  54. package/dist/features/ui/lottie-animation/lottie-animation.js +37 -0
  55. package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -0
  56. package/dist/features/ui/nudge/nudge-styled.js +4 -8
  57. package/dist/features/ui/nudge/nudge-styled.js.map +1 -1
  58. package/dist/features/ui/nudge/nudge.js +13 -30
  59. package/dist/features/ui/nudge/nudge.js.map +1 -1
  60. package/dist/features/ui/perfect-hits/perfect-hits-helpers.js +22 -20
  61. package/dist/features/ui/perfect-hits/perfect-hits-helpers.js.map +1 -1
  62. package/dist/features/worksheet/worksheet/worksheet-permissions/error.js +25 -48
  63. package/dist/features/worksheet/worksheet/worksheet-permissions/error.js.map +1 -1
  64. package/dist/features/worksheet/worksheet/worksheet-question/header/validated-animation.js +12 -26
  65. package/dist/features/worksheet/worksheet/worksheet-question/header/validated-animation.js.map +1 -1
  66. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question-styled.js +4 -0
  67. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question-styled.js.map +1 -1
  68. package/dist/index.d.ts +59 -10
  69. package/dist/index.js +313 -313
  70. package/dist/static/accuracy-meter.99585cba.json +4218 -0
  71. package/dist/static/accuracy-needle.cd6e63ac.json +618 -0
  72. package/dist/static/beginner1x.489908a7.json +3508 -0
  73. package/dist/static/bronze-1.da4e4b5f.json +4176 -0
  74. package/dist/static/bronze-2.97f9c639.json +4433 -0
  75. package/dist/static/bronze-3.6a433ebd.json +4786 -0
  76. package/dist/static/circular-loader.a5a1a0a6.json +238 -0
  77. package/dist/static/clock-30min.eae818b8.json +1197 -0
  78. package/dist/static/clock-45min.df8adf51.json +1197 -0
  79. package/dist/static/clock-60min.2b48d875.json +1197 -0
  80. package/dist/static/clock-90min.3e557ed7.json +1407 -0
  81. package/dist/static/color-1.45101b9a.json +4545 -0
  82. package/dist/static/color-2.ccdc7d0a.json +4828 -0
  83. package/dist/static/color-3.5e8e1422.json +5273 -0
  84. package/dist/static/difficult.6846c064.json +2755 -0
  85. package/dist/static/easy-rescheduling-lottie.28026af9.json +9301 -0
  86. package/dist/static/easy.68242ddd.json +2658 -0
  87. package/dist/static/elite-circle.3df58972.json +6876 -0
  88. package/dist/static/error-lottie.b3507a4b.json +5255 -0
  89. package/dist/static/familiar1x.7c9c7f15.json +3046 -0
  90. package/dist/static/fifteen-min-clock.0af4e303.json +715 -0
  91. package/dist/static/five-min-clock.6be5cc41.json +721 -0
  92. package/dist/static/gold-1.ab2489fe.json +4176 -0
  93. package/dist/static/gold-2.34045826.json +4441 -0
  94. package/dist/static/gold-3.d704698b.json +4810 -0
  95. package/dist/static/levelup-rings.b1055283.json +549 -0
  96. package/dist/static/medium.94c3829b.json +2289 -0
  97. package/dist/static/nudge-tap.5cb30093.json +1057 -0
  98. package/dist/static/point1.b53831de.json +2942 -0
  99. package/dist/static/point10.7b5e536d.json +3179 -0
  100. package/dist/static/point100.1df16f82.json +3196 -0
  101. package/dist/static/point15.fea00c32.json +3179 -0
  102. package/dist/static/point20.c88d776d.json +3178 -0
  103. package/dist/static/point25.a18c346a.json +3178 -0
  104. package/dist/static/point30.c5224b0b.json +3202 -0
  105. package/dist/static/point35.fad343dd.json +3058 -0
  106. package/dist/static/point40.10a16f72.json +3082 -0
  107. package/dist/static/point45.2ad7561f.json +3082 -0
  108. package/dist/static/point5.da40ed1f.json +2948 -0
  109. package/dist/static/point50.5718cb3d.json +3046 -0
  110. package/dist/static/point60.17380d9f.json +3076 -0
  111. package/dist/static/proficient1x.fa6e7b80.json +3430 -0
  112. package/dist/static/silver-1.0396328a.json +4168 -0
  113. package/dist/static/silver-2.bf50615f.json +4433 -0
  114. package/dist/static/silver-3.13d66b84.json +4810 -0
  115. package/dist/static/sleepy-boi.031a1165.json +1008 -0
  116. package/dist/static/spinner-white.639e0d87.json +122 -0
  117. package/dist/static/splash-screen.bbf567ce.json +2411 -0
  118. package/dist/static/stay-connected-lottie.111439b3.json +3547 -0
  119. package/dist/static/teacher-validation.7577ecdc.json +245 -0
  120. package/dist/static/total-streak.d5ce7669.json +842 -0
  121. package/dist/static/total-time-spent.434005d3.json +200 -0
  122. package/dist/static/total-time.d979cbb9.json +24383 -0
  123. package/dist/static/tournament-ripple.e5c239a5.json +1047 -0
  124. package/dist/static/track-progress-lottie.422108cf.json +2972 -0
  125. package/package.json +1 -1
  126. package/dist/assets/lotties/circle/100pts.json.js +0 -7957
  127. package/dist/assets/lotties/circle/100pts.json.js.map +0 -1
  128. package/dist/assets/lotties/circle/10pts.json.js +0 -7753
  129. package/dist/assets/lotties/circle/10pts.json.js.map +0 -1
  130. package/dist/assets/lotties/circle/15pts.json.js +0 -7879
  131. package/dist/assets/lotties/circle/15pts.json.js.map +0 -1
  132. package/dist/assets/lotties/circle/1pts.json.js +0 -7257
  133. package/dist/assets/lotties/circle/1pts.json.js.map +0 -1
  134. package/dist/assets/lotties/circle/20pts.json.js +0 -7845
  135. package/dist/assets/lotties/circle/20pts.json.js.map +0 -1
  136. package/dist/assets/lotties/circle/25pts.json.js +0 -7971
  137. package/dist/assets/lotties/circle/25pts.json.js.map +0 -1
  138. package/dist/assets/lotties/circle/30pts.json.js +0 -7941
  139. package/dist/assets/lotties/circle/30pts.json.js.map +0 -1
  140. package/dist/assets/lotties/circle/35pts.json.js +0 -7881
  141. package/dist/assets/lotties/circle/35pts.json.js.map +0 -1
  142. package/dist/assets/lotties/circle/40pts.json.js +0 -7725
  143. package/dist/assets/lotties/circle/40pts.json.js.map +0 -1
  144. package/dist/assets/lotties/circle/45pts.json.js +0 -7851
  145. package/dist/assets/lotties/circle/45pts.json.js.map +0 -1
  146. package/dist/assets/lotties/circle/50pts.json.js +0 -7707
  147. package/dist/assets/lotties/circle/50pts.json.js.map +0 -1
  148. package/dist/assets/lotties/circle/5pts.json.js +0 -7420
  149. package/dist/assets/lotties/circle/5pts.json.js.map +0 -1
  150. package/dist/assets/lotties/circle/60pts.json.js +0 -7701
  151. package/dist/assets/lotties/circle/60pts.json.js.map +0 -1
  152. package/dist/assets/lotties/circle/accuracy-meter-lottie.json.js +0 -6811
  153. package/dist/assets/lotties/circle/accuracy-meter-lottie.json.js.map +0 -1
  154. package/dist/assets/lotties/circle/accuracy-needle-lottie.json.js +0 -1503
  155. package/dist/assets/lotties/circle/accuracy-needle-lottie.json.js.map +0 -1
  156. package/dist/assets/lotties/circle/circular-loader.json.js +0 -635
  157. package/dist/assets/lotties/circle/circular-loader.json.js.map +0 -1
  158. package/dist/assets/lotties/circle/elite-circle-lottie.json.js +0 -12079
  159. package/dist/assets/lotties/circle/elite-circle-lottie.json.js.map +0 -1
  160. package/dist/assets/lotties/circle/levelup-rings-lottie.json.js +0 -1412
  161. package/dist/assets/lotties/circle/levelup-rings-lottie.json.js.map +0 -1
  162. package/dist/assets/lotties/circle/sleepy-boi-lottie.json.js +0 -2632
  163. package/dist/assets/lotties/circle/sleepy-boi-lottie.json.js.map +0 -1
  164. package/dist/assets/lotties/circle/spinner-white.json.js +0 -316
  165. package/dist/assets/lotties/circle/spinner-white.json.js.map +0 -1
  166. package/dist/assets/lotties/circle/splash-screen.json.js +0 -5864
  167. package/dist/assets/lotties/circle/splash-screen.json.js.map +0 -1
  168. package/dist/assets/lotties/circle/total-streak-lottie.json.js +0 -2103
  169. package/dist/assets/lotties/circle/total-streak-lottie.json.js.map +0 -1
  170. package/dist/assets/lotties/circle/total-time-lottie.json.js +0 -33016
  171. package/dist/assets/lotties/circle/total-time-lottie.json.js.map +0 -1
  172. package/dist/assets/lotties/circle/total-time-spent-lottie.json.js +0 -260
  173. package/dist/assets/lotties/circle/total-time-spent-lottie.json.js.map +0 -1
  174. package/dist/assets/lotties/circle/tournament-ripple-lottie.json.js +0 -1563
  175. package/dist/assets/lotties/circle/tournament-ripple-lottie.json.js.map +0 -1
  176. package/dist/assets/lotties/common/nudge-tap.json.js +0 -3597
  177. package/dist/assets/lotties/common/nudge-tap.json.js.map +0 -1
  178. package/dist/assets/lotties/error-lottie.json.js +0 -12755
  179. package/dist/assets/lotties/error-lottie.json.js.map +0 -1
  180. package/dist/assets/lotties/perfect-hits/bronze-1.json.js +0 -10871
  181. package/dist/assets/lotties/perfect-hits/bronze-1.json.js.map +0 -1
  182. package/dist/assets/lotties/perfect-hits/bronze-2.json.js +0 -11389
  183. package/dist/assets/lotties/perfect-hits/bronze-2.json.js.map +0 -1
  184. package/dist/assets/lotties/perfect-hits/bronze-3.json.js +0 -12169
  185. package/dist/assets/lotties/perfect-hits/bronze-3.json.js.map +0 -1
  186. package/dist/assets/lotties/perfect-hits/color-1.json.js +0 -12348
  187. package/dist/assets/lotties/perfect-hits/color-1.json.js.map +0 -1
  188. package/dist/assets/lotties/perfect-hits/color-2.json.js +0 -12941
  189. package/dist/assets/lotties/perfect-hits/color-2.json.js.map +0 -1
  190. package/dist/assets/lotties/perfect-hits/color-3.json.js +0 -14034
  191. package/dist/assets/lotties/perfect-hits/color-3.json.js.map +0 -1
  192. package/dist/assets/lotties/perfect-hits/gold-1.json.js +0 -10871
  193. package/dist/assets/lotties/perfect-hits/gold-1.json.js.map +0 -1
  194. package/dist/assets/lotties/perfect-hits/gold-2.json.js +0 -11389
  195. package/dist/assets/lotties/perfect-hits/gold-2.json.js.map +0 -1
  196. package/dist/assets/lotties/perfect-hits/gold-3.json.js +0 -12169
  197. package/dist/assets/lotties/perfect-hits/gold-3.json.js.map +0 -1
  198. package/dist/assets/lotties/perfect-hits/silver-1.json.js +0 -10871
  199. package/dist/assets/lotties/perfect-hits/silver-1.json.js.map +0 -1
  200. package/dist/assets/lotties/perfect-hits/silver-2.json.js +0 -11389
  201. package/dist/assets/lotties/perfect-hits/silver-2.json.js.map +0 -1
  202. package/dist/assets/lotties/perfect-hits/silver-3.json.js +0 -12169
  203. package/dist/assets/lotties/perfect-hits/silver-3.json.js.map +0 -1
  204. package/dist/assets/lotties/teacher-validation.json.js +0 -649
  205. package/dist/assets/lotties/teacher-validation.json.js.map +0 -1
  206. package/dist/assets/lotties/tests-creation/clock_30_min.json.js +0 -2857
  207. package/dist/assets/lotties/tests-creation/clock_30_min.json.js.map +0 -1
  208. package/dist/assets/lotties/tests-creation/clock_45_min.json.js +0 -2857
  209. package/dist/assets/lotties/tests-creation/clock_45_min.json.js.map +0 -1
  210. package/dist/assets/lotties/tests-creation/clock_60_min.json.js +0 -2857
  211. package/dist/assets/lotties/tests-creation/clock_60_min.json.js.map +0 -1
  212. package/dist/assets/lotties/tests-creation/clock_90_min.json.js +0 -3345
  213. package/dist/assets/lotties/tests-creation/clock_90_min.json.js.map +0 -1
  214. package/dist/assets/lotties/tests-creation/difficult.json.js +0 -6713
  215. package/dist/assets/lotties/tests-creation/difficult.json.js.map +0 -1
  216. package/dist/assets/lotties/tests-creation/easy.json.js +0 -6525
  217. package/dist/assets/lotties/tests-creation/easy.json.js.map +0 -1
  218. package/dist/assets/lotties/tests-creation/medium.json.js +0 -5603
  219. package/dist/assets/lotties/tests-creation/medium.json.js.map +0 -1
  220. package/dist/assets/lotties/trial-v3/15min-clock.json.js +0 -2037
  221. package/dist/assets/lotties/trial-v3/15min-clock.json.js.map +0 -1
  222. package/dist/assets/lotties/trial-v3/5min-clock.json.js +0 -2062
  223. package/dist/assets/lotties/trial-v3/5min-clock.json.js.map +0 -1
  224. package/dist/assets/lotties/trial-v3/insight/beginner1x.json.js +0 -8517
  225. package/dist/assets/lotties/trial-v3/insight/beginner1x.json.js.map +0 -1
  226. package/dist/assets/lotties/trial-v3/insight/familiar1x.json.js +0 -7396
  227. package/dist/assets/lotties/trial-v3/insight/familiar1x.json.js.map +0 -1
  228. package/dist/assets/lotties/trial-v3/insight/proficient1x.json.js +0 -8559
  229. package/dist/assets/lotties/trial-v3/insight/proficient1x.json.js.map +0 -1
  230. package/dist/assets/lotties/trial-v3/parent-app/easy-rescheduling-lottie.json.js +0 -23284
  231. package/dist/assets/lotties/trial-v3/parent-app/easy-rescheduling-lottie.json.js.map +0 -1
  232. package/dist/assets/lotties/trial-v3/parent-app/stay-connected-lottie.json.js +0 -9090
  233. package/dist/assets/lotties/trial-v3/parent-app/stay-connected-lottie.json.js.map +0 -1
  234. package/dist/assets/lotties/trial-v3/parent-app/track-progress-lottie.json.js +0 -8675
  235. package/dist/assets/lotties/trial-v3/parent-app/track-progress-lottie.json.js.map +0 -1
  236. package/dist/features/circle-games/enum/circle-action-ids.js +0 -5
  237. package/dist/features/circle-games/enum/circle-action-ids.js.map +0 -1
  238. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/fetch-lottie.js +0 -13
  239. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/fetch-lottie.js.map +0 -1
  240. package/dist/features/circle-games/game-launcher/game-launcher-styled.js +0 -10
  241. package/dist/features/circle-games/game-launcher/game-launcher-styled.js.map +0 -1
  242. package/dist/features/post-game-stats/points/points-styled.js +0 -10
  243. package/dist/features/post-game-stats/points/points-styled.js.map +0 -1
  244. package/dist/features/trial-session/comps/render-lottie/index.js +0 -26
  245. package/dist/features/trial-session/comps/render-lottie/index.js.map +0 -1
  246. package/dist/features/ui/loader/circular-loader/circular-loader-styled.js +0 -17
  247. package/dist/features/ui/loader/circular-loader/circular-loader-styled.js.map +0 -1
@@ -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":";;;;;;;;;;AAuBA,MAAMA,IAAsB,MAC1B,OAAO,8DAA2D,GAC9DC,IAAuB,MAC3B,OAAO,+DAA4D,GAExDC,KAA+BC,EAAK,CAAC,EAAE,MAAAC,GAAM,YAAAC,GAAY,UAAAC,GAAU,YAAAC,QAAiB;AACzF,QAAA,EAAE,MAAAC,MAASC,KACXC,IAAmBC,EAAuB,IAAI,GAC9CC,IAAoBD,EAAuB,IAAI,GAC/CE,IAA4BF,KAC5BG,IAA6BH,KAE7B,CAACI,GAAcC,CAAe,IAAIC,EAAS,EAAI,GAC/C,CAACC,GAAaC,CAAc,IAAIF,EAAS,EAAK,GAC9C,CAACG,GAASC,CAAU,IAAIJ,EAAS,EAAK,GACtCK,IAAqBX,EAAO,CAAC,GAE7BY,KACFC,EAAO,UAAU,CAAC,IAAIA,EAAO,UAAU,CAAC,KAAKC,IAAqB,KAEhEC,IAAoBC,EAAY,YAAY;;AAC5C,QAAA;AACF,YAAMC,EAAMC,CAAgB,GAC5Bb,EAAgB,EAAK,GACrBG,EAAe,EAAK,GACpBX,EAAKsB,EAAe,YAAY,IAChCC,IAAAlB,EAA0B,YAA1B,QAAAkB,EAAmC,aAAaC,EAAM,YAAY,KAClE,MAAMJ,EAAMK,CAAoB,GAChCZ,EAAW,EAAI,GACFhB,KAAA,QAAAA;AAAA,aACN6B,GAAK;AAEZ,cAAQ,IAAIA,CAAG;AAAA,IACjB;AAAA,EAAA,GACC,CAAC7B,GAAYG,CAAI,CAAC;AAoDrB,SAlDA2B,EAAU,MAAM;AACd,QAAI/B;AAwCa,cAvCQ,YAAY;;AACjC,cAAM,CAACgC,GAAiBC,CAAgB,IAAI,MAAM,QAAQ,IAAI;AAAA,UAC5DrC,EAAoB;AAAA,UACpBC,EAAqB;AAAA,QAAA,CACtB;AAEyB,QAAAY,EAAA,UAAUyB,EAAO,cAAc;AAAA,UACvD,WAAW5B,EAAiB;AAAA,UAC5B,eAAe0B,EAAgB;AAAA,UAC/B,UAAU;AAAA,UACV,MAAM;AAAA,UACN,UAAU;AAAA,QAAA,CACX,GAE0BtB,EAAA,UAAUwB,EAAO,cAAc;AAAA,UACxD,WAAW1B,EAAkB;AAAA,UAC7B,eAAeyB,EAAiB;AAAA,UAChC,UAAU;AAAA,UACV,MAAM;AAAA,UACN,UAAU;AAAA,QAAA,CACX,GAED7B,EAAKsB,EAAe,WAAW,IAC/BC,IAAAlB,EAA0B,YAA1B,QAAAkB,EAAmC,aAAaC,EAAM,WAAW,KAE3DJ,EAAAL,CAA8B,EAAE,KAAK,MAAM;;AACzC,gBAAAgB,IAASC,EAAwBlC,CAAQ;AAE/C,UAAAgB,EAAmB,UAAUiB,IACFR,IAAAjB,EAAA,YAAA,QAAAiB,EAAS,SAASQ,IAASd,KACtDgB,IAAA3B,EAA2B,YAA3B,QAAA2B,EAAoC,aAAa,CAAC,GAAGF,CAAM,GAAG,KAC9DpB,EAAe,EAAI,IAEQuB,IAAA5B,EAAA,YAAA,QAAA4B,EAAS,iBAAiB,YAAY,MAAM;AACrE,YAAAd,EAAMC,CAAgB,EAAE,KAAK,MAAMH,EAAmB,CAAA;AAAA,UAAA;AAAA,QACvD,CACF;AAAA,MAAA,MAKI,MAAM;;AACX,SAAAK,IAAAlB,EAA0B,YAA1B,QAAAkB,EAAmC,YACnCU,IAAA3B,EAA2B,YAA3B,QAAA2B,EAAoC;AAAA,MAAQ;AAAA,EAEhD,GACC,CAACrC,GAAME,GAAUiB,GAAgCG,GAAmBlB,CAAI,CAAC,GAExEJ,IAEA,gBAAAuC,EAACC,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAA2B,KAAKpC,EAAkB,CAAA;AAAA,IAClDK,KACE,gBAAA8B,EAAAE,GAAA,EACC,UAAC,gBAAAF,EAAAG,GAAA,EAA4B,KAAKpC,EAAmB,CAAA,GACvD;AAAA,IAEDL,KACC,gBAAAsC;AAAA,MAACI;AAAAA,MAAA;AAAA,QACC,QAAQ;AAAA,QACR,gBAAgB7B,IAAU,YAAY;AAAA,QACtC,WAAWA,IAAU8B,IAA0BC;AAAA,QAE9C,UAAA5C;AAAA,MAAA;AAAA,IACH;AAAA,IAEDW,KACC,gBAAA2B;AAAA,MAACO;AAAAA,MAAA;AAAA,QACC,gBAAgBlC,IAAc,WAAW;AAAA,QACzC,WAAyB;AAAA,QAEzB,UAAA,gBAAA2B,EAACQ,KAAyB,UAAU,KAAK,MAAM/C,CAAQ,GAAG,MAAM,KAAM;AAAA,MAAA;AAAA,IACxE;AAAA,EAEJ,EAAA,CAAA,IAIG;AACT,CAAC;"}
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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"}
@@ -1,71 +1,75 @@
1
- import { jsxs as N, jsx as u } from "react/jsx-runtime";
2
- import k from "lottie-web";
3
- import { memo as v, useState as K, useRef as o, useCallback as f, useEffect as M } from "react";
4
- import { useCircleSounds as g } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds.js";
5
- import { CircleSoundKey as I } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds-enums.js";
6
- import { delay as R } from "../../utils/utils.js";
7
- import { Clock as x, ClockLottie as U, ClockTimeSpentLottie as $, TextWrapper as h } from "./clock-styled.js";
8
- import { getClockTimeSpentFramesToPlay as X } from "./clock-util.js";
9
- import { CLOCK_TIME_SPENT_FPS as Y, CLOCK as D, CLOCK_INFRAME_LOTTIE_TO_PLAY as j, TIME_LOTTIE_TO_PLAY_IN as w, TEXT_DISAPPEAR_DURATION as H, TEXT_APPEAR_DURATION as W, TIME_SHOWN_HOLD_TIME as b, TEXT_DISAPPEAR_DELAY as q } from "./constants.js";
10
- const z = () => import("../../../assets/lotties/circle/total-time-lottie.json.js"), B = () => import("../../../assets/lotties/circle/total-time-spent-lottie.json.js"), ot = v(({ show: s, onComplete: i, timeInMs: T, helperText: p }) => {
11
- const { play: c } = g(), [d, F] = K(!1), l = o(!1), m = o(0), L = o(null), S = o(null), a = o(), n = o(), E = f(() => {
1
+ import { jsxs as K, jsx as u } from "react/jsx-runtime";
2
+ import I from "lottie-web";
3
+ import { memo as g, useState as h, useRef as o, useCallback as T, useEffect as j } from "react";
4
+ import { LOTTIE as k } from "../../../assets/lottie/lottie.js";
5
+ import { useCircleSounds as x } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds.js";
6
+ import { CircleSoundKey as R } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds-enums.js";
7
+ import { delay as D } from "../../utils/utils.js";
8
+ import { Clock as U, ClockLottie as $, ClockTimeSpentLottie as w, TextWrapper as X } from "./clock-styled.js";
9
+ import { getClockTimeSpentFramesToPlay as Y } from "./clock-util.js";
10
+ import { CLOCK_TIME_SPENT_FPS as H, CLOCK as N, CLOCK_INFRAME_LOTTIE_TO_PLAY as W, TIME_LOTTIE_TO_PLAY_IN as b, TEXT_DISAPPEAR_DURATION as q, TEXT_APPEAR_DURATION as z, TIME_SHOWN_HOLD_TIME as B, TEXT_DISAPPEAR_DELAY as G } from "./constants.js";
11
+ const it = g(({ show: s, onComplete: i, timeInMs: f, helperText: p }) => {
12
+ const { play: c } = x(), [L, F] = h(!1), m = o(!1), l = o(0), d = o(null), E = o(null), a = o(), n = o(), _ = T(() => {
12
13
  var t, e;
13
- const r = X(T);
14
- r && (m.current = r, (t = n.current) == null || t.setSpeed(r / Y), (e = n.current) == null || e.playSegments([0, r], !0), l.current = !0);
15
- }, [T]), _ = f(async () => {
14
+ const r = Y(f);
15
+ r && (l.current = r, (t = n.current) == null || t.setSpeed(r / H), (e = n.current) == null || e.playSegments([0, r], !0), m.current = !0);
16
+ }, [f]), S = T(async () => {
16
17
  var r, t;
17
- await R(b), (r = n.current) == null || r.playSegments([m.current, 0], !0), await R(q), F(!0), l.current && ((t = n.current) == null || t.addEventListener("complete", () => {
18
+ await D(B), (r = n.current) == null || r.playSegments([l.current, 0], !0), await D(G), F(!0), m.current && ((t = n.current) == null || t.addEventListener("complete", () => {
18
19
  var e;
19
- c(I.CLOCK_OUT), (e = a.current) == null || e.playSegments(D.OUT_FRAMES, !0);
20
+ c(R.CLOCK_OUT), (e = a.current) == null || e.playSegments(N.OUT_FRAMES, !0);
20
21
  }));
21
- }, [m, c]), A = f(() => {
22
+ }, [l, c]), A = T(() => {
22
23
  i == null || i();
23
24
  }, [i]);
24
- return M(() => {
25
+ return j(() => {
25
26
  if (s)
26
27
  return (async () => {
27
- var C, y, O;
28
+ var O, C, y;
28
29
  const [t, e] = await Promise.all([
29
- z(),
30
- B()
30
+ fetch(k.TOTAL_TIME),
31
+ fetch(k.TOTAL_TIME_SPENT)
32
+ ]), [M, v] = await Promise.all([
33
+ t.json(),
34
+ e.json()
31
35
  ]);
32
- a.current = k.loadAnimation({
33
- container: L.current,
34
- animationData: t.default,
36
+ a.current = I.loadAnimation({
37
+ container: d.current,
38
+ animationData: M,
35
39
  autoplay: !1,
36
40
  loop: !1,
37
41
  renderer: "canvas"
38
- }), n.current = k.loadAnimation({
39
- container: S.current,
40
- animationData: e.default,
42
+ }), n.current = I.loadAnimation({
43
+ container: E.current,
44
+ animationData: v,
41
45
  autoplay: !1,
42
46
  loop: !1,
43
47
  renderer: "canvas"
44
- }), c(I.CLOCK_IN), (C = a.current) == null || C.playSegments(D.IN_FRAMES, !0), (y = a.current) == null || y.addEventListener("complete", () => {
45
- l.current ? A() : E();
46
- }), (O = n.current) == null || O.addEventListener("complete", () => {
48
+ }), c(R.CLOCK_IN), (O = a.current) == null || O.playSegments(N.IN_FRAMES, !0), (C = a.current) == null || C.addEventListener("complete", () => {
49
+ m.current ? A() : _();
50
+ }), (y = n.current) == null || y.addEventListener("complete", () => {
47
51
  var P;
48
- (P = n.current) == null || P.removeEventListener("complete"), _();
52
+ (P = n.current) == null || P.removeEventListener("complete"), S();
49
53
  });
50
54
  })(), () => {
51
55
  var t, e;
52
56
  (t = a.current) == null || t.destroy(), (e = n.current) == null || e.destroy();
53
57
  };
54
- }, [s, E, A, _, c]), s ? /* @__PURE__ */ N(x, { children: [
55
- /* @__PURE__ */ u(U, { ref: L }),
56
- /* @__PURE__ */ u($, { ref: S }),
58
+ }, [s, _, A, S, c]), s ? /* @__PURE__ */ K(U, { children: [
59
+ /* @__PURE__ */ u($, { ref: d }),
60
+ /* @__PURE__ */ u(w, { ref: E }),
57
61
  p && /* @__PURE__ */ u(
58
- h,
62
+ X,
59
63
  {
60
- $delay: j + w,
61
- $animationType: d ? "fadeout" : "fadein",
62
- $duration: d ? H : W,
64
+ $delay: W + b,
65
+ $animationType: L ? "fadeout" : "fadein",
66
+ $duration: L ? q : z,
63
67
  children: p
64
68
  }
65
69
  )
66
70
  ] }) : null;
67
71
  });
68
72
  export {
69
- ot as Clock
73
+ it as Clock
70
74
  };
71
75
  //# sourceMappingURL=clock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clock.js","sources":["../../../../src/features/post-game-stats/clock/clock.tsx"],"sourcesContent":["import type { IClockProps } from './clock-types';\nimport type { AnimationItem } from 'lottie-web';\nimport type { FC } from 'react';\n\nimport Lottie from 'lottie-web';\nimport { memo, useCallback, useEffect, useRef, useState } 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 * as Styled from './clock-styled';\nimport { getClockTimeSpentFramesToPlay } from './clock-util';\nimport {\n CLOCK,\n CLOCK_TIME_SPENT_FPS,\n TIME_SHOWN_HOLD_TIME,\n TEXT_APPEAR_DURATION,\n TEXT_DISAPPEAR_DELAY,\n TEXT_DISAPPEAR_DURATION,\n CLOCK_INFRAME_LOTTIE_TO_PLAY,\n TIME_LOTTIE_TO_PLAY_IN,\n} from './constants';\n\nconst totalTimeLottie = () => import('../../../assets/lotties/circle/total-time-lottie.json');\nconst totalTimeSpentLottie = () =>\n import('../../../assets/lotties/circle/total-time-spent-lottie.json');\n\nexport const Clock: FC<IClockProps> = memo(({ show, onComplete, timeInMs, helperText }) => {\n const { play } = useCircleSounds();\n const [fadeOut, setFadeOut] = useState(false);\n const isClockTimeSpentShown = useRef(false);\n const framesToPlay = useRef(0);\n\n const clockLottieContainerRef = useRef<HTMLDivElement>(null);\n const clockTimeSpentLottieContainerRef = useRef<HTMLDivElement>(null);\n const clockLottieAnimationRef = useRef<AnimationItem>();\n const clockTimeSpentLottieAnimationRef = useRef<AnimationItem>();\n\n const setClockTimeSpentFrames = useCallback(() => {\n const frames = getClockTimeSpentFramesToPlay(timeInMs);\n\n if (frames) {\n framesToPlay.current = frames;\n // Speed adjustment\n clockTimeSpentLottieAnimationRef.current?.setSpeed(frames / CLOCK_TIME_SPENT_FPS);\n clockTimeSpentLottieAnimationRef.current?.playSegments([0, frames], true);\n isClockTimeSpentShown.current = true;\n }\n }, [timeInMs]);\n\n const onClockTimeSpentExitAnimationFinished = useCallback(async () => {\n await delay(TIME_SHOWN_HOLD_TIME);\n\n // Reverse play time spent animation\n clockTimeSpentLottieAnimationRef.current?.playSegments([framesToPlay.current, 0], true);\n\n await delay(TEXT_DISAPPEAR_DELAY);\n setFadeOut(true);\n\n if (isClockTimeSpentShown.current) {\n clockTimeSpentLottieAnimationRef.current?.addEventListener('complete', () => {\n play(CircleSoundKey.CLOCK_OUT);\n clockLottieAnimationRef.current?.playSegments(CLOCK.OUT_FRAMES, true);\n });\n }\n }, [framesToPlay, play]);\n\n const onAnimationEnd = useCallback(() => {\n onComplete?.();\n }, [onComplete]);\n\n // Play entry animation\n useEffect(() => {\n if (show) {\n const loadAnimations = async () => {\n const [timeLottiePath, timeSpentLottiePath] = await Promise.all([\n totalTimeLottie(),\n totalTimeSpentLottie(),\n ]);\n\n // Clock Lottie\n clockLottieAnimationRef.current = Lottie.loadAnimation({\n container: clockLottieContainerRef.current as Element,\n animationData: timeLottiePath.default,\n autoplay: false,\n loop: false,\n renderer: 'canvas',\n });\n\n // Clock Time Spent Lottie\n clockTimeSpentLottieAnimationRef.current = Lottie.loadAnimation({\n container: clockTimeSpentLottieContainerRef.current as Element,\n animationData: timeSpentLottiePath.default,\n autoplay: false,\n loop: false,\n renderer: 'canvas',\n });\n\n // Play clock in animation sounds and lottie\n play(CircleSoundKey.CLOCK_IN);\n clockLottieAnimationRef.current?.playSegments(CLOCK.IN_FRAMES, true);\n\n clockLottieAnimationRef.current?.addEventListener('complete', () => {\n if (!isClockTimeSpentShown.current) {\n setClockTimeSpentFrames();\n } else {\n onAnimationEnd();\n }\n });\n\n // Setup event listener for time spent animation\n clockTimeSpentLottieAnimationRef.current?.addEventListener('complete', () => {\n clockTimeSpentLottieAnimationRef.current?.removeEventListener('complete');\n onClockTimeSpentExitAnimationFinished();\n });\n };\n\n loadAnimations();\n\n return () => {\n clockLottieAnimationRef.current?.destroy();\n clockTimeSpentLottieAnimationRef.current?.destroy();\n };\n }\n }, [show, setClockTimeSpentFrames, onAnimationEnd, onClockTimeSpentExitAnimationFinished, play]);\n\n if (show) {\n return (\n <Styled.Clock>\n <Styled.ClockLottie ref={clockLottieContainerRef} />\n <Styled.ClockTimeSpentLottie ref={clockTimeSpentLottieContainerRef} />\n {helperText && (\n <Styled.TextWrapper\n $delay={CLOCK_INFRAME_LOTTIE_TO_PLAY + TIME_LOTTIE_TO_PLAY_IN}\n $animationType={fadeOut ? 'fadeout' : 'fadein'}\n $duration={fadeOut ? TEXT_DISAPPEAR_DURATION : TEXT_APPEAR_DURATION}\n >\n {helperText}\n </Styled.TextWrapper>\n )}\n </Styled.Clock>\n );\n }\n\n return null;\n});\n"],"names":["totalTimeLottie","totalTimeSpentLottie","Clock","memo","show","onComplete","timeInMs","helperText","play","useCircleSounds","fadeOut","setFadeOut","useState","isClockTimeSpentShown","useRef","framesToPlay","clockLottieContainerRef","clockTimeSpentLottieContainerRef","clockLottieAnimationRef","clockTimeSpentLottieAnimationRef","setClockTimeSpentFrames","useCallback","frames","getClockTimeSpentFramesToPlay","_a","CLOCK_TIME_SPENT_FPS","_b","onClockTimeSpentExitAnimationFinished","delay","TIME_SHOWN_HOLD_TIME","TEXT_DISAPPEAR_DELAY","CircleSoundKey","CLOCK","onAnimationEnd","useEffect","timeLottiePath","timeSpentLottiePath","Lottie","_c","jsxs","Styled.Clock","jsx","Styled.ClockLottie","Styled.ClockTimeSpentLottie","Styled.TextWrapper","CLOCK_INFRAME_LOTTIE_TO_PLAY","TIME_LOTTIE_TO_PLAY_IN","TEXT_DISAPPEAR_DURATION","TEXT_APPEAR_DURATION"],"mappings":"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"}
1
+ {"version":3,"file":"clock.js","sources":["../../../../src/features/post-game-stats/clock/clock.tsx"],"sourcesContent":["import type { IClockProps } from './clock-types';\nimport type { AnimationItem } from 'lottie-web';\nimport type { FC } from 'react';\n\nimport Lottie from 'lottie-web';\nimport { memo, useCallback, useEffect, useRef, useState } 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 * as Styled from './clock-styled';\nimport { getClockTimeSpentFramesToPlay } from './clock-util';\nimport {\n CLOCK,\n CLOCK_TIME_SPENT_FPS,\n TIME_SHOWN_HOLD_TIME,\n TEXT_APPEAR_DURATION,\n TEXT_DISAPPEAR_DELAY,\n TEXT_DISAPPEAR_DURATION,\n CLOCK_INFRAME_LOTTIE_TO_PLAY,\n TIME_LOTTIE_TO_PLAY_IN,\n} from './constants';\n\nexport const Clock: FC<IClockProps> = memo(({ show, onComplete, timeInMs, helperText }) => {\n const { play } = useCircleSounds();\n const [fadeOut, setFadeOut] = useState(false);\n const isClockTimeSpentShown = useRef(false);\n const framesToPlay = useRef(0);\n\n const clockLottieContainerRef = useRef<HTMLDivElement>(null);\n const clockTimeSpentLottieContainerRef = useRef<HTMLDivElement>(null);\n const clockLottieAnimationRef = useRef<AnimationItem>();\n const clockTimeSpentLottieAnimationRef = useRef<AnimationItem>();\n\n const setClockTimeSpentFrames = useCallback(() => {\n const frames = getClockTimeSpentFramesToPlay(timeInMs);\n\n if (frames) {\n framesToPlay.current = frames;\n // Speed adjustment\n clockTimeSpentLottieAnimationRef.current?.setSpeed(frames / CLOCK_TIME_SPENT_FPS);\n clockTimeSpentLottieAnimationRef.current?.playSegments([0, frames], true);\n isClockTimeSpentShown.current = true;\n }\n }, [timeInMs]);\n\n const onClockTimeSpentExitAnimationFinished = useCallback(async () => {\n await delay(TIME_SHOWN_HOLD_TIME);\n\n // Reverse play time spent animation\n clockTimeSpentLottieAnimationRef.current?.playSegments([framesToPlay.current, 0], true);\n\n await delay(TEXT_DISAPPEAR_DELAY);\n setFadeOut(true);\n\n if (isClockTimeSpentShown.current) {\n clockTimeSpentLottieAnimationRef.current?.addEventListener('complete', () => {\n play(CircleSoundKey.CLOCK_OUT);\n clockLottieAnimationRef.current?.playSegments(CLOCK.OUT_FRAMES, true);\n });\n }\n }, [framesToPlay, play]);\n\n const onAnimationEnd = useCallback(() => {\n onComplete?.();\n }, [onComplete]);\n\n // Play entry animation\n useEffect(() => {\n if (show) {\n const loadAnimations = async () => {\n const [timeLottiePath, timeSpentLottiePath] = await Promise.all([\n fetch(LOTTIE.TOTAL_TIME),\n fetch(LOTTIE.TOTAL_TIME_SPENT),\n ]);\n const [timeLottieData, timeSpentLottieData] = await Promise.all([\n timeLottiePath.json(),\n timeSpentLottiePath.json(),\n ]);\n\n // Clock Lottie\n clockLottieAnimationRef.current = Lottie.loadAnimation({\n container: clockLottieContainerRef.current as Element,\n animationData: timeLottieData,\n autoplay: false,\n loop: false,\n renderer: 'canvas',\n });\n\n // Clock Time Spent Lottie\n clockTimeSpentLottieAnimationRef.current = Lottie.loadAnimation({\n container: clockTimeSpentLottieContainerRef.current as Element,\n animationData: timeSpentLottieData,\n autoplay: false,\n loop: false,\n renderer: 'canvas',\n });\n\n // Play clock in animation sounds and lottie\n play(CircleSoundKey.CLOCK_IN);\n clockLottieAnimationRef.current?.playSegments(CLOCK.IN_FRAMES, true);\n\n clockLottieAnimationRef.current?.addEventListener('complete', () => {\n if (!isClockTimeSpentShown.current) {\n setClockTimeSpentFrames();\n } else {\n onAnimationEnd();\n }\n });\n\n // Setup event listener for time spent animation\n clockTimeSpentLottieAnimationRef.current?.addEventListener('complete', () => {\n clockTimeSpentLottieAnimationRef.current?.removeEventListener('complete');\n onClockTimeSpentExitAnimationFinished();\n });\n };\n\n loadAnimations();\n\n return () => {\n clockLottieAnimationRef.current?.destroy();\n clockTimeSpentLottieAnimationRef.current?.destroy();\n };\n }\n }, [show, setClockTimeSpentFrames, onAnimationEnd, onClockTimeSpentExitAnimationFinished, play]);\n\n if (show) {\n return (\n <Styled.Clock>\n <Styled.ClockLottie ref={clockLottieContainerRef} />\n <Styled.ClockTimeSpentLottie ref={clockTimeSpentLottieContainerRef} />\n {helperText && (\n <Styled.TextWrapper\n $delay={CLOCK_INFRAME_LOTTIE_TO_PLAY + TIME_LOTTIE_TO_PLAY_IN}\n $animationType={fadeOut ? 'fadeout' : 'fadein'}\n $duration={fadeOut ? TEXT_DISAPPEAR_DURATION : TEXT_APPEAR_DURATION}\n >\n {helperText}\n </Styled.TextWrapper>\n )}\n </Styled.Clock>\n );\n }\n\n return null;\n});\n"],"names":["Clock","memo","show","onComplete","timeInMs","helperText","play","useCircleSounds","fadeOut","setFadeOut","useState","isClockTimeSpentShown","useRef","framesToPlay","clockLottieContainerRef","clockTimeSpentLottieContainerRef","clockLottieAnimationRef","clockTimeSpentLottieAnimationRef","setClockTimeSpentFrames","useCallback","frames","getClockTimeSpentFramesToPlay","_a","CLOCK_TIME_SPENT_FPS","_b","onClockTimeSpentExitAnimationFinished","delay","TIME_SHOWN_HOLD_TIME","TEXT_DISAPPEAR_DELAY","CircleSoundKey","CLOCK","onAnimationEnd","useEffect","timeLottiePath","timeSpentLottiePath","LOTTIE","timeLottieData","timeSpentLottieData","Lottie","_c","jsxs","Styled.Clock","jsx","Styled.ClockLottie","Styled.ClockTimeSpentLottie","Styled.TextWrapper","CLOCK_INFRAME_LOTTIE_TO_PLAY","TIME_LOTTIE_TO_PLAY_IN","TEXT_DISAPPEAR_DURATION","TEXT_APPEAR_DURATION"],"mappings":"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"}
@@ -1,49 +1,48 @@
1
- import { jsx as a } from "react/jsx-runtime";
2
- import c from "lottie-web";
3
- import { memo as f, useRef as u, useEffect as d } from "react";
4
- import { useCircleSounds as A } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds.js";
5
- import { CircleSoundKey as P } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds-enums.js";
6
- import { PointsWrapper as y } from "./points-styled.js";
7
- const E = {
8
- point1: () => import("../../../assets/lotties/circle/1pts.json.js"),
9
- point5: () => import("../../../assets/lotties/circle/5pts.json.js"),
10
- point10: () => import("../../../assets/lotties/circle/10pts.json.js"),
11
- point15: () => import("../../../assets/lotties/circle/15pts.json.js"),
12
- point20: () => import("../../../assets/lotties/circle/20pts.json.js"),
13
- point25: () => import("../../../assets/lotties/circle/25pts.json.js"),
14
- point30: () => import("../../../assets/lotties/circle/30pts.json.js"),
15
- point35: () => import("../../../assets/lotties/circle/35pts.json.js"),
16
- point40: () => import("../../../assets/lotties/circle/40pts.json.js"),
17
- point45: () => import("../../../assets/lotties/circle/45pts.json.js"),
18
- point50: () => import("../../../assets/lotties/circle/50pts.json.js"),
19
- point60: () => import("../../../assets/lotties/circle/60pts.json.js"),
20
- point100: () => import("../../../assets/lotties/circle/100pts.json.js")
21
- }, x = f((s) => {
22
- const { point: o = 0, onReveal: i, onComplete: r, show: n } = s, p = u(null), { play: e } = A();
23
- return d(() => {
24
- let t = null;
25
- if (n && o) {
26
- const m = E[`point${o}`];
27
- (async () => {
28
- if (m) {
29
- const l = await m();
30
- t = c.loadAnimation({
31
- animationData: l.default,
32
- container: p.current,
33
- loop: !1,
34
- autoplay: !0,
35
- renderer: "canvas"
36
- }), e(P.POINTS_AWARDED), t.addEventListener("complete", r);
37
- } else
38
- r();
39
- })(), i == null || i();
1
+ import { jsx as N } from "react/jsx-runtime";
2
+ import { memo as P, useEffect as T } from "react";
3
+ import { LOTTIE as t } from "../../../assets/lottie/lottie.js";
4
+ import { GAME_LAUNCHER_SIZE as a, GAME_LAUNCHER_ASSET_PADDING as O, GAME_LAUNCHER_PROGRESS_RING_STROKE_WIDTH as c } from "../../circle-games/game-launcher/comps/segmented-game-card/constants.js";
5
+ import { useCircleSounds as E } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds.js";
6
+ import { CircleSoundKey as f } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds-enums.js";
7
+ import A from "../../ui/lottie-animation/lottie-animation.js";
8
+ const _ = {
9
+ point1: t.POINT1,
10
+ point5: t.POINT5,
11
+ point10: t.POINT10,
12
+ point15: t.POINT15,
13
+ point20: t.POINT20,
14
+ point25: t.POINT25,
15
+ point30: t.POINT30,
16
+ point35: t.POINT35,
17
+ point40: t.POINT40,
18
+ point45: t.POINT45,
19
+ point50: t.POINT50,
20
+ point60: t.POINT60,
21
+ point100: t.POINT100
22
+ }, r = a + O - c, l = {
23
+ loop: !1,
24
+ autoplay: !0,
25
+ renderer: "canvas"
26
+ }, d = P((p) => {
27
+ const { point: m = 0, onReveal: n, onComplete: i, show: e } = p, { play: s } = E(), o = _[`point${m}`], I = {
28
+ name: "complete",
29
+ callback: i
30
+ };
31
+ return T(() => {
32
+ o || i(), e && o && (n == null || n());
33
+ }, [o, i, n, e]), e && o ? /* @__PURE__ */ N(
34
+ A,
35
+ {
36
+ width: r,
37
+ height: r,
38
+ src: o,
39
+ settings: l,
40
+ eventListener: I,
41
+ onRender: () => s(f.POINTS_AWARDED)
40
42
  }
41
- return () => {
42
- t == null || t.removeEventListener("complete", r), t == null || t.destroy();
43
- };
44
- }, [n, o, r, e, i]), n && o ? /* @__PURE__ */ a(y, { ref: p }) : null;
43
+ ) : null;
45
44
  });
46
45
  export {
47
- x as Points
46
+ d as Points
48
47
  };
49
48
  //# sourceMappingURL=points.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"points.js","sources":["../../../../src/features/post-game-stats/points/points.tsx"],"sourcesContent":["import type { IPointsProps } from './points-types';\nimport type { AnimationItem } from 'lottie-web';\nimport type { FC } from 'react';\n\nimport Lottie from 'lottie-web';\nimport { memo, useEffect, useRef } 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 * as Styled from './points-styled';\n\n// lazy load points lotties\nconst POINTS_MAP: Record<string, () => Promise<{ default: Record<string, unknown> }>> = {\n point1: () => import('../../../assets/lotties/circle/1pts.json'),\n point5: () => import('../../../assets/lotties/circle/5pts.json'),\n point10: () => import('../../../assets/lotties/circle/10pts.json'),\n point15: () => import('../../../assets/lotties/circle/15pts.json'),\n point20: () => import('../../../assets/lotties/circle/20pts.json'),\n point25: () => import('../../../assets/lotties/circle/25pts.json'),\n point30: () => import('../../../assets/lotties/circle/30pts.json'),\n point35: () => import('../../../assets/lotties/circle/35pts.json'),\n point40: () => import('../../../assets/lotties/circle/40pts.json'),\n point45: () => import('../../../assets/lotties/circle/45pts.json'),\n point50: () => import('../../../assets/lotties/circle/50pts.json'),\n point60: () => import('../../../assets/lotties/circle/60pts.json'),\n point100: () => import('../../../assets/lotties/circle/100pts.json'),\n};\n\nexport const Points: FC<IPointsProps> = memo(props => {\n const { point = 0, onReveal, onComplete, show } = props;\n const pointsLottieRef = useRef<HTMLDivElement>(null);\n const { play } = useCircleSounds();\n\n useEffect(() => {\n let animation: AnimationItem | null = null;\n\n if (show && point) {\n const lottiePath = POINTS_MAP[`point${point}`];\n\n const loadAnimation = async () => {\n if (lottiePath) {\n const data = await lottiePath();\n\n animation = Lottie.loadAnimation({\n animationData: data.default,\n container: pointsLottieRef.current as Element,\n loop: false,\n autoplay: true,\n renderer: 'canvas',\n });\n\n play(CircleSoundKey.POINTS_AWARDED);\n animation.addEventListener('complete', onComplete);\n } else {\n onComplete(); // safe check if point is not found\n }\n };\n\n loadAnimation();\n onReveal?.();\n }\n\n return () => {\n animation?.removeEventListener('complete', onComplete);\n animation?.destroy();\n };\n }, [show, point, onComplete, play, onReveal]);\n\n if (show && point) {\n return <Styled.PointsWrapper ref={pointsLottieRef} />;\n }\n\n return null;\n});\n"],"names":["POINTS_MAP","Points","memo","props","point","onReveal","onComplete","show","pointsLottieRef","useRef","play","useCircleSounds","useEffect","animation","lottiePath","data","Lottie","CircleSoundKey","jsx","Styled.PointsWrapper"],"mappings":";;;;;;AAYA,MAAMA,IAAkF;AAAA,EACtF,QAAQ,MAAM,OAAO,6CAA0C;AAAA,EAC/D,QAAQ,MAAM,OAAO,6CAA0C;AAAA,EAC/D,SAAS,MAAM,OAAO,8CAA2C;AAAA,EACjE,SAAS,MAAM,OAAO,8CAA2C;AAAA,EACjE,SAAS,MAAM,OAAO,8CAA2C;AAAA,EACjE,SAAS,MAAM,OAAO,8CAA2C;AAAA,EACjE,SAAS,MAAM,OAAO,8CAA2C;AAAA,EACjE,SAAS,MAAM,OAAO,8CAA2C;AAAA,EACjE,SAAS,MAAM,OAAO,8CAA2C;AAAA,EACjE,SAAS,MAAM,OAAO,8CAA2C;AAAA,EACjE,SAAS,MAAM,OAAO,8CAA2C;AAAA,EACjE,SAAS,MAAM,OAAO,8CAA2C;AAAA,EACjE,UAAU,MAAM,OAAO,+CAA4C;AACrE,GAEaC,IAA2BC,EAAK,CAASC,MAAA;AACpD,QAAM,EAAE,OAAAC,IAAQ,GAAG,UAAAC,GAAU,YAAAC,GAAY,MAAAC,EAAS,IAAAJ,GAC5CK,IAAkBC,EAAuB,IAAI,GAC7C,EAAE,MAAAC,MAASC;AAqCjB,SAnCAC,EAAU,MAAM;AACd,QAAIC,IAAkC;AAEtC,QAAIN,KAAQH,GAAO;AACjB,YAAMU,IAAad,EAAW,QAAQI,CAAK,EAAE;AAqB/B,OAnBQ,YAAY;AAChC,YAAIU,GAAY;AACR,gBAAAC,IAAO,MAAMD;AAEnB,UAAAD,IAAYG,EAAO,cAAc;AAAA,YAC/B,eAAeD,EAAK;AAAA,YACpB,WAAWP,EAAgB;AAAA,YAC3B,MAAM;AAAA,YACN,UAAU;AAAA,YACV,UAAU;AAAA,UAAA,CACX,GAEDE,EAAKO,EAAe,cAAc,GACxBJ,EAAA,iBAAiB,YAAYP,CAAU;AAAA,QAAA;AAEtC,UAAAA;MACb,MAISD,KAAA,QAAAA;AAAA,IACb;AAEA,WAAO,MAAM;AACA,MAAAQ,KAAA,QAAAA,EAAA,oBAAoB,YAAYP,IAC3CO,KAAA,QAAAA,EAAW;AAAA,IAAQ;AAAA,EACrB,GACC,CAACN,GAAMH,GAAOE,GAAYI,GAAML,CAAQ,CAAC,GAExCE,KAAQH,IACF,gBAAAc,EAAAC,GAAA,EAAqB,KAAKX,EAAiB,CAAA,IAG9C;AACT,CAAC;"}
1
+ {"version":3,"file":"points.js","sources":["../../../../src/features/post-game-stats/points/points.tsx"],"sourcesContent":["import type { IPointsProps } from './points-types';\nimport type { AnimationEventName } from 'lottie-web';\nimport type { FC } from 'react';\n\nimport { memo, useEffect } from 'react';\n\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport {\n GAME_LAUNCHER_ASSET_PADDING,\n GAME_LAUNCHER_PROGRESS_RING_STROKE_WIDTH,\n GAME_LAUNCHER_SIZE,\n} from '../../circle-games/game-launcher/comps/segmented-game-card/constants';\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 LottieAnimation from '../../ui/lottie-animation/lottie-animation';\n\nconst POINTS_MAP: Record<string, string> = {\n point1: LOTTIE.POINT1,\n point5: LOTTIE.POINT5,\n point10: LOTTIE.POINT10,\n point15: LOTTIE.POINT15,\n point20: LOTTIE.POINT20,\n point25: LOTTIE.POINT25,\n point30: LOTTIE.POINT30,\n point35: LOTTIE.POINT35,\n point40: LOTTIE.POINT40,\n point45: LOTTIE.POINT45,\n point50: LOTTIE.POINT50,\n point60: LOTTIE.POINT60,\n point100: LOTTIE.POINT100,\n};\nconst animationDimension =\n GAME_LAUNCHER_SIZE + GAME_LAUNCHER_ASSET_PADDING - GAME_LAUNCHER_PROGRESS_RING_STROKE_WIDTH;\nconst animationSettings = {\n loop: false,\n autoplay: true,\n renderer: 'canvas',\n};\n\nexport const Points: FC<IPointsProps> = memo(props => {\n const { point = 0, onReveal, onComplete, show } = props;\n\n const { play } = useCircleSounds();\n\n const animationPath = POINTS_MAP[`point${point}`];\n const animationEventListener = {\n name: 'complete' as AnimationEventName,\n callback: onComplete,\n };\n\n useEffect(() => {\n if (!animationPath) onComplete();\n\n if (show && animationPath) onReveal?.();\n }, [animationPath, onComplete, onReveal, show]);\n\n if (show && animationPath) {\n return (\n <LottieAnimation\n width={animationDimension}\n height={animationDimension}\n src={animationPath}\n settings={animationSettings}\n eventListener={animationEventListener}\n onRender={() => play(CircleSoundKey.POINTS_AWARDED)}\n />\n );\n }\n\n return null;\n});\n"],"names":["POINTS_MAP","LOTTIE","animationDimension","GAME_LAUNCHER_SIZE","GAME_LAUNCHER_ASSET_PADDING","GAME_LAUNCHER_PROGRESS_RING_STROKE_WIDTH","animationSettings","Points","memo","props","point","onReveal","onComplete","show","play","useCircleSounds","animationPath","animationEventListener","useEffect","jsx","LottieAnimation","CircleSoundKey"],"mappings":";;;;;;;AAgBA,MAAMA,IAAqC;AAAA,EACzC,QAAQC,EAAO;AAAA,EACf,QAAQA,EAAO;AAAA,EACf,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAAA,EAChB,UAAUA,EAAO;AACnB,GACMC,IACJC,IAAqBC,IAA8BC,GAC/CC,IAAoB;AAAA,EACxB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AACZ,GAEaC,IAA2BC,EAAK,CAASC,MAAA;AACpD,QAAM,EAAE,OAAAC,IAAQ,GAAG,UAAAC,GAAU,YAAAC,GAAY,MAAAC,EAAS,IAAAJ,GAE5C,EAAE,MAAAK,MAASC,KAEXC,IAAgBhB,EAAW,QAAQU,CAAK,EAAE,GAC1CO,IAAyB;AAAA,IAC7B,MAAM;AAAA,IACN,UAAUL;AAAA,EAAA;AASZ,SANAM,EAAU,MAAM;AACV,IAACF,KAA0BJ,KAE3BC,KAAQG,MAA0BL,KAAA,QAAAA;AAAA,KACrC,CAACK,GAAeJ,GAAYD,GAAUE,CAAI,CAAC,GAE1CA,KAAQG,IAER,gBAAAG;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAOlB;AAAA,MACP,QAAQA;AAAA,MACR,KAAKc;AAAA,MACL,UAAUV;AAAA,MACV,eAAeW;AAAA,MACf,UAAU,MAAMH,EAAKO,EAAe,cAAc;AAAA,IAAA;AAAA,EAAA,IAKjD;AACT,CAAC;"}
@@ -1,34 +1,36 @@
1
1
  import { jsxs as f, jsx as e } from "react/jsx-runtime";
2
2
  import k from "lottie-web";
3
- import { memo as $, useState as p, useRef as E, useCallback as L, useEffect as U } from "react";
4
- import { useCircleSounds as K } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds.js";
3
+ import { memo as P, useState as p, useRef as E, useCallback as $, useEffect as L } from "react";
4
+ import { LOTTIE as K } from "../../../assets/lottie/lottie.js";
5
+ import { useCircleSounds as U } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds.js";
5
6
  import { CircleSoundKey as I } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds-enums.js";
7
+ import { fetchLottie as x } from "../../ui/lottie-animation/helper.js";
6
8
  import { delay as l } from "../../utils/utils.js";
7
- import { TEXT_DISAPPEAR_DELAY as x, OUT_FRAMES as c, STREAK_DISAPPEAR_ANIMATION_DURATION as C, STREAK_APPEAR_ANIMATION_DURATION as b, STREAK_SCROLL_ANIMATION_DURATION as _, STREAK_WAIT_DURATION as R, TEXT_DISAPPEAR_DURATION as w, TEXT_APPEAR_DURATION as F, IN_FRAMES as M } from "./constants.js";
8
- import { Streak as V, SVGImgContainer as W, StreakLottieView as g, StreakValueWrapper as X, StreakValueContainer as j, StreakValue as y, TextWrapper as H } from "./streak-styled.js";
9
- const G = () => import("../../../assets/lotties/circle/total-streak-lottie.json.js"), tt = $((O) => {
10
- const { currStreak: T, show: s, onReveal: r, onComplete: a, helperText: u } = O, { play: o } = K(), [D, N] = p(0), m = E(null), n = E(), [i, P] = p(!1), S = L(async () => {
11
- var A;
9
+ import { TEXT_DISAPPEAR_DELAY as C, OUT_FRAMES as T, STREAK_DISAPPEAR_ANIMATION_DURATION as b, STREAK_APPEAR_ANIMATION_DURATION as w, STREAK_SCROLL_ANIMATION_DURATION as _, STREAK_WAIT_DURATION as R, TEXT_DISAPPEAR_DURATION as F, TEXT_APPEAR_DURATION as M, IN_FRAMES as V } from "./constants.js";
10
+ import { Streak as W, SVGImgContainer as g, StreakLottieView as X, StreakValueWrapper as j, StreakValueContainer as H, StreakValue as O, TextWrapper as G } from "./streak-styled.js";
11
+ const rt = P((y) => {
12
+ const { currStreak: c, show: A, onReveal: r, onComplete: a, helperText: m } = y, { play: o } = U(), [D, N] = p(0), u = E(null), n = E(), [i, h] = p(!1), S = $(async () => {
13
+ var s;
12
14
  try {
13
- await l(x), P(!0), o(I.STREAK_OUT), (A = n.current) == null || A.playSegments(c, !0), await l(
14
- (c[1] - c[0]) * 1e3 / 30
15
+ await l(C), h(!0), o(I.STREAK_OUT), (s = n.current) == null || s.playSegments(T, !0), await l(
16
+ (T[1] - T[0]) * 1e3 / 30
15
17
  ), a == null || a();
16
18
  } catch (t) {
17
19
  console.log(t);
18
20
  }
19
21
  }, [a, o]);
20
- return U(() => {
21
- if (s)
22
+ return L(() => {
23
+ if (A)
22
24
  return (async () => {
23
25
  var d;
24
- const h = (await G()).default;
26
+ const t = await x(K.TOTAL_STREAK);
25
27
  n.current = k.loadAnimation({
26
- container: m.current,
27
- animationData: h,
28
+ container: u.current,
29
+ animationData: t,
28
30
  autoplay: !1,
29
31
  loop: !1,
30
32
  renderer: "canvas"
31
- }), o(I.STREAK_IN), (d = n.current) == null || d.playSegments(M, !0), r == null || r(), l(R).then(() => {
33
+ }), o(I.STREAK_IN), (d = n.current) == null || d.playSegments(V, !0), r == null || r(), l(R).then(() => {
32
34
  N(1), l(_).then(() => {
33
35
  S();
34
36
  });
@@ -37,39 +39,39 @@ const G = () => import("../../../assets/lotties/circle/total-streak-lottie.json.
37
39
  var t;
38
40
  (t = n.current) == null || t.destroy();
39
41
  };
40
- }, [s, S, o, r]), s ? /* @__PURE__ */ f(V, { children: [
41
- /* @__PURE__ */ e(W, {}),
42
- /* @__PURE__ */ e(g, { ref: m }),
42
+ }, [A, S, o, r]), A ? /* @__PURE__ */ f(W, { children: [
43
+ /* @__PURE__ */ e(g, {}),
44
+ /* @__PURE__ */ e(X, { ref: u }),
43
45
  /* @__PURE__ */ e(
44
- X,
46
+ j,
45
47
  {
46
48
  $animationType: i ? "fadeout" : "fadein",
47
- $duration: i ? C : b,
49
+ $duration: i ? b : w,
48
50
  children: /* @__PURE__ */ f(
49
- j,
51
+ H,
50
52
  {
51
53
  $translate: D > 0,
52
54
  $translateDuration: _,
53
55
  children: [
54
- /* @__PURE__ */ e(y, { $color: "WHITE", $renderAs: "ab1-bold", children: T }),
55
- /* @__PURE__ */ e(y, { $color: "WHITE", $renderAs: "ab1-bold", children: T + 1 })
56
+ /* @__PURE__ */ e(O, { $color: "WHITE", $renderAs: "ab1-bold", children: c }),
57
+ /* @__PURE__ */ e(O, { $color: "WHITE", $renderAs: "ab1-bold", children: c + 1 })
56
58
  ]
57
59
  }
58
60
  )
59
61
  }
60
62
  ),
61
- u && /* @__PURE__ */ e(
62
- H,
63
+ m && /* @__PURE__ */ e(
64
+ G,
63
65
  {
64
66
  $delay: R,
65
67
  $animationType: i ? "fadeout" : "fadein",
66
- $duration: i ? w : F,
67
- children: u
68
+ $duration: i ? F : M,
69
+ children: m
68
70
  }
69
71
  )
70
72
  ] }) : null;
71
73
  });
72
74
  export {
73
- tt as Streak
75
+ rt as Streak
74
76
  };
75
77
  //# sourceMappingURL=streak.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"streak.js","sources":["../../../../src/features/post-game-stats/streak/streak.tsx"],"sourcesContent":["import type { IStreakProps } from './streak-types';\nimport type { AnimationItem } from 'lottie-web';\nimport type { FC } from 'react';\n\nimport Lottie from 'lottie-web';\nimport { memo, useCallback, useEffect, useRef, useState } 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 {\n IN_FRAMES,\n OUT_FRAMES,\n STREAK_APPEAR_ANIMATION_DURATION,\n STREAK_DISAPPEAR_ANIMATION_DURATION,\n STREAK_SCROLL_ANIMATION_DURATION,\n STREAK_WAIT_DURATION,\n TEXT_APPEAR_DURATION,\n TEXT_DISAPPEAR_DELAY,\n TEXT_DISAPPEAR_DURATION,\n} from './constants';\nimport * as Styled from './streak-styled';\n\nconst streakLottie = () => import('../../../assets/lotties/circle/total-streak-lottie.json');\n\nexport const Streak: FC<IStreakProps> = memo(props => {\n const { currStreak, show, onReveal, onComplete, helperText } = props;\n const { play } = useCircleSounds();\n const [displayStreak, setDisplayStreak] = useState(0);\n const lottieContainerRef = useRef<HTMLDivElement>(null);\n const lottieAnimationRef = useRef<AnimationItem>();\n const [fadeOut, setFadeout] = useState(false);\n\n const playExitAnimation = useCallback(async () => {\n try {\n await delay(TEXT_DISAPPEAR_DELAY);\n setFadeout(true);\n play(CircleSoundKey.STREAK_OUT);\n lottieAnimationRef.current?.playSegments(OUT_FRAMES, true);\n const LOTTIE_FPS = 30;\n\n await delay(\n (((OUT_FRAMES[1] as unknown as number) - (OUT_FRAMES[0] as unknown as number)) * 1000) /\n LOTTIE_FPS,\n );\n onComplete?.();\n } catch (err) {\n /* eslint-disable no-console */\n console.log(err);\n }\n }, [onComplete, play]);\n\n // play entry animation\n useEffect(() => {\n if (show) {\n const loadAnimation = async () => {\n const lottiePath = await streakLottie();\n\n const streakLottieAnimationData = lottiePath.default;\n\n lottieAnimationRef.current = Lottie.loadAnimation({\n container: lottieContainerRef.current as Element,\n animationData: streakLottieAnimationData,\n autoplay: false,\n loop: false,\n renderer: 'canvas',\n });\n\n play(CircleSoundKey.STREAK_IN);\n lottieAnimationRef.current?.playSegments(IN_FRAMES, true);\n onReveal?.();\n\n delay(STREAK_WAIT_DURATION).then(() => {\n setDisplayStreak(1);\n delay(STREAK_SCROLL_ANIMATION_DURATION).then(() => {\n playExitAnimation();\n });\n });\n };\n\n loadAnimation();\n\n return () => {\n lottieAnimationRef.current?.destroy();\n };\n }\n }, [show, playExitAnimation, play, onReveal]);\n\n if (show) {\n return (\n <Styled.Streak>\n <Styled.SVGImgContainer />\n <Styled.StreakLottieView ref={lottieContainerRef} />\n\n <Styled.StreakValueWrapper\n $animationType={fadeOut ? 'fadeout' : 'fadein'}\n $duration={\n fadeOut ? STREAK_DISAPPEAR_ANIMATION_DURATION : STREAK_APPEAR_ANIMATION_DURATION\n }\n >\n <Styled.StreakValueContainer\n $translate={displayStreak > 0}\n $translateDuration={STREAK_SCROLL_ANIMATION_DURATION}\n >\n <Styled.StreakValue $color=\"WHITE\" $renderAs=\"ab1-bold\">\n {currStreak}\n </Styled.StreakValue>\n <Styled.StreakValue $color=\"WHITE\" $renderAs=\"ab1-bold\">\n {currStreak + 1}\n </Styled.StreakValue>\n </Styled.StreakValueContainer>\n </Styled.StreakValueWrapper>\n\n {helperText && (\n <Styled.TextWrapper\n $delay={STREAK_WAIT_DURATION}\n $animationType={fadeOut ? 'fadeout' : 'fadein'}\n $duration={fadeOut ? TEXT_DISAPPEAR_DURATION : TEXT_APPEAR_DURATION}\n >\n {helperText}\n </Styled.TextWrapper>\n )}\n </Styled.Streak>\n );\n }\n\n return null;\n});\n"],"names":["streakLottie","Streak","memo","props","currStreak","show","onReveal","onComplete","helperText","play","useCircleSounds","displayStreak","setDisplayStreak","useState","lottieContainerRef","useRef","lottieAnimationRef","fadeOut","setFadeout","playExitAnimation","useCallback","delay","TEXT_DISAPPEAR_DELAY","CircleSoundKey","_a","OUT_FRAMES","err","useEffect","streakLottieAnimationData","Lottie","IN_FRAMES","STREAK_WAIT_DURATION","STREAK_SCROLL_ANIMATION_DURATION","jsxs","Styled.Streak","jsx","Styled.SVGImgContainer","Styled.StreakLottieView","Styled.StreakValueWrapper","STREAK_DISAPPEAR_ANIMATION_DURATION","STREAK_APPEAR_ANIMATION_DURATION","Styled.StreakValueContainer","Styled.StreakValue","Styled.TextWrapper","TEXT_DISAPPEAR_DURATION","TEXT_APPEAR_DURATION"],"mappings":";;;;;;;;AAuBA,MAAMA,IAAe,MAAM,OAAO,4DAAyD,GAE9EC,KAA2BC,EAAK,CAASC,MAAA;AACpD,QAAM,EAAE,YAAAC,GAAY,MAAAC,GAAM,UAAAC,GAAU,YAAAC,GAAY,YAAAC,EAAe,IAAAL,GACzD,EAAE,MAAAM,MAASC,KACX,CAACC,GAAeC,CAAgB,IAAIC,EAAS,CAAC,GAC9CC,IAAqBC,EAAuB,IAAI,GAChDC,IAAqBD,KACrB,CAACE,GAASC,CAAU,IAAIL,EAAS,EAAK,GAEtCM,IAAoBC,EAAY,YAAY;;AAC5C,QAAA;AACF,YAAMC,EAAMC,CAAoB,GAChCJ,EAAW,EAAI,GACfT,EAAKc,EAAe,UAAU,IACXC,IAAAR,EAAA,YAAA,QAAAQ,EAAS,aAAaC,GAAY,KAG/C,MAAAJ;AAAA,SACDI,EAAW,CAAC,IAA2BA,EAAW,CAAC,KAA2B,MAHhE;AAAA,MAIf,GAESlB,KAAA,QAAAA;AAAA,aACNmB,GAAK;AAEZ,cAAQ,IAAIA,CAAG;AAAA,IACjB;AAAA,EAAA,GACC,CAACnB,GAAYE,CAAI,CAAC;AAsCrB,SAnCAkB,EAAU,MAAM;AACd,QAAItB;AA0BY,cAzBQ,YAAY;;AAGhC,cAAMuB,KAFa,MAAM5B,KAEoB;AAE1B,QAAAgB,EAAA,UAAUa,EAAO,cAAc;AAAA,UAChD,WAAWf,EAAmB;AAAA,UAC9B,eAAec;AAAA,UACf,UAAU;AAAA,UACV,MAAM;AAAA,UACN,UAAU;AAAA,QAAA,CACX,GAEDnB,EAAKc,EAAe,SAAS,IACVC,IAAAR,EAAA,YAAA,QAAAQ,EAAS,aAAaM,GAAW,KACzCxB,KAAA,QAAAA,KAELe,EAAAU,CAAoB,EAAE,KAAK,MAAM;AACrC,UAAAnB,EAAiB,CAAC,GACZS,EAAAW,CAAgC,EAAE,KAAK,MAAM;AAC/B,YAAAb;UAAA,CACnB;AAAA,QAAA,CACF;AAAA,MAAA,MAKI,MAAM;;AACX,SAAAK,IAAAR,EAAmB,YAAnB,QAAAQ,EAA4B;AAAA,MAAQ;AAAA,KAGvC,CAACnB,GAAMc,GAAmBV,GAAMH,CAAQ,CAAC,GAExCD,IAEA,gBAAA4B,EAACC,GAAA,EACC,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAuB;AAAA,IACvB,gBAAAD,EAAAE,GAAA,EAAwB,KAAKvB,EAAoB,CAAA;AAAA,IAElD,gBAAAqB;AAAA,MAACG;AAAAA,MAAA;AAAA,QACC,gBAAgBrB,IAAU,YAAY;AAAA,QACtC,WACEA,IAAUsB,IAAsCC;AAAA,QAGlD,UAAA,gBAAAP;AAAA,UAACQ;AAAAA,UAAA;AAAA,YACC,YAAY9B,IAAgB;AAAA,YAC5B,oBAAoBqB;AAAA,YAEpB,UAAA;AAAA,cAAA,gBAAAG,EAACO,GAAA,EAAmB,QAAO,SAAQ,WAAU,YAC1C,UACHtC,GAAA;AAAA,cACA,gBAAA+B,EAACO,GAAA,EAAmB,QAAO,SAAQ,WAAU,YAC1C,UAAAtC,IAAa,GAChB;AAAA,YAAA;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IACF;AAAA,IAECI,KACC,gBAAA2B;AAAA,MAACQ;AAAAA,MAAA;AAAA,QACC,QAAQZ;AAAA,QACR,gBAAgBd,IAAU,YAAY;AAAA,QACtC,WAAWA,IAAU2B,IAA0BC;AAAA,QAE9C,UAAArC;AAAA,MAAA;AAAA,IACH;AAAA,EAEJ,EAAA,CAAA,IAIG;AACT,CAAC;"}
1
+ {"version":3,"file":"streak.js","sources":["../../../../src/features/post-game-stats/streak/streak.tsx"],"sourcesContent":["import type { IStreakProps } from './streak-types';\nimport type { AnimationItem } from 'lottie-web';\nimport type { FC } from 'react';\n\nimport Lottie from 'lottie-web';\nimport { memo, useCallback, useEffect, useRef, useState } 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 { fetchLottie } from '../../ui/lottie-animation/helper';\nimport { delay } from '../../utils/utils';\nimport {\n IN_FRAMES,\n OUT_FRAMES,\n STREAK_APPEAR_ANIMATION_DURATION,\n STREAK_DISAPPEAR_ANIMATION_DURATION,\n STREAK_SCROLL_ANIMATION_DURATION,\n STREAK_WAIT_DURATION,\n TEXT_APPEAR_DURATION,\n TEXT_DISAPPEAR_DELAY,\n TEXT_DISAPPEAR_DURATION,\n} from './constants';\nimport * as Styled from './streak-styled';\n\nexport const Streak: FC<IStreakProps> = memo(props => {\n const { currStreak, show, onReveal, onComplete, helperText } = props;\n const { play } = useCircleSounds();\n const [displayStreak, setDisplayStreak] = useState(0);\n const lottieContainerRef = useRef<HTMLDivElement>(null);\n const lottieAnimationRef = useRef<AnimationItem>();\n const [fadeOut, setFadeout] = useState(false);\n\n const playExitAnimation = useCallback(async () => {\n try {\n await delay(TEXT_DISAPPEAR_DELAY);\n setFadeout(true);\n play(CircleSoundKey.STREAK_OUT);\n lottieAnimationRef.current?.playSegments(OUT_FRAMES, true);\n const LOTTIE_FPS = 30;\n\n await delay(\n (((OUT_FRAMES[1] as unknown as number) - (OUT_FRAMES[0] as unknown as number)) * 1000) /\n LOTTIE_FPS,\n );\n onComplete?.();\n } catch (err) {\n /* eslint-disable no-console */\n console.log(err);\n }\n }, [onComplete, play]);\n\n // play entry animation\n useEffect(() => {\n if (show) {\n const loadAnimation = async () => {\n const streakLottieAnimationData = await fetchLottie(LOTTIE.TOTAL_STREAK);\n\n lottieAnimationRef.current = Lottie.loadAnimation({\n container: lottieContainerRef.current as Element,\n animationData: streakLottieAnimationData,\n autoplay: false,\n loop: false,\n renderer: 'canvas',\n });\n\n play(CircleSoundKey.STREAK_IN);\n lottieAnimationRef.current?.playSegments(IN_FRAMES, true);\n onReveal?.();\n\n delay(STREAK_WAIT_DURATION).then(() => {\n setDisplayStreak(1);\n delay(STREAK_SCROLL_ANIMATION_DURATION).then(() => {\n playExitAnimation();\n });\n });\n };\n\n loadAnimation();\n\n return () => {\n lottieAnimationRef.current?.destroy();\n };\n }\n }, [show, playExitAnimation, play, onReveal]);\n\n if (show) {\n return (\n <Styled.Streak>\n <Styled.SVGImgContainer />\n <Styled.StreakLottieView ref={lottieContainerRef} />\n\n <Styled.StreakValueWrapper\n $animationType={fadeOut ? 'fadeout' : 'fadein'}\n $duration={\n fadeOut ? STREAK_DISAPPEAR_ANIMATION_DURATION : STREAK_APPEAR_ANIMATION_DURATION\n }\n >\n <Styled.StreakValueContainer\n $translate={displayStreak > 0}\n $translateDuration={STREAK_SCROLL_ANIMATION_DURATION}\n >\n <Styled.StreakValue $color=\"WHITE\" $renderAs=\"ab1-bold\">\n {currStreak}\n </Styled.StreakValue>\n <Styled.StreakValue $color=\"WHITE\" $renderAs=\"ab1-bold\">\n {currStreak + 1}\n </Styled.StreakValue>\n </Styled.StreakValueContainer>\n </Styled.StreakValueWrapper>\n\n {helperText && (\n <Styled.TextWrapper\n $delay={STREAK_WAIT_DURATION}\n $animationType={fadeOut ? 'fadeout' : 'fadein'}\n $duration={fadeOut ? TEXT_DISAPPEAR_DURATION : TEXT_APPEAR_DURATION}\n >\n {helperText}\n </Styled.TextWrapper>\n )}\n </Styled.Streak>\n );\n }\n\n return null;\n});\n"],"names":["Streak","memo","props","currStreak","show","onReveal","onComplete","helperText","play","useCircleSounds","displayStreak","setDisplayStreak","useState","lottieContainerRef","useRef","lottieAnimationRef","fadeOut","setFadeout","playExitAnimation","useCallback","delay","TEXT_DISAPPEAR_DELAY","CircleSoundKey","_a","OUT_FRAMES","err","useEffect","streakLottieAnimationData","fetchLottie","LOTTIE","Lottie","IN_FRAMES","STREAK_WAIT_DURATION","STREAK_SCROLL_ANIMATION_DURATION","jsxs","Styled.Streak","jsx","Styled.SVGImgContainer","Styled.StreakLottieView","Styled.StreakValueWrapper","STREAK_DISAPPEAR_ANIMATION_DURATION","STREAK_APPEAR_ANIMATION_DURATION","Styled.StreakValueContainer","Styled.StreakValue","Styled.TextWrapper","TEXT_DISAPPEAR_DURATION","TEXT_APPEAR_DURATION"],"mappings":";;;;;;;;;;AAyBa,MAAAA,KAA2BC,EAAK,CAASC,MAAA;AACpD,QAAM,EAAE,YAAAC,GAAY,MAAAC,GAAM,UAAAC,GAAU,YAAAC,GAAY,YAAAC,EAAe,IAAAL,GACzD,EAAE,MAAAM,MAASC,KACX,CAACC,GAAeC,CAAgB,IAAIC,EAAS,CAAC,GAC9CC,IAAqBC,EAAuB,IAAI,GAChDC,IAAqBD,KACrB,CAACE,GAASC,CAAU,IAAIL,EAAS,EAAK,GAEtCM,IAAoBC,EAAY,YAAY;;AAC5C,QAAA;AACF,YAAMC,EAAMC,CAAoB,GAChCJ,EAAW,EAAI,GACfT,EAAKc,EAAe,UAAU,IACXC,IAAAR,EAAA,YAAA,QAAAQ,EAAS,aAAaC,GAAY,KAG/C,MAAAJ;AAAA,SACDI,EAAW,CAAC,IAA2BA,EAAW,CAAC,KAA2B,MAHhE;AAAA,MAIf,GAESlB,KAAA,QAAAA;AAAA,aACNmB,GAAK;AAEZ,cAAQ,IAAIA,CAAG;AAAA,IACjB;AAAA,EAAA,GACC,CAACnB,GAAYE,CAAI,CAAC;AAoCrB,SAjCAkB,EAAU,MAAM;AACd,QAAItB;AAwBY,cAvBQ,YAAY;;AAChC,cAAMuB,IAA4B,MAAMC,EAAYC,EAAO,YAAY;AAEpD,QAAAd,EAAA,UAAUe,EAAO,cAAc;AAAA,UAChD,WAAWjB,EAAmB;AAAA,UAC9B,eAAec;AAAA,UACf,UAAU;AAAA,UACV,MAAM;AAAA,UACN,UAAU;AAAA,QAAA,CACX,GAEDnB,EAAKc,EAAe,SAAS,IACVC,IAAAR,EAAA,YAAA,QAAAQ,EAAS,aAAaQ,GAAW,KACzC1B,KAAA,QAAAA,KAELe,EAAAY,CAAoB,EAAE,KAAK,MAAM;AACrC,UAAArB,EAAiB,CAAC,GACZS,EAAAa,CAAgC,EAAE,KAAK,MAAM;AAC/B,YAAAf;UAAA,CACnB;AAAA,QAAA,CACF;AAAA,MAAA,MAKI,MAAM;;AACX,SAAAK,IAAAR,EAAmB,YAAnB,QAAAQ,EAA4B;AAAA,MAAQ;AAAA,KAGvC,CAACnB,GAAMc,GAAmBV,GAAMH,CAAQ,CAAC,GAExCD,IAEA,gBAAA8B,EAACC,GAAA,EACC,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAuB;AAAA,IACvB,gBAAAD,EAAAE,GAAA,EAAwB,KAAKzB,EAAoB,CAAA;AAAA,IAElD,gBAAAuB;AAAA,MAACG;AAAAA,MAAA;AAAA,QACC,gBAAgBvB,IAAU,YAAY;AAAA,QACtC,WACEA,IAAUwB,IAAsCC;AAAA,QAGlD,UAAA,gBAAAP;AAAA,UAACQ;AAAAA,UAAA;AAAA,YACC,YAAYhC,IAAgB;AAAA,YAC5B,oBAAoBuB;AAAA,YAEpB,UAAA;AAAA,cAAA,gBAAAG,EAACO,GAAA,EAAmB,QAAO,SAAQ,WAAU,YAC1C,UACHxC,GAAA;AAAA,cACA,gBAAAiC,EAACO,GAAA,EAAmB,QAAO,SAAQ,WAAU,YAC1C,UAAAxC,IAAa,GAChB;AAAA,YAAA;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IACF;AAAA,IAECI,KACC,gBAAA6B;AAAA,MAACQ;AAAAA,MAAA;AAAA,QACC,QAAQZ;AAAA,QACR,gBAAgBhB,IAAU,YAAY;AAAA,QACtC,WAAWA,IAAU6B,IAA0BC;AAAA,QAE9C,UAAAvC;AAAA,MAAA;AAAA,IACH;AAAA,EAEJ,EAAA,CAAA,IAIG;AACT,CAAC;"}