@cuemath/leap 3.5.3-j1 → 3.5.3-mm0

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 (225) hide show
  1. package/dist/features/auth/login/social-login-methods/social-login-methods.js.map +1 -1
  2. package/dist/features/auth/signup/custom-input-field/country-selector/country-code-button.js.map +1 -1
  3. package/dist/features/auth/signup/custom-input-field/country-selector/country-list-menu.js.map +1 -1
  4. package/dist/features/auth/signup/custom-input-field/date-picker-input/date-picker-input.js.map +1 -1
  5. package/dist/features/av/av-preview/av-preview.js +75 -57
  6. package/dist/features/av/av-preview/av-preview.js.map +1 -1
  7. package/dist/features/av/av-preview/hooks/use-get-troubleshooting-steps.js.map +1 -1
  8. package/dist/features/chapters/chapter/comps/chapter-banner/chapter-banner.js.map +1 -1
  9. package/dist/features/chapters/chapter/comps/core-lessons/core-lessons.js.map +1 -1
  10. package/dist/features/chapters/chapter/comps/supplementary-resources/supplementary-resources.js.map +1 -1
  11. package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js.map +1 -1
  12. package/dist/features/chapters/chapters-list/chapters-list.js.map +1 -1
  13. package/dist/features/chapters/lpar-chapter/block-section/chapter-block/chapter-block.js.map +1 -1
  14. package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/teacher-actions/teacher-actions.js.map +1 -1
  15. package/dist/features/chapters/lpar-chapter/comps/chapter-progress.js.map +1 -1
  16. package/dist/features/chapters/lpar-milestone-chapter/block-section/chapter-block/chapter-block.js.map +1 -1
  17. package/dist/features/chapters/lpar-milestone-chapter/block-section/sheet-item/rewards-n-actions/rewards-n-actions.js.map +1 -1
  18. package/dist/features/chapters/lpar-milestone-chapter/block-section/sheet-item/rewards-n-actions/student-actions.js.map +1 -1
  19. package/dist/features/chapters/lpar-milestone-chapter/block-section/sheet-item/rewards-n-actions/teacher-actions.js.map +1 -1
  20. package/dist/features/chapters/lpar-milestone-chapter/block-section/sheet-item/sheet-info.js.map +1 -1
  21. package/dist/features/chapters/lpar-milestone-chapter/extra-practice-section/extra-practice-section.js.map +1 -1
  22. package/dist/features/chapters/lpar-milestone-chapter/lpar-milestone-chapter.js.map +1 -1
  23. package/dist/features/chapters/lpar-milestone-chapter/puzzle-section/puzzle-card.js.map +1 -1
  24. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js.map +1 -1
  25. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js.map +1 -1
  26. package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -1
  27. package/dist/features/chapters-v2/comps/node-card/node-card-tags.js.map +1 -1
  28. package/dist/features/chapters-v2/comps/node-card/node-card.js.map +1 -1
  29. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js.map +1 -1
  30. package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js.map +1 -1
  31. package/dist/features/chapters-v2/comps/sat-mock-test/sat-mock-test.js.map +1 -1
  32. package/dist/features/circle-games/game-launcher/comps/card-container/card-container.js.map +1 -1
  33. package/dist/features/circle-games/game-launcher/comps/carousel/carousel.js.map +1 -1
  34. package/dist/features/circle-games/game-launcher/comps/tables-card/spl-events-text/spl-events-text.js.map +1 -1
  35. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode.js.map +1 -1
  36. package/dist/features/circle-games/game-launcher/game-launcher.js.map +1 -1
  37. package/dist/features/circle-games/games/tutorial/tutorial.js.map +1 -1
  38. package/dist/features/circle-games/games/web-view/hooks/use-webview-games.js.map +1 -1
  39. package/dist/features/circle-games/games/web-view/web-view.js.map +1 -1
  40. package/dist/features/circle-games/leaderboard/comps/banner/banner.js.map +1 -1
  41. package/dist/features/circle-games/leaderboard/comps/progress-item/progress-item.js.map +1 -1
  42. package/dist/features/circle-games/leaderboard/comps/progress-list-item/progress-list-item.js.map +1 -1
  43. package/dist/features/circle-games/leaderboard/comps/timer/timer.js.map +1 -1
  44. package/dist/features/circle-games/leaderboard/comps/with-grade/with-grade.js.map +1 -1
  45. package/dist/features/circle-games/leaderboard/hooks/use-timer/use-timer.js.map +1 -1
  46. package/dist/features/circle-games/sign-up/comp/circular-steps/circular-steps.js.map +1 -1
  47. package/dist/features/cue-canvas/bottombar/homework-controls.js.map +1 -1
  48. package/dist/features/cue-canvas/cue-canvas-provider.js.map +1 -1
  49. package/dist/features/cue-canvas/sidebar/homework/homework.js.map +1 -1
  50. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js.map +1 -1
  51. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js.map +1 -1
  52. package/dist/features/cue-canvas/sidebar/sidebar.js.map +1 -1
  53. package/dist/features/cue-canvas/sidebar/tiles/tile.js.map +1 -1
  54. package/dist/features/cue-canvas/toolbar/color-picker-menu.js.map +1 -1
  55. package/dist/features/cue-canvas/toolbar/pen-tool-menu.js.map +1 -1
  56. package/dist/features/cue-canvas/toolbar/tool.js.map +1 -1
  57. package/dist/features/cue-canvas/toolbar/whiteboard-toolbar.js.map +1 -1
  58. package/dist/features/extra-practice/list/list.js.map +1 -1
  59. package/dist/features/homework/card-menu-options.js.map +1 -1
  60. package/dist/features/homework/homework-card-view.js.map +1 -1
  61. package/dist/features/homework/homework-card.js.map +1 -1
  62. package/dist/features/homework/hw-card-list/hw-card-list-view.js.map +1 -1
  63. package/dist/features/hooks/use-auto-play-permission/use-auto-play-permission-context-provider.js.map +1 -1
  64. package/dist/features/journey/hooks/use-home-page-journey/tooltip-item.js.map +1 -1
  65. package/dist/features/journey/use-journey/journey-context-provider.js.map +1 -1
  66. package/dist/features/milestone/create/comps/add-custom-chapter/add-custom-chapter.js.map +1 -1
  67. package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js.map +1 -1
  68. package/dist/features/milestone/create/comps/add-custom-chapter/search-chapter/search-chapters.js.map +1 -1
  69. package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapter-item.js.map +1 -1
  70. package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapters.js.map +1 -1
  71. package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/tags-render.js.map +1 -1
  72. package/dist/features/milestone/create/comps/body-layout/body-layout.js.map +1 -1
  73. package/dist/features/milestone/create/comps/chapter-item/chapter-item.js.map +1 -1
  74. package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-category/category-card.js.map +1 -1
  75. package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-category/chapter-category-container.js.map +1 -1
  76. package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-selection.js.map +1 -1
  77. package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapters-list.js.map +1 -1
  78. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js.map +1 -1
  79. package/dist/features/milestone/create/comps/confirmation-modals/chapter-clearance-confirmation.js.map +1 -1
  80. package/dist/features/milestone/create/comps/confirmation-modals/goal-creation-confirmation.js.map +1 -1
  81. package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector-view.js.map +1 -1
  82. package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.js.map +1 -1
  83. package/dist/features/milestone/create/comps/milestone-progress/milestone-progress.js.map +1 -1
  84. package/dist/features/milestone/create/comps/sheets-list/sheets-list.js.map +1 -1
  85. package/dist/features/milestone/create/comps/test-type-step/category-component.js.map +1 -1
  86. package/dist/features/milestone/create/milestone-create.js.map +1 -1
  87. package/dist/features/milestone/edit/comps/edit-milestone-modal/edit-milestone.js.map +1 -1
  88. package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js.map +1 -1
  89. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-loader/milestone-loader.js.map +1 -1
  90. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
  91. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
  92. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js.map +1 -1
  93. package/dist/features/milestone/milestone-resources/resources-assign/api/get-resource.js.map +1 -1
  94. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js.map +1 -1
  95. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js.map +1 -1
  96. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js.map +1 -1
  97. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -1
  98. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js.map +1 -1
  99. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js.map +1 -1
  100. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-item/chapter-item.js.map +1 -1
  101. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-selection.js.map +1 -1
  102. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js.map +1 -1
  103. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/test-radio-card/test-card-lottie-animation.js.map +1 -1
  104. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/test-radio-card/test-radio-card.js.map +1 -1
  105. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js.map +1 -1
  106. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
  107. package/dist/features/milestone/outcome/comps/outcome-collection/outcome-form/outcome-form.js.map +1 -1
  108. package/dist/features/parent-dashboard/comps/billing-information/billing-information.js.map +1 -1
  109. package/dist/features/parent-dashboard/hooks/use-parent-home-data.js.map +1 -1
  110. package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason.js.map +1 -1
  111. package/dist/features/post-game-stats/accuracy/accuracy.js.map +1 -1
  112. package/dist/features/post-game-stats/clock/clock.js.map +1 -1
  113. package/dist/features/post-game-stats/number-count-animation/number-count-animation.js.map +1 -1
  114. package/dist/features/post-game-stats/points/points.js.map +1 -1
  115. package/dist/features/post-game-stats/score/score.js.map +1 -1
  116. package/dist/features/post-game-stats/streak/streak.js.map +1 -1
  117. package/dist/features/puzzles/app/puzzle-app-view.js.map +1 -1
  118. package/dist/features/puzzles/app/puzzle-app.js.map +1 -1
  119. package/dist/features/puzzles/comps/puzzle-card.js.map +1 -1
  120. package/dist/features/puzzles/puzzle-container/puzzle-container-view.js.map +1 -1
  121. package/dist/features/puzzles/puzzle-container/puzzle-container.js.map +1 -1
  122. package/dist/features/puzzles/puzzle-feedback-celebration/puzzle-feedback-celebration.js.map +1 -1
  123. package/dist/features/recent-chapters/recent-chapters.js.map +1 -1
  124. package/dist/features/sheet-tools/desmos-calculator/desmos-calculator.js.map +1 -1
  125. package/dist/features/sheet-v2/resource-list/resource-list.js.map +1 -1
  126. package/dist/features/sheets/comps/sheet-button/index.js.map +1 -1
  127. package/dist/features/sheets/lessons-list/lesson-item/context-menu-helper/menu-element.js.map +1 -1
  128. package/dist/features/sheets/lessons-list/lesson-item/context-menu-helper/target-element.js.map +1 -1
  129. package/dist/features/sheets/lessons-list/lesson-item/lesson-item-cta-info.js.map +1 -1
  130. package/dist/features/sheets/lessons-list/lesson-item/lesson-item-view.js.map +1 -1
  131. package/dist/features/sheets/lessons-list/lesson-item/lesson-item.js.map +1 -1
  132. package/dist/features/sheets/lessons-list/lessons-list.js.map +1 -1
  133. package/dist/features/sheets/reference-sheet/reference-sheet.js.map +1 -1
  134. package/dist/features/sheets/resources-list/resource-item/context-menu-helper/menu-element.js.map +1 -1
  135. package/dist/features/sheets/resources-list/resource-item/resource-item.js.map +1 -1
  136. package/dist/features/sheets/resources-list/resources-list.js.map +1 -1
  137. package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/student-actions/student-actions.js.map +1 -1
  138. package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions.js.map +1 -1
  139. package/dist/features/sheets/sheets-list/sheets-list.js.map +1 -1
  140. package/dist/features/stickers/sticker-selector/comps/sticker/sticker.js.map +1 -1
  141. package/dist/features/stickers/sticker-selector/comps/stiker-selector-grid/sticker-selector-grid.js.map +1 -1
  142. package/dist/features/stickers/sticker-selector/sticker-selector.js.map +1 -1
  143. package/dist/features/stickers/stickers-effects/comps/sticker-with-fallback.js.map +1 -1
  144. package/dist/features/stickers/stickers-effects/stickers-effects.js.map +1 -1
  145. package/dist/features/student-details/class-details/class-details.js.map +1 -1
  146. package/dist/features/student-details/student-details.js.map +1 -1
  147. package/dist/features/talk-meter/ripple/index.js.map +1 -1
  148. package/dist/features/talk-meter/talk-meter-view/talk-meter-view.js.map +1 -1
  149. package/dist/features/talk-meter/talk-meter.js.map +1 -1
  150. package/dist/features/trial-session/comps/av-panels/student-av-panel/student-av-panel.js.map +1 -1
  151. package/dist/features/trial-session/comps/av-panels/teacher-av-panel/teacher-av-panel.js.map +1 -1
  152. package/dist/features/trial-session/comps/class-preference/class-preference.js.map +1 -1
  153. package/dist/features/trial-session/comps/learning-plan/use-learning-plan-scroll-sync.js.map +1 -1
  154. package/dist/features/trial-session/comps/session-report/report-404/report-404.js.map +1 -1
  155. package/dist/features/trial-session/comps/session-report/report-information/report-card.js.map +1 -1
  156. package/dist/features/trial-session/comps/session-report/report-information/report-information.js.map +1 -1
  157. package/dist/features/trial-session/comps/slide-header/index.js.map +1 -1
  158. package/dist/features/trial-session/comps/student-profile/student-profile-highlights/student-profile-highlights.js.map +1 -1
  159. package/dist/features/trial-session/comps/student-profile/student-profile.js.map +1 -1
  160. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js.map +1 -1
  161. package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game-launch-screen/trial-circle-game-launch-screen.js.map +1 -1
  162. package/dist/features/trial-session/comps/worksheet/worksheet.js.map +1 -1
  163. package/dist/features/trial-session/hooks/use-trial-session-navigation.js.map +1 -1
  164. package/dist/features/trial-session/trial-session-view.js.map +1 -1
  165. package/dist/features/ui/accordion/accordion-items/accordion-items.js.map +1 -1
  166. package/dist/features/ui/arc-button/arc-button.js.map +1 -1
  167. package/dist/features/ui/avatar/avatar-mapping.js.map +1 -1
  168. package/dist/features/ui/avatar/avatar.js.map +1 -1
  169. package/dist/features/ui/context/use-tracking-context.js.map +1 -1
  170. package/dist/features/ui/drawer/drawer.js.map +1 -1
  171. package/dist/features/ui/hooks/use-context-menu-click-handler.js.map +1 -1
  172. package/dist/features/ui/inputs/base-select-input/select-option/select-option.js.map +1 -1
  173. package/dist/features/ui/inputs/base-select-input/select-section/select-section.js.map +1 -1
  174. package/dist/features/ui/inputs/google-places-search-input/google-places-search-input.js.map +1 -1
  175. package/dist/features/ui/inputs/radio-input/radio-option/radio-option.js.map +1 -1
  176. package/dist/features/ui/inputs/searchable-select-input/searchable-select-input.js.map +1 -1
  177. package/dist/features/ui/inputs/text-input/text-input.js.map +1 -1
  178. package/dist/features/ui/loader/reverse-circular-bar/reverse-circular-bar.js.map +1 -1
  179. package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -1
  180. package/dist/features/ui/modals/modal-provider.js.map +1 -1
  181. package/dist/features/ui/modals/modal.js.map +1 -1
  182. package/dist/features/ui/section-list/section-list.js.map +1 -1
  183. package/dist/features/ui/superscript/superscript-styled.js.map +1 -1
  184. package/dist/features/ui/superscript/superscript.js.map +1 -1
  185. package/dist/features/wins-dashboard/student-badges/hooks/use-student-badge-list-hook.js.map +1 -1
  186. package/dist/features/wins-dashboard/student-badges/student-badges-lists.js.map +1 -1
  187. package/dist/features/worksheet/learnosity-preloader/learnosity-preloader.js.map +1 -1
  188. package/dist/features/worksheet/worksheet/hooks/use-create-imperative-handle.js.map +1 -1
  189. package/dist/features/worksheet/worksheet/hooks/use-learnosity-append.js.map +1 -1
  190. package/dist/features/worksheet/worksheet/hooks/use-learnosity.js.map +1 -1
  191. package/dist/features/worksheet/worksheet/question-tips.js.map +1 -1
  192. package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js.map +1 -1
  193. package/dist/features/worksheet/worksheet/worksheet-blocker/blockers/exit-ticket-intervention.js.map +1 -1
  194. package/dist/features/worksheet/worksheet/worksheet-blocker/blockers/exit-ticket-review-available.js.map +1 -1
  195. package/dist/features/worksheet/worksheet/worksheet-blocker/blockers/exit-ticket-review.js.map +1 -1
  196. package/dist/features/worksheet/worksheet/worksheet-blocker/blockers/exit-ticket-student-submission.js.map +1 -1
  197. package/dist/features/worksheet/worksheet/worksheet-blocker/blockers/optional-items-assignment.js.map +1 -1
  198. package/dist/features/worksheet/worksheet/worksheet-blocker/blockers/optional-items-skip.js.map +1 -1
  199. package/dist/features/worksheet/worksheet/worksheet-blocker/worksheet-blocker.js.map +1 -1
  200. package/dist/features/worksheet/worksheet/worksheet-container.js.map +1 -1
  201. package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-item-navigation/worksheet-item-navigation.js.map +1 -1
  202. package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-item-number/worksheet-item-number.js.map +1 -1
  203. package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-navigation.js.map +1 -1
  204. package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-section-navigation/worksheet-section-navigation.js.map +1 -1
  205. package/dist/features/worksheet/worksheet/worksheet-question/header/validated-animation.js.map +1 -1
  206. package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js.map +1 -1
  207. package/dist/features/worksheet/worksheet/worksheet-question/question-backdrop/question-backdrop.js.map +1 -1
  208. package/dist/features/worksheet/worksheet/worksheet-question/subjective-review.js.map +1 -1
  209. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js.map +1 -1
  210. package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js.map +1 -1
  211. package/dist/features/worksheet/worksheet/worksheet-questions-summary/worksheet-questions-summary.js.map +1 -1
  212. package/dist/features/worksheet/worksheet/worksheet-summary-controller/worksheet-summary-controller.js.map +1 -1
  213. package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
  214. package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js.map +1 -1
  215. package/dist/features/worksheet/worksheet-preview/worksheet-preview-styled.js.map +1 -1
  216. package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js.map +1 -1
  217. package/dist/features/worksheet/worksheet-preview/worksheet-preview.js.map +1 -1
  218. package/dist/index.d.ts +1 -1
  219. package/package.json +3 -3
  220. package/dist/features/av/av-preview/helper.js +0 -40
  221. package/dist/features/av/av-preview/helper.js.map +0 -1
  222. package/dist/features/av/av-preview/hooks/use-media-devices.js +0 -144
  223. package/dist/features/av/av-preview/hooks/use-media-devices.js.map +0 -1
  224. package/dist/features/hooks/use-cancellable-promise.js +0 -22
  225. package/dist/features/hooks/use-cancellable-promise.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"social-login-methods.js","sources":["../../../../../src/features/auth/login/social-login-methods/social-login-methods.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { memo } from 'react';\n\nimport AppleIcon from '../../../../assets/line-icons/icons/apple-icon';\nimport GoogleIcon from '../../../../assets/line-icons/icons/google-icon';\nimport Button from '../../../ui/buttons/button/button';\nimport * as Styled from './social-login-methods-styled';\nimport type { ISocialLoginMethodsProps } from './social-login-methods-types';\n\nconst SocialLoginMethods: FC<ISocialLoginMethodsProps> = ({\n onGoogleLogin,\n onAppleLogin,\n loadingProvider,\n}) => {\n const isLoadingGoogle = loadingProvider === 'google';\n const isLoadingApple = loadingProvider === 'apple';\n\n return (\n <Styled.Wrapper\n $flexGapX={1}\n $flexDirection=\"row\"\n $justifyContent=\"space-between\"\n $width=\"100%\"\n >\n <Button\n renderAs=\"secondary-dark\"\n Icon={GoogleIcon}\n label=\"\"\n analyticsLabel=\"google_login\"\n onClick={onGoogleLogin}\n size=\"small\"\n width=\"100%\"\n busy={isLoadingGoogle}\n disabled={isLoadingGoogle}\n />\n <Button\n renderAs=\"secondary-dark\"\n size=\"small\"\n Icon={AppleIcon}\n width=\"100%\"\n label=\"\"\n analyticsLabel=\"apple_login\"\n onClick={onAppleLogin}\n busy={isLoadingApple}\n disabled={isLoadingApple}\n />\n </Styled.Wrapper>\n );\n};\n\nexport default memo(SocialLoginMethods);\n"],"names":["SocialLoginMethods","onGoogleLogin","onAppleLogin","loadingProvider","isLoadingGoogle","isLoadingApple","jsxs","Styled.Wrapper","jsx","Button","GoogleIcon","AppleIcon","socialLoginMethods","memo"],"mappings":";;;;;;AASA,MAAMA,IAAmD,CAAC;AAAA,EACxD,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,iBAAAC;AACF,MAAM;AACJ,QAAMC,IAAkBD,MAAoB,UACtCE,IAAiBF,MAAoB;AAGzC,SAAA,gBAAAG;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,gBAAe;AAAA,MACf,iBAAgB;AAAA,MAChB,QAAO;AAAA,MAEP,UAAA;AAAA,QAAA,gBAAAC;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,UAAS;AAAA,YACT,MAAMC;AAAA,YACN,OAAM;AAAA,YACN,gBAAe;AAAA,YACf,SAAST;AAAA,YACT,MAAK;AAAA,YACL,OAAM;AAAA,YACN,MAAMG;AAAA,YACN,UAAUA;AAAA,UAAA;AAAA,QACZ;AAAA,QACA,gBAAAI;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,UAAS;AAAA,YACT,MAAK;AAAA,YACL,MAAME;AAAA,YACN,OAAM;AAAA,YACN,OAAM;AAAA,YACN,gBAAe;AAAA,YACf,SAAST;AAAA,YACT,MAAMG;AAAA,YACN,UAAUA;AAAA,UAAA;AAAA,QACZ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,GAEeO,IAAAC,EAAKb,CAAkB;"}
