@cuemath/leap 2.8.38-hg1 → 2.8.38-hg2

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.
@@ -1,5 +1,5 @@
1
1
  import { CircleSoundKey as c } from "./use-circle-sounds-enums.js";
2
- const e = "https://cuemath-circle.s3.ap-southeast-1.amazonaws.com/assets/sounds/production", r = {
2
+ const e = "https://cuemath-circle.s3.ap-southeast-1.amazonaws.com/assets/sounds/production", a = "https://static.cuemath.com/static/sounds", t = {
3
3
  [c.BACKGROUND]: `${e}/bg-sound.mp3`,
4
4
  [c.BACKGROUND_RUSHHOUR]: `${e}/circle-background-rushhour.mp3`,
5
5
  [c.TUTORIAL]: `${e}/bg-sound-tutorials.mp3`,
@@ -17,7 +17,12 @@ const e = "https://cuemath-circle.s3.ap-southeast-1.amazonaws.com/assets/sounds/
17
17
  [c.ACCURACY_IN]: `${e}/circle-meter-v1.wav`,
18
18
  [c.ACCURACY_OUT]: `${e}/circle-disappear-v1.wav`,
19
19
  [c.STREAK_IN]: `${e}/circle-streak-v1.wav`,
20
- [c.STREAK_OUT]: `${e}/circle-disappear-v1.wav`
20
+ [c.STREAK_OUT]: `${e}/circle-disappear-v1.wav`,
21
+ [c.ACCURACY_INTRO]: `${a}/accuracy-intro.mp3`,
22
+ [c.ACCURACY_TARGET]: `${a}/accuracy-target.mp3`,
23
+ [c.TIME_INTRO]: `${a}/timer-intro.mp3`,
24
+ [c.TIME_TARGET]: `${a}/timer-target.mp3`,
25
+ [c.METER_FILL]: `${a}/meter-fill.mp3`
21
26
  }, i = [
22
27
  c.SWIPE_04,
23
28
  c.SWIPE_02,
@@ -25,7 +30,7 @@ const e = "https://cuemath-circle.s3.ap-southeast-1.amazonaws.com/assets/sounds/
25
30
  c.SWIPE_01
26
31
  ];
27
32
  export {
28
- r as CircleSoundKeyMapper,
33
+ t as CircleSoundKeyMapper,
29
34
  i as SWIPE_SOUND_ORDER
30
35
  };
31
36
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../../src/features/circle-games/hooks/use-circle-sounds/constants.ts"],"sourcesContent":["import { CircleSoundKey } from './use-circle-sounds-enums';\n\nconst BASE_URL = 'https://cuemath-circle.s3.ap-southeast-1.amazonaws.com/assets/sounds/production';\n\nexport const CircleSoundKeyMapper = {\n [CircleSoundKey.BACKGROUND]: `${BASE_URL}/bg-sound.mp3`,\n [CircleSoundKey.BACKGROUND_RUSHHOUR]: `${BASE_URL}/circle-background-rushhour.mp3`,\n [CircleSoundKey.TUTORIAL]: `${BASE_URL}/bg-sound-tutorials.mp3`,\n [CircleSoundKey.SWIPE_01]: `${BASE_URL}/circle-swipe-1.wav`,\n [CircleSoundKey.SWIPE_02]: `${BASE_URL}/circle-swipe-2.wav`,\n [CircleSoundKey.SWIPE_03]: `${BASE_URL}/circle-swipe-3.wav`,\n [CircleSoundKey.SWIPE_04]: `${BASE_URL}/circle-swipe-4.wav`,\n [CircleSoundKey.SWIPE_DOWN]: `${BASE_URL}/circle-swipe-down-1.wav`,\n [CircleSoundKey.TOGGLE]: `${BASE_URL}/circle-button-v3.wav`,\n [CircleSoundKey.POINTS_AWARDED]: `${BASE_URL}/circle-points-v1.wav`,\n [CircleSoundKey.POINTS_ADDED]: `${BASE_URL}/circle-points-add-v1.wav`,\n [CircleSoundKey.GAME_CARD_CLICK]: `${BASE_URL}/circle-gamecard-button-v1.wav`,\n [CircleSoundKey.CLOCK_IN]: `${BASE_URL}/circle-meter-v1.wav`,\n [CircleSoundKey.CLOCK_OUT]: `${BASE_URL}/circle-disappear-v1.wav`,\n [CircleSoundKey.ACCURACY_IN]: `${BASE_URL}/circle-meter-v1.wav`,\n [CircleSoundKey.ACCURACY_OUT]: `${BASE_URL}/circle-disappear-v1.wav`,\n [CircleSoundKey.STREAK_IN]: `${BASE_URL}/circle-streak-v1.wav`,\n [CircleSoundKey.STREAK_OUT]: `${BASE_URL}/circle-disappear-v1.wav`,\n};\n\nexport const SWIPE_SOUND_ORDER = [\n CircleSoundKey.SWIPE_04,\n CircleSoundKey.SWIPE_02,\n CircleSoundKey.SWIPE_03,\n CircleSoundKey.SWIPE_01,\n];\n"],"names":["BASE_URL","CircleSoundKeyMapper","CircleSoundKey","SWIPE_SOUND_ORDER"],"mappings":";AAEA,MAAMA,IAAW,mFAEJC,IAAuB;AAAA,EAClC,CAACC,EAAe,UAAU,GAAG,GAAGF,CAAQ;AAAA,EACxC,CAACE,EAAe,mBAAmB,GAAG,GAAGF,CAAQ;AAAA,EACjD,CAACE,EAAe,QAAQ,GAAG,GAAGF,CAAQ;AAAA,EACtC,CAACE,EAAe,QAAQ,GAAG,GAAGF,CAAQ;AAAA,EACtC,CAACE,EAAe,QAAQ,GAAG,GAAGF,CAAQ;AAAA,EACtC,CAACE,EAAe,QAAQ,GAAG,GAAGF,CAAQ;AAAA,EACtC,CAACE,EAAe,QAAQ,GAAG,GAAGF,CAAQ;AAAA,EACtC,CAACE,EAAe,UAAU,GAAG,GAAGF,CAAQ;AAAA,EACxC,CAACE,EAAe,MAAM,GAAG,GAAGF,CAAQ;AAAA,EACpC,CAACE,EAAe,cAAc,GAAG,GAAGF,CAAQ;AAAA,EAC5C,CAACE,EAAe,YAAY,GAAG,GAAGF,CAAQ;AAAA,EAC1C,CAACE,EAAe,eAAe,GAAG,GAAGF,CAAQ;AAAA,EAC7C,CAACE,EAAe,QAAQ,GAAG,GAAGF,CAAQ;AAAA,EACtC,CAACE,EAAe,SAAS,GAAG,GAAGF,CAAQ;AAAA,EACvC,CAACE,EAAe,WAAW,GAAG,GAAGF,CAAQ;AAAA,EACzC,CAACE,EAAe,YAAY,GAAG,GAAGF,CAAQ;AAAA,EAC1C,CAACE,EAAe,SAAS,GAAG,GAAGF,CAAQ;AAAA,EACvC,CAACE,EAAe,UAAU,GAAG,GAAGF,CAAQ;AAC1C,GAEaG,IAAoB;AAAA,EAC/BD,EAAe;AAAA,EACfA,EAAe;AAAA,EACfA,EAAe;AAAA,EACfA,EAAe;AACjB;"}
1
+ {"version":3,"file":"constants.js","sources":["../../../../../src/features/circle-games/hooks/use-circle-sounds/constants.ts"],"sourcesContent":["import { CircleSoundKey } from './use-circle-sounds-enums';\n\nconst BASE_URL = 'https://cuemath-circle.s3.ap-southeast-1.amazonaws.com/assets/sounds/production';\n\nconst STATIC_BASE_URL = 'https://static.cuemath.com/static/sounds'\n\nexport const CircleSoundKeyMapper = {\n [CircleSoundKey.BACKGROUND]: `${BASE_URL}/bg-sound.mp3`,\n [CircleSoundKey.BACKGROUND_RUSHHOUR]: `${BASE_URL}/circle-background-rushhour.mp3`,\n [CircleSoundKey.TUTORIAL]: `${BASE_URL}/bg-sound-tutorials.mp3`,\n [CircleSoundKey.SWIPE_01]: `${BASE_URL}/circle-swipe-1.wav`,\n [CircleSoundKey.SWIPE_02]: `${BASE_URL}/circle-swipe-2.wav`,\n [CircleSoundKey.SWIPE_03]: `${BASE_URL}/circle-swipe-3.wav`,\n [CircleSoundKey.SWIPE_04]: `${BASE_URL}/circle-swipe-4.wav`,\n [CircleSoundKey.SWIPE_DOWN]: `${BASE_URL}/circle-swipe-down-1.wav`,\n [CircleSoundKey.TOGGLE]: `${BASE_URL}/circle-button-v3.wav`,\n [CircleSoundKey.POINTS_AWARDED]: `${BASE_URL}/circle-points-v1.wav`,\n [CircleSoundKey.POINTS_ADDED]: `${BASE_URL}/circle-points-add-v1.wav`,\n [CircleSoundKey.GAME_CARD_CLICK]: `${BASE_URL}/circle-gamecard-button-v1.wav`,\n [CircleSoundKey.CLOCK_IN]: `${BASE_URL}/circle-meter-v1.wav`,\n [CircleSoundKey.CLOCK_OUT]: `${BASE_URL}/circle-disappear-v1.wav`,\n [CircleSoundKey.ACCURACY_IN]: `${BASE_URL}/circle-meter-v1.wav`,\n [CircleSoundKey.ACCURACY_OUT]: `${BASE_URL}/circle-disappear-v1.wav`,\n [CircleSoundKey.STREAK_IN]: `${BASE_URL}/circle-streak-v1.wav`,\n [CircleSoundKey.STREAK_OUT]: `${BASE_URL}/circle-disappear-v1.wav`,\n [CircleSoundKey.ACCURACY_INTRO]: `${STATIC_BASE_URL}/accuracy-intro.mp3`,\n [CircleSoundKey.ACCURACY_TARGET]: `${STATIC_BASE_URL}/accuracy-target.mp3`,\n [CircleSoundKey.TIME_INTRO]: `${STATIC_BASE_URL}/timer-intro.mp3`,\n [CircleSoundKey.TIME_TARGET]: `${STATIC_BASE_URL}/timer-target.mp3`,\n [CircleSoundKey.METER_FILL]: `${STATIC_BASE_URL}/meter-fill.mp3`,\n};\n\nexport const SWIPE_SOUND_ORDER = [\n CircleSoundKey.SWIPE_04,\n CircleSoundKey.SWIPE_02,\n CircleSoundKey.SWIPE_03,\n CircleSoundKey.SWIPE_01,\n];\n"],"names":["BASE_URL","STATIC_BASE_URL","CircleSoundKeyMapper","CircleSoundKey","SWIPE_SOUND_ORDER"],"mappings":";AAEA,MAAMA,IAAW,mFAEXC,IAAkB,4CAEXC,IAAuB;AAAA,EAClC,CAACC,EAAe,UAAU,GAAG,GAAGH,CAAQ;AAAA,EACxC,CAACG,EAAe,mBAAmB,GAAG,GAAGH,CAAQ;AAAA,EACjD,CAACG,EAAe,QAAQ,GAAG,GAAGH,CAAQ;AAAA,EACtC,CAACG,EAAe,QAAQ,GAAG,GAAGH,CAAQ;AAAA,EACtC,CAACG,EAAe,QAAQ,GAAG,GAAGH,CAAQ;AAAA,EACtC,CAACG,EAAe,QAAQ,GAAG,GAAGH,CAAQ;AAAA,EACtC,CAACG,EAAe,QAAQ,GAAG,GAAGH,CAAQ;AAAA,EACtC,CAACG,EAAe,UAAU,GAAG,GAAGH,CAAQ;AAAA,EACxC,CAACG,EAAe,MAAM,GAAG,GAAGH,CAAQ;AAAA,EACpC,CAACG,EAAe,cAAc,GAAG,GAAGH,CAAQ;AAAA,EAC5C,CAACG,EAAe,YAAY,GAAG,GAAGH,CAAQ;AAAA,EAC1C,CAACG,EAAe,eAAe,GAAG,GAAGH,CAAQ;AAAA,EAC7C,CAACG,EAAe,QAAQ,GAAG,GAAGH,CAAQ;AAAA,EACtC,CAACG,EAAe,SAAS,GAAG,GAAGH,CAAQ;AAAA,EACvC,CAACG,EAAe,WAAW,GAAG,GAAGH,CAAQ;AAAA,EACzC,CAACG,EAAe,YAAY,GAAG,GAAGH,CAAQ;AAAA,EAC1C,CAACG,EAAe,SAAS,GAAG,GAAGH,CAAQ;AAAA,EACvC,CAACG,EAAe,UAAU,GAAG,GAAGH,CAAQ;AAAA,EACxC,CAACG,EAAe,cAAc,GAAG,GAAGF,CAAe;AAAA,EACnD,CAACE,EAAe,eAAe,GAAG,GAAGF,CAAe;AAAA,EACpD,CAACE,EAAe,UAAU,GAAG,GAAGF,CAAe;AAAA,EAC/C,CAACE,EAAe,WAAW,GAAG,GAAGF,CAAe;AAAA,EAChD,CAACE,EAAe,UAAU,GAAG,GAAGF,CAAe;AACjD,GAEaG,IAAoB;AAAA,EAC/BD,EAAe;AAAA,EACfA,EAAe;AAAA,EACfA,EAAe;AAAA,EACfA,EAAe;AACjB;"}
@@ -1,5 +1,5 @@
1
- var A = /* @__PURE__ */ ((_) => (_.BACKGROUND = "background", _.BACKGROUND_RUSHHOUR = "background_rushhour", _.TUTORIAL = "tutorial", _.SWIPE_01 = "swipe-1", _.SWIPE_02 = "swipe-2", _.SWIPE_03 = "swipe-3", _.SWIPE_04 = "swipe-4", _.SWIPE_DOWN = "swipe-down", _.TOGGLE = "toggle", _.POINTS_AWARDED = "pointsAwarded", _.POINTS_ADDED = "pointsAdded", _.GAME_CARD_CLICK = "gameCardClick", _.CLOCK_IN = "clock-in", _.CLOCK_OUT = "clock-out", _.ACCURACY_IN = "accuracy-in", _.ACCURACY_OUT = "accuracy-out", _.STREAK_IN = "streak-in", _.STREAK_OUT = "streak-out", _))(A || {});
1
+ var _ = /* @__PURE__ */ ((A) => (A.BACKGROUND = "background", A.BACKGROUND_RUSHHOUR = "background_rushhour", A.TUTORIAL = "tutorial", A.SWIPE_01 = "swipe-1", A.SWIPE_02 = "swipe-2", A.SWIPE_03 = "swipe-3", A.SWIPE_04 = "swipe-4", A.SWIPE_DOWN = "swipe-down", A.TOGGLE = "toggle", A.POINTS_AWARDED = "pointsAwarded", A.POINTS_ADDED = "pointsAdded", A.GAME_CARD_CLICK = "gameCardClick", A.CLOCK_IN = "clock-in", A.CLOCK_OUT = "clock-out", A.ACCURACY_IN = "accuracy-in", A.ACCURACY_OUT = "accuracy-out", A.STREAK_IN = "streak-in", A.STREAK_OUT = "streak-out", A.ACCURACY_INTRO = "accuracy-intro", A.ACCURACY_TARGET = "accuracy-target", A.TIME_INTRO = "time-intro", A.TIME_TARGET = "time-target", A.METER_FILL = "meter-fill", A))(_ || {});
2
2
  export {
3
- A as CircleSoundKey
3
+ _ as CircleSoundKey
4
4
  };
5
5
  //# sourceMappingURL=use-circle-sounds-enums.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-circle-sounds-enums.js","sources":["../../../../../src/features/circle-games/hooks/use-circle-sounds/use-circle-sounds-enums.ts"],"sourcesContent":["export enum CircleSoundKey {\n BACKGROUND = 'background',\n BACKGROUND_RUSHHOUR = 'background_rushhour',\n TUTORIAL = 'tutorial',\n SWIPE_01 = 'swipe-1',\n SWIPE_02 = 'swipe-2',\n SWIPE_03 = 'swipe-3',\n SWIPE_04 = 'swipe-4',\n SWIPE_DOWN = 'swipe-down',\n TOGGLE = 'toggle',\n POINTS_AWARDED = 'pointsAwarded',\n POINTS_ADDED = 'pointsAdded',\n GAME_CARD_CLICK = 'gameCardClick',\n CLOCK_IN = 'clock-in',\n CLOCK_OUT = 'clock-out',\n ACCURACY_IN = 'accuracy-in',\n ACCURACY_OUT = 'accuracy-out',\n STREAK_IN = 'streak-in',\n STREAK_OUT = 'streak-out',\n}\n"],"names":["CircleSoundKey"],"mappings":"AAAY,IAAAA,sBAAAA,OACVA,EAAA,aAAa,cACbA,EAAA,sBAAsB,uBACtBA,EAAA,WAAW,YACXA,EAAA,WAAW,WACXA,EAAA,WAAW,WACXA,EAAA,WAAW,WACXA,EAAA,WAAW,WACXA,EAAA,aAAa,cACbA,EAAA,SAAS,UACTA,EAAA,iBAAiB,iBACjBA,EAAA,eAAe,eACfA,EAAA,kBAAkB,iBAClBA,EAAA,WAAW,YACXA,EAAA,YAAY,aACZA,EAAA,cAAc,eACdA,EAAA,eAAe,gBACfA,EAAA,YAAY,aACZA,EAAA,aAAa,cAlBHA,IAAAA,KAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"use-circle-sounds-enums.js","sources":["../../../../../src/features/circle-games/hooks/use-circle-sounds/use-circle-sounds-enums.ts"],"sourcesContent":["export enum CircleSoundKey {\n BACKGROUND = 'background',\n BACKGROUND_RUSHHOUR = 'background_rushhour',\n TUTORIAL = 'tutorial',\n SWIPE_01 = 'swipe-1',\n SWIPE_02 = 'swipe-2',\n SWIPE_03 = 'swipe-3',\n SWIPE_04 = 'swipe-4',\n SWIPE_DOWN = 'swipe-down',\n TOGGLE = 'toggle',\n POINTS_AWARDED = 'pointsAwarded',\n POINTS_ADDED = 'pointsAdded',\n GAME_CARD_CLICK = 'gameCardClick',\n CLOCK_IN = 'clock-in',\n CLOCK_OUT = 'clock-out',\n ACCURACY_IN = 'accuracy-in',\n ACCURACY_OUT = 'accuracy-out',\n STREAK_IN = 'streak-in',\n STREAK_OUT = 'streak-out',\n ACCURACY_INTRO = 'accuracy-intro',\n ACCURACY_TARGET = 'accuracy-target',\n TIME_INTRO = 'time-intro',\n TIME_TARGET = 'time-target',\n METER_FILL = 'meter-fill',\n}\n"],"names":["CircleSoundKey"],"mappings":"AAAY,IAAAA,sBAAAA,OACVA,EAAA,aAAa,cACbA,EAAA,sBAAsB,uBACtBA,EAAA,WAAW,YACXA,EAAA,WAAW,WACXA,EAAA,WAAW,WACXA,EAAA,WAAW,WACXA,EAAA,WAAW,WACXA,EAAA,aAAa,cACbA,EAAA,SAAS,UACTA,EAAA,iBAAiB,iBACjBA,EAAA,eAAe,eACfA,EAAA,kBAAkB,iBAClBA,EAAA,WAAW,YACXA,EAAA,YAAY,aACZA,EAAA,cAAc,eACdA,EAAA,eAAe,gBACfA,EAAA,YAAY,aACZA,EAAA,aAAa,cACbA,EAAA,iBAAiB,kBACjBA,EAAA,kBAAkB,mBAClBA,EAAA,aAAa,cACbA,EAAA,cAAc,eACdA,EAAA,aAAa,cAvBHA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -1,7 +1,7 @@
1
1
  import { useCallback as a } from "react";
2
- import { CircleSoundKeyMapper as E, SWIPE_SOUND_ORDER as S } from "./constants.js";
2
+ import { CircleSoundKeyMapper as A, SWIPE_SOUND_ORDER as i } from "./constants.js";
3
3
  import { CircleSoundKey as l } from "./use-circle-sounds-enums.js";
4
- let i = 0;
4
+ let C = 0;
5
5
  const r = {
6
6
  [l.BACKGROUND]: null,
7
7
  [l.BACKGROUND_RUSHHOUR]: null,
@@ -20,24 +20,29 @@ const r = {
20
20
  [l.ACCURACY_IN]: null,
21
21
  [l.ACCURACY_OUT]: null,
22
22
  [l.STREAK_IN]: null,
23
- [l.STREAK_OUT]: null
24
- }, p = {}, f = () => {
23
+ [l.STREAK_OUT]: null,
24
+ [l.ACCURACY_INTRO]: null,
25
+ [l.ACCURACY_TARGET]: null,
26
+ [l.TIME_INTRO]: null,
27
+ [l.TIME_TARGET]: null,
28
+ [l.METER_FILL]: null
29
+ }, I = {}, O = () => {
25
30
  const e = a((n) => {
26
31
  if (!r[n]) {
27
- const t = new Audio(E[n]);
32
+ const t = new Audio(A[n]);
28
33
  r[n] = t;
29
34
  }
30
- }, []), d = a(() => {
35
+ }, []), p = a(() => {
31
36
  var t;
32
- S.forEach((o) => {
37
+ i.forEach((o) => {
33
38
  e(o);
34
39
  });
35
- const n = S[i] || l.SWIPE_01;
36
- i < S.length - 1 ? i++ : i = 0, (t = r[n]) == null || t.play();
37
- }, [e]), I = a(() => {
40
+ const n = i[C] || l.SWIPE_01;
41
+ C < i.length - 1 ? C++ : C = 0, (t = r[n]) == null || t.play();
42
+ }, [e]), _ = a(() => {
38
43
  var t;
39
44
  return e(l.TOGGLE), (t = r[l.TOGGLE]) == null ? void 0 : t.play();
40
- }, [e]), C = a(
45
+ }, [e]), E = a(
41
46
  (n, t = !0, o = !1) => {
42
47
  e(n);
43
48
  const u = r[n];
@@ -45,22 +50,22 @@ const r = {
45
50
  if (u.loop = o, t) {
46
51
  u.volume = 1;
47
52
  const s = u.play();
48
- p[n] = s;
53
+ I[n] = s;
49
54
  return;
50
55
  }
51
56
  u.volume = 0;
52
57
  const c = u.play();
53
- return p[n] = c, setInterval(() => {
58
+ return I[n] = c, setInterval(() => {
54
59
  if (!u) return;
55
60
  const s = 0;
56
61
  u.volume = s + 0.1;
57
62
  }, 100), u;
58
63
  },
59
64
  [e]
60
- ), _ = a((n, t = !0) => {
65
+ ), S = a((n, t = !0) => {
61
66
  var u;
62
67
  const o = r[n];
63
- p[n] !== void 0 && ((u = p[n]) == null || u.then(() => {
68
+ I[n] !== void 0 && ((u = I[n]) == null || u.then(() => {
64
69
  if (t) {
65
70
  o == null || o.pause();
66
71
  return;
@@ -74,10 +79,10 @@ const r = {
74
79
  console.log("sound not playing", c);
75
80
  }));
76
81
  }, []);
77
- return { playSwipSound: d, play: C, stop: _, playButtonSound: I };
82
+ return { playSwipSound: p, play: E, stop: S, playButtonSound: _ };
78
83
  };
79
84
  export {
80
85
  r as soundMapper,
81
- f as useCircleSounds
86
+ O as useCircleSounds
82
87
  };
83
88
  //# sourceMappingURL=use-circle-sounds.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-circle-sounds.js","sources":["../../../../../src/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { CircleSoundKeyMapper, SWIPE_SOUND_ORDER } from './constants';\nimport { CircleSoundKey } from './use-circle-sounds-enums';\n\nlet swipeSoundIndex = 0;\n\nexport const soundMapper: Record<keyof typeof CircleSoundKeyMapper, null | HTMLAudioElement> = {\n [CircleSoundKey.BACKGROUND]: null,\n [CircleSoundKey.BACKGROUND_RUSHHOUR]: null,\n [CircleSoundKey.TUTORIAL]: null,\n [CircleSoundKey.SWIPE_01]: null,\n [CircleSoundKey.SWIPE_02]: null,\n [CircleSoundKey.SWIPE_03]: null,\n [CircleSoundKey.SWIPE_04]: null,\n [CircleSoundKey.SWIPE_DOWN]: null,\n [CircleSoundKey.TOGGLE]: null,\n [CircleSoundKey.POINTS_AWARDED]: null,\n [CircleSoundKey.POINTS_ADDED]: null,\n [CircleSoundKey.GAME_CARD_CLICK]: null,\n [CircleSoundKey.CLOCK_IN]: null,\n [CircleSoundKey.CLOCK_OUT]: null,\n [CircleSoundKey.ACCURACY_IN]: null,\n [CircleSoundKey.ACCURACY_OUT]: null,\n [CircleSoundKey.STREAK_IN]: null,\n [CircleSoundKey.STREAK_OUT]: null,\n};\n\nconst soundInstancePromise: Partial<Record<keyof typeof CircleSoundKeyMapper, Promise<void>>> = {};\n\nexport const useCircleSounds = () => {\n const loadSound = useCallback((key: CircleSoundKey) => {\n if (!soundMapper[key]) {\n const loadedSound = new Audio(CircleSoundKeyMapper[key]);\n\n soundMapper[key] = loadedSound;\n }\n }, []);\n\n const playSwipSound = useCallback(() => {\n SWIPE_SOUND_ORDER.forEach(key => {\n loadSound(key);\n });\n\n const key = SWIPE_SOUND_ORDER[swipeSoundIndex] || CircleSoundKey.SWIPE_01;\n\n if (swipeSoundIndex < SWIPE_SOUND_ORDER.length - 1) {\n swipeSoundIndex++;\n } else {\n swipeSoundIndex = 0;\n }\n soundMapper[key]?.play();\n }, [loadSound]);\n\n const playButtonSound = useCallback(() => {\n loadSound(CircleSoundKey.TOGGLE);\n const sound = soundMapper[CircleSoundKey.TOGGLE]?.play();\n\n return sound;\n }, [loadSound]);\n\n const play = useCallback(\n (key: CircleSoundKey, immediately: boolean = true, loop = false) => {\n loadSound(key);\n const soundInstance = soundMapper[key];\n\n if (!soundInstance) return;\n\n soundInstance.loop = loop;\n if (immediately) {\n soundInstance.volume = 1;\n const promise = soundInstance.play();\n\n soundInstancePromise[key] = promise;\n\n return;\n }\n\n soundInstance.volume = 0;\n const promise = soundInstance.play();\n\n soundInstancePromise[key] = promise;\n\n const intervalId = setInterval(() => {\n if (!soundInstance) return;\n\n const vol = 0;\n\n if (vol < 1) {\n soundInstance.volume = vol + 0.1;\n } else {\n clearInterval(intervalId);\n }\n }, 100);\n\n return soundInstance;\n },\n [loadSound],\n );\n\n const stop = useCallback((key: CircleSoundKey, immediately: boolean = true) => {\n const soundInstance = soundMapper[key];\n\n // check if the sound is playing as the play() return a promise\n if (soundInstancePromise[key] !== undefined) {\n soundInstancePromise[key]\n ?.then(() => {\n if (immediately) {\n soundInstance?.pause();\n\n return;\n }\n\n const intervalId = setInterval(() => {\n if (!soundInstance) return;\n\n const vol = soundInstance.volume || 0;\n\n if (vol - 0.1 <= 0) {\n soundInstance.volume = 0;\n soundInstance.pause();\n clearInterval(intervalId);\n } else {\n soundInstance.volume = vol - 0.1;\n }\n }, 100);\n })\n .catch(err => {\n // eslint-disable-next-line no-console\n console.log('sound not playing', err);\n });\n }\n }, []);\n\n return { playSwipSound, play, stop, playButtonSound };\n};\n"],"names":["swipeSoundIndex","soundMapper","CircleSoundKey","soundInstancePromise","useCircleSounds","loadSound","useCallback","key","loadedSound","CircleSoundKeyMapper","playSwipSound","SWIPE_SOUND_ORDER","_a","playButtonSound","play","immediately","loop","soundInstance","promise","vol","stop","intervalId","err"],"mappings":"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"}
1
+ {"version":3,"file":"use-circle-sounds.js","sources":["../../../../../src/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { CircleSoundKeyMapper, SWIPE_SOUND_ORDER } from './constants';\nimport { CircleSoundKey } from './use-circle-sounds-enums';\n\nlet swipeSoundIndex = 0;\n\nexport const soundMapper: Record<keyof typeof CircleSoundKeyMapper, null | HTMLAudioElement> = {\n [CircleSoundKey.BACKGROUND]: null,\n [CircleSoundKey.BACKGROUND_RUSHHOUR]: null,\n [CircleSoundKey.TUTORIAL]: null,\n [CircleSoundKey.SWIPE_01]: null,\n [CircleSoundKey.SWIPE_02]: null,\n [CircleSoundKey.SWIPE_03]: null,\n [CircleSoundKey.SWIPE_04]: null,\n [CircleSoundKey.SWIPE_DOWN]: null,\n [CircleSoundKey.TOGGLE]: null,\n [CircleSoundKey.POINTS_AWARDED]: null,\n [CircleSoundKey.POINTS_ADDED]: null,\n [CircleSoundKey.GAME_CARD_CLICK]: null,\n [CircleSoundKey.CLOCK_IN]: null,\n [CircleSoundKey.CLOCK_OUT]: null,\n [CircleSoundKey.ACCURACY_IN]: null,\n [CircleSoundKey.ACCURACY_OUT]: null,\n [CircleSoundKey.STREAK_IN]: null,\n [CircleSoundKey.STREAK_OUT]: null,\n [CircleSoundKey.ACCURACY_INTRO]: null,\n [CircleSoundKey.ACCURACY_TARGET]: null,\n [CircleSoundKey.TIME_INTRO]: null,\n [CircleSoundKey.TIME_TARGET]: null,\n [CircleSoundKey.METER_FILL]: null,\n};\n\nconst soundInstancePromise: Partial<Record<keyof typeof CircleSoundKeyMapper, Promise<void>>> = {};\n\nexport const useCircleSounds = () => {\n const loadSound = useCallback((key: CircleSoundKey) => {\n if (!soundMapper[key]) {\n const loadedSound = new Audio(CircleSoundKeyMapper[key]);\n\n soundMapper[key] = loadedSound;\n }\n }, []);\n\n const playSwipSound = useCallback(() => {\n SWIPE_SOUND_ORDER.forEach(key => {\n loadSound(key);\n });\n\n const key = SWIPE_SOUND_ORDER[swipeSoundIndex] || CircleSoundKey.SWIPE_01;\n\n if (swipeSoundIndex < SWIPE_SOUND_ORDER.length - 1) {\n swipeSoundIndex++;\n } else {\n swipeSoundIndex = 0;\n }\n soundMapper[key]?.play();\n }, [loadSound]);\n\n const playButtonSound = useCallback(() => {\n loadSound(CircleSoundKey.TOGGLE);\n const sound = soundMapper[CircleSoundKey.TOGGLE]?.play();\n\n return sound;\n }, [loadSound]);\n\n const play = useCallback(\n (key: CircleSoundKey, immediately: boolean = true, loop = false) => {\n loadSound(key);\n const soundInstance = soundMapper[key];\n\n if (!soundInstance) return;\n\n soundInstance.loop = loop;\n if (immediately) {\n soundInstance.volume = 1;\n const promise = soundInstance.play();\n\n soundInstancePromise[key] = promise;\n\n return;\n }\n\n soundInstance.volume = 0;\n const promise = soundInstance.play();\n\n soundInstancePromise[key] = promise;\n\n const intervalId = setInterval(() => {\n if (!soundInstance) return;\n\n const vol = 0;\n\n if (vol < 1) {\n soundInstance.volume = vol + 0.1;\n } else {\n clearInterval(intervalId);\n }\n }, 100);\n\n return soundInstance;\n },\n [loadSound],\n );\n\n const stop = useCallback((key: CircleSoundKey, immediately: boolean = true) => {\n const soundInstance = soundMapper[key];\n\n // check if the sound is playing as the play() return a promise\n if (soundInstancePromise[key] !== undefined) {\n soundInstancePromise[key]\n ?.then(() => {\n if (immediately) {\n soundInstance?.pause();\n\n return;\n }\n\n const intervalId = setInterval(() => {\n if (!soundInstance) return;\n\n const vol = soundInstance.volume || 0;\n\n if (vol - 0.1 <= 0) {\n soundInstance.volume = 0;\n soundInstance.pause();\n clearInterval(intervalId);\n } else {\n soundInstance.volume = vol - 0.1;\n }\n }, 100);\n })\n .catch(err => {\n // eslint-disable-next-line no-console\n console.log('sound not playing', err);\n });\n }\n }, []);\n\n return { playSwipSound, play, stop, playButtonSound };\n};\n"],"names":["swipeSoundIndex","soundMapper","CircleSoundKey","soundInstancePromise","useCircleSounds","loadSound","useCallback","key","loadedSound","CircleSoundKeyMapper","playSwipSound","SWIPE_SOUND_ORDER","_a","playButtonSound","play","immediately","loop","soundInstance","promise","vol","stop","intervalId","err"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ARC_Z_INDEX as _ } from "./comp/animated-arc/constants.js";
2
- const I = 300, N = 2, A = _ + 1, E = A + 1, T = E + 1, O = 99 / 30, o = 2 / 30, L = 56 / 30, t = 12 / 30, D = 20 / 30, c = 43 / 30;
2
+ const I = 300, N = 2, A = _ + 1, E = A + 1, T = E + 1, O = 5, o = 2 / 30, L = 3, t = 12 / 30, D = 1, c = 43 / 30;
3
3
  export {
4
4
  N as BORDER_OFFSET,
5
5
  E as CONTENT_CONTAINER_Z_INDEX,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../src/features/post-game-stats/digital-meter/constants.ts"],"sourcesContent":["import { ARC_Z_INDEX } from './comp/animated-arc/constants';\n\nexport const TOTAL_ARC_AVAILABLE = 300;\n\nexport const BORDER_OFFSET = 2;\nexport const LINE_MARKING_Z_INDEX = ARC_Z_INDEX + 1;\nexport const CONTENT_CONTAINER_Z_INDEX = LINE_MARKING_Z_INDEX + 1;\nexport const NUMBER_MARKING_Z_INDEX = CONTENT_CONTAINER_Z_INDEX + 1;\n\n// animation details\nexport const TOTAL_ANIMATION_DURATION = 99 / 30; // in 99 frames\nexport const TARGET_HELPER_TEXT_APPEAR_DELAY = 2 / 30; // delay of 2 frames\nexport const TARGET_ACHIEVED_DELAY = 56 / 30; // 56 frames\nexport const PROGRESS_FILL_DELAY = 12 / 30; // delay of 12 frames\nexport const PROGRESS_FILL_DURATION = 20 / 30; // in 20 frames\nexport const RAINBOW_COLOR_ANIMATION_DURATION = 43 / 30; // 43 frames;\n"],"names":["TOTAL_ARC_AVAILABLE","BORDER_OFFSET","LINE_MARKING_Z_INDEX","ARC_Z_INDEX","CONTENT_CONTAINER_Z_INDEX","NUMBER_MARKING_Z_INDEX","TOTAL_ANIMATION_DURATION","TARGET_HELPER_TEXT_APPEAR_DELAY","TARGET_ACHIEVED_DELAY","PROGRESS_FILL_DELAY","PROGRESS_FILL_DURATION","RAINBOW_COLOR_ANIMATION_DURATION"],"mappings":";AAEO,MAAMA,IAAsB,KAEtBC,IAAgB,GAChBC,IAAuBC,IAAc,GACrCC,IAA4BF,IAAuB,GACnDG,IAAyBD,IAA4B,GAGrDE,IAA2B,KAAK,IAChCC,IAAkC,IAAI,IACtCC,IAAwB,KAAK,IAC7BC,IAAsB,KAAK,IAC3BC,IAAyB,KAAK,IAC9BC,IAAmC,KAAK;"}
1
+ {"version":3,"file":"constants.js","sources":["../../../../src/features/post-game-stats/digital-meter/constants.ts"],"sourcesContent":["import { ARC_Z_INDEX } from './comp/animated-arc/constants';\n\nexport const TOTAL_ARC_AVAILABLE = 300;\n\nexport const BORDER_OFFSET = 2;\nexport const LINE_MARKING_Z_INDEX = ARC_Z_INDEX + 1;\nexport const CONTENT_CONTAINER_Z_INDEX = LINE_MARKING_Z_INDEX + 1;\nexport const NUMBER_MARKING_Z_INDEX = CONTENT_CONTAINER_Z_INDEX + 1;\n\n// animation details\nexport const TOTAL_ANIMATION_DURATION = 5; // in sec\nexport const TARGET_HELPER_TEXT_APPEAR_DELAY = 2 / 30; // delay of 2 frames\nexport const TARGET_ACHIEVED_DELAY = 3; // delay of 3 sec\nexport const PROGRESS_FILL_DELAY = 12 / 30; // delay of 12 frames\nexport const PROGRESS_FILL_DURATION = 1; // in sec\nexport const RAINBOW_COLOR_ANIMATION_DURATION = 43 / 30; // 43 frames;\n"],"names":["TOTAL_ARC_AVAILABLE","BORDER_OFFSET","LINE_MARKING_Z_INDEX","ARC_Z_INDEX","CONTENT_CONTAINER_Z_INDEX","NUMBER_MARKING_Z_INDEX","TOTAL_ANIMATION_DURATION","TARGET_HELPER_TEXT_APPEAR_DELAY","TARGET_ACHIEVED_DELAY","PROGRESS_FILL_DELAY","PROGRESS_FILL_DURATION","RAINBOW_COLOR_ANIMATION_DURATION"],"mappings":";AAEO,MAAMA,IAAsB,KAEtBC,IAAgB,GAChBC,IAAuBC,IAAc,GACrCC,IAA4BF,IAAuB,GACnDG,IAAyBD,IAA4B,GAGrDE,IAA2B,GAC3BC,IAAkC,IAAI,IACtCC,IAAwB,GACxBC,IAAsB,KAAK,IAC3BC,IAAyB,GACzBC,IAAmC,KAAK;"}
@@ -1,72 +1,77 @@
1
- import { jsxs as c, jsx as r, Fragment as E } from "react/jsx-runtime";
2
- import { memo as M, useState as O, useEffect as W } from "react";
3
- import { LOTTIE as y } from "../../../assets/lottie/lottie.js";
4
- import { GAME_LAUNCHER_SIZE as i, GAME_LAUNCHER_SIZE_LARGE as l } from "../../circle-games/game-launcher/comps/card-container/constants.js";
5
- import _ from "../../ui/layout/flex-view.js";
6
- import w from "../../ui/lottie-animation/lottie-animation.js";
7
- import $ from "../../ui/separator/separator.js";
8
- import L from "../../ui/text/text.js";
9
- import { NumberCountAnimation as B } from "../number-count-animation/number-count-animation.js";
10
- import { AnimatedArc as f } from "./comp/animated-arc/animated-arc.js";
11
- import { TARGET_ACHIEVED_DELAY as b, TOTAL_ARC_AVAILABLE as m, BORDER_OFFSET as g, PROGRESS_FILL_DURATION as s, PROGRESS_FILL_DELAY as I, TOTAL_ANIMATION_DURATION as U } from "./constants.js";
12
- import { DigitalMeter as u, ContentContainer as P, NumberCountContainer as j, RainboxColorText as R, LineMarking as k, MarkingContainer as C, MarkingText as D, BottomAbsoluteView as N, HelperTextPrimary as Y, HelperTextSecondary as Z } from "./digital-meter-styled.js";
13
- const tr = M(
1
+ import { jsxs as o, jsx as r, Fragment as $ } from "react/jsx-runtime";
2
+ import { memo as W, useState as U, useCallback as w, useEffect as B } from "react";
3
+ import { LOTTIE as Y } from "../../../assets/lottie/lottie.js";
4
+ import { GAME_LAUNCHER_SIZE as i, GAME_LAUNCHER_SIZE_LARGE as c } from "../../circle-games/game-launcher/comps/card-container/constants.js";
5
+ import I from "../../ui/layout/flex-view.js";
6
+ import P from "../../ui/lottie-animation/lottie-animation.js";
7
+ import R from "../../ui/separator/separator.js";
8
+ import S from "../../ui/text/text.js";
9
+ import { NumberCountAnimation as j } from "../number-count-animation/number-count-animation.js";
10
+ import { AnimatedArc as p } from "./comp/animated-arc/animated-arc.js";
11
+ import { TARGET_ACHIEVED_DELAY as N, TOTAL_ARC_AVAILABLE as h, BORDER_OFFSET as C, PROGRESS_FILL_DURATION as E, PROGRESS_FILL_DELAY as L, TOTAL_ANIMATION_DURATION as K } from "./constants.js";
12
+ import { DigitalMeter as Z, ContentContainer as q, NumberCountContainer as X, RainboxColorText as b, LineMarking as u, MarkingContainer as G, MarkingText as D, BottomAbsoluteView as M, HelperTextPrimary as z, HelperTextSecondary as J } from "./digital-meter-styled.js";
13
+ import { useCircleSounds as Q } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds.js";
14
+ import { CircleSoundKey as T } from "../../circle-games/hooks/use-circle-sounds/use-circle-sounds-enums.js";
15
+ const mr = W(
14
16
  ({
15
- show: T,
16
- value: a,
17
+ show: _,
18
+ value: A,
17
19
  maxValue: n,
18
- targetValue: o = 0,
19
- displayText: S,
20
- progressType: d,
21
- helperTextPrimary: G,
22
- helperTextSecondary: H,
23
- onComplete: p
20
+ targetValue: a = 0,
21
+ displayText: H,
22
+ progressType: s,
23
+ helperTextPrimary: O,
24
+ helperTextSecondary: F,
25
+ onComplete: k,
26
+ actAsTimer: g
24
27
  }) => {
25
- const [h, F] = O(!1);
26
- return W(() => {
28
+ const [d, y] = U(!1), { play: f } = Q(), m = w((t) => a ? g ? t <= a : t >= a : !1, []);
29
+ return B(() => {
27
30
  let t, e;
28
- const A = !!(o && a >= o);
29
- return T && (A && (t = setTimeout(() => {
30
- F(!0);
31
- }, b * 1e3)), e = setTimeout(() => {
32
- p();
33
- }, (A ? U : b) * 1e3)), () => {
31
+ const l = m(A);
32
+ return _ && (f(g ? T.TIME_INTRO : T.ACCURACY_INTRO), f(T.METER_FILL), l && (t = setTimeout(() => {
33
+ f(g ? T.TIME_TARGET : T.ACCURACY_TARGET), y(!0);
34
+ }, N * 1e3)), e = setTimeout(() => {
35
+ k();
36
+ }, (l ? K : N) * 1e3)), () => {
34
37
  t && clearTimeout(t), e && clearTimeout(e);
35
38
  };
36
- }, [T, a, o, p]), T ? /* @__PURE__ */ c(u, { $isTargetAchieved: h, children: [
39
+ }, [_, A, k, m]), _ ? /* @__PURE__ */ o(Z, { $isTargetAchieved: d, children: [
37
40
  /* @__PURE__ */ r(
38
- f,
41
+ p,
39
42
  {
40
- targetAngle: m,
41
- strokeWidth: i === l ? 16 : 12,
43
+ targetAngle: h,
44
+ strokeWidth: i === c ? 16 : 12,
42
45
  color: "BLACK_5",
43
- radius: (i - g) / 2,
46
+ radius: (i - C) / 2,
44
47
  duration: 0
45
48
  }
46
49
  ),
47
- /* @__PURE__ */ r(P, { children: /* @__PURE__ */ c(_, { $flexDirection: "column", $alignItems: "center", children: [
48
- /* @__PURE__ */ c(_, { $flexDirection: "row", $alignItems: "flex-end", children: [
49
- /* @__PURE__ */ r(j, { children: /* @__PURE__ */ r(
50
- R,
50
+ /* @__PURE__ */ r(q, { children: /* @__PURE__ */ o(I, { $flexDirection: "column", $alignItems: "center", children: [
51
+ /* @__PURE__ */ o(I, { $flexDirection: "row", $alignItems: "flex-end", children: [
52
+ /* @__PURE__ */ r(X, { children: /* @__PURE__ */ r(
53
+ b,
51
54
  {
52
- $renderAs: i === l ? "ah1" : "ah2",
55
+ $renderAs: i === c ? "ah1" : "ah2",
53
56
  $color: "GREEN_4",
54
- $isTargetAchieved: h,
57
+ $isTargetAchieved: d,
55
58
  children: /* @__PURE__ */ r(
56
- B,
59
+ j,
57
60
  {
61
+ uniqueId: A.toString(),
58
62
  initialValue: 0,
59
- targetValue: Math.floor(a),
60
- durationInSec: s,
61
- delayInSec: I
62
- }
63
+ targetValue: Math.floor(A),
64
+ durationInSec: E,
65
+ delayInSec: L
66
+ },
67
+ "digital-meter" + A
63
68
  )
64
69
  }
65
70
  ) }),
66
- d === "stepper" && /* @__PURE__ */ c(
67
- L,
71
+ s === "stepper" && /* @__PURE__ */ o(
72
+ S,
68
73
  {
69
- $renderAs: i === l ? "ah4" : "ab1",
74
+ $renderAs: i === c ? "ah4" : "ab1",
70
75
  $color: "WHITE",
71
76
  children: [
72
77
  "/",
@@ -75,74 +80,74 @@ const tr = M(
75
80
  }
76
81
  )
77
82
  ] }),
78
- /* @__PURE__ */ r($, { height: 8 }),
83
+ /* @__PURE__ */ r(R, { height: 8 }),
79
84
  /* @__PURE__ */ r(
80
- L,
85
+ S,
81
86
  {
82
- $renderAs: i === l ? "ac3-black" : "ac4-black",
87
+ $renderAs: i === c ? "ac3-black" : "ac4-black",
83
88
  $color: "WHITE_T_60",
84
- children: S
89
+ children: H
85
90
  }
86
91
  )
87
92
  ] }) }),
88
- d === "stepper" && Array.from({ length: a }, (t, e) => {
89
- const A = m / n;
93
+ s === "stepper" && Array.from({ length: A }, (t, e) => {
94
+ const l = h / n;
90
95
  return /* @__PURE__ */ r(
91
- f,
96
+ p,
92
97
  {
93
- startAngle: A * e,
94
- targetAngle: A,
95
- strokeWidth: i === l ? 16 : 12,
98
+ startAngle: l * e,
99
+ targetAngle: l,
100
+ strokeWidth: i === c ? 16 : 12,
96
101
  color: "GREEN_4",
97
- radius: (i - g) / 2,
102
+ radius: (i - C) / 2,
98
103
  mode: "fade",
99
- duration: s / n,
100
- delay: I + s / n * e,
101
- playRainbowColors: h
104
+ duration: E / n,
105
+ delay: L + E / n * e,
106
+ playRainbowColors: d
102
107
  },
103
108
  e
104
109
  );
105
110
  }),
106
- d === "stepper" && Array.from({ length: n + 1 }, (t, e) => {
107
- const A = m / n;
108
- return /* @__PURE__ */ c(E, { children: [
109
- /* @__PURE__ */ r(k, { $angle: A * e }, e + "linemarking"),
110
- /* @__PURE__ */ r(C, { $angle: A * e, children: /* @__PURE__ */ r(D, { $angle: A * e, children: /* @__PURE__ */ r(
111
- R,
111
+ s === "stepper" && Array.from({ length: n + 1 }, (t, e) => {
112
+ const l = h / n;
113
+ return /* @__PURE__ */ o($, { children: [
114
+ /* @__PURE__ */ r(u, { $angle: l * e }, e + "linemarking"),
115
+ /* @__PURE__ */ r(G, { $angle: l * e, children: /* @__PURE__ */ r(D, { $angle: l * e, children: /* @__PURE__ */ r(
116
+ b,
112
117
  {
113
- $renderAs: i === l ? "ac3-black" : "ac4-black",
114
- $isTargetAchieved: e === o && h,
115
- $color: o && e === o ? "GREEN_4" : "WHITE_T_60",
118
+ $renderAs: i === c ? "ac3-black" : "ac4-black",
119
+ $isTargetAchieved: m(e) && d,
120
+ $color: a && m(e) ? "GREEN_4" : "WHITE_T_60",
116
121
  children: e
117
122
  }
118
123
  ) }) }, e)
119
124
  ] });
120
125
  }),
121
- d === "linear" && /* @__PURE__ */ c(E, { children: [
126
+ s === "linear" && /* @__PURE__ */ o($, { children: [
122
127
  /* @__PURE__ */ r(
123
- f,
128
+ p,
124
129
  {
125
- targetAngle: a * m / n,
126
- strokeWidth: i === l ? 16 : 12,
130
+ targetAngle: A * h / n,
131
+ strokeWidth: i === c ? 16 : 12,
127
132
  color: "GREEN_4",
128
- radius: (i - g) / 2,
129
- duration: s,
130
- delay: I,
131
- playRainbowColors: h
133
+ radius: (i - C) / 2,
134
+ duration: E,
135
+ delay: L,
136
+ playRainbowColors: d
132
137
  }
133
138
  ),
134
- /* @__PURE__ */ c(E, { children: [
135
- o && /* @__PURE__ */ r(k, { $angle: o * m / n }),
136
- Array.from(/* @__PURE__ */ new Set([0, o, n])).map((t, e) => /* @__PURE__ */ r(
137
- C,
139
+ /* @__PURE__ */ o($, { children: [
140
+ a && /* @__PURE__ */ r(u, { $angle: a * h / n }),
141
+ Array.from(/* @__PURE__ */ new Set([0, a, n])).map((t, e) => /* @__PURE__ */ r(
142
+ G,
138
143
  {
139
- $angle: t * m / n,
140
- children: /* @__PURE__ */ r(D, { $angle: t * m / n, children: /* @__PURE__ */ r(
141
- R,
144
+ $angle: t * h / n,
145
+ children: /* @__PURE__ */ r(D, { $angle: t * h / n, children: /* @__PURE__ */ r(
146
+ b,
142
147
  {
143
- $renderAs: i === l ? "ac3-black" : "ac4-black",
144
- $color: o && t === o ? "GREEN_4" : "WHITE_T_60",
145
- $isTargetAchieved: a >= t && h && t === o,
148
+ $renderAs: i === c ? "ac3-black" : "ac4-black",
149
+ $color: a && m(t) ? "GREEN_4" : "WHITE_T_60",
150
+ $isTargetAchieved: A >= t && d && m(t),
146
151
  children: t
147
152
  }
148
153
  ) })
@@ -151,27 +156,27 @@ const tr = M(
151
156
  ))
152
157
  ] })
153
158
  ] }),
154
- h && /* @__PURE__ */ r(N, { top: i, children: /* @__PURE__ */ r(w, { src: y.TARGET_ACHIEVED_TEXT }) }),
155
- !h && /* @__PURE__ */ c(N, { top: i, children: [
156
- /* @__PURE__ */ r($, { height: 25 }),
157
- /* @__PURE__ */ c(_, { $flexDirection: "column", $alignItems: "center", children: [
158
- /* @__PURE__ */ c(
159
- Y,
159
+ d && /* @__PURE__ */ r(M, { top: i, children: /* @__PURE__ */ r(P, { src: Y.TARGET_ACHIEVED_TEXT }) }),
160
+ !d && /* @__PURE__ */ o(M, { top: i, children: [
161
+ /* @__PURE__ */ r(R, { height: 25 }),
162
+ /* @__PURE__ */ o(I, { $flexDirection: "column", $alignItems: "center", children: [
163
+ /* @__PURE__ */ o(
164
+ z,
160
165
  {
161
- $renderAs: i === l ? "ac3-black" : "ac4-black",
166
+ $renderAs: i === c ? "ac3-black" : "ac4-black",
162
167
  $color: "WHITE_T_60",
163
168
  children: [
164
- G,
165
- /* @__PURE__ */ r($, { height: i * 0.03 })
169
+ O,
170
+ /* @__PURE__ */ r(R, { height: i * 0.03 })
166
171
  ]
167
172
  }
168
173
  ),
169
174
  /* @__PURE__ */ r(
170
- Z,
175
+ J,
171
176
  {
172
- $renderAs: i === l ? "ah4" : "ab1",
177
+ $renderAs: i === c ? "ah4" : "ab1",
173
178
  $color: "WHITE",
174
- children: H
179
+ children: F
175
180
  }
176
181
  )
177
182
  ] })
@@ -180,6 +185,6 @@ const tr = M(
180
185
  }
181
186
  );
182
187
  export {
183
- tr as DigitalMeter
188
+ mr as DigitalMeter
184
189
  };
185
190
  //# sourceMappingURL=digital-meter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"digital-meter.js","sources":["../../../../src/features/post-game-stats/digital-meter/digital-meter.tsx"],"sourcesContent":["import type { IDigitalMeterProps } from './digital-meter-types';\nimport type { FC } from 'react';\n\nimport { memo, useEffect, useState } from 'react';\n\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport {\n GAME_LAUNCHER_SIZE,\n GAME_LAUNCHER_SIZE_LARGE,\n} from '../../circle-games/game-launcher/comps/card-container/constants';\nimport FlexView from '../../ui/layout/flex-view';\nimport LottieAnimation from '../../ui/lottie-animation/lottie-animation';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport { NumberCountAnimation } from '../number-count-animation/number-count-animation';\nimport { AnimatedArc } from './comp/animated-arc/animated-arc';\nimport {\n BORDER_OFFSET,\n PROGRESS_FILL_DELAY,\n PROGRESS_FILL_DURATION,\n TARGET_ACHIEVED_DELAY,\n TOTAL_ANIMATION_DURATION,\n TOTAL_ARC_AVAILABLE,\n} from './constants';\nimport * as Styled from './digital-meter-styled';\n\nexport const DigitalMeter: FC<IDigitalMeterProps> = memo(\n ({\n show,\n value,\n maxValue,\n targetValue = 0,\n displayText,\n progressType,\n helperTextPrimary,\n helperTextSecondary,\n onComplete,\n }) => {\n const [isTargetAchieved, setIsTargetAchieved] = useState(false);\n\n useEffect(() => {\n let timer: ReturnType<typeof setTimeout>;\n let timerForAnimationComplete: ReturnType<typeof setTimeout>;\n const isTargetAchievedFlag = !!(targetValue && value >= targetValue);\n\n if (show) {\n if (isTargetAchievedFlag) {\n timer = setTimeout(() => {\n setIsTargetAchieved(true);\n }, TARGET_ACHIEVED_DELAY * 1000);\n }\n\n const timeToFinishAnimation = isTargetAchievedFlag\n ? TOTAL_ANIMATION_DURATION\n : TARGET_ACHIEVED_DELAY;\n\n timerForAnimationComplete = setTimeout(() => {\n onComplete();\n }, timeToFinishAnimation * 1000);\n }\n\n return () => {\n timer && clearTimeout(timer);\n timerForAnimationComplete && clearTimeout(timerForAnimationComplete);\n };\n }, [show, value, targetValue, onComplete]);\n\n if (show) {\n return (\n <Styled.DigitalMeter $isTargetAchieved={isTargetAchieved}>\n {/* complete arc area to be filled */}\n <AnimatedArc\n targetAngle={TOTAL_ARC_AVAILABLE}\n strokeWidth={GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 16 : 12}\n color=\"BLACK_5\"\n radius={(GAME_LAUNCHER_SIZE - BORDER_OFFSET) / 2}\n duration={0}\n />\n\n {/* center area for the content */}\n <Styled.ContentContainer>\n <FlexView $flexDirection=\"column\" $alignItems=\"center\">\n <FlexView $flexDirection=\"row\" $alignItems=\"flex-end\">\n <Styled.NumberCountContainer>\n <Styled.RainboxColorText\n $renderAs={GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 'ah1' : 'ah2'}\n $color=\"GREEN_4\"\n $isTargetAchieved={isTargetAchieved}\n >\n <NumberCountAnimation\n initialValue={0}\n targetValue={Math.floor(value)}\n durationInSec={PROGRESS_FILL_DURATION}\n delayInSec={PROGRESS_FILL_DELAY}\n />\n </Styled.RainboxColorText>\n </Styled.NumberCountContainer>\n {progressType === 'stepper' && (\n <Text\n $renderAs={GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 'ah4' : 'ab1'}\n $color=\"WHITE\"\n >\n /{maxValue}\n </Text>\n )}\n </FlexView>\n <Separator height={8} />\n <Text\n $renderAs={\n GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 'ac3-black' : 'ac4-black'\n }\n $color=\"WHITE_T_60\"\n >\n {displayText}\n </Text>\n </FlexView>\n </Styled.ContentContainer>\n\n {/* stepper animation */}\n {progressType === 'stepper' &&\n Array.from({ length: value }, (_, index) => {\n const arcLength = TOTAL_ARC_AVAILABLE / maxValue;\n\n return (\n <AnimatedArc\n key={index}\n startAngle={arcLength * index}\n targetAngle={arcLength}\n strokeWidth={GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 16 : 12}\n color=\"GREEN_4\"\n radius={(GAME_LAUNCHER_SIZE - BORDER_OFFSET) / 2}\n mode=\"fade\"\n duration={PROGRESS_FILL_DURATION / maxValue}\n delay={PROGRESS_FILL_DELAY + (PROGRESS_FILL_DURATION / maxValue) * index}\n playRainbowColors={isTargetAchieved}\n />\n );\n })}\n\n {/* numbers with markings */}\n {progressType === 'stepper' &&\n Array.from({ length: maxValue + 1 }, (_, index) => {\n const arcLength = TOTAL_ARC_AVAILABLE / maxValue;\n\n return (\n <>\n <Styled.LineMarking key={index + 'linemarking'} $angle={arcLength * index} />\n\n <Styled.MarkingContainer key={index} $angle={arcLength * index}>\n <Styled.MarkingText $angle={arcLength * index}>\n <Styled.RainboxColorText\n $renderAs={\n GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE\n ? 'ac3-black'\n : 'ac4-black'\n }\n $isTargetAchieved={index === targetValue && isTargetAchieved}\n $color={targetValue && index === targetValue ? 'GREEN_4' : 'WHITE_T_60'}\n >\n {index}\n </Styled.RainboxColorText>\n </Styled.MarkingText>\n </Styled.MarkingContainer>\n </>\n );\n })}\n\n {/* progress of linear */}\n {progressType === 'linear' && (\n <>\n <AnimatedArc\n targetAngle={(value * TOTAL_ARC_AVAILABLE) / maxValue}\n strokeWidth={GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 16 : 12}\n color=\"GREEN_4\"\n radius={(GAME_LAUNCHER_SIZE - BORDER_OFFSET) / 2}\n duration={PROGRESS_FILL_DURATION}\n delay={PROGRESS_FILL_DELAY}\n playRainbowColors={isTargetAchieved}\n />\n <>\n {/* target line marking */}\n {targetValue && (\n <Styled.LineMarking $angle={(targetValue * TOTAL_ARC_AVAILABLE) / maxValue} />\n )}\n\n {/* all markings */}\n {Array.from(new Set([0, targetValue, maxValue])).map((val, index) => (\n <Styled.MarkingContainer\n key={index}\n $angle={(val * TOTAL_ARC_AVAILABLE) / maxValue}\n >\n <Styled.MarkingText $angle={(val * TOTAL_ARC_AVAILABLE) / maxValue}>\n <Styled.RainboxColorText\n $renderAs={\n GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE\n ? 'ac3-black'\n : 'ac4-black'\n }\n $color={targetValue && val === targetValue ? 'GREEN_4' : 'WHITE_T_60'}\n $isTargetAchieved={value >= val && isTargetAchieved && val === targetValue}\n >\n {val}\n </Styled.RainboxColorText>\n </Styled.MarkingText>\n </Styled.MarkingContainer>\n ))}\n </>\n </>\n )}\n\n {/* helper text below the animation */}\n {isTargetAchieved && (\n <Styled.BottomAbsoluteView top={GAME_LAUNCHER_SIZE}>\n <LottieAnimation src={LOTTIE.TARGET_ACHIEVED_TEXT} />\n </Styled.BottomAbsoluteView>\n )}\n {!isTargetAchieved && (\n <Styled.BottomAbsoluteView top={GAME_LAUNCHER_SIZE}>\n <Separator height={25} />\n <FlexView $flexDirection=\"column\" $alignItems=\"center\">\n <Styled.HelperTextPrimary\n $renderAs={\n GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 'ac3-black' : 'ac4-black'\n }\n $color=\"WHITE_T_60\"\n >\n {helperTextPrimary}\n <Separator height={GAME_LAUNCHER_SIZE * 0.03} />\n </Styled.HelperTextPrimary>\n <Styled.HelperTextSecondary\n $renderAs={GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 'ah4' : 'ab1'}\n $color=\"WHITE\"\n >\n {helperTextSecondary}\n </Styled.HelperTextSecondary>\n </FlexView>\n </Styled.BottomAbsoluteView>\n )}\n </Styled.DigitalMeter>\n );\n }\n\n return null;\n },\n);\n"],"names":["DigitalMeter","memo","show","value","maxValue","targetValue","displayText","progressType","helperTextPrimary","helperTextSecondary","onComplete","isTargetAchieved","setIsTargetAchieved","useState","useEffect","timer","timerForAnimationComplete","isTargetAchievedFlag","TARGET_ACHIEVED_DELAY","TOTAL_ANIMATION_DURATION","jsxs","Styled.DigitalMeter","jsx","AnimatedArc","TOTAL_ARC_AVAILABLE","GAME_LAUNCHER_SIZE","GAME_LAUNCHER_SIZE_LARGE","BORDER_OFFSET","Styled.ContentContainer","FlexView","Styled.NumberCountContainer","Styled.RainboxColorText","NumberCountAnimation","PROGRESS_FILL_DURATION","PROGRESS_FILL_DELAY","Text","Separator","_","index","arcLength","Fragment","Styled.LineMarking","Styled.MarkingContainer","Styled.MarkingText","val","Styled.BottomAbsoluteView","LottieAnimation","LOTTIE","Styled.HelperTextPrimary","Styled.HelperTextSecondary"],"mappings":"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"}
1
+ {"version":3,"file":"digital-meter.js","sources":["../../../../src/features/post-game-stats/digital-meter/digital-meter.tsx"],"sourcesContent":["import type { IDigitalMeterProps } from './digital-meter-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useState } from 'react';\n\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport {\n GAME_LAUNCHER_SIZE,\n GAME_LAUNCHER_SIZE_LARGE,\n} from '../../circle-games/game-launcher/comps/card-container/constants';\nimport FlexView from '../../ui/layout/flex-view';\nimport LottieAnimation from '../../ui/lottie-animation/lottie-animation';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport { NumberCountAnimation } from '../number-count-animation/number-count-animation';\nimport { AnimatedArc } from './comp/animated-arc/animated-arc';\nimport {\n BORDER_OFFSET,\n PROGRESS_FILL_DELAY,\n PROGRESS_FILL_DURATION,\n TARGET_ACHIEVED_DELAY,\n TOTAL_ANIMATION_DURATION,\n TOTAL_ARC_AVAILABLE,\n} from './constants';\nimport * as Styled from './digital-meter-styled';\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';\n\nexport const DigitalMeter: FC<IDigitalMeterProps> = memo(\n ({\n show,\n value,\n maxValue,\n targetValue = 0,\n displayText,\n progressType,\n helperTextPrimary,\n helperTextSecondary,\n onComplete,\n actAsTimer,\n }) => {\n const [isTargetAchieved, setIsTargetAchieved] = useState(false);\n const { play } = useCircleSounds();\n\n const isTargetValueAchieved = useCallback((valueToCompare: number) => {\n if (targetValue) {\n if (actAsTimer) {\n return valueToCompare <= targetValue;\n }\n return valueToCompare >= targetValue;\n }\n\n return false;\n }, []);\n\n useEffect(() => {\n let timer: ReturnType<typeof setTimeout>;\n let timerForAnimationComplete: ReturnType<typeof setTimeout>;\n const isTargetAchievedFlag = isTargetValueAchieved(value);\n\n if (show) {\n play(actAsTimer ? CircleSoundKey.TIME_INTRO : CircleSoundKey.ACCURACY_INTRO);\n play(CircleSoundKey.METER_FILL);\n if (isTargetAchievedFlag) {\n timer = setTimeout(() => {\n play(actAsTimer ? CircleSoundKey.TIME_TARGET : CircleSoundKey.ACCURACY_TARGET);\n setIsTargetAchieved(true);\n }, TARGET_ACHIEVED_DELAY * 1000);\n }\n\n const timeToFinishAnimation = isTargetAchievedFlag\n ? TOTAL_ANIMATION_DURATION\n : TARGET_ACHIEVED_DELAY;\n\n timerForAnimationComplete = setTimeout(() => {\n onComplete();\n }, timeToFinishAnimation * 1000);\n }\n\n return () => {\n timer && clearTimeout(timer);\n timerForAnimationComplete && clearTimeout(timerForAnimationComplete);\n };\n }, [show, value, onComplete, isTargetValueAchieved]);\n\n if (show) {\n return (\n <Styled.DigitalMeter $isTargetAchieved={isTargetAchieved}>\n {/* complete arc area to be filled */}\n <AnimatedArc\n targetAngle={TOTAL_ARC_AVAILABLE}\n strokeWidth={GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 16 : 12}\n color=\"BLACK_5\"\n radius={(GAME_LAUNCHER_SIZE - BORDER_OFFSET) / 2}\n duration={0}\n />\n\n {/* center area for the content */}\n <Styled.ContentContainer>\n <FlexView $flexDirection=\"column\" $alignItems=\"center\">\n <FlexView $flexDirection=\"row\" $alignItems=\"flex-end\">\n <Styled.NumberCountContainer>\n <Styled.RainboxColorText\n $renderAs={GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 'ah1' : 'ah2'}\n $color=\"GREEN_4\"\n $isTargetAchieved={isTargetAchieved}\n >\n <NumberCountAnimation\n key={'digital-meter' + value}\n uniqueId={value.toString()}\n initialValue={0}\n targetValue={Math.floor(value)}\n durationInSec={PROGRESS_FILL_DURATION}\n delayInSec={PROGRESS_FILL_DELAY}\n />\n </Styled.RainboxColorText>\n </Styled.NumberCountContainer>\n {progressType === 'stepper' && (\n <Text\n $renderAs={GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 'ah4' : 'ab1'}\n $color=\"WHITE\"\n >\n /{maxValue}\n </Text>\n )}\n </FlexView>\n <Separator height={8} />\n <Text\n $renderAs={\n GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 'ac3-black' : 'ac4-black'\n }\n $color=\"WHITE_T_60\"\n >\n {displayText}\n </Text>\n </FlexView>\n </Styled.ContentContainer>\n\n {/* stepper animation */}\n {progressType === 'stepper' &&\n Array.from({ length: value }, (_, index) => {\n const arcLength = TOTAL_ARC_AVAILABLE / maxValue;\n\n return (\n <AnimatedArc\n key={index}\n startAngle={arcLength * index}\n targetAngle={arcLength}\n strokeWidth={GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 16 : 12}\n color=\"GREEN_4\"\n radius={(GAME_LAUNCHER_SIZE - BORDER_OFFSET) / 2}\n mode=\"fade\"\n duration={PROGRESS_FILL_DURATION / maxValue}\n delay={PROGRESS_FILL_DELAY + (PROGRESS_FILL_DURATION / maxValue) * index}\n playRainbowColors={isTargetAchieved}\n />\n );\n })}\n\n {/* numbers with markings */}\n {progressType === 'stepper' &&\n Array.from({ length: maxValue + 1 }, (_, index) => {\n const arcLength = TOTAL_ARC_AVAILABLE / maxValue;\n\n return (\n <>\n <Styled.LineMarking key={index + 'linemarking'} $angle={arcLength * index} />\n <Styled.MarkingContainer key={index} $angle={arcLength * index}>\n <Styled.MarkingText $angle={arcLength * index}>\n <Styled.RainboxColorText\n $renderAs={\n GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE\n ? 'ac3-black'\n : 'ac4-black'\n }\n $isTargetAchieved={isTargetValueAchieved(index) && isTargetAchieved}\n $color={\n targetValue && isTargetValueAchieved(index) ? 'GREEN_4' : 'WHITE_T_60'\n }\n >\n {index}\n </Styled.RainboxColorText>\n </Styled.MarkingText>\n </Styled.MarkingContainer>\n </>\n );\n })}\n\n {/* progress of linear */}\n {progressType === 'linear' && (\n <>\n <AnimatedArc\n targetAngle={(value * TOTAL_ARC_AVAILABLE) / maxValue}\n strokeWidth={GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 16 : 12}\n color=\"GREEN_4\"\n radius={(GAME_LAUNCHER_SIZE - BORDER_OFFSET) / 2}\n duration={PROGRESS_FILL_DURATION}\n delay={PROGRESS_FILL_DELAY}\n playRainbowColors={isTargetAchieved}\n />\n <>\n {/* target line marking */}\n {targetValue && (\n <Styled.LineMarking $angle={(targetValue * TOTAL_ARC_AVAILABLE) / maxValue} />\n )}\n\n {/* all markings */}\n {Array.from(new Set([0, targetValue, maxValue])).map((val, index) => (\n <Styled.MarkingContainer\n key={index}\n $angle={(val * TOTAL_ARC_AVAILABLE) / maxValue}\n >\n <Styled.MarkingText $angle={(val * TOTAL_ARC_AVAILABLE) / maxValue}>\n <Styled.RainboxColorText\n $renderAs={\n GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE\n ? 'ac3-black'\n : 'ac4-black'\n }\n $color={\n targetValue && isTargetValueAchieved(val) ? 'GREEN_4' : 'WHITE_T_60'\n }\n $isTargetAchieved={\n value >= val && isTargetAchieved && isTargetValueAchieved(val)\n }\n >\n {val}\n </Styled.RainboxColorText>\n </Styled.MarkingText>\n </Styled.MarkingContainer>\n ))}\n </>\n </>\n )}\n\n {/* helper text below the animation */}\n {isTargetAchieved && (\n <Styled.BottomAbsoluteView top={GAME_LAUNCHER_SIZE}>\n <LottieAnimation src={LOTTIE.TARGET_ACHIEVED_TEXT} />\n </Styled.BottomAbsoluteView>\n )}\n {!isTargetAchieved && (\n <Styled.BottomAbsoluteView top={GAME_LAUNCHER_SIZE}>\n <Separator height={25} />\n <FlexView $flexDirection=\"column\" $alignItems=\"center\">\n <Styled.HelperTextPrimary\n $renderAs={\n GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 'ac3-black' : 'ac4-black'\n }\n $color=\"WHITE_T_60\"\n >\n {helperTextPrimary}\n <Separator height={GAME_LAUNCHER_SIZE * 0.03} />\n </Styled.HelperTextPrimary>\n <Styled.HelperTextSecondary\n $renderAs={GAME_LAUNCHER_SIZE === GAME_LAUNCHER_SIZE_LARGE ? 'ah4' : 'ab1'}\n $color=\"WHITE\"\n >\n {helperTextSecondary}\n </Styled.HelperTextSecondary>\n </FlexView>\n </Styled.BottomAbsoluteView>\n )}\n </Styled.DigitalMeter>\n );\n }\n\n return null;\n },\n);\n"],"names":["DigitalMeter","memo","show","value","maxValue","targetValue","displayText","progressType","helperTextPrimary","helperTextSecondary","onComplete","actAsTimer","isTargetAchieved","setIsTargetAchieved","useState","play","useCircleSounds","isTargetValueAchieved","useCallback","valueToCompare","useEffect","timer","timerForAnimationComplete","isTargetAchievedFlag","CircleSoundKey","TARGET_ACHIEVED_DELAY","TOTAL_ANIMATION_DURATION","jsxs","Styled.DigitalMeter","jsx","AnimatedArc","TOTAL_ARC_AVAILABLE","GAME_LAUNCHER_SIZE","GAME_LAUNCHER_SIZE_LARGE","BORDER_OFFSET","Styled.ContentContainer","FlexView","Styled.NumberCountContainer","Styled.RainboxColorText","NumberCountAnimation","PROGRESS_FILL_DURATION","PROGRESS_FILL_DELAY","Text","Separator","_","index","arcLength","Fragment","Styled.LineMarking","Styled.MarkingContainer","Styled.MarkingText","val","Styled.BottomAbsoluteView","LottieAnimation","LOTTIE","Styled.HelperTextPrimary","Styled.HelperTextSecondary"],"mappings":"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"}
@@ -1,5 +1,16 @@
1
- import e from "styled-components";
2
- const r = e.div`
1
+ import r from "styled-components";
2
+ const a = r.div`
3
+ ${({ $initialValue: n, $targetValue: e, $uniqueId: t }) => `
4
+ @keyframes changeNum-${t} {
5
+ from {
6
+ --num: ${n};
7
+ }
8
+ to {
9
+ --num: ${e};
10
+ }
11
+ }
12
+ `}
13
+
3
14
  @property --num {
4
15
  syntax: '<integer>';
5
16
  initial-value: ${({ $initialValue: n }) => n};
@@ -7,23 +18,13 @@ const r = e.div`
7
18
  }
8
19
 
9
20
  counter-set: num var(--num);
10
- animation: changeNum ${({ $durationInSec: n = 0 }) => n}s linear
11
- ${({ $delayInSec: n = 0 }) => n}s forwards;
21
+ animation: ${({ $durationInSec: n = 0, $delayInSec: e = 0, $uniqueId: t }) => `changeNum-${t} ${n}s linear ${e}s`} forwards;
12
22
 
13
23
  &::after {
14
24
  content: counter(num);
15
25
  }
16
-
17
- @keyframes changeNum {
18
- from {
19
- --num: ${({ $initialValue: n }) => n};
20
- }
21
- to {
22
- --num: ${({ $targetValue: n }) => n};
23
- }
24
- }
25
26
  `;
26
27
  export {
27
- r as AnimatedNumberCount
28
+ a as AnimatedNumberCount
28
29
  };
29
30
  //# sourceMappingURL=number-count-animation-styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"number-count-animation-styled.js","sources":["../../../../src/features/post-game-stats/number-count-animation/number-count-animation-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nexport const AnimatedNumberCount = styled.div<{\n $initialValue: number;\n $targetValue: number;\n $durationInSec?: number;\n $delayInSec?: number;\n}>`\n @property --num {\n syntax: '<integer>';\n initial-value: ${({ $initialValue }) => $initialValue};\n inherits: false;\n }\n\n counter-set: num var(--num);\n animation: changeNum ${({ $durationInSec = 0 }) => $durationInSec}s linear\n ${({ $delayInSec = 0 }) => $delayInSec}s forwards;\n\n &::after {\n content: counter(num);\n }\n\n @keyframes changeNum {\n from {\n --num: ${({ $initialValue }) => $initialValue};\n }\n to {\n --num: ${({ $targetValue }) => $targetValue};\n }\n }\n`;\n"],"names":["AnimatedNumberCount","styled","$initialValue","$durationInSec","$delayInSec","$targetValue"],"mappings":";AAEO,MAAMA,IAAsBC,EAAO;AAAA;AAAA;AAAA,qBAQrB,CAAC,EAAE,eAAAC,EAAc,MAAMA,CAAa;AAAA;AAAA;AAAA;AAAA;AAAA,yBAKhC,CAAC,EAAE,gBAAAC,IAAiB,EAAA,MAAQA,CAAc;AAAA,MAC7D,CAAC,EAAE,aAAAC,IAAc,EAAA,MAAQA,CAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAQ3B,CAAC,EAAE,eAAAF,EAAc,MAAMA,CAAa;AAAA;AAAA;AAAA,eAGpC,CAAC,EAAE,cAAAG,EAAa,MAAMA,CAAY;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"number-count-animation-styled.js","sources":["../../../../src/features/post-game-stats/number-count-animation/number-count-animation-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nexport const AnimatedNumberCount = styled.div<{\n $initialValue: number;\n $targetValue: number;\n $durationInSec?: number;\n $delayInSec?: number;\n $uniqueId: string;\n}>`\n ${({ $initialValue, $targetValue, $uniqueId }) => `\n @keyframes changeNum-${$uniqueId} {\n from {\n --num: ${$initialValue};\n }\n to {\n --num: ${$targetValue};\n }\n }\n `}\n\n @property --num {\n syntax: '<integer>';\n initial-value: ${({ $initialValue }) => $initialValue};\n inherits: false;\n }\n\n counter-set: num var(--num);\n animation: ${({ $durationInSec = 0, $delayInSec = 0, $uniqueId }) => `changeNum-${$uniqueId} ${$durationInSec}s linear ${$delayInSec}s`} forwards;\n\n &::after {\n content: counter(num);\n }\n`;\n"],"names":["AnimatedNumberCount","styled","$initialValue","$targetValue","$uniqueId","$durationInSec","$delayInSec"],"mappings":";AAEO,MAAMA,IAAsBC,EAAO;AAAA,IAOtC,CAAC,EAAE,eAAAC,GAAe,cAAAC,GAAc,WAAAC,EAAgB,MAAA;AAAA,2BACzBA,CAAS;AAAA;AAAA,iBAEnBF,CAAa;AAAA;AAAA;AAAA,iBAGbC,CAAY;AAAA;AAAA;AAAA,GAG1B;AAAA;AAAA;AAAA;AAAA,qBAIkB,CAAC,EAAE,eAAAD,EAAc,MAAMA,CAAa;AAAA;AAAA;AAAA;AAAA;AAAA,eAK1C,CAAC,EAAE,gBAAAG,IAAiB,GAAG,aAAAC,IAAc,GAAG,WAAAF,EAAgB,MAAA,aAAaA,CAAS,IAAIC,CAAc,YAAYC,CAAW,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -1,13 +1,15 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
- import { AnimatedNumberCount as i } from "./number-count-animation-styled.js";
3
- const u = ({
2
+ import { AnimatedNumberCount as u } from "./number-count-animation-styled.js";
3
+ const $ = ({
4
4
  initialValue: t,
5
5
  targetValue: e,
6
6
  durationInSec: n,
7
- delayInSec: r
7
+ delayInSec: r,
8
+ uniqueId: i
8
9
  }) => /* @__PURE__ */ o(
9
- i,
10
+ u,
10
11
  {
12
+ $uniqueId: i,
11
13
  $initialValue: t,
12
14
  $targetValue: e,
13
15
  $durationInSec: n,
@@ -15,6 +17,6 @@ const u = ({
15
17
  }
16
18
  );
17
19
  export {
18
- u as NumberCountAnimation
20
+ $ as NumberCountAnimation
19
21
  };
20
22
  //# sourceMappingURL=number-count-animation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"number-count-animation.js","sources":["../../../../src/features/post-game-stats/number-count-animation/number-count-animation.tsx"],"sourcesContent":["import type { INumberCountAnimationProps } from './number-count-animation-types';\nimport type { FC } from 'react';\n\nimport * as Styled from './number-count-animation-styled';\n\nexport const NumberCountAnimation: FC<INumberCountAnimationProps> = ({\n initialValue,\n targetValue,\n durationInSec,\n delayInSec,\n}) => {\n return (\n <Styled.AnimatedNumberCount\n $initialValue={initialValue}\n $targetValue={targetValue}\n $durationInSec={durationInSec}\n $delayInSec={delayInSec}\n />\n );\n};\n"],"names":["NumberCountAnimation","initialValue","targetValue","durationInSec","delayInSec","jsx","Styled.AnimatedNumberCount"],"mappings":";;AAKO,MAAMA,IAAuD,CAAC;AAAA,EACnE,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC;AACF,MAEI,gBAAAC;AAAA,EAACC;AAAAA,EAAA;AAAA,IACC,eAAeL;AAAA,IACf,cAAcC;AAAA,IACd,gBAAgBC;AAAA,IAChB,aAAaC;AAAA,EAAA;AAAA;"}
1
+ {"version":3,"file":"number-count-animation.js","sources":["../../../../src/features/post-game-stats/number-count-animation/number-count-animation.tsx"],"sourcesContent":["import type { INumberCountAnimationProps } from './number-count-animation-types';\nimport type { FC } from 'react';\n\nimport * as Styled from './number-count-animation-styled';\n\nexport const NumberCountAnimation: FC<INumberCountAnimationProps> = ({\n initialValue,\n targetValue,\n durationInSec,\n delayInSec,\n uniqueId,\n}) => {\n\n return (\n <Styled.AnimatedNumberCount\n $uniqueId={uniqueId}\n $initialValue={initialValue}\n $targetValue={targetValue}\n $durationInSec={durationInSec}\n $delayInSec={delayInSec}\n />\n );\n};\n"],"names":["NumberCountAnimation","initialValue","targetValue","durationInSec","delayInSec","uniqueId","jsx","Styled.AnimatedNumberCount"],"mappings":";;AAKO,MAAMA,IAAuD,CAAC;AAAA,EACnE,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AACF,MAGI,gBAAAC;AAAA,EAACC;AAAAA,EAAA;AAAA,IACC,WAAWF;AAAA,IACX,eAAeJ;AAAA,IACf,cAAcC;AAAA,IACd,gBAAgBC;AAAA,IAChB,aAAaC;AAAA,EAAA;AAAA;"}
package/dist/index.d.ts CHANGED
@@ -194,7 +194,12 @@ export declare enum CircleSoundKey {
194
194
  ACCURACY_IN = "accuracy-in",
195
195
  ACCURACY_OUT = "accuracy-out",
196
196
  STREAK_IN = "streak-in",
197
- STREAK_OUT = "streak-out"
197
+ STREAK_OUT = "streak-out",
198
+ ACCURACY_INTRO = "accuracy-intro",
199
+ ACCURACY_TARGET = "accuracy-target",
200
+ TIME_INTRO = "time-intro",
201
+ TIME_TARGET = "time-target",
202
+ METER_FILL = "meter-fill"
198
203
  }
199
204
 
200
205
  export declare const CircularLoader: () => JSX_2.Element;
@@ -1017,6 +1022,7 @@ declare interface IDigitalMeterProps {
1017
1022
  helperTextPrimary: string;
1018
1023
  helperTextSecondary: string;
1019
1024
  onComplete: () => void;
1025
+ actAsTimer?: boolean;
1020
1026
  }
1021
1027
 
1022
1028
  declare interface IEditMilestoneModalProps extends IMilestoneEditProps {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/leap",
3
- "version": "2.8.38-hg1",
3
+ "version": "2.8.38-hg2",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
@@ -17,7 +17,8 @@
17
17
  "prepare": "husky install",
18
18
  "build-storybook": "storybook build",
19
19
  "prepublishOnly": "yarn build",
20
- "hash-image": "node scripts/hash-images.js"
20
+ "hash-image": "node scripts/hash-images.js",
21
+ "collect-sounds:": "aws s3 sync --acl public-read src/assets/sounds/ s3://static.qumath.in/static/sounds/ --metadata-directive REPLACE --cache-control no-cache"
21
22
  },
22
23
  "dependencies": {
23
24
  "@cuemath/analytics-v2": "1.4.6",