@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.
- package/dist/features/auth/login/social-login-methods/social-login-methods.js.map +1 -1
- package/dist/features/auth/signup/custom-input-field/country-selector/country-code-button.js.map +1 -1
- package/dist/features/auth/signup/custom-input-field/country-selector/country-list-menu.js.map +1 -1
- package/dist/features/auth/signup/custom-input-field/date-picker-input/date-picker-input.js.map +1 -1
- package/dist/features/av/av-preview/av-preview.js +75 -57
- package/dist/features/av/av-preview/av-preview.js.map +1 -1
- package/dist/features/av/av-preview/hooks/use-get-troubleshooting-steps.js.map +1 -1
- package/dist/features/chapters/chapter/comps/chapter-banner/chapter-banner.js.map +1 -1
- package/dist/features/chapters/chapter/comps/core-lessons/core-lessons.js.map +1 -1
- package/dist/features/chapters/chapter/comps/supplementary-resources/supplementary-resources.js.map +1 -1
- package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js.map +1 -1
- package/dist/features/chapters/chapters-list/chapters-list.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/chapter-block/chapter-block.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/teacher-actions/teacher-actions.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/comps/chapter-progress.js.map +1 -1
- package/dist/features/chapters/lpar-milestone-chapter/block-section/chapter-block/chapter-block.js.map +1 -1
- package/dist/features/chapters/lpar-milestone-chapter/block-section/sheet-item/rewards-n-actions/rewards-n-actions.js.map +1 -1
- package/dist/features/chapters/lpar-milestone-chapter/block-section/sheet-item/rewards-n-actions/student-actions.js.map +1 -1
- package/dist/features/chapters/lpar-milestone-chapter/block-section/sheet-item/rewards-n-actions/teacher-actions.js.map +1 -1
- package/dist/features/chapters/lpar-milestone-chapter/block-section/sheet-item/sheet-info.js.map +1 -1
- package/dist/features/chapters/lpar-milestone-chapter/extra-practice-section/extra-practice-section.js.map +1 -1
- package/dist/features/chapters/lpar-milestone-chapter/lpar-milestone-chapter.js.map +1 -1
- package/dist/features/chapters/lpar-milestone-chapter/puzzle-section/puzzle-card.js.map +1 -1
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js.map +1 -1
- package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js.map +1 -1
- package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -1
- package/dist/features/chapters-v2/comps/node-card/node-card-tags.js.map +1 -1
- package/dist/features/chapters-v2/comps/node-card/node-card.js.map +1 -1
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js.map +1 -1
- package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js.map +1 -1
- package/dist/features/chapters-v2/comps/sat-mock-test/sat-mock-test.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/card-container/card-container.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/carousel/carousel.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/tables-card/spl-events-text/spl-events-text.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode.js.map +1 -1
- package/dist/features/circle-games/game-launcher/game-launcher.js.map +1 -1
- package/dist/features/circle-games/games/tutorial/tutorial.js.map +1 -1
- package/dist/features/circle-games/games/web-view/hooks/use-webview-games.js.map +1 -1
- package/dist/features/circle-games/games/web-view/web-view.js.map +1 -1
- package/dist/features/circle-games/leaderboard/comps/banner/banner.js.map +1 -1
- package/dist/features/circle-games/leaderboard/comps/progress-item/progress-item.js.map +1 -1
- package/dist/features/circle-games/leaderboard/comps/progress-list-item/progress-list-item.js.map +1 -1
- package/dist/features/circle-games/leaderboard/comps/timer/timer.js.map +1 -1
- package/dist/features/circle-games/leaderboard/comps/with-grade/with-grade.js.map +1 -1
- package/dist/features/circle-games/leaderboard/hooks/use-timer/use-timer.js.map +1 -1
- package/dist/features/circle-games/sign-up/comp/circular-steps/circular-steps.js.map +1 -1
- package/dist/features/cue-canvas/bottombar/homework-controls.js.map +1 -1
- package/dist/features/cue-canvas/cue-canvas-provider.js.map +1 -1
- package/dist/features/cue-canvas/sidebar/homework/homework.js.map +1 -1
- package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js.map +1 -1
- package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js.map +1 -1
- package/dist/features/cue-canvas/sidebar/sidebar.js.map +1 -1
- package/dist/features/cue-canvas/sidebar/tiles/tile.js.map +1 -1
- package/dist/features/cue-canvas/toolbar/color-picker-menu.js.map +1 -1
- package/dist/features/cue-canvas/toolbar/pen-tool-menu.js.map +1 -1
- package/dist/features/cue-canvas/toolbar/tool.js.map +1 -1
- package/dist/features/cue-canvas/toolbar/whiteboard-toolbar.js.map +1 -1
- package/dist/features/extra-practice/list/list.js.map +1 -1
- package/dist/features/homework/card-menu-options.js.map +1 -1
- package/dist/features/homework/homework-card-view.js.map +1 -1
- package/dist/features/homework/homework-card.js.map +1 -1
- package/dist/features/homework/hw-card-list/hw-card-list-view.js.map +1 -1
- package/dist/features/hooks/use-auto-play-permission/use-auto-play-permission-context-provider.js.map +1 -1
- package/dist/features/journey/hooks/use-home-page-journey/tooltip-item.js.map +1 -1
- package/dist/features/journey/use-journey/journey-context-provider.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/add-custom-chapter.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/search-chapter/search-chapters.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapter-item.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapters.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/tags-render.js.map +1 -1
- package/dist/features/milestone/create/comps/body-layout/body-layout.js.map +1 -1
- package/dist/features/milestone/create/comps/chapter-item/chapter-item.js.map +1 -1
- package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-category/category-card.js.map +1 -1
- package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-category/chapter-category-container.js.map +1 -1
- package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-selection.js.map +1 -1
- package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapters-list.js.map +1 -1
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js.map +1 -1
- package/dist/features/milestone/create/comps/confirmation-modals/chapter-clearance-confirmation.js.map +1 -1
- package/dist/features/milestone/create/comps/confirmation-modals/goal-creation-confirmation.js.map +1 -1
- package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector-view.js.map +1 -1
- package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.js.map +1 -1
- package/dist/features/milestone/create/comps/milestone-progress/milestone-progress.js.map +1 -1
- package/dist/features/milestone/create/comps/sheets-list/sheets-list.js.map +1 -1
- package/dist/features/milestone/create/comps/test-type-step/category-component.js.map +1 -1
- package/dist/features/milestone/create/milestone-create.js.map +1 -1
- package/dist/features/milestone/edit/comps/edit-milestone-modal/edit-milestone.js.map +1 -1
- package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-loader/milestone-loader.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/api/get-resource.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-list/resources-list.js.map +1 -1
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-item/chapter-item.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-selection.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js.map +1 -1
- 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
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/test-radio-card/test-radio-card.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
- package/dist/features/milestone/outcome/comps/outcome-collection/outcome-form/outcome-form.js.map +1 -1
- package/dist/features/parent-dashboard/comps/billing-information/billing-information.js.map +1 -1
- package/dist/features/parent-dashboard/hooks/use-parent-home-data.js.map +1 -1
- package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason.js.map +1 -1
- package/dist/features/post-game-stats/accuracy/accuracy.js.map +1 -1
- package/dist/features/post-game-stats/clock/clock.js.map +1 -1
- package/dist/features/post-game-stats/number-count-animation/number-count-animation.js.map +1 -1
- package/dist/features/post-game-stats/points/points.js.map +1 -1
- package/dist/features/post-game-stats/score/score.js.map +1 -1
- package/dist/features/post-game-stats/streak/streak.js.map +1 -1
- package/dist/features/puzzles/app/puzzle-app-view.js.map +1 -1
- package/dist/features/puzzles/app/puzzle-app.js.map +1 -1
- package/dist/features/puzzles/comps/puzzle-card.js.map +1 -1
- package/dist/features/puzzles/puzzle-container/puzzle-container-view.js.map +1 -1
- package/dist/features/puzzles/puzzle-container/puzzle-container.js.map +1 -1
- package/dist/features/puzzles/puzzle-feedback-celebration/puzzle-feedback-celebration.js.map +1 -1
- package/dist/features/recent-chapters/recent-chapters.js.map +1 -1
- package/dist/features/sheet-tools/desmos-calculator/desmos-calculator.js.map +1 -1
- package/dist/features/sheet-v2/resource-list/resource-list.js.map +1 -1
- package/dist/features/sheets/comps/sheet-button/index.js.map +1 -1
- package/dist/features/sheets/lessons-list/lesson-item/context-menu-helper/menu-element.js.map +1 -1
- package/dist/features/sheets/lessons-list/lesson-item/context-menu-helper/target-element.js.map +1 -1
- package/dist/features/sheets/lessons-list/lesson-item/lesson-item-cta-info.js.map +1 -1
- package/dist/features/sheets/lessons-list/lesson-item/lesson-item-view.js.map +1 -1
- package/dist/features/sheets/lessons-list/lesson-item/lesson-item.js.map +1 -1
- package/dist/features/sheets/lessons-list/lessons-list.js.map +1 -1
- package/dist/features/sheets/reference-sheet/reference-sheet.js.map +1 -1
- package/dist/features/sheets/resources-list/resource-item/context-menu-helper/menu-element.js.map +1 -1
- package/dist/features/sheets/resources-list/resource-item/resource-item.js.map +1 -1
- package/dist/features/sheets/resources-list/resources-list.js.map +1 -1
- package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/student-actions/student-actions.js.map +1 -1
- package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions.js.map +1 -1
- package/dist/features/sheets/sheets-list/sheets-list.js.map +1 -1
- package/dist/features/stickers/sticker-selector/comps/sticker/sticker.js.map +1 -1
- package/dist/features/stickers/sticker-selector/comps/stiker-selector-grid/sticker-selector-grid.js.map +1 -1
- package/dist/features/stickers/sticker-selector/sticker-selector.js.map +1 -1
- package/dist/features/stickers/stickers-effects/comps/sticker-with-fallback.js.map +1 -1
- package/dist/features/stickers/stickers-effects/stickers-effects.js.map +1 -1
- package/dist/features/student-details/class-details/class-details.js.map +1 -1
- package/dist/features/student-details/student-details.js.map +1 -1
- package/dist/features/talk-meter/ripple/index.js.map +1 -1
- package/dist/features/talk-meter/talk-meter-view/talk-meter-view.js.map +1 -1
- package/dist/features/talk-meter/talk-meter.js.map +1 -1
- package/dist/features/trial-session/comps/av-panels/student-av-panel/student-av-panel.js.map +1 -1
- package/dist/features/trial-session/comps/av-panels/teacher-av-panel/teacher-av-panel.js.map +1 -1
- package/dist/features/trial-session/comps/class-preference/class-preference.js.map +1 -1
- package/dist/features/trial-session/comps/learning-plan/use-learning-plan-scroll-sync.js.map +1 -1
- package/dist/features/trial-session/comps/session-report/report-404/report-404.js.map +1 -1
- package/dist/features/trial-session/comps/session-report/report-information/report-card.js.map +1 -1
- package/dist/features/trial-session/comps/session-report/report-information/report-information.js.map +1 -1
- package/dist/features/trial-session/comps/slide-header/index.js.map +1 -1
- package/dist/features/trial-session/comps/student-profile/student-profile-highlights/student-profile-highlights.js.map +1 -1
- package/dist/features/trial-session/comps/student-profile/student-profile.js.map +1 -1
- package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js.map +1 -1
- package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game-launch-screen/trial-circle-game-launch-screen.js.map +1 -1
- package/dist/features/trial-session/comps/worksheet/worksheet.js.map +1 -1
- package/dist/features/trial-session/hooks/use-trial-session-navigation.js.map +1 -1
- package/dist/features/trial-session/trial-session-view.js.map +1 -1
- package/dist/features/ui/accordion/accordion-items/accordion-items.js.map +1 -1
- package/dist/features/ui/arc-button/arc-button.js.map +1 -1
- package/dist/features/ui/avatar/avatar-mapping.js.map +1 -1
- package/dist/features/ui/avatar/avatar.js.map +1 -1
- package/dist/features/ui/context/use-tracking-context.js.map +1 -1
- package/dist/features/ui/drawer/drawer.js.map +1 -1
- package/dist/features/ui/hooks/use-context-menu-click-handler.js.map +1 -1
- package/dist/features/ui/inputs/base-select-input/select-option/select-option.js.map +1 -1
- package/dist/features/ui/inputs/base-select-input/select-section/select-section.js.map +1 -1
- package/dist/features/ui/inputs/google-places-search-input/google-places-search-input.js.map +1 -1
- package/dist/features/ui/inputs/radio-input/radio-option/radio-option.js.map +1 -1
- package/dist/features/ui/inputs/searchable-select-input/searchable-select-input.js.map +1 -1
- package/dist/features/ui/inputs/text-input/text-input.js.map +1 -1
- package/dist/features/ui/loader/reverse-circular-bar/reverse-circular-bar.js.map +1 -1
- package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -1
- package/dist/features/ui/modals/modal-provider.js.map +1 -1
- package/dist/features/ui/modals/modal.js.map +1 -1
- package/dist/features/ui/section-list/section-list.js.map +1 -1
- package/dist/features/ui/superscript/superscript-styled.js.map +1 -1
- package/dist/features/ui/superscript/superscript.js.map +1 -1
- package/dist/features/wins-dashboard/student-badges/hooks/use-student-badge-list-hook.js.map +1 -1
- package/dist/features/wins-dashboard/student-badges/student-badges-lists.js.map +1 -1
- package/dist/features/worksheet/learnosity-preloader/learnosity-preloader.js.map +1 -1
- package/dist/features/worksheet/worksheet/hooks/use-create-imperative-handle.js.map +1 -1
- package/dist/features/worksheet/worksheet/hooks/use-learnosity-append.js.map +1 -1
- package/dist/features/worksheet/worksheet/hooks/use-learnosity.js.map +1 -1
- package/dist/features/worksheet/worksheet/question-tips.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-blocker/blockers/exit-ticket-intervention.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-blocker/blockers/exit-ticket-review-available.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-blocker/blockers/exit-ticket-review.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-blocker/blockers/exit-ticket-student-submission.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-blocker/blockers/optional-items-assignment.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-blocker/blockers/optional-items-skip.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-blocker/worksheet-blocker.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-container.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-item-navigation/worksheet-item-navigation.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-item-number/worksheet-item-number.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-navigation.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-section-navigation/worksheet-section-navigation.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/header/validated-animation.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/question-backdrop/question-backdrop.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/subjective-review.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-summary/worksheet-questions-summary.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-summary-controller/worksheet-summary-controller.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/worksheet-preview-styled.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/worksheet-preview.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/package.json +3 -3
- package/dist/features/av/av-preview/helper.js +0 -40
- package/dist/features/av/av-preview/helper.js.map +0 -1
- package/dist/features/av/av-preview/hooks/use-media-devices.js +0 -144
- package/dist/features/av/av-preview/hooks/use-media-devices.js.map +0 -1
- package/dist/features/hooks/use-cancellable-promise.js +0 -22
- 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
|
|
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;"}
|
package/dist/features/auth/signup/custom-input-field/country-selector/country-code-button.js.map
CHANGED
|
@@ -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
|
|
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;"}
|
package/dist/features/auth/signup/custom-input-field/country-selector/country-list-menu.js.map
CHANGED
|
@@ -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
|
|
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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"}
|
package/dist/features/auth/signup/custom-input-field/date-picker-input/date-picker-input.js.map
CHANGED
|
@@ -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
|
|
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
|
|
2
|
-
import { memo as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
),
|
|
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
|
-
|
|
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
|
-
[
|
|
43
|
+
[o, g]
|
|
30
44
|
);
|
|
31
|
-
return
|
|
32
|
-
|
|
33
|
-
audio:
|
|
34
|
-
video:
|
|
35
|
-
audioOutput:
|
|
45
|
+
return D(() => {
|
|
46
|
+
$({
|
|
47
|
+
audio: a,
|
|
48
|
+
video: u,
|
|
49
|
+
audioOutput: p
|
|
36
50
|
});
|
|
37
|
-
}, [
|
|
38
|
-
|
|
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:
|
|
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__ */
|
|
51
|
-
/* @__PURE__ */ e(
|
|
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
|
-
|
|
69
|
+
b,
|
|
54
70
|
{
|
|
55
71
|
label: "Camera",
|
|
56
72
|
renderAs: "primary",
|
|
57
73
|
shape: "borderLess",
|
|
58
|
-
options:
|
|
59
|
-
value:
|
|
60
|
-
onChange:
|
|
74
|
+
options: l.video,
|
|
75
|
+
value: u,
|
|
76
|
+
onChange: _,
|
|
77
|
+
disabled: C
|
|
61
78
|
}
|
|
62
79
|
),
|
|
63
80
|
/* @__PURE__ */ e(
|
|
64
|
-
|
|
81
|
+
b,
|
|
65
82
|
{
|
|
66
83
|
label: "Microphone",
|
|
67
84
|
renderAs: "primary",
|
|
68
85
|
shape: "borderLess",
|
|
69
|
-
options:
|
|
70
|
-
value:
|
|
71
|
-
onChange:
|
|
86
|
+
options: l.audio,
|
|
87
|
+
value: a,
|
|
88
|
+
onChange: S,
|
|
89
|
+
disabled: y
|
|
72
90
|
}
|
|
73
91
|
),
|
|
74
92
|
/* @__PURE__ */ e(
|
|
75
|
-
|
|
93
|
+
b,
|
|
76
94
|
{
|
|
77
95
|
label: "Speaker",
|
|
78
96
|
renderAs: "primary",
|
|
79
97
|
shape: "borderLess",
|
|
80
|
-
options:
|
|
81
|
-
value:
|
|
82
|
-
onChange:
|
|
98
|
+
options: l.audioOutput,
|
|
99
|
+
value: p,
|
|
100
|
+
onChange: O
|
|
83
101
|
}
|
|
84
102
|
),
|
|
85
|
-
/* @__PURE__ */ e("div", { children:
|
|
103
|
+
/* @__PURE__ */ e("div", { children: x })
|
|
86
104
|
] }) }),
|
|
87
|
-
|
|
88
|
-
|
|
105
|
+
v && /* @__PURE__ */ n(
|
|
106
|
+
E,
|
|
89
107
|
{
|
|
90
108
|
$background: "ORANGE_2",
|
|
91
109
|
$gutterX: 1,
|
|
92
110
|
$gapX: 1,
|
|
93
|
-
$width:
|
|
111
|
+
$width: A ? "100%" : "272px",
|
|
94
112
|
children: [
|
|
95
|
-
/* @__PURE__ */ e(
|
|
96
|
-
/* @__PURE__ */ e(
|
|
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
|
-
}),
|
|
120
|
+
}), q = j;
|
|
103
121
|
export {
|
|
104
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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;"}
|
package/dist/features/chapters/chapter/comps/supplementary-resources/supplementary-resources.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supplementary-resources.js","sources":["../../../../../../src/features/chapters/chapter/comps/supplementary-resources/supplementary-resources.tsx"],"sourcesContent":["import
|
|
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
|
|
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
|
|
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;"}
|
package/dist/features/chapters/lpar-chapter/block-section/chapter-block/chapter-block.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chapter-block.js","sources":["../../../../../../src/features/chapters/lpar-chapter/block-section/chapter-block/chapter-block.tsx"],"sourcesContent":["import
|
|
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;"}
|