@cuemath/leap 2.9.7 → 2.9.9-as1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/illustrations/illustrations.js +9 -0
- package/dist/assets/illustrations/illustrations.js.map +1 -1
- package/dist/assets/line-icons/icons/alarm.js +41 -0
- package/dist/assets/line-icons/icons/alarm.js.map +1 -0
- package/dist/assets/line-icons/icons/bin2.js +7 -8
- package/dist/assets/line-icons/icons/bin2.js.map +1 -1
- package/dist/assets/line-icons/icons/chevron-left.js.map +1 -1
- package/dist/assets/line-icons/icons/dart.js +23 -0
- package/dist/assets/line-icons/icons/dart.js.map +1 -0
- package/dist/assets/line-icons/icons/exclamation.js +26 -0
- package/dist/assets/line-icons/icons/exclamation.js.map +1 -0
- package/dist/assets/line-icons/icons/home2.js +25 -0
- package/dist/assets/line-icons/icons/home2.js.map +1 -0
- package/dist/assets/line-icons/icons/important.js +23 -0
- package/dist/assets/line-icons/icons/important.js.map +1 -0
- package/dist/assets/line-icons/icons/puzzle.js +25 -0
- package/dist/assets/line-icons/icons/puzzle.js.map +1 -0
- package/dist/assets/line-icons/icons/recap.js +32 -0
- package/dist/assets/line-icons/icons/recap.js.map +1 -0
- package/dist/assets/line-icons/icons/skip-colored.js +43 -0
- package/dist/assets/line-icons/icons/skip-colored.js.map +1 -0
- package/dist/assets/line-icons/icons/status.js +41 -0
- package/dist/assets/line-icons/icons/status.js.map +1 -0
- package/dist/assets/line-icons/icons/testtube.js +33 -0
- package/dist/assets/line-icons/icons/testtube.js.map +1 -0
- package/dist/assets/lottie/lottie.js +9 -1
- package/dist/assets/lottie/lottie.js.map +1 -1
- package/dist/constants/api.js +3 -2
- package/dist/constants/api.js.map +1 -1
- package/dist/features/analytics-events/platform-events-student.js +3 -3
- package/dist/features/analytics-events/platform-events-student.js.map +1 -1
- package/dist/features/analytics-events/whitelist-events.js +13 -11
- package/dist/features/analytics-events/whitelist-events.js.map +1 -1
- package/dist/features/chapters/chapters-list/chapter-item/chapter-item-styled.js +99 -33
- package/dist/features/chapters/chapters-list/chapter-item/chapter-item-styled.js.map +1 -1
- package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js +92 -49
- package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js.map +1 -1
- package/dist/features/chapters/chapters-list/chapters-list-styled.js +5 -5
- package/dist/features/chapters/chapters-list/chapters-list-styled.js.map +1 -1
- package/dist/features/chapters/chapters-list/chapters-list.js +64 -70
- package/dist/features/chapters/chapters-list/chapters-list.js.map +1 -1
- package/dist/features/chapters-v2/api/chapter.js +10 -0
- package/dist/features/chapters-v2/api/chapter.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js +112 -0
- package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections-styled.js +26 -0
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections-styled.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js +90 -0
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner-styled.js +90 -0
- package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner-styled.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js +98 -0
- package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/chapter-details-styled.js +51 -0
- package/dist/features/chapters-v2/chapter-details/chapter-details-styled.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/chapter-details.js +130 -0
- package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/border-path-animation.js +13 -0
- package/dist/features/chapters-v2/comps/node-card/border-path-animation.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/node-card-styled.js +159 -0
- package/dist/features/chapters-v2/comps/node-card/node-card-styled.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/node-card-tags.js +16 -0
- package/dist/features/chapters-v2/comps/node-card/node-card-tags.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/node-card.js +12 -0
- package/dist/features/chapters-v2/comps/node-card/node-card.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options-styled.js +32 -0
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options-styled.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js +31 -0
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js +180 -0
- package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js +192 -0
- package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js.map +1 -0
- package/dist/features/chapters-v2/comps/tag/tag-styled.js +13 -0
- package/dist/features/chapters-v2/comps/tag/tag-styled.js.map +1 -0
- package/dist/features/chapters-v2/comps/tag/tag.js +28 -0
- package/dist/features/chapters-v2/comps/tag/tag.js.map +1 -0
- package/dist/features/chapters-v2/constants/block-constants.js +20 -0
- package/dist/features/chapters-v2/constants/block-constants.js.map +1 -0
- package/dist/features/chapters-v2/constants/node-constants.js +14 -0
- package/dist/features/chapters-v2/constants/node-constants.js.map +1 -0
- package/dist/features/chapters-v2/utils/index.js +41 -0
- package/dist/features/chapters-v2/utils/index.js.map +1 -0
- package/dist/features/chapters-v2/utils/node-card-utils.js +177 -0
- package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -0
- package/dist/features/circle-games/games/tutorial/constants.js +2 -2
- package/dist/features/circle-games/games/tutorial/constants.js.map +1 -1
- package/dist/features/circle-games/games/tutorial/tutorial-styled.js +6 -6
- package/dist/features/circle-games/games/tutorial/tutorial-styled.js.map +1 -1
- package/dist/features/circle-games/games/web-view/web-view.js +45 -52
- package/dist/features/circle-games/games/web-view/web-view.js.map +1 -1
- package/dist/features/circle-games/leaderboard/comps/banner/banner.js +6 -6
- package/dist/features/circle-games/leaderboard/comps/banner/banner.js.map +1 -1
- package/dist/features/circle-games/leaderboard/comps/navigation-button/navigation-button-styled.js +1 -1
- package/dist/features/circle-games/leaderboard/comps/navigation-button/navigation-button-styled.js.map +1 -1
- package/dist/features/circle-games/leaderboard/leaderboard-styled.js +1 -1
- package/dist/features/circle-games/leaderboard/leaderboard-styled.js.map +1 -1
- package/dist/features/circle-games/leaderboard/leaderboard.js +9 -9
- package/dist/features/circle-games/leaderboard/leaderboard.js.map +1 -1
- package/dist/features/circle-games/sign-up/comp/circular-steps/circular-steps-styled.js +8 -8
- package/dist/features/circle-games/sign-up/comp/circular-steps/circular-steps-styled.js.map +1 -1
- package/dist/features/circle-games/sign-up/constants.js +9 -9
- package/dist/features/circle-games/sign-up/constants.js.map +1 -1
- package/dist/features/communication/pub-sub/constants.js +12 -6
- package/dist/features/communication/pub-sub/constants.js.map +1 -1
- package/dist/features/homework/card-menu-options.js +38 -0
- package/dist/features/homework/card-menu-options.js.map +1 -0
- package/dist/features/homework/card-title.js +15 -0
- package/dist/features/homework/card-title.js.map +1 -0
- package/dist/features/homework/homework-analytics-events.js +10 -0
- package/dist/features/homework/homework-analytics-events.js.map +1 -0
- package/dist/features/homework/homework-card-view.js +141 -0
- package/dist/features/homework/homework-card-view.js.map +1 -0
- package/dist/features/homework/homework-card.js +245 -0
- package/dist/features/homework/homework-card.js.map +1 -0
- package/dist/features/homework/hw-card-list/api/get-homeworks.js +10 -0
- package/dist/features/homework/hw-card-list/api/get-homeworks.js.map +1 -0
- package/dist/features/homework/hw-card-list/hw-card-list-styled.js +63 -0
- package/dist/features/homework/hw-card-list/hw-card-list-styled.js.map +1 -0
- package/dist/features/homework/hw-card-list/hw-card-list.js +185 -0
- package/dist/features/homework/hw-card-list/hw-card-list.js.map +1 -0
- package/dist/features/homework/node-progress.js +29 -0
- package/dist/features/homework/node-progress.js.map +1 -0
- package/dist/features/homework/styles.js +130 -0
- package/dist/features/homework/styles.js.map +1 -0
- package/dist/features/homework/utils.js +48 -0
- package/dist/features/homework/utils.js.map +1 -0
- package/dist/features/journey/comps/coachmark/coachmark-styled.js +12 -5
- package/dist/features/journey/comps/coachmark/coachmark-styled.js.map +1 -1
- package/dist/features/journey/comps/coachmark/coachmark.js +24 -24
- package/dist/features/journey/comps/coachmark/coachmark.js.map +1 -1
- package/dist/features/journey/hooks/use-chapter-journey.js +194 -0
- package/dist/features/journey/hooks/use-chapter-journey.js.map +1 -0
- package/dist/features/journey/hooks/use-home-page-journey.js +189 -0
- package/dist/features/journey/hooks/use-home-page-journey.js.map +1 -0
- package/dist/features/journey/journey-id/journey-id-student.js +1 -1
- package/dist/features/journey/journey-id/journey-id-student.js.map +1 -1
- package/dist/features/journey/journey-id/journey-id-teacher.js +5 -0
- package/dist/features/journey/journey-id/journey-id-teacher.js.map +1 -0
- package/dist/features/journey/use-journey/journey-context-provider.js +36 -28
- package/dist/features/journey/use-journey/journey-context-provider.js.map +1 -1
- package/dist/features/journey/use-journey/journey-styled.js +10 -5
- package/dist/features/journey/use-journey/journey-styled.js.map +1 -1
- package/dist/features/milestone/create/api/goal-submit.js +1 -1
- package/dist/features/milestone/create/api/goal-submit.js.map +1 -1
- package/dist/features/milestone/create/comps/chapter-item/chapter-item.js +42 -49
- package/dist/features/milestone/create/comps/chapter-item/chapter-item.js.map +1 -1
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js +12 -4
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js.map +1 -1
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js +128 -105
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js.map +1 -1
- package/dist/features/milestone/create/comps/sheets-list/sheets-list-styled.js +14 -20
- package/dist/features/milestone/create/comps/sheets-list/sheets-list-styled.js.map +1 -1
- package/dist/features/milestone/create/comps/sheets-list/sheets-list.js +26 -50
- package/dist/features/milestone/create/comps/sheets-list/sheets-list.js.map +1 -1
- package/dist/features/milestone/create/milestone-create.js +49 -43
- package/dist/features/milestone/create/milestone-create.js.map +1 -1
- package/dist/features/milestone/create/utils/index.js +33 -38
- package/dist/features/milestone/create/utils/index.js.map +1 -1
- package/dist/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.js +1 -1
- package/dist/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.js.map +1 -1
- package/dist/features/milestone/edit/comps/edit-milestone-modal/api/patch-goal-plan.js +1 -1
- package/dist/features/milestone/edit/comps/edit-milestone-modal/api/patch-goal-plan.js.map +1 -1
- package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js +51 -53
- package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js.map +1 -1
- package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js +42 -40
- package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +1 -1
- package/dist/features/milestone/edit/goal-edit-container.js +64 -62
- package/dist/features/milestone/edit/goal-edit-container.js.map +1 -1
- package/dist/features/milestone/edit/goal-edit-helpers.js +50 -53
- package/dist/features/milestone/edit/goal-edit-helpers.js.map +1 -1
- package/dist/features/milestone/edit/milestone-edit-container.js +54 -52
- package/dist/features/milestone/edit/milestone-edit-container.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/api/get-milestone-resources.js +1 -1
- package/dist/features/milestone/milestone-list-container/api/get-milestone-resources.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/api/get-milestones.js +9 -17
- package/dist/features/milestone/milestone-list-container/api/get-milestones.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/api/get-tests-list.js +1 -1
- package/dist/features/milestone/milestone-list-container/api/get-tests-list.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +137 -105
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js +107 -123
- 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-info.js +156 -175
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js +24 -10
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +80 -86
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-utils.js +10 -22
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-utils.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-styled.js +70 -37
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-styled.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js +114 -176
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-rank.js +29 -16
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-rank.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-styled.js +19 -23
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-styled.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome.js +23 -35
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js +110 -113
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +8 -8
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-list/resources-list-styled.js +1 -1
- package/dist/features/milestone/milestone-resources/resources-list/resources-list-styled.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-list/resources-list.js +116 -113
- 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-container.js +165 -0
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js.map +1 -0
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view-styled.js +25 -0
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view-styled.js.map +1 -0
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js +86 -0
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-creation/api/test-sheet-assign.js +5 -5
- package/dist/features/milestone/milestone-tests/tests-creation/api/test-sheet-assign.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js +46 -50
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
- package/dist/features/recent-chapters/api/get-recent-chapters.js +9 -0
- package/dist/features/recent-chapters/api/get-recent-chapters.js.map +1 -0
- package/dist/features/recent-chapters/recent-chapters-styled.js +16 -0
- package/dist/features/recent-chapters/recent-chapters-styled.js.map +1 -0
- package/dist/features/recent-chapters/recent-chapters.js +39 -0
- package/dist/features/recent-chapters/recent-chapters.js.map +1 -0
- package/dist/features/sheet-v2/resource-list/resource-list.js +45 -0
- package/dist/features/sheet-v2/resource-list/resource-list.js.map +1 -0
- package/dist/features/sheets/resources-list/resource-item/styled.js +1 -1
- package/dist/features/sheets/resources-list/resource-item/styled.js.map +1 -1
- package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions-constant.js +4 -3
- package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions-constant.js.map +1 -1
- package/dist/features/ui/arc-button/constants.js +4 -4
- package/dist/features/ui/arc-button/constants.js.map +1 -1
- package/dist/features/ui/arrow-tooltip/arrow-tooltip.js +30 -29
- package/dist/features/ui/arrow-tooltip/arrow-tooltip.js.map +1 -1
- package/dist/features/ui/constants/z-index.js +1 -1
- package/dist/features/ui/constants/z-index.js.map +1 -1
- package/dist/features/ui/context-menu/context-menu-styled.js +28 -14
- package/dist/features/ui/context-menu/context-menu-styled.js.map +1 -1
- package/dist/features/ui/context-menu/context-menu.js +30 -15
- package/dist/features/ui/context-menu/context-menu.js.map +1 -1
- package/dist/features/ui/theme/button.js +22 -107
- package/dist/features/ui/theme/button.js.map +1 -1
- package/dist/index.d.ts +354 -34
- package/dist/index.js +503 -471
- package/dist/index.js.map +1 -1
- package/dist/node_modules/date-fns/differenceInDays.js +17 -0
- package/dist/node_modules/date-fns/differenceInDays.js.map +1 -0
- package/dist/static/chapter-header-bg-2.c8d96894.svg +1 -0
- package/dist/static/competitive-arena.b9c40801.json +1 -0
- package/dist/static/learn.71b13323.json +1 -0
- package/dist/static/node-custom-test-bg.d3b757be.svg +1 -0
- package/dist/static/node-learn-bg.b61f815c.svg +1 -0
- package/dist/static/node-practice-bg.16cbaf2a.svg +1 -0
- package/dist/static/node-project-bg.e6a33e28.svg +1 -0
- package/dist/static/node-puzzle-bg.3422135c.svg +1 -0
- package/dist/static/node-recap-bg.546154e4.svg +1 -0
- package/dist/static/node-test-prep-bg.42c0b9c4.svg +1 -0
- package/dist/static/node-video-bg.3df3f73a.svg +1 -0
- package/dist/static/practice.158dd488.json +1 -0
- package/dist/static/project.eb665827.json +1 -0
- package/dist/static/puzzle.b298c7e4.json +1 -0
- package/dist/static/recap.0dd2c1e2.json +1 -0
- package/dist/static/test.803d6036.json +1 -0
- package/dist/static/video.b41451e2.json +1 -0
- package/package.json +1 -1
- package/dist/features/milestone/create/comps/milestone-progress-v2/milestone-progress-v2.js +0 -92
- package/dist/features/milestone/create/comps/milestone-progress-v2/milestone-progress-v2.js.map +0 -1
- package/dist/features/milestone/create/comps/milestone-progress-v2/styled.js +0 -25
- package/dist/features/milestone/create/comps/milestone-progress-v2/styled.js.map +0 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element-styled.js +0 -13
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element-styled.js.map +0 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element.js +0 -38
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element.js.map +0 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-status.js +0 -53
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-status.js.map +0 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-info.js +0 -25
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-info.js.map +0 -1
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js +0 -71
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js.map +0 -1
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-styled.js +0 -31
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-styled.js.map +0 -1
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js +0 -38
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js.map +0 -1
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item.js +0 -79
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item.js.map +0 -1
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list-styled.js +0 -18
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list-styled.js.map +0 -1
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list.js +0 -51
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list.js.map +0 -1
- package/dist/features/milestone/milestone-tests/tests-list/tests-list-styled.js +0 -11
- package/dist/features/milestone/milestone-tests/tests-list/tests-list-styled.js.map +0 -1
- package/dist/features/milestone/milestone-tests/tests-list/tests-list.js +0 -135
- package/dist/features/milestone/milestone-tests/tests-list/tests-list.js.map +0 -1
@@ -0,0 +1,245 @@
|
|
1
|
+
import { jsxs as O, jsx as r } from "react/jsx-runtime";
|
2
|
+
import { memo as Z, useRef as T, useCallback as w, useMemo as Q } from "react";
|
3
|
+
import x from "../../assets/line-icons/icons/eye2.js";
|
4
|
+
import U from "../../assets/line-icons/icons/more-vertical.js";
|
5
|
+
import D from "../../assets/line-icons/icons/redo.js";
|
6
|
+
import W from "../ui/arrow-tooltip/arrow-tooltip.js";
|
7
|
+
import N from "../ui/buttons/clickable/clickable.js";
|
8
|
+
import H from "../ui/hooks/use-context-menu-click-handler.js";
|
9
|
+
import ee from "../ui/layout/flex-view.js";
|
10
|
+
import A from "./card-menu-options.js";
|
11
|
+
import re from "./homework-card-view.js";
|
12
|
+
import { CardContainer as te, MenuWrapper as ie, CardKebabMenuWrapper as ne, BlurContainer as oe, BlurFlexView as ce, StyledMinus2Icon as se } from "./styles.js";
|
13
|
+
import { getCardAnalyticProps as le } from "./utils.js";
|
14
|
+
const ae = ({
|
15
|
+
// callbacks
|
16
|
+
nodeData: e,
|
17
|
+
onNodeAttempt: b,
|
18
|
+
onNodeReattempt: u,
|
19
|
+
onNodeReview: n,
|
20
|
+
onNodeUnassign: m,
|
21
|
+
onNodeView: C,
|
22
|
+
header: X,
|
23
|
+
isInQueue: E,
|
24
|
+
renderAs: I,
|
25
|
+
shouldOpenOnRight: j,
|
26
|
+
studentId: v,
|
27
|
+
subHeader: F,
|
28
|
+
userMilestoneId: t,
|
29
|
+
userType: g
|
30
|
+
}) => {
|
31
|
+
const i = I === "homework", {
|
32
|
+
node_type: k,
|
33
|
+
state: L,
|
34
|
+
permissions: P,
|
35
|
+
user_node_id: o,
|
36
|
+
user_milestone_id: l,
|
37
|
+
homework_id: c
|
38
|
+
} = e, y = T(null), $ = T(null), { menuVisible: R, onMenuClick: B } = H(y), { menuVisible: z, onMenuClick: V } = H($), {
|
39
|
+
can_start: h,
|
40
|
+
can_resume: f,
|
41
|
+
can_review: s,
|
42
|
+
can_unassign: K,
|
43
|
+
can_reset: Y
|
44
|
+
} = P, a = g === "STUDENT", d = w(() => {
|
45
|
+
if (s) {
|
46
|
+
if (typeof n != "function")
|
47
|
+
throw new Error("onReview must be a function");
|
48
|
+
if (!o)
|
49
|
+
throw new Error("user node id must be present to review the sheet");
|
50
|
+
n(e, t);
|
51
|
+
return;
|
52
|
+
}
|
53
|
+
}, [s, n, o, e, t]), q = w(() => {
|
54
|
+
if (h || f) {
|
55
|
+
if (typeof b != "function")
|
56
|
+
throw new Error("onNodeAttempt must be a function");
|
57
|
+
b(e, c);
|
58
|
+
return;
|
59
|
+
}
|
60
|
+
if (!i) {
|
61
|
+
V();
|
62
|
+
return;
|
63
|
+
}
|
64
|
+
d();
|
65
|
+
}, [
|
66
|
+
h,
|
67
|
+
f,
|
68
|
+
i,
|
69
|
+
d,
|
70
|
+
b,
|
71
|
+
e,
|
72
|
+
c,
|
73
|
+
V
|
74
|
+
]), _ = w(() => {
|
75
|
+
if (s) {
|
76
|
+
if (typeof n != "function")
|
77
|
+
throw new Error("onNodeReview must be a function");
|
78
|
+
if (!o)
|
79
|
+
throw new Error("user node id must be present to review the sheet");
|
80
|
+
n(e, t || l, c);
|
81
|
+
return;
|
82
|
+
}
|
83
|
+
if (typeof C != "function")
|
84
|
+
throw new Error("onNodeView must be a function");
|
85
|
+
C(e, t || l);
|
86
|
+
}, [
|
87
|
+
s,
|
88
|
+
C,
|
89
|
+
e,
|
90
|
+
t,
|
91
|
+
l,
|
92
|
+
n,
|
93
|
+
o,
|
94
|
+
c
|
95
|
+
]), p = w(
|
96
|
+
(M) => {
|
97
|
+
switch (M) {
|
98
|
+
case "teacher-card-view":
|
99
|
+
_();
|
100
|
+
return;
|
101
|
+
case "student-card-view":
|
102
|
+
d();
|
103
|
+
return;
|
104
|
+
case "teacher-card-unassign":
|
105
|
+
m == null || m(e, t);
|
106
|
+
return;
|
107
|
+
case "student-card-reattempt":
|
108
|
+
u == null || u(e, t);
|
109
|
+
return;
|
110
|
+
default:
|
111
|
+
throw new Error(`No callback function for ${M}`);
|
112
|
+
}
|
113
|
+
},
|
114
|
+
[
|
115
|
+
e,
|
116
|
+
u,
|
117
|
+
m,
|
118
|
+
d,
|
119
|
+
_,
|
120
|
+
t
|
121
|
+
]
|
122
|
+
), G = [
|
123
|
+
{
|
124
|
+
id: "teacher-card-view",
|
125
|
+
label: s ? "Review" : "View",
|
126
|
+
icon: x,
|
127
|
+
disabled: !1,
|
128
|
+
onClick: p
|
129
|
+
},
|
130
|
+
{
|
131
|
+
id: "teacher-card-unassign",
|
132
|
+
label: "Unassign",
|
133
|
+
icon: se,
|
134
|
+
disabled: i ? k === "MASTERY" : !K,
|
135
|
+
onClick: p
|
136
|
+
}
|
137
|
+
], J = [
|
138
|
+
{
|
139
|
+
id: "student-card-view",
|
140
|
+
label: "Review",
|
141
|
+
icon: x,
|
142
|
+
disabled: !s,
|
143
|
+
onClick: p
|
144
|
+
},
|
145
|
+
{
|
146
|
+
id: "student-card-reattempt",
|
147
|
+
label: "Reattempt",
|
148
|
+
icon: D,
|
149
|
+
disabled: !Y,
|
150
|
+
onClick: p
|
151
|
+
}
|
152
|
+
], S = Q(
|
153
|
+
() => le({
|
154
|
+
canResume: f,
|
155
|
+
canStart: h,
|
156
|
+
homeworkId: c,
|
157
|
+
isHomeWork: i,
|
158
|
+
isStudent: a,
|
159
|
+
milestoneId: l,
|
160
|
+
nodeType: k,
|
161
|
+
studentId: v,
|
162
|
+
userNodeId: o
|
163
|
+
}),
|
164
|
+
[
|
165
|
+
a,
|
166
|
+
i,
|
167
|
+
v,
|
168
|
+
k,
|
169
|
+
h,
|
170
|
+
f,
|
171
|
+
c,
|
172
|
+
o,
|
173
|
+
l
|
174
|
+
]
|
175
|
+
);
|
176
|
+
return /* @__PURE__ */ O(te, { $position: "relative", $width: "fit-content", children: [
|
177
|
+
/* @__PURE__ */ r(
|
178
|
+
N,
|
179
|
+
{
|
180
|
+
onClick: a ? q : _,
|
181
|
+
label: "homework-card",
|
182
|
+
analyticsLabel: S.analyticsLabel,
|
183
|
+
analyticsProps: S.analyticsProps,
|
184
|
+
children: /* @__PURE__ */ r(
|
185
|
+
re,
|
186
|
+
{
|
187
|
+
header: X,
|
188
|
+
isInQueue: E,
|
189
|
+
nodeData: e,
|
190
|
+
studentContainerRef: $,
|
191
|
+
subHeader: F,
|
192
|
+
userType: g
|
193
|
+
}
|
194
|
+
)
|
195
|
+
}
|
196
|
+
),
|
197
|
+
a && !i && /* @__PURE__ */ r(
|
198
|
+
A,
|
199
|
+
{
|
200
|
+
$width: 200,
|
201
|
+
options: J,
|
202
|
+
triggerRef: $,
|
203
|
+
visible: z,
|
204
|
+
shouldOpenOnRight: !1
|
205
|
+
}
|
206
|
+
),
|
207
|
+
!a && /* @__PURE__ */ O(ie, { $position: "absolute", $width: "fit-content", $borderRadiusX: 2, children: [
|
208
|
+
/* @__PURE__ */ r(
|
209
|
+
W,
|
210
|
+
{
|
211
|
+
renderAs: "primary",
|
212
|
+
tooltipItem: "Review",
|
213
|
+
position: "bottom",
|
214
|
+
zIndex: 6,
|
215
|
+
parentWidth: "100%",
|
216
|
+
hidden: R || L !== "WAIT_FOR_REVIEW" && i,
|
217
|
+
children: /* @__PURE__ */ r(
|
218
|
+
ne,
|
219
|
+
{
|
220
|
+
$alignItems: "center",
|
221
|
+
$justifyContent: "center",
|
222
|
+
ref: y,
|
223
|
+
onClick: B,
|
224
|
+
children: /* @__PURE__ */ r(U, { width: 16, height: 16 })
|
225
|
+
}
|
226
|
+
)
|
227
|
+
}
|
228
|
+
),
|
229
|
+
/* @__PURE__ */ r(
|
230
|
+
A,
|
231
|
+
{
|
232
|
+
options: G,
|
233
|
+
triggerRef: y,
|
234
|
+
visible: R,
|
235
|
+
shouldOpenOnRight: j
|
236
|
+
}
|
237
|
+
)
|
238
|
+
] }),
|
239
|
+
E && /* @__PURE__ */ r(oe, { $background: "WHITE_5", children: /* @__PURE__ */ r(ce, { $heightX: 1, $widthX: 6, children: /* @__PURE__ */ r(W, { renderAs: "primary", tooltipItem: "Not visible to student", position: "bottom", children: /* @__PURE__ */ r(ee, { $heightX: 1, $widthX: 6 }) }) }) })
|
240
|
+
] });
|
241
|
+
}, Ee = Z(ae);
|
242
|
+
export {
|
243
|
+
Ee as default
|
244
|
+
};
|
245
|
+
//# sourceMappingURL=homework-card.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"homework-card.js","sources":["../../../src/features/homework/homework-card.tsx"],"sourcesContent":["import type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../chapters-v2/comps/node-card/node-card-types';\nimport type { TUserTypes } from '../ui/types';\n\nimport { memo, useCallback, useMemo, useRef } from 'react';\n\nimport Eye2Icon from '../../assets/line-icons/icons/eye2';\nimport MoreVerticalIcon from '../../assets/line-icons/icons/more-vertical';\nimport RedoIcon from '../../assets/line-icons/icons/redo';\nimport ArrowTooltip from '../ui/arrow-tooltip/arrow-tooltip';\nimport Clickable from '../ui/buttons/clickable/clickable';\nimport useContextMenuClickHandler from '../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../ui/layout/flex-view';\nimport CardMenuOptions from './card-menu-options';\nimport HomeworkView from './homework-card-view';\nimport * as Styled from './styles';\nimport { getCardAnalyticProps } from './utils';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n header: string;\n nodeData: INodeDataProps;\n subHeader: string;\n userType: TUserTypes;\n studentId: string;\n userMilestoneId?: string;\n renderAs: 'homework' | 'milestone';\n shouldOpenOnRight: boolean;\n isInQueue?: boolean;\n}\n\nconst HomeworkCard = ({\n // callbacks\n nodeData,\n onNodeAttempt,\n onNodeReattempt,\n onNodeReview,\n onNodeUnassign,\n onNodeView,\n\n header,\n isInQueue,\n renderAs,\n shouldOpenOnRight,\n studentId,\n subHeader,\n userMilestoneId,\n userType,\n}: IHomeworkCardProps) => {\n const isHomeWork = renderAs === 'homework';\n const {\n node_type: nodeType,\n state,\n permissions,\n user_node_id: userNodeId,\n user_milestone_id: milestoneId,\n homework_id: homeworkId,\n } = nodeData;\n\n const teacherContainerRef = useRef<HTMLDivElement>(null);\n const studentContainerRef = useRef<HTMLDivElement>(null);\n const { menuVisible: teacherMenuVisible, onMenuClick: onTeacherMenuClick } =\n useContextMenuClickHandler(teacherContainerRef);\n const { menuVisible: studentMenuVisible, onMenuClick: onStudentMenuClick } =\n useContextMenuClickHandler(studentContainerRef);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n } = permissions;\n const isStudent = userType === 'STUDENT';\n\n const onStudentViewSheet = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, userMilestoneId);\n\n return;\n }\n }, [canReview, onNodeReview, userNodeId, nodeData, userMilestoneId]);\n\n const onStudentCardClick = useCallback(() => {\n if (canStart || canResume) {\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData, homeworkId);\n\n return;\n }\n\n if (!isHomeWork) {\n onStudentMenuClick();\n\n return;\n }\n onStudentViewSheet();\n }, [\n canStart,\n canResume,\n isHomeWork,\n onStudentViewSheet,\n onNodeAttempt,\n nodeData,\n homeworkId,\n onStudentMenuClick,\n ]);\n\n const onTeacherCardClick = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onNodeReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, userMilestoneId || milestoneId, homeworkId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onNodeView must be a function');\n }\n\n onNodeView(nodeData, userMilestoneId || milestoneId);\n }, [\n canReview,\n onNodeView,\n nodeData,\n userMilestoneId,\n milestoneId,\n onNodeReview,\n userNodeId,\n homeworkId,\n ]);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'teacher-card-view':\n onTeacherCardClick();\n\n return;\n case 'student-card-view':\n onStudentViewSheet();\n\n return;\n case 'teacher-card-unassign':\n onNodeUnassign?.(nodeData, userMilestoneId);\n\n return;\n case 'student-card-reattempt':\n onNodeReattempt?.(nodeData, userMilestoneId);\n\n return;\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [\n nodeData,\n onNodeReattempt,\n onNodeUnassign,\n onStudentViewSheet,\n onTeacherCardClick,\n userMilestoneId,\n ],\n );\n\n const teacherOptions = [\n {\n id: 'teacher-card-view',\n label: canReview ? 'Review' : 'View',\n icon: Eye2Icon,\n disabled: false,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n disabled: isHomeWork ? nodeType === 'MASTERY' : !canUnassign,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const studentOptions = [\n {\n id: 'student-card-view',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'student-card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const analyticsLabel = useMemo(\n () =>\n getCardAnalyticProps({\n canResume,\n canStart,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n userNodeId,\n }),\n [\n isStudent,\n isHomeWork,\n studentId,\n nodeType,\n canStart,\n canResume,\n homeworkId,\n userNodeId,\n milestoneId,\n ],\n );\n\n return (\n <Styled.CardContainer $position=\"relative\" $width=\"fit-content\">\n <Clickable\n onClick={isStudent ? onStudentCardClick : onTeacherCardClick}\n label=\"homework-card\"\n analyticsLabel={analyticsLabel.analyticsLabel}\n analyticsProps={analyticsLabel.analyticsProps}\n >\n <HomeworkView\n header={header}\n isInQueue={isInQueue}\n nodeData={nodeData}\n studentContainerRef={studentContainerRef}\n subHeader={subHeader}\n userType={userType}\n />\n </Clickable>\n {isStudent && !isHomeWork && (\n <CardMenuOptions\n $width={200}\n options={studentOptions}\n triggerRef={studentContainerRef}\n visible={studentMenuVisible}\n shouldOpenOnRight={false}\n />\n )}\n {!isStudent && (\n <Styled.MenuWrapper $position=\"absolute\" $width=\"fit-content\" $borderRadiusX={2}>\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Review\"\n position=\"bottom\"\n zIndex={6}\n parentWidth=\"100%\"\n hidden={teacherMenuVisible || (state !== 'WAIT_FOR_REVIEW' && isHomeWork)}\n >\n <Styled.CardKebabMenuWrapper\n $alignItems=\"center\"\n $justifyContent=\"center\"\n ref={teacherContainerRef}\n onClick={onTeacherMenuClick}\n >\n <MoreVerticalIcon width={16} height={16} />\n </Styled.CardKebabMenuWrapper>\n </ArrowTooltip>\n <CardMenuOptions\n options={teacherOptions}\n triggerRef={teacherContainerRef}\n visible={teacherMenuVisible}\n shouldOpenOnRight={shouldOpenOnRight}\n />\n </Styled.MenuWrapper>\n )}\n {isInQueue && (\n <Styled.BlurContainer $background=\"WHITE_5\">\n <Styled.BlurFlexView $heightX={1} $widthX={6}>\n <ArrowTooltip renderAs=\"primary\" tooltipItem=\"Not visible to student\" position=\"bottom\">\n <FlexView $heightX={1} $widthX={6} />\n </ArrowTooltip>\n </Styled.BlurFlexView>\n </Styled.BlurContainer>\n )}\n </Styled.CardContainer>\n );\n};\n\nexport default memo(HomeworkCard);\n"],"names":["HomeworkCard","nodeData","onNodeAttempt","onNodeReattempt","onNodeReview","onNodeUnassign","onNodeView","header","isInQueue","renderAs","shouldOpenOnRight","studentId","subHeader","userMilestoneId","userType","isHomeWork","nodeType","state","permissions","userNodeId","milestoneId","homeworkId","teacherContainerRef","useRef","studentContainerRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","canStart","canResume","canReview","canUnassign","canReset","isStudent","onStudentViewSheet","useCallback","onStudentCardClick","onTeacherCardClick","handleOnMenuOptionClick","optionId","teacherOptions","Eye2Icon","Styled.StyledMinus2Icon","studentOptions","RedoIcon","analyticsLabel","useMemo","getCardAnalyticProps","Styled.CardContainer","jsx","Clickable","HomeworkView","CardMenuOptions","jsxs","Styled.MenuWrapper","ArrowTooltip","Styled.CardKebabMenuWrapper","MoreVerticalIcon","Styled.BlurContainer","Styled.BlurFlexView","FlexView","HomeworkCard$1","memo"],"mappings":"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"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { createGetAPI as r } from "@cuemath/rest-api";
|
2
|
+
import { BASE_URL_V3 as t } from "../../../../constants/api.js";
|
3
|
+
const { useGet: i, invalidate: u } = r({
|
4
|
+
getURL: (e, s, { stream: o }) => `${t}/users/${e}/course-streams/${o}/homework`
|
5
|
+
});
|
6
|
+
export {
|
7
|
+
u as invalidateHomeworks,
|
8
|
+
i as useGetHomeworks
|
9
|
+
};
|
10
|
+
//# sourceMappingURL=get-homeworks.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"get-homeworks.js","sources":["../../../../../src/features/homework/hw-card-list/api/get-homeworks.ts"],"sourcesContent":["import type { INodeDataProps } from '../../../chapters-v2/comps/node-card/node-card-types';\n\nimport { createGetAPI } from '@cuemath/rest-api';\n\nimport { BASE_URL_V3 } from '../../../../constants/api';\n\nconst { useGet: useGetHomeworks, invalidate: invalidateHomeworks } = createGetAPI<\n INodeDataProps[],\n void,\n { stream: string }\n>({\n getURL: (studentId: string, _, { stream }) =>\n `${BASE_URL_V3}/users/${studentId}/course-streams/${stream}/homework`,\n});\n\nexport { useGetHomeworks, invalidateHomeworks };\n"],"names":["useGetHomeworks","invalidateHomeworks","createGetAPI","studentId","_","stream","BASE_URL_V3"],"mappings":";;AAMA,MAAM,EAAE,QAAQA,GAAiB,YAAYC,EAAA,IAAwBC,EAInE;AAAA,EACA,QAAQ,CAACC,GAAmBC,GAAG,EAAE,QAAAC,EAAA,MAC/B,GAAGC,CAAW,UAAUH,CAAS,mBAAmBE,CAAM;AAC9D,CAAC;"}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
import t, { css as n } from "styled-components";
|
2
|
+
import e from "../../ui/layout/flex-view.js";
|
3
|
+
import i from "../../ui/text/text.js";
|
4
|
+
const l = t(e)`
|
5
|
+
overflow-x: hidden;
|
6
|
+
overflow-y: visible;
|
7
|
+
padding: 16px 0px 92px 0px;
|
8
|
+
margin-bottom: -92px;
|
9
|
+
margin-top: -16px;
|
10
|
+
`, c = t(e)`
|
11
|
+
right: ${({ right: o }) => o};
|
12
|
+
left: ${({ left: o }) => o};
|
13
|
+
width: 32px;
|
14
|
+
cursor: pointer;
|
15
|
+
transition: opacity 0.3s ease-in-out;
|
16
|
+
opacity: ${({ $visible: o }) => o ? 1 : 0};
|
17
|
+
pointer-events: ${({ $visible: o }) => o ? "auto" : "none"};
|
18
|
+
z-index: 10;
|
19
|
+
path {
|
20
|
+
fill: ${({ theme: o }) => o.colors.WHITE};
|
21
|
+
}
|
22
|
+
`, x = t(e)(
|
23
|
+
({ $disablePointerEvents: o, theme: r }) => `
|
24
|
+
position: relative;
|
25
|
+
pointer-events: auto;
|
26
|
+
${o && n`
|
27
|
+
pointer-events: none;
|
28
|
+
:after {
|
29
|
+
content: '';
|
30
|
+
position: absolute;
|
31
|
+
top: 0;
|
32
|
+
left: 0;
|
33
|
+
right: 0;
|
34
|
+
bottom: 0;
|
35
|
+
background: ${r.colors.GREY_3};
|
36
|
+
}
|
37
|
+
`}
|
38
|
+
`
|
39
|
+
), d = t(i)`
|
40
|
+
writing-mode: sideways-lr;
|
41
|
+
`, u = t(e)`
|
42
|
+
position: relative;
|
43
|
+
|
44
|
+
&::after {
|
45
|
+
content: '';
|
46
|
+
position: absolute;
|
47
|
+
height: 8px;
|
48
|
+
width: 8px;
|
49
|
+
clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
|
50
|
+
background-color: ${({ theme: o }) => o.colors.BLACK_4};
|
51
|
+
top: 50%;
|
52
|
+
right: 0;
|
53
|
+
transform: translate(50%, calc(-50% + 0px)) rotate(225deg);
|
54
|
+
}
|
55
|
+
`;
|
56
|
+
export {
|
57
|
+
x as ContentWrapper,
|
58
|
+
d as QueueText,
|
59
|
+
u as QueueWrapper,
|
60
|
+
c as ScrollButton,
|
61
|
+
l as ScrollContainer
|
62
|
+
};
|
63
|
+
//# sourceMappingURL=hw-card-list-styled.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"hw-card-list-styled.js","sources":["../../../../src/features/homework/hw-card-list/hw-card-list-styled.tsx"],"sourcesContent":["import styled, { css } from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\n\nexport const ScrollContainer = styled(FlexView)`\n overflow-x: hidden;\n overflow-y: visible;\n padding: 16px 0px 92px 0px;\n margin-bottom: -92px;\n margin-top: -16px;\n`;\n\nexport const ScrollButton = styled(FlexView)<{ $visible: boolean; right: string; left: string }>`\n right: ${({ right }) => right};\n left: ${({ left }) => left};\n width: 32px;\n cursor: pointer;\n transition: opacity 0.3s ease-in-out;\n opacity: ${({ $visible }) => ($visible ? 1 : 0)};\n pointer-events: ${({ $visible }) => ($visible ? 'auto' : 'none')};\n z-index: 10;\n path {\n fill: ${({ theme }) => theme.colors.WHITE};\n }\n`;\n\nexport const ContentWrapper = styled(FlexView)<{ $disablePointerEvents: boolean }>(\n ({ $disablePointerEvents, theme }) => `\n position: relative;\n pointer-events: auto;\n ${\n $disablePointerEvents &&\n css`\n pointer-events: none;\n :after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: ${theme.colors.GREY_3};\n }\n `\n }\n `,\n);\n\nexport const QueueText = styled(Text)`\n writing-mode: sideways-lr;\n`;\n\nexport const QueueWrapper = styled(FlexView)`\n position: relative;\n\n &::after {\n content: '';\n position: absolute;\n height: 8px;\n width: 8px;\n clip-path: polygon(0% 0%, 100% 100%, 0% 100%);\n background-color: ${({ theme }) => theme.colors.BLACK_4};\n top: 50%;\n right: 0;\n transform: translate(50%, calc(-50% + 0px)) rotate(225deg);\n }\n`;\n"],"names":["ScrollContainer","styled","FlexView","ScrollButton","right","left","$visible","theme","ContentWrapper","$disablePointerEvents","css","QueueText","Text","QueueWrapper"],"mappings":";;;AAKa,MAAAA,IAAkBC,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQjCC,IAAeF,EAAOC,CAAQ;AAAA,WAChC,CAAC,EAAE,OAAAE,EAAM,MAAMA,CAAK;AAAA,UACrB,CAAC,EAAE,MAAAC,EAAK,MAAMA,CAAI;AAAA;AAAA;AAAA;AAAA,aAIf,CAAC,EAAE,UAAAC,EAAA,MAAgBA,IAAW,IAAI,CAAE;AAAA,oBAC7B,CAAC,EAAE,UAAAA,EAAA,MAAgBA,IAAW,SAAS,MAAO;AAAA;AAAA;AAAA,YAGtD,CAAC,EAAE,OAAAC,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA;AAAA,GAIhCC,IAAiBP,EAAOC,CAAQ;AAAA,EAC3C,CAAC,EAAE,uBAAAO,GAAuB,OAAAF,EAAA,MAAY;AAAA;AAAA;AAAA,MAIlCE,KACAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBASkBH,EAAM,OAAO,MAAM;AAAA;AAAA,OAGvC;AAAA;AAEJ,GAEaI,IAAYV,EAAOW,CAAI;AAAA;AAAA,GAIvBC,IAAeZ,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBASnB,CAAC,EAAE,OAAAK,EAAA,MAAYA,EAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;"}
|
@@ -0,0 +1,185 @@
|
|
1
|
+
import { jsxs as c, jsx as t } from "react/jsx-runtime";
|
2
|
+
import { useRef as q, useState as H, useEffect as f, useCallback as s } from "react";
|
3
|
+
import z from "../../../assets/line-icons/icons/chevron-left.js";
|
4
|
+
import U from "../../../assets/line-icons/icons/chevron-right.js";
|
5
|
+
import { useJourney as Z } from "../../journey/use-journey/use-journey.js";
|
6
|
+
import u from "../../ui/layout/flex-view.js";
|
7
|
+
import v from "../../ui/text/text.js";
|
8
|
+
import J from "../homework-card.js";
|
9
|
+
import { useGetHomeworks as D } from "./api/get-homeworks.js";
|
10
|
+
import { ContentWrapper as ee, ScrollButton as w, ScrollContainer as re, QueueWrapper as oe, QueueText as te } from "./hw-card-list-styled.js";
|
11
|
+
const ne = ({
|
12
|
+
userType: a,
|
13
|
+
studentId: i,
|
14
|
+
stream: d,
|
15
|
+
onTestStart: x,
|
16
|
+
onNodeAttempt: R,
|
17
|
+
onTestPreview: E,
|
18
|
+
onNodeView: B,
|
19
|
+
onTestReview: W,
|
20
|
+
onNodeReview: I,
|
21
|
+
onNodeUnassign: S,
|
22
|
+
homeworkRef: T,
|
23
|
+
individualHomeworkRef: y,
|
24
|
+
startHomePageJourney: $,
|
25
|
+
canStartJourney: C
|
26
|
+
}) => {
|
27
|
+
const n = q(null), [K, k] = H(!1), [j, _] = H(!1), {
|
28
|
+
get: L,
|
29
|
+
data: e,
|
30
|
+
isProcessingFailed: G,
|
31
|
+
isProcessing: m,
|
32
|
+
isStale: b
|
33
|
+
} = D(i), { isJourneyActive: A } = Z();
|
34
|
+
f(() => {
|
35
|
+
e != null && e.length && $ && !A && C && $({ hwDetails: e, studentId: i, stream: d, userType: a });
|
36
|
+
}, [
|
37
|
+
C,
|
38
|
+
e,
|
39
|
+
A,
|
40
|
+
$,
|
41
|
+
d,
|
42
|
+
i,
|
43
|
+
a
|
44
|
+
]);
|
45
|
+
const r = s(() => {
|
46
|
+
if (n.current) {
|
47
|
+
const { scrollLeft: o, scrollWidth: l, clientWidth: p } = n.current;
|
48
|
+
o > 1 && k(!0), o < l - p - 1 && _(!0);
|
49
|
+
}
|
50
|
+
}, []), N = s(() => {
|
51
|
+
n.current && (n.current.scrollBy({ left: -200, behavior: "smooth" }), r());
|
52
|
+
}, [r]), F = s(() => {
|
53
|
+
n.current && (n.current.scrollBy({ left: 200, behavior: "smooth" }), r());
|
54
|
+
}, [r]), Q = s(() => {
|
55
|
+
n.current && r();
|
56
|
+
}, [r]), X = s(() => {
|
57
|
+
k(!1), _(!1);
|
58
|
+
}, []);
|
59
|
+
f(() => {
|
60
|
+
const o = n.current;
|
61
|
+
if (o)
|
62
|
+
return o.addEventListener("scroll", r), r(), () => {
|
63
|
+
o.removeEventListener("scroll", r);
|
64
|
+
};
|
65
|
+
}, [r]), f(() => {
|
66
|
+
r();
|
67
|
+
}, [e, r]);
|
68
|
+
const h = s(() => {
|
69
|
+
L(i, void 0, { stream: d });
|
70
|
+
}, [L, d, i]);
|
71
|
+
f(() => {
|
72
|
+
!m && b && h();
|
73
|
+
}, [h, m, b]), f(() => {
|
74
|
+
h();
|
75
|
+
}, [h]);
|
76
|
+
const M = ((e == null ? void 0 : e.filter((o) => o.state === "WAIT_FOR_REVIEW")) || []).length;
|
77
|
+
return e && e.length === 0 ? /* @__PURE__ */ c(u, { $flexRowGapX: 1, children: [
|
78
|
+
/* @__PURE__ */ c(v, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: [
|
79
|
+
"Homework (",
|
80
|
+
e == null ? void 0 : e.length,
|
81
|
+
")"
|
82
|
+
] }),
|
83
|
+
/* @__PURE__ */ t(v, { $renderAs: "ab2", $color: "BLACK_T_60", children: "No Homework assigned yet" })
|
84
|
+
] }) : G ? null : /* @__PURE__ */ c(ee, { ref: T, $flexRowGapX: 1, $disablePointerEvents: m, children: [
|
85
|
+
/* @__PURE__ */ c(v, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: [
|
86
|
+
"Homework (",
|
87
|
+
M,
|
88
|
+
"/",
|
89
|
+
e == null ? void 0 : e.length,
|
90
|
+
")"
|
91
|
+
] }),
|
92
|
+
/* @__PURE__ */ c(
|
93
|
+
u,
|
94
|
+
{
|
95
|
+
$position: "relative",
|
96
|
+
onMouseEnter: Q,
|
97
|
+
onMouseLeave: X,
|
98
|
+
children: [
|
99
|
+
/* @__PURE__ */ t(
|
100
|
+
w,
|
101
|
+
{
|
102
|
+
$position: "absolute",
|
103
|
+
$background: "BLACK_T_60",
|
104
|
+
$justifyContent: "center",
|
105
|
+
$alignItems: "center",
|
106
|
+
$height: "100%",
|
107
|
+
onClick: N,
|
108
|
+
$visible: K,
|
109
|
+
left: "0px",
|
110
|
+
right: "auto",
|
111
|
+
children: /* @__PURE__ */ t(z, { width: 24, height: 24 })
|
112
|
+
}
|
113
|
+
),
|
114
|
+
/* @__PURE__ */ t(re, { ref: n, children: /* @__PURE__ */ t(u, { $flexDirection: "row", $flexGapX: 1, children: e == null ? void 0 : e.map((o, l) => {
|
115
|
+
const {
|
116
|
+
node_id: p,
|
117
|
+
worksheet_id: O,
|
118
|
+
node_type: V,
|
119
|
+
title: P,
|
120
|
+
subtext: Y
|
121
|
+
} = o, g = V === "DYNAMIC";
|
122
|
+
return /* @__PURE__ */ c(
|
123
|
+
u,
|
124
|
+
{
|
125
|
+
ref: l === 0 ? y : void 0,
|
126
|
+
$flexDirection: "row",
|
127
|
+
$flexGapX: 1,
|
128
|
+
children: [
|
129
|
+
e.length > 10 && l === 10 && /* @__PURE__ */ t(
|
130
|
+
oe,
|
131
|
+
{
|
132
|
+
$background: "BLACK_4",
|
133
|
+
$justifyContent: "center",
|
134
|
+
$gutter: 4,
|
135
|
+
$gap: 8,
|
136
|
+
children: /* @__PURE__ */ t(te, { $renderAs: "ac3", $color: "WHITE", children: "In Queue" })
|
137
|
+
}
|
138
|
+
),
|
139
|
+
/* @__PURE__ */ t(
|
140
|
+
J,
|
141
|
+
{
|
142
|
+
isInQueue: e.length > 10 && l > 9,
|
143
|
+
userType: a,
|
144
|
+
header: P,
|
145
|
+
subHeader: Y || "",
|
146
|
+
nodeData: o,
|
147
|
+
renderAs: "homework",
|
148
|
+
studentId: i,
|
149
|
+
onNodeAttempt: g ? x : R,
|
150
|
+
shouldOpenOnRight: !0,
|
151
|
+
onNodeView: g ? E : B,
|
152
|
+
onNodeReview: g ? W : I,
|
153
|
+
onNodeUnassign: S
|
154
|
+
}
|
155
|
+
)
|
156
|
+
]
|
157
|
+
},
|
158
|
+
`${O}_${p}_${l}`
|
159
|
+
);
|
160
|
+
}) }) }),
|
161
|
+
/* @__PURE__ */ t(
|
162
|
+
w,
|
163
|
+
{
|
164
|
+
$position: "absolute",
|
165
|
+
$width: "60px",
|
166
|
+
$height: "100%",
|
167
|
+
$background: "BLACK_T_60",
|
168
|
+
$justifyContent: "center",
|
169
|
+
$alignItems: "center",
|
170
|
+
onClick: F,
|
171
|
+
$visible: j,
|
172
|
+
left: "auto",
|
173
|
+
right: "0px",
|
174
|
+
children: /* @__PURE__ */ t(U, { width: 24, height: 24 })
|
175
|
+
}
|
176
|
+
)
|
177
|
+
]
|
178
|
+
}
|
179
|
+
)
|
180
|
+
] });
|
181
|
+
}, me = ne;
|
182
|
+
export {
|
183
|
+
me as default
|
184
|
+
};
|
185
|
+
//# sourceMappingURL=hw-card-list.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"hw-card-list.js","sources":["../../../../src/features/homework/hw-card-list/hw-card-list.tsx"],"sourcesContent":["import type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../../chapters-v2/comps/node-card/node-card-types';\nimport type { IHomepageStartJourneyProps } from '../../journey/types/homepage-journey-types';\nimport type { TUserTypes } from '../../ui/types';\n\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport ChevronLeftIcon from '../../../assets/line-icons/icons/chevron-left';\nimport ChevronRightIcon from '../../../assets/line-icons/icons/chevron-right';\nimport { useJourney } from '../../journey/use-journey/use-journey';\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport HomeworkCard from '../homework-card';\nimport { useGetHomeworks } from './api/get-homeworks';\nimport * as Styled from './hw-card-list-styled';\n\ninterface HWCardListProps extends INodeCardCallbacks {\n userType: TUserTypes;\n studentId: string;\n stream: string;\n onTestPreview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n onTestStart?: (sheetData: INodeDataProps, homeworkId?: string) => void;\n onTestReview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n homeworkRef?: React.RefObject<HTMLDivElement>;\n individualHomeworkRef?: React.RefObject<HTMLDivElement>;\n startHomePageJourney?: ({\n hwDetails,\n studentId,\n stream,\n userType,\n }: IHomepageStartJourneyProps) => void;\n canStartJourney?: boolean;\n}\n\nconst HWCardList: React.FC<HWCardListProps> = ({\n userType,\n studentId,\n stream,\n onTestStart,\n onNodeAttempt,\n onTestPreview,\n onNodeView,\n onTestReview,\n onNodeReview,\n onNodeUnassign,\n homeworkRef,\n individualHomeworkRef,\n startHomePageJourney,\n canStartJourney,\n}) => {\n const scrollRef = useRef<HTMLDivElement>(null);\n const [isLeftHovered, setIsLeftHovered] = useState(false);\n const [isRightHovered, setIsRightHovered] = useState(false);\n const {\n get: getHomeworks,\n data: hwDetails,\n isProcessingFailed,\n isProcessing,\n isStale,\n } = useGetHomeworks(studentId);\n const { isJourneyActive } = useJourney();\n\n useEffect(() => {\n if (hwDetails?.length && startHomePageJourney && !isJourneyActive && canStartJourney) {\n startHomePageJourney({ hwDetails, studentId, stream, userType });\n }\n }, [\n canStartJourney,\n hwDetails,\n isJourneyActive,\n startHomePageJourney,\n stream,\n studentId,\n userType,\n ]);\n\n const updatedCanScroll = useCallback(() => {\n if (scrollRef.current) {\n const { scrollLeft, scrollWidth, clientWidth } = scrollRef.current;\n\n if (scrollLeft > 1) {\n setIsLeftHovered(true);\n }\n\n if (scrollLeft < scrollWidth - clientWidth - 1) {\n setIsRightHovered(true);\n }\n }\n }, []);\n\n const handleScrollLeft = useCallback(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollBy({ left: -200, behavior: 'smooth' });\n updatedCanScroll();\n }\n }, [updatedCanScroll]);\n\n const handleScrollRight = useCallback(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollBy({ left: 200, behavior: 'smooth' });\n updatedCanScroll();\n }\n }, [updatedCanScroll]);\n\n const handleHoverEnter = useCallback(() => {\n if (!scrollRef.current) return;\n\n updatedCanScroll();\n }, [updatedCanScroll]);\n\n const handleHoverLeave = useCallback(() => {\n setIsLeftHovered(false);\n setIsRightHovered(false);\n }, []);\n\n useEffect(() => {\n const scrollElement = scrollRef.current;\n\n if (scrollElement) {\n scrollElement.addEventListener('scroll', updatedCanScroll);\n updatedCanScroll();\n\n return () => {\n scrollElement.removeEventListener('scroll', updatedCanScroll);\n };\n }\n }, [updatedCanScroll]);\n\n useEffect(() => {\n updatedCanScroll();\n }, [hwDetails, updatedCanScroll]);\n\n const fetchHomeworks = useCallback(() => {\n getHomeworks(studentId, undefined, { stream });\n }, [getHomeworks, stream, studentId]);\n\n useEffect(() => {\n if (!isProcessing && isStale) {\n fetchHomeworks();\n }\n }, [fetchHomeworks, isProcessing, isStale]);\n\n useEffect(() => {\n fetchHomeworks();\n }, [fetchHomeworks]);\n\n const waitForReviewSheets = (hwDetails?.filter(sheet => sheet.state === 'WAIT_FOR_REVIEW') || [])\n .length;\n\n if (hwDetails && hwDetails.length === 0) {\n return (\n <FlexView $flexRowGapX={1}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework ({hwDetails?.length})\n </Text>\n <Text $renderAs=\"ab2\" $color=\"BLACK_T_60\">\n No Homework assigned yet\n </Text>\n </FlexView>\n );\n }\n\n if (isProcessingFailed) {\n return null;\n }\n\n return (\n <Styled.ContentWrapper ref={homeworkRef} $flexRowGapX={1} $disablePointerEvents={isProcessing}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework ({waitForReviewSheets}/{hwDetails?.length})\n </Text>\n <FlexView\n $position=\"relative\"\n onMouseEnter={handleHoverEnter}\n onMouseLeave={handleHoverLeave}\n >\n <Styled.ScrollButton\n $position=\"absolute\"\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $height=\"100%\"\n onClick={handleScrollLeft}\n $visible={isLeftHovered}\n left=\"0px\"\n right=\"auto\"\n >\n <ChevronLeftIcon width={24} height={24} />\n </Styled.ScrollButton>\n\n <Styled.ScrollContainer ref={scrollRef}>\n <FlexView $flexDirection=\"row\" $flexGapX={1}>\n {hwDetails?.map((sheet, idx) => {\n const {\n node_id: nodeId,\n worksheet_id: worksheetId,\n node_type: nodeType,\n title,\n subtext,\n } = sheet;\n const isDynamicSheet = nodeType === 'DYNAMIC';\n\n return (\n <FlexView\n ref={idx === 0 ? individualHomeworkRef : undefined}\n key={`${worksheetId}_${nodeId}_${idx}`}\n $flexDirection=\"row\"\n $flexGapX={1}\n >\n {hwDetails.length > 10 && idx === 10 && (\n <Styled.QueueWrapper\n $background=\"BLACK_4\"\n $justifyContent=\"center\"\n $gutter={4}\n $gap={8}\n >\n <Styled.QueueText $renderAs=\"ac3\" $color=\"WHITE\">\n In Queue\n </Styled.QueueText>\n </Styled.QueueWrapper>\n )}\n <HomeworkCard\n isInQueue={hwDetails.length > 10 && idx > 9}\n userType={userType}\n header={title}\n subHeader={subtext || ''}\n nodeData={sheet}\n renderAs=\"homework\"\n studentId={studentId}\n onNodeAttempt={isDynamicSheet ? onTestStart : onNodeAttempt}\n shouldOpenOnRight={true}\n onNodeView={isDynamicSheet ? onTestPreview : onNodeView}\n onNodeReview={isDynamicSheet ? onTestReview : onNodeReview}\n onNodeUnassign={onNodeUnassign}\n />\n </FlexView>\n );\n })}\n </FlexView>\n </Styled.ScrollContainer>\n <Styled.ScrollButton\n $position=\"absolute\"\n $width=\"60px\"\n $height=\"100%\"\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n onClick={handleScrollRight}\n $visible={isRightHovered}\n left=\"auto\"\n right=\"0px\"\n >\n <ChevronRightIcon width={24} height={24} />\n </Styled.ScrollButton>\n </FlexView>\n </Styled.ContentWrapper>\n );\n};\n\nexport default HWCardList;\n"],"names":["HWCardList","userType","studentId","stream","onTestStart","onNodeAttempt","onTestPreview","onNodeView","onTestReview","onNodeReview","onNodeUnassign","homeworkRef","individualHomeworkRef","startHomePageJourney","canStartJourney","scrollRef","useRef","isLeftHovered","setIsLeftHovered","useState","isRightHovered","setIsRightHovered","getHomeworks","hwDetails","isProcessingFailed","isProcessing","isStale","useGetHomeworks","isJourneyActive","useJourney","useEffect","updatedCanScroll","useCallback","scrollLeft","scrollWidth","clientWidth","handleScrollLeft","handleScrollRight","handleHoverEnter","handleHoverLeave","scrollElement","fetchHomeworks","waitForReviewSheets","sheet","jsxs","FlexView","Text","Styled.ContentWrapper","jsx","Styled.ScrollButton","ChevronLeftIcon","Styled.ScrollContainer","idx","nodeId","worksheetId","nodeType","title","subtext","isDynamicSheet","Styled.QueueWrapper","Styled.QueueText","HomeworkCard","ChevronRightIcon","HWCardList$1"],"mappings":";;;;;;;;;;AAoCA,MAAMA,KAAwC,CAAC;AAAA,EAC7C,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC;AAAA,EACA,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,iBAAAC;AACF,MAAM;AACE,QAAAC,IAAYC,EAAuB,IAAI,GACvC,CAACC,GAAeC,CAAgB,IAAIC,EAAS,EAAK,GAClD,CAACC,GAAgBC,CAAiB,IAAIF,EAAS,EAAK,GACpD;AAAA,IACJ,KAAKG;AAAA,IACL,MAAMC;AAAA,IACN,oBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,SAAAC;AAAA,EAAA,IACEC,EAAgBzB,CAAS,GACvB,EAAE,iBAAA0B,MAAoBC;AAE5B,EAAAC,EAAU,MAAM;AACd,IAAIP,KAAA,QAAAA,EAAW,UAAUV,KAAwB,CAACe,KAAmBd,KACnED,EAAqB,EAAE,WAAAU,GAAW,WAAArB,GAAW,QAAAC,GAAQ,UAAAF,EAAU,CAAA;AAAA,EACjE,GACC;AAAA,IACDa;AAAA,IACAS;AAAA,IACAK;AAAA,IACAf;AAAA,IACAV;AAAA,IACAD;AAAA,IACAD;AAAA,EAAA,CACD;AAEK,QAAA8B,IAAmBC,EAAY,MAAM;AACzC,QAAIjB,EAAU,SAAS;AACrB,YAAM,EAAE,YAAAkB,GAAY,aAAAC,GAAa,aAAAC,EAAA,IAAgBpB,EAAU;AAE3D,MAAIkB,IAAa,KACff,EAAiB,EAAI,GAGnBe,IAAaC,IAAcC,IAAc,KAC3Cd,EAAkB,EAAI;AAAA,IAE1B;AAAA,EACF,GAAG,CAAE,CAAA,GAECe,IAAmBJ,EAAY,MAAM;AACzC,IAAIjB,EAAU,YACZA,EAAU,QAAQ,SAAS,EAAE,MAAM,MAAM,UAAU,UAAU,GAC5CgB;EACnB,GACC,CAACA,CAAgB,CAAC,GAEfM,IAAoBL,EAAY,MAAM;AAC1C,IAAIjB,EAAU,YACZA,EAAU,QAAQ,SAAS,EAAE,MAAM,KAAK,UAAU,UAAU,GAC3CgB;EACnB,GACC,CAACA,CAAgB,CAAC,GAEfO,IAAmBN,EAAY,MAAM;AACrC,IAACjB,EAAU,WAEEgB;EAAA,GAChB,CAACA,CAAgB,CAAC,GAEfQ,IAAmBP,EAAY,MAAM;AACzC,IAAAd,EAAiB,EAAK,GACtBG,EAAkB,EAAK;AAAA,EACzB,GAAG,CAAE,CAAA;AAEL,EAAAS,EAAU,MAAM;AACd,UAAMU,IAAgBzB,EAAU;AAEhC,QAAIyB;AACY,aAAAA,EAAA,iBAAiB,UAAUT,CAAgB,GACxCA,KAEV,MAAM;AACG,QAAAS,EAAA,oBAAoB,UAAUT,CAAgB;AAAA,MAAA;AAAA,EAEhE,GACC,CAACA,CAAgB,CAAC,GAErBD,EAAU,MAAM;AACG,IAAAC;EAAA,GAChB,CAACR,GAAWQ,CAAgB,CAAC;AAE1B,QAAAU,IAAiBT,EAAY,MAAM;AACvC,IAAAV,EAAapB,GAAW,QAAW,EAAE,QAAAC,EAAQ,CAAA;AAAA,EAC5C,GAAA,CAACmB,GAAcnB,GAAQD,CAAS,CAAC;AAEpC,EAAA4B,EAAU,MAAM;AACV,IAAA,CAACL,KAAgBC,KACJe;EAEhB,GAAA,CAACA,GAAgBhB,GAAcC,CAAO,CAAC,GAE1CI,EAAU,MAAM;AACC,IAAAW;EAAA,GACd,CAACA,CAAc,CAAC;AAEb,QAAAC,MAAuBnB,KAAA,gBAAAA,EAAW,OAAO,CAAAoB,MAASA,EAAM,UAAU,uBAAsB,CAAA,GAC3F;AAEC,SAAApB,KAAaA,EAAU,WAAW,IAElC,gBAAAqB,EAACC,GAAS,EAAA,cAAc,GACtB,UAAA;AAAA,IAAA,gBAAAD,EAACE,GAAK,EAAA,WAAU,aAAY,QAAO,cAAa,UAAA;AAAA,MAAA;AAAA,MACnCvB,KAAA,gBAAAA,EAAW;AAAA,MAAO;AAAA,IAAA,GAC/B;AAAA,sBACCuB,GAAK,EAAA,WAAU,OAAM,QAAO,cAAa,UAE1C,4BAAA;AAAA,EACF,EAAA,CAAA,IAIAtB,IACK,OAIP,gBAAAoB,EAACG,IAAA,EAAsB,KAAKpC,GAAa,cAAc,GAAG,uBAAuBc,GAC/E,UAAA;AAAA,IAAA,gBAAAmB,EAACE,GAAK,EAAA,WAAU,aAAY,QAAO,cAAa,UAAA;AAAA,MAAA;AAAA,MACnCJ;AAAA,MAAoB;AAAA,MAAEnB,KAAA,gBAAAA,EAAW;AAAA,MAAO;AAAA,IAAA,GACrD;AAAA,IACA,gBAAAqB;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,cAAcP;AAAA,QACd,cAAcC;AAAA,QAEd,UAAA;AAAA,UAAA,gBAAAS;AAAA,YAACC;AAAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,aAAY;AAAA,cACZ,iBAAgB;AAAA,cAChB,aAAY;AAAA,cACZ,SAAQ;AAAA,cACR,SAASb;AAAA,cACT,UAAUnB;AAAA,cACV,MAAK;AAAA,cACL,OAAM;AAAA,cAEN,UAAC,gBAAA+B,EAAAE,GAAA,EAAgB,OAAO,IAAI,QAAQ,IAAI;AAAA,YAAA;AAAA,UAC1C;AAAA,4BAECC,IAAA,EAAuB,KAAKpC,GAC3B,UAAC,gBAAAiC,EAAAH,GAAA,EAAS,gBAAe,OAAM,WAAW,GACvC,UAAAtB,KAAA,gBAAAA,EAAW,IAAI,CAACoB,GAAOS,MAAQ;AACxB,kBAAA;AAAA,cACJ,SAASC;AAAA,cACT,cAAcC;AAAA,cACd,WAAWC;AAAA,cACX,OAAAC;AAAA,cACA,SAAAC;AAAA,YACE,IAAAd,GACEe,IAAiBH,MAAa;AAGlC,mBAAA,gBAAAX;AAAA,cAACC;AAAA,cAAA;AAAA,gBACC,KAAKO,MAAQ,IAAIxC,IAAwB;AAAA,gBAEzC,gBAAe;AAAA,gBACf,WAAW;AAAA,gBAEV,UAAA;AAAA,kBAAUW,EAAA,SAAS,MAAM6B,MAAQ,MAChC,gBAAAJ;AAAA,oBAACW;AAAAA,oBAAA;AAAA,sBACC,aAAY;AAAA,sBACZ,iBAAgB;AAAA,sBAChB,SAAS;AAAA,sBACT,MAAM;AAAA,sBAEN,UAAA,gBAAAX,EAACY,IAAA,EAAiB,WAAU,OAAM,QAAO,SAAQ,UAEjD,YAAA;AAAA,oBAAA;AAAA,kBACF;AAAA,kBAEF,gBAAAZ;AAAA,oBAACa;AAAA,oBAAA;AAAA,sBACC,WAAWtC,EAAU,SAAS,MAAM6B,IAAM;AAAA,sBAC1C,UAAAnD;AAAA,sBACA,QAAQuD;AAAA,sBACR,WAAWC,KAAW;AAAA,sBACtB,UAAUd;AAAA,sBACV,UAAS;AAAA,sBACT,WAAAzC;AAAA,sBACA,eAAewD,IAAiBtD,IAAcC;AAAA,sBAC9C,mBAAmB;AAAA,sBACnB,YAAYqD,IAAiBpD,IAAgBC;AAAA,sBAC7C,cAAcmD,IAAiBlD,IAAeC;AAAA,sBAC9C,gBAAAC;AAAA,oBAAA;AAAA,kBACF;AAAA,gBAAA;AAAA,cAAA;AAAA,cA7BK,GAAG4C,CAAW,IAAID,CAAM,IAAID,CAAG;AAAA,YAAA;AAAA,UA8BtC,IAGN,EACF,CAAA;AAAA,UACA,gBAAAJ;AAAA,YAACC;AAAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,QAAO;AAAA,cACP,SAAQ;AAAA,cACR,aAAY;AAAA,cACZ,iBAAgB;AAAA,cAChB,aAAY;AAAA,cACZ,SAASZ;AAAA,cACT,UAAUjB;AAAA,cACV,MAAK;AAAA,cACL,OAAM;AAAA,cAEN,UAAC,gBAAA4B,EAAAc,GAAA,EAAiB,OAAO,IAAI,QAAQ,IAAI;AAAA,YAAA;AAAA,UAC3C;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ,GAEAC,KAAe/D;"}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { jsx as t } from "react/jsx-runtime";
|
2
|
+
import { memo as m } from "react";
|
3
|
+
import a from "styled-components";
|
4
|
+
import n from "../ui/layout/flex-view.js";
|
5
|
+
import { differenceInDays as e } from "../../node_modules/date-fns/differenceInDays.js";
|
6
|
+
const g = a(n)`
|
7
|
+
height: 100%;
|
8
|
+
border-radius: 4px;
|
9
|
+
transition: all 300ms;
|
10
|
+
width: ${(r) => r.progress}%;
|
11
|
+
`, d = a(n)`
|
12
|
+
position: absolute;
|
13
|
+
top: -1px;
|
14
|
+
right: 0px;
|
15
|
+
width: 100%;
|
16
|
+
height: 2px;
|
17
|
+
background-color: ${(r) => r.theme.colors.BLACK};
|
18
|
+
z-index: 2;
|
19
|
+
`, l = ({ unlockedOn: r, dueDate: i, progressBg: c }) => {
|
20
|
+
const p = (() => {
|
21
|
+
const o = e(i, r), s = e(/* @__PURE__ */ new Date(), r);
|
22
|
+
return s > o ? 100 : Math.min(Math.max(s / o * 100, 0), 100);
|
23
|
+
})();
|
24
|
+
return /* @__PURE__ */ t(d, { children: /* @__PURE__ */ t(g, { progress: p, $background: c }) });
|
25
|
+
}, y = m(l);
|
26
|
+
export {
|
27
|
+
y as default
|
28
|
+
};
|
29
|
+
//# sourceMappingURL=node-progress.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"node-progress.js","sources":["../../../src/features/homework/node-progress.tsx"],"sourcesContent":["import type { TColorNames } from '../ui/types';\n\nimport { differenceInDays } from 'date-fns';\nimport React, { memo } from 'react';\nimport styled from 'styled-components';\n\nimport FlexView from '../ui/layout/flex-view';\n\ninterface NodeProgressProps {\n unlockedOn: number | string | Date;\n dueDate: number | string | Date;\n progressBg: TColorNames;\n}\n\nconst ProgressBar = styled(FlexView)<{ progress: number }>`\n height: 100%;\n border-radius: 4px;\n transition: all 300ms;\n width: ${props => props.progress}%;\n`;\n\nconst ProgressContainer = styled(FlexView)`\n position: absolute;\n top: -1px;\n right: 0px;\n width: 100%;\n height: 2px;\n background-color: ${props => props.theme.colors.BLACK};\n z-index: 2;\n`;\n\nconst NodeProgress: React.FC<NodeProgressProps> = ({ unlockedOn, dueDate, progressBg }) => {\n const calculateProgress = () => {\n const totalDays = differenceInDays(dueDate, unlockedOn);\n const daysElapsed = differenceInDays(new Date(), unlockedOn);\n\n if (daysElapsed > totalDays) return 100;\n\n const progress = Math.min(Math.max((daysElapsed / totalDays) * 100, 0), 100);\n\n return progress;\n };\n\n const progress = calculateProgress();\n\n return (\n <ProgressContainer>\n <ProgressBar progress={progress} $background={progressBg} />\n </ProgressContainer>\n );\n};\n\nexport default memo(NodeProgress);\n"],"names":["ProgressBar","styled","FlexView","props","ProgressContainer","NodeProgress","unlockedOn","dueDate","progressBg","progress","totalDays","differenceInDays","daysElapsed","jsx","NodeProgress$1","memo"],"mappings":";;;;;AAcA,MAAMA,IAAcC,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,WAIxB,CAAAC,MAASA,EAAM,QAAQ;AAAA,GAG5BC,IAAoBH,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAMnB,CAASC,MAAAA,EAAM,MAAM,OAAO,KAAK;AAAA;AAAA,GAIjDE,IAA4C,CAAC,EAAE,YAAAC,GAAY,SAAAC,GAAS,YAAAC,QAAiB;AAYzF,QAAMC,KAXoB,MAAM;AACxB,UAAAC,IAAYC,EAAiBJ,GAASD,CAAU,GAChDM,IAAcD,EAAqB,oBAAA,QAAQL,CAAU;AAEvD,WAAAM,IAAcF,IAAkB,MAEnB,KAAK,IAAI,KAAK,IAAKE,IAAcF,IAAa,KAAK,CAAC,GAAG,GAAG;AAAA,EAEpE;AAKT,2BACGN,GACC,EAAA,UAAA,gBAAAS,EAACb,KAAY,UAAAS,GAAoB,aAAaD,EAAY,CAAA,EAC5D,CAAA;AAEJ,GAEeM,IAAAC,EAAKV,CAAY;"}
|