@cuemath/leap 2.8.42 → 2.8.43-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.
@@ -39,6 +39,7 @@ const t = window.VITE_PUBLIC_URL ? window.VITE_PUBLIC_URL : "/", a = {
39
39
  DURATION_60MIN_GRAY: `${t}static/duration-60min-gray.874e52a2.svg`,
40
40
  DURATION_90MIN_GRAY: `${t}static/duration-90min-gray.32a04cef.svg`,
41
41
  EARTH_GREEN: `${t}static/earth-green.e1329b7a.svg`,
42
+ FEMALE_AVATAR: `${t}static/female-avatar.b8cd1012.svg`,
42
43
  GAME_PLAY: `${t}static/game-play.4982b0cb.svg`,
43
44
  GLOBE_WITH_BLUE_FILL: `${t}static/globe-with-blue-fill.beae6ca4.svg`,
44
45
  GRADE_GRID_BACKGROUND: `${t}static/grade-grid-background.b17b4ccb.svg`,
@@ -56,6 +57,7 @@ const t = window.VITE_PUBLIC_URL ? window.VITE_PUBLIC_URL : "/", a = {
56
57
  LOADER_1: `${t}static/loader-1.6524355e.svg`,
57
58
  LOCKED: `${t}static/locked.0c3b7577.svg`,
58
59
  MAINTENANCE: `${t}static/maintenance.a26aca65.svg`,
60
+ MALE_AVATAR: `${t}static/male-avatar.2febc9eb.svg`,
59
61
  MASTERED_BADGE: `${t}static/mastered-badge.81f156fb.svg`,
60
62
  MASTERED_SHIELD_GRAY: `${t}static/mastered-shield-gray.a58cbe19.svg`,
61
63
  MASTERED_SHIELD_GREEN: `${t}static/mastered-shield-green.070fa4eb.svg`,
@@ -1 +1 @@
1
- {"version":3,"file":"illustrations.js","sources":["../../../src/assets/illustrations/illustrations.ts"],"sourcesContent":["declare global {\n interface Window {\n VITE_PUBLIC_URL: string;\n }\n}\n\nconst PREFIX = window.VITE_PUBLIC_URL ? window.VITE_PUBLIC_URL : '/';\n\n// Must be alphabetical order\nconst ILLUSTRATIONS = {\n ALARM_CLOCK_ORANGE: `${PREFIX}static/alarm-clock-orange.31fb90d9.svg`,\n ALARM_CLOCK_PURPLE: `${PREFIX}static/alarm-clock-purple.06d4911c.svg`,\n ALIEN_1: `${PREFIX}static/alien-1.fc7ba696.svg`,\n ALIEN_2: `${PREFIX}static/alien-2.15fdda07.svg`,\n ALIEN_3: `${PREFIX}static/alien-3.2664a37f.svg`,\n ALIEN_4: `${PREFIX}static/alien-4.06ac66da.svg`,\n BLUE_CLIP: `${PREFIX}static/blue-clip.87cc4543.svg`,\n BOOK_GREEN: `${PREFIX}static/book-green.20f6eed3.svg`,\n BOOK_OPEN_BLUE: `${PREFIX}static/book-open-blue.d4f8d08c.svg`,\n BOOK_ORANGE: `${PREFIX}static/book-orange.04bdc75e.svg`,\n BOOK_YELLOW: `${PREFIX}static/book-yellow.c210ac06.svg`,\n BULLET_YELLOW: `${PREFIX}static/bullet-yellow.2f892d88.svg`,\n CALENDAR_BLUE: `${PREFIX}static/calendar-blue.e0d52d09.svg`,\n CALENDAR_GRAY: `${PREFIX}static/calendar-gray.1c72682a.svg`,\n CALENDAR_GREEN: `${PREFIX}static/calendar-green.a2b6a393.svg`,\n CAUTION: `${PREFIX}static/caution.5766a967.svg`,\n CHAPTER_10: `${PREFIX}static/chapter-10.c97de4a5.svg`,\n CHAPTER_1: `${PREFIX}static/chapter-1.8a1683a0.svg`,\n CHAPTER_2: `${PREFIX}static/chapter-2.71ac6dfc.svg`,\n CHAPTER_3: `${PREFIX}static/chapter-3.003fc901.svg`,\n CHAPTER_4: `${PREFIX}static/chapter-4.8abbacd8.svg`,\n CHAPTER_5: `${PREFIX}static/chapter-5.c774b439.svg`,\n CHAPTER_6: `${PREFIX}static/chapter-6.cb5cf1cb.svg`,\n CHAPTER_7: `${PREFIX}static/chapter-7.57b0beb4.svg`,\n CHAPTER_8: `${PREFIX}static/chapter-8.68d36477.svg`,\n CHAPTER_9: `${PREFIX}static/chapter-9.0c00e26f.svg`,\n CIRCLE_CUEMATH_LOGO: `${PREFIX}static/circle-cuemath-logo.8bcb1ad4.svg`,\n CIRCLE_OUTERCIRCLE_BG: `${PREFIX}static/circle-outercircle-bg.65f21460.svg`,\n CLOCK_ORANGE: `${PREFIX}static/clock-orange.c144059b.svg`,\n COMMUNITY_BULB: `${PREFIX}static/community-bulb.3b42af21.svg`,\n CROSSHAIR_CIRCLE: `${PREFIX}static/crosshair-circle.522a26ea.svg`,\n CROWN: `${PREFIX}static/crown.c18fa217.svg`,\n CROWN_OVERLAY: `${PREFIX}static/crown-overlay.11fb073c.svg`,\n CUECOIN_GOLD: `${PREFIX}static/cuecoin-gold.bcb8085e.svg`,\n DESKTOP_WITH_PURPLE_FILL: `${PREFIX}static/desktop-with-purple-fill.dfec66cc.svg`,\n DURATION_30MIN_GRAY: `${PREFIX}static/duration-30min-gray.f6442df4.svg`,\n DURATION_45MIN_GRAY: `${PREFIX}static/duration-45min-gray.ad90fb23.svg`,\n DURATION_60MIN_GRAY: `${PREFIX}static/duration-60min-gray.874e52a2.svg`,\n DURATION_90MIN_GRAY: `${PREFIX}static/duration-90min-gray.32a04cef.svg`,\n EARTH_GREEN: `${PREFIX}static/earth-green.e1329b7a.svg`,\n GAME_PLAY: `${PREFIX}static/game-play.4982b0cb.svg`,\n GLOBE_WITH_BLUE_FILL: `${PREFIX}static/globe-with-blue-fill.beae6ca4.svg`,\n GRADE_GRID_BACKGROUND: `${PREFIX}static/grade-grid-background.b17b4ccb.svg`,\n GRADUATE_HAT: `${PREFIX}static/graduate-hat.4b49eb44.svg`,\n GRADUATE_ICON_PINK: `${PREFIX}static/graduate-icon-pink.01fbfb1b.svg`,\n GRADUATE_PINK_FILLED_BG: `${PREFIX}static/graduate-pink-filled-bg.c91e9c53.svg`,\n GREEN_BALLOON: `${PREFIX}static/green-balloon.67ac8587.svg`,\n GREEN_FACE: `${PREFIX}static/green-face.1b4dd82f.svg`,\n LEARNED_SHIELD_GRAY: `${PREFIX}static/learned-shield-gray.1495b0d5.svg`,\n LEARNED_SHIELD_GREEN: `${PREFIX}static/learned-shield-green.7c26b423.svg`,\n LEARNT: `${PREFIX}static/learnt.870c5e38.svg`,\n LIKE: `${PREFIX}static/like.cb492460.svg`,\n LIVE_SESSION: `${PREFIX}static/live-session.a0d25c78.svg`,\n LOADER: `${PREFIX}static/loader.52f8c35c.svg`,\n LOADER_1: `${PREFIX}static/loader-1.6524355e.svg`,\n LOCKED: `${PREFIX}static/locked.0c3b7577.svg`,\n MAINTENANCE: `${PREFIX}static/maintenance.a26aca65.svg`,\n MASTERED_BADGE: `${PREFIX}static/mastered-badge.81f156fb.svg`,\n MASTERED_SHIELD_GRAY: `${PREFIX}static/mastered-shield-gray.a58cbe19.svg`,\n MASTERED_SHIELD_GREEN: `${PREFIX}static/mastered-shield-green.070fa4eb.svg`,\n MENTAL_MATH: `${PREFIX}static/mental-math.3c95f169.svg`,\n MILESTONE_INTRO_1: `${PREFIX}static/milestone-intro-1.281a354c.svg`,\n MILESTONE_INTRO_2: `${PREFIX}static/milestone-intro-2.19faee69.svg`,\n MILESTONE_INTRO_3: `${PREFIX}static/milestone-intro-3.6f6055d6.svg`,\n MISTAKE: `${PREFIX}static/mistake.476d1aa7.svg`,\n NUMBER_1_ORANGE: `${PREFIX}static/number-1-orange.cbf526ed.svg`,\n NUMBER_2_ORANGE: `${PREFIX}static/number-2-orange.6f29eb72.svg`,\n NUMBER_3_ORANGE: `${PREFIX}static/number-3-orange.58baf717.svg`,\n NUMBER_4_ORANGE: `${PREFIX}static/number-4-orange.5ed1ec5e.svg`,\n ONE_STAR_FILLED: `${PREFIX}static/one-star-filled.b6084257.svg`,\n ORANGE_FACE: `${PREFIX}static/orange-face.5824c2e9.svg`,\n PEOPLE_WITH_ORANGE_FILL: `${PREFIX}static/people-with-orange-fill.3835b8f1.svg`,\n PLAY: `${PREFIX}static/play.68d16dec.svg`,\n PLAY_ICON: `${PREFIX}static/play-icon.13baaa7d.svg`,\n POINTS_SUM: `${PREFIX}static/points-sum.360e63de.svg`,\n PRACTICED_SHIELD_GREEN: `${PREFIX}static/practiced-shield-green.90278855.svg`,\n PRACTICED_SHIELD_GREY: `${PREFIX}static/practiced-shield-grey.16cf4fe0.svg`,\n PROFICIENT_BADGE: `${PREFIX}static/proficient-badge.1a6dbb72.svg`,\n PROFILE_BOARD: `${PREFIX}static/profile-board.4f4a17e6.svg`,\n PUZZLE: `${PREFIX}static/puzzle.5aad5cf8.svg`,\n PUZZLE_STUDENT: `${PREFIX}static/puzzle-student.de530364.svg`,\n REFUND_POLICY: `${PREFIX}static/refund-policy.912dbb4c.svg`,\n REPORT_404: `${PREFIX}static/report-404.dd67785c.svg`,\n ROCKET_BROKEN: `${PREFIX}static/rocket-broken.1f86fa43.svg`,\n ROCKET_YELLOW: `${PREFIX}static/rocket-yellow.62d27e15.svg`,\n SCORE: `${PREFIX}static/score.41971107.svg`,\n SMILEY: `${PREFIX}static/smiley.49bb7d7c.svg`,\n STAR_ORANGE: `${PREFIX}static/star-orange.a91a341f.svg`,\n STAR_ORANGE_FILLED: `${PREFIX}static/star-orange-filled.a7ff9c8f.svg`,\n STAR_WITH_GREEN_FILL: `${PREFIX}static/star-with-green-fill.86877d41.svg`,\n STREAK_GREEN: `${PREFIX}static/streak-green.b59bf4dd.svg`,\n STREAK_WHITE: `${PREFIX}static/streak-white.2cbdc9b8.svg`,\n TEST_DIFFICULTY_EASY: `${PREFIX}static/test-difficulty-easy.56df71dd.svg`,\n TEST_DIFFICULTY_HARD: `${PREFIX}static/test-difficulty-hard.7250f1f4.svg`,\n TEST_DIFFICULTY_MEDIUM: `${PREFIX}static/test-difficulty-medium.2fd9686e.svg`,\n THREE_STARS_FILLED: `${PREFIX}static/three-stars-filled.72b51f03.svg`,\n TICK_GREEN: `${PREFIX}static/tick-green.a1654049.svg`,\n TROPHY_BLUE: `${PREFIX}static/trophy-blue.e684ba4c.svg`,\n TROPHY_BLUE_FILLED: `${PREFIX}static/trophy-blue-filled.7e2b40ab.svg`,\n TROPHY_CIRCLE: `${PREFIX}static/trophy-circle.b7b23e36.svg`,\n TROPHY_GREEN: `${PREFIX}static/trophy-green.6c0741c8.svg`,\n TWO_STARS_FILLED: `${PREFIX}static/two-stars-filled.a51a14b4.svg`,\n UP_ARROW: `${PREFIX}static/up-arrow.a6946bd3.svg`,\n USER_CROWN_GRID_BACKGROUND: `${PREFIX}static/user-crown-grid-background.c2875a73.svg`,\n USER_DOWN: `${PREFIX}static/user-down.a06f2f94.svg`,\n USER_PIN: `${PREFIX}static/user-pin.5f334465.svg`,\n USER_PROFILE_BACKGROUND: `${PREFIX}static/user-profile-background.199977a9.svg`,\n USER_UP: `${PREFIX}static/user-up.2aecbbae.svg`,\n YELLOW_FACE: `${PREFIX}static/yellow-face.b7525a33.svg`,\n};\n\nexport { ILLUSTRATIONS };\n"],"names":["PREFIX","ILLUSTRATIONS"],"mappings":"AAMA,MAAMA,IAAS,OAAO,kBAAkB,OAAO,kBAAkB,KAG3DC,IAAgB;AAAA,EACpB,oBAAoB,GAAGD,CAAM;AAAA,EAC7B,oBAAoB,GAAGA,CAAM;AAAA,EAC7B,SAAS,GAAGA,CAAM;AAAA,EAClB,SAAS,GAAGA,CAAM;AAAA,EAClB,SAAS,GAAGA,CAAM;AAAA,EAClB,SAAS,GAAGA,CAAM;AAAA,EAClB,WAAW,GAAGA,CAAM;AAAA,EACpB,YAAY,GAAGA,CAAM;AAAA,EACrB,gBAAgB,GAAGA,CAAM;AAAA,EACzB,aAAa,GAAGA,CAAM;AAAA,EACtB,aAAa,GAAGA,CAAM;AAAA,EACtB,eAAe,GAAGA,CAAM;AAAA,EACxB,eAAe,GAAGA,CAAM;AAAA,EACxB,eAAe,GAAGA,CAAM;AAAA,EACxB,gBAAgB,GAAGA,CAAM;AAAA,EACzB,SAAS,GAAGA,CAAM;AAAA,EAClB,YAAY,GAAGA,CAAM;AAAA,EACrB,WAAW,GAAGA,CAAM;AAAA,EACpB,WAAW,GAAGA,CAAM;AAAA,EACpB,WAAW,GAAGA,CAAM;AAAA,EACpB,WAAW,GAAGA,CAAM;AAAA,EACpB,WAAW,GAAGA,CAAM;AAAA,EACpB,WAAW,GAAGA,CAAM;AAAA,EACpB,WAAW,GAAGA,CAAM;AAAA,EACpB,WAAW,GAAGA,CAAM;AAAA,EACpB,WAAW,GAAGA,CAAM;AAAA,EACpB,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,uBAAuB,GAAGA,CAAM;AAAA,EAChC,cAAc,GAAGA,CAAM;AAAA,EACvB,gBAAgB,GAAGA,CAAM;AAAA,EACzB,kBAAkB,GAAGA,CAAM;AAAA,EAC3B,OAAO,GAAGA,CAAM;AAAA,EAChB,eAAe,GAAGA,CAAM;AAAA,EACxB,cAAc,GAAGA,CAAM;AAAA,EACvB,0BAA0B,GAAGA,CAAM;AAAA,EACnC,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,aAAa,GAAGA,CAAM;AAAA,EACtB,WAAW,GAAGA,CAAM;AAAA,EACpB,sBAAsB,GAAGA,CAAM;AAAA,EAC/B,uBAAuB,GAAGA,CAAM;AAAA,EAChC,cAAc,GAAGA,CAAM;AAAA,EACvB,oBAAoB,GAAGA,CAAM;AAAA,EAC7B,yBAAyB,GAAGA,CAAM;AAAA,EAClC,eAAe,GAAGA,CAAM;AAAA,EACxB,YAAY,GAAGA,CAAM;AAAA,EACrB,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,sBAAsB,GAAGA,CAAM;AAAA,EAC/B,QAAQ,GAAGA,CAAM;AAAA,EACjB,MAAM,GAAGA,CAAM;AAAA,EACf,cAAc,GAAGA,CAAM;AAAA,EACvB,QAAQ,GAAGA,CAAM;AAAA,EACjB,UAAU,GAAGA,CAAM;AAAA,EACnB,QAAQ,GAAGA,CAAM;AAAA,EACjB,aAAa,GAAGA,CAAM;AAAA,EACtB,gBAAgB,GAAGA,CAAM;AAAA,EACzB,sBAAsB,GAAGA,CAAM;AAAA,EAC/B,uBAAuB,GAAGA,CAAM;AAAA,EAChC,aAAa,GAAGA,CAAM;AAAA,EACtB,mBAAmB,GAAGA,CAAM;AAAA,EAC5B,mBAAmB,GAAGA,CAAM;AAAA,EAC5B,mBAAmB,GAAGA,CAAM;AAAA,EAC5B,SAAS,GAAGA,CAAM;AAAA,EAClB,iBAAiB,GAAGA,CAAM;AAAA,EAC1B,iBAAiB,GAAGA,CAAM;AAAA,EAC1B,iBAAiB,GAAGA,CAAM;AAAA,EAC1B,iBAAiB,GAAGA,CAAM;AAAA,EAC1B,iBAAiB,GAAGA,CAAM;AAAA,EAC1B,aAAa,GAAGA,CAAM;AAAA,EACtB,yBAAyB,GAAGA,CAAM;AAAA,EAClC,MAAM,GAAGA,CAAM;AAAA,EACf,WAAW,GAAGA,CAAM;AAAA,EACpB,YAAY,GAAGA,CAAM;AAAA,EACrB,wBAAwB,GAAGA,CAAM;AAAA,EACjC,uBAAuB,GAAGA,CAAM;AAAA,EAChC,kBAAkB,GAAGA,CAAM;AAAA,EAC3B,eAAe,GAAGA,CAAM;AAAA,EACxB,QAAQ,GAAGA,CAAM;AAAA,EACjB,gBAAgB,GAAGA,CAAM;AAAA,EACzB,eAAe,GAAGA,CAAM;AAAA,EACxB,YAAY,GAAGA,CAAM;AAAA,EACrB,eAAe,GAAGA,CAAM;AAAA,EACxB,eAAe,GAAGA,CAAM;AAAA,EACxB,OAAO,GAAGA,CAAM;AAAA,EAChB,QAAQ,GAAGA,CAAM;AAAA,EACjB,aAAa,GAAGA,CAAM;AAAA,EACtB,oBAAoB,GAAGA,CAAM;AAAA,EAC7B,sBAAsB,GAAGA,CAAM;AAAA,EAC/B,cAAc,GAAGA,CAAM;AAAA,EACvB,cAAc,GAAGA,CAAM;AAAA,EACvB,sBAAsB,GAAGA,CAAM;AAAA,EAC/B,sBAAsB,GAAGA,CAAM;AAAA,EAC/B,wBAAwB,GAAGA,CAAM;AAAA,EACjC,oBAAoB,GAAGA,CAAM;AAAA,EAC7B,YAAY,GAAGA,CAAM;AAAA,EACrB,aAAa,GAAGA,CAAM;AAAA,EACtB,oBAAoB,GAAGA,CAAM;AAAA,EAC7B,eAAe,GAAGA,CAAM;AAAA,EACxB,cAAc,GAAGA,CAAM;AAAA,EACvB,kBAAkB,GAAGA,CAAM;AAAA,EAC3B,UAAU,GAAGA,CAAM;AAAA,EACnB,4BAA4B,GAAGA,CAAM;AAAA,EACrC,WAAW,GAAGA,CAAM;AAAA,EACpB,UAAU,GAAGA,CAAM;AAAA,EACnB,yBAAyB,GAAGA,CAAM;AAAA,EAClC,SAAS,GAAGA,CAAM;AAAA,EAClB,aAAa,GAAGA,CAAM;AACxB;"}
1
+ {"version":3,"file":"illustrations.js","sources":["../../../src/assets/illustrations/illustrations.ts"],"sourcesContent":["declare global {\n interface Window {\n VITE_PUBLIC_URL: string;\n }\n}\n\nconst PREFIX = window.VITE_PUBLIC_URL ? window.VITE_PUBLIC_URL : '/';\n\n// Must be alphabetical order\nconst ILLUSTRATIONS = {\n ALARM_CLOCK_ORANGE: `${PREFIX}static/alarm-clock-orange.31fb90d9.svg`,\n ALARM_CLOCK_PURPLE: `${PREFIX}static/alarm-clock-purple.06d4911c.svg`,\n ALIEN_1: `${PREFIX}static/alien-1.fc7ba696.svg`,\n ALIEN_2: `${PREFIX}static/alien-2.15fdda07.svg`,\n ALIEN_3: `${PREFIX}static/alien-3.2664a37f.svg`,\n ALIEN_4: `${PREFIX}static/alien-4.06ac66da.svg`,\n BLUE_CLIP: `${PREFIX}static/blue-clip.87cc4543.svg`,\n BOOK_GREEN: `${PREFIX}static/book-green.20f6eed3.svg`,\n BOOK_OPEN_BLUE: `${PREFIX}static/book-open-blue.d4f8d08c.svg`,\n BOOK_ORANGE: `${PREFIX}static/book-orange.04bdc75e.svg`,\n BOOK_YELLOW: `${PREFIX}static/book-yellow.c210ac06.svg`,\n BULLET_YELLOW: `${PREFIX}static/bullet-yellow.2f892d88.svg`,\n CALENDAR_BLUE: `${PREFIX}static/calendar-blue.e0d52d09.svg`,\n CALENDAR_GRAY: `${PREFIX}static/calendar-gray.1c72682a.svg`,\n CALENDAR_GREEN: `${PREFIX}static/calendar-green.a2b6a393.svg`,\n CAUTION: `${PREFIX}static/caution.5766a967.svg`,\n CHAPTER_10: `${PREFIX}static/chapter-10.c97de4a5.svg`,\n CHAPTER_1: `${PREFIX}static/chapter-1.8a1683a0.svg`,\n CHAPTER_2: `${PREFIX}static/chapter-2.71ac6dfc.svg`,\n CHAPTER_3: `${PREFIX}static/chapter-3.003fc901.svg`,\n CHAPTER_4: `${PREFIX}static/chapter-4.8abbacd8.svg`,\n CHAPTER_5: `${PREFIX}static/chapter-5.c774b439.svg`,\n CHAPTER_6: `${PREFIX}static/chapter-6.cb5cf1cb.svg`,\n CHAPTER_7: `${PREFIX}static/chapter-7.57b0beb4.svg`,\n CHAPTER_8: `${PREFIX}static/chapter-8.68d36477.svg`,\n CHAPTER_9: `${PREFIX}static/chapter-9.0c00e26f.svg`,\n CIRCLE_CUEMATH_LOGO: `${PREFIX}static/circle-cuemath-logo.8bcb1ad4.svg`,\n CIRCLE_OUTERCIRCLE_BG: `${PREFIX}static/circle-outercircle-bg.65f21460.svg`,\n CLOCK_ORANGE: `${PREFIX}static/clock-orange.c144059b.svg`,\n COMMUNITY_BULB: `${PREFIX}static/community-bulb.3b42af21.svg`,\n CROSSHAIR_CIRCLE: `${PREFIX}static/crosshair-circle.522a26ea.svg`,\n CROWN: `${PREFIX}static/crown.c18fa217.svg`,\n CROWN_OVERLAY: `${PREFIX}static/crown-overlay.11fb073c.svg`,\n CUECOIN_GOLD: `${PREFIX}static/cuecoin-gold.bcb8085e.svg`,\n DESKTOP_WITH_PURPLE_FILL: `${PREFIX}static/desktop-with-purple-fill.dfec66cc.svg`,\n DURATION_30MIN_GRAY: `${PREFIX}static/duration-30min-gray.f6442df4.svg`,\n DURATION_45MIN_GRAY: `${PREFIX}static/duration-45min-gray.ad90fb23.svg`,\n DURATION_60MIN_GRAY: `${PREFIX}static/duration-60min-gray.874e52a2.svg`,\n DURATION_90MIN_GRAY: `${PREFIX}static/duration-90min-gray.32a04cef.svg`,\n EARTH_GREEN: `${PREFIX}static/earth-green.e1329b7a.svg`,\n FEMALE_AVATAR: `${PREFIX}static/female-avatar.b8cd1012.svg`,\n GAME_PLAY: `${PREFIX}static/game-play.4982b0cb.svg`,\n GLOBE_WITH_BLUE_FILL: `${PREFIX}static/globe-with-blue-fill.beae6ca4.svg`,\n GRADE_GRID_BACKGROUND: `${PREFIX}static/grade-grid-background.b17b4ccb.svg`,\n GRADUATE_HAT: `${PREFIX}static/graduate-hat.4b49eb44.svg`,\n GRADUATE_ICON_PINK: `${PREFIX}static/graduate-icon-pink.01fbfb1b.svg`,\n GRADUATE_PINK_FILLED_BG: `${PREFIX}static/graduate-pink-filled-bg.c91e9c53.svg`,\n GREEN_BALLOON: `${PREFIX}static/green-balloon.67ac8587.svg`,\n GREEN_FACE: `${PREFIX}static/green-face.1b4dd82f.svg`,\n LEARNED_SHIELD_GRAY: `${PREFIX}static/learned-shield-gray.1495b0d5.svg`,\n LEARNED_SHIELD_GREEN: `${PREFIX}static/learned-shield-green.7c26b423.svg`,\n LEARNT: `${PREFIX}static/learnt.870c5e38.svg`,\n LIKE: `${PREFIX}static/like.cb492460.svg`,\n LIVE_SESSION: `${PREFIX}static/live-session.a0d25c78.svg`,\n LOADER: `${PREFIX}static/loader.52f8c35c.svg`,\n LOADER_1: `${PREFIX}static/loader-1.6524355e.svg`,\n LOCKED: `${PREFIX}static/locked.0c3b7577.svg`,\n MAINTENANCE: `${PREFIX}static/maintenance.a26aca65.svg`,\n MALE_AVATAR: `${PREFIX}static/male-avatar.2febc9eb.svg`,\n MASTERED_BADGE: `${PREFIX}static/mastered-badge.81f156fb.svg`,\n MASTERED_SHIELD_GRAY: `${PREFIX}static/mastered-shield-gray.a58cbe19.svg`,\n MASTERED_SHIELD_GREEN: `${PREFIX}static/mastered-shield-green.070fa4eb.svg`,\n MENTAL_MATH: `${PREFIX}static/mental-math.3c95f169.svg`,\n MILESTONE_INTRO_1: `${PREFIX}static/milestone-intro-1.281a354c.svg`,\n MILESTONE_INTRO_2: `${PREFIX}static/milestone-intro-2.19faee69.svg`,\n MILESTONE_INTRO_3: `${PREFIX}static/milestone-intro-3.6f6055d6.svg`,\n MISTAKE: `${PREFIX}static/mistake.476d1aa7.svg`,\n NUMBER_1_ORANGE: `${PREFIX}static/number-1-orange.cbf526ed.svg`,\n NUMBER_2_ORANGE: `${PREFIX}static/number-2-orange.6f29eb72.svg`,\n NUMBER_3_ORANGE: `${PREFIX}static/number-3-orange.58baf717.svg`,\n NUMBER_4_ORANGE: `${PREFIX}static/number-4-orange.5ed1ec5e.svg`,\n ONE_STAR_FILLED: `${PREFIX}static/one-star-filled.b6084257.svg`,\n ORANGE_FACE: `${PREFIX}static/orange-face.5824c2e9.svg`,\n PEOPLE_WITH_ORANGE_FILL: `${PREFIX}static/people-with-orange-fill.3835b8f1.svg`,\n PLAY: `${PREFIX}static/play.68d16dec.svg`,\n PLAY_ICON: `${PREFIX}static/play-icon.13baaa7d.svg`,\n POINTS_SUM: `${PREFIX}static/points-sum.360e63de.svg`,\n PRACTICED_SHIELD_GREEN: `${PREFIX}static/practiced-shield-green.90278855.svg`,\n PRACTICED_SHIELD_GREY: `${PREFIX}static/practiced-shield-grey.16cf4fe0.svg`,\n PROFICIENT_BADGE: `${PREFIX}static/proficient-badge.1a6dbb72.svg`,\n PROFILE_BOARD: `${PREFIX}static/profile-board.4f4a17e6.svg`,\n PUZZLE: `${PREFIX}static/puzzle.5aad5cf8.svg`,\n PUZZLE_STUDENT: `${PREFIX}static/puzzle-student.de530364.svg`,\n REFUND_POLICY: `${PREFIX}static/refund-policy.912dbb4c.svg`,\n REPORT_404: `${PREFIX}static/report-404.dd67785c.svg`,\n ROCKET_BROKEN: `${PREFIX}static/rocket-broken.1f86fa43.svg`,\n ROCKET_YELLOW: `${PREFIX}static/rocket-yellow.62d27e15.svg`,\n SCORE: `${PREFIX}static/score.41971107.svg`,\n SMILEY: `${PREFIX}static/smiley.49bb7d7c.svg`,\n STAR_ORANGE: `${PREFIX}static/star-orange.a91a341f.svg`,\n STAR_ORANGE_FILLED: `${PREFIX}static/star-orange-filled.a7ff9c8f.svg`,\n STAR_WITH_GREEN_FILL: `${PREFIX}static/star-with-green-fill.86877d41.svg`,\n STREAK_GREEN: `${PREFIX}static/streak-green.b59bf4dd.svg`,\n STREAK_WHITE: `${PREFIX}static/streak-white.2cbdc9b8.svg`,\n TEST_DIFFICULTY_EASY: `${PREFIX}static/test-difficulty-easy.56df71dd.svg`,\n TEST_DIFFICULTY_HARD: `${PREFIX}static/test-difficulty-hard.7250f1f4.svg`,\n TEST_DIFFICULTY_MEDIUM: `${PREFIX}static/test-difficulty-medium.2fd9686e.svg`,\n THREE_STARS_FILLED: `${PREFIX}static/three-stars-filled.72b51f03.svg`,\n TICK_GREEN: `${PREFIX}static/tick-green.a1654049.svg`,\n TROPHY_BLUE: `${PREFIX}static/trophy-blue.e684ba4c.svg`,\n TROPHY_BLUE_FILLED: `${PREFIX}static/trophy-blue-filled.7e2b40ab.svg`,\n TROPHY_CIRCLE: `${PREFIX}static/trophy-circle.b7b23e36.svg`,\n TROPHY_GREEN: `${PREFIX}static/trophy-green.6c0741c8.svg`,\n TWO_STARS_FILLED: `${PREFIX}static/two-stars-filled.a51a14b4.svg`,\n UP_ARROW: `${PREFIX}static/up-arrow.a6946bd3.svg`,\n USER_CROWN_GRID_BACKGROUND: `${PREFIX}static/user-crown-grid-background.c2875a73.svg`,\n USER_DOWN: `${PREFIX}static/user-down.a06f2f94.svg`,\n USER_PIN: `${PREFIX}static/user-pin.5f334465.svg`,\n USER_PROFILE_BACKGROUND: `${PREFIX}static/user-profile-background.199977a9.svg`,\n USER_UP: `${PREFIX}static/user-up.2aecbbae.svg`,\n YELLOW_FACE: `${PREFIX}static/yellow-face.b7525a33.svg`,\n};\n\nexport { ILLUSTRATIONS };\n"],"names":["PREFIX","ILLUSTRATIONS"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ const t = "https://d138zd1ktt9iqe.cloudfront.net/", o = {
2
+ ALERT: `${t}leap/audio/alert.mp3`
3
+ };
4
+ export {
5
+ o as SOUNDS
6
+ };
7
+ //# sourceMappingURL=sounds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sounds.js","sources":["../../../src/assets/sounds/sounds.ts"],"sourcesContent":["const BASE_URL = 'https://d138zd1ktt9iqe.cloudfront.net/';\n// To upload something that will be available at the above link, follow the procedure below.\n// Go to S3 bucket and search for wmznlejcfq, then you can create any folder to store anything required.\n// For example I have created a folder name as leap -> audio, and keep alert.mp3.\n\nconst SOUNDS = {\n ALERT: `${BASE_URL}leap/audio/alert.mp3`,\n};\n\nexport { SOUNDS };\n"],"names":["BASE_URL","SOUNDS"],"mappings":"AAAA,MAAMA,IAAW,0CAKXC,IAAS;AAAA,EACb,OAAO,GAAGD,CAAQ;AACpB;"}
@@ -0,0 +1,11 @@
1
+ const e = (T) => {
2
+ const E = {
3
+ STUDENT: "RED",
4
+ TEACHER: "ORANGE_2"
5
+ };
6
+ return T >= 50 ? (E.STUDENT = "GREEN_4", E.TEACHER = "GREEN_2") : T >= 25 && (E.STUDENT = "YELLOW_4", E.TEACHER = "YELLOW_2"), E;
7
+ };
8
+ export {
9
+ e as getMeterColor
10
+ };
11
+ //# sourceMappingURL=helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.js","sources":["../../../src/features/talk-meter/helper.ts"],"sourcesContent":["import type { TColorNames, TUserTypes } from '../ui/types';\n\nconst getMeterColor = (stdRatio: number) => {\n const COLOR_MAP: Record<TUserTypes, TColorNames> = {\n STUDENT: 'RED',\n TEACHER: 'ORANGE_2',\n };\n\n if (stdRatio >= 50) {\n COLOR_MAP.STUDENT = 'GREEN_4';\n COLOR_MAP.TEACHER = 'GREEN_2';\n } else if (stdRatio >= 25) {\n COLOR_MAP.STUDENT = 'YELLOW_4';\n COLOR_MAP.TEACHER = 'YELLOW_2';\n }\n\n return COLOR_MAP;\n};\n\nexport { getMeterColor };\n"],"names":["getMeterColor","stdRatio","COLOR_MAP"],"mappings":"AAEM,MAAAA,IAAgB,CAACC,MAAqB;AAC1C,QAAMC,IAA6C;AAAA,IACjD,SAAS;AAAA,IACT,SAAS;AAAA,EAAA;AAGX,SAAID,KAAY,MACdC,EAAU,UAAU,WACpBA,EAAU,UAAU,aACXD,KAAY,OACrBC,EAAU,UAAU,YACpBA,EAAU,UAAU,aAGfA;AACT;"}
@@ -0,0 +1,123 @@
1
+ import { useAVActions as se, useRemotePeers as ne, useAVMessage as ce } from "@cuemath/av";
2
+ import { useCallback as u, useState as J, useRef as B, useMemo as ae, useEffect as M } from "react";
3
+ import { useUIContext as re } from "../../ui/context/context.js";
4
+ const v = 1e3 * 60, le = (Q) => {
5
+ var Y, j;
6
+ const {
7
+ userType: X,
8
+ studentId: I,
9
+ teacherId: C,
10
+ classStartTime: r,
11
+ avPackageEnabled: P,
12
+ teacherClassroomId: U,
13
+ teacherTalkTime: D,
14
+ studentTalkTime: p,
15
+ lastBatchReceivedNo: i,
16
+ canDisplayBatch: k,
17
+ classDuration: S = 0,
18
+ onMessageReceive: L,
19
+ onDismissMeter: y
20
+ } = Q, _ = Math.round(0.36 * (S / 60)), f = Math.round(0.73 * (S / 60)), g = S / 60 - 5, d = u(
21
+ (e, t) => {
22
+ const o = Date.now(), m = e.getTime(), te = Math.abs(o - m), n = Math.floor(te / 1e3 / 60), q = (t === 0 || t === 1) && n >= _ - 2 && n <= _, z = (t === 1 || t === 2) && n >= f - 2 && n <= f, G = n >= g;
23
+ let A = 0, R = !1;
24
+ return G ? A = 0 : z ? (A = 2, R = n >= f) : q && (A = 1, R = n >= _), {
25
+ lastMinutesLeft: G,
26
+ canSendBatch: q || z,
27
+ batchNoToSend: A,
28
+ minutes: n,
29
+ canDisplay: R
30
+ };
31
+ },
32
+ [_, f, g]
33
+ ), [c, H] = J(!1), [Z, b] = J(!1), { onEvent: K } = re(), { sendMessage: O } = se(), V = ne(), w = (Y = V.find((e) => e.userId === I)) == null ? void 0 : Y.id, x = (j = V.find((e) => e.userType === "teacher")) == null ? void 0 : j.id, s = X === "TEACHER", T = B(D), a = B(p), F = B(0), W = a.current + T.current, $ = Math.ceil(a.current * 100 / W) || 0, ee = Math.floor(T.current * 100 / W) || 0, h = ae(
34
+ () => ({
35
+ teacher_classroom_id: U,
36
+ teacher_id: C,
37
+ studentId: I
38
+ }),
39
+ [I, U, C]
40
+ ), N = u(() => {
41
+ b(!0), H(!1), y();
42
+ }, [y]), E = u(
43
+ (e, t = {}) => {
44
+ K(e, { ...h, ...t });
45
+ },
46
+ [K, h]
47
+ ), l = u(
48
+ (e) => {
49
+ const t = s ? "TEACHER_TALK_TIME_UPDATED" : "STUDENT_TALK_TIME_UPDATED", o = s ? { teacher_speech_time: T.current } : { student_speech_time: a.current };
50
+ E("TALK_METER_BATCH_SENT", {
51
+ batch_no: e,
52
+ ...o
53
+ }), P && O(
54
+ t,
55
+ {
56
+ ...h,
57
+ ...o,
58
+ batch_no: e
59
+ },
60
+ s ? w : x
61
+ ), F.current = a.current;
62
+ },
63
+ [P, s, h, O, w, x, E]
64
+ );
65
+ return ce({
66
+ type: s ? "STUDENT_TALK_TIME_UPDATED" : "TEACHER_TALK_TIME_UPDATED",
67
+ onMessage: u(
68
+ (e, t) => {
69
+ L(t), s && l(t.batch_no);
70
+ },
71
+ [s, L, l]
72
+ )
73
+ }), M(() => {
74
+ c || (T.current = D, a.current = p);
75
+ }, [D, p, c]), M(() => {
76
+ let e;
77
+ return c && (e = setTimeout(() => {
78
+ N();
79
+ }, v)), () => {
80
+ e && clearTimeout(e);
81
+ };
82
+ }, [c, N]), M(() => {
83
+ let e;
84
+ return r && k && !c && (e = setInterval(() => {
85
+ const { canDisplay: t } = d(r, i);
86
+ t && (E("TALK_METER_BATCH_DISPLAYED", {
87
+ student_speech_time: a.current,
88
+ teacher_speech_time: T.current,
89
+ batch_no: i
90
+ }), H(!0), b(!1));
91
+ }, v / 30)), () => {
92
+ e && clearInterval(e);
93
+ };
94
+ }, [
95
+ c,
96
+ k,
97
+ r,
98
+ d,
99
+ i,
100
+ E
101
+ ]), M(() => {
102
+ let e;
103
+ return r && !s && (e = setInterval(() => {
104
+ const { lastMinutesLeft: t, canSendBatch: o, batchNoToSend: m } = d(
105
+ r,
106
+ i
107
+ );
108
+ t ? F.current !== a.current && l(m) : o && l(m);
109
+ }, v / 6)), () => {
110
+ e && clearInterval(e);
111
+ };
112
+ }, [r, d, s, i, l]), {
113
+ canAnimateIn: c,
114
+ canAnimateOut: Z,
115
+ stdRatio: $,
116
+ tchRatio: ee,
117
+ handleDismiss: N
118
+ };
119
+ };
120
+ export {
121
+ le as useTalkMeter
122
+ };
123
+ //# sourceMappingURL=use-talk-meter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-talk-meter.js","sources":["../../../../src/features/talk-meter/hooks/use-talk-meter.ts"],"sourcesContent":["import type { ITalkMeterHook, TMessageData } from '../talk-meter-types';\n\nimport { useAVActions, useAVMessage, useRemotePeers } from '@cuemath/av';\nimport { useRef, useMemo, useCallback, useState, useEffect } from 'react';\n\nimport { useUIContext } from '../../ui/context/context';\n\nconst ONE_MINUTE = 1000 * 60;\n\nexport const useTalkMeter = (props: ITalkMeterHook) => {\n const {\n userType,\n studentId,\n teacherId,\n classStartTime,\n avPackageEnabled,\n teacherClassroomId,\n teacherTalkTime,\n studentTalkTime,\n lastBatchReceivedNo,\n canDisplayBatch,\n classDuration = 0,\n onMessageReceive,\n onDismissMeter,\n } = props;\n\n const BATCH_ONE_MINUTE = Math.round(0.36 * (classDuration / 60));\n const BATCH_TWO_MINUTE = Math.round(0.73 * (classDuration / 60));\n const LAST_MINUTES = classDuration / 60 - 5;\n\n const getBatchToSendInfo = useCallback(\n (classStartFrom: Date, batchSeen: number) => {\n const now = Date.now();\n const classTS = classStartFrom.getTime();\n const diff = Math.abs(now - classTS);\n const minutes = Math.floor(diff / 1000 / 60);\n const canSendFirstBatch =\n (batchSeen === 0 || batchSeen === 1) &&\n minutes >= BATCH_ONE_MINUTE - 2 &&\n minutes <= BATCH_ONE_MINUTE;\n const canSendSecondBatch =\n (batchSeen === 1 || batchSeen === 2) &&\n minutes >= BATCH_TWO_MINUTE - 2 &&\n minutes <= BATCH_TWO_MINUTE;\n\n const lastMinutesLeft = minutes >= LAST_MINUTES;\n\n let batchNo = 0;\n let canDisplayTalkBatch = false;\n\n if (lastMinutesLeft) {\n batchNo = 0;\n } else if (canSendSecondBatch) {\n batchNo = 2;\n canDisplayTalkBatch = minutes >= BATCH_TWO_MINUTE;\n } else if (canSendFirstBatch) {\n batchNo = 1;\n canDisplayTalkBatch = minutes >= BATCH_ONE_MINUTE;\n }\n\n return {\n lastMinutesLeft,\n canSendBatch: canSendFirstBatch || canSendSecondBatch,\n batchNoToSend: batchNo,\n minutes,\n canDisplay: canDisplayTalkBatch,\n };\n },\n [BATCH_ONE_MINUTE, BATCH_TWO_MINUTE, LAST_MINUTES],\n );\n\n const [canAnimateIn, setCanAnimateIn] = useState(false);\n const [canAnimateOut, setCanAnimateOut] = useState(false);\n\n const { onEvent } = useUIContext();\n const { sendMessage } = useAVActions();\n\n const remotePeers = useRemotePeers();\n const studentPeerId = remotePeers.find(peer => peer.userId === studentId)?.id;\n const teacherPeerId = remotePeers.find(p => p.userType === 'teacher')?.id;\n\n const isTeacher = userType === 'TEACHER';\n\n const teacherTalkRef = useRef(teacherTalkTime);\n const studentTalkRef = useRef(studentTalkTime);\n const prevSentRef = useRef(0);\n\n const totalTalkTime = studentTalkRef.current + teacherTalkRef.current;\n const stdRatio = Math.ceil((studentTalkRef.current * 100) / totalTalkTime) || 0;\n const tchRatio = Math.floor((teacherTalkRef.current * 100) / totalTalkTime) || 0;\n\n const payload = useMemo(\n () => ({\n teacher_classroom_id: teacherClassroomId,\n teacher_id: teacherId,\n studentId: studentId,\n }),\n [studentId, teacherClassroomId, teacherId],\n );\n\n const handleDismiss = useCallback(() => {\n setCanAnimateOut(true);\n setCanAnimateIn(false);\n onDismissMeter();\n }, [onDismissMeter]);\n\n const trackEvent = useCallback(\n (eventName: string, data = {}) => {\n onEvent(eventName, { ...payload, ...data });\n },\n [onEvent, payload],\n );\n\n const sendBatch = useCallback(\n (batchNo: number) => {\n const EVENT_NAME = isTeacher ? 'TEACHER_TALK_TIME_UPDATED' : 'STUDENT_TALK_TIME_UPDATED';\n const speechTimePayload = isTeacher\n ? { teacher_speech_time: teacherTalkRef.current }\n : { student_speech_time: studentTalkRef.current };\n\n trackEvent('TALK_METER_BATCH_SENT', {\n batch_no: batchNo,\n ...speechTimePayload,\n });\n if (avPackageEnabled) {\n sendMessage(\n EVENT_NAME,\n {\n ...payload,\n ...speechTimePayload,\n batch_no: batchNo,\n },\n isTeacher ? studentPeerId : teacherPeerId,\n );\n }\n\n prevSentRef.current = studentTalkRef.current;\n },\n [avPackageEnabled, isTeacher, payload, sendMessage, studentPeerId, teacherPeerId, trackEvent],\n );\n\n useAVMessage<TMessageData>({\n type: isTeacher ? 'STUDENT_TALK_TIME_UPDATED' : 'TEACHER_TALK_TIME_UPDATED',\n onMessage: useCallback(\n (_, data) => {\n onMessageReceive(data);\n if (isTeacher) sendBatch(data.batch_no);\n },\n [isTeacher, onMessageReceive, sendBatch],\n ),\n });\n\n useEffect(() => {\n if (!canAnimateIn) {\n teacherTalkRef.current = teacherTalkTime;\n studentTalkRef.current = studentTalkTime;\n }\n }, [teacherTalkTime, studentTalkTime, canAnimateIn]);\n\n useEffect(() => {\n let dismissTimer: NodeJS.Timeout | undefined;\n\n if (canAnimateIn) {\n dismissTimer = setTimeout(() => {\n handleDismiss();\n }, ONE_MINUTE);\n }\n\n return () => {\n if (dismissTimer) clearTimeout(dismissTimer);\n };\n }, [canAnimateIn, handleDismiss]);\n\n useEffect(() => {\n let interval: NodeJS.Timeout | undefined;\n\n if (classStartTime && canDisplayBatch && !canAnimateIn) {\n interval = setInterval(() => {\n const { canDisplay } = getBatchToSendInfo(classStartTime, lastBatchReceivedNo);\n\n if (canDisplay) {\n trackEvent('TALK_METER_BATCH_DISPLAYED', {\n student_speech_time: studentTalkRef.current,\n teacher_speech_time: teacherTalkRef.current,\n batch_no: lastBatchReceivedNo,\n });\n setCanAnimateIn(true);\n setCanAnimateOut(false);\n }\n }, ONE_MINUTE / 30);\n }\n\n return () => {\n if (interval) {\n clearInterval(interval);\n }\n };\n }, [\n canAnimateIn,\n canDisplayBatch,\n classStartTime,\n getBatchToSendInfo,\n lastBatchReceivedNo,\n trackEvent,\n ]);\n\n useEffect(() => {\n let interval: NodeJS.Timeout | undefined;\n\n if (classStartTime && !isTeacher) {\n interval = setInterval(() => {\n const { lastMinutesLeft, canSendBatch, batchNoToSend } = getBatchToSendInfo(\n classStartTime,\n lastBatchReceivedNo,\n );\n\n if (lastMinutesLeft) {\n if (prevSentRef.current !== studentTalkRef.current) {\n sendBatch(batchNoToSend);\n }\n } else if (canSendBatch) {\n sendBatch(batchNoToSend);\n }\n }, ONE_MINUTE / 6);\n }\n\n return () => {\n if (interval) {\n clearInterval(interval);\n }\n };\n }, [classStartTime, getBatchToSendInfo, isTeacher, lastBatchReceivedNo, sendBatch]);\n\n return {\n canAnimateIn,\n canAnimateOut,\n stdRatio,\n tchRatio,\n handleDismiss,\n };\n};\n"],"names":["ONE_MINUTE","useTalkMeter","props","userType","studentId","teacherId","classStartTime","avPackageEnabled","teacherClassroomId","teacherTalkTime","studentTalkTime","lastBatchReceivedNo","canDisplayBatch","classDuration","onMessageReceive","onDismissMeter","BATCH_ONE_MINUTE","BATCH_TWO_MINUTE","LAST_MINUTES","getBatchToSendInfo","useCallback","classStartFrom","batchSeen","now","classTS","diff","minutes","canSendFirstBatch","canSendSecondBatch","lastMinutesLeft","batchNo","canDisplayTalkBatch","canAnimateIn","setCanAnimateIn","useState","canAnimateOut","setCanAnimateOut","onEvent","useUIContext","sendMessage","useAVActions","remotePeers","useRemotePeers","studentPeerId","_a","peer","teacherPeerId","_b","p","isTeacher","teacherTalkRef","useRef","studentTalkRef","prevSentRef","totalTalkTime","stdRatio","tchRatio","payload","useMemo","handleDismiss","trackEvent","eventName","data","sendBatch","EVENT_NAME","speechTimePayload","useAVMessage","_","useEffect","dismissTimer","interval","canDisplay","canSendBatch","batchNoToSend"],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { jsx as c } from "react/jsx-runtime";
2
+ import { useRef as l, useCallback as u, useEffect as p } from "react";
3
+ import f, { keyframes as d, css as n } from "styled-components";
4
+ import { SOUNDS as y } from "../../../assets/sounds/sounds.js";
5
+ import { useUIContext as g } from "../../ui/context/context.js";
6
+ import x from "../../ui/layout/flex-view.js";
7
+ const A = d`
8
+ 0% {
9
+ opacity: 1;
10
+ transform: scale(1);
11
+ }
12
+ 50% {
13
+ opacity: 0;
14
+ transform: scale(1.10) scaleY(1.15);
15
+ }
16
+ 100% {
17
+ opacity: 0;
18
+ transform: scale(1.10) scaleY(1.15);
19
+ }
20
+ `, h = f(x)(
21
+ ({ $delay: i }) => n`
22
+ height: 104px;
23
+ width: calc(100% - 24px);
24
+ position: absolute;
25
+ border-radius: 12px;
26
+ z-index: 0;
27
+ left: 0;
28
+ right: 0;
29
+ margin-left: auto;
30
+ margin-right: auto;
31
+ ${i > 0 && n`
32
+ animation-name: ${A};
33
+ animation-delay: ${i || 0}ms;
34
+ animation-duration: 1000ms;
35
+ animation-iteration-count: infinite;
36
+ animation-timing-function: ease-in;
37
+ `};
38
+ `
39
+ ), L = (i) => {
40
+ const { delay: o, color: s, withAudio: e = !0 } = i, { onEvent: r } = g(), m = l(new Audio(y.ALERT)), a = u(() => {
41
+ try {
42
+ m.current.play();
43
+ } catch (t) {
44
+ r("debug_log", {
45
+ type: "UNABLE TO PLAY SOUND IN TALK METER",
46
+ error: JSON.stringify(t)
47
+ });
48
+ }
49
+ }, [r]);
50
+ return p(() => {
51
+ let t = null;
52
+ return e && (t = setTimeout(() => {
53
+ a();
54
+ }, o)), () => {
55
+ t && clearTimeout(t);
56
+ };
57
+ }, [e, o, a]), /* @__PURE__ */ c(h, { $delay: o, $borderColor: s });
58
+ };
59
+ export {
60
+ L as default
61
+ };
62
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/features/talk-meter/ripple/index.tsx"],"sourcesContent":["import type { TColorNames } from '../../ui/types';\nimport type { FC } from 'react';\n\nimport { useEffect, useRef, useCallback } from 'react';\nimport styled, { css, keyframes } from 'styled-components';\n\nimport { SOUNDS } from '../../../assets/sounds/sounds';\nimport { useUIContext } from '../../ui/context/context';\nimport FlexView from '../../ui/layout/flex-view';\n\nconst rippleAnimation = keyframes`\n0% {\n opacity: 1;\n transform: scale(1);\n}\n50% {\n opacity: 0;\n transform: scale(1.10) scaleY(1.15);\n}\n100% {\n opacity: 0;\n transform: scale(1.10) scaleY(1.15);\n}\n`;\n\nconst RippleView = styled(FlexView)<{ $delay: number }>(\n ({ $delay }) => css`\n height: 104px;\n width: calc(100% - 24px);\n position: absolute;\n border-radius: 12px;\n z-index: 0;\n left: 0;\n right: 0;\n margin-left: auto;\n margin-right: auto;\n ${$delay > 0 &&\n css`\n animation-name: ${rippleAnimation};\n animation-delay: ${$delay || 0}ms;\n animation-duration: 1000ms;\n animation-iteration-count: infinite;\n animation-timing-function: ease-in;\n `};\n `,\n);\n\ninterface IRipple {\n delay: number;\n color: TColorNames;\n withAudio?: boolean;\n}\n\nconst Ripple: FC<IRipple> = props => {\n const { delay, color, withAudio = true } = props;\n const { onEvent: trackEvent } = useUIContext();\n const audioRef = useRef(new Audio(SOUNDS.ALERT));\n\n const playAudio = useCallback(() => {\n try {\n audioRef.current.play();\n } catch (err) {\n trackEvent('debug_log', {\n type: 'UNABLE TO PLAY SOUND IN TALK METER',\n error: JSON.stringify(err),\n });\n }\n }, [trackEvent]);\n\n useEffect(() => {\n let audioTimer: NodeJS.Timeout | null = null;\n\n if (withAudio) {\n audioTimer = setTimeout(() => {\n playAudio();\n }, delay);\n }\n\n return () => {\n if (audioTimer) clearTimeout(audioTimer);\n };\n }, [withAudio, delay, playAudio]);\n\n return <RippleView $delay={delay} $borderColor={color} />;\n};\n\nexport default Ripple;\n"],"names":["rippleAnimation","keyframes","RippleView","styled","FlexView","$delay","css","Ripple","props","delay","color","withAudio","trackEvent","useUIContext","audioRef","useRef","SOUNDS","playAudio","useCallback","err","useEffect","audioTimer","jsx"],"mappings":";;;;;;AAUA,MAAMA,IAAkBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAelBC,IAAaC,EAAOC,CAAQ;AAAA,EAChC,CAAC,EAAE,QAAAC,EAAa,MAAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAUZD,IAAS,KACXC;AAAA,wBACoBN,CAAe;AAAA,yBACdK,KAAU,CAAC;AAAA;AAAA;AAAA;AAAA,KAI/B;AAAA;AAEL,GAQME,IAAsB,CAASC,MAAA;AACnC,QAAM,EAAE,OAAAC,GAAO,OAAAC,GAAO,WAAAC,IAAY,OAASH,GACrC,EAAE,SAASI,EAAW,IAAIC,EAAa,GACvCC,IAAWC,EAAO,IAAI,MAAMC,EAAO,KAAK,CAAC,GAEzCC,IAAYC,EAAY,MAAM;AAC9B,QAAA;AACF,MAAAJ,EAAS,QAAQ;aACVK,GAAK;AACZ,MAAAP,EAAW,aAAa;AAAA,QACtB,MAAM;AAAA,QACN,OAAO,KAAK,UAAUO,CAAG;AAAA,MAAA,CAC1B;AAAA,IACH;AAAA,EAAA,GACC,CAACP,CAAU,CAAC;AAEf,SAAAQ,EAAU,MAAM;AACd,QAAIC,IAAoC;AAExC,WAAIV,MACFU,IAAa,WAAW,MAAM;AAClB,MAAAJ;OACTR,CAAK,IAGH,MAAM;AACP,MAAAY,kBAAyBA,CAAU;AAAA,IAAA;AAAA,EAExC,GAAA,CAACV,GAAWF,GAAOQ,CAAS,CAAC,GAExB,gBAAAK,EAAApB,GAAA,EAAW,QAAQO,GAAO,cAAcC,EAAO,CAAA;AACzD;"}
@@ -0,0 +1,89 @@
1
+ import o, { keyframes as a, css as t } from "styled-components";
2
+ import s from "../../assets/line-icons/icons/cross.js";
3
+ import r from "../ui/layout/flex-view.js";
4
+ const l = a`
5
+ 0% {
6
+ opacity: 0;
7
+ transform: translate(0%, -100%) scale(0);
8
+ height: 0px;
9
+ }
10
+ 50% {
11
+ opacity: 1;
12
+ }
13
+ 100% {
14
+ opacity: 1;
15
+ transform: translate(0%, 0%) scale(1);
16
+ height: 128px;
17
+ }
18
+ `, c = a`
19
+ 0% {
20
+ opacity: 1;
21
+ transform: translate(0%, 0%) scale(1);
22
+ }
23
+ 100% {
24
+ opacity: 0;
25
+ transform: translate(0%, -100%) scale(1);
26
+ height: 0px;
27
+ }
28
+ `, y = o(s)`
29
+ position: absolute;
30
+ top: 15px;
31
+ right: 20px;
32
+ color: black;
33
+ width: 20px;
34
+ height: 20px;
35
+ z-index: 2;
36
+ `, f = o(r)(
37
+ ({ $isTeacher: n, $animated: i, $canAnimateIn: e, $canAnimateOut: p }) => t`
38
+ width: 100%;
39
+ max-width: 336px;
40
+
41
+ ${i ? `
42
+ height: 0;
43
+ opacity: 0;
44
+ display: none;
45
+ ` : `
46
+ height: 100%;
47
+ opacity: 1;
48
+ display: flex;
49
+ `}
50
+
51
+ ${n ? null : `
52
+ ${i ? `
53
+ top: 70px;
54
+ right: 10px;
55
+ position: fixed;
56
+ ` : `
57
+ top: 0;
58
+ right: 0px;
59
+ position: relative;
60
+ `}
61
+ z-index: 100;
62
+ `}
63
+
64
+ ${e ? t`
65
+ animation-name: ${l};
66
+ animation-duration: 800ms;
67
+ animation-iteration-count: 1;
68
+ animation-timing-function: ease-out;
69
+ opacity: 1;
70
+ display: flex;
71
+ height: 128px;
72
+ ` : null}
73
+
74
+ ${p ? t`
75
+ animation-name: ${c};
76
+ animation-duration: 400ms;
77
+ animation-iteration-count: 1;
78
+ animation-timing-function: ease-out;
79
+ opacity: 0;
80
+ display: none;
81
+ height: 0px;
82
+ ` : null}
83
+ `
84
+ );
85
+ export {
86
+ y as CloseIcon,
87
+ f as Wrapper
88
+ };
89
+ //# sourceMappingURL=talk-meter-styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"talk-meter-styled.js","sources":["../../../src/features/talk-meter/talk-meter-styled.tsx"],"sourcesContent":["import styled, { css, keyframes } from 'styled-components';\n\nimport CrossIcon from '../../assets/line-icons/icons/cross';\nimport FlexView from '../ui/layout/flex-view';\n\nconst scaleInAnim = keyframes`\n 0% {\n opacity: 0;\n transform: translate(0%, -100%) scale(0);\n height: 0px;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 1;\n transform: translate(0%, 0%) scale(1);\n height: 128px;\n }\n`;\n\nconst scaleOutAnim = keyframes`\n 0% {\n opacity: 1;\n transform: translate(0%, 0%) scale(1);\n }\n 100% {\n opacity: 0;\n transform: translate(0%, -100%) scale(1);\n height: 0px;\n }\n`;\n\nconst CloseIcon = styled(CrossIcon)`\n position: absolute;\n top: 15px;\n right: 20px;\n color: black;\n width: 20px;\n height: 20px;\n z-index: 2;\n`;\n\nconst Wrapper = styled(FlexView)<{\n $isTeacher: boolean;\n $animated: boolean;\n $canAnimateIn: boolean;\n $canAnimateOut: boolean;\n}>(\n ({ $isTeacher, $animated, $canAnimateIn, $canAnimateOut }) => css`\n width: 100%;\n max-width: 336px;\n\n ${$animated\n ? `\n height: 0;\n opacity: 0;\n display: none;\n `\n : `\n height: 100%;\n opacity: 1;\n display: flex;\n `}\n\n ${!$isTeacher\n ? `\n ${\n $animated\n ? `\n top: 70px;\n right: 10px;\n position: fixed;\n `\n : `\n top: 0;\n right: 0px;\n position: relative;\n `\n }\n z-index: 100;\n `\n : null}\n \n ${$canAnimateIn\n ? css`\n animation-name: ${scaleInAnim};\n animation-duration: 800ms;\n animation-iteration-count: 1;\n animation-timing-function: ease-out;\n opacity: 1;\n display: flex;\n height: 128px;\n `\n : null}\n\n ${$canAnimateOut\n ? css`\n animation-name: ${scaleOutAnim};\n animation-duration: 400ms;\n animation-iteration-count: 1;\n animation-timing-function: ease-out;\n opacity: 0;\n display: none;\n height: 0px;\n `\n : null}\n `,\n);\n\nexport { Wrapper, CloseIcon };\n"],"names":["scaleInAnim","keyframes","scaleOutAnim","CloseIcon","styled","CrossIcon","Wrapper","FlexView","$isTeacher","$animated","$canAnimateIn","$canAnimateOut","css"],"mappings":";;;AAKA,MAAMA,IAAcC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAgBdC,IAAeD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAYfE,IAAYC,EAAOC,CAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAU5BC,IAAUF,EAAOG,CAAQ;AAAA,EAM7B,CAAC,EAAE,YAAAC,GAAY,WAAAC,GAAW,eAAAC,GAAe,gBAAAC,QAAqBC;AAAA;AAAA;AAAA;AAAA,MAI1DH,IACE;AAAA;AAAA;AAAA;AAAA,cAKA;AAAA;AAAA;AAAA;AAAA,WAIG;AAAA;AAAA,MAEJD,IAiBC,OAhBA;AAAA,cAEMC,IACI;AAAA;AAAA;AAAA;AAAA,oBAKA;AAAA;AAAA;AAAA;AAAA,iBAKN;AAAA;AAAA,WAGA;AAAA;AAAA,MAENC,IACEE;AAAA,4BACoBZ,CAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAQ/B,IAAI;AAAA;AAAA,MAENW,IACEC;AAAA,4BACoBV,CAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAQhC,IAAI;AAAA;AAEZ;"}
@@ -0,0 +1,22 @@
1
+ import e from "styled-components";
2
+ import i from "../../ui/layout/flex-view.js";
3
+ const p = e(i)`
4
+ height: 104px;
5
+ transition: height 300ms ease-in-out;
6
+ z-index: 1;
7
+ `;
8
+ e.div(
9
+ ({ $avatarUrl: r }) => `
10
+ width: 20px;
11
+ height: 20px;
12
+ border-radius: 50%;
13
+ background: url(${r});
14
+ background-size: cover;
15
+ background-repeat: no-repeat;
16
+ position: relative;
17
+ `
18
+ );
19
+ export {
20
+ p as MeterWrapper
21
+ };
22
+ //# sourceMappingURL=talk-meter-view-styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"talk-meter-view-styled.js","sources":["../../../../src/features/talk-meter/talk-meter-view/talk-meter-view-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\n\nconst MeterWrapper = styled(FlexView)`\n height: 104px;\n transition: height 300ms ease-in-out;\n z-index: 1;\n`;\n\nconst Avatar = styled.div<{ $avatarUrl: string }>(\n ({ $avatarUrl }) => `\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: url(${$avatarUrl});\n background-size: cover;\n background-repeat: no-repeat;\n position: relative;\n`,\n);\n\nexport { MeterWrapper, Avatar };\n"],"names":["MeterWrapper","styled","FlexView","$avatarUrl"],"mappings":";;AAIM,MAAAA,IAAeC,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAMrBD,EAAO;AAAA,EACpB,CAAC,EAAE,YAAAE,EAAA,MAAiB;AAAA;AAAA;AAAA;AAAA,oBAIFA,CAAU;AAAA;AAAA;AAAA;AAAA;AAK9B;"}
@@ -0,0 +1,101 @@
1
+ import { jsx as e, jsxs as r } from "react/jsx-runtime";
2
+ import { memo as b } from "react";
3
+ import { ILLUSTRATIONS as d } from "../../../assets/illustrations/illustrations.js";
4
+ import $ from "../../ui/image/image.js";
5
+ import t from "../../ui/layout/flex-view.js";
6
+ import T from "../../ui/separator/separator.js";
7
+ import o from "../../ui/text/text.js";
8
+ import { getMeterColor as g } from "../helper.js";
9
+ import { MeterWrapper as l } from "./talk-meter-view-styled.js";
10
+ const p = {
11
+ MALE: "MALE",
12
+ FEMALE: "FEMALE",
13
+ OTHER: "OTHER"
14
+ }, j = b((s) => {
15
+ const {
16
+ stdName: h = "Student",
17
+ tchName: u = "Teacher",
18
+ stdRatio: i,
19
+ tchRatio: n,
20
+ tchGender: E,
21
+ userType: m
22
+ } = s, c = g(i), A = Math.abs(n - i), f = n > 0 && i > 0 && A < 95, a = m === "TEACHER";
23
+ return f ? /* @__PURE__ */ r(
24
+ l,
25
+ {
26
+ $gap: 12,
27
+ $gutter: 12,
28
+ $background: "WHITE",
29
+ $borderColor: "GREY_2",
30
+ $borderRadius: 12,
31
+ children: [
32
+ /* @__PURE__ */ e(o, { $renderAs: "ub3-bold", $align: "center", children: "50:50 TALK METER" }),
33
+ /* @__PURE__ */ e(T, { height: 8 }),
34
+ /* @__PURE__ */ r(t, { $flexDirection: "row", $alignItems: "center", $justifyContent: "space-between", children: [
35
+ /* @__PURE__ */ r(t, { $flexDirection: "row", $justifyContent: "center", $alignItems: "center", $flexGap: 4, children: [
36
+ /* @__PURE__ */ e($, { src: d.ALIEN_4, width: 20, height: 20, withLoader: !0 }),
37
+ /* @__PURE__ */ e(o, { $renderAs: "ub3-bold", $color: "BLACK", children: a ? h : "You" })
38
+ ] }),
39
+ /* @__PURE__ */ r(t, { $flexDirection: "row", $justifyContent: "center", $alignItems: "center", $flexGap: 4, children: [
40
+ /* @__PURE__ */ e(o, { $renderAs: "ub3-bold", $color: "BLACK", children: a ? "You" : u }),
41
+ /* @__PURE__ */ e(
42
+ $,
43
+ {
44
+ src: E === p.MALE ? d.MALE_AVATAR : d.FEMALE_AVATAR,
45
+ width: 20,
46
+ height: 20,
47
+ withLoader: !0
48
+ }
49
+ )
50
+ ] })
51
+ ] }),
52
+ /* @__PURE__ */ r(t, { $flexDirection: "row", $gap: 4, children: [
53
+ /* @__PURE__ */ e(
54
+ t,
55
+ {
56
+ $height: 8,
57
+ $width: `${i}%`,
58
+ $borderRadius: 4,
59
+ $background: c.STUDENT
60
+ }
61
+ ),
62
+ /* @__PURE__ */ e(
63
+ t,
64
+ {
65
+ $height: 8,
66
+ $width: `${n}%`,
67
+ $borderRadius: 4,
68
+ $background: c.TEACHER
69
+ }
70
+ )
71
+ ] }),
72
+ /* @__PURE__ */ r(t, { $flexDirection: "row", $alignItems: "center", $justifyContent: "space-between", children: [
73
+ /* @__PURE__ */ r(o, { $renderAs: "ab2-black", $color: c.STUDENT, children: [
74
+ i,
75
+ " %"
76
+ ] }),
77
+ /* @__PURE__ */ r(o, { $renderAs: "ab2-black", $color: c.TEACHER, children: [
78
+ n,
79
+ " %"
80
+ ] })
81
+ ] })
82
+ ]
83
+ }
84
+ ) : /* @__PURE__ */ e(
85
+ l,
86
+ {
87
+ $gap: 12,
88
+ $gutter: 12,
89
+ $borderRadius: 12,
90
+ $background: "WHITE",
91
+ $borderColor: "GREY_2",
92
+ $alignItems: "center",
93
+ $justifyContent: "center",
94
+ children: /* @__PURE__ */ e(o, { $renderAs: "ub3-bold", $color: "BLACK", children: "Oops! There was insufficient data to calculate your Talk Ratio." })
95
+ }
96
+ );
97
+ });
98
+ export {
99
+ j as default
100
+ };
101
+ //# sourceMappingURL=talk-meter-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"talk-meter-view.js","sources":["../../../../src/features/talk-meter/talk-meter-view/talk-meter-view.tsx"],"sourcesContent":["import type { TUserTypes } from '../../ui/types';\nimport type { FC } from 'react';\n\nimport { memo } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\nimport Image from '../../ui/image/image';\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport { getMeterColor } from '../helper';\nimport * as Styled from './talk-meter-view-styled';\n\nconst GENDER = {\n MALE: 'MALE',\n FEMALE: 'FEMALE',\n OTHER: 'OTHER',\n};\n\ninterface ITalkMeterView {\n stdName?: string;\n tchName?: string;\n stdRatio: number;\n tchRatio: number;\n tchGender: keyof typeof GENDER;\n userType: TUserTypes;\n}\n\nconst TalkMeterView: FC<ITalkMeterView> = memo(props => {\n const {\n stdName = 'Student',\n tchName = 'Teacher',\n stdRatio,\n tchRatio,\n tchGender,\n userType,\n } = props;\n const colors = getMeterColor(stdRatio);\n const diff = Math.abs(tchRatio - stdRatio);\n const isValid = tchRatio > 0 && stdRatio > 0 && diff < 95;\n const isTeacher = userType === 'TEACHER';\n\n if (!isValid) {\n return (\n <Styled.MeterWrapper\n $gap={12}\n $gutter={12}\n $borderRadius={12}\n $background=\"WHITE\"\n $borderColor=\"GREY_2\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n <Text $renderAs=\"ub3-bold\" $color=\"BLACK\">\n Oops! There was insufficient data to calculate your Talk Ratio.\n </Text>\n </Styled.MeterWrapper>\n );\n }\n\n return (\n <Styled.MeterWrapper\n $gap={12}\n $gutter={12}\n $background=\"WHITE\"\n $borderColor=\"GREY_2\"\n $borderRadius={12}\n >\n <Text $renderAs=\"ub3-bold\" $align=\"center\">\n 50:50 TALK METER\n </Text>\n\n <Separator height={8} />\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"space-between\">\n <FlexView $flexDirection=\"row\" $justifyContent=\"center\" $alignItems=\"center\" $flexGap={4}>\n <Image src={ILLUSTRATIONS.ALIEN_4} width={20} height={20} withLoader />\n <Text $renderAs=\"ub3-bold\" $color=\"BLACK\">\n {isTeacher ? stdName : 'You'}\n </Text>\n </FlexView>\n <FlexView $flexDirection=\"row\" $justifyContent=\"center\" $alignItems=\"center\" $flexGap={4}>\n <Text $renderAs=\"ub3-bold\" $color=\"BLACK\">\n {isTeacher ? 'You' : tchName}\n </Text>\n <Image\n src={\n tchGender === GENDER.MALE ? ILLUSTRATIONS.MALE_AVATAR : ILLUSTRATIONS.FEMALE_AVATAR\n }\n width={20}\n height={20}\n withLoader\n />\n </FlexView>\n </FlexView>\n <FlexView $flexDirection=\"row\" $gap={4}>\n <FlexView\n $height={8}\n $width={`${stdRatio}%`}\n $borderRadius={4}\n $background={colors.STUDENT}\n />\n <FlexView\n $height={8}\n $width={`${tchRatio}%`}\n $borderRadius={4}\n $background={colors.TEACHER}\n />\n </FlexView>\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"space-between\">\n <Text $renderAs=\"ab2-black\" $color={colors.STUDENT}>\n {stdRatio} %\n </Text>\n <Text $renderAs=\"ab2-black\" $color={colors.TEACHER}>\n {tchRatio} %\n </Text>\n </FlexView>\n </Styled.MeterWrapper>\n );\n});\n\nexport default TalkMeterView;\n"],"names":["GENDER","TalkMeterView","memo","props","stdName","tchName","stdRatio","tchRatio","tchGender","userType","colors","getMeterColor","diff","isValid","isTeacher","jsxs","Styled.MeterWrapper","jsx","Text","Separator","FlexView","Image","ILLUSTRATIONS"],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import { jsxs as c, Fragment as y, jsx as e } from "react/jsx-runtime";
2
+ import { memo as v } from "react";
3
+ import { getMeterColor as w } from "./helper.js";
4
+ import { useTalkMeter as x } from "./hooks/use-talk-meter.js";
5
+ import n from "./ripple/index.js";
6
+ import { Wrapper as S, CloseIcon as j } from "./talk-meter-styled.js";
7
+ import B from "./talk-meter-view/talk-meter-view.js";
8
+ const G = v((m) => {
9
+ const {
10
+ animated: t = !0,
11
+ userType: a,
12
+ teacherId: l,
13
+ studentId: d,
14
+ studentName: h,
15
+ teacherName: T,
16
+ teacherGender: p,
17
+ classDuration: u,
18
+ classStartTime: f,
19
+ canDisplayBatch: k,
20
+ teacherTalkTime: A,
21
+ studentTalkTime: M,
22
+ avPackageEnabled: N,
23
+ teacherClassroomId: $,
24
+ lastBatchReceivedNo: g,
25
+ onDismissMeter: D,
26
+ onMessageReceive: I
27
+ } = m, { canAnimateOut: R, canAnimateIn: r, stdRatio: o, tchRatio: C, handleDismiss: E } = x({
28
+ userType: a,
29
+ studentId: d,
30
+ teacherId: l,
31
+ classStartTime: f,
32
+ avPackageEnabled: N,
33
+ teacherClassroomId: $,
34
+ teacherTalkTime: A,
35
+ studentTalkTime: M,
36
+ lastBatchReceivedNo: g,
37
+ canDisplayBatch: k,
38
+ classDuration: u,
39
+ onMessageReceive: I,
40
+ onDismissMeter: D
41
+ }), s = w(o), i = a === "TEACHER";
42
+ return /* @__PURE__ */ c(
43
+ S,
44
+ {
45
+ $gutter: 12,
46
+ $gap: 12,
47
+ $isTeacher: i,
48
+ $animated: t,
49
+ $canAnimateIn: r,
50
+ $canAnimateOut: R,
51
+ children: [
52
+ t && r && /* @__PURE__ */ c(y, { children: [
53
+ /* @__PURE__ */ e(n, { delay: 800, withAudio: !0, color: s.STUDENT }),
54
+ /* @__PURE__ */ e(n, { delay: 1050, withAudio: !1, color: s.STUDENT })
55
+ ] }),
56
+ /* @__PURE__ */ e(
57
+ B,
58
+ {
59
+ userType: a,
60
+ tchName: T,
61
+ stdName: h,
62
+ tchRatio: C,
63
+ stdRatio: o,
64
+ tchGender: p
65
+ }
66
+ ),
67
+ t && !i && /* @__PURE__ */ e(j, { onClick: E })
68
+ ]
69
+ }
70
+ );
71
+ }), W = G;
72
+ export {
73
+ W as default
74
+ };
75
+ //# sourceMappingURL=talk-meter.js.map