@cuemath/leap 2.8.35-beta.0 → 2.8.36-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.
- package/dist/assets/illustrations/illustrations.js +2 -0
- package/dist/assets/illustrations/illustrations.js.map +1 -1
- package/dist/assets/sounds/sounds.js +7 -0
- package/dist/assets/sounds/sounds.js.map +1 -0
- package/dist/features/analytics-events/whitelist-events.js +13 -15
- package/dist/features/analytics-events/whitelist-events.js.map +1 -1
- package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
- package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +63 -54
- package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
- package/dist/features/talk-meter/helper.js +11 -0
- package/dist/features/talk-meter/helper.js.map +1 -0
- package/dist/features/talk-meter/hooks/use-talk-meter.js +112 -0
- package/dist/features/talk-meter/hooks/use-talk-meter.js.map +1 -0
- package/dist/features/talk-meter/ripple/index.js +62 -0
- package/dist/features/talk-meter/ripple/index.js.map +1 -0
- package/dist/features/talk-meter/talk-meter-styled.js +84 -0
- package/dist/features/talk-meter/talk-meter-styled.js.map +1 -0
- package/dist/features/talk-meter/talk-meter-view/talk-meter-view-styled.js +22 -0
- package/dist/features/talk-meter/talk-meter-view/talk-meter-view-styled.js.map +1 -0
- package/dist/features/talk-meter/talk-meter-view/talk-meter-view.js +89 -0
- package/dist/features/talk-meter/talk-meter-view/talk-meter-view.js.map +1 -0
- package/dist/features/talk-meter/talk-meter.js +71 -0
- package/dist/features/talk-meter/talk-meter.js.map +1 -0
- package/dist/features/ui/grade-selector/grade-tab.js +15 -15
- package/dist/features/ui/grade-selector/grade-tab.js.map +1 -1
- package/dist/features/ui/tab/tab-styled.js +8 -7
- package/dist/features/ui/tab/tab-styled.js.map +1 -1
- package/dist/features/ui/tab/tab.js +31 -36
- package/dist/features/ui/tab/tab.js.map +1 -1
- package/dist/features/ui/theme/tab.js +1 -1
- package/dist/features/ui/theme/tab.js.map +1 -1
- package/dist/index.d.ts +36 -37
- package/dist/index.js +302 -304
- package/dist/index.js.map +1 -1
- package/dist/static/female-avatar.b8cd1012.svg +1 -0
- package/dist/static/male-avatar.2febc9eb.svg +1 -0
- package/package.json +2 -3
- package/dist/assets/line-icons/icons/sheet.js +0 -54
- package/dist/assets/line-icons/icons/sheet.js.map +0 -1
- package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js +0 -194
- package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js.map +0 -1
- package/dist/features/milestone/milestone-resources/resources-assign/api/get-resource.js +0 -10
- package/dist/features/milestone/milestone-resources/resources-assign/api/get-resource.js.map +0 -1
- package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js +0 -9
- package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js.map +0 -1
- package/dist/features/milestone/milestone-resources/resources-assign/api/lpar-resource-assign.js +0 -9
- package/dist/features/milestone/milestone-resources/resources-assign/api/lpar-resource-assign.js.map +0 -1
- package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item-styled.js +0 -20
- package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item-styled.js.map +0 -1
- package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js +0 -47
- package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js.map +0 -1
- package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item-styled.js +0 -22
- package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item-styled.js.map +0 -1
- package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js +0 -60
- package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js.map +0 -1
- package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/utils.js +0 -6
- package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/utils.js.map +0 -1
- package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-analytics-events.js +0 -19
- package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-analytics-events.js.map +0 -1
- package/dist/features/milestone/milestone-resources/resources-assign/resource-items/no-resource-screen.js +0 -22
- package/dist/features/milestone/milestone-resources/resources-assign/resource-items/no-resource-screen.js.map +0 -1
- package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items-styled.js +0 -17
- package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items-styled.js.map +0 -1
- package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js +0 -95
- package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js.map +0 -1
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign-styled.js +0 -62
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign-styled.js.map +0 -1
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +0 -189
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +0 -1
- package/dist/features/milestone/milestone-resources/resources-assign/utils.js +0 -8
- package/dist/features/milestone/milestone-resources/resources-assign/utils.js.map +0 -1
- package/dist/features/ui/inputs/searchable-input/searchable-input-styled.js +0 -28
- package/dist/features/ui/inputs/searchable-input/searchable-input-styled.js.map +0 -1
- package/dist/features/ui/inputs/searchable-input/searchable-input.js +0 -101
- package/dist/features/ui/inputs/searchable-input/searchable-input.js.map +0 -1
@@ -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 @@
|
|
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;"}
|
@@ -1,26 +1,24 @@
|
|
1
|
-
import { GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS as
|
2
|
-
import { WEBVIEW_ANALYTICS_WHITELIST_EVENTS as
|
1
|
+
import { GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS as T } from "../circle-games/game-launcher/game-launcher-analytics-events.js";
|
2
|
+
import { WEBVIEW_ANALYTICS_WHITELIST_EVENTS as E } from "../circle-games/games/web-view/web-view-analytics-events.js";
|
3
3
|
import { LEADERBOARD_ANALYTICS_WHITELIST_EVENTS as S } from "../circle-games/leaderboard/leaderboard-analytics-events.js";
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
import {
|
7
|
-
import {
|
8
|
-
import {
|
9
|
-
|
10
|
-
const f = {
|
4
|
+
import { TESTS_CREATION_ANALYTICS_WHITELIST_EVENTS as _ } from "../milestone/milestone-tests/tests-creation/tests-creation-analytics-events.js";
|
5
|
+
import { SHEETS_ANALYTICS_WHITELIST_EVENTS as I } from "../sheets/sheets-analytics-events.js";
|
6
|
+
import { USE_AUTO_PLAY_PERMISSION_ANALYTICS_WHITELIST_EVENTS as A } from "../hooks/use-auto-play-permission/use-auto-play-permission-analytics-events.js";
|
7
|
+
import { PLATFORM_WHITELIST_EVENTS_STUDENT as L } from "./platform-events-student.js";
|
8
|
+
import { PLATFORM_WHITELIST_EVENTS_TEACHER as N } from "./platform-events-teacher.js";
|
9
|
+
const C = {
|
11
10
|
//* Global/Platform specific events
|
11
|
+
...L,
|
12
12
|
...N,
|
13
|
-
...o,
|
14
13
|
//* Feature specific events
|
15
|
-
...
|
14
|
+
...T,
|
16
15
|
...S,
|
16
|
+
...E,
|
17
17
|
..._,
|
18
|
-
...A,
|
19
18
|
...I,
|
20
|
-
...
|
21
|
-
...T
|
19
|
+
...A
|
22
20
|
};
|
23
21
|
export {
|
24
|
-
|
22
|
+
C as WHITELIST_EVENTS
|
25
23
|
};
|
26
24
|
//# sourceMappingURL=whitelist-events.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"whitelist-events.js","sources":["../../../src/features/analytics-events/whitelist-events.ts"],"sourcesContent":["import type { PLUGIN_NAME } from '@cuemath/analytics-v2/dist/constants';\n\nimport { GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS } from '../circle-games/game-launcher/game-launcher-analytics-events';\nimport { WEBVIEW_ANALYTICS_WHITELIST_EVENTS } from '../circle-games/games/web-view/web-view-analytics-events';\nimport { LEADERBOARD_ANALYTICS_WHITELIST_EVENTS } from '../circle-games/leaderboard/leaderboard-analytics-events';\nimport {
|
1
|
+
{"version":3,"file":"whitelist-events.js","sources":["../../../src/features/analytics-events/whitelist-events.ts"],"sourcesContent":["import type { PLUGIN_NAME } from '@cuemath/analytics-v2/dist/constants';\n\nimport { GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS } from '../circle-games/game-launcher/game-launcher-analytics-events';\nimport { WEBVIEW_ANALYTICS_WHITELIST_EVENTS } from '../circle-games/games/web-view/web-view-analytics-events';\nimport { LEADERBOARD_ANALYTICS_WHITELIST_EVENTS } from '../circle-games/leaderboard/leaderboard-analytics-events';\nimport { TESTS_CREATION_ANALYTICS_WHITELIST_EVENTS } from '../milestone/milestone-tests/tests-creation/tests-creation-analytics-events';\nimport { SHEETS_ANALYTICS_WHITELIST_EVENTS } from '../sheets/sheets-analytics-events';\nimport { USE_AUTO_PLAY_PERMISSION_ANALYTICS_WHITELIST_EVENTS } from './../hooks/use-auto-play-permission/use-auto-play-permission-analytics-events';\nimport { PLATFORM_WHITELIST_EVENTS_STUDENT } from './platform-events-student';\nimport { PLATFORM_WHITELIST_EVENTS_TEACHER } from './platform-events-teacher';\n\n/**\n ** Feature specific & Global/Platform specific events are imported here\n */\nconst WHITELIST_EVENTS: Record<string, PLUGIN_NAME[]> = {\n //* Global/Platform specific events\n ...PLATFORM_WHITELIST_EVENTS_STUDENT,\n ...PLATFORM_WHITELIST_EVENTS_TEACHER,\n\n //* Feature specific events\n ...GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS,\n ...LEADERBOARD_ANALYTICS_WHITELIST_EVENTS,\n ...WEBVIEW_ANALYTICS_WHITELIST_EVENTS,\n ...TESTS_CREATION_ANALYTICS_WHITELIST_EVENTS,\n ...SHEETS_ANALYTICS_WHITELIST_EVENTS,\n ...USE_AUTO_PLAY_PERMISSION_ANALYTICS_WHITELIST_EVENTS,\n};\n\nexport { WHITELIST_EVENTS };\n"],"names":["WHITELIST_EVENTS","PLATFORM_WHITELIST_EVENTS_STUDENT","PLATFORM_WHITELIST_EVENTS_TEACHER","GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS","LEADERBOARD_ANALYTICS_WHITELIST_EVENTS","WEBVIEW_ANALYTICS_WHITELIST_EVENTS","TESTS_CREATION_ANALYTICS_WHITELIST_EVENTS","SHEETS_ANALYTICS_WHITELIST_EVENTS","USE_AUTO_PLAY_PERMISSION_ANALYTICS_WHITELIST_EVENTS"],"mappings":";;;;;;;;AAcA,MAAMA,IAAkD;AAAA;AAAA,EAEtD,GAAGC;AAAA,EACH,GAAGC;AAAA;AAAA,EAGH,GAAGC;AAAA,EACH,GAAGC;AAAA,EACH,GAAGC;AAAA,EACH,GAAGC;AAAA,EACH,GAAGC;AAAA,EACH,GAAGC;AACL;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cue-canvas-core.js","sources":["../../../src/features/cue-canvas/cue-canvas-core.ts"],"sourcesContent":["import
|
1
|
+
{"version":3,"file":"cue-canvas-core.js","sources":["../../../src/features/cue-canvas/cue-canvas-core.ts"],"sourcesContent":["import type { TUserTypes } from '../ui/types';\nimport type {\n IActionData,\n TCueCanvasChangeData,\n TCueCanvasTool,\n TPublish,\n TSubscribe,\n} from './types/cue-canvas';\nimport type { ICreateOptions } from './types/cue-canvas';\nimport type { IPolypad, IPolyPadInstance } from './types/polypad';\n\nimport { getReverseMap, getToolAndSubtool, removeMask } from './cue-canvas-helpers';\n\ndeclare global {\n interface Window {\n Polypad: IPolypad;\n }\n}\nexport class CueCanvasCore {\n private polycanvas: IPolyPadInstance | undefined;\n private publish?: TPublish;\n private height: number;\n private onUpdateHeight: (height: number) => void;\n private userId: string;\n private responseId: string;\n private userType: TUserTypes;\n\n constructor(\n onPublish: TPublish,\n onSubscribe: TSubscribe,\n onUpdateHeight: (height: number) => void,\n height: number,\n userId: string,\n responseId: string,\n userType: TUserTypes,\n ) {\n this.onUpdateHeight = onUpdateHeight;\n this.height = height;\n this.userId = userId;\n this.responseId = responseId;\n this.publish = onPublish;\n this.userType = userType;\n onSubscribe(this.responseId, this.update);\n }\n\n async create({ canvasElementRef, canvasConfig, canvasSetting, initialData }: ICreateOptions) {\n if (!canvasElementRef.current) {\n throw new Error('PolyCanvas: Div Element Not found for canvas');\n }\n this.polycanvas = await window.Polypad.create(canvasElementRef.current, {\n initial: {\n options: canvasConfig,\n },\n ...canvasSetting,\n });\n\n removeMask(canvasElementRef);\n this.polycanvas.on('change', this.onChange);\n if (initialData) {\n this.update(initialData);\n }\n }\n\n resetViewPort = () => {\n if (this.polycanvas) {\n this.polycanvas.resetViewport();\n }\n };\n\n onChange = (e: unknown) => {\n const data = e as TCueCanvasChangeData;\n const payload = Object.fromEntries(data.entries());\n\n if (this.publish) {\n this.publish({\n eventName: 'cue_canvas_changed',\n eventPayload: {\n data: payload,\n height: this.height,\n userId: this.userId,\n responseId: this.responseId,\n },\n });\n }\n };\n\n undo = () => {\n if (!this.polycanvas) {\n return;\n }\n\n const data = this.polycanvas.undo() as TCueCanvasChangeData;\n\n if (!data) {\n return;\n }\n\n const undoData = getReverseMap(data);\n\n this.onChange(undoData);\n };\n\n redo = () => {\n if (!this.polycanvas) {\n return;\n }\n\n const data = this.polycanvas.redo() as TCueCanvasChangeData;\n\n if (!data) {\n return;\n }\n\n this.onChange(data);\n };\n\n setTool = (tool: TCueCanvasTool) => {\n if (this.polycanvas) {\n const [currTool, currSubTool] = getToolAndSubtool(tool);\n\n switch (currTool) {\n case 'undo':\n this.undo();\n break;\n case 'redo':\n this.redo();\n break;\n default:\n this.polycanvas.setTool(currTool, currSubTool);\n }\n }\n };\n\n updateCanvas = ({ data, userId }: IActionData) => {\n const canEditStroke = this.userType === 'TEACHER' || userId === this.userId;\n\n Object.entries(data).forEach(([key, value]) => {\n if (!value[0] && value[1]) {\n this.polycanvas?.add({ ...value[1], cannotEdit: !canEditStroke }, key);\n } else if (value[0] && !value[1]) {\n this.polycanvas?.delete(key);\n } else {\n // This is the case for tile edit (rotate, flip, slice etc)\n // this.polycanvas?.update(key, { ...value[1] });\n }\n });\n };\n /**\n * The `update` method is called in two cases:\n * 1. When receiving initial data to update the canvas content.\n * 2. When receiving strokes from other peers to update the canvas content.\n * Each item can contain multiple actions, which are applied to the canvas.\n *\n * The method checks if the payload is an array or a single object.\n * If it's an array, it iterates over each item and updates the canvas accordingly.\n * If it's a single object, it directly updates the canvas.\n *\n * Additionally, if the payload contains a height greater than the current height of the canvas, the `updateHeight` method is called to update the canvas height.\n */\n update = (payload: IActionData | IActionData[]) => {\n if (Array.isArray(payload)) {\n const heights = payload.map(data => data.height);\n const maxHeight = Math.max(...heights);\n\n if (maxHeight > this.height) {\n this.updateHeight(maxHeight);\n }\n payload.forEach(item => this.updateCanvas(item));\n } else {\n if (payload.height > this.height) {\n this.updateHeight(payload.height);\n }\n this.updateCanvas(payload);\n }\n };\n\n setColor = (color: string) => {\n if (this.polycanvas) {\n this.polycanvas.setColor(color);\n }\n };\n\n updateHeight = (height: number) => {\n this.height = height;\n this.onUpdateHeight(height);\n };\n\n destroy = () => {\n if (this.polycanvas) {\n this.polycanvas.off('change', this.onChange);\n this.polycanvas.destroy();\n this.polycanvas = undefined;\n }\n };\n}\n"],"names":["CueCanvasCore","onPublish","onSubscribe","onUpdateHeight","height","userId","responseId","userType","__publicField","e","payload","data","undoData","getReverseMap","tool","currTool","currSubTool","getToolAndSubtool","canEditStroke","key","value","_a","_b","heights","maxHeight","item","color","canvasElementRef","canvasConfig","canvasSetting","initialData","removeMask"],"mappings":"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"}
|
@@ -1,65 +1,74 @@
|
|
1
|
-
import { useMessageBrokerChannel as
|
2
|
-
import { useState as
|
3
|
-
const
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
import { useMessageBrokerChannel as q } from "@cuemath/cue-message-broker";
|
2
|
+
import { useState as x, useRef as w, useMemo as E, useCallback as h } from "react";
|
3
|
+
const I = (c) => ({
|
4
|
+
userId: c.userId,
|
5
|
+
data: c.data,
|
6
|
+
height: c.height,
|
7
|
+
responseId: c.responseId
|
8
|
+
}), F = (c, f, g) => {
|
9
|
+
const [d, m] = x(
|
10
|
+
() => {
|
11
|
+
var o, r;
|
12
|
+
const n = {};
|
13
|
+
if (!g) return n;
|
14
|
+
for (const { message: a } of g) {
|
15
|
+
const e = (o = a.payload) == null ? void 0 : o.eventPayload, s = e == null ? void 0 : e.responseId;
|
16
|
+
if (!(e != null && e.responseId)) continue;
|
17
|
+
const t = I(e);
|
18
|
+
s && n[s] ? (r = n[s]) == null || r.push(t) : n[s] = [t];
|
19
|
+
}
|
20
|
+
return n;
|
21
|
+
}
|
22
|
+
), u = w({}), b = E(
|
7
23
|
() => ({
|
8
|
-
channelId:
|
24
|
+
channelId: c,
|
9
25
|
ttl: 0,
|
10
|
-
logger:
|
26
|
+
logger: f
|
11
27
|
}),
|
12
|
-
[
|
13
|
-
),
|
14
|
-
|
15
|
-
}, []),
|
16
|
-
(
|
17
|
-
const
|
18
|
-
|
19
|
-
var
|
20
|
-
const { payload:
|
21
|
-
!
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
}
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
];
|
39
|
-
}), Object.keys(t).length > 0 && k(n ? t : (i) => {
|
40
|
-
const r = { ...i };
|
41
|
-
return Object.keys(t).forEach((s) => {
|
42
|
-
var e;
|
43
|
-
s && r[s] ? (e = r[s]) == null || e.push(...t[s] ?? []) : r[s] = t[s] ?? [];
|
44
|
-
}), r;
|
28
|
+
[c, f]
|
29
|
+
), S = h((n, o) => {
|
30
|
+
u.current = { ...u.current, [n]: o };
|
31
|
+
}, []), C = h(
|
32
|
+
(n, o) => {
|
33
|
+
const r = {};
|
34
|
+
n.forEach((a) => {
|
35
|
+
var p;
|
36
|
+
const { payload: e } = a.message, { eventPayload: s } = e, t = s == null ? void 0 : s.responseId, R = s == null ? void 0 : s.data, B = s == null ? void 0 : s.userId, j = s == null ? void 0 : s.height, l = u.current[t];
|
37
|
+
if (!o && l)
|
38
|
+
l({
|
39
|
+
data: R,
|
40
|
+
height: j,
|
41
|
+
userId: B,
|
42
|
+
responseId: t
|
43
|
+
});
|
44
|
+
else {
|
45
|
+
const k = I(s);
|
46
|
+
t && r[t] ? (p = r[t]) == null || p.push(k) : r[t] = [k];
|
47
|
+
}
|
48
|
+
}), Object.keys(r).length > 0 && m((a) => {
|
49
|
+
const e = { ...a };
|
50
|
+
return Object.keys(r).forEach((s) => {
|
51
|
+
var t;
|
52
|
+
s && e[s] ? (t = e[s]) == null || t.push(...r[s] ?? []) : e[s] = r[s] ?? [];
|
53
|
+
}), e;
|
45
54
|
});
|
46
55
|
},
|
47
56
|
[]
|
48
|
-
), { publish:
|
49
|
-
channelOptions:
|
50
|
-
consumerFn:
|
51
|
-
}),
|
52
|
-
|
53
|
-
}, [
|
57
|
+
), { publish: D, channelStatus: M, channel: i } = q({
|
58
|
+
channelOptions: b,
|
59
|
+
consumerFn: C
|
60
|
+
}), O = h(() => {
|
61
|
+
i && i.destroyChannel();
|
62
|
+
}, [i]);
|
54
63
|
return {
|
55
|
-
publishStrokes:
|
56
|
-
channelStatus:
|
57
|
-
closeChannel:
|
58
|
-
initialStrokesData:
|
59
|
-
registerCallback:
|
64
|
+
publishStrokes: D,
|
65
|
+
channelStatus: M,
|
66
|
+
closeChannel: O,
|
67
|
+
initialStrokesData: d,
|
68
|
+
registerCallback: S
|
60
69
|
};
|
61
|
-
},
|
70
|
+
}, $ = F;
|
62
71
|
export {
|
63
|
-
|
72
|
+
$ as default
|
64
73
|
};
|
65
74
|
//# sourceMappingURL=use-canvas-sync-broker.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-canvas-sync-broker.js","sources":["../../../../src/features/cue-canvas/hooks/use-canvas-sync-broker.ts"],"sourcesContent":["import type { IActionData, TCueCanvasChangeDataObject } from '../types/cue-canvas';\n\nimport { useMessageBrokerChannel, type IChannelMessage } from '@cuemath/cue-message-broker';\nimport { useMemo, useCallback, useState, useRef } from 'react';\n\ninterface IMessage {\n eventName: string;\n eventPayload: {\n responseId: string;\n data: TCueCanvasChangeDataObject;\n userId: string;\n height: number;\n };\n}\n\nconst useCanvasSyncBroker = (\n channelId: string,\n logEvent: (type: string, payload?: Record<string, unknown>) => void,\n) => {\n const [initialStrokesData, setInitialStrokesData] = useState<Record<string,
|
1
|
+
{"version":3,"file":"use-canvas-sync-broker.js","sources":["../../../../src/features/cue-canvas/hooks/use-canvas-sync-broker.ts"],"sourcesContent":["import type { IActionData, TCueCanvasChangeDataObject } from '../types/cue-canvas';\n\nimport { useMessageBrokerChannel, type IChannelMessage } from '@cuemath/cue-message-broker';\nimport { useMemo, useCallback, useState, useRef } from 'react';\n\ninterface IMessage {\n eventName: string;\n eventPayload: {\n responseId: string;\n data: TCueCanvasChangeDataObject;\n userId: string;\n height: number;\n };\n}\n\nconst extractStrokeData = (payload: IMessage['eventPayload']): IActionData => ({\n userId: payload.userId,\n data: payload.data,\n height: payload.height,\n responseId: payload.responseId,\n});\n\nconst useCanvasSyncBroker = (\n channelId: string,\n logEvent: (type: string, payload?: Record<string, unknown>) => void,\n initialCanvasData?: Array<IChannelMessage>,\n) => {\n const [initialStrokesData, setInitialStrokesData] = useState<Record<string, IActionData[]>>(\n () => {\n const map: Record<string, IActionData[]> = {};\n\n if (!initialCanvasData) return map;\n\n for (const { message } of initialCanvasData) {\n const payload = (message.payload as IMessage)?.eventPayload;\n const qrId = payload?.responseId;\n\n if (!payload?.responseId) continue;\n\n const strokeData = extractStrokeData(payload);\n\n if (qrId && map[qrId]) {\n map[qrId]?.push(strokeData);\n } else {\n map[qrId] = [strokeData];\n }\n }\n\n return map;\n },\n );\n const callbacksMapRef = useRef<Record<string, (data: IActionData) => void>>({});\n\n const channelOptions = useMemo(\n () => ({\n channelId,\n ttl: 0,\n logger: logEvent,\n }),\n [channelId, logEvent],\n );\n\n const registerCallback = useCallback((qrId: string, cb: (data: IActionData) => void) => {\n callbacksMapRef.current = { ...callbacksMapRef.current, [qrId]: cb };\n }, []);\n\n const onMessageReceive = useCallback(\n (messages: Array<IChannelMessage>, initialData?: boolean) => {\n const strokesPerWidgetMap: Record<string, Array<IActionData>> = {};\n\n messages.forEach(message => {\n const { payload } = message.message;\n const { eventPayload } = payload as IMessage;\n const qrId = eventPayload?.responseId as string;\n const strokes = eventPayload?.data;\n const userId = eventPayload?.userId;\n const canvasHeight = eventPayload?.height;\n const widgetOnReceiveCallback = callbacksMapRef.current[qrId];\n\n if (!initialData && widgetOnReceiveCallback) {\n widgetOnReceiveCallback({\n data: strokes,\n height: canvasHeight,\n userId,\n responseId: qrId,\n });\n } else {\n const strokeData = extractStrokeData(eventPayload);\n\n if (qrId && strokesPerWidgetMap[qrId]) {\n strokesPerWidgetMap[qrId]?.push(strokeData);\n } else {\n strokesPerWidgetMap[qrId] = [strokeData];\n }\n }\n });\n\n if (Object.keys(strokesPerWidgetMap).length > 0) {\n setInitialStrokesData(prevData => {\n const currentData = { ...prevData };\n\n Object.keys(strokesPerWidgetMap).forEach(key => {\n if (key && currentData[key]) {\n currentData[key]?.push(...(strokesPerWidgetMap[key] ?? []));\n } else {\n currentData[key] = strokesPerWidgetMap[key] ?? [];\n }\n });\n\n return currentData;\n });\n }\n },\n [],\n );\n\n const { publish, channelStatus, channel } = useMessageBrokerChannel({\n channelOptions,\n consumerFn: onMessageReceive,\n });\n\n const closeChannel = useCallback(() => {\n if (channel) {\n channel.destroyChannel();\n }\n }, [channel]);\n\n return {\n publishStrokes: publish,\n channelStatus,\n closeChannel,\n initialStrokesData,\n registerCallback,\n };\n};\n\nexport default useCanvasSyncBroker;\n"],"names":["extractStrokeData","payload","useCanvasSyncBroker","channelId","logEvent","initialCanvasData","initialStrokesData","setInitialStrokesData","useState","map","message","_a","qrId","strokeData","_b","callbacksMapRef","useRef","channelOptions","useMemo","registerCallback","useCallback","cb","onMessageReceive","messages","initialData","strokesPerWidgetMap","eventPayload","strokes","userId","canvasHeight","widgetOnReceiveCallback","prevData","currentData","key","publish","channelStatus","channel","useMessageBrokerChannel","closeChannel","useCanvasSyncBroker$1"],"mappings":"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"}
|
@@ -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,112 @@
|
|
1
|
+
import { useAVActions as z, useRemotePeers as G, useAVMessage as J } from "@cuemath/av";
|
2
|
+
import { useState as F, useRef as B, useMemo as Q, useCallback as I, useEffect as D } from "react";
|
3
|
+
import { useUIContext as X } from "../../ui/context/context.js";
|
4
|
+
const N = 1e3 * 60, S = 20, v = 40, W = (p, i) => {
|
5
|
+
const _ = Date.now(), E = p.getTime(), a = Math.abs(_ - E), t = Math.floor(a / 1e3 / 60), f = (i === 0 || i === 1) && t >= S - 2 && t <= S, T = (i === 1 || i === 2) && t >= v - 2 && t <= v, l = t >= 50;
|
6
|
+
let s = 0, u = !1;
|
7
|
+
return l ? s = 0 : T ? (s = 2, u = t >= v) : f && (s = 1, u = t >= S), {
|
8
|
+
lastMinutesLeft: l,
|
9
|
+
canSendBatch: f || T,
|
10
|
+
batchNoToSend: s,
|
11
|
+
minutes: t,
|
12
|
+
canDisplay: u
|
13
|
+
};
|
14
|
+
}, te = (p) => {
|
15
|
+
var V, w;
|
16
|
+
const {
|
17
|
+
userType: i,
|
18
|
+
studentId: _,
|
19
|
+
teacherId: E,
|
20
|
+
classStartTime: a,
|
21
|
+
avPackageEnabled: t,
|
22
|
+
teacherClassroomId: f,
|
23
|
+
teacherTalkTime: T,
|
24
|
+
studentTalkTime: l,
|
25
|
+
lastBatchReceivedNo: s,
|
26
|
+
canDisplayBatch: u,
|
27
|
+
onMessageReceive: C,
|
28
|
+
onDismissMeter: P
|
29
|
+
} = p, [r, U] = F(!1), [Y, k] = F(!1), { onEvent: y } = X(), { sendMessage: L } = z(), g = G(), H = (V = g.find((e) => e.userId === _)) == null ? void 0 : V.id, b = (w = g.find((e) => e.userType === "teacher")) == null ? void 0 : w.id, n = i === "TEACHER", d = B(T), o = B(l), K = B(0), O = o.current + d.current, j = Math.ceil(o.current * 100 / O) || 0, q = Math.floor(d.current * 100 / O) || 0, m = Q(
|
30
|
+
() => ({
|
31
|
+
teacher_classroom_id: f,
|
32
|
+
teacher_id: E,
|
33
|
+
studentId: _
|
34
|
+
}),
|
35
|
+
[_, f, E]
|
36
|
+
), R = I(() => {
|
37
|
+
k(!0), U(!1), P();
|
38
|
+
}, [P]), A = I(
|
39
|
+
(e, c = {}) => {
|
40
|
+
y(e, { ...m, ...c });
|
41
|
+
},
|
42
|
+
[y, m]
|
43
|
+
), h = I(
|
44
|
+
(e) => {
|
45
|
+
const c = n ? "TEACHER_TALK_TIME_UPDATED" : "STUDENT_TALK_TIME_UPDATED", M = n ? { teacher_speech_time: d.current } : { student_speech_time: o.current };
|
46
|
+
A("TALK_METER_BATCH_SENT", {
|
47
|
+
batch_no: e,
|
48
|
+
...M
|
49
|
+
}), t && L(
|
50
|
+
c,
|
51
|
+
{
|
52
|
+
...m,
|
53
|
+
...M,
|
54
|
+
batch_no: e
|
55
|
+
},
|
56
|
+
n ? H : b
|
57
|
+
), K.current = o.current;
|
58
|
+
},
|
59
|
+
[t, n, m, L, H, b, A]
|
60
|
+
);
|
61
|
+
return J({
|
62
|
+
type: n ? "STUDENT_TALK_TIME_UPDATED" : "TEACHER_TALK_TIME_UPDATED",
|
63
|
+
onMessage: I(
|
64
|
+
(e, c) => {
|
65
|
+
C(), n && h(c.batch_no);
|
66
|
+
},
|
67
|
+
[n, C, h]
|
68
|
+
)
|
69
|
+
}), D(() => {
|
70
|
+
r || (d.current = T, o.current = l);
|
71
|
+
}, [T, l, r]), D(() => {
|
72
|
+
let e;
|
73
|
+
return r && (e = setTimeout(() => {
|
74
|
+
R();
|
75
|
+
}, N)), () => {
|
76
|
+
e && clearTimeout(e);
|
77
|
+
};
|
78
|
+
}, [r, R]), D(() => {
|
79
|
+
let e;
|
80
|
+
return u && !r && (e = setInterval(() => {
|
81
|
+
const { canDisplay: c } = W(a, s);
|
82
|
+
c && (A("TALK_METER_BATCH_DISPLAYED", {
|
83
|
+
student_speech_time: o.current,
|
84
|
+
teacher_speech_time: d.current,
|
85
|
+
batch_no: s
|
86
|
+
}), U(!0), k(!1));
|
87
|
+
}, N / 30)), () => {
|
88
|
+
e && clearInterval(e);
|
89
|
+
};
|
90
|
+
}, [r, u, a, s, A]), D(() => {
|
91
|
+
let e;
|
92
|
+
return a && !n && (e = setInterval(() => {
|
93
|
+
const { lastMinutesLeft: c, canSendBatch: M, batchNoToSend: x } = W(
|
94
|
+
a,
|
95
|
+
s
|
96
|
+
);
|
97
|
+
c ? K.current !== o.current && h(x) : M && h(x);
|
98
|
+
}, N / 6)), () => {
|
99
|
+
e && clearInterval(e);
|
100
|
+
};
|
101
|
+
}, [a, n, s, h]), {
|
102
|
+
canAnimateIn: r,
|
103
|
+
canAnimateOut: Y,
|
104
|
+
stdRatio: j,
|
105
|
+
tchRatio: q,
|
106
|
+
handleDismiss: R
|
107
|
+
};
|
108
|
+
};
|
109
|
+
export {
|
110
|
+
te as useTalkMeter
|
111
|
+
};
|
112
|
+
//# 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 } 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;\nconst BATCH_ONE_MINUTE = 20; // classDuration / 2.75\nconst BATCH_TWO_MINUTE = 40; // classDuration / 5.5\n\nconst getBatchToSendInfo = (classStartTime: Date, batchSeen: number) => {\n const now = Date.now();\n const classTS = classStartTime.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 >= 50;\n\n let batchNo = 0;\n let canDisplayBatch = false;\n\n if (lastMinutesLeft) {\n batchNo = 0;\n } else if (canSendSecondBatch) {\n batchNo = 2;\n canDisplayBatch = minutes >= BATCH_TWO_MINUTE;\n } else if (canSendFirstBatch) {\n batchNo = 1;\n canDisplayBatch = minutes >= BATCH_ONE_MINUTE;\n }\n\n return {\n lastMinutesLeft,\n canSendBatch: canSendFirstBatch || canSendSecondBatch,\n batchNoToSend: batchNo,\n minutes,\n canDisplay: canDisplayBatch,\n };\n};\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 onMessageReceive,\n onDismissMeter,\n } = props;\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<{\n teacher_classroom_id: string;\n student_classroom_id: string;\n student_speech_time: number;\n batch_no: 0 | 1 | 2;\n }>({\n type: isTeacher ? 'STUDENT_TALK_TIME_UPDATED' : 'TEACHER_TALK_TIME_UPDATED',\n onMessage: useCallback(\n (_, data) => {\n onMessageReceive();\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 (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 }, [canAnimateIn, canDisplayBatch, classStartTime, lastBatchReceivedNo, trackEvent]);\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, isTeacher, lastBatchReceivedNo, sendBatch]);\n\n return {\n canAnimateIn,\n canAnimateOut,\n stdRatio,\n tchRatio,\n handleDismiss,\n };\n};\n"],"names":["ONE_MINUTE","BATCH_ONE_MINUTE","BATCH_TWO_MINUTE","getBatchToSendInfo","classStartTime","batchSeen","now","classTS","diff","minutes","canSendFirstBatch","canSendSecondBatch","lastMinutesLeft","batchNo","canDisplayBatch","useTalkMeter","props","userType","studentId","teacherId","avPackageEnabled","teacherClassroomId","teacherTalkTime","studentTalkTime","lastBatchReceivedNo","onMessageReceive","onDismissMeter","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","useCallback","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;"}
|