@cuemath/leap 2.8.35-beta.0 → 2.8.35-rj-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/features/analytics-events/platform-events-student.js +6 -5
  2. package/dist/features/analytics-events/platform-events-student.js.map +1 -1
  3. package/dist/features/analytics-events/whitelist-events.js +13 -15
  4. package/dist/features/analytics-events/whitelist-events.js.map +1 -1
  5. package/dist/features/circle-games/enum/circle-action-ids.js +5 -0
  6. package/dist/features/circle-games/enum/circle-action-ids.js.map +1 -0
  7. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js +40 -35
  8. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js.map +1 -1
  9. package/dist/features/circle-games/games/web-view/web-view-types.js.map +1 -1
  10. package/dist/features/circle-games/leaderboard/comps/info-bar/info-bar-styled.js +12 -0
  11. package/dist/features/circle-games/leaderboard/comps/info-bar/info-bar-styled.js.map +1 -0
  12. package/dist/features/circle-games/leaderboard/comps/info-bar/info-bar.js +11 -0
  13. package/dist/features/circle-games/leaderboard/comps/info-bar/info-bar.js.map +1 -0
  14. package/dist/features/circle-games/leaderboard/comps/leaderboard-item/leaderboard-item.js +6 -6
  15. package/dist/features/circle-games/leaderboard/comps/leaderboard-item/leaderboard-item.js.map +1 -1
  16. package/dist/features/circle-games/leaderboard/comps/streak-reduction-infobar/constants.js +5 -0
  17. package/dist/features/circle-games/leaderboard/comps/streak-reduction-infobar/constants.js.map +1 -0
  18. package/dist/features/circle-games/leaderboard/comps/streak-reduction-infobar/streak-reduction-infobar.js +50 -0
  19. package/dist/features/circle-games/leaderboard/comps/streak-reduction-infobar/streak-reduction-infobar.js.map +1 -0
  20. package/dist/features/circle-games/leaderboard/hooks/{useIntersectionObserver.js → use-intersection-observer/use-intersection-observer.tsx.js} +1 -1
  21. package/dist/features/circle-games/leaderboard/hooks/use-intersection-observer/use-intersection-observer.tsx.js.map +1 -0
  22. package/dist/features/circle-games/leaderboard/hooks/{useTimer.js → use-timer/use-timer.js} +1 -1
  23. package/dist/features/circle-games/leaderboard/hooks/use-timer/use-timer.js.map +1 -0
  24. package/dist/features/circle-games/leaderboard/leaderboard-styled.js +20 -16
  25. package/dist/features/circle-games/leaderboard/leaderboard-styled.js.map +1 -1
  26. package/dist/features/circle-games/leaderboard/leaderboard.js +96 -87
  27. package/dist/features/circle-games/leaderboard/leaderboard.js.map +1 -1
  28. package/dist/features/circle-games/utils/streak-reduction-localstorage-util.js +25 -0
  29. package/dist/features/circle-games/utils/streak-reduction-localstorage-util.js.map +1 -0
  30. package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
  31. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +63 -54
  32. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
  33. package/dist/features/journey/journey-id/journey-id-student.js +1 -1
  34. package/dist/features/journey/journey-id/journey-id-student.js.map +1 -1
  35. package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js +43 -42
  36. package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js.map +1 -1
  37. package/dist/features/trial-session/trial-session-types.js.map +1 -1
  38. package/dist/features/trial-session/trial-session-view.js +73 -71
  39. package/dist/features/trial-session/trial-session-view.js.map +1 -1
  40. package/dist/features/ui/grade-selector/grade-tab.js +15 -15
  41. package/dist/features/ui/grade-selector/grade-tab.js.map +1 -1
  42. package/dist/features/ui/tab/tab-styled.js +8 -7
  43. package/dist/features/ui/tab/tab-styled.js.map +1 -1
  44. package/dist/features/ui/tab/tab.js +31 -36
  45. package/dist/features/ui/tab/tab.js.map +1 -1
  46. package/dist/features/ui/theme/tab.js +1 -1
  47. package/dist/features/ui/theme/tab.js.map +1 -1
  48. package/dist/index.d.ts +44 -43
  49. package/dist/index.js +356 -354
  50. package/dist/index.js.map +1 -1
  51. package/package.json +1 -1
  52. package/dist/assets/line-icons/icons/sheet.js +0 -54
  53. package/dist/assets/line-icons/icons/sheet.js.map +0 -1
  54. package/dist/features/circle-games/leaderboard/hooks/useIntersectionObserver.js.map +0 -1
  55. package/dist/features/circle-games/leaderboard/hooks/useTimer.js.map +0 -1
  56. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js +0 -194
  57. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js.map +0 -1
  58. package/dist/features/milestone/milestone-resources/resources-assign/api/get-resource.js +0 -10
  59. package/dist/features/milestone/milestone-resources/resources-assign/api/get-resource.js.map +0 -1
  60. package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js +0 -9
  61. package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js.map +0 -1
  62. package/dist/features/milestone/milestone-resources/resources-assign/api/lpar-resource-assign.js +0 -9
  63. package/dist/features/milestone/milestone-resources/resources-assign/api/lpar-resource-assign.js.map +0 -1
  64. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item-styled.js +0 -20
  65. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item-styled.js.map +0 -1
  66. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js +0 -47
  67. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js.map +0 -1
  68. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item-styled.js +0 -22
  69. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item-styled.js.map +0 -1
  70. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js +0 -60
  71. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js.map +0 -1
  72. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/utils.js +0 -6
  73. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/utils.js.map +0 -1
  74. package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-analytics-events.js +0 -19
  75. package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-analytics-events.js.map +0 -1
  76. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/no-resource-screen.js +0 -22
  77. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/no-resource-screen.js.map +0 -1
  78. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items-styled.js +0 -17
  79. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items-styled.js.map +0 -1
  80. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js +0 -95
  81. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js.map +0 -1
  82. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign-styled.js +0 -62
  83. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign-styled.js.map +0 -1
  84. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +0 -189
  85. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +0 -1
  86. package/dist/features/milestone/milestone-resources/resources-assign/utils.js +0 -8
  87. package/dist/features/milestone/milestone-resources/resources-assign/utils.js.map +0 -1
  88. package/dist/features/ui/inputs/searchable-input/searchable-input-styled.js +0 -28
  89. package/dist/features/ui/inputs/searchable-input/searchable-input-styled.js.map +0 -1
  90. package/dist/features/ui/inputs/searchable-input/searchable-input.js +0 -101
  91. package/dist/features/ui/inputs/searchable-input/searchable-input.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { PLUGINS as t } from "../../node_modules/@cuemath/analytics-v2/dist/constants.js";