1
+ {"version":3,"file":"social-login-methods.js","sources":["../../../../../src/features/auth/login/social-login-methods/social-login-methods.tsx"],"sourcesContent":["import { memo, type FC } from 'react';\n\nimport AppleIcon from '../../../../assets/line-icons/icons/apple-icon';\nimport GoogleIcon from '../../../../assets/line-icons/icons/google-icon';\nimport Button from '../../../ui/buttons/button/button';\nimport * as Styled from './social-login-methods-styled';\nimport type { ISocialLoginMethodsProps } from './social-login-methods-types';\n\nconst SocialLoginMethods: FC<ISocialLoginMethodsProps> = ({\n onGoogleLogin,\n onAppleLogin,\n loadingProvider,\n}) => {\n const isLoadingGoogle = loadingProvider === 'google';\n const isLoadingApple = loadingProvider === 'apple';\n\n return (\n <Styled.Wrapper\n $flexGapX={1}\n $flexDirection=\"row\"\n $justifyContent=\"space-between\"\n $width=\"100%\"\n >\n <Button\n renderAs=\"secondary-dark\"\n Icon={GoogleIcon}\n label=\"\"\n analyticsLabel=\"google_login\"\n onClick={onGoogleLogin}\n size=\"small\"\n width=\"100%\"\n busy={isLoadingGoogle}\n disabled={isLoadingGoogle}\n />\n <Button\n renderAs=\"secondary-dark\"\n size=\"small\"\n Icon={AppleIcon}\n width=\"100%\"\n label=\"\"\n analyticsLabel=\"apple_login\"\n onClick={onAppleLogin}\n busy={isLoadingApple}\n disabled={isLoadingApple}\n />\n </Styled.Wrapper>\n );\n};\n\nexport default memo(SocialLoginMethods);\n"],"names":["SocialLoginMethods","onGoogleLogin","onAppleLogin","loadingProvider","isLoadingGoogle","isLoadingApple","jsxs","Styled.Wrapper","jsx","Button","GoogleIcon","AppleIcon","socialLoginMethods","memo"],"mappings":";;;;;;AAQA,MAAMA,IAAmD,CAAC;AAAA,EACxD,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,iBAAAC;AACF,MAAM;AACJ,QAAMC,IAAkBD,MAAoB,UACtCE,IAAiBF,MAAoB;AAGzC,SAAA,gBAAAG;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,gBAAe;AAAA,MACf,iBAAgB;AAAA,MAChB,QAAO;AAAA,MAEP,UAAA;AAAA,QAAA,gBAAAC;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,UAAS;AAAA,YACT,MAAMC;AAAA,YACN,OAAM;AAAA,YACN,gBAAe;AAAA,YACf,SAAST;AAAA,YACT,MAAK;AAAA,YACL,OAAM;AAAA,YACN,MAAMG;AAAA,YACN,UAAUA;AAAA,UAAA;AAAA,QACZ;AAAA,QACA,gBAAAI;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,UAAS;AAAA,YACT,MAAK;AAAA,YACL,MAAME;AAAA,YACN,OAAM;AAAA,YACN,OAAM;AAAA,YACN,gBAAe;AAAA,YACf,SAAST;AAAA,YACT,MAAMG;AAAA,YACN,UAAUA;AAAA,UAAA;AAAA,QACZ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,GAEeO,IAAAC,EAAKb,CAAkB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"country-code-button.js","sources":["../../../../../../src/features/auth/signup/custom-input-field/country-selector/country-code-button.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { memo } from 'react';\n\nimport ChevronDownIcon from '../../../../../assets/line-icons/icons/chevron-down';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport * as Styled from './country-selector-styled';\n\nconst CountryCodeButton: FC<{ value?: string; menuVisible?: boolean }> = ({\n value,\n menuVisible,\n}) => {\n return (\n <Styled.CountryCodeButton\n $background=\"BLACK_5\"\n $borderRadius={4}\n $gutterX={0.5}\n $gap={5}\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n $borderColor={menuVisible ? 'WHITE_T_38' : 'BLACK_5'}\n $flexDirection=\"row\"\n $flexGap={2}\n >\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n +{value}\n </Text>\n <FlexView $width={20}>\n <ChevronDownIcon width={20} height={20} color=\"WHITE\" />\n </FlexView>\n </Styled.CountryCodeButton>\n );\n};\n\nexport default memo(CountryCodeButton);\n"],"names":["CountryCodeButton","value","menuVisible","jsxs","Styled.CountryCodeButton","Text","jsx","FlexView","ChevronDownIcon","CountryCodeButton$1","memo"],"mappings":";;;;;;AAQA,MAAMA,IAAmE,CAAC;AAAA,EACxE,OAAAC;AAAA,EACA,aAAAC;AACF,MAEI,gBAAAC;AAAA,EAACC;AAAAA,EAAA;AAAA,IACC,aAAY;AAAA,IACZ,eAAe;AAAA,IACf,UAAU;AAAA,IACV,MAAM;AAAA,IACN,aAAY;AAAA,IACZ,iBAAgB;AAAA,IAChB,cAAcF,IAAc,eAAe;AAAA,IAC3C,gBAAe;AAAA,IACf,UAAU;AAAA,IAEV,UAAA;AAAA,MAAA,gBAAAC,EAACE,GAAK,EAAA,WAAU,OAAM,QAAO,SAAQ,UAAA;AAAA,QAAA;AAAA,QACjCJ;AAAA,MAAA,GACJ;AAAA,MACC,gBAAAK,EAAAC,GAAA,EAAS,QAAQ,IAChB,UAAC,gBAAAD,EAAAE,GAAA,EAAgB,OAAO,IAAI,QAAQ,IAAI,OAAM,QAAQ,CAAA,GACxD;AAAA,IAAA;AAAA,EAAA;AAAA,GAKSC,IAAAC,EAAKV,CAAiB;"}
1
+ {"version":3,"file":"country-code-button.js","sources":["../../../../../../src/features/auth/signup/custom-input-field/country-selector/country-code-button.tsx"],"sourcesContent":["import { memo, type FC } from 'react';\n\nimport ChevronDownIcon from '../../../../../assets/line-icons/icons/chevron-down';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport * as Styled from './country-selector-styled';\n\nconst CountryCodeButton: FC<{ value?: string; menuVisible?: boolean }> = ({\n value,\n menuVisible,\n}) => {\n return (\n <Styled.CountryCodeButton\n $background=\"BLACK_5\"\n $borderRadius={4}\n $gutterX={0.5}\n $gap={5}\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n $borderColor={menuVisible ? 'WHITE_T_38' : 'BLACK_5'}\n $flexDirection=\"row\"\n $flexGap={2}\n >\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n +{value}\n </Text>\n <FlexView $width={20}>\n <ChevronDownIcon width={20} height={20} color=\"WHITE\" />\n </FlexView>\n </Styled.CountryCodeButton>\n );\n};\n\nexport default memo(CountryCodeButton);\n"],"names":["CountryCodeButton","value","menuVisible","jsxs","Styled.CountryCodeButton","Text","jsx","FlexView","ChevronDownIcon","CountryCodeButton$1","memo"],"mappings":";;;;;;AAOA,MAAMA,IAAmE,CAAC;AAAA,EACxE,OAAAC;AAAA,EACA,aAAAC;AACF,MAEI,gBAAAC;AAAA,EAACC;AAAAA,EAAA;AAAA,IACC,aAAY;AAAA,IACZ,eAAe;AAAA,IACf,UAAU;AAAA,IACV,MAAM;AAAA,IACN,aAAY;AAAA,IACZ,iBAAgB;AAAA,IAChB,cAAcF,IAAc,eAAe;AAAA,IAC3C,gBAAe;AAAA,IACf,UAAU;AAAA,IAEV,UAAA;AAAA,MAAA,gBAAAC,EAACE,GAAK,EAAA,WAAU,OAAM,QAAO,SAAQ,UAAA;AAAA,QAAA;AAAA,QACjCJ;AAAA,MAAA,GACJ;AAAA,MACC,gBAAAK,EAAAC,GAAA,EAAS,QAAQ,IAChB,UAAC,gBAAAD,EAAAE,GAAA,EAAgB,OAAO,IAAI,QAAQ,IAAI,OAAM,QAAQ,CAAA,GACxD;AAAA,IAAA;AAAA,EAAA;AAAA,GAKSC,IAAAC,EAAKV,CAAiB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"country-list-menu.js","sources":["../../../../../../src/features/auth/signup/custom-input-field/country-selector/country-list-menu.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { useState, useEffect, useRef, useCallback, memo } from 'react';\n\nimport { COUNTRY_CODE_MAP } from '../../../../../constants/country';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport * as Styled from './country-selector-styled';\nimport type { ICountryListMenuProps } from './country-selector-types';\n\nconst CountryListMenu: FC<ICountryListMenuProps> = ({ selectedCountry, onChange, menuVisible }) => {\n const [searchTerm, setSearchTerm] = useState('');\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n const searchTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n const itemRefs = useRef<(HTMLDivElement | null)[]>([]);\n\n useEffect(() => {\n if (highlightedIndex >= 0) {\n itemRefs.current[highlightedIndex]?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n });\n }\n }, [highlightedIndex]);\n\n useEffect(() => {\n if (searchTerm) {\n const index = COUNTRY_CODE_MAP.findIndex(\n c =>\n c.value.toLowerCase().includes(searchTerm.toLowerCase()) || c.code.startsWith(searchTerm),\n );\n\n setHighlightedIndex(index);\n if (searchTimeoutRef.current) clearTimeout(searchTimeoutRef.current);\n searchTimeoutRef.current = setTimeout(() => {\n setSearchTerm('');\n }, 1000);\n }\n\n return () => {\n if (searchTimeoutRef.current) clearTimeout(searchTimeoutRef.current);\n };\n }, [searchTerm]);\n\n const handleKeyDown = useCallback(\n (event: globalThis.KeyboardEvent) => {\n const { key } = event;\n\n event.preventDefault();\n event.stopPropagation();\n if (key.length === 1 && /[a-zA-Z0-9\\s]/.test(key)) {\n setSearchTerm(prev => prev + key.toLowerCase());\n\n return;\n }\n\n if (key === 'ArrowDown') {\n setHighlightedIndex(prev => (prev < COUNTRY_CODE_MAP.length - 1 ? prev + 1 : 0));\n } else if (key === 'ArrowUp') {\n setHighlightedIndex(prev => (prev > 0 ? prev - 1 : COUNTRY_CODE_MAP.length - 1));\n } else if (key === 'Enter' && highlightedIndex >= 0) {\n const selectedOption = COUNTRY_CODE_MAP[highlightedIndex];\n\n if (selectedOption) {\n onChange({ code: selectedOption.code, id: selectedOption.id });\n }\n menuRef.current?.click();\n } else if (key === 'Escape') {\n setSearchTerm('');\n setHighlightedIndex(-1);\n }\n },\n [highlightedIndex, onChange],\n );\n\n useEffect(() => {\n const menuElement = menuRef.current;\n\n if (!menuElement || !menuVisible) return;\n\n menuElement.focus();\n menuElement.addEventListener('keydown', handleKeyDown);\n\n return () => {\n menuElement.removeEventListener('keydown', handleKeyDown);\n };\n }, [menuVisible, handleKeyDown, selectedCountry.id]);\n\n return (\n <Styled.MenuWrapper\n ref={menuRef}\n tabIndex={0}\n $widthX={10}\n $gapX={0.5}\n $background=\"BLACK_2\"\n $borderColor=\"BLACK_5\"\n >\n {COUNTRY_CODE_MAP.map((option, index) => {\n const { id, value, icon, code } = option;\n\n return (\n <Styled.MenuItem\n key={id}\n ref={el => {\n itemRefs.current[index] = el;\n }}\n data-country-id={id}\n onClick={() => onChange({ code, id })}\n $gutterX={0.5}\n $gapX={0.75}\n $width=\"100%\"\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $flexGap={8}\n $isSelected={selectedCountry.id === id}\n $isHighlighted={highlightedIndex === index}\n >\n <Styled.FlagIcon src={icon} />\n <Text $renderAs=\"ab3\" $color=\"WHITE\">\n {value}\n </Text>\n </Styled.MenuItem>\n );\n })}\n\n <Styled.Instructions $gutterX={0.5}>\n <Separator heightX={0.5} />\n <Text $renderAs=\"ab3\" $color=\"WHITE\">\n Type to search • ↑↓ to navigate • Enter to select • Esc to clear\n </Text>\n </Styled.Instructions>\n </Styled.MenuWrapper>\n );\n};\n\nexport default memo(CountryListMenu);\n"],"names":["CountryListMenu","selectedCountry","onChange","menuVisible","searchTerm","setSearchTerm","useState","highlightedIndex","setHighlightedIndex","searchTimeoutRef","useRef","menuRef","itemRefs","useEffect","_a","index","COUNTRY_CODE_MAP","c","handleKeyDown","useCallback","event","key","prev","selectedOption","menuElement","jsxs","Styled.MenuWrapper","option","id","value","icon","code","Styled.MenuItem","el","jsx","Styled.FlagIcon","Text","Styled.Instructions","Separator","CountryListMenu$1","memo"],"mappings":"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"}
1
+ {"version":3,"file":"country-list-menu.js","sources":["../../../../../../src/features/auth/signup/custom-input-field/country-selector/country-list-menu.tsx"],"sourcesContent":["import { useState, useEffect, useRef, useCallback, memo, type FC } from 'react';\n\nimport { COUNTRY_CODE_MAP } from '../../../../../constants/country';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport * as Styled from './country-selector-styled';\nimport type { ICountryListMenuProps } from './country-selector-types';\n\nconst CountryListMenu: FC<ICountryListMenuProps> = ({ selectedCountry, onChange, menuVisible }) => {\n const [searchTerm, setSearchTerm] = useState('');\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n const searchTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n const itemRefs = useRef<(HTMLDivElement | null)[]>([]);\n\n useEffect(() => {\n if (highlightedIndex >= 0) {\n itemRefs.current[highlightedIndex]?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n });\n }\n }, [highlightedIndex]);\n\n useEffect(() => {\n if (searchTerm) {\n const index = COUNTRY_CODE_MAP.findIndex(\n c =>\n c.value.toLowerCase().includes(searchTerm.toLowerCase()) || c.code.startsWith(searchTerm),\n );\n\n setHighlightedIndex(index);\n if (searchTimeoutRef.current) clearTimeout(searchTimeoutRef.current);\n searchTimeoutRef.current = setTimeout(() => {\n setSearchTerm('');\n }, 1000);\n }\n\n return () => {\n if (searchTimeoutRef.current) clearTimeout(searchTimeoutRef.current);\n };\n }, [searchTerm]);\n\n const handleKeyDown = useCallback(\n (event: globalThis.KeyboardEvent) => {\n const { key } = event;\n\n event.preventDefault();\n event.stopPropagation();\n if (key.length === 1 && /[a-zA-Z0-9\\s]/.test(key)) {\n setSearchTerm(prev => prev + key.toLowerCase());\n\n return;\n }\n\n if (key === 'ArrowDown') {\n setHighlightedIndex(prev => (prev < COUNTRY_CODE_MAP.length - 1 ? prev + 1 : 0));\n } else if (key === 'ArrowUp') {\n setHighlightedIndex(prev => (prev > 0 ? prev - 1 : COUNTRY_CODE_MAP.length - 1));\n } else if (key === 'Enter' && highlightedIndex >= 0) {\n const selectedOption = COUNTRY_CODE_MAP[highlightedIndex];\n\n if (selectedOption) {\n onChange({ code: selectedOption.code, id: selectedOption.id });\n }\n menuRef.current?.click();\n } else if (key === 'Escape') {\n setSearchTerm('');\n setHighlightedIndex(-1);\n }\n },\n [highlightedIndex, onChange],\n );\n\n useEffect(() => {\n const menuElement = menuRef.current;\n\n if (!menuElement || !menuVisible) return;\n\n menuElement.focus();\n menuElement.addEventListener('keydown', handleKeyDown);\n\n return () => {\n menuElement.removeEventListener('keydown', handleKeyDown);\n };\n }, [menuVisible, handleKeyDown, selectedCountry.id]);\n\n return (\n <Styled.MenuWrapper\n ref={menuRef}\n tabIndex={0}\n $widthX={10}\n $gapX={0.5}\n $background=\"BLACK_2\"\n $borderColor=\"BLACK_5\"\n >\n {COUNTRY_CODE_MAP.map((option, index) => {\n const { id, value, icon, code } = option;\n\n return (\n <Styled.MenuItem\n key={id}\n ref={el => {\n itemRefs.current[index] = el;\n }}\n data-country-id={id}\n onClick={() => onChange({ code, id })}\n $gutterX={0.5}\n $gapX={0.75}\n $width=\"100%\"\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $flexGap={8}\n $isSelected={selectedCountry.id === id}\n $isHighlighted={highlightedIndex === index}\n >\n <Styled.FlagIcon src={icon} />\n <Text $renderAs=\"ab3\" $color=\"WHITE\">\n {value}\n </Text>\n </Styled.MenuItem>\n );\n })}\n\n <Styled.Instructions $gutterX={0.5}>\n <Separator heightX={0.5} />\n <Text $renderAs=\"ab3\" $color=\"WHITE\">\n Type to search • ↑↓ to navigate • Enter to select • Esc to clear\n </Text>\n </Styled.Instructions>\n </Styled.MenuWrapper>\n );\n};\n\nexport default memo(CountryListMenu);\n"],"names":["CountryListMenu","selectedCountry","onChange","menuVisible","searchTerm","setSearchTerm","useState","highlightedIndex","setHighlightedIndex","searchTimeoutRef","useRef","menuRef","itemRefs","useEffect","_a","index","COUNTRY_CODE_MAP","c","handleKeyDown","useCallback","event","key","prev","selectedOption","menuElement","jsxs","Styled.MenuWrapper","option","id","value","icon","code","Styled.MenuItem","el","jsx","Styled.FlagIcon","Text","Styled.Instructions","Separator","CountryListMenu$1","memo"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"date-picker-input.js","sources":["../../../../../../src/features/auth/signup/custom-input-field/date-picker-input/date-picker-input.tsx"],"sourcesContent":["import { subYears } from 'date-fns';\nimport { type FC, memo, useCallback } from 'react';\nimport type { ReactDatePickerCustomHeaderProps } from 'react-datepicker';\nimport DatePicker from 'react-datepicker';\nimport { useTheme } from 'styled-components';\n\nimport LeftIcon from '../../../../../assets/line-icons/icons/left';\nimport RightIcon from '../../../../../assets/line-icons/icons/right';\nimport Clickable from '../../../../ui/buttons/clickable/clickable';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport InputWrapper from '../input-wrapper/input-wrapper';\nimport * as Styled from './date-picker-input-styled';\nimport type { IDatePickerInputProps } from './date-picker-input-types';\n\nconst DatePickerInput: FC<IDatePickerInputProps> = ({ value, onChange, error }) => {\n const theme = useTheme();\n\n const handleChangeDate = useCallback((date: Date | null) => onChange(date), [onChange]);\n\n const renderHeader = useCallback(\n (props: ReactDatePickerCustomHeaderProps) => {\n const { date, decreaseYear, increaseYear, prevYearButtonDisabled, nextYearButtonDisabled } =\n props;\n\n return (\n <FlexView $alignItems=\"center\" $flexDirection=\"row\" $justifyContent=\"space-between\">\n <Clickable onClick={decreaseYear} label=\"increase-year\" disabled={prevYearButtonDisabled}>\n <LeftIcon color={theme.colors[prevYearButtonDisabled ? 'WHITE_T_10' : 'WHITE']} />\n </Clickable>\n <Text $renderAs=\"ub2-bold\" $color=\"WHITE\">\n {date.getFullYear()}\n </Text>\n <Clickable onClick={increaseYear} label=\"decrease-year\" disabled={nextYearButtonDisabled}>\n <RightIcon color={theme.colors[nextYearButtonDisabled ? 'WHITE_T_10' : 'WHITE']} />\n </Clickable>\n </FlexView>\n );\n },\n\n [theme.colors],\n );\n\n return (\n <InputWrapper helperText={error}>\n <Styled.StyledDatePickerWrapper>\n <DatePicker\n selected={value}\n showMonthYearPicker\n showPopperArrow={false}\n dateFormat=\"MM/yyyy\"\n placeholderText=\"MM / YYYY\"\n onChange={handleChangeDate}\n minDate={subYears(new Date(), 22)}\n maxDate={subYears(new Date(), 2)}\n renderCustomHeader={renderHeader}\n />\n </Styled.StyledDatePickerWrapper>\n </InputWrapper>\n );\n};\n\nexport default memo(DatePickerInput);\n"],"names":["DatePickerInput","value","onChange","error","theme","useTheme","handleChangeDate","useCallback","date","renderHeader","props","decreaseYear","increaseYear","prevYearButtonDisabled","nextYearButtonDisabled","FlexView","jsx","Clickable","LeftIcon","Text","RightIcon","InputWrapper","Styled.StyledDatePickerWrapper","DatePicker","subYears","datePickerInput","memo"],"mappings":";;;;;;;;;;;;AAeA,MAAMA,IAA6C,CAAC,EAAE,OAAAC,GAAO,UAAAC,GAAU,OAAAC,QAAY;AACjF,QAAMC,IAAQC,KAERC,IAAmBC,EAAY,CAACC,MAAsBN,EAASM,CAAI,GAAG,CAACN,CAAQ,CAAC,GAEhFO,IAAeF;AAAA,IACnB,CAACG,MAA4C;AAC3C,YAAM,EAAE,MAAAF,GAAM,cAAAG,GAAc,cAAAC,GAAc,wBAAAC,GAAwB,wBAAAC,EAChE,IAAAJ;AAEF,+BACGK,GAAS,EAAA,aAAY,UAAS,gBAAe,OAAM,iBAAgB,iBAClE,UAAA;AAAA,QAAA,gBAAAC,EAACC,KAAU,SAASN,GAAc,OAAM,iBAAgB,UAAUE,GAChE,UAAA,gBAAAG,EAACE,GAAS,EAAA,OAAOd,EAAM,OAAOS,IAAyB,eAAe,OAAO,EAAG,CAAA,GAClF;AAAA,QACA,gBAAAG,EAACG,KAAK,WAAU,YAAW,QAAO,SAC/B,UAAAX,EAAK,eACR;AAAA,0BACCS,GAAU,EAAA,SAASL,GAAc,OAAM,iBAAgB,UAAUE,GAChE,UAAC,gBAAAE,EAAAI,GAAA,EAAU,OAAOhB,EAAM,OAAOU,IAAyB,eAAe,OAAO,EAAG,CAAA,GACnF;AAAA,MACF,EAAA,CAAA;AAAA,IAEJ;AAAA,IAEA,CAACV,EAAM,MAAM;AAAA,EAAA;AAGf,2BACGiB,GAAa,EAAA,YAAYlB,GACxB,UAAC,gBAAAa,EAAAM,GAAA,EACC,UAAA,gBAAAN;AAAA,IAACO;AAAA,IAAA;AAAA,MACC,UAAUtB;AAAA,MACV,qBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB,YAAW;AAAA,MACX,iBAAgB;AAAA,MAChB,UAAUK;AAAA,MACV,SAASkB,EAAa,oBAAA,KAAA,GAAQ,EAAE;AAAA,MAChC,SAASA,EAAa,oBAAA,KAAA,GAAQ,CAAC;AAAA,MAC/B,oBAAoBf;AAAA,IAAA;AAAA,EAAA,EAExB,CAAA,EACF,CAAA;AAEJ,GAEegB,IAAAC,EAAK1B,CAAe;"}
1
+ {"version":3,"file":"date-picker-input.js","sources":["../../../../../../src/features/auth/signup/custom-input-field/date-picker-input/date-picker-input.tsx"],"sourcesContent":["import { subYears } from 'date-fns';\nimport { type FC, memo, useCallback } from 'react';\nimport DatePicker, { type ReactDatePickerCustomHeaderProps } from 'react-datepicker';\nimport { useTheme } from 'styled-components';\n\nimport LeftIcon from '../../../../../assets/line-icons/icons/left';\nimport RightIcon from '../../../../../assets/line-icons/icons/right';\nimport Clickable from '../../../../ui/buttons/clickable/clickable';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport InputWrapper from '../input-wrapper/input-wrapper';\nimport * as Styled from './date-picker-input-styled';\nimport type { IDatePickerInputProps } from './date-picker-input-types';\n\nconst DatePickerInput: FC<IDatePickerInputProps> = ({ value, onChange, error }) => {\n const theme = useTheme();\n\n const handleChangeDate = useCallback((date: Date | null) => onChange(date), [onChange]);\n\n const renderHeader = useCallback(\n (props: ReactDatePickerCustomHeaderProps) => {\n const { date, decreaseYear, increaseYear, prevYearButtonDisabled, nextYearButtonDisabled } =\n props;\n\n return (\n <FlexView $alignItems=\"center\" $flexDirection=\"row\" $justifyContent=\"space-between\">\n <Clickable onClick={decreaseYear} label=\"increase-year\" disabled={prevYearButtonDisabled}>\n <LeftIcon color={theme.colors[prevYearButtonDisabled ? 'WHITE_T_10' : 'WHITE']} />\n </Clickable>\n <Text $renderAs=\"ub2-bold\" $color=\"WHITE\">\n {date.getFullYear()}\n </Text>\n <Clickable onClick={increaseYear} label=\"decrease-year\" disabled={nextYearButtonDisabled}>\n <RightIcon color={theme.colors[nextYearButtonDisabled ? 'WHITE_T_10' : 'WHITE']} />\n </Clickable>\n </FlexView>\n );\n },\n\n [theme.colors],\n );\n\n return (\n <InputWrapper helperText={error}>\n <Styled.StyledDatePickerWrapper>\n <DatePicker\n selected={value}\n showMonthYearPicker\n showPopperArrow={false}\n dateFormat=\"MM/yyyy\"\n placeholderText=\"MM / YYYY\"\n onChange={handleChangeDate}\n minDate={subYears(new Date(), 22)}\n maxDate={subYears(new Date(), 2)}\n renderCustomHeader={renderHeader}\n />\n </Styled.StyledDatePickerWrapper>\n </InputWrapper>\n );\n};\n\nexport default memo(DatePickerInput);\n"],"names":["DatePickerInput","value","onChange","error","theme","useTheme","handleChangeDate","useCallback","date","renderHeader","props","decreaseYear","increaseYear","prevYearButtonDisabled","nextYearButtonDisabled","FlexView","jsx","Clickable","LeftIcon","Text","RightIcon","InputWrapper","Styled.StyledDatePickerWrapper","DatePicker","subYears","datePickerInput","memo"],"mappings":";;;;;;;;;;;;AAcA,MAAMA,IAA6C,CAAC,EAAE,OAAAC,GAAO,UAAAC,GAAU,OAAAC,QAAY;AACjF,QAAMC,IAAQC,KAERC,IAAmBC,EAAY,CAACC,MAAsBN,EAASM,CAAI,GAAG,CAACN,CAAQ,CAAC,GAEhFO,IAAeF;AAAA,IACnB,CAACG,MAA4C;AAC3C,YAAM,EAAE,MAAAF,GAAM,cAAAG,GAAc,cAAAC,GAAc,wBAAAC,GAAwB,wBAAAC,EAChE,IAAAJ;AAEF,+BACGK,GAAS,EAAA,aAAY,UAAS,gBAAe,OAAM,iBAAgB,iBAClE,UAAA;AAAA,QAAA,gBAAAC,EAACC,KAAU,SAASN,GAAc,OAAM,iBAAgB,UAAUE,GAChE,UAAA,gBAAAG,EAACE,GAAS,EAAA,OAAOd,EAAM,OAAOS,IAAyB,eAAe,OAAO,EAAG,CAAA,GAClF;AAAA,QACA,gBAAAG,EAACG,KAAK,WAAU,YAAW,QAAO,SAC/B,UAAAX,EAAK,eACR;AAAA,0BACCS,GAAU,EAAA,SAASL,GAAc,OAAM,iBAAgB,UAAUE,GAChE,UAAC,gBAAAE,EAAAI,GAAA,EAAU,OAAOhB,EAAM,OAAOU,IAAyB,eAAe,OAAO,EAAG,CAAA,GACnF;AAAA,MACF,EAAA,CAAA;AAAA,IAEJ;AAAA,IAEA,CAACV,EAAM,MAAM;AAAA,EAAA;AAGf,2BACGiB,GAAa,EAAA,YAAYlB,GACxB,UAAC,gBAAAa,EAAAM,GAAA,EACC,UAAA,gBAAAN;AAAA,IAACO;AAAA,IAAA;AAAA,MACC,UAAUtB;AAAA,MACV,qBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB,YAAW;AAAA,MACX,iBAAgB;AAAA,MAChB,UAAUK;AAAA,MACV,SAASkB,EAAa,oBAAA,KAAA,GAAQ,EAAE;AAAA,MAChC,SAASA,EAAa,oBAAA,KAAA,GAAQ,CAAC;AAAA,MAC/B,oBAAoBf;AAAA,IAAA;AAAA,EAAA,EAExB,CAAA,EACF,CAAA;AAEJ,GAEegB,IAAAC,EAAK1B,CAAe;"}
@@ -1,44 +1,60 @@
1
- import { jsxs as o, jsx as e, Fragment as X } from "react/jsx-runtime";
2
- import { memo as w, useRef as P, useCallback as p, useEffect as V } from "react";
3
- import m from "../../ui/inputs/select-input/select-input.js";
4
- import t from "../../ui/layout/flex-view.js";
5
- import $ from "../../ui/text/text.js";
6
- import { AVErrorSOPWrapper as O, AVErrorStepList as E } from "./av-preview-styled.js";
7
- import S from "./hooks/use-get-troubleshooting-steps.js";
8
- import G from "./hooks/use-media-devices.js";
9
- const I = w(({ children: b, onDeviceUpdate: h, logger: A }) => {
10
- const v = P(null), {
11
- devices: n,
12
- selectedAudioDevice: s,
13
- selectedVideoDevice: d,
14
- selectedAudioOutputDevice: a,
15
- changeDevice: r,
16
- changeAudioOutputDevice: f,
17
- audioDeviceError: l,
18
- videoDeviceError: u
19
- } = G(v, A), g = u === "permissionDeniedBySystem" || u === "permissionDenied" || l === "permissionDeniedBySystem" || l === "permissionDenied", c = S(l, u), D = p(
20
- (i) => r(i, "audio"),
21
- [r]
22
- ), x = p(
23
- (i) => r(i, "video"),
24
- [r]
25
- ), y = p(
1
+ import { jsxs as n, jsx as e, Fragment as P } from "react/jsx-runtime";
2
+ import { memo as V, useRef as X, useCallback as f, useEffect as D } from "react";
3
+ import { useUserMedia as L } from "@cuemath/av";
4
+ import b from "../../ui/inputs/select-input/select-input.js";
5
+ import d from "../../ui/layout/flex-view.js";
6
+ import w from "../../ui/text/text.js";
7
+ import { AVErrorSOPWrapper as E, AVErrorStepList as k } from "./av-preview-styled.js";
8
+ import I from "./hooks/use-get-troubleshooting-steps.js";
9
+ const G = {
10
+ constraints: { audio: !0, video: !0 },
11
+ withDevices: !0,
12
+ setupListeners: !0
13
+ }, j = V(({ children: x, logger: g, onDeviceUpdate: $ }) => {
14
+ const s = X(null), {
15
+ selectedAudioDevice: a,
16
+ selectedVideoDevice: u,
17
+ videoDeviceError: c,
18
+ devices: l,
19
+ changeDevice: o,
20
+ selectedAudioOutputDevice: p,
21
+ audioDeviceError: m,
22
+ userMediaStream: h,
23
+ isAudioDeviceLoading: y,
24
+ isVideoDeviceLoading: C
25
+ } = L(G), A = c === "permissionDeniedBySystem" || c === "permissionDenied" || m === "permissionDeniedBySystem" || m === "permissionDenied", v = I(m, c), S = f(
26
+ (i) => o(i, "audio"),
27
+ [o]
28
+ ), _ = f(
29
+ (i) => o(i, "video"),
30
+ [o]
31
+ ), O = f(
26
32
  (i) => {
27
- f(i);
33
+ o(i, "audiooutput");
34
+ const r = s.current;
35
+ r && "setSinkId" in r && r.setSinkId(i).catch((t) => {
36
+ g("av_preview_set_audio_output_device_error", {
37
+ deviceId: i,
38
+ error_name: t == null ? void 0 : t.name,
39
+ error_message: t == null ? void 0 : t.message
40
+ });
41
+ });
28
42
  },
29
- [f]
43
+ [o, g]
30
44
  );
31
- return V(() => {
32
- h({
33
- audio: s,
34
- video: d,
35
- audioOutput: a
45
+ return D(() => {
46
+ $({
47
+ audio: a,
48
+ video: u,
49
+ audioOutput: p
36
50
  });
37
- }, [s, d, a, h]), /* @__PURE__ */ o(t, { $flexDirection: "row", $flexGapX: 2, children: [
38
- /* @__PURE__ */ e(t, { $widthX: 26, $heightX: 19.5, $background: "BLACK_1", children: /* @__PURE__ */ e(
51
+ }, [a, u, p, $]), D(() => {
52
+ s.current && h && (s.current.srcObject = h);
53
+ }, [h]), /* @__PURE__ */ n(d, { $flexDirection: "row", $flexGapX: 2, children: [
54
+ /* @__PURE__ */ e(d, { $widthX: 26, $heightX: 19.5, $background: "BLACK_1", children: /* @__PURE__ */ e(
39
55
  "video",
40
56
  {
41
- ref: v,
57
+ ref: s,
42
58
  id: "localVideo",
43
59
  autoPlay: !0,
44
60
  playsInline: !0,
@@ -47,60 +63,62 @@ const I = w(({ children: b, onDeviceUpdate: h, logger: A }) => {
47
63
  disablePictureInPicture: !0
48
64
  }
49
65
  ) }),
50
- /* @__PURE__ */ o(t, { $position: "relative", $widthX: 22, $flexGapX: 1, $justifyContent: "space-between", children: [
51
- /* @__PURE__ */ e(t, { $flexGapX: 1, children: !g && /* @__PURE__ */ o(X, { children: [
66
+ /* @__PURE__ */ n(d, { $position: "relative", $widthX: 22, $flexGapX: 1, $justifyContent: "space-between", children: [
67
+ /* @__PURE__ */ e(d, { $flexGapX: 1, children: !A && /* @__PURE__ */ n(P, { children: [
52
68
  /* @__PURE__ */ e(
53
- m,
69
+ b,
54
70
  {
55
71
  label: "Camera",
56
72
  renderAs: "primary",
57
73
  shape: "borderLess",
58
- options: n.video,
59
- value: d,
60
- onChange: x
74
+ options: l.video,
75
+ value: u,
76
+ onChange: _,
77
+ disabled: C
61
78
  }
62
79
  ),
63
80
  /* @__PURE__ */ e(
64
- m,
81
+ b,
65
82
  {
66
83
  label: "Microphone",
67
84
  renderAs: "primary",
68
85
  shape: "borderLess",
69
- options: n.audio,
70
- value: s,
71
- onChange: D
86
+ options: l.audio,
87
+ value: a,
88
+ onChange: S,
89
+ disabled: y
72
90
  }
73
91
  ),
74
92
  /* @__PURE__ */ e(
75
- m,
93
+ b,
76
94
  {
77
95
  label: "Speaker",
78
96
  renderAs: "primary",
79
97
  shape: "borderLess",
80
- options: n.audioOutput,
81
- value: a,
82
- onChange: y
98
+ options: l.audioOutput,
99
+ value: p,
100
+ onChange: O
83
101
  }
84
102
  ),
85
- /* @__PURE__ */ e("div", { children: b })
103
+ /* @__PURE__ */ e("div", { children: x })
86
104
  ] }) }),
87
- c && /* @__PURE__ */ o(
88
- O,
105
+ v && /* @__PURE__ */ n(
106
+ E,
89
107
  {
90
108
  $background: "ORANGE_2",
91
109
  $gutterX: 1,
92
110
  $gapX: 1,
93
- $width: g ? "100%" : "272px",
111
+ $width: A ? "100%" : "272px",
94
112
  children: [
95
- /* @__PURE__ */ e($, { $renderAs: "ab1-bold", $marginBottomX: 1, children: c.heading }),
96
- /* @__PURE__ */ e(E, { children: c.steps.map((i, C) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e($, { $renderAs: "ub1", children: i }) }, C)) })
113
+ /* @__PURE__ */ e(w, { $renderAs: "ab1-bold", $marginBottomX: 1, children: v.heading }),
114
+ /* @__PURE__ */ e(k, { children: v.steps.map((i, r) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(w, { $renderAs: "ub1", children: i }) }, r)) })
97
115
  ]
98
116
  }
99
117
  )
100
118
  ] })
101
119
  ] });
102
- }), _ = I;
120
+ }), q = j;
103
121
  export {
104
- _ as default
122
+ q as default
105
123
  };
106
124
  //# sourceMappingURL=av-preview.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"av-preview.js","sources":["../../../../src/features/av/av-preview/av-preview.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { memo, useCallback, useEffect, useRef } from 'react';\n\nimport SelectInput from '../../ui/inputs/select-input/select-input';\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport * as Styled from './av-preview-styled';\nimport type { ILogger } from './av-preview-types';\nimport useGetTroubleshootingInfo from './hooks/use-get-troubleshooting-steps';\nimport useMediaDevices from './hooks/use-media-devices';\n\ninterface IAVPreviewProps {\n children?: React.ReactNode;\n onDeviceUpdate: (selectedDevices: {\n audio?: string;\n video?: string;\n audioOutput?: string;\n }) => void;\n logger: ILogger;\n}\n\nconst AVPreview: FC<IAVPreviewProps> = memo(({ children, onDeviceUpdate, logger }) => {\n const videoRef = useRef<HTMLVideoElement>(null);\n const {\n devices,\n selectedAudioDevice,\n selectedVideoDevice,\n selectedAudioOutputDevice,\n changeDevice,\n changeAudioOutputDevice,\n audioDeviceError,\n videoDeviceError,\n } = useMediaDevices(videoRef, logger);\n const hasPermissionProblem =\n videoDeviceError === 'permissionDeniedBySystem' ||\n videoDeviceError === 'permissionDenied' ||\n audioDeviceError === 'permissionDeniedBySystem' ||\n audioDeviceError === 'permissionDenied';\n const troubleshootingInfo = useGetTroubleshootingInfo(audioDeviceError, videoDeviceError);\n\n const handleAudioDeviceChange = useCallback(\n (deviceId: string) => changeDevice(deviceId, 'audio'),\n [changeDevice],\n );\n\n const handleVideoDeviceChange = useCallback(\n (deviceId: string) => changeDevice(deviceId, 'video'),\n [changeDevice],\n );\n\n const handleAudioOutputDeviceChange = useCallback(\n (deviceId: string) => {\n changeAudioOutputDevice(deviceId);\n },\n [changeAudioOutputDevice],\n );\n\n // Call onDeviceUpdate when devices or selected devices change\n useEffect(() => {\n onDeviceUpdate({\n audio: selectedAudioDevice,\n video: selectedVideoDevice,\n audioOutput: selectedAudioOutputDevice,\n });\n }, [selectedAudioDevice, selectedVideoDevice, selectedAudioOutputDevice, onDeviceUpdate]);\n\n return (\n <FlexView $flexDirection=\"row\" $flexGapX={2}>\n <FlexView $widthX={26} $heightX={19.5} $background=\"BLACK_1\">\n <video\n ref={videoRef}\n id=\"localVideo\"\n autoPlay\n playsInline\n controls={false}\n muted={true}\n disablePictureInPicture\n />\n </FlexView>\n <FlexView $position=\"relative\" $widthX={22} $flexGapX={1} $justifyContent=\"space-between\">\n <FlexView $flexGapX={1}>\n {!hasPermissionProblem && (\n <>\n <SelectInput\n label=\"Camera\"\n renderAs=\"primary\"\n shape=\"borderLess\"\n options={devices.video}\n value={selectedVideoDevice}\n onChange={handleVideoDeviceChange}\n />\n <SelectInput\n label=\"Microphone\"\n renderAs=\"primary\"\n shape=\"borderLess\"\n options={devices.audio}\n value={selectedAudioDevice}\n onChange={handleAudioDeviceChange}\n />\n <SelectInput\n label=\"Speaker\"\n renderAs=\"primary\"\n shape=\"borderLess\"\n options={devices.audioOutput}\n value={selectedAudioOutputDevice}\n onChange={handleAudioOutputDeviceChange}\n />\n <div>{children}</div>\n </>\n )}\n </FlexView>\n {troubleshootingInfo && (\n <Styled.AVErrorSOPWrapper\n $background=\"ORANGE_2\"\n $gutterX={1}\n $gapX={1}\n $width={hasPermissionProblem ? '100%' : '272px'}\n >\n <Text $renderAs=\"ab1-bold\" $marginBottomX={1}>\n {troubleshootingInfo.heading}\n </Text>\n <Styled.AVErrorStepList>\n {troubleshootingInfo.steps.map((step, index) => (\n <li key={index}>\n <Text $renderAs=\"ub1\">{step}</Text>\n </li>\n ))}\n </Styled.AVErrorStepList>\n </Styled.AVErrorSOPWrapper>\n )}\n </FlexView>\n </FlexView>\n );\n});\n\nexport default AVPreview;\n"],"names":["AVPreview","memo","children","onDeviceUpdate","logger","videoRef","useRef","devices","selectedAudioDevice","selectedVideoDevice","selectedAudioOutputDevice","changeDevice","changeAudioOutputDevice","audioDeviceError","videoDeviceError","useMediaDevices","hasPermissionProblem","troubleshootingInfo","useGetTroubleshootingInfo","handleAudioDeviceChange","useCallback","deviceId","handleVideoDeviceChange","handleAudioOutputDeviceChange","useEffect","jsxs","FlexView","jsx","Fragment","SelectInput","Styled.AVErrorSOPWrapper","Text","Styled.AVErrorStepList","step","index","AVPreview$1"],"mappings":";;;;;;;;AAqBA,MAAMA,IAAiCC,EAAK,CAAC,EAAE,UAAAC,GAAU,gBAAAC,GAAgB,QAAAC,QAAa;AAC9E,QAAAC,IAAWC,EAAyB,IAAI,GACxC;AAAA,IACJ,SAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,2BAAAC;AAAA,IACA,cAAAC;AAAA,IACA,yBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,kBAAAC;AAAA,EAAA,IACEC,EAAgBV,GAAUD,CAAM,GAC9BY,IACJF,MAAqB,8BACrBA,MAAqB,sBACrBD,MAAqB,8BACrBA,MAAqB,oBACjBI,IAAsBC,EAA0BL,GAAkBC,CAAgB,GAElFK,IAA0BC;AAAA,IAC9B,CAACC,MAAqBV,EAAaU,GAAU,OAAO;AAAA,IACpD,CAACV,CAAY;AAAA,EAAA,GAGTW,IAA0BF;AAAA,IAC9B,CAACC,MAAqBV,EAAaU,GAAU,OAAO;AAAA,IACpD,CAACV,CAAY;AAAA,EAAA,GAGTY,IAAgCH;AAAA,IACpC,CAACC,MAAqB;AACpB,MAAAT,EAAwBS,CAAQ;AAAA,IAClC;AAAA,IACA,CAACT,CAAuB;AAAA,EAAA;AAI1B,SAAAY,EAAU,MAAM;AACC,IAAArB,EAAA;AAAA,MACb,OAAOK;AAAA,MACP,OAAOC;AAAA,MACP,aAAaC;AAAA,IAAA,CACd;AAAA,KACA,CAACF,GAAqBC,GAAqBC,GAA2BP,CAAc,CAAC,GAGrF,gBAAAsB,EAAAC,GAAA,EAAS,gBAAe,OAAM,WAAW,GACxC,UAAA;AAAA,IAAA,gBAAAC,EAACD,KAAS,SAAS,IAAI,UAAU,MAAM,aAAY,WACjD,UAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAKtB;AAAA,QACL,IAAG;AAAA,QACH,UAAQ;AAAA,QACR,aAAW;AAAA,QACX,UAAU;AAAA,QACV,OAAO;AAAA,QACP,yBAAuB;AAAA,MAAA;AAAA,IAAA,GAE3B;AAAA,IACA,gBAAAoB,EAACC,KAAS,WAAU,YAAW,SAAS,IAAI,WAAW,GAAG,iBAAgB,iBACxE,UAAA;AAAA,MAAA,gBAAAC,EAACD,GAAS,EAAA,WAAW,GAClB,UAAA,CAACV,KAEE,gBAAAS,EAAAG,GAAA,EAAA,UAAA;AAAA,QAAA,gBAAAD;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,UAAS;AAAA,YACT,OAAM;AAAA,YACN,SAAStB,EAAQ;AAAA,YACjB,OAAOE;AAAA,YACP,UAAUa;AAAA,UAAA;AAAA,QACZ;AAAA,QACA,gBAAAK;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,UAAS;AAAA,YACT,OAAM;AAAA,YACN,SAAStB,EAAQ;AAAA,YACjB,OAAOC;AAAA,YACP,UAAUW;AAAA,UAAA;AAAA,QACZ;AAAA,QACA,gBAAAQ;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,UAAS;AAAA,YACT,OAAM;AAAA,YACN,SAAStB,EAAQ;AAAA,YACjB,OAAOG;AAAA,YACP,UAAUa;AAAA,UAAA;AAAA,QACZ;AAAA,QACA,gBAAAI,EAAC,SAAK,UAAAzB,GAAS;AAAA,MAAA,EAAA,CACjB,EAEJ,CAAA;AAAA,MACCe,KACC,gBAAAQ;AAAA,QAACK;AAAAA,QAAA;AAAA,UACC,aAAY;AAAA,UACZ,UAAU;AAAA,UACV,OAAO;AAAA,UACP,QAAQd,IAAuB,SAAS;AAAA,UAExC,UAAA;AAAA,YAAA,gBAAAW,EAACI,KAAK,WAAU,YAAW,gBAAgB,GACxC,YAAoB,SACvB;AAAA,YACA,gBAAAJ,EAACK,GAAA,EACE,YAAoB,MAAM,IAAI,CAACC,GAAMC,wBACnC,MACC,EAAA,UAAA,gBAAAP,EAACI,KAAK,WAAU,OAAO,aAAK,EADrB,GAAAG,CAET,CACD,EACH,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GAEJ;AAAA,EACF,EAAA,CAAA;AAEJ,CAAC,GAEDC,IAAenC;"}
1
+ {"version":3,"file":"av-preview.js","sources":["../../../../src/features/av/av-preview/av-preview.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useRef, type FC } from 'react';\n\nimport { useUserMedia } from '@cuemath/av';\n\nimport SelectInput from '../../ui/inputs/select-input/select-input';\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport * as Styled from './av-preview-styled';\nimport type { ILogger } from './av-preview-types';\nimport useGetTroubleshootingInfo from './hooks/use-get-troubleshooting-steps';\n\ninterface IAVPreviewProps {\n children?: React.ReactNode;\n logger: ILogger;\n onDeviceUpdate: (selectedDevices: {\n audio?: string;\n video?: string;\n audioOutput?: string;\n }) => void;\n}\nconst OPTIONS = {\n constraints: { audio: true, video: true },\n withDevices: true,\n setupListeners: true,\n};\n\nconst AVPreview: FC<IAVPreviewProps> = memo(({ children, logger, onDeviceUpdate }) => {\n const videoRef = useRef<HTMLVideoElement>(null);\n const {\n selectedAudioDevice,\n selectedVideoDevice,\n videoDeviceError,\n devices,\n changeDevice,\n selectedAudioOutputDevice,\n audioDeviceError,\n userMediaStream,\n isAudioDeviceLoading,\n isVideoDeviceLoading,\n } = useUserMedia(OPTIONS);\n\n const hasPermissionProblem =\n videoDeviceError === 'permissionDeniedBySystem' ||\n videoDeviceError === 'permissionDenied' ||\n audioDeviceError === 'permissionDeniedBySystem' ||\n audioDeviceError === 'permissionDenied';\n const troubleshootingInfo = useGetTroubleshootingInfo(audioDeviceError, videoDeviceError);\n\n const handleAudioDeviceChange = useCallback(\n (deviceId: string) => changeDevice(deviceId, 'audio'),\n [changeDevice],\n );\n\n const handleVideoDeviceChange = useCallback(\n (deviceId: string) => changeDevice(deviceId, 'video'),\n [changeDevice],\n );\n\n const handleAudioOutputDeviceChange = useCallback(\n (deviceId: string) => {\n changeDevice(deviceId, 'audiooutput');\n const videoEl = videoRef.current;\n\n if (videoEl && 'setSinkId' in videoEl) {\n videoEl.setSinkId(deviceId).catch(error => {\n logger('av_preview_set_audio_output_device_error', {\n deviceId,\n error_name: error?.name,\n error_message: error?.message,\n });\n });\n }\n },\n [changeDevice, logger],\n );\n\n // Call onDeviceUpdate when devices or selected devices change\n useEffect(() => {\n onDeviceUpdate({\n audio: selectedAudioDevice,\n video: selectedVideoDevice,\n audioOutput: selectedAudioOutputDevice,\n });\n }, [selectedAudioDevice, selectedVideoDevice, selectedAudioOutputDevice, onDeviceUpdate]);\n\n useEffect(() => {\n if (videoRef.current && userMediaStream) {\n videoRef.current.srcObject = userMediaStream;\n }\n }, [userMediaStream]);\n\n return (\n <FlexView $flexDirection=\"row\" $flexGapX={2}>\n <FlexView $widthX={26} $heightX={19.5} $background=\"BLACK_1\">\n <video\n ref={videoRef}\n id=\"localVideo\"\n autoPlay\n playsInline\n controls={false}\n muted={true}\n disablePictureInPicture\n />\n </FlexView>\n <FlexView $position=\"relative\" $widthX={22} $flexGapX={1} $justifyContent=\"space-between\">\n <FlexView $flexGapX={1}>\n {!hasPermissionProblem && (\n <>\n <SelectInput\n label=\"Camera\"\n renderAs=\"primary\"\n shape=\"borderLess\"\n options={devices.video}\n value={selectedVideoDevice}\n onChange={handleVideoDeviceChange}\n disabled={isVideoDeviceLoading}\n />\n <SelectInput\n label=\"Microphone\"\n renderAs=\"primary\"\n shape=\"borderLess\"\n options={devices.audio}\n value={selectedAudioDevice}\n onChange={handleAudioDeviceChange}\n disabled={isAudioDeviceLoading}\n />\n <SelectInput\n label=\"Speaker\"\n renderAs=\"primary\"\n shape=\"borderLess\"\n options={devices.audioOutput}\n value={selectedAudioOutputDevice}\n onChange={handleAudioOutputDeviceChange}\n />\n <div>{children}</div>\n </>\n )}\n </FlexView>\n {troubleshootingInfo && (\n <Styled.AVErrorSOPWrapper\n $background=\"ORANGE_2\"\n $gutterX={1}\n $gapX={1}\n $width={hasPermissionProblem ? '100%' : '272px'}\n >\n <Text $renderAs=\"ab1-bold\" $marginBottomX={1}>\n {troubleshootingInfo.heading}\n </Text>\n <Styled.AVErrorStepList>\n {troubleshootingInfo.steps.map((step, index) => (\n <li key={index}>\n <Text $renderAs=\"ub1\">{step}</Text>\n </li>\n ))}\n </Styled.AVErrorStepList>\n </Styled.AVErrorSOPWrapper>\n )}\n </FlexView>\n </FlexView>\n );\n});\n\nexport default AVPreview;\n"],"names":["OPTIONS","AVPreview","memo","children","logger","onDeviceUpdate","videoRef","useRef","selectedAudioDevice","selectedVideoDevice","videoDeviceError","devices","changeDevice","selectedAudioOutputDevice","audioDeviceError","userMediaStream","isAudioDeviceLoading","isVideoDeviceLoading","useUserMedia","hasPermissionProblem","troubleshootingInfo","useGetTroubleshootingInfo","handleAudioDeviceChange","useCallback","deviceId","handleVideoDeviceChange","handleAudioOutputDeviceChange","videoEl","error","useEffect","jsxs","FlexView","jsx","Fragment","SelectInput","Styled.AVErrorSOPWrapper","Text","Styled.AVErrorStepList","step","index","AVPreview$1"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-get-troubleshooting-steps.js","sources":["../../../../../src/features/av/av-preview/hooks/use-get-troubleshooting-steps.ts"],"sourcesContent":["import type { TDeviceError } from '../av-preview-types';\n\ninterface IUseGetTroubleshootingInfo {\n (\n audioDeviceError?: TDeviceError,\n videoDeviceError?: TDeviceError,\n ):\n | {\n heading: string;\n steps: string[];\n imageElement?: React.ReactNode;\n }\n | undefined;\n}\n\n// window.location='x-apple.systempreferences:com.apple.preference.security?Privacy_Camera'\n// window.location='x-apple.systempreferences:com.apple.preference.security?Privacy_Microphone'\n\nconst useGetTroubleshootingInfo: IUseGetTroubleshootingInfo = (\n audioDeviceError,\n videoDeviceError,\n) => {\n switch (videoDeviceError) {\n case 'permissionDeniedBySystem':\n return {\n heading: 'Please allow your browser to access your camera from your system setting.',\n steps: [\n 'Open your system settings.',\n 'Navigate to Privacy & Security.',\n 'Find Camera permissions and ensure the browser is allowed access.',\n ],\n };\n case 'permissionDenied':\n return {\n heading: 'Please allow your browser to access your camera.',\n steps: [\n 'Click on the lock icon in the address bar.',\n 'Select \"Site settings\".',\n 'Find Camera permissions and ensure it is set to \"Allow\".',\n ],\n };\n case 'deviceNotFound':\n return {\n heading: 'No camera found',\n steps: [\n 'Ensure your camera is connected and turned on.',\n 'If you are using an external camera, check the connection.',\n 'Try refreshing the page or restarting your browser.',\n ],\n };\n case 'thirdPartyApps':\n return {\n heading: 'Camera is being used by another application',\n steps: [\n 'Close any other applications that might be using the camera.',\n 'Try refreshing the page or restarting your browser.',\n ],\n };\n case 'other':\n return {\n heading: 'An unknown error occurred with the camera',\n steps: [\n 'Try refreshing the page or restarting your browser.',\n 'Check if your camera is working in other applications.',\n 'If the issue persists, try using a different browser or device.',\n ],\n };\n }\n\n switch (audioDeviceError) {\n case 'permissionDeniedBySystem':\n return {\n heading: 'Please allow your browser to access your microphone from your system setting.',\n steps: [\n 'Open your system settings.',\n 'Navigate to Privacy & Security.',\n 'Find Microphone permissions and ensure the browser is allowed access.',\n ],\n };\n case 'permissionDenied':\n return {\n heading: 'Please allow your browser to access your microphone.',\n steps: [\n 'Click on the lock icon in the address bar.',\n 'Select \"Site settings\".',\n 'Find Microphone permissions and ensure it is set to \"Allow\".',\n ],\n };\n case 'deviceNotFound':\n return {\n heading: 'No microphone found',\n steps: [\n 'Ensure your microphone is connected and turned on.',\n 'If you are using an external microphone, check the connection.',\n 'Try refreshing the page or restarting your browser.',\n ],\n };\n case 'thirdPartyApps':\n return {\n heading: 'Microphone is being used by another application',\n steps: [\n 'Close any other applications that might be using the microphone.',\n 'Try refreshing the page or restarting your browser.',\n ],\n };\n case 'other':\n return {\n heading: 'An unknown error occurred with the microphone',\n steps: ['Try refreshing the page or restarting your browser.'],\n };\n }\n};\n\nexport default useGetTroubleshootingInfo;\n"],"names":["useGetTroubleshootingInfo","audioDeviceError","videoDeviceError"],"mappings":"AAkBM,MAAAA,IAAwD,CAC5DC,GACAC,MACG;AACH,UAAQA,GAAkB;AAAA,IACxB,KAAK;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAAA,IAEJ,KAAK;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAAA,IAEJ,KAAK;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAAA,IAEJ,KAAK;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAAA,IAEJ,KAAK;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAAA,EAEN;AAEA,UAAQD,GAAkB;AAAA,IACxB,KAAK;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAAA,IAEJ,KAAK;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAAA,IAEJ,KAAK;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAAA,IAEJ,KAAK;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAAA,IAEJ,KAAK;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,OAAO,CAAC,qDAAqD;AAAA,MAAA;AAAA,EAEnE;AACF;"}
1
+ {"version":3,"file":"use-get-troubleshooting-steps.js","sources":["../../../../../src/features/av/av-preview/hooks/use-get-troubleshooting-steps.ts"],"sourcesContent":["import { type TDeviceError } from '@cuemath/av/dist/types';\n\ninterface IUseGetTroubleshootingInfo {\n (\n audioDeviceError?: TDeviceError,\n videoDeviceError?: TDeviceError,\n ):\n | {\n heading: string;\n steps: string[];\n imageElement?: React.ReactNode;\n }\n | undefined;\n}\n\n// window.location='x-apple.systempreferences:com.apple.preference.security?Privacy_Camera'\n// window.location='x-apple.systempreferences:com.apple.preference.security?Privacy_Microphone'\n\nconst useGetTroubleshootingInfo: IUseGetTroubleshootingInfo = (\n audioDeviceError,\n videoDeviceError,\n) => {\n switch (videoDeviceError) {\n case 'permissionDeniedBySystem':\n return {\n heading: 'Please allow your browser to access your camera from your system setting.',\n steps: [\n 'Open your system settings.',\n 'Navigate to Privacy & Security.',\n 'Find Camera permissions and ensure the browser is allowed access.',\n ],\n };\n case 'permissionDenied':\n return {\n heading: 'Please allow your browser to access your camera.',\n steps: [\n 'Click on the lock icon in the address bar.',\n 'Select \"Site settings\".',\n 'Find Camera permissions and ensure it is set to \"Allow\".',\n ],\n };\n case 'deviceNotFound':\n return {\n heading: 'No camera found',\n steps: [\n 'Ensure your camera is connected and turned on.',\n 'If you are using an external camera, check the connection.',\n 'Try refreshing the page or restarting your browser.',\n ],\n };\n case 'thirdPartyApps':\n return {\n heading: 'Camera is being used by another application',\n steps: [\n 'Close any other applications that might be using the camera.',\n 'Try refreshing the page or restarting your browser.',\n ],\n };\n case 'other':\n return {\n heading: 'An unknown error occurred with the camera',\n steps: [\n 'Try refreshing the page or restarting your browser.',\n 'Check if your camera is working in other applications.',\n 'If the issue persists, try using a different browser or device.',\n ],\n };\n }\n\n switch (audioDeviceError) {\n case 'permissionDeniedBySystem':\n return {\n heading: 'Please allow your browser to access your microphone from your system setting.',\n steps: [\n 'Open your system settings.',\n 'Navigate to Privacy & Security.',\n 'Find Microphone permissions and ensure the browser is allowed access.',\n ],\n };\n case 'permissionDenied':\n return {\n heading: 'Please allow your browser to access your microphone.',\n steps: [\n 'Click on the lock icon in the address bar.',\n 'Select \"Site settings\".',\n 'Find Microphone permissions and ensure it is set to \"Allow\".',\n ],\n };\n case 'deviceNotFound':\n return {\n heading: 'No microphone found',\n steps: [\n 'Ensure your microphone is connected and turned on.',\n 'If you are using an external microphone, check the connection.',\n 'Try refreshing the page or restarting your browser.',\n ],\n };\n case 'thirdPartyApps':\n return {\n heading: 'Microphone is being used by another application',\n steps: [\n 'Close any other applications that might be using the microphone.',\n 'Try refreshing the page or restarting your browser.',\n ],\n };\n case 'other':\n return {\n heading: 'An unknown error occurred with the microphone',\n steps: ['Try refreshing the page or restarting your browser.'],\n };\n }\n};\n\nexport default useGetTroubleshootingInfo;\n"],"names":["useGetTroubleshootingInfo","audioDeviceError","videoDeviceError"],"mappings":"AAkBM,MAAAA,IAAwD,CAC5DC,GACAC,MACG;AACH,UAAQA,GAAkB;AAAA,IACxB,KAAK;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAAA,IAEJ,KAAK;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAAA,IAEJ,KAAK;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAAA,IAEJ,KAAK;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAAA,IAEJ,KAAK;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAAA,EAEN;AAEA,UAAQD,GAAkB;AAAA,IACxB,KAAK;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAAA,IAEJ,KAAK;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAAA,IAEJ,KAAK;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAAA,IAEJ,KAAK;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,UACL;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAAA,IAEJ,KAAK;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,OAAO,CAAC,qDAAqD;AAAA,MAAA;AAAA,EAEnE;AACF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"chapter-banner.js","sources":["../../../../../../src/features/chapters/chapter/comps/chapter-banner/chapter-banner.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { memo, useMemo } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport MilestoneProgressInfo from '../../../../milestone/create/comps/milestone-progress/milestone-progress';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport * as Styled from './chapter-banner-styled';\nimport type { IChapterBannerProps } from './chapter-banner-types';\n\nconst ChapterBanner: FC<IChapterBannerProps> = memo(\n ({ userChapterProgress, imageUrl, backgroundColor, ...restChapterBannerProps }) => {\n const { name, isDefocused } = restChapterBannerProps;\n\n const { layout, colors } = useTheme();\n const { gutter } = layout;\n\n const { total_core_sheets: totalCoreSheets } = userChapterProgress;\n\n const bannerBackgroundColor = useMemo(\n () => (isDefocused ? 'GREY_1' : backgroundColor),\n [backgroundColor, isDefocused],\n );\n\n return (\n <Styled.BannerWrapper\n $backgroundColor={colors[bannerBackgroundColor]}\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $flexGap={gutter}\n $width=\"100%\"\n $gapX={1.75}\n >\n <FlexView $widthX={49.25} $flexDirection=\"row\" $flexGapX={2} $alignItems=\"center\">\n <Styled.ImageContainer src={imageUrl} alt=\"Chapter Image\" />\n\n <FlexView $flexGapX={1}>\n <Text $renderAs=\"ah3\">{name}</Text>\n {!!totalCoreSheets && (\n <FlexView $flexDirection=\"row\" $flexGapX={2}>\n <MilestoneProgressInfo badgeSize={24} chapterProgress={userChapterProgress} />\n </FlexView>\n )}\n </FlexView>\n </FlexView>\n </Styled.BannerWrapper>\n );\n },\n);\n\nexport default ChapterBanner;\n"],"names":["ChapterBanner","memo","userChapterProgress","imageUrl","backgroundColor","restChapterBannerProps","name","isDefocused","layout","colors","useTheme","gutter","totalCoreSheets","bannerBackgroundColor","useMemo","jsx","Styled.BannerWrapper","jsxs","FlexView","Styled.ImageContainer","Text","MilestoneProgressInfo"],"mappings":";;;;;;;AAUA,MAAMA,IAAyCC;AAAA,EAC7C,CAAC,EAAE,qBAAAC,GAAqB,UAAAC,GAAU,iBAAAC,GAAiB,GAAGC,QAA6B;AAC3E,UAAA,EAAE,MAAAC,GAAM,aAAAC,EAAgB,IAAAF,GAExB,EAAE,QAAAG,GAAQ,QAAAC,EAAO,IAAIC,EAAS,GAC9B,EAAE,QAAAC,EAAW,IAAAH,GAEb,EAAE,mBAAmBI,EAAoB,IAAAV,GAEzCW,IAAwBC;AAAA,MAC5B,MAAOP,IAAc,WAAWH;AAAA,MAChC,CAACA,GAAiBG,CAAW;AAAA,IAAA;AAI7B,WAAA,gBAAAQ;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,kBAAkBP,EAAOI,CAAqB;AAAA,QAC9C,gBAAe;AAAA,QACf,aAAY;AAAA,QACZ,iBAAgB;AAAA,QAChB,UAAUF;AAAA,QACV,QAAO;AAAA,QACP,OAAO;AAAA,QAEP,UAAA,gBAAAM,EAACC,KAAS,SAAS,OAAO,gBAAe,OAAM,WAAW,GAAG,aAAY,UACvE,UAAA;AAAA,UAAA,gBAAAH,EAACI,GAAA,EAAsB,KAAKhB,GAAU,KAAI,iBAAgB;AAAA,UAE1D,gBAAAc,EAACC,GAAS,EAAA,WAAW,GACnB,UAAA;AAAA,YAAC,gBAAAH,EAAAK,GAAA,EAAK,WAAU,OAAO,UAAKd,GAAA;AAAA,YAC3B,CAAC,CAACM,KACD,gBAAAG,EAACG,KAAS,gBAAe,OAAM,WAAW,GACxC,4BAACG,GAAsB,EAAA,WAAW,IAAI,iBAAiBnB,EAAqB,CAAA,GAC9E;AAAA,UAAA,GAEJ;AAAA,QAAA,GACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;"}
1
+ {"version":3,"file":"chapter-banner.js","sources":["../../../../../../src/features/chapters/chapter/comps/chapter-banner/chapter-banner.tsx"],"sourcesContent":["import { memo, useMemo, type FC } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport MilestoneProgressInfo from '../../../../milestone/create/comps/milestone-progress/milestone-progress';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport * as Styled from './chapter-banner-styled';\nimport type { IChapterBannerProps } from './chapter-banner-types';\n\nconst ChapterBanner: FC<IChapterBannerProps> = memo(\n ({ userChapterProgress, imageUrl, backgroundColor, ...restChapterBannerProps }) => {\n const { name, isDefocused } = restChapterBannerProps;\n\n const { layout, colors } = useTheme();\n const { gutter } = layout;\n\n const { total_core_sheets: totalCoreSheets } = userChapterProgress;\n\n const bannerBackgroundColor = useMemo(\n () => (isDefocused ? 'GREY_1' : backgroundColor),\n [backgroundColor, isDefocused],\n );\n\n return (\n <Styled.BannerWrapper\n $backgroundColor={colors[bannerBackgroundColor]}\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $flexGap={gutter}\n $width=\"100%\"\n $gapX={1.75}\n >\n <FlexView $widthX={49.25} $flexDirection=\"row\" $flexGapX={2} $alignItems=\"center\">\n <Styled.ImageContainer src={imageUrl} alt=\"Chapter Image\" />\n\n <FlexView $flexGapX={1}>\n <Text $renderAs=\"ah3\">{name}</Text>\n {!!totalCoreSheets && (\n <FlexView $flexDirection=\"row\" $flexGapX={2}>\n <MilestoneProgressInfo badgeSize={24} chapterProgress={userChapterProgress} />\n </FlexView>\n )}\n </FlexView>\n </FlexView>\n </Styled.BannerWrapper>\n );\n },\n);\n\nexport default ChapterBanner;\n"],"names":["ChapterBanner","memo","userChapterProgress","imageUrl","backgroundColor","restChapterBannerProps","name","isDefocused","layout","colors","useTheme","gutter","totalCoreSheets","bannerBackgroundColor","useMemo","jsx","Styled.BannerWrapper","jsxs","FlexView","Styled.ImageContainer","Text","MilestoneProgressInfo"],"mappings":";;;;;;;AASA,MAAMA,IAAyCC;AAAA,EAC7C,CAAC,EAAE,qBAAAC,GAAqB,UAAAC,GAAU,iBAAAC,GAAiB,GAAGC,QAA6B;AAC3E,UAAA,EAAE,MAAAC,GAAM,aAAAC,EAAgB,IAAAF,GAExB,EAAE,QAAAG,GAAQ,QAAAC,EAAO,IAAIC,EAAS,GAC9B,EAAE,QAAAC,EAAW,IAAAH,GAEb,EAAE,mBAAmBI,EAAoB,IAAAV,GAEzCW,IAAwBC;AAAA,MAC5B,MAAOP,IAAc,WAAWH;AAAA,MAChC,CAACA,GAAiBG,CAAW;AAAA,IAAA;AAI7B,WAAA,gBAAAQ;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,kBAAkBP,EAAOI,CAAqB;AAAA,QAC9C,gBAAe;AAAA,QACf,aAAY;AAAA,QACZ,iBAAgB;AAAA,QAChB,UAAUF;AAAA,QACV,QAAO;AAAA,QACP,OAAO;AAAA,QAEP,UAAA,gBAAAM,EAACC,KAAS,SAAS,OAAO,gBAAe,OAAM,WAAW,GAAG,aAAY,UACvE,UAAA;AAAA,UAAA,gBAAAH,EAACI,GAAA,EAAsB,KAAKhB,GAAU,KAAI,iBAAgB;AAAA,UAE1D,gBAAAc,EAACC,GAAS,EAAA,WAAW,GACnB,UAAA;AAAA,YAAC,gBAAAH,EAAAK,GAAA,EAAK,WAAU,OAAO,UAAKd,GAAA;AAAA,YAC3B,CAAC,CAACM,KACD,gBAAAG,EAACG,KAAS,gBAAe,OAAM,WAAW,GACxC,4BAACG,GAAsB,EAAA,WAAW,IAAI,iBAAiBnB,EAAqB,CAAA,GAC9E;AAAA,UAAA,GAEJ;AAAA,QAAA,GACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"core-lessons.js","sources":["../../../../../../src/features/chapters/chapter/comps/core-lessons/core-lessons.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { memo } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport LessonsList from '../../../../sheets/lessons-list/lessons-list';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport * as Styled from './core-lessons-styled';\nimport type { ICoreLessonsProps } from './core-lessons-types';\n\nconst CoreLessons: FC<ICoreLessonsProps> = memo(\n ({ lessons, userChapterProgress, userType, ...restCoreLessonsProps }) => {\n const {\n lessonItemColorHue,\n onStart,\n onResume,\n onReattempt,\n onPreview,\n onReview,\n onReset,\n onChangeLocation,\n onMarkAsFamiliar,\n onMarkRelevant,\n onMarkIrrelevant,\n } = restCoreLessonsProps;\n\n const theme = useTheme();\n\n const { total_core_sheets: totalCoreSheets } = userChapterProgress;\n\n return (\n <Styled.CoreLessonContainer\n $flexGap={theme.layout.gutter * 1.5}\n data-testid=\"lessons-container\"\n >\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"space-between\">\n <Text $renderAs=\"ac4-black\" $color=\"REAL_BLACK_60\">\n lessons ({totalCoreSheets || '-'})\n </Text>\n </FlexView>\n\n <LessonsList\n emptyLessonsText=\"No core lessons available for this chapter\"\n lessons={lessons}\n userType={userType}\n lessonItemColorHue={lessonItemColorHue}\n onMarkAsFamiliar={onMarkAsFamiliar}\n onChangeLocation={onChangeLocation}\n onReset={onReset}\n onStart={onStart}\n onResume={onResume}\n onMarkIrrelevant={onMarkIrrelevant}\n onMarkRelevant={onMarkRelevant}\n onPreview={onPreview}\n onReview={onReview}\n onReattempt={onReattempt}\n />\n </Styled.CoreLessonContainer>\n );\n },\n);\n\nexport default CoreLessons;\n"],"names":["CoreLessons","memo","lessons","userChapterProgress","userType","restCoreLessonsProps","lessonItemColorHue","onStart","onResume","onReattempt","onPreview","onReview","onReset","onChangeLocation","onMarkAsFamiliar","onMarkRelevant","onMarkIrrelevant","theme","useTheme","totalCoreSheets","jsxs","Styled.CoreLessonContainer","jsx","FlexView","Text","LessonsList"],"mappings":";;;;;;;AAUA,MAAMA,IAAqCC;AAAA,EACzC,CAAC,EAAE,SAAAC,GAAS,qBAAAC,GAAqB,UAAAC,GAAU,GAAGC,QAA2B;AACjE,UAAA;AAAA,MACJ,oBAAAC;AAAA,MACA,SAAAC;AAAA,MACA,UAAAC;AAAA,MACA,aAAAC;AAAA,MACA,WAAAC;AAAA,MACA,UAAAC;AAAA,MACA,SAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,kBAAAC;AAAA,IACE,IAAAX,GAEEY,IAAQC,KAER,EAAE,mBAAmBC,EAAoB,IAAAhB;AAG7C,WAAA,gBAAAiB;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,UAAUJ,EAAM,OAAO,SAAS;AAAA,QAChC,eAAY;AAAA,QAEZ,UAAA;AAAA,UAAA,gBAAAK,EAACC,GAAS,EAAA,gBAAe,OAAM,aAAY,UAAS,iBAAgB,iBAClE,UAAA,gBAAAH,EAACI,GAAK,EAAA,WAAU,aAAY,QAAO,iBAAgB,UAAA;AAAA,YAAA;AAAA,YACvCL,KAAmB;AAAA,YAAI;AAAA,UAAA,EAAA,CACnC,EACF,CAAA;AAAA,UAEA,gBAAAG;AAAA,YAACG;AAAA,YAAA;AAAA,cACC,kBAAiB;AAAA,cACjB,SAAAvB;AAAA,cACA,UAAAE;AAAA,cACA,oBAAAE;AAAA,cACA,kBAAAQ;AAAA,cACA,kBAAAD;AAAA,cACA,SAAAD;AAAA,cACA,SAAAL;AAAA,cACA,UAAAC;AAAA,cACA,kBAAAQ;AAAA,cACA,gBAAAD;AAAA,cACA,WAAAL;AAAA,cACA,UAAAC;AAAA,cACA,aAAAF;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;"}
1
+ {"version":3,"file":"core-lessons.js","sources":["../../../../../../src/features/chapters/chapter/comps/core-lessons/core-lessons.tsx"],"sourcesContent":["import { memo, type FC } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport LessonsList from '../../../../sheets/lessons-list/lessons-list';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport * as Styled from './core-lessons-styled';\nimport type { ICoreLessonsProps } from './core-lessons-types';\n\nconst CoreLessons: FC<ICoreLessonsProps> = memo(\n ({ lessons, userChapterProgress, userType, ...restCoreLessonsProps }) => {\n const {\n lessonItemColorHue,\n onStart,\n onResume,\n onReattempt,\n onPreview,\n onReview,\n onReset,\n onChangeLocation,\n onMarkAsFamiliar,\n onMarkRelevant,\n onMarkIrrelevant,\n } = restCoreLessonsProps;\n\n const theme = useTheme();\n\n const { total_core_sheets: totalCoreSheets } = userChapterProgress;\n\n return (\n <Styled.CoreLessonContainer\n $flexGap={theme.layout.gutter * 1.5}\n data-testid=\"lessons-container\"\n >\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"space-between\">\n <Text $renderAs=\"ac4-black\" $color=\"REAL_BLACK_60\">\n lessons ({totalCoreSheets || '-'})\n </Text>\n </FlexView>\n\n <LessonsList\n emptyLessonsText=\"No core lessons available for this chapter\"\n lessons={lessons}\n userType={userType}\n lessonItemColorHue={lessonItemColorHue}\n onMarkAsFamiliar={onMarkAsFamiliar}\n onChangeLocation={onChangeLocation}\n onReset={onReset}\n onStart={onStart}\n onResume={onResume}\n onMarkIrrelevant={onMarkIrrelevant}\n onMarkRelevant={onMarkRelevant}\n onPreview={onPreview}\n onReview={onReview}\n onReattempt={onReattempt}\n />\n </Styled.CoreLessonContainer>\n );\n },\n);\n\nexport default CoreLessons;\n"],"names":["CoreLessons","memo","lessons","userChapterProgress","userType","restCoreLessonsProps","lessonItemColorHue","onStart","onResume","onReattempt","onPreview","onReview","onReset","onChangeLocation","onMarkAsFamiliar","onMarkRelevant","onMarkIrrelevant","theme","useTheme","totalCoreSheets","jsxs","Styled.CoreLessonContainer","jsx","FlexView","Text","LessonsList"],"mappings":";;;;;;;AASA,MAAMA,IAAqCC;AAAA,EACzC,CAAC,EAAE,SAAAC,GAAS,qBAAAC,GAAqB,UAAAC,GAAU,GAAGC,QAA2B;AACjE,UAAA;AAAA,MACJ,oBAAAC;AAAA,MACA,SAAAC;AAAA,MACA,UAAAC;AAAA,MACA,aAAAC;AAAA,MACA,WAAAC;AAAA,MACA,UAAAC;AAAA,MACA,SAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,kBAAAC;AAAA,IACE,IAAAX,GAEEY,IAAQC,KAER,EAAE,mBAAmBC,EAAoB,IAAAhB;AAG7C,WAAA,gBAAAiB;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,UAAUJ,EAAM,OAAO,SAAS;AAAA,QAChC,eAAY;AAAA,QAEZ,UAAA;AAAA,UAAA,gBAAAK,EAACC,GAAS,EAAA,gBAAe,OAAM,aAAY,UAAS,iBAAgB,iBAClE,UAAA,gBAAAH,EAACI,GAAK,EAAA,WAAU,aAAY,QAAO,iBAAgB,UAAA;AAAA,YAAA;AAAA,YACvCL,KAAmB;AAAA,YAAI;AAAA,UAAA,EAAA,CACnC,EACF,CAAA;AAAA,UAEA,gBAAAG;AAAA,YAACG;AAAA,YAAA;AAAA,cACC,kBAAiB;AAAA,cACjB,SAAAvB;AAAA,cACA,UAAAE;AAAA,cACA,oBAAAE;AAAA,cACA,kBAAAQ;AAAA,cACA,kBAAAD;AAAA,cACA,SAAAD;AAAA,cACA,SAAAL;AAAA,cACA,UAAAC;AAAA,cACA,kBAAAQ;AAAA,cACA,gBAAAD;AAAA,cACA,WAAAL;AAAA,cACA,UAAAC;AAAA,cACA,aAAAF;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"supplementary-resources.js","sources":["../../../../../../src/features/chapters/chapter/comps/supplementary-resources/supplementary-resources.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { memo, useCallback, useMemo, useRef, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport ResourcesList from '../../../../sheets/resources-list/resources-list';\nimport UIContext, { useUIContext } from '../../../../ui/context/context';\nimport useTrackingContext from '../../../../ui/context/use-tracking-context';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport type { IChapterDataProps } from '../../chapter-types';\nimport * as Styled from './supplementary-resources-styled';\nimport type { ISupplementaryResourcesProps } from './supplementary-resources-types';\nimport { getResourceTabName } from './utils';\n\nconst getDefaultSelectedTab = (\n groupedSheets: IChapterDataProps['sheets_data']['supplementary_sheets_grouped'],\n groupedSheetsSortOrder: IChapterDataProps['sheets_data']['supplementary_sheets_group_sort_order'],\n): string => {\n const sheetCategory = groupedSheetsSortOrder.find(category => {\n const categoryData = groupedSheets[category];\n\n return categoryData ? categoryData.length > 0 : undefined;\n });\n\n return sheetCategory ?? 'assigned';\n};\n\nconst SupplementaryResources: FC<ISupplementaryResourcesProps> = memo(\n ({ groupedSupplementarySheets, userType, isDefocused, ...restSupplementaryResourcesProps }) => {\n const {\n handleOnCreateExtraPractice,\n teacherId,\n groupedSupplementarySheetsSortOrder,\n ...sheetListCallbacks\n } = restSupplementaryResourcesProps;\n\n const theme = useTheme();\n const totalResourcesCount = useRef(0);\n\n const [selectedTab, setSelectedTab] = useState(() => {\n return getDefaultSelectedTab(groupedSupplementarySheets, groupedSupplementarySheetsSortOrder);\n });\n\n const analyticProps = useTrackingContext({ tab: selectedTab });\n const { onEvent: trackEvent } = useUIContext();\n\n const isTeacher = userType === 'TEACHER';\n\n const { keys: supplementarySheetCounts, newAssignedSheetsCount } = useMemo(() => {\n const assignedSheets = groupedSupplementarySheets.assigned ?? [];\n\n const newAssignedCount = assignedSheets.reduce((acc, assignedSheetData) => {\n if (assignedSheetData.state === 'NOT_STARTED') {\n return acc + 1;\n }\n\n return acc;\n }, 0);\n\n const keys: Partial<Record<string, number>> = {};\n\n if (newAssignedCount > 0) {\n keys.assigned = newAssignedCount;\n }\n\n totalResourcesCount.current = isTeacher ? 0 : assignedSheets.length;\n\n if (groupedSupplementarySheets) {\n groupedSupplementarySheetsSortOrder.forEach(suppSheetType => {\n const sheetData =\n groupedSupplementarySheets[suppSheetType as keyof typeof groupedSupplementarySheets] ||\n [];\n const sheetCount = sheetData.length;\n\n if (suppSheetType !== 'assigned' && isTeacher) {\n totalResourcesCount.current += sheetCount;\n }\n\n if (sheetCount) {\n keys[suppSheetType] = sheetCount;\n }\n });\n }\n\n return { keys, newAssignedSheetsCount: newAssignedCount };\n }, [groupedSupplementarySheets, groupedSupplementarySheetsSortOrder, isTeacher]);\n\n const handleOnTabSwitch = useCallback(\n (suppSheetKey: string) => {\n setSelectedTab(suppSheetKey);\n trackEvent('clicked', {\n cta: suppSheetKey,\n });\n },\n [trackEvent],\n );\n\n if (totalResourcesCount.current === 0) return null;\n\n return (\n <UIContext.Provider value={analyticProps}>\n <Styled.SupplementaryResourcesContainer\n $flexGap={theme.layout.gutter * 1.5}\n $widthX={47.5}\n $flexGapX={2}\n >\n <FlexView $flexGap={8}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n resources ({totalResourcesCount.current})\n </Text>\n\n {isTeacher && (\n <Text $renderAs=\"ub3\" $color=\"BLACK_T_60\">\n Only assigned sheets are visible to the student\n </Text>\n )}\n </FlexView>\n\n <Styled.ScrollFlexView $flexDirection=\"row\">\n {Object.entries(supplementarySheetCounts).map(entry => {\n const [suppSheetKey, sheetCount] = entry;\n\n const tabLabel = getResourceTabName(suppSheetKey, sheetCount ?? 0);\n\n return (\n <Styled.Tab\n key={suppSheetKey}\n $selected={selectedTab === suppSheetKey}\n onClick={() => handleOnTabSwitch(suppSheetKey)}\n >\n <FlexView $flexDirection=\"row\" $flexGapX={0.375}>\n <Text $renderAs={selectedTab === suppSheetKey ? 'cta2' : 'body2'}>\n {tabLabel}\n </Text>\n {suppSheetKey === 'assigned' && !!newAssignedSheetsCount && (\n <FlexView\n $background=\"GREEN_4\"\n $borderRadiusX={0.25}\n $gapX={0.125}\n $gutterX={0.25}\n $alignItems=\"center\"\n >\n <Styled.WrappedText $renderAs=\"eyebrow2\">\n {newAssignedSheetsCount} New\n </Styled.WrappedText>\n </FlexView>\n )}\n </FlexView>\n </Styled.Tab>\n );\n })}\n </Styled.ScrollFlexView>\n\n <ResourcesList\n userType={userType}\n sheets={groupedSupplementarySheets[selectedTab] ?? []}\n {...sheetListCallbacks}\n />\n </Styled.SupplementaryResourcesContainer>\n </UIContext.Provider>\n );\n },\n);\n\nexport default SupplementaryResources;\n"],"names":["getDefaultSelectedTab","groupedSheets","groupedSheetsSortOrder","category","categoryData","SupplementaryResources","memo","groupedSupplementarySheets","userType","isDefocused","restSupplementaryResourcesProps","handleOnCreateExtraPractice","teacherId","groupedSupplementarySheetsSortOrder","sheetListCallbacks","theme","useTheme","totalResourcesCount","useRef","selectedTab","setSelectedTab","useState","analyticProps","useTrackingContext","trackEvent","useUIContext","isTeacher","supplementarySheetCounts","newAssignedSheetsCount","useMemo","assignedSheets","newAssignedCount","acc","assignedSheetData","keys","suppSheetType","sheetCount","handleOnTabSwitch","useCallback","suppSheetKey","jsx","UIContext","jsxs","Styled.SupplementaryResourcesContainer","FlexView","Text","Styled.ScrollFlexView","entry","tabLabel","getResourceTabName","Styled.Tab","Styled.WrappedText","ResourcesList"],"mappings":"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"}
1
+ {"version":3,"file":"supplementary-resources.js","sources":["../../../../../../src/features/chapters/chapter/comps/supplementary-resources/supplementary-resources.tsx"],"sourcesContent":["import { memo, useCallback, useMemo, useRef, useState, type FC } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport ResourcesList from '../../../../sheets/resources-list/resources-list';\nimport UIContext, { useUIContext } from '../../../../ui/context/context';\nimport useTrackingContext from '../../../../ui/context/use-tracking-context';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport type { IChapterDataProps } from '../../chapter-types';\nimport * as Styled from './supplementary-resources-styled';\nimport type { ISupplementaryResourcesProps } from './supplementary-resources-types';\nimport { getResourceTabName } from './utils';\n\nconst getDefaultSelectedTab = (\n groupedSheets: IChapterDataProps['sheets_data']['supplementary_sheets_grouped'],\n groupedSheetsSortOrder: IChapterDataProps['sheets_data']['supplementary_sheets_group_sort_order'],\n): string => {\n const sheetCategory = groupedSheetsSortOrder.find(category => {\n const categoryData = groupedSheets[category];\n\n return categoryData ? categoryData.length > 0 : undefined;\n });\n\n return sheetCategory ?? 'assigned';\n};\n\nconst SupplementaryResources: FC<ISupplementaryResourcesProps> = memo(\n ({ groupedSupplementarySheets, userType, isDefocused, ...restSupplementaryResourcesProps }) => {\n const {\n handleOnCreateExtraPractice,\n teacherId,\n groupedSupplementarySheetsSortOrder,\n ...sheetListCallbacks\n } = restSupplementaryResourcesProps;\n\n const theme = useTheme();\n const totalResourcesCount = useRef(0);\n\n const [selectedTab, setSelectedTab] = useState(() => {\n return getDefaultSelectedTab(groupedSupplementarySheets, groupedSupplementarySheetsSortOrder);\n });\n\n const analyticProps = useTrackingContext({ tab: selectedTab });\n const { onEvent: trackEvent } = useUIContext();\n\n const isTeacher = userType === 'TEACHER';\n\n const { keys: supplementarySheetCounts, newAssignedSheetsCount } = useMemo(() => {\n const assignedSheets = groupedSupplementarySheets.assigned ?? [];\n\n const newAssignedCount = assignedSheets.reduce((acc, assignedSheetData) => {\n if (assignedSheetData.state === 'NOT_STARTED') {\n return acc + 1;\n }\n\n return acc;\n }, 0);\n\n const keys: Partial<Record<string, number>> = {};\n\n if (newAssignedCount > 0) {\n keys.assigned = newAssignedCount;\n }\n\n totalResourcesCount.current = isTeacher ? 0 : assignedSheets.length;\n\n if (groupedSupplementarySheets) {\n groupedSupplementarySheetsSortOrder.forEach(suppSheetType => {\n const sheetData =\n groupedSupplementarySheets[suppSheetType as keyof typeof groupedSupplementarySheets] ||\n [];\n const sheetCount = sheetData.length;\n\n if (suppSheetType !== 'assigned' && isTeacher) {\n totalResourcesCount.current += sheetCount;\n }\n\n if (sheetCount) {\n keys[suppSheetType] = sheetCount;\n }\n });\n }\n\n return { keys, newAssignedSheetsCount: newAssignedCount };\n }, [groupedSupplementarySheets, groupedSupplementarySheetsSortOrder, isTeacher]);\n\n const handleOnTabSwitch = useCallback(\n (suppSheetKey: string) => {\n setSelectedTab(suppSheetKey);\n trackEvent('clicked', {\n cta: suppSheetKey,\n });\n },\n [trackEvent],\n );\n\n if (totalResourcesCount.current === 0) return null;\n\n return (\n <UIContext.Provider value={analyticProps}>\n <Styled.SupplementaryResourcesContainer\n $flexGap={theme.layout.gutter * 1.5}\n $widthX={47.5}\n $flexGapX={2}\n >\n <FlexView $flexGap={8}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n resources ({totalResourcesCount.current})\n </Text>\n\n {isTeacher && (\n <Text $renderAs=\"ub3\" $color=\"BLACK_T_60\">\n Only assigned sheets are visible to the student\n </Text>\n )}\n </FlexView>\n\n <Styled.ScrollFlexView $flexDirection=\"row\">\n {Object.entries(supplementarySheetCounts).map(entry => {\n const [suppSheetKey, sheetCount] = entry;\n\n const tabLabel = getResourceTabName(suppSheetKey, sheetCount ?? 0);\n\n return (\n <Styled.Tab\n key={suppSheetKey}\n $selected={selectedTab === suppSheetKey}\n onClick={() => handleOnTabSwitch(suppSheetKey)}\n >\n <FlexView $flexDirection=\"row\" $flexGapX={0.375}>\n <Text $renderAs={selectedTab === suppSheetKey ? 'cta2' : 'body2'}>\n {tabLabel}\n </Text>\n {suppSheetKey === 'assigned' && !!newAssignedSheetsCount && (\n <FlexView\n $background=\"GREEN_4\"\n $borderRadiusX={0.25}\n $gapX={0.125}\n $gutterX={0.25}\n $alignItems=\"center\"\n >\n <Styled.WrappedText $renderAs=\"eyebrow2\">\n {newAssignedSheetsCount} New\n </Styled.WrappedText>\n </FlexView>\n )}\n </FlexView>\n </Styled.Tab>\n );\n })}\n </Styled.ScrollFlexView>\n\n <ResourcesList\n userType={userType}\n sheets={groupedSupplementarySheets[selectedTab] ?? []}\n {...sheetListCallbacks}\n />\n </Styled.SupplementaryResourcesContainer>\n </UIContext.Provider>\n );\n },\n);\n\nexport default SupplementaryResources;\n"],"names":["getDefaultSelectedTab","groupedSheets","groupedSheetsSortOrder","category","categoryData","SupplementaryResources","memo","groupedSupplementarySheets","userType","isDefocused","restSupplementaryResourcesProps","handleOnCreateExtraPractice","teacherId","groupedSupplementarySheetsSortOrder","sheetListCallbacks","theme","useTheme","totalResourcesCount","useRef","selectedTab","setSelectedTab","useState","analyticProps","useTrackingContext","trackEvent","useUIContext","isTeacher","supplementarySheetCounts","newAssignedSheetsCount","useMemo","assignedSheets","newAssignedCount","acc","assignedSheetData","keys","suppSheetType","sheetCount","handleOnTabSwitch","useCallback","suppSheetKey","jsx","UIContext","jsxs","Styled.SupplementaryResourcesContainer","FlexView","Text","Styled.ScrollFlexView","entry","tabLabel","getResourceTabName","Styled.Tab","Styled.WrappedText","ResourcesList"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chapter-item.js","sources":["../../../../../src/features/chapters/chapters-list/chapter-item/chapter-item.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { useCallback, useLayoutEffect, useRef, useState, memo } from 'react';\n\nimport Check2Icon from '../../../../assets/line-icons/icons/check2';\nimport ArrowTooltip from '../../../ui/arrow-tooltip/arrow-tooltip';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport * as Styled from './chapter-item-styled';\nimport type { IChapterItemProps } from './chapter-item-types';\n\nconst ChapterItem: FC<IChapterItemProps> = memo(\n ({ milestoneId, chapter, onChapterClick, itemIndex, shouldShowItemIndex }) => {\n const {\n name,\n image_url: imageUrl,\n progress_stat: chapterProgressStat,\n image_hue: imageHue,\n } = chapter;\n const { mandatory, optional } = chapterProgressStat || {};\n const { completed = 0, total: totalMandatory = 0 } = mandatory || {};\n const { total: optionalTotal = 0 } = optional || {};\n const [showTitleTooltip, setShowTitleTooltip] = useState(false);\n const titleTextRef = useRef<HTMLDivElement>(null);\n const completionPercentage =\n completed > 0 ? Math.floor((completed / totalMandatory || 1) * 100) : 0;\n const totalSheets = totalMandatory + optionalTotal;\n const handleOnChapterClick = useCallback(() => {\n if (totalSheets === 0) {\n return null;\n }\n\n onChapterClick(chapter, milestoneId);\n }, [chapter, milestoneId, onChapterClick, totalSheets]);\n\n useLayoutEffect(() => {\n if (\n titleTextRef.current &&\n titleTextRef.current.scrollHeight > titleTextRef.current.clientHeight\n ) {\n setShowTitleTooltip(true);\n }\n }, [titleTextRef]);\n\n return (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem=\"Coming soon! We’re building this chapter\"\n hidden={totalSheets > 0}\n parentWidth=\"100%\"\n zIndex={5}\n >\n <Styled.ChapterItemWrapper\n id={`milestone-chapter-${milestoneId || ''}-${itemIndex}`}\n $alignItems=\"center\"\n $gapX={1}\n $gutterX={1}\n $flexGap={8}\n $background=\"WHITE_1\"\n onClick={handleOnChapterClick}\n className=\"goal-widget-chapter-item\"\n $bgColor={`${imageHue}_1`}\n shouldHideClick={totalSheets === 0}\n >\n <Styled.ChapterImageWrapper\n $width=\"fit-content\"\n $position=\"relative\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n >\n <Styled.ChapterProgressWrapper>\n <Styled.ChapterProgressSVG width=\"96px\" height=\"96px\">\n <Styled.ChapterProgressSVGCircle $progress={0} r=\"47\" cx=\"48\" cy=\"48\" />\n <Styled.ChapterProgressSVGCircle\n $progressCircle\n $progress={completionPercentage * 2.98}\n r=\"47\"\n cx=\"48\"\n cy=\"48\"\n />\n </Styled.ChapterProgressSVG>\n </Styled.ChapterProgressWrapper>\n\n <Styled.ChapterImage src={imageUrl} alt=\"Chapter Image\" />\n\n {completionPercentage === 100 && (\n <Styled.StyledCheckIconWrapper>\n <Check2Icon width={20} height={20} />\n </Styled.StyledCheckIconWrapper>\n )}\n </Styled.ChapterImageWrapper>\n\n <FlexView $justifyContent=\"center\" $alignItems=\"center\">\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={name}\n hidden={!showTitleTooltip}\n widthX={21.75}\n zIndex={5}\n >\n <Styled.ChapterName\n ref={titleTextRef}\n $renderAs=\"ab2\"\n $color=\"BLACK_T_87\"\n $align=\"center\"\n >\n {name}\n </Styled.ChapterName>\n </ArrowTooltip>\n </FlexView>\n {!!shouldShowItemIndex && (\n <Styled.ChapterItemNumberWrapper\n $background=\"WHITE_4\"\n $widthX={1.75}\n $heightX={1.75}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n <Text $renderAs=\"ab2\" $color=\"BLACK_1\" $align=\"center\">\n {itemIndex + 1}\n </Text>\n </Styled.ChapterItemNumberWrapper>\n )}\n </Styled.ChapterItemWrapper>\n </ArrowTooltip>\n );\n },\n);\n\nexport default ChapterItem;\n"],"names":["ChapterItem","memo","milestoneId","chapter","onChapterClick","itemIndex","shouldShowItemIndex","name","imageUrl","chapterProgressStat","imageHue","mandatory","optional","completed","totalMandatory","optionalTotal","showTitleTooltip","setShowTitleTooltip","useState","titleTextRef","useRef","completionPercentage","totalSheets","handleOnChapterClick","useCallback","useLayoutEffect","jsx","ArrowTooltip","jsxs","Styled.ChapterItemWrapper","Styled.ChapterImageWrapper","Styled.ChapterProgressWrapper","Styled.ChapterProgressSVG","Styled.ChapterProgressSVGCircle","Styled.ChapterImage","Styled.StyledCheckIconWrapper","Check2Icon","FlexView","Styled.ChapterName","Styled.ChapterItemNumberWrapper","Text"],"mappings":"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"}
1
+ {"version":3,"file":"chapter-item.js","sources":["../../../../../src/features/chapters/chapters-list/chapter-item/chapter-item.tsx"],"sourcesContent":["import { useCallback, useLayoutEffect, useRef, useState, memo, type FC } from 'react';\n\nimport Check2Icon from '../../../../assets/line-icons/icons/check2';\nimport ArrowTooltip from '../../../ui/arrow-tooltip/arrow-tooltip';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport * as Styled from './chapter-item-styled';\nimport type { IChapterItemProps } from './chapter-item-types';\n\nconst ChapterItem: FC<IChapterItemProps> = memo(\n ({ milestoneId, chapter, onChapterClick, itemIndex, shouldShowItemIndex }) => {\n const {\n name,\n image_url: imageUrl,\n progress_stat: chapterProgressStat,\n image_hue: imageHue,\n } = chapter;\n const { mandatory, optional } = chapterProgressStat || {};\n const { completed = 0, total: totalMandatory = 0 } = mandatory || {};\n const { total: optionalTotal = 0 } = optional || {};\n const [showTitleTooltip, setShowTitleTooltip] = useState(false);\n const titleTextRef = useRef<HTMLDivElement>(null);\n const completionPercentage =\n completed > 0 ? Math.floor((completed / totalMandatory || 1) * 100) : 0;\n const totalSheets = totalMandatory + optionalTotal;\n const handleOnChapterClick = useCallback(() => {\n if (totalSheets === 0) {\n return null;\n }\n\n onChapterClick(chapter, milestoneId);\n }, [chapter, milestoneId, onChapterClick, totalSheets]);\n\n useLayoutEffect(() => {\n if (\n titleTextRef.current &&\n titleTextRef.current.scrollHeight > titleTextRef.current.clientHeight\n ) {\n setShowTitleTooltip(true);\n }\n }, [titleTextRef]);\n\n return (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem=\"Coming soon! We’re building this chapter\"\n hidden={totalSheets > 0}\n parentWidth=\"100%\"\n zIndex={5}\n >\n <Styled.ChapterItemWrapper\n id={`milestone-chapter-${milestoneId || ''}-${itemIndex}`}\n $alignItems=\"center\"\n $gapX={1}\n $gutterX={1}\n $flexGap={8}\n $background=\"WHITE_1\"\n onClick={handleOnChapterClick}\n className=\"goal-widget-chapter-item\"\n $bgColor={`${imageHue}_1`}\n shouldHideClick={totalSheets === 0}\n >\n <Styled.ChapterImageWrapper\n $width=\"fit-content\"\n $position=\"relative\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n >\n <Styled.ChapterProgressWrapper>\n <Styled.ChapterProgressSVG width=\"96px\" height=\"96px\">\n <Styled.ChapterProgressSVGCircle $progress={0} r=\"47\" cx=\"48\" cy=\"48\" />\n <Styled.ChapterProgressSVGCircle\n $progressCircle\n $progress={completionPercentage * 2.98}\n r=\"47\"\n cx=\"48\"\n cy=\"48\"\n />\n </Styled.ChapterProgressSVG>\n </Styled.ChapterProgressWrapper>\n\n <Styled.ChapterImage src={imageUrl} alt=\"Chapter Image\" />\n\n {completionPercentage === 100 && (\n <Styled.StyledCheckIconWrapper>\n <Check2Icon width={20} height={20} />\n </Styled.StyledCheckIconWrapper>\n )}\n </Styled.ChapterImageWrapper>\n\n <FlexView $justifyContent=\"center\" $alignItems=\"center\">\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={name}\n hidden={!showTitleTooltip}\n widthX={21.75}\n zIndex={5}\n >\n <Styled.ChapterName\n ref={titleTextRef}\n $renderAs=\"ab2\"\n $color=\"BLACK_T_87\"\n $align=\"center\"\n >\n {name}\n </Styled.ChapterName>\n </ArrowTooltip>\n </FlexView>\n {!!shouldShowItemIndex && (\n <Styled.ChapterItemNumberWrapper\n $background=\"WHITE_4\"\n $widthX={1.75}\n $heightX={1.75}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n <Text $renderAs=\"ab2\" $color=\"BLACK_1\" $align=\"center\">\n {itemIndex + 1}\n </Text>\n </Styled.ChapterItemNumberWrapper>\n )}\n </Styled.ChapterItemWrapper>\n </ArrowTooltip>\n );\n },\n);\n\nexport default ChapterItem;\n"],"names":["ChapterItem","memo","milestoneId","chapter","onChapterClick","itemIndex","shouldShowItemIndex","name","imageUrl","chapterProgressStat","imageHue","mandatory","optional","completed","totalMandatory","optionalTotal","showTitleTooltip","setShowTitleTooltip","useState","titleTextRef","useRef","completionPercentage","totalSheets","handleOnChapterClick","useCallback","useLayoutEffect","jsx","ArrowTooltip","jsxs","Styled.ChapterItemWrapper","Styled.ChapterImageWrapper","Styled.ChapterProgressWrapper","Styled.ChapterProgressSVG","Styled.ChapterProgressSVGCircle","Styled.ChapterImage","Styled.StyledCheckIconWrapper","Check2Icon","FlexView","Styled.ChapterName","Styled.ChapterItemNumberWrapper","Text"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chapters-list.js","sources":["../../../../src/features/chapters/chapters-list/chapters-list.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { memo, useCallback } from 'react';\n\nimport { IMAGES } from '../../../assets/images/images';\nimport ArrowTooltip from '../../ui/arrow-tooltip/arrow-tooltip';\nimport Button from '../../ui/buttons/button/button';\nimport { useUIContext } from '../../ui/context/context';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport ChapterItem from './chapter-item/chapter-item';\nimport * as Styled from './chapters-list-styled';\nimport type { IChaptersListProps } from './chapters-list-types';\n\nconst ChaptersList: FC<IChaptersListProps> = memo(\n ({ milestoneId, canUpdatePlan, chapters, ...restChaptersList }) => {\n const { isGoalCreation, userType, onChapterClick, onAddChapter, isMilestoneActive } =\n restChaptersList;\n\n const { onClick: trackOnClick } = useUIContext();\n\n const handleOnAddChapter = useCallback(() => {\n trackOnClick({\n label: 'add_chapter_icon',\n props: {\n milestone_id: milestoneId,\n },\n });\n onAddChapter?.({ milestoneId, isGoalCreation });\n }, [milestoneId, isGoalCreation, onAddChapter, trackOnClick]);\n\n if (!chapters.length) {\n return (\n <Styled.ChaptersListContainer\n $gapX={6.75}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $background=\"WHITE\"\n >\n <img src={IMAGES.EMPTY_MIX_TESTS} alt=\"empty_mix_tests\" />\n <Separator heightX={2} />\n {userType === 'TEACHER' ? (\n <>\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n hidden={isMilestoneActive}\n tooltipItem=\"Plan is completed\"\n >\n <Button\n widthX={10}\n renderAs=\"primary\"\n shape=\"square\"\n size=\"small\"\n label=\"Add chapter\"\n onClick={handleOnAddChapter}\n disabled={!isMilestoneActive || !canUpdatePlan}\n analyticsProps={{\n milestone_id: milestoneId,\n }}\n />\n </ArrowTooltip>\n <Separator heightX={2} />\n </>\n ) : (\n <Text $renderAs=\"ab2-bold\" $color=\"BLACK_T_87\">\n Wait for the teacher to add a chapter\n </Text>\n )}\n </Styled.ChaptersListContainer>\n );\n }\n\n return (\n <Styled.ChaptersListContainer>\n <Styled.ChaptersWrapper>\n {chapters.map((chapter, idx) => {\n const { id } = chapter;\n\n return (\n <ChapterItem\n key={id}\n milestoneId={milestoneId}\n chapter={chapter}\n onChapterClick={onChapterClick}\n itemIndex={idx}\n shouldShowItemIndex\n />\n );\n })}\n </Styled.ChaptersWrapper>\n </Styled.ChaptersListContainer>\n );\n },\n);\n\nexport default ChaptersList;\n"],"names":["ChaptersList","memo","milestoneId","canUpdatePlan","chapters","restChaptersList","isGoalCreation","userType","onChapterClick","onAddChapter","isMilestoneActive","trackOnClick","useUIContext","handleOnAddChapter","useCallback","jsx","Styled.ChaptersListContainer","Styled.ChaptersWrapper","chapter","idx","id","ChapterItem","jsxs","IMAGES","Separator","Fragment","ArrowTooltip","Button","Text","ChaptersList$1"],"mappings":";;;;;;;;;;AAaA,MAAMA,IAAuCC;AAAA,EAC3C,CAAC,EAAE,aAAAC,GAAa,eAAAC,GAAe,UAAAC,GAAU,GAAGC,QAAuB;AACjE,UAAM,EAAE,gBAAAC,GAAgB,UAAAC,GAAU,gBAAAC,GAAgB,cAAAC,GAAc,mBAAAC,EAC9D,IAAAL,GAEI,EAAE,SAASM,EAAa,IAAIC,EAAa,GAEzCC,IAAqBC,EAAY,MAAM;AAC9B,MAAAH,EAAA;AAAA,QACX,OAAO;AAAA,QACP,OAAO;AAAA,UACL,cAAcT;AAAA,QAChB;AAAA,MAAA,CACD,GACcO,KAAA,QAAAA,EAAA,EAAE,aAAAP,GAAa,gBAAAI,EAAA;AAAA,OAC7B,CAACJ,GAAaI,GAAgBG,GAAcE,CAAY,CAAC;AAExD,WAACP,EAAS,SA2CX,gBAAAW,EAAAC,GAAA,EACC,UAAC,gBAAAD,EAAAE,GAAA,EACE,UAASb,EAAA,IAAI,CAACc,GAASC,MAAQ;AACxB,YAAA,EAAE,IAAAC,EAAO,IAAAF;AAGb,aAAA,gBAAAH;AAAA,QAACM;AAAA,QAAA;AAAA,UAEC,aAAAnB;AAAA,UACA,SAAAgB;AAAA,UACA,gBAAAV;AAAA,UACA,WAAWW;AAAA,UACX,qBAAmB;AAAA,QAAA;AAAA,QALdC;AAAA,MAAA;AAAA,IAMP,CAEH,GACH,EACF,CAAA,IA1DE,gBAAAE;AAAA,MAACN;AAAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,aAAY;AAAA,QACZ,iBAAgB;AAAA,QAChB,aAAY;AAAA,QAEZ,UAAA;AAAA,UAAA,gBAAAD,EAAC,OAAI,EAAA,KAAKQ,EAAO,iBAAiB,KAAI,mBAAkB;AAAA,UACxD,gBAAAR,EAACS,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,UACtBjB,MAAa,YAEV,gBAAAe,EAAAG,GAAA,EAAA,UAAA;AAAA,YAAA,gBAAAV;AAAA,cAACW;AAAA,cAAA;AAAA,gBACC,UAAS;AAAA,gBACT,UAAS;AAAA,gBACT,QAAQhB;AAAA,gBACR,aAAY;AAAA,gBAEZ,UAAA,gBAAAK;AAAA,kBAACY;AAAA,kBAAA;AAAA,oBACC,QAAQ;AAAA,oBACR,UAAS;AAAA,oBACT,OAAM;AAAA,oBACN,MAAK;AAAA,oBACL,OAAM;AAAA,oBACN,SAASd;AAAA,oBACT,UAAU,CAACH,KAAqB,CAACP;AAAA,oBACjC,gBAAgB;AAAA,sBACd,cAAcD;AAAA,oBAChB;AAAA,kBAAA;AAAA,gBACF;AAAA,cAAA;AAAA,YACF;AAAA,YACA,gBAAAa,EAACS,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,UAAA,EAAA,CACzB,IAEC,gBAAAT,EAAAa,GAAA,EAAK,WAAU,YAAW,QAAO,cAAa,UAE/C,yCAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EA0BV;AACF,GAEAC,IAAe7B;"}
1
+ {"version":3,"file":"chapters-list.js","sources":["../../../../src/features/chapters/chapters-list/chapters-list.tsx"],"sourcesContent":["import { memo, useCallback, type FC } from 'react';\n\nimport { IMAGES } from '../../../assets/images/images';\nimport ArrowTooltip from '../../ui/arrow-tooltip/arrow-tooltip';\nimport Button from '../../ui/buttons/button/button';\nimport { useUIContext } from '../../ui/context/context';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport ChapterItem from './chapter-item/chapter-item';\nimport * as Styled from './chapters-list-styled';\nimport type { IChaptersListProps } from './chapters-list-types';\n\nconst ChaptersList: FC<IChaptersListProps> = memo(\n ({ milestoneId, canUpdatePlan, chapters, ...restChaptersList }) => {\n const { isGoalCreation, userType, onChapterClick, onAddChapter, isMilestoneActive } =\n restChaptersList;\n\n const { onClick: trackOnClick } = useUIContext();\n\n const handleOnAddChapter = useCallback(() => {\n trackOnClick({\n label: 'add_chapter_icon',\n props: {\n milestone_id: milestoneId,\n },\n });\n onAddChapter?.({ milestoneId, isGoalCreation });\n }, [milestoneId, isGoalCreation, onAddChapter, trackOnClick]);\n\n if (!chapters.length) {\n return (\n <Styled.ChaptersListContainer\n $gapX={6.75}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $background=\"WHITE\"\n >\n <img src={IMAGES.EMPTY_MIX_TESTS} alt=\"empty_mix_tests\" />\n <Separator heightX={2} />\n {userType === 'TEACHER' ? (\n <>\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n hidden={isMilestoneActive}\n tooltipItem=\"Plan is completed\"\n >\n <Button\n widthX={10}\n renderAs=\"primary\"\n shape=\"square\"\n size=\"small\"\n label=\"Add chapter\"\n onClick={handleOnAddChapter}\n disabled={!isMilestoneActive || !canUpdatePlan}\n analyticsProps={{\n milestone_id: milestoneId,\n }}\n />\n </ArrowTooltip>\n <Separator heightX={2} />\n </>\n ) : (\n <Text $renderAs=\"ab2-bold\" $color=\"BLACK_T_87\">\n Wait for the teacher to add a chapter\n </Text>\n )}\n </Styled.ChaptersListContainer>\n );\n }\n\n return (\n <Styled.ChaptersListContainer>\n <Styled.ChaptersWrapper>\n {chapters.map((chapter, idx) => {\n const { id } = chapter;\n\n return (\n <ChapterItem\n key={id}\n milestoneId={milestoneId}\n chapter={chapter}\n onChapterClick={onChapterClick}\n itemIndex={idx}\n shouldShowItemIndex\n />\n );\n })}\n </Styled.ChaptersWrapper>\n </Styled.ChaptersListContainer>\n );\n },\n);\n\nexport default ChaptersList;\n"],"names":["ChaptersList","memo","milestoneId","canUpdatePlan","chapters","restChaptersList","isGoalCreation","userType","onChapterClick","onAddChapter","isMilestoneActive","trackOnClick","useUIContext","handleOnAddChapter","useCallback","jsx","Styled.ChaptersListContainer","Styled.ChaptersWrapper","chapter","idx","id","ChapterItem","jsxs","IMAGES","Separator","Fragment","ArrowTooltip","Button","Text","ChaptersList$1"],"mappings":";;;;;;;;;;AAYA,MAAMA,IAAuCC;AAAA,EAC3C,CAAC,EAAE,aAAAC,GAAa,eAAAC,GAAe,UAAAC,GAAU,GAAGC,QAAuB;AACjE,UAAM,EAAE,gBAAAC,GAAgB,UAAAC,GAAU,gBAAAC,GAAgB,cAAAC,GAAc,mBAAAC,EAC9D,IAAAL,GAEI,EAAE,SAASM,EAAa,IAAIC,EAAa,GAEzCC,IAAqBC,EAAY,MAAM;AAC9B,MAAAH,EAAA;AAAA,QACX,OAAO;AAAA,QACP,OAAO;AAAA,UACL,cAAcT;AAAA,QAChB;AAAA,MAAA,CACD,GACcO,KAAA,QAAAA,EAAA,EAAE,aAAAP,GAAa,gBAAAI,EAAA;AAAA,OAC7B,CAACJ,GAAaI,GAAgBG,GAAcE,CAAY,CAAC;AAExD,WAACP,EAAS,SA2CX,gBAAAW,EAAAC,GAAA,EACC,UAAC,gBAAAD,EAAAE,GAAA,EACE,UAASb,EAAA,IAAI,CAACc,GAASC,MAAQ;AACxB,YAAA,EAAE,IAAAC,EAAO,IAAAF;AAGb,aAAA,gBAAAH;AAAA,QAACM;AAAA,QAAA;AAAA,UAEC,aAAAnB;AAAA,UACA,SAAAgB;AAAA,UACA,gBAAAV;AAAA,UACA,WAAWW;AAAA,UACX,qBAAmB;AAAA,QAAA;AAAA,QALdC;AAAA,MAAA;AAAA,IAMP,CAEH,GACH,EACF,CAAA,IA1DE,gBAAAE;AAAA,MAACN;AAAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,aAAY;AAAA,QACZ,iBAAgB;AAAA,QAChB,aAAY;AAAA,QAEZ,UAAA;AAAA,UAAA,gBAAAD,EAAC,OAAI,EAAA,KAAKQ,EAAO,iBAAiB,KAAI,mBAAkB;AAAA,UACxD,gBAAAR,EAACS,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,UACtBjB,MAAa,YAEV,gBAAAe,EAAAG,GAAA,EAAA,UAAA;AAAA,YAAA,gBAAAV;AAAA,cAACW;AAAA,cAAA;AAAA,gBACC,UAAS;AAAA,gBACT,UAAS;AAAA,gBACT,QAAQhB;AAAA,gBACR,aAAY;AAAA,gBAEZ,UAAA,gBAAAK;AAAA,kBAACY;AAAA,kBAAA;AAAA,oBACC,QAAQ;AAAA,oBACR,UAAS;AAAA,oBACT,OAAM;AAAA,oBACN,MAAK;AAAA,oBACL,OAAM;AAAA,oBACN,SAASd;AAAA,oBACT,UAAU,CAACH,KAAqB,CAACP;AAAA,oBACjC,gBAAgB;AAAA,sBACd,cAAcD;AAAA,oBAChB;AAAA,kBAAA;AAAA,gBACF;AAAA,cAAA;AAAA,YACF;AAAA,YACA,gBAAAa,EAACS,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,UAAA,EAAA,CACzB,IAEC,gBAAAT,EAAAa,GAAA,EAAK,WAAU,YAAW,QAAO,cAAa,UAE/C,yCAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EA0BV;AACF,GAEAC,IAAe7B;"}
@@ -1 +1 @@
1
- {"version":3,"file":"chapter-block.js","sources":["../../../../../../src/features/chapters/lpar-chapter/block-section/chapter-block/chapter-block.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { useState } from 'react';\n\nimport AccordionSection from '../../../../ui/accordion-section/accordion-section';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport { BLOCK_TYPE } from '../../constants';\nimport { BLOCK_ICONS } from '../../constants/block-icons';\nimport SATSheetItem from '../sat-sheet-item/sat-sheet-item';\nimport SheetItem from '../sheet-item/sheet-item';\nimport ChapterBlockHeader from './chapter-block-header';\nimport * as Styled from './chapter-block-styled';\nimport type { IChapterBlock } from './chapter-block-types';\nimport { getBlockStatus, isAllSheetsLocked } from './chapter-block-utils';\n\nconst { GOAL, SAT_MOCK_TEST } = BLOCK_TYPE;\n\nconst ChapterBlock: FC<IChapterBlock> = ({\n blockData,\n goalIndex,\n isClassOngoing,\n ...restChapterBlockProps\n}) => {\n const {\n isLastBlock,\n isMasteryEnabledUserAndProgram,\n userType,\n onMenuActionAttempt,\n onReview,\n onSATReview,\n onSATStartOrResume,\n onSATUnlock,\n onStartOrResume,\n onView,\n } = restChapterBlockProps;\n\n const {\n block_type: blockType,\n name: blockName,\n sheets,\n block_stats: blockStats,\n can_access: canAccess,\n id: blockId,\n } = blockData;\n\n const {\n block_status: blockStatusFromData,\n sat_score: satScore,\n sat_max_score: satMaxScore,\n } = blockStats;\n const isGoalBlockType = blockType === GOAL;\n const isSATBlockType = blockType === SAT_MOCK_TEST;\n const HeaderIcon = BLOCK_ICONS[blockType] || BLOCK_ICONS.DEFAULT;\n const { blockStatus: calculatedBlockStatus, optionalStatus } = getBlockStatus(sheets, blockType);\n\n const [expandBlock, setExpandBlock] = useState(() =>\n Boolean(isSATBlockType || (userType === 'STUDENT' && !canAccess) || isAllSheetsLocked(sheets)),\n );\n\n const blockStatus = isMasteryEnabledUserAndProgram ? blockStatusFromData : calculatedBlockStatus;\n\n return (\n <FlexView>\n <Styled.ChapterBlockWrapper $borderRadiusX={1} $background=\"GREY_1\">\n <AccordionSection\n visible={expandBlock}\n onBodyVisibilityChange={() => setExpandBlock(prev => !prev)}\n bodyOverFlow=\"unset\"\n headerElement={\n <ChapterBlockHeader\n blockName={blockName}\n blockStatus={blockStatus}\n blockType={blockType}\n expandBlock={expandBlock}\n goalIndex={goalIndex}\n isGoalBlockType={isGoalBlockType}\n userType={userType}\n HeaderIcon={HeaderIcon}\n optionalStatus={optionalStatus}\n />\n }\n bodyElement={\n <FlexView>\n {isSATBlockType ? (\n <>\n <SATSheetItem\n userType={userType}\n sheets={sheets}\n blockStatus={blockStatusFromData}\n satScore={satScore}\n satMaxScore={satMaxScore}\n blockId={blockId}\n onSATReview={onSATReview}\n onSATStartOrResume={onSATStartOrResume}\n onSATUnlock={onSATUnlock}\n />\n </>\n ) : (\n <>\n {sheets.map((sheet, idx) => {\n return (\n <SheetItem\n key={sheet.id}\n sheet={sheet}\n isLastSheet={idx === sheets.length - 1}\n userType={userType}\n onView={onView}\n onMenuActionAttempt={onMenuActionAttempt}\n onStartOrResume={onStartOrResume}\n onReview={onReview}\n isClassOngoing={isClassOngoing}\n />\n );\n })}\n </>\n )}\n </FlexView>\n }\n />\n </Styled.ChapterBlockWrapper>\n\n {!isLastBlock && <Styled.VerticalLine />}\n </FlexView>\n );\n};\n\nexport default ChapterBlock;\n"],"names":["GOAL","SAT_MOCK_TEST","BLOCK_TYPE","ChapterBlock","blockData","goalIndex","isClassOngoing","restChapterBlockProps","isLastBlock","isMasteryEnabledUserAndProgram","userType","onMenuActionAttempt","onReview","onSATReview","onSATStartOrResume","onSATUnlock","onStartOrResume","onView","blockType","blockName","sheets","blockStats","canAccess","blockId","blockStatusFromData","satScore","satMaxScore","isGoalBlockType","isSATBlockType","HeaderIcon","BLOCK_ICONS","calculatedBlockStatus","optionalStatus","getBlockStatus","expandBlock","setExpandBlock","useState","isAllSheetsLocked","FlexView","jsx","Styled.ChapterBlockWrapper","AccordionSection","prev","ChapterBlockHeader","Fragment","SATSheetItem","sheet","idx","SheetItem","Styled.VerticalLine"],"mappings":";;;;;;;;;;;AAcA,MAAM,EAAE,MAAAA,GAAM,eAAAC,EAAkB,IAAAC,GAE1BC,KAAkC,CAAC;AAAA,EACvC,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACE,QAAA;AAAA,IACJ,aAAAC;AAAA,IACA,gCAAAC;AAAA,IACA,UAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,aAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,QAAAC;AAAA,EACE,IAAAV,GAEE;AAAA,IACJ,YAAYW;AAAA,IACZ,MAAMC;AAAA,IACN,QAAAC;AAAA,IACA,aAAaC;AAAA,IACb,YAAYC;AAAA,IACZ,IAAIC;AAAA,EACF,IAAAnB,GAEE;AAAA,IACJ,cAAcoB;AAAA,IACd,WAAWC;AAAA,IACX,eAAeC;AAAA,EACb,IAAAL,GACEM,IAAkBT,MAAclB,GAChC4B,IAAiBV,MAAcjB,GAC/B4B,IAAaC,EAAYZ,CAAS,KAAKY,EAAY,SACnD,EAAE,aAAaC,GAAuB,gBAAAC,EAAmB,IAAAC,EAAeb,GAAQF,CAAS,GAEzF,CAACgB,GAAaC,CAAc,IAAIC;AAAA,IAAS,MAC7C,GAAQR,KAAmBlB,MAAa,aAAa,CAACY,KAAce,EAAkBjB,CAAM;AAAA,EAAC;AAK/F,2BACGkB,GACC,EAAA,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAA2B,gBAAgB,GAAG,aAAY,UACzD,UAAA,gBAAAD;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,SAASP;AAAA,QACT,wBAAwB,MAAMC,EAAe,CAAAO,MAAQ,CAACA,CAAI;AAAA,QAC1D,cAAa;AAAA,QACb,eACE,gBAAAH;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,WAAAxB;AAAA,YACA,aAZQV,IAAiCe,IAAsBO;AAAA,YAa/D,WAAAb;AAAA,YACA,aAAAgB;AAAA,YACA,WAAA7B;AAAA,YACA,iBAAAsB;AAAA,YACA,UAAAjB;AAAA,YACA,YAAAmB;AAAA,YACA,gBAAAG;AAAA,UAAA;AAAA,QACF;AAAA,QAEF,aACE,gBAAAO,EAACD,GACE,EAAA,UAAAV,IAEG,gBAAAW,EAAAK,GAAA,EAAA,UAAA,gBAAAL;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,UAAAnC;AAAA,YACA,QAAAU;AAAA,YACA,aAAaI;AAAA,YACb,UAAAC;AAAA,YACA,aAAAC;AAAA,YACA,SAAAH;AAAA,YACA,aAAAV;AAAA,YACA,oBAAAC;AAAA,YACA,aAAAC;AAAA,UAAA;AAAA,QAAA,GAEJ,IAEA,gBAAAwB,EAAAK,GAAA,EACG,YAAO,IAAI,CAACE,GAAOC,MAEhB,gBAAAR;AAAA,UAACS;AAAA,UAAA;AAAA,YAEC,OAAAF;AAAA,YACA,aAAaC,MAAQ3B,EAAO,SAAS;AAAA,YACrC,UAAAV;AAAA,YACA,QAAAO;AAAA,YACA,qBAAAN;AAAA,YACA,iBAAAK;AAAA,YACA,UAAAJ;AAAA,YACA,gBAAAN;AAAA,UAAA;AAAA,UARKwC,EAAM;AAAA,QAAA,CAWhB,GACH,EAEJ,CAAA;AAAA,MAAA;AAAA,IAAA,GAGN;AAAA,IAEC,CAACtC,KAAgB,gBAAA+B,EAAAU,GAAA,EAAoB;AAAA,EACxC,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"chapter-block.js","sources":["../../../../../../src/features/chapters/lpar-chapter/block-section/chapter-block/chapter-block.tsx"],"sourcesContent":["import { useState, type FC } from 'react';\n\nimport AccordionSection from '../../../../ui/accordion-section/accordion-section';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport { BLOCK_TYPE } from '../../constants';\nimport { BLOCK_ICONS } from '../../constants/block-icons';\nimport SATSheetItem from '../sat-sheet-item/sat-sheet-item';\nimport SheetItem from '../sheet-item/sheet-item';\nimport ChapterBlockHeader from './chapter-block-header';\nimport * as Styled from './chapter-block-styled';\nimport type { IChapterBlock } from './chapter-block-types';\nimport { getBlockStatus, isAllSheetsLocked } from './chapter-block-utils';\n\nconst { GOAL, SAT_MOCK_TEST } = BLOCK_TYPE;\n\nconst ChapterBlock: FC<IChapterBlock> = ({\n blockData,\n goalIndex,\n isClassOngoing,\n ...restChapterBlockProps\n}) => {\n const {\n isLastBlock,\n isMasteryEnabledUserAndProgram,\n userType,\n onMenuActionAttempt,\n onReview,\n onSATReview,\n onSATStartOrResume,\n onSATUnlock,\n onStartOrResume,\n onView,\n } = restChapterBlockProps;\n\n const {\n block_type: blockType,\n name: blockName,\n sheets,\n block_stats: blockStats,\n can_access: canAccess,\n id: blockId,\n } = blockData;\n\n const {\n block_status: blockStatusFromData,\n sat_score: satScore,\n sat_max_score: satMaxScore,\n } = blockStats;\n const isGoalBlockType = blockType === GOAL;\n const isSATBlockType = blockType === SAT_MOCK_TEST;\n const HeaderIcon = BLOCK_ICONS[blockType] || BLOCK_ICONS.DEFAULT;\n const { blockStatus: calculatedBlockStatus, optionalStatus } = getBlockStatus(sheets, blockType);\n\n const [expandBlock, setExpandBlock] = useState(() =>\n Boolean(isSATBlockType || (userType === 'STUDENT' && !canAccess) || isAllSheetsLocked(sheets)),\n );\n\n const blockStatus = isMasteryEnabledUserAndProgram ? blockStatusFromData : calculatedBlockStatus;\n\n return (\n <FlexView>\n <Styled.ChapterBlockWrapper $borderRadiusX={1} $background=\"GREY_1\">\n <AccordionSection\n visible={expandBlock}\n onBodyVisibilityChange={() => setExpandBlock(prev => !prev)}\n bodyOverFlow=\"unset\"\n headerElement={\n <ChapterBlockHeader\n blockName={blockName}\n blockStatus={blockStatus}\n blockType={blockType}\n expandBlock={expandBlock}\n goalIndex={goalIndex}\n isGoalBlockType={isGoalBlockType}\n userType={userType}\n HeaderIcon={HeaderIcon}\n optionalStatus={optionalStatus}\n />\n }\n bodyElement={\n <FlexView>\n {isSATBlockType ? (\n <>\n <SATSheetItem\n userType={userType}\n sheets={sheets}\n blockStatus={blockStatusFromData}\n satScore={satScore}\n satMaxScore={satMaxScore}\n blockId={blockId}\n onSATReview={onSATReview}\n onSATStartOrResume={onSATStartOrResume}\n onSATUnlock={onSATUnlock}\n />\n </>\n ) : (\n <>\n {sheets.map((sheet, idx) => {\n return (\n <SheetItem\n key={sheet.id}\n sheet={sheet}\n isLastSheet={idx === sheets.length - 1}\n userType={userType}\n onView={onView}\n onMenuActionAttempt={onMenuActionAttempt}\n onStartOrResume={onStartOrResume}\n onReview={onReview}\n isClassOngoing={isClassOngoing}\n />\n );\n })}\n </>\n )}\n </FlexView>\n }\n />\n </Styled.ChapterBlockWrapper>\n\n {!isLastBlock && <Styled.VerticalLine />}\n </FlexView>\n );\n};\n\nexport default ChapterBlock;\n"],"names":["GOAL","SAT_MOCK_TEST","BLOCK_TYPE","ChapterBlock","blockData","goalIndex","isClassOngoing","restChapterBlockProps","isLastBlock","isMasteryEnabledUserAndProgram","userType","onMenuActionAttempt","onReview","onSATReview","onSATStartOrResume","onSATUnlock","onStartOrResume","onView","blockType","blockName","sheets","blockStats","canAccess","blockId","blockStatusFromData","satScore","satMaxScore","isGoalBlockType","isSATBlockType","HeaderIcon","BLOCK_ICONS","calculatedBlockStatus","optionalStatus","getBlockStatus","expandBlock","setExpandBlock","useState","isAllSheetsLocked","FlexView","jsx","Styled.ChapterBlockWrapper","AccordionSection","prev","ChapterBlockHeader","Fragment","SATSheetItem","sheet","idx","SheetItem","Styled.VerticalLine"],"mappings":";;;;;;;;;;;AAaA,MAAM,EAAE,MAAAA,GAAM,eAAAC,EAAkB,IAAAC,GAE1BC,KAAkC,CAAC;AAAA,EACvC,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACE,QAAA;AAAA,IACJ,aAAAC;AAAA,IACA,gCAAAC;AAAA,IACA,UAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,aAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,QAAAC;AAAA,EACE,IAAAV,GAEE;AAAA,IACJ,YAAYW;AAAA,IACZ,MAAMC;AAAA,IACN,QAAAC;AAAA,IACA,aAAaC;AAAA,IACb,YAAYC;AAAA,IACZ,IAAIC;AAAA,EACF,IAAAnB,GAEE;AAAA,IACJ,cAAcoB;AAAA,IACd,WAAWC;AAAA,IACX,eAAeC;AAAA,EACb,IAAAL,GACEM,IAAkBT,MAAclB,GAChC4B,IAAiBV,MAAcjB,GAC/B4B,IAAaC,EAAYZ,CAAS,KAAKY,EAAY,SACnD,EAAE,aAAaC,GAAuB,gBAAAC,EAAmB,IAAAC,EAAeb,GAAQF,CAAS,GAEzF,CAACgB,GAAaC,CAAc,IAAIC;AAAA,IAAS,MAC7C,GAAQR,KAAmBlB,MAAa,aAAa,CAACY,KAAce,EAAkBjB,CAAM;AAAA,EAAC;AAK/F,2BACGkB,GACC,EAAA,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAA2B,gBAAgB,GAAG,aAAY,UACzD,UAAA,gBAAAD;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,SAASP;AAAA,QACT,wBAAwB,MAAMC,EAAe,CAAAO,MAAQ,CAACA,CAAI;AAAA,QAC1D,cAAa;AAAA,QACb,eACE,gBAAAH;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,WAAAxB;AAAA,YACA,aAZQV,IAAiCe,IAAsBO;AAAA,YAa/D,WAAAb;AAAA,YACA,aAAAgB;AAAA,YACA,WAAA7B;AAAA,YACA,iBAAAsB;AAAA,YACA,UAAAjB;AAAA,YACA,YAAAmB;AAAA,YACA,gBAAAG;AAAA,UAAA;AAAA,QACF;AAAA,QAEF,aACE,gBAAAO,EAACD,GACE,EAAA,UAAAV,IAEG,gBAAAW,EAAAK,GAAA,EAAA,UAAA,gBAAAL;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,UAAAnC;AAAA,YACA,QAAAU;AAAA,YACA,aAAaI;AAAA,YACb,UAAAC;AAAA,YACA,aAAAC;AAAA,YACA,SAAAH;AAAA,YACA,aAAAV;AAAA,YACA,oBAAAC;AAAA,YACA,aAAAC;AAAA,UAAA;AAAA,QAAA,GAEJ,IAEA,gBAAAwB,EAAAK,GAAA,EACG,YAAO,IAAI,CAACE,GAAOC,MAEhB,gBAAAR;AAAA,UAACS;AAAA,UAAA;AAAA,YAEC,OAAAF;AAAA,YACA,aAAaC,MAAQ3B,EAAO,SAAS;AAAA,YACrC,UAAAV;AAAA,YACA,QAAAO;AAAA,YACA,qBAAAN;AAAA,YACA,iBAAAK;AAAA,YACA,UAAAJ;AAAA,YACA,gBAAAN;AAAA,UAAA;AAAA,UARKwC,EAAM;AAAA,QAAA,CAWhB,GACH,EAEJ,CAAA;AAAA,MAAA;AAAA,IAAA,GAGN;AAAA,IAEC,CAACtC,KAAgB,gBAAA+B,EAAAU,GAAA,EAAoB;AAAA,EACxC,EAAA,CAAA;AAEJ;"}