2
- var _ = /* @__PURE__ */ ((e) => (e.PAGE_VIEWED = "page_viewed", e.CUSTOM_TEST_SUBMITTED = "custom_test_submitted", e.ACTIVITY_STARTED = "activity_started", e.ACTIVITY_TUTORIAL_SEEN = "activity_tutorial_seen", e.STREAK_ICON_CLICKED = "streak_icon_clicked", e.LEADERBOARD_BUTTON_CLICKED = "leaderboard_button_clicked", e.ONBOARDING_STEP_VIEWED = "onboarding_step_viewed", e.ONBOARDING_STEP_COMPLETED = "onboarding_step_completed", e))(_ || {});
3
- const o = {
2
+ var i = /* @__PURE__ */ ((e) => (e.PAGE_VIEWED = "page_viewed", e.CUSTOM_TEST_SUBMITTED = "custom_test_submitted", e.ACTIVITY_STARTED = "activity_started", e.ACTIVITY_TUTORIAL_SEEN = "activity_tutorial_seen", e.STREAK_ICON_CLICKED = "streak_icon_clicked", e.LEADERBOARD_BUTTON_CLICKED = "leaderboard_button_clicked", e.ONBOARDING_STEP_VIEWED = "onboarding_step_viewed", e.ONBOARDING_STEP_COMPLETED = "onboarding_step_completed", e.COACHMARK_DISMISSED = "coachmark_dismissed", e))(i || {});
3
+ const I = {
4
4
  page_viewed: [t.MIXPANEL],
5
5
  // circle on leap mixpanel events
6
6
  activity_started: [t.MIXPANEL],
@@ -8,10 +8,11 @@ const o = {
8
8
  streak_icon_clicked: [t.MIXPANEL],
9
9
  leaderboard_button_clicked: [t.MIXPANEL],
10
10
  onboarding_step_viewed: [t.MIXPANEL],
11
- onboarding_step_completed: [t.MIXPANEL]
11
+ onboarding_step_completed: [t.MIXPANEL],
12
+ coachmark_dismissed: [t.MIXPANEL]
12
13
  };
13
14
  export {
14
- _ as PLATFORM_EVENTS_STUDENT,
15
- o as PLATFORM_WHITELIST_EVENTS_STUDENT
15
+ i as PLATFORM_EVENTS_STUDENT,
16
+ I as PLATFORM_WHITELIST_EVENTS_STUDENT
16
17
  };
17
18
  //# sourceMappingURL=platform-events-student.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform-events-student.js","sources":["../../../src/features/analytics-events/platform-events-student.ts"],"sourcesContent":["import { PLUGINS } from '@cuemath/analytics-v2/dist/constants';\n\n/**\n ** Global/Platform specific events that needs to be tracked goes here\n ** Naming convention needs to be snake_case\n */\nexport enum PLATFORM_EVENTS_STUDENT {\n PAGE_VIEWED = 'page_viewed',\n CUSTOM_TEST_SUBMITTED = 'custom_test_submitted',\n\n // circle on leap mixpanel events\n ACTIVITY_STARTED = 'activity_started',\n ACTIVITY_TUTORIAL_SEEN = 'activity_tutorial_seen',\n STREAK_ICON_CLICKED = 'streak_icon_clicked',\n LEADERBOARD_BUTTON_CLICKED = 'leaderboard_button_clicked',\n ONBOARDING_STEP_VIEWED = 'onboarding_step_viewed',\n ONBOARDING_STEP_COMPLETED = 'onboarding_step_completed',\n}\n\n/**\n ** Events that need to be tracked at particular plugins\n ** Value will be array of strings.\n */\nexport const PLATFORM_WHITELIST_EVENTS_STUDENT = {\n [PLATFORM_EVENTS_STUDENT.PAGE_VIEWED]: [PLUGINS.MIXPANEL],\n\n // circle on leap mixpanel events\n [PLATFORM_EVENTS_STUDENT.ACTIVITY_STARTED]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.ACTIVITY_TUTORIAL_SEEN]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.STREAK_ICON_CLICKED]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.LEADERBOARD_BUTTON_CLICKED]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.ONBOARDING_STEP_VIEWED]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.ONBOARDING_STEP_COMPLETED]: [PLUGINS.MIXPANEL],\n};\n"],"names":["PLATFORM_EVENTS_STUDENT","PLATFORM_WHITELIST_EVENTS_STUDENT","PLUGINS"],"mappings":";AAMY,IAAAA,sBAAAA,OACVA,EAAA,cAAc,eACdA,EAAA,wBAAwB,yBAGxBA,EAAA,mBAAmB,oBACnBA,EAAA,yBAAyB,0BACzBA,EAAA,sBAAsB,uBACtBA,EAAA,6BAA6B,8BAC7BA,EAAA,yBAAyB,0BACzBA,EAAA,4BAA4B,6BAVlBA,IAAAA,KAAA,CAAA,CAAA;AAiBL,MAAMC,IAAoC;AAAA,EAC9C,aAAsC,CAACC,EAAQ,QAAQ;AAAA;AAAA,EAGvD,kBAA2C,CAACA,EAAQ,QAAQ;AAAA,EAC5D,wBAAiD,CAACA,EAAQ,QAAQ;AAAA,EAClE,qBAA8C,CAACA,EAAQ,QAAQ;AAAA,EAC/D,4BAAqD,CAACA,EAAQ,QAAQ;AAAA,EACtE,wBAAiD,CAACA,EAAQ,QAAQ;AAAA,EAClE,2BAAoD,CAACA,EAAQ,QAAQ;AACxE;"}
1
+ {"version":3,"file":"platform-events-student.js","sources":["../../../src/features/analytics-events/platform-events-student.ts"],"sourcesContent":["import { PLUGINS } from '@cuemath/analytics-v2/dist/constants';\n\n/**\n ** Global/Platform specific events that needs to be tracked goes here\n ** Naming convention needs to be snake_case\n */\nexport enum PLATFORM_EVENTS_STUDENT {\n PAGE_VIEWED = 'page_viewed',\n CUSTOM_TEST_SUBMITTED = 'custom_test_submitted',\n\n // circle on leap mixpanel events\n ACTIVITY_STARTED = 'activity_started',\n ACTIVITY_TUTORIAL_SEEN = 'activity_tutorial_seen',\n STREAK_ICON_CLICKED = 'streak_icon_clicked',\n LEADERBOARD_BUTTON_CLICKED = 'leaderboard_button_clicked',\n ONBOARDING_STEP_VIEWED = 'onboarding_step_viewed',\n ONBOARDING_STEP_COMPLETED = 'onboarding_step_completed',\n COACHMARK_DISMISSED = 'coachmark_dismissed',\n}\n\n/**\n ** Events that need to be tracked at particular plugins\n ** Value will be array of strings.\n */\nexport const PLATFORM_WHITELIST_EVENTS_STUDENT = {\n [PLATFORM_EVENTS_STUDENT.PAGE_VIEWED]: [PLUGINS.MIXPANEL],\n\n // circle on leap mixpanel events\n [PLATFORM_EVENTS_STUDENT.ACTIVITY_STARTED]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.ACTIVITY_TUTORIAL_SEEN]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.STREAK_ICON_CLICKED]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.LEADERBOARD_BUTTON_CLICKED]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.ONBOARDING_STEP_VIEWED]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.ONBOARDING_STEP_COMPLETED]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.COACHMARK_DISMISSED]: [PLUGINS.MIXPANEL],\n};\n"],"names":["PLATFORM_EVENTS_STUDENT","PLATFORM_WHITELIST_EVENTS_STUDENT","PLUGINS"],"mappings":";AAMY,IAAAA,sBAAAA,OACVA,EAAA,cAAc,eACdA,EAAA,wBAAwB,yBAGxBA,EAAA,mBAAmB,oBACnBA,EAAA,yBAAyB,0BACzBA,EAAA,sBAAsB,uBACtBA,EAAA,6BAA6B,8BAC7BA,EAAA,yBAAyB,0BACzBA,EAAA,4BAA4B,6BAC5BA,EAAA,sBAAsB,uBAXZA,IAAAA,KAAA,CAAA,CAAA;AAkBL,MAAMC,IAAoC;AAAA,EAC9C,aAAsC,CAACC,EAAQ,QAAQ;AAAA;AAAA,EAGvD,kBAA2C,CAACA,EAAQ,QAAQ;AAAA,EAC5D,wBAAiD,CAACA,EAAQ,QAAQ;AAAA,EAClE,qBAA8C,CAACA,EAAQ,QAAQ;AAAA,EAC/D,4BAAqD,CAACA,EAAQ,QAAQ;AAAA,EACtE,wBAAiD,CAACA,EAAQ,QAAQ;AAAA,EAClE,2BAAoD,CAACA,EAAQ,QAAQ;AAAA,EACrE,qBAA8C,CAACA,EAAQ,QAAQ;AAClE;"}
@@ -1,26 +1,24 @@
1
- import { GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS as E } from "../circle-games/game-launcher/game-launcher-analytics-events.js";
2
- import { WEBVIEW_ANALYTICS_WHITELIST_EVENTS as T } from "../circle-games/games/web-view/web-view-analytics-events.js";
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 { RESOURCE_ASSIGN_ANALYTICS_WHITELIST_EVENTS as _ } from "../milestone/milestone-resources/resources-assign/resource-assign-analytics-events.js";
5
- import { TESTS_CREATION_ANALYTICS_WHITELIST_EVENTS as I } from "../milestone/milestone-tests/tests-creation/tests-creation-analytics-events.js";
6
- import { SHEETS_ANALYTICS_WHITELIST_EVENTS as A } from "../sheets/sheets-analytics-events.js";
7
- import { USE_AUTO_PLAY_PERMISSION_ANALYTICS_WHITELIST_EVENTS as L } from "../hooks/use-auto-play-permission/use-auto-play-permission-analytics-events.js";
8
- import { PLATFORM_WHITELIST_EVENTS_STUDENT as N } from "./platform-events-student.js";
9
- import { PLATFORM_WHITELIST_EVENTS_TEACHER as o } from "./platform-events-teacher.js";
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
- ...E,
14
+ ...T,
16
15
  ...S,
16
+ ...E,
17
17
  ..._,
18
- ...A,
19
18
  ...I,
20
- ...L,
21
- ...T
19
+ ...A
22
20
  };
23
21
  export {
24
- f as WHITELIST_EVENTS
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 { RESOURCE_ASSIGN_ANALYTICS_WHITELIST_EVENTS } from '../milestone/milestone-resources/resources-assign/resource-assign-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 ...RESOURCE_ASSIGN_ANALYTICS_WHITELIST_EVENTS,\n ...SHEETS_ANALYTICS_WHITELIST_EVENTS,\n ...TESTS_CREATION_ANALYTICS_WHITELIST_EVENTS,\n ...USE_AUTO_PLAY_PERMISSION_ANALYTICS_WHITELIST_EVENTS,\n ...WEBVIEW_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","RESOURCE_ASSIGN_ANALYTICS_WHITELIST_EVENTS","SHEETS_ANALYTICS_WHITELIST_EVENTS","TESTS_CREATION_ANALYTICS_WHITELIST_EVENTS","USE_AUTO_PLAY_PERMISSION_ANALYTICS_WHITELIST_EVENTS","WEBVIEW_ANALYTICS_WHITELIST_EVENTS"],"mappings":";;;;;;;;;AAeA,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;AAAA,EACH,GAAGC;AACL;"}
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;"}
@@ -0,0 +1,5 @@
1
+ var r = /* @__PURE__ */ ((e) => (e.STREAK_DECREASED = "streak_decreased", e))(r || {});
2
+ export {
3
+ r as CIRCLE_ACTION_IDS
4
+ };
5
+ //# sourceMappingURL=circle-action-ids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circle-action-ids.js","sources":["../../../../src/features/circle-games/enum/circle-action-ids.ts"],"sourcesContent":["export enum CIRCLE_ACTION_IDS {\n STREAK_DECREASED = 'streak_decreased',\n}\n"],"names":["CIRCLE_ACTION_IDS"],"mappings":"AAAY,IAAAA,sBAAAA,OACVA,EAAA,mBAAmB,oBADTA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -1,27 +1,32 @@
1
- import { useState as E, useCallback as d, useEffect as p } from "react";
2
- import { useGetCircleHomeAPI as C } from "../../api/get-content-for-today/get-circle-home-api.js";
1
+ import { useState as d, useCallback as R, useEffect as E } from "react";
2
+ import { useGetCircleHomeAPI as p } from "../../api/get-content-for-today/get-circle-home-api.js";
3
3
  import { ProjectType as i } from "../../../games/web-view/enums/project-type-enum.js";
4
- const O = (r, o, n) => {
5
- const [c, _] = E(null), { data: a, get: m, isProcessed: e, ...l } = C(), R = d(() => {
6
- m("", {
7
- user_id: r,
8
- country_code: o,
9
- grade: n
10
- });
11
- }, [m, r, o, n]);
12
- return p(() => {
13
- let s = null;
14
- e && a && (s = {
15
- points: a.points,
16
- streakDays: a.streak_days,
17
- streakStatus: a.streak_status,
18
- tournamentRank: a.tournament_rank,
4
+ const T = (r, o) => {
5
+ const [c, m] = d(null), { data: e, get: n, isProcessed: s, ..._ } = p(), l = R(
6
+ (a) => {
7
+ n("", {
8
+ user_id: r,
9
+ country_code: a,
10
+ grade: o
11
+ });
12
+ },
13
+ [n, r, o]
14
+ );
15
+ return E(() => {
16
+ let a = null;
17
+ s && e && (a = {
18
+ points: e.points,
19
+ streakDays: e.streak_days,
20
+ streakReduction: e.streak_reduction,
21
+ streakDaysBeforeReduction: e.streak_days_before_reduction,
22
+ streakStatus: e.streak_status,
23
+ tournamentRank: e.tournament_rank,
19
24
  projects: {
20
25
  games: {
21
- label: a.projects.games.label,
26
+ label: e.projects.games.label,
22
27
  type: i.GAME,
23
28
  initialProgressValue: 0,
24
- data: a.projects.games.data.map((t) => ({
29
+ data: e.projects.games.data.map((t) => ({
25
30
  id: t.id,
26
31
  name: t.name,
27
32
  cardLottie: t.card,
@@ -31,10 +36,10 @@ const O = (r, o, n) => {
31
36
  }))
32
37
  },
33
38
  puzzles: {
34
- label: a.projects.puzzles.label,
39
+ label: e.projects.puzzles.label,
35
40
  type: i.PUZZLE,
36
41
  initialProgressValue: 0,
37
- data: a.projects.puzzles.data.map((t) => ({
42
+ data: e.projects.puzzles.data.map((t) => ({
38
43
  id: t.id,
39
44
  name: t.name,
40
45
  cardLottie: t.card,
@@ -47,22 +52,22 @@ const O = (r, o, n) => {
47
52
  }
48
53
  },
49
54
  timestamps: {
50
- startTimestamp: a.timestamps.start_timestamp,
51
- endTimestamp: a.timestamps.end_timestamp,
52
- current: a.timestamps.current
55
+ startTimestamp: e.timestamps.start_timestamp,
56
+ endTimestamp: e.timestamps.end_timestamp,
57
+ current: e.timestamps.current
53
58
  },
54
59
  coachmarkProgress: {
55
- CIRCLE_ACTIVITIES_INTRO_JOURNEY: a.coachmark_completion.CIRCLE_ACTIVITIES_INTRO_JOURNEY,
56
- CIRCLE_LEADERBOARD_INTRO_JOURNEY: a.coachmark_completion.CIRCLE_LEADERBOARD_INTRO_JOURNEY,
57
- CIRCLE_POINTS_REWARD_JOURNEY: a.coachmark_completion.CIRCLE_POINTS_REWARD_JOURNEY,
58
- CIRCLE_STREAK_UPDATE_JOURNEY: a.coachmark_completion.CIRCLE_STREAK_UPDATE_JOURNEY,
59
- CIRCLE_TUTORIAL_JOURNEY: a.coachmark_completion.CIRCLE_TUTORIAL_JOURNEY
60
+ CIRCLE_ACTIVITIES_INTRO_JOURNEY: e.coachmark_completion.CIRCLE_ACTIVITIES_INTRO_JOURNEY,
61
+ CIRCLE_LEADERBOARD_INTRO_JOURNEY: e.coachmark_completion.CIRCLE_LEADERBOARD_INTRO_JOURNEY,
62
+ CIRCLE_POINTS_REWARD_JOURNEY: e.coachmark_completion.CIRCLE_POINTS_REWARD_JOURNEY,
63
+ CIRCLE_STREAK_UPDATE_JOURNEY: e.coachmark_completion.CIRCLE_STREAK_UPDATE_JOURNEY,
64
+ CIRCLE_TUTORIAL_JOURNEY: e.coachmark_completion.CIRCLE_TUTORIAL_JOURNEY
60
65
  }
61
- }, a.projects.lessons && (s.projects.lessons = {
62
- label: a.projects.lessons.label,
66
+ }, e.projects.lessons && (a.projects.lessons = {
67
+ label: e.projects.lessons.label,
63
68
  type: i.LESSON,
64
69
  initialProgressValue: 0,
65
- data: a.projects.lessons.data.map((t) => ({
70
+ data: e.projects.lessons.data.map((t) => ({
66
71
  id: t.id,
67
72
  name: t.name,
68
73
  cardLottie: t.card,
@@ -73,10 +78,10 @@ const O = (r, o, n) => {
73
78
  targetQuestions: t.target_questions,
74
79
  status: t.status
75
80
  }))
76
- })), _(s);
77
- }, [a, e]), { data: c, isProcessed: e, getCircleHomeDetails: R, ...l };
81
+ })), m(a);
82
+ }, [e, s]), { data: c, isProcessed: s, getCircleHomeDetails: l, ..._ };
78
83
  };
79
84
  export {
80
- O as useGetCircleHomeDetailsDal
85
+ T as useGetCircleHomeDetailsDal
81
86
  };
82
87
  //# sourceMappingURL=use-get-circle-home-details-dal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-get-circle-home-details-dal.js","sources":["../../../../../../src/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.ts"],"sourcesContent":["import type { ICircleHomeDetails, TStreakStatus } from './use-get-circle-home-dal-types';\n\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { ProjectType } from '../../../games/web-view/enums';\nimport { useGetCircleHomeAPI } from '../../api/get-content-for-today/get-circle-home-api';\n\nexport const useGetCircleHomeDetailsDal = (\n userId: string,\n countryCode: string,\n grade: string,\n): Omit<ReturnType<typeof useGetCircleHomeAPI>, 'data' | 'get'> & {\n data: ICircleHomeDetails | null;\n getCircleHomeDetails: () => void;\n} => {\n const [contentForToday, setContentForToday] = useState<ICircleHomeDetails | null>(null);\n const { data, get: getHomeDetails, isProcessed, ...rest } = useGetCircleHomeAPI();\n\n const getCircleHomeDetails = useCallback(() => {\n getHomeDetails('', {\n user_id: userId,\n country_code: countryCode,\n grade: grade,\n });\n }, [getHomeDetails, userId, countryCode, grade]);\n\n useEffect(() => {\n let circleHomeDetails: ICircleHomeDetails | null = null;\n\n if (isProcessed && data) {\n circleHomeDetails = {\n points: data.points,\n streakDays: data.streak_days,\n streakStatus: data.streak_status as TStreakStatus,\n tournamentRank: data.tournament_rank,\n projects: {\n games: {\n label: data.projects.games.label,\n type: ProjectType.GAME,\n initialProgressValue: 0,\n data: data.projects.games.data.map(game => ({\n id: game.id,\n name: game.name,\n cardLottie: game.card,\n tutorial: game.tutorial,\n variant: game.variant,\n isPlayed: game.played,\n })),\n },\n puzzles: {\n label: data.projects.puzzles.label,\n type: ProjectType.PUZZLE,\n initialProgressValue: 0,\n data: data.projects.puzzles.data.map(puzzle => ({\n id: puzzle.id,\n name: puzzle.name,\n cardLottie: puzzle.card,\n tutorial: puzzle.tutorial,\n variant: puzzle.variant,\n question: puzzle.question,\n isHintSeen: puzzle.is_hint_seen,\n solved: puzzle.solved,\n })),\n },\n },\n timestamps: {\n startTimestamp: data.timestamps.start_timestamp,\n endTimestamp: data.timestamps.end_timestamp,\n current: data.timestamps.current,\n },\n coachmarkProgress: {\n CIRCLE_ACTIVITIES_INTRO_JOURNEY:\n data.coachmark_completion.CIRCLE_ACTIVITIES_INTRO_JOURNEY,\n CIRCLE_LEADERBOARD_INTRO_JOURNEY:\n data.coachmark_completion.CIRCLE_LEADERBOARD_INTRO_JOURNEY,\n CIRCLE_POINTS_REWARD_JOURNEY: data.coachmark_completion.CIRCLE_POINTS_REWARD_JOURNEY,\n CIRCLE_STREAK_UPDATE_JOURNEY: data.coachmark_completion.CIRCLE_STREAK_UPDATE_JOURNEY,\n CIRCLE_TUTORIAL_JOURNEY: data.coachmark_completion.CIRCLE_TUTORIAL_JOURNEY,\n },\n };\n\n if (data.projects.lessons) {\n circleHomeDetails.projects.lessons = {\n label: data.projects.lessons.label,\n type: ProjectType.LESSON,\n initialProgressValue: 0,\n data: data.projects.lessons.data.map(lesson => ({\n id: lesson.id,\n name: lesson.name,\n cardLottie: lesson.card,\n tutorial: lesson.tutorial,\n variant: lesson.variant,\n sessionId: lesson.session_id,\n miniGameIdentifier: lesson.mini_game_identifier,\n targetQuestions: lesson.target_questions,\n status: lesson.status,\n })),\n };\n }\n }\n setContentForToday(circleHomeDetails);\n }, [data, isProcessed]);\n\n return { data: contentForToday, isProcessed, getCircleHomeDetails, ...rest };\n};\n"],"names":["useGetCircleHomeDetailsDal","userId","countryCode","grade","contentForToday","setContentForToday","useState","data","getHomeDetails","isProcessed","rest","useGetCircleHomeAPI","getCircleHomeDetails","useCallback","useEffect","circleHomeDetails","ProjectType","game","puzzle","lesson"],"mappings":";;;AAOO,MAAMA,IAA6B,CACxCC,GACAC,GACAC,MAIG;AACH,QAAM,CAACC,GAAiBC,CAAkB,IAAIC,EAAoC,IAAI,GAChF,EAAE,MAAAC,GAAM,KAAKC,GAAgB,aAAAC,GAAa,GAAGC,EAAA,IAASC,KAEtDC,IAAuBC,EAAY,MAAM;AAC7C,IAAAL,EAAe,IAAI;AAAA,MACjB,SAASP;AAAA,MACT,cAAcC;AAAA,MACd,OAAAC;AAAA,IAAA,CACD;AAAA,KACA,CAACK,GAAgBP,GAAQC,GAAaC,CAAK,CAAC;AAE/C,SAAAW,EAAU,MAAM;AACd,QAAIC,IAA+C;AAEnD,IAAIN,KAAeF,MACGQ,IAAA;AAAA,MAClB,QAAQR,EAAK;AAAA,MACb,YAAYA,EAAK;AAAA,MACjB,cAAcA,EAAK;AAAA,MACnB,gBAAgBA,EAAK;AAAA,MACrB,UAAU;AAAA,QACR,OAAO;AAAA,UACL,OAAOA,EAAK,SAAS,MAAM;AAAA,UAC3B,MAAMS,EAAY;AAAA,UAClB,sBAAsB;AAAA,UACtB,MAAMT,EAAK,SAAS,MAAM,KAAK,IAAI,CAASU,OAAA;AAAA,YAC1C,IAAIA,EAAK;AAAA,YACT,MAAMA,EAAK;AAAA,YACX,YAAYA,EAAK;AAAA,YACjB,UAAUA,EAAK;AAAA,YACf,SAASA,EAAK;AAAA,YACd,UAAUA,EAAK;AAAA,UAAA,EACf;AAAA,QACJ;AAAA,QACA,SAAS;AAAA,UACP,OAAOV,EAAK,SAAS,QAAQ;AAAA,UAC7B,MAAMS,EAAY;AAAA,UAClB,sBAAsB;AAAA,UACtB,MAAMT,EAAK,SAAS,QAAQ,KAAK,IAAI,CAAWW,OAAA;AAAA,YAC9C,IAAIA,EAAO;AAAA,YACX,MAAMA,EAAO;AAAA,YACb,YAAYA,EAAO;AAAA,YACnB,UAAUA,EAAO;AAAA,YACjB,SAASA,EAAO;AAAA,YAChB,UAAUA,EAAO;AAAA,YACjB,YAAYA,EAAO;AAAA,YACnB,QAAQA,EAAO;AAAA,UAAA,EACf;AAAA,QACJ;AAAA,MACF;AAAA,MACA,YAAY;AAAA,QACV,gBAAgBX,EAAK,WAAW;AAAA,QAChC,cAAcA,EAAK,WAAW;AAAA,QAC9B,SAASA,EAAK,WAAW;AAAA,MAC3B;AAAA,MACA,mBAAmB;AAAA,QACjB,iCACEA,EAAK,qBAAqB;AAAA,QAC5B,kCACEA,EAAK,qBAAqB;AAAA,QAC5B,8BAA8BA,EAAK,qBAAqB;AAAA,QACxD,8BAA8BA,EAAK,qBAAqB;AAAA,QACxD,yBAAyBA,EAAK,qBAAqB;AAAA,MACrD;AAAA,IAAA,GAGEA,EAAK,SAAS,YAChBQ,EAAkB,SAAS,UAAU;AAAA,MACnC,OAAOR,EAAK,SAAS,QAAQ;AAAA,MAC7B,MAAMS,EAAY;AAAA,MAClB,sBAAsB;AAAA,MACtB,MAAMT,EAAK,SAAS,QAAQ,KAAK,IAAI,CAAWY,OAAA;AAAA,QAC9C,IAAIA,EAAO;AAAA,QACX,MAAMA,EAAO;AAAA,QACb,YAAYA,EAAO;AAAA,QACnB,UAAUA,EAAO;AAAA,QACjB,SAASA,EAAO;AAAA,QAChB,WAAWA,EAAO;AAAA,QAClB,oBAAoBA,EAAO;AAAA,QAC3B,iBAAiBA,EAAO;AAAA,QACxB,QAAQA,EAAO;AAAA,MAAA,EACf;AAAA,IAAA,KAIRd,EAAmBU,CAAiB;AAAA,EAAA,GACnC,CAACR,GAAME,CAAW,CAAC,GAEf,EAAE,MAAML,GAAiB,aAAAK,GAAa,sBAAAG,GAAsB,GAAGF;AACxE;"}
1
+ {"version":3,"file":"use-get-circle-home-details-dal.js","sources":["../../../../../../src/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.ts"],"sourcesContent":["import type { ICircleHomeDetails, TStreakStatus } from './use-get-circle-home-dal-types';\n\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { ProjectType } from '../../../games/web-view/enums';\nimport { useGetCircleHomeAPI } from '../../api/get-content-for-today/get-circle-home-api';\n\nexport const useGetCircleHomeDetailsDal = (\n userId: string,\n grade: string,\n): Omit<ReturnType<typeof useGetCircleHomeAPI>, 'data' | 'get'> & {\n data: ICircleHomeDetails | null;\n getCircleHomeDetails: (countryCode: string) => void;\n} => {\n const [contentForToday, setContentForToday] = useState<ICircleHomeDetails | null>(null);\n const { data, get: getHomeDetails, isProcessed, ...rest } = useGetCircleHomeAPI();\n\n const getCircleHomeDetails = useCallback(\n (countryCode: string) => {\n getHomeDetails('', {\n user_id: userId,\n country_code: countryCode,\n grade: grade,\n });\n },\n [getHomeDetails, userId, grade],\n );\n\n useEffect(() => {\n let circleHomeDetails: ICircleHomeDetails | null = null;\n\n if (isProcessed && data) {\n circleHomeDetails = {\n points: data.points,\n streakDays: data.streak_days,\n streakReduction: data.streak_reduction,\n streakDaysBeforeReduction: data.streak_days_before_reduction,\n streakStatus: data.streak_status as TStreakStatus,\n tournamentRank: data.tournament_rank,\n projects: {\n games: {\n label: data.projects.games.label,\n type: ProjectType.GAME,\n initialProgressValue: 0,\n data: data.projects.games.data.map(game => ({\n id: game.id,\n name: game.name,\n cardLottie: game.card,\n tutorial: game.tutorial,\n variant: game.variant,\n isPlayed: game.played,\n })),\n },\n puzzles: {\n label: data.projects.puzzles.label,\n type: ProjectType.PUZZLE,\n initialProgressValue: 0,\n data: data.projects.puzzles.data.map(puzzle => ({\n id: puzzle.id,\n name: puzzle.name,\n cardLottie: puzzle.card,\n tutorial: puzzle.tutorial,\n variant: puzzle.variant,\n question: puzzle.question,\n isHintSeen: puzzle.is_hint_seen,\n solved: puzzle.solved,\n })),\n },\n },\n timestamps: {\n startTimestamp: data.timestamps.start_timestamp,\n endTimestamp: data.timestamps.end_timestamp,\n current: data.timestamps.current,\n },\n coachmarkProgress: {\n CIRCLE_ACTIVITIES_INTRO_JOURNEY:\n data.coachmark_completion.CIRCLE_ACTIVITIES_INTRO_JOURNEY,\n CIRCLE_LEADERBOARD_INTRO_JOURNEY:\n data.coachmark_completion.CIRCLE_LEADERBOARD_INTRO_JOURNEY,\n CIRCLE_POINTS_REWARD_JOURNEY: data.coachmark_completion.CIRCLE_POINTS_REWARD_JOURNEY,\n CIRCLE_STREAK_UPDATE_JOURNEY: data.coachmark_completion.CIRCLE_STREAK_UPDATE_JOURNEY,\n CIRCLE_TUTORIAL_JOURNEY: data.coachmark_completion.CIRCLE_TUTORIAL_JOURNEY,\n },\n };\n\n if (data.projects.lessons) {\n circleHomeDetails.projects.lessons = {\n label: data.projects.lessons.label,\n type: ProjectType.LESSON,\n initialProgressValue: 0,\n data: data.projects.lessons.data.map(lesson => ({\n id: lesson.id,\n name: lesson.name,\n cardLottie: lesson.card,\n tutorial: lesson.tutorial,\n variant: lesson.variant,\n sessionId: lesson.session_id,\n miniGameIdentifier: lesson.mini_game_identifier,\n targetQuestions: lesson.target_questions,\n status: lesson.status,\n })),\n };\n }\n }\n setContentForToday(circleHomeDetails);\n }, [data, isProcessed]);\n\n return { data: contentForToday, isProcessed, getCircleHomeDetails, ...rest };\n};\n"],"names":["useGetCircleHomeDetailsDal","userId","grade","contentForToday","setContentForToday","useState","data","getHomeDetails","isProcessed","rest","useGetCircleHomeAPI","getCircleHomeDetails","useCallback","countryCode","useEffect","circleHomeDetails","ProjectType","game","puzzle","lesson"],"mappings":";;;AAOa,MAAAA,IAA6B,CACxCC,GACAC,MAIG;AACH,QAAM,CAACC,GAAiBC,CAAkB,IAAIC,EAAoC,IAAI,GAChF,EAAE,MAAAC,GAAM,KAAKC,GAAgB,aAAAC,GAAa,GAAGC,EAAA,IAASC,KAEtDC,IAAuBC;AAAA,IAC3B,CAACC,MAAwB;AACvB,MAAAN,EAAe,IAAI;AAAA,QACjB,SAASN;AAAA,QACT,cAAcY;AAAA,QACd,OAAAX;AAAA,MAAA,CACD;AAAA,IACH;AAAA,IACA,CAACK,GAAgBN,GAAQC,CAAK;AAAA,EAAA;AAGhC,SAAAY,EAAU,MAAM;AACd,QAAIC,IAA+C;AAEnD,IAAIP,KAAeF,MACGS,IAAA;AAAA,MAClB,QAAQT,EAAK;AAAA,MACb,YAAYA,EAAK;AAAA,MACjB,iBAAiBA,EAAK;AAAA,MACtB,2BAA2BA,EAAK;AAAA,MAChC,cAAcA,EAAK;AAAA,MACnB,gBAAgBA,EAAK;AAAA,MACrB,UAAU;AAAA,QACR,OAAO;AAAA,UACL,OAAOA,EAAK,SAAS,MAAM;AAAA,UAC3B,MAAMU,EAAY;AAAA,UAClB,sBAAsB;AAAA,UACtB,MAAMV,EAAK,SAAS,MAAM,KAAK,IAAI,CAASW,OAAA;AAAA,YAC1C,IAAIA,EAAK;AAAA,YACT,MAAMA,EAAK;AAAA,YACX,YAAYA,EAAK;AAAA,YACjB,UAAUA,EAAK;AAAA,YACf,SAASA,EAAK;AAAA,YACd,UAAUA,EAAK;AAAA,UAAA,EACf;AAAA,QACJ;AAAA,QACA,SAAS;AAAA,UACP,OAAOX,EAAK,SAAS,QAAQ;AAAA,UAC7B,MAAMU,EAAY;AAAA,UAClB,sBAAsB;AAAA,UACtB,MAAMV,EAAK,SAAS,QAAQ,KAAK,IAAI,CAAWY,OAAA;AAAA,YAC9C,IAAIA,EAAO;AAAA,YACX,MAAMA,EAAO;AAAA,YACb,YAAYA,EAAO;AAAA,YACnB,UAAUA,EAAO;AAAA,YACjB,SAASA,EAAO;AAAA,YAChB,UAAUA,EAAO;AAAA,YACjB,YAAYA,EAAO;AAAA,YACnB,QAAQA,EAAO;AAAA,UAAA,EACf;AAAA,QACJ;AAAA,MACF;AAAA,MACA,YAAY;AAAA,QACV,gBAAgBZ,EAAK,WAAW;AAAA,QAChC,cAAcA,EAAK,WAAW;AAAA,QAC9B,SAASA,EAAK,WAAW;AAAA,MAC3B;AAAA,MACA,mBAAmB;AAAA,QACjB,iCACEA,EAAK,qBAAqB;AAAA,QAC5B,kCACEA,EAAK,qBAAqB;AAAA,QAC5B,8BAA8BA,EAAK,qBAAqB;AAAA,QACxD,8BAA8BA,EAAK,qBAAqB;AAAA,QACxD,yBAAyBA,EAAK,qBAAqB;AAAA,MACrD;AAAA,IAAA,GAGEA,EAAK,SAAS,YAChBS,EAAkB,SAAS,UAAU;AAAA,MACnC,OAAOT,EAAK,SAAS,QAAQ;AAAA,MAC7B,MAAMU,EAAY;AAAA,MAClB,sBAAsB;AAAA,MACtB,MAAMV,EAAK,SAAS,QAAQ,KAAK,IAAI,CAAWa,OAAA;AAAA,QAC9C,IAAIA,EAAO;AAAA,QACX,MAAMA,EAAO;AAAA,QACb,YAAYA,EAAO;AAAA,QACnB,UAAUA,EAAO;AAAA,QACjB,SAASA,EAAO;AAAA,QAChB,WAAWA,EAAO;AAAA,QAClB,oBAAoBA,EAAO;AAAA,QAC3B,iBAAiBA,EAAO;AAAA,QACxB,QAAQA,EAAO;AAAA,MAAA,EACf;AAAA,IAAA,KAIRf,EAAmBW,CAAiB;AAAA,EAAA,GACnC,CAACT,GAAME,CAAW,CAAC,GAEf,EAAE,MAAML,GAAiB,aAAAK,GAAa,sBAAAG,GAAsB,GAAGF;AACxE;"}
@@ -1 +1 @@
1
- {"version":3,"file":"web-view-types.js","sources":["../../../../../src/features/circle-games/games/web-view/web-view-types.ts"],"sourcesContent":["import type { IAvatarLayer } from '../../../ui/avatar/avatar-types';\nimport type { TUserTypes } from '../../../ui/types';\nimport type {\n GameId,\n PuzzleId,\n LessonId,\n MiniGameId,\n WebViewEvent,\n ProjectOutcome,\n ProjectType,\n} from './enums';\nimport type { WEBVIEW_ANALYTICS_EVENTS } from './web-view-analytics-events';\nimport type { IframeHTMLAttributes } from 'react';\n\nexport type TProject = GameId | PuzzleId | LessonId;\n\nexport interface IPlayer {\n id: string;\n username: string;\n grade?: string;\n avatar?: IAvatarLayer[] | null;\n playerType: TUserTypes;\n}\n\ninterface IBaseWebGameProps<T> {\n projectId: T;\n variant: string;\n projectType: ProjectType;\n joinByRoomId?: string;\n enableSync?: boolean; // applicable for all except multiplayer games\n enablePlayerTurnIndicators?: boolean;\n enableCloseButton?: boolean;\n}\n\nexport interface IMultiplayerWebGameProps extends IBaseWebGameProps<GameId> {}\n\nexport interface IPuzzleWebGameProps extends IBaseWebGameProps<PuzzleId> {\n question: string;\n askHintPermission?: boolean;\n}\n\nexport interface ILessonWebGameProps extends IBaseWebGameProps<LessonId> {\n miniGameIdentifier: MiniGameId;\n sessionId: string;\n targetQuestions: number;\n}\n\nexport interface IVibrationPattern {\n pattern: number[] | number;\n}\n\nexport enum IStatsToAwardErrorCode {\n DEFAULT = 'default',\n SUCCESS = 'success',\n FAIL = 'fail',\n}\n\nexport interface IPlayerStats {\n points: number;\n accuracy: number;\n timeSpent: number;\n streakDays: number;\n streakStatusToday: 'pending' | 'completed';\n errorCode: IStatsToAwardErrorCode;\n outcome: ProjectOutcome;\n value: string;\n}\n\nexport interface IInfoMessage {\n message: string;\n position: 'top' | 'bottom';\n}\n\nexport interface ITrackEvent {\n eventName: typeof WEBVIEW_ANALYTICS_EVENTS;\n properties: Record<string, unknown>;\n}\n\nexport interface IWebViewProps extends IframeHTMLAttributes<HTMLIFrameElement> {\n baseUrl: string;\n parentDomain: string;\n projectDetails: IMultiplayerWebGameProps | IPuzzleWebGameProps | ILessonWebGameProps;\n playerDetails: IPlayer;\n onBack?: () => void;\n onGameLoad?: () => void;\n onGamePlayFinish?: (playerStats: IPlayerStats) => void;\n handleInfoMessage?: (infoMessage: IInfoMessage) => void;\n}\n\nexport interface IMessageProps {\n event: `${WebViewEvent}`;\n payload: IVibrationPattern | IPlayerStats | IInfoMessage | null;\n}\n"],"names":["IStatsToAwardErrorCode"],"mappings":"AAmDY,IAAAA,sBAAAA,OACVA,EAAA,UAAU,WACVA,EAAA,UAAU,WACVA,EAAA,OAAO,QAHGA,IAAAA,KAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"web-view-types.js","sources":["../../../../../src/features/circle-games/games/web-view/web-view-types.ts"],"sourcesContent":["import type { IAvatarLayer } from '../../../ui/avatar/avatar-types';\nimport type { TUserTypes } from '../../../ui/types';\nimport type {\n GameId,\n PuzzleId,\n LessonId,\n MiniGameId,\n WebViewEvent,\n ProjectOutcome,\n ProjectType,\n} from './enums';\nimport type { WEBVIEW_ANALYTICS_EVENTS } from './web-view-analytics-events';\nimport type { IframeHTMLAttributes } from 'react';\n\nexport type TProject = GameId | PuzzleId | LessonId;\n\nexport interface IPlayer {\n id: string;\n username: string;\n grade?: string;\n avatar?: IAvatarLayer[] | null;\n playerType: TUserTypes;\n countryCode: string;\n}\n\ninterface IBaseWebGameProps<T> {\n projectId: T;\n variant: string;\n projectType: ProjectType;\n joinByRoomId?: string;\n enableSync?: boolean; // applicable for all except multiplayer games\n enablePlayerTurnIndicators?: boolean;\n enableCloseButton?: boolean;\n}\n\nexport interface IMultiplayerWebGameProps extends IBaseWebGameProps<GameId> {}\n\nexport interface IPuzzleWebGameProps extends IBaseWebGameProps<PuzzleId> {\n question: string;\n askHintPermission?: boolean;\n}\n\nexport interface ILessonWebGameProps extends IBaseWebGameProps<LessonId> {\n miniGameIdentifier: MiniGameId;\n sessionId: string;\n targetQuestions: number;\n}\n\nexport interface IVibrationPattern {\n pattern: number[] | number;\n}\n\nexport enum IStatsToAwardErrorCode {\n DEFAULT = 'default',\n SUCCESS = 'success',\n FAIL = 'fail',\n}\n\nexport interface IPlayerStats {\n points: number;\n accuracy: number;\n timeSpent: number;\n streakDays: number;\n streakStatusToday: 'pending' | 'completed';\n errorCode: IStatsToAwardErrorCode;\n outcome: ProjectOutcome;\n value: string;\n}\n\nexport interface IInfoMessage {\n message: string;\n position: 'top' | 'bottom';\n}\n\nexport interface ITrackEvent {\n eventName: typeof WEBVIEW_ANALYTICS_EVENTS;\n properties: Record<string, unknown>;\n}\n\nexport interface IWebViewProps extends IframeHTMLAttributes<HTMLIFrameElement> {\n baseUrl: string;\n parentDomain: string;\n projectDetails: IMultiplayerWebGameProps | IPuzzleWebGameProps | ILessonWebGameProps;\n playerDetails: IPlayer;\n onBack?: () => void;\n onGameLoad?: () => void;\n onGamePlayFinish?: (playerStats: IPlayerStats) => void;\n handleInfoMessage?: (infoMessage: IInfoMessage) => void;\n}\n\nexport interface IMessageProps {\n event: `${WebViewEvent}`;\n payload: IVibrationPattern | IPlayerStats | IInfoMessage | null;\n}\n"],"names":["IStatsToAwardErrorCode"],"mappings":"AAoDY,IAAAA,sBAAAA,OACVA,EAAA,UAAU,WACVA,EAAA,UAAU,WACVA,EAAA,OAAO,QAHGA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -0,0 +1,12 @@
1
+ import r from "styled-components";
2
+ import o from "../../../../ui/layout/flex-view.js";
3
+ const d = r(o)`
4
+ padding: 16px;
5
+ margin: 16px;
6
+ border-width: 1px;
7
+ border-style: solid;
8
+ `;
9
+ export {
10
+ d as InfoBarWrapper
11
+ };
12
+ //# sourceMappingURL=info-bar-styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info-bar-styled.js","sources":["../../../../../../src/features/circle-games/leaderboard/comps/info-bar/info-bar-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../../ui/layout/flex-view';\n\nexport const InfoBarWrapper = styled(FlexView)`\n padding: 16px;\n margin: 16px;\n border-width: 1px;\n border-style: solid;\n`;\n"],"names":["InfoBarWrapper","styled","FlexView"],"mappings":";;AAIa,MAAAA,IAAiBC,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -0,0 +1,11 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { useMemo as m } from "react";
3
+ import { InfoBarWrapper as c } from "./info-bar-styled.js";
4
+ const p = (o) => ({ backgroundColor: `${o}_6`, borderColor: `${o}_4` }), l = ({ children: o, hue: r }) => {
5
+ const { backgroundColor: n, borderColor: t } = m(() => p(r), [r]);
6
+ return /* @__PURE__ */ e(c, { $background: n, $borderColor: t, children: o });
7
+ };
8
+ export {
9
+ l as InfoBar
10
+ };
11
+ //# sourceMappingURL=info-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info-bar.js","sources":["../../../../../../src/features/circle-games/leaderboard/comps/info-bar/info-bar.tsx"],"sourcesContent":["import type { TColorNames, THueNames } from '../../../../ui/types';\nimport type { IInfoBarProps } from './info-bar-types';\n\nimport { useMemo } from 'react';\n\nimport * as Styled from './info-bar-styled';\n\nconst computeColorsFromHue = (\n hue: THueNames,\n): { backgroundColor: TColorNames; borderColor: TColorNames } => {\n return { backgroundColor: `${hue}_6`, borderColor: `${hue}_4` };\n};\n\nexport const InfoBar: React.FC<IInfoBarProps> = ({ children, hue }) => {\n const { backgroundColor, borderColor } = useMemo(() => computeColorsFromHue(hue), [hue]);\n\n return (\n <Styled.InfoBarWrapper $background={backgroundColor} $borderColor={borderColor}>\n {children}\n </Styled.InfoBarWrapper>\n );\n};\n"],"names":["computeColorsFromHue","hue","InfoBar","children","backgroundColor","borderColor","useMemo","jsx","Styled.InfoBarWrapper"],"mappings":";;;AAOA,MAAMA,IAAuB,CAC3BC,OAEO,EAAE,iBAAiB,GAAGA,CAAG,MAAM,aAAa,GAAGA,CAAG,SAG9CC,IAAmC,CAAC,EAAE,UAAAC,GAAU,KAAAF,QAAU;AAC/D,QAAA,EAAE,iBAAAG,GAAiB,aAAAC,EAAA,IAAgBC,EAAQ,MAAMN,EAAqBC,CAAG,GAAG,CAACA,CAAG,CAAC;AAGrF,SAAA,gBAAAM,EAACC,GAAA,EAAsB,aAAaJ,GAAiB,cAAcC,GAChE,UAAAF,EACH,CAAA;AAEJ;"}
@@ -1,16 +1,16 @@
1
1
  import { jsx as s } from "react/jsx-runtime";
2
2
  import { memo as f } from "react";
3
3
  import { ELeaderboardType as t } from "../../enums/leaderboard-type-enum.js";
4
- import { PlayerProgressListItem as u } from "../progress-list-item/progress-list-item.js";
5
- import { AnimatedItem as E } from "./leaderboard-item-styled.js";
6
- import { useIntersectionObserver as I } from "../../hooks/useIntersectionObserver.js";
4
+ import { useIntersectionObserver as u } from "../../hooks/use-intersection-observer/use-intersection-observer.tsx.js";
5
+ import { PlayerProgressListItem as E } from "../progress-list-item/progress-list-item.js";
6
+ import { AnimatedItem as I } from "./leaderboard-item-styled.js";
7
7
  const h = f(
8
8
  ({ player: e, rank: o, maxStreakDays: m, maxPoints: i, leaderboardType: r, isActive: a }) => {
9
- const { isVisible: n, elementRef: A } = I({
9
+ const { isVisible: n, elementRef: A } = u({
10
10
  threshold: 0.5
11
11
  }), L = r === t.ALL_TIME_STREAK ? m : i, d = r === t.ALL_TIME_STREAK ? e.streakDays : e.points;
12
- return /* @__PURE__ */ s(E, { isVisible: n, ref: A, children: /* @__PURE__ */ s(
13
- u,
12
+ return /* @__PURE__ */ s(I, { isVisible: n, ref: A, children: /* @__PURE__ */ s(
13
+ E,
14
14
  {
15
15
  index: o,
16
16
  maxValue: L,
@@ -1 +1 @@
1
- {"version":3,"file":"leaderboard-item.js","sources":["../../../../../../src/features/circle-games/leaderboard/comps/leaderboard-item/leaderboard-item.tsx"],"sourcesContent":["import type {\n ILeaderboardPlayerWithPoints,\n ILeaderboardPlayerWithStreak,\n} from '../../dal/use-get-leaderboard-dal/use-get-leaderboard-dal-types';\nimport type { ILeaderboardItemProps } from './leaderboard-item-types';\n\nimport React, { memo } from 'react';\n\nimport { ELeaderboardType } from '../../enums/leaderboard-type-enum';\nimport { useIntersectionObserver } from '../../hooks';\nimport { PlayerProgressListItem } from '../progress-list-item/progress-list-item';\nimport * as Styled from './leaderboard-item-styled';\n\nexport const LeaderboardItemWithObserver: React.FC<ILeaderboardItemProps> = memo(\n ({ player, rank, maxStreakDays, maxPoints, leaderboardType, isActive }) => {\n const { isVisible, elementRef } = useIntersectionObserver<HTMLDivElement>({\n threshold: 0.5,\n });\n\n const maxValue =\n leaderboardType === ELeaderboardType.ALL_TIME_STREAK ? maxStreakDays : maxPoints;\n\n const value =\n leaderboardType === ELeaderboardType.ALL_TIME_STREAK\n ? (player as ILeaderboardPlayerWithStreak).streakDays\n : (player as ILeaderboardPlayerWithPoints).points;\n\n return (\n <Styled.AnimatedItem key={player.rank} isVisible={isVisible} ref={elementRef}>\n <PlayerProgressListItem\n index={rank}\n maxValue={maxValue}\n value={value}\n isActive={isActive}\n avatar={player.userAvatar}\n grade={player.grade}\n displayText={player.username}\n displayValueAs={\n leaderboardType === ELeaderboardType.ALL_TIME_STREAK ? 'streak' : 'points'\n }\n />\n </Styled.AnimatedItem>\n );\n },\n);\n"],"names":["LeaderboardItemWithObserver","memo","player","rank","maxStreakDays","maxPoints","leaderboardType","isActive","isVisible","elementRef","useIntersectionObserver","maxValue","ELeaderboardType","value","Styled.AnimatedItem","jsx","PlayerProgressListItem"],"mappings":";;;;;;AAaO,MAAMA,IAA+DC;AAAA,EAC1E,CAAC,EAAE,QAAAC,GAAQ,MAAAC,GAAM,eAAAC,GAAe,WAAAC,GAAW,iBAAAC,GAAiB,UAAAC,QAAe;AACzE,UAAM,EAAE,WAAAC,GAAW,YAAAC,EAAW,IAAIC,EAAwC;AAAA,MACxE,WAAW;AAAA,IAAA,CACZ,GAEKC,IACJL,MAAoBM,EAAiB,kBAAkBR,IAAgBC,GAEnEQ,IACJP,MAAoBM,EAAiB,kBAChCV,EAAwC,aACxCA,EAAwC;AAE/C,6BACGY,GAAA,EAAsC,WAAAN,GAAsB,KAAKC,GAChE,UAAA,gBAAAM;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAOb;AAAA,QACP,UAAAQ;AAAA,QACA,OAAAE;AAAA,QACA,UAAAN;AAAA,QACA,QAAQL,EAAO;AAAA,QACf,OAAOA,EAAO;AAAA,QACd,aAAaA,EAAO;AAAA,QACpB,gBACEI,MAAoBM,EAAiB,kBAAkB,WAAW;AAAA,MAAA;AAAA,IAAA,KAV9CV,EAAO,IAajC;AAAA,EAEJ;AACF;"}
1
+ {"version":3,"file":"leaderboard-item.js","sources":["../../../../../../src/features/circle-games/leaderboard/comps/leaderboard-item/leaderboard-item.tsx"],"sourcesContent":["import type {\n ILeaderboardPlayerWithPoints,\n ILeaderboardPlayerWithStreak,\n} from '../../dal/use-get-leaderboard-dal/use-get-leaderboard-dal-types';\nimport type { ILeaderboardItemProps } from './leaderboard-item-types';\n\nimport React, { memo } from 'react';\n\nimport { ELeaderboardType } from '../../enums/leaderboard-type-enum';\nimport { useIntersectionObserver } from '../../hooks/use-intersection-observer/use-intersection-observer.tsx';\nimport { PlayerProgressListItem } from '../progress-list-item/progress-list-item';\nimport * as Styled from './leaderboard-item-styled';\n\nexport const LeaderboardItemWithObserver: React.FC<ILeaderboardItemProps> = memo(\n ({ player, rank, maxStreakDays, maxPoints, leaderboardType, isActive }) => {\n const { isVisible, elementRef } = useIntersectionObserver<HTMLDivElement>({\n threshold: 0.5,\n });\n\n const maxValue =\n leaderboardType === ELeaderboardType.ALL_TIME_STREAK ? maxStreakDays : maxPoints;\n\n const value =\n leaderboardType === ELeaderboardType.ALL_TIME_STREAK\n ? (player as ILeaderboardPlayerWithStreak).streakDays\n : (player as ILeaderboardPlayerWithPoints).points;\n\n return (\n <Styled.AnimatedItem key={player.rank} isVisible={isVisible} ref={elementRef}>\n <PlayerProgressListItem\n index={rank}\n maxValue={maxValue}\n value={value}\n isActive={isActive}\n avatar={player.userAvatar}\n grade={player.grade}\n displayText={player.username}\n displayValueAs={\n leaderboardType === ELeaderboardType.ALL_TIME_STREAK ? 'streak' : 'points'\n }\n />\n </Styled.AnimatedItem>\n );\n },\n);\n"],"names":["LeaderboardItemWithObserver","memo","player","rank","maxStreakDays","maxPoints","leaderboardType","isActive","isVisible","elementRef","useIntersectionObserver","maxValue","ELeaderboardType","value","Styled.AnimatedItem","jsx","PlayerProgressListItem"],"mappings":";;;;;;AAaO,MAAMA,IAA+DC;AAAA,EAC1E,CAAC,EAAE,QAAAC,GAAQ,MAAAC,GAAM,eAAAC,GAAe,WAAAC,GAAW,iBAAAC,GAAiB,UAAAC,QAAe;AACzE,UAAM,EAAE,WAAAC,GAAW,YAAAC,EAAW,IAAIC,EAAwC;AAAA,MACxE,WAAW;AAAA,IAAA,CACZ,GAEKC,IACJL,MAAoBM,EAAiB,kBAAkBR,IAAgBC,GAEnEQ,IACJP,MAAoBM,EAAiB,kBAChCV,EAAwC,aACxCA,EAAwC;AAE/C,6BACGY,GAAA,EAAsC,WAAAN,GAAsB,KAAKC,GAChE,UAAA,gBAAAM;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAOb;AAAA,QACP,UAAAQ;AAAA,QACA,OAAAE;AAAA,QACA,UAAAN;AAAA,QACA,QAAQL,EAAO;AAAA,QACf,OAAOA,EAAO;AAAA,QACd,aAAaA,EAAO;AAAA,QACpB,gBACEI,MAAoBM,EAAiB,kBAAkB,WAAW;AAAA,MAAA;AAAA,IAAA,KAV9CV,EAAO,IAajC;AAAA,EAEJ;AACF;"}
@@ -0,0 +1,5 @@
1
+ const A = "STREAK_REDUCTION_LEADERBOARD_INFOBAR_TIMESTAMP";
2
+ export {
3
+ A as STREAK_REDUCTION_LEADERBOARD_INFOBAR_TIMESTAMP
4
+ };
5
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../../../../src/features/circle-games/leaderboard/comps/streak-reduction-infobar/constants.ts"],"sourcesContent":["export const STREAK_REDUCTION_LEADERBOARD_INFOBAR_TIMESTAMP =\n 'STREAK_REDUCTION_LEADERBOARD_INFOBAR_TIMESTAMP';\n"],"names":["STREAK_REDUCTION_LEADERBOARD_INFOBAR_TIMESTAMP"],"mappings":"AAAO,MAAMA,IACX;"}
@@ -0,0 +1,50 @@
1
+ import { jsx as r, jsxs as a } from "react/jsx-runtime";
2
+ import { useState as l, useEffect as m, useCallback as I } from "react";
3
+ import k from "../../../../../assets/line-icons/icons/cross.js";
4
+ import d from "../../../../ui/layout/flex-view.js";
5
+ import n from "../../../../ui/text/text.js";
6
+ import { StreakReductionLocalStorageUtil as t } from "../../../utils/streak-reduction-localstorage-util.js";
7
+ import { InfoBar as E } from "../info-bar/info-bar.js";
8
+ import { STREAK_REDUCTION_LEADERBOARD_INFOBAR_TIMESTAMP as c } from "./constants.js";
9
+ const B = ({
10
+ startTimestampToday: e,
11
+ streakReduction: o
12
+ }) => {
13
+ const [f, i] = l(
14
+ t.showStreakReduction(
15
+ c,
16
+ e
17
+ )
18
+ ), [s, u] = l(o > 0);
19
+ m(() => {
20
+ u(o > 0), i(
21
+ t.showStreakReduction(
22
+ c,
23
+ e
24
+ )
25
+ );
26
+ }, [e, o]);
27
+ const h = I(() => {
28
+ t.markStreakReductionDismissed(
29
+ c,
30
+ e
31
+ ), i(!1);
32
+ }, [e]);
33
+ return f ? /* @__PURE__ */ r(
34
+ E,
35
+ {
36
+ children: /* @__PURE__ */ a(d, { $flexDirection: "row", $alignItems: "center", $justifyContent: "space-between", children: [
37
+ s ? /* @__PURE__ */ a(d, { children: [
38
+ /* @__PURE__ */ r(n, { $renderAs: "ab2", $color: "WHITE_T_87", children: "Keep building your streak by completing an activity each day." }),
39
+ /* @__PURE__ */ r(n, { $renderAs: "ab2", $color: "WHITE_T_87", children: "For each day missed, your streak reduces by 1." })
40
+ ] }) : /* @__PURE__ */ r(n, { $renderAs: "ab2", $color: "WHITE_T_87", children: "Streak saved for the day! Come back tomorrow to keep increasing it." }),
41
+ /* @__PURE__ */ r(k, { cursor: "pointer", color: "WHITE", onClick: h })
42
+ ] }),
43
+ hue: s ? "YELLOW" : "GREEN"
44
+ }
45
+ ) : null;
46
+ };
47
+ export {
48
+ B as StreakReductionInfoBar
49
+ };
50
+ //# sourceMappingURL=streak-reduction-infobar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streak-reduction-infobar.js","sources":["../../../../../../src/features/circle-games/leaderboard/comps/streak-reduction-infobar/streak-reduction-infobar.tsx"],"sourcesContent":["import type { IUseStreakReductionLeaderboard } from './streak-reduction-infobar-types';\n\nimport { useCallback, useEffect, useState } from 'react';\n\nimport CrossIcon from '../../../../../assets/line-icons/icons/cross';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport { StreakReductionLocalStorageUtil } from '../../../utils/streak-reduction-localstorage-util';\nimport { InfoBar } from '../info-bar/info-bar';\nimport { STREAK_REDUCTION_LEADERBOARD_INFOBAR_TIMESTAMP } from './constants';\n\nexport const StreakReductionInfoBar = ({\n startTimestampToday,\n streakReduction,\n}: IUseStreakReductionLeaderboard) => {\n const [showInfoBar, setShowInfoBar] = useState(\n StreakReductionLocalStorageUtil.showStreakReduction(\n STREAK_REDUCTION_LEADERBOARD_INFOBAR_TIMESTAMP,\n startTimestampToday,\n ),\n );\n\n const [hasStreakReduced, setHasStreakReduced] = useState(streakReduction > 0);\n\n // On Props Change Rerender\n useEffect(() => {\n setHasStreakReduced(streakReduction > 0);\n setShowInfoBar(\n StreakReductionLocalStorageUtil.showStreakReduction(\n STREAK_REDUCTION_LEADERBOARD_INFOBAR_TIMESTAMP,\n startTimestampToday,\n ),\n );\n }, [startTimestampToday, streakReduction]);\n\n const onInfoBarClose = useCallback(() => {\n StreakReductionLocalStorageUtil.markStreakReductionDismissed(\n STREAK_REDUCTION_LEADERBOARD_INFOBAR_TIMESTAMP,\n startTimestampToday,\n );\n setShowInfoBar(false);\n }, [startTimestampToday]);\n\n if (!showInfoBar) {\n return null;\n }\n\n return (\n <InfoBar\n children={\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"space-between\">\n {hasStreakReduced ? (\n <FlexView>\n <Text $renderAs=\"ab2\" $color=\"WHITE_T_87\">\n Keep building your streak by completing an activity each day.\n </Text>\n <Text $renderAs=\"ab2\" $color=\"WHITE_T_87\">\n For each day missed, your streak reduces by 1.\n </Text>\n </FlexView>\n ) : (\n <Text $renderAs=\"ab2\" $color=\"WHITE_T_87\">\n Streak saved for the day! Come back tomorrow to keep increasing it.\n </Text>\n )}\n <CrossIcon cursor={'pointer'} color=\"WHITE\" onClick={onInfoBarClose} />\n </FlexView>\n }\n hue={hasStreakReduced ? 'YELLOW' : 'GREEN'}\n />\n );\n};\n"],"names":["StreakReductionInfoBar","startTimestampToday","streakReduction","showInfoBar","setShowInfoBar","useState","StreakReductionLocalStorageUtil","STREAK_REDUCTION_LEADERBOARD_INFOBAR_TIMESTAMP","hasStreakReduced","setHasStreakReduced","useEffect","onInfoBarClose","useCallback","jsx","InfoBar","FlexView","Text","CrossIcon"],"mappings":";;;;;;;;AAWO,MAAMA,IAAyB,CAAC;AAAA,EACrC,qBAAAC;AAAA,EACA,iBAAAC;AACF,MAAsC;AAC9B,QAAA,CAACC,GAAaC,CAAc,IAAIC;AAAA,IACpCC,EAAgC;AAAA,MAC9BC;AAAA,MACAN;AAAA,IACF;AAAA,EAAA,GAGI,CAACO,GAAkBC,CAAmB,IAAIJ,EAASH,IAAkB,CAAC;AAG5E,EAAAQ,EAAU,MAAM;AACd,IAAAD,EAAoBP,IAAkB,CAAC,GACvCE;AAAA,MACEE,EAAgC;AAAA,QAC9BC;AAAA,QACAN;AAAA,MACF;AAAA,IAAA;AAAA,EACF,GACC,CAACA,GAAqBC,CAAe,CAAC;AAEnC,QAAAS,IAAiBC,EAAY,MAAM;AACP,IAAAN,EAAA;AAAA,MAC9BC;AAAA,MACAN;AAAA,IAAA,GAEFG,EAAe,EAAK;AAAA,EAAA,GACnB,CAACH,CAAmB,CAAC;AAExB,SAAKE,IAKH,gBAAAU;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,4BACGC,GAAS,EAAA,gBAAe,OAAM,aAAY,UAAS,iBAAgB,iBACjE,UAAA;AAAA,QAAAP,sBACEO,GACC,EAAA,UAAA;AAAA,UAAA,gBAAAF,EAACG,GAAK,EAAA,WAAU,OAAM,QAAO,cAAa,UAE1C,iEAAA;AAAA,4BACCA,GAAK,EAAA,WAAU,OAAM,QAAO,cAAa,UAE1C,kDAAA;AAAA,QAAA,EAAA,CACF,IAEC,gBAAAH,EAAAG,GAAA,EAAK,WAAU,OAAM,QAAO,cAAa,UAE1C,uEAAA;AAAA,0BAEDC,GAAU,EAAA,QAAQ,WAAW,OAAM,SAAQ,SAASN,GAAgB;AAAA,MAAA,GACvE;AAAA,MAEF,KAAKH,IAAmB,WAAW;AAAA,IAAA;AAAA,EAAA,IAxB9B;AA2BX;"}
@@ -16,4 +16,4 @@ const l = (s) => {
16
16
  export {
17
17
  l as useIntersectionObserver
18
18
  };
19
- //# sourceMappingURL=useIntersectionObserver.js.map
19
+ //# sourceMappingURL=use-intersection-observer.tsx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-intersection-observer.tsx.js","sources":["../../../../../../src/features/circle-games/leaderboard/hooks/use-intersection-observer/use-intersection-observer.tsx.tsx"],"sourcesContent":["import { useState, useEffect, useRef } from 'react';\n\ninterface IntersectionObserverOptions {\n root?: Element | null;\n rootMargin?: string;\n threshold?: number | number[];\n}\n\nexport const useIntersectionObserver = <T extends HTMLElement>(\n options?: IntersectionObserverOptions,\n) => {\n const [isVisible, setIsVisible] = useState(false);\n const elementRef = useRef<T | null>(null);\n\n useEffect(() => {\n const element = elementRef.current;\n\n if (!element) return;\n\n const observer = new IntersectionObserver(\n ([entry]) => entry && setIsVisible(entry.isIntersecting),\n options,\n );\n\n observer.observe(element);\n\n return () => {\n if (element) observer.unobserve(element);\n };\n }, [options]);\n\n return { isVisible, elementRef };\n};\n"],"names":["useIntersectionObserver","options","isVisible","setIsVisible","useState","elementRef","useRef","useEffect","element","observer","entry"],"mappings":";AAQa,MAAAA,IAA0B,CACrCC,MACG;AACH,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAS,EAAK,GAC1CC,IAAaC,EAAiB,IAAI;AAExC,SAAAC,EAAU,MAAM;AACd,UAAMC,IAAUH,EAAW;AAE3B,QAAI,CAACG,EAAS;AAEd,UAAMC,IAAW,IAAI;AAAA,MACnB,CAAC,CAACC,CAAK,MAAMA,KAASP,EAAaO,EAAM,cAAc;AAAA,MACvDT;AAAA,IAAA;AAGF,WAAAQ,EAAS,QAAQD,CAAO,GAEjB,MAAM;AACP,MAAAA,KAAkBC,EAAA,UAAUD,CAAO;AAAA,IAAA;AAAA,EACzC,GACC,CAACP,CAAO,CAAC,GAEL,EAAE,WAAAC,GAAW,YAAAG;AACtB;"}
@@ -19,4 +19,4 @@ function f(s) {
19
19
  export {
20
20
  f as useTimer
21
21
  };
22
- //# sourceMappingURL=useTimer.js.map
22
+ //# sourceMappingURL=use-timer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-timer.js","sources":["../../../../../../src/features/circle-games/leaderboard/hooks/use-timer/use-timer.tsx"],"sourcesContent":["import type { Dispatch, SetStateAction } from 'react';\n\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nexport function useTimer(value: number) {\n const [timer, setTimer] = useState<number>(value);\n const timerId = useRef<ReturnType<typeof setInterval>>();\n\n const initTimer = useCallback(() => {\n timerId.current = setInterval(() => {\n setTimer(prev => prev + 1000);\n }, 1000);\n }, []);\n\n const clearTimer = useCallback(() => {\n clearInterval(timerId.current);\n }, []);\n\n useEffect(() => {\n initTimer();\n\n return () => {\n clearTimer();\n };\n }, [clearTimer, initTimer]);\n\n return [\n timer as number,\n setTimer as Dispatch<SetStateAction<number>>,\n initTimer,\n clearTimer,\n ] as const;\n}\n"],"names":["useTimer","value","timer","setTimer","useState","timerId","useRef","initTimer","useCallback","prev","clearTimer","useEffect"],"mappings":";AAIO,SAASA,EAASC,GAAe;AACtC,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAAiBH,CAAK,GAC1CI,IAAUC,KAEVC,IAAYC,EAAY,MAAM;AAC1B,IAAAH,EAAA,UAAU,YAAY,MAAM;AACzB,MAAAF,EAAA,CAAAM,MAAQA,IAAO,GAAI;AAAA,OAC3B,GAAI;AAAA,EACT,GAAG,CAAE,CAAA,GAECC,IAAaF,EAAY,MAAM;AACnC,kBAAcH,EAAQ,OAAO;AAAA,EAC/B,GAAG,CAAE,CAAA;AAEL,SAAAM,EAAU,OACEJ,KAEH,MAAM;AACA,IAAAG;EAAA,IAEZ,CAACA,GAAYH,CAAS,CAAC,GAEnB;AAAA,IACLL;AAAA,IACAC;AAAA,IACAI;AAAA,IACAG;AAAA,EAAA;AAEJ;"}
@@ -1,32 +1,33 @@
1
1
  import t from "styled-components";
2
2
  import { ARC_BUTTON_BOTTOM_OFFSET as i } from "../../ui/arc-button/constants.js";
3
- import { BANNER_HEIGHT as e } from "./comps/banner/constants.js";
4
- const a = t.div`
3
+ import e from "../../ui/layout/flex-view.js";
4
+ import { BANNER_HEIGHT as n } from "./comps/banner/constants.js";
5
+ const s = t.div`
5
6
  flex-direction: column;
6
7
  overflow: hidden;
7
8
  height: 100vh;
8
9
  max-height: 100%;
9
10
  position: relative;
10
- `, p = t.div`
11
+ `, c = t.div`
11
12
  background: ${({ theme: o }) => o.colors.BLACK_1};
12
13
  height: 100%;
13
14
  position: relative;
14
15
  width: 100%;
15
- `, s = t.div`
16
+ `, h = t.div`
16
17
  position: absolute;
17
18
  top: 0;
18
19
  width: 100%;
19
20
  z-index: 10;
20
- `, c = t.div`
21
+ `, l = t.div`
21
22
  background: transparent;
22
23
  position: absolute;
23
24
  overflow: auto;
24
25
  width: 100%;
25
26
  flex: 1;
26
27
  height: 100%;
27
- padding-top: ${e}px;
28
+ padding-top: ${n}px;
28
29
  padding-bottom: ${i}px;
29
- `, h = t.div`
30
+ `, m = t.div`
30
31
  position: absolute;
31
32
  display: flex;
32
33
  top: 5px;
@@ -35,7 +36,7 @@ const a = t.div`
35
36
  height: 100%;
36
37
  align-items: center;
37
38
  justify-content: center;
38
- `, l = t.div`
39
+ `, x = t.div`
39
40
  position: absolute;
40
41
  bottom: 0;
41
42
  width: 100%;
@@ -44,7 +45,7 @@ const a = t.div`
44
45
  justify-content: center;
45
46
  width: 150%;
46
47
  height: 150%;
47
- `, m = t.div`
48
+ `, f = t.div`
48
49
  background: ${({ theme: o }) => o.colors.YELLOW_6};
49
50
  min-height: 32px;
50
51
  width: 100%;
@@ -53,14 +54,17 @@ const a = t.div`
53
54
  align-items: center;
54
55
  justify-content: center;
55
56
  `;
57
+ t(e)`
58
+ padding: 16px;
59
+ `;
56
60
  export {
57
- l as ActionButtonWrapper,
58
- m as Banner,
59
- s as BannerWrapper,
60
- c as ItemsWrapper,
61
- a as Leaderboard,
62
- p as LeaderboardContainer,
63
- h as TournamentBannerCustContainer,
61
+ x as ActionButtonWrapper,
62
+ f as Banner,
63
+ h as BannerWrapper,
64
+ l as ItemsWrapper,
65
+ s as Leaderboard,
66
+ c as LeaderboardContainer,
67
+ m as TournamentBannerCustContainer,
64
68
  g as TrophyWrapper
65
69
  };
66
70
  //# sourceMappingURL=leaderboard-styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"leaderboard-styled.js","sources":["../../../../src/features/circle-games/leaderboard/leaderboard-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport { ARC_BUTTON_BOTTOM_OFFSET } from '../../ui/arc-button/constants';\nimport { BANNER_HEIGHT } from './comps/banner/constants';\n\nexport const Leaderboard = styled.div`\n flex-direction: column;\n overflow: hidden;\n height: 100vh;\n max-height: 100%;\n position: relative;\n`;\n\nexport const LeaderboardContainer = styled.div`\n background: ${({ theme }) => theme.colors.BLACK_1};\n height: 100%;\n position: relative;\n width: 100%;\n`;\n\nexport const BannerWrapper = styled.div`\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 10;\n`;\n\nexport const ItemsWrapper = styled.div<{ topInset: number }>`\n background: transparent;\n position: absolute;\n overflow: auto;\n width: 100%;\n flex: 1;\n height: 100%;\n padding-top: ${BANNER_HEIGHT}px;\n padding-bottom: ${ARC_BUTTON_BOTTOM_OFFSET}px;\n`;\n\nexport const TournamentBannerCustContainer = styled.div`\n position: absolute;\n display: flex;\n top: 5px;\n right: -2px;\n width: 200px;\n height: 100%;\n align-items: center;\n justify-content: center;\n`;\n\nexport const ActionButtonWrapper = styled.div`\n position: absolute;\n bottom: 0;\n width: 100%;\n`;\n\nexport const TrophyWrapper = styled.div`\n display: flex;\n justify-content: center;\n width: 150%;\n height: 150%;\n`;\n\nexport const Banner = styled.div`\n background: ${({ theme }) => theme.colors.YELLOW_6};\n min-height: 32px;\n width: 100%;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n`;\n"],"names":["Leaderboard","styled","LeaderboardContainer","theme","BannerWrapper","ItemsWrapper","BANNER_HEIGHT","ARC_BUTTON_BOTTOM_OFFSET","TournamentBannerCustContainer","ActionButtonWrapper","TrophyWrapper","Banner"],"mappings":";;;AAKO,MAAMA,IAAcC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQrBC,IAAuBD,EAAO;AAAA,gBAC3B,CAAC,EAAE,OAAAE,EAAA,MAAYA,EAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA,GAMtCC,IAAgBH,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOvBI,IAAeJ,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAOlBK,CAAa;AAAA,oBACVC,CAAwB;AAAA,GAG/BC,IAAgCP,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAWvCQ,IAAsBR,EAAO;AAAA;AAAA;AAAA;AAAA,GAM7BS,IAAgBT,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOvBU,IAASV,EAAO;AAAA,gBACb,CAAC,EAAE,OAAAE,EAAA,MAAYA,EAAM,OAAO,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"leaderboard-styled.js","sources":["../../../../src/features/circle-games/leaderboard/leaderboard-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport { ARC_BUTTON_BOTTOM_OFFSET } from '../../ui/arc-button/constants';\nimport FlexView from '../../ui/layout/flex-view';\nimport { BANNER_HEIGHT } from './comps/banner/constants';\n\nexport const Leaderboard = styled.div`\n flex-direction: column;\n overflow: hidden;\n height: 100vh;\n max-height: 100%;\n position: relative;\n`;\n\nexport const LeaderboardContainer = styled.div`\n background: ${({ theme }) => theme.colors.BLACK_1};\n height: 100%;\n position: relative;\n width: 100%;\n`;\n\nexport const BannerWrapper = styled.div`\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 10;\n`;\n\nexport const ItemsWrapper = styled.div<{ topInset: number }>`\n background: transparent;\n position: absolute;\n overflow: auto;\n width: 100%;\n flex: 1;\n height: 100%;\n padding-top: ${BANNER_HEIGHT}px;\n padding-bottom: ${ARC_BUTTON_BOTTOM_OFFSET}px;\n`;\n\nexport const TournamentBannerCustContainer = styled.div`\n position: absolute;\n display: flex;\n top: 5px;\n right: -2px;\n width: 200px;\n height: 100%;\n align-items: center;\n justify-content: center;\n`;\n\nexport const ActionButtonWrapper = styled.div`\n position: absolute;\n bottom: 0;\n width: 100%;\n`;\n\nexport const TrophyWrapper = styled.div`\n display: flex;\n justify-content: center;\n width: 150%;\n height: 150%;\n`;\n\nexport const Banner = styled.div`\n background: ${({ theme }) => theme.colors.YELLOW_6};\n min-height: 32px;\n width: 100%;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n`;\n\nexport const InfoContainer = styled(FlexView)`\n padding: 16px;\n`;\n"],"names":["Leaderboard","styled","LeaderboardContainer","theme","BannerWrapper","ItemsWrapper","BANNER_HEIGHT","ARC_BUTTON_BOTTOM_OFFSET","TournamentBannerCustContainer","ActionButtonWrapper","TrophyWrapper","Banner","FlexView"],"mappings":";;;;AAMO,MAAMA,IAAcC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQrBC,IAAuBD,EAAO;AAAA,gBAC3B,CAAC,EAAE,OAAAE,EAAA,MAAYA,EAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA,GAMtCC,IAAgBH,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOvBI,IAAeJ,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAOlBK,CAAa;AAAA,oBACVC,CAAwB;AAAA,GAG/BC,IAAgCP,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAWvCQ,IAAsBR,EAAO;AAAA;AAAA;AAAA;AAAA,GAM7BS,IAAgBT,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOvBU,IAASV,EAAO;AAAA,gBACb,CAAC,EAAE,OAAAE,EAAA,MAAYA,EAAM,OAAO,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASvBF,EAAOW,CAAQ;AAAA;AAAA;"}