@cuemath/leap 2.8.61-rj-21 → 2.8.61-rj-22
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/line-icons/icons/alert.js +3 -3
- package/dist/assets/line-icons/icons/alert.js.map +1 -1
- package/dist/assets/line-icons/icons/back.js +4 -4
- package/dist/assets/line-icons/icons/back.js.map +1 -1
- package/dist/assets/line-icons/icons/back2.js +3 -3
- package/dist/assets/line-icons/icons/back2.js.map +1 -1
- package/dist/assets/line-icons/icons/bin.js +8 -8
- package/dist/assets/line-icons/icons/bin.js.map +1 -1
- package/dist/assets/line-icons/icons/bin2.js +4 -4
- package/dist/assets/line-icons/icons/bin2.js.map +1 -1
- package/dist/assets/line-icons/icons/book-closed.js +3 -3
- package/dist/assets/line-icons/icons/book-closed.js.map +1 -1
- package/dist/assets/line-icons/icons/book.js +4 -4
- package/dist/assets/line-icons/icons/book.js.map +1 -1
- package/dist/assets/line-icons/icons/book2.js +3 -3
- package/dist/assets/line-icons/icons/book2.js.map +1 -1
- package/dist/assets/line-icons/icons/bookmark-stroke-icon.js.map +1 -1
- package/dist/assets/line-icons/icons/bookmark.js +2 -2
- package/dist/assets/line-icons/icons/bookmark.js.map +1 -1
- package/dist/assets/line-icons/icons/bulb.js +8 -8
- package/dist/assets/line-icons/icons/bulb.js.map +1 -1
- package/dist/assets/line-icons/icons/bulb2.js +3 -3
- package/dist/assets/line-icons/icons/bulb2.js.map +1 -1
- package/dist/assets/line-icons/icons/calculator.js.map +1 -1
- package/dist/assets/line-icons/icons/calendar.js +3 -3
- package/dist/assets/line-icons/icons/calendar.js.map +1 -1
- package/dist/assets/line-icons/icons/carat-left.js.map +1 -1
- package/dist/assets/line-icons/icons/carat-right.js.map +1 -1
- package/dist/assets/line-icons/icons/chat.js +4 -4
- package/dist/assets/line-icons/icons/chat.js.map +1 -1
- package/dist/assets/line-icons/icons/check.js +4 -4
- package/dist/assets/line-icons/icons/check.js.map +1 -1
- package/dist/assets/line-icons/icons/check2.js +3 -3
- package/dist/assets/line-icons/icons/check2.js.map +1 -1
- package/dist/assets/line-icons/icons/chevron-down.js +6 -6
- package/dist/assets/line-icons/icons/chevron-down.js.map +1 -1
- package/dist/assets/line-icons/icons/chevron-left.js +4 -4
- package/dist/assets/line-icons/icons/chevron-left.js.map +1 -1
- package/dist/assets/line-icons/icons/chevron-right.js +6 -6
- package/dist/assets/line-icons/icons/chevron-right.js.map +1 -1
- package/dist/assets/line-icons/icons/circle-back.js.map +1 -1
- package/dist/assets/line-icons/icons/clear-all.js.map +1 -1
- package/dist/assets/line-icons/icons/clipboard.js +5 -5
- package/dist/assets/line-icons/icons/clipboard.js.map +1 -1
- package/dist/assets/line-icons/icons/clock.js +3 -3
- package/dist/assets/line-icons/icons/clock.js.map +1 -1
- package/dist/assets/line-icons/icons/clock2.js +5 -5
- package/dist/assets/line-icons/icons/clock2.js.map +1 -1
- package/dist/assets/line-icons/icons/closed-eye.js.map +1 -1
- package/dist/assets/line-icons/icons/code.js +3 -3
- package/dist/assets/line-icons/icons/code.js.map +1 -1
- package/dist/assets/line-icons/icons/copy.js +4 -4
- package/dist/assets/line-icons/icons/copy.js.map +1 -1
- package/dist/assets/line-icons/icons/cross.js +4 -4
- package/dist/assets/line-icons/icons/cross.js.map +1 -1
- package/dist/assets/line-icons/icons/cue-rocket.js +2 -2
- package/dist/assets/line-icons/icons/cue-rocket.js.map +1 -1
- package/dist/assets/line-icons/icons/cuemath-logo.js +2 -2
- package/dist/assets/line-icons/icons/cuemath-logo.js.map +1 -1
- package/dist/assets/line-icons/icons/cursor.js.map +1 -1
- package/dist/assets/line-icons/icons/dash-arrow.js +3 -3
- package/dist/assets/line-icons/icons/dash-arrow.js.map +1 -1
- package/dist/assets/line-icons/icons/down.js +2 -2
- package/dist/assets/line-icons/icons/down.js.map +1 -1
- package/dist/assets/line-icons/icons/download.js.map +1 -1
- package/dist/assets/line-icons/icons/draft.js +4 -4
- package/dist/assets/line-icons/icons/draft.js.map +1 -1
- package/dist/assets/line-icons/icons/drag.js +3 -3
- package/dist/assets/line-icons/icons/drag.js.map +1 -1
- package/dist/assets/line-icons/icons/edit-star.js +5 -5
- package/dist/assets/line-icons/icons/edit-star.js.map +1 -1
- package/dist/assets/line-icons/icons/edit.js +5 -5
- package/dist/assets/line-icons/icons/edit.js.map +1 -1
- package/dist/assets/line-icons/icons/edit2.js +2 -2
- package/dist/assets/line-icons/icons/edit2.js.map +1 -1
- package/dist/assets/line-icons/icons/equation.js.map +1 -1
- package/dist/assets/line-icons/icons/eraser.js +3 -3
- package/dist/assets/line-icons/icons/eraser.js.map +1 -1
- package/dist/assets/line-icons/icons/eye.js +4 -4
- package/dist/assets/line-icons/icons/eye.js.map +1 -1
- package/dist/assets/line-icons/icons/eye2.js +2 -2
- package/dist/assets/line-icons/icons/eye2.js.map +1 -1
- package/dist/assets/line-icons/icons/game.js +3 -3
- package/dist/assets/line-icons/icons/game.js.map +1 -1
- package/dist/assets/line-icons/icons/hand.js +2 -2
- package/dist/assets/line-icons/icons/hand.js.map +1 -1
- package/dist/assets/line-icons/icons/help.js +3 -3
- package/dist/assets/line-icons/icons/help.js.map +1 -1
- package/dist/assets/line-icons/icons/highlighter.js +4 -4
- package/dist/assets/line-icons/icons/highlighter.js.map +1 -1
- package/dist/assets/line-icons/icons/home.js +3 -3
- package/dist/assets/line-icons/icons/home.js.map +1 -1
- package/dist/assets/line-icons/icons/image.js +3 -3
- package/dist/assets/line-icons/icons/image.js.map +1 -1
- package/dist/assets/line-icons/icons/info.js +3 -3
- package/dist/assets/line-icons/icons/info.js.map +1 -1
- package/dist/assets/line-icons/icons/info2.js +3 -3
- package/dist/assets/line-icons/icons/info2.js.map +1 -1
- package/dist/assets/line-icons/icons/left.js +3 -3
- package/dist/assets/line-icons/icons/left.js.map +1 -1
- package/dist/assets/line-icons/icons/lock.js +3 -3
- package/dist/assets/line-icons/icons/lock.js.map +1 -1
- package/dist/assets/line-icons/icons/lock2.js +2 -2
- package/dist/assets/line-icons/icons/lock2.js.map +1 -1
- package/dist/assets/line-icons/icons/minus.js +2 -2
- package/dist/assets/line-icons/icons/minus.js.map +1 -1
- package/dist/assets/line-icons/icons/minus2.js +3 -3
- package/dist/assets/line-icons/icons/minus2.js.map +1 -1
- package/dist/assets/line-icons/icons/mistake.js +3 -3
- package/dist/assets/line-icons/icons/mistake.js.map +1 -1
- package/dist/assets/line-icons/icons/mobile.js +3 -3
- package/dist/assets/line-icons/icons/mobile.js.map +1 -1
- package/dist/assets/line-icons/icons/more-vertical.js +3 -3
- package/dist/assets/line-icons/icons/more-vertical.js.map +1 -1
- package/dist/assets/line-icons/icons/next.js +5 -5
- package/dist/assets/line-icons/icons/next.js.map +1 -1
- package/dist/assets/line-icons/icons/next2.js +4 -4
- package/dist/assets/line-icons/icons/next2.js.map +1 -1
- package/dist/assets/line-icons/icons/pan.js.map +1 -1
- package/dist/assets/line-icons/icons/pencil.js +3 -3
- package/dist/assets/line-icons/icons/pencil.js.map +1 -1
- package/dist/assets/line-icons/icons/play.js +5 -5
- package/dist/assets/line-icons/icons/play.js.map +1 -1
- package/dist/assets/line-icons/icons/play2.js +5 -5
- package/dist/assets/line-icons/icons/play2.js.map +1 -1
- package/dist/assets/line-icons/icons/plus.js +4 -4
- package/dist/assets/line-icons/icons/plus.js.map +1 -1
- package/dist/assets/line-icons/icons/plus2.js +3 -3
- package/dist/assets/line-icons/icons/plus2.js.map +1 -1
- package/dist/assets/line-icons/icons/pointer.js +2 -2
- package/dist/assets/line-icons/icons/pointer.js.map +1 -1
- package/dist/assets/line-icons/icons/practice.js +2 -2
- package/dist/assets/line-icons/icons/practice.js.map +1 -1
- package/dist/assets/line-icons/icons/progress.js +3 -3
- package/dist/assets/line-icons/icons/progress.js.map +1 -1
- package/dist/assets/line-icons/icons/question-letter.js +3 -3
- package/dist/assets/line-icons/icons/question-letter.js.map +1 -1
- package/dist/assets/line-icons/icons/question.js +5 -5
- package/dist/assets/line-icons/icons/question.js.map +1 -1
- package/dist/assets/line-icons/icons/redo.js +4 -4
- package/dist/assets/line-icons/icons/redo.js.map +1 -1
- package/dist/assets/line-icons/icons/right.js +3 -3
- package/dist/assets/line-icons/icons/right.js.map +1 -1
- package/dist/assets/line-icons/icons/ruler.js +3 -3
- package/dist/assets/line-icons/icons/ruler.js.map +1 -1
- package/dist/assets/line-icons/icons/scribble.js.map +1 -1
- package/dist/assets/line-icons/icons/search.js +3 -3
- package/dist/assets/line-icons/icons/search.js.map +1 -1
- package/dist/assets/line-icons/icons/sheet.js +9 -9
- package/dist/assets/line-icons/icons/sheet.js.map +1 -1
- package/dist/assets/line-icons/icons/sketch.js +4 -4
- package/dist/assets/line-icons/icons/sketch.js.map +1 -1
- package/dist/assets/line-icons/icons/skip.js +6 -6
- package/dist/assets/line-icons/icons/skip.js.map +1 -1
- package/dist/assets/line-icons/icons/skip2.js +4 -4
- package/dist/assets/line-icons/icons/skip2.js.map +1 -1
- package/dist/assets/line-icons/icons/square-dots.js.map +1 -1
- package/dist/assets/line-icons/icons/star.js +3 -3
- package/dist/assets/line-icons/icons/star.js.map +1 -1
- package/dist/assets/line-icons/icons/star2.js +3 -3
- package/dist/assets/line-icons/icons/star2.js.map +1 -1
- package/dist/assets/line-icons/icons/striked-eye.js +4 -4
- package/dist/assets/line-icons/icons/striked-eye.js.map +1 -1
- package/dist/assets/line-icons/icons/switch-icon.js +4 -4
- package/dist/assets/line-icons/icons/switch-icon.js.map +1 -1
- package/dist/assets/line-icons/icons/text-icon.js.map +1 -1
- package/dist/assets/line-icons/icons/tick.js +2 -2
- package/dist/assets/line-icons/icons/tick.js.map +1 -1
- package/dist/assets/line-icons/icons/tri-dots.js.map +1 -1
- package/dist/assets/line-icons/icons/tri2-dots.js.map +1 -1
- package/dist/assets/line-icons/icons/trophy.js +3 -3
- package/dist/assets/line-icons/icons/trophy.js.map +1 -1
- package/dist/assets/line-icons/icons/tutoring.js +4 -4
- package/dist/assets/line-icons/icons/tutoring.js.map +1 -1
- package/dist/assets/line-icons/icons/undo.js +4 -4
- package/dist/assets/line-icons/icons/undo.js.map +1 -1
- package/dist/assets/line-icons/icons/unlock.js +4 -4
- package/dist/assets/line-icons/icons/unlock.js.map +1 -1
- package/dist/assets/line-icons/icons/up.js +3 -3
- package/dist/assets/line-icons/icons/up.js.map +1 -1
- package/dist/assets/line-icons/icons/upload.js.map +1 -1
- package/dist/assets/line-icons/icons/user.js +3 -3
- package/dist/assets/line-icons/icons/user.js.map +1 -1
- package/dist/assets/line-icons/icons/user2.js +2 -2
- package/dist/assets/line-icons/icons/user2.js.map +1 -1
- package/dist/assets/line-icons/icons/zoom-in.js.map +1 -1
- package/dist/assets/line-icons/icons/zoom-out.js.map +1 -1
- package/dist/constants/country.js.map +1 -1
- package/dist/features/blockers/multi-tab-blocker/multi-tab-blocker-context.js.map +1 -1
- package/dist/features/blockers/multi-tab-blocker/multi-tab-blocker.js +14 -14
- package/dist/features/blockers/multi-tab-blocker/multi-tab-blocker.js.map +1 -1
- package/dist/features/blockers/multi-tab-blocker/use-is-tab-blocked.js +2 -2
- package/dist/features/blockers/multi-tab-blocker/use-is-tab-blocked.js.map +1 -1
- package/dist/features/chapters/api/chapter.js.map +1 -1
- package/dist/features/chapters/chapter/chapter.js +20 -20
- package/dist/features/chapters/chapter/chapter.js.map +1 -1
- package/dist/features/chapters/chapter/comps/chapter-banner/chapter-banner-styled.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-styled.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-styled.js.map +1 -1
- package/dist/features/chapters/chapter/comps/supplementary-resources/supplementary-resources.js.map +1 -1
- package/dist/features/chapters/chapter/comps/supplementary-resources/utils.js.map +1 -1
- 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.map +1 -1
- package/dist/features/chapters/chapters-list/chapters-list.js +13 -13
- package/dist/features/chapters/chapters-list/chapters-list.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/block-section-styled.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/block-section.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/chapter-block/chapter-block-action.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/chapter-block/chapter-block-header.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/chapter-block/chapter-block-utils.js +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/chapter-block/chapter-block-utils.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/sat-sheet-item-utils.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-item.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/question-overview.js +4 -4
- package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/question-overview.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/sat-sheet-summary-utils.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/sat-sheet-summary.js +15 -15
- package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/sat-sheet-summary.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/summary-module.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/student-actions/student-actions.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/block-section/sheet-item/context-menu-helper/context-menu-helper-styled.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/sheet-item/context-menu-helper/menu-element.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/sheet-item/rewards-n-actions/reward-n-actions-styled.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/sheet-item/rewards-n-actions/reward-n-actions.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/sheet-item/rewards-n-actions/student-actions/student-actions-utils.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/sheet-item/rewards-n-actions/student-actions/student-actions.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/sheet-item/rewards-n-actions/teacher-actions/teacher-actions.js +2 -2
- package/dist/features/chapters/lpar-chapter/block-section/sheet-item/rewards-n-actions/teacher-actions/teacher-actions.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/sheet-item/sheet-item-icon.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/sheet-item/sheet-item-utils.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/sheet-item/sheet-item.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/comps/chapter-progress.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/comps/tab-section.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/constants/index.js +22 -5
- package/dist/features/chapters/lpar-chapter/constants/index.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/constants/puzzle-card.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/lpar-chapter-banner/chapter-banner.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/lpar-chapter-banner/lpar-chapter-banner-styled.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/lpar-chapter-styled.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/lpar-chapter.js +26 -26
- package/dist/features/chapters/lpar-chapter/lpar-chapter.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/puzzle-section/puzzle-card/cue-coins.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/puzzle-section/puzzle-card/puzzle-card-styled.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/puzzle-section/puzzle-card/puzzle-card.js +1 -1
- package/dist/features/chapters/lpar-chapter/puzzle-section/puzzle-card/puzzle-card.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/puzzle-section/puzzle-section-utils.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/puzzle-section/puzzle-section.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/utils/index.js.map +1 -1
- package/dist/features/chapters/lpar-milestone-chapter/block-section/block-section.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/block-section/sheet-item/sheet-item.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 +21 -21
- 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-util.js.map +1 -1
- package/dist/features/chapters/lpar-milestone-chapter/puzzle-section/puzzle-card.js +1 -1
- package/dist/features/chapters/lpar-milestone-chapter/puzzle-section/puzzle-card.js.map +1 -1
- package/dist/features/chapters/lpar-milestone-chapter/puzzle-section/puzzle-section.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/card-container/card-container-styled.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/segmented-game-card/segmented-game-card-styled.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js +10 -10
- package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.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/comps/tables-card/table-mode-star/table-mode-star.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/tables-card/table-segment-star/table-segment-star.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card-styled.js +6 -6
- package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js +4 -4
- package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js.map +1 -1
- package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js.map +1 -1
- package/dist/features/circle-games/game-launcher/game-launcher.js +96 -118
- package/dist/features/circle-games/game-launcher/game-launcher.js.map +1 -1
- package/dist/features/circle-games/game-launcher/hooks/use-game-launcher-journey/use-game-launcher-journey.js +87 -88
- package/dist/features/circle-games/game-launcher/hooks/use-game-launcher-journey/use-game-launcher-journey.js.map +1 -1
- package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/use-table-launcher-journey.js.map +1 -1
- package/dist/features/circle-games/games/tutorial/tutorial.js.map +1 -1
- package/dist/features/circle-games/games/web-view/web-view.js.map +1 -1
- package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js.map +1 -1
- package/dist/features/circle-games/leaderboard/comps/banner/banner-styled.js.map +1 -1
- package/dist/features/circle-games/leaderboard/comps/banner/banner.js.map +1 -1
- package/dist/features/circle-games/leaderboard/comps/info-bar/info-bar.js.map +1 -1
- package/dist/features/circle-games/leaderboard/comps/leaderboard-item/leaderboard-item.js.map +1 -1
- package/dist/features/circle-games/leaderboard/comps/navigation-button/navigation-button.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 +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/streak-reduction-infobar/streak-reduction-infobar.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/dal/use-get-leaderboard-dal/use-get-leaderboard-dal.js.map +1 -1
- package/dist/features/circle-games/leaderboard/hooks/use-intersection-observer/use-intersection-observer.tsx.js.map +1 -1
- package/dist/features/circle-games/leaderboard/hooks/use-timer/use-timer.js.map +1 -1
- package/dist/features/circle-games/leaderboard/leaderboard.js.map +1 -1
- package/dist/features/circle-games/sign-up/comp/circular-steps/circular-steps.js.map +1 -1
- package/dist/features/circle-games/sign-up/comp/grade-input/grade-input-styled.js.map +1 -1
- package/dist/features/circle-games/sign-up/comp/grade-input/grade-input.js.map +1 -1
- package/dist/features/circle-games/sign-up/comp/input-wrapper/input-wrapper.js.map +1 -1
- package/dist/features/circle-games/sign-up/comp/select-user-grade/select-user-grade.js +3 -3
- package/dist/features/circle-games/sign-up/comp/select-user-grade/select-user-grade.js.map +1 -1
- package/dist/features/circle-games/sign-up/comp/select-user-grade/select-user-grade.styled.js.map +1 -1
- package/dist/features/circle-games/sign-up/comp/splash-screen/splash-screen-styled.js +1 -1
- package/dist/features/circle-games/sign-up/comp/splash-screen/splash-screen.js.map +1 -1
- package/dist/features/circle-games/sign-up/comp/username-input/username-input.js.map +1 -1
- package/dist/features/circle-games/sign-up/dal/create-user-dal/create-user-dal.js.map +1 -1
- package/dist/features/circle-games/sign-up/dal/update-user-dal/update-user-dal.js.map +1 -1
- package/dist/features/circle-games/sign-up/dal/validate-username-dal/validate-username-dal.js.map +1 -1
- package/dist/features/circle-games/sign-up/helper.js.map +1 -1
- package/dist/features/circle-games/sign-up/sign-up.js +8 -8
- package/dist/features/circle-games/sign-up/sign-up.js.map +1 -1
- package/dist/features/circle-games/utils/streak-reduction-localstorage-util.js.map +1 -1
- package/dist/features/communication/hooks/use-inclass-message-broker/use-inclass-message-broker.js +18 -18
- package/dist/features/communication/hooks/use-inclass-message-broker/use-inclass-message-broker.js.map +1 -1
- package/dist/features/communication/hooks/use-trial-session-message-broker/use-trial-session-message-broker.js +11 -11
- package/dist/features/communication/hooks/use-trial-session-message-broker/use-trial-session-message-broker.js.map +1 -1
- package/dist/features/communication/pub-sub/core.js.map +1 -1
- package/dist/features/communication/pub-sub/hooks.js +1 -1
- package/dist/features/communication/pub-sub/hooks.js.map +1 -1
- package/dist/features/cue-canvas/cue-canvas-context.js.map +1 -1
- package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
- package/dist/features/cue-canvas/cue-canvas-helpers.js.map +1 -1
- package/dist/features/cue-canvas/cue-canvas-provider.js +8 -8
- package/dist/features/cue-canvas/cue-canvas-provider.js.map +1 -1
- package/dist/features/cue-canvas/cue-canvas.js +28 -28
- package/dist/features/cue-canvas/cue-canvas.js.map +1 -1
- package/dist/features/cue-canvas/cue-cavas-styled.js +29 -29
- package/dist/features/cue-canvas/cue-cavas-styled.js.map +1 -1
- package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +14 -14
- package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
- package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js.map +1 -1
- package/dist/features/cue-canvas/hooks/use-height-extender.js.map +1 -1
- package/dist/features/cue-canvas/toolbar/color-palette.js.map +1 -1
- package/dist/features/cue-canvas/toolbar/color-picker-menu.js.map +1 -1
- package/dist/features/cue-canvas/toolbar/grid-menu.js.map +1 -1
- package/dist/features/cue-canvas/toolbar/icon-map.js +7 -7
- 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/toolbar.js +8 -8
- package/dist/features/cue-canvas/toolbar/toolbar.js.map +1 -1
- package/dist/features/cue-canvas/toolbar/whiteboard-toolbar.js.map +1 -1
- package/dist/features/extra-practice/extra-practice.js +21 -21
- package/dist/features/extra-practice/extra-practice.js.map +1 -1
- package/dist/features/extra-practice/list/list-constants.js.map +1 -1
- package/dist/features/extra-practice/list/list-styled.js.map +1 -1
- package/dist/features/extra-practice/list/list.js.map +1 -1
- package/dist/features/hooks/use-audio-player.js.map +1 -1
- package/dist/features/hooks/use-auto-play-permission/use-auto-play-permission-context-provider.js +3 -3
- package/dist/features/hooks/use-auto-play-permission/use-auto-play-permission-context-provider.js.map +1 -1
- package/dist/features/hooks/use-drag-helper.js.map +1 -1
- package/dist/features/hooks/use-force-reload.js +7 -7
- package/dist/features/hooks/use-force-reload.js.map +1 -1
- package/dist/features/hooks/use-is-unmounted.js.map +1 -1
- package/dist/features/hooks/use-lazy-ref.js.map +1 -1
- package/dist/features/hooks/use-previous.js.map +1 -1
- package/dist/features/hooks/use-zoom-disable.js +3 -3
- package/dist/features/hooks/use-zoom-disable.js.map +1 -1
- package/dist/features/journey/comps/coachmark/coachmark-styled.js.map +1 -1
- package/dist/features/journey/comps/coachmark/coachmark.js +1 -1
- package/dist/features/journey/comps/coachmark/coachmark.js.map +1 -1
- package/dist/features/journey/hooks/use-get-eligible-journeys-via-route.js.map +1 -1
- package/dist/features/journey/use-journey/journey-context-provider.js.map +1 -1
- package/dist/features/journey/user-journey-api/user-journey-api.js +3 -3
- package/dist/features/maintenance/maintenance.js +5 -5
- package/dist/features/maintenance/maintenance.js.map +1 -1
- package/dist/features/milestone/constants.js +15 -11
- package/dist/features/milestone/constants.js.map +1 -1
- package/dist/features/milestone/create/api/goal-submit.js.map +1 -1
- package/dist/features/milestone/create/api/milestone-bulk.js.map +1 -1
- package/dist/features/milestone/create/api/milestone-submit.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/hooks/use-catalog-helpers.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-styled.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-styled.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-category/chapter-category-styled.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/chapters-selection-step/use-chapter-list-update.js.map +1 -1
- package/dist/features/milestone/create/comps/chapters-selection-step/utils.js.map +1 -1
- package/dist/features/milestone/create/comps/class-details-step/class-details-selectors.js.map +1 -1
- package/dist/features/milestone/create/comps/class-details-step/class-details-step.js.map +1 -1
- package/dist/features/milestone/create/comps/class-details-step/class-details-styled.js.map +1 -1
- package/dist/features/milestone/create/comps/class-details-step/class-details-utils.js.map +1 -1
- package/dist/features/milestone/create/comps/confirmation-modals/chapter-clearance-confirmation.js +9 -9
- 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-utils.js.map +1 -1
- package/dist/features/milestone/create/comps/confirmation-modals/goal-creation-confirmation.js +14 -14
- 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-styled.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/info-points/info-points.js.map +1 -1
- package/dist/features/milestone/create/comps/milestone-progress/milestone-progress.js.map +1 -1
- package/dist/features/milestone/create/comps/milestone-progress-v2/milestone-progress-v2.js.map +1 -1
- package/dist/features/milestone/create/comps/milestone-progress-v2/styled.js.map +1 -1
- 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.map +1 -1
- package/dist/features/milestone/create/comps/test-type-step/category-component-styled.js.map +1 -1
- package/dist/features/milestone/create/comps/test-type-step/category-component.js.map +1 -1
- package/dist/features/milestone/create/comps/test-type-step/test-type-step-constants.js.map +1 -1
- package/dist/features/milestone/create/comps/test-type-step/test-type-step.js.map +1 -1
- package/dist/features/milestone/create/comps/test-type-step/test-type-utils.js.map +1 -1
- package/dist/features/milestone/create/milestone-create-constants.js.map +1 -1
- package/dist/features/milestone/create/milestone-create-container.js +25 -25
- package/dist/features/milestone/create/milestone-create-container.js.map +1 -1
- package/dist/features/milestone/create/milestone-create-form-tree.js +2 -2
- package/dist/features/milestone/create/milestone-create-form-tree.js.map +1 -1
- package/dist/features/milestone/create/milestone-create-helpers.js +3 -3
- package/dist/features/milestone/create/milestone-create-helpers.js.map +1 -1
- package/dist/features/milestone/create/milestone-create-hooks.js.map +1 -1
- package/dist/features/milestone/create/milestone-create-styled.js.map +1 -1
- package/dist/features/milestone/create/milestone-create.js +20 -19
- package/dist/features/milestone/create/milestone-create.js.map +1 -1
- package/dist/features/milestone/create/styled-comps/progressive-loader.js +1 -1
- package/dist/features/milestone/create/styled-comps/progressive-loader.js.map +1 -1
- package/dist/features/milestone/create/submit-modal/submit-modal.js +9 -9
- package/dist/features/milestone/create/submit-modal/submit-modal.js.map +1 -1
- package/dist/features/milestone/create/submit-modal/submit-with-plan-modal/submit-with-plan-modal-styled.js.map +1 -1
- package/dist/features/milestone/create/submit-modal/submit-with-plan-modal/submit-with-plan-modal.js.map +1 -1
- package/dist/features/milestone/create/submit-modal/use-submit-milestone.js.map +1 -1
- package/dist/features/milestone/create/utils/index.js.map +1 -1
- package/dist/features/milestone/edit/comps/delete-milestone/confirm-delete.js.map +1 -1
- package/dist/features/milestone/edit/comps/delete-milestone/styled.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 +44 -43
- package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js.map +1 -1
- package/dist/features/milestone/edit/comps/milestone-edit-loader/milestone-edit-loader-styled.js.map +1 -1
- package/dist/features/milestone/edit/comps/milestone-edit-loader/milestone-edit-loader.js.map +1 -1
- package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js +27 -27
- package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +1 -1
- package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-helpers.js.map +1 -1
- package/dist/features/milestone/edit/goal-edit-container.js +21 -21
- package/dist/features/milestone/edit/goal-edit-container.js.map +1 -1
- package/dist/features/milestone/edit/goal-edit-helpers.js +3 -3
- package/dist/features/milestone/edit/goal-edit-helpers.js.map +1 -1
- package/dist/features/milestone/edit/milestone-edit-container.js +23 -23
- package/dist/features/milestone/edit/milestone-edit-container.js.map +1 -1
- package/dist/features/milestone/edit/milestone-edit-helpers.js.map +1 -1
- package/dist/features/milestone/hooks/use-submit-goal-creation.js.map +1 -1
- package/dist/features/milestone/milestone-action-widget/milestone-action-widget-styled.js.map +1 -1
- package/dist/features/milestone/milestone-action-widget/milestone-action-widget.js +15 -15
- package/dist/features/milestone/milestone-action-widget/milestone-action-widget.js.map +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.map +1 -1
- package/dist/features/milestone/milestone-list-container/api/get-tests-list.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/filter-milestones.js.map +1 -1
- 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-loader/milestone-loader.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element.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/goals/goal-action-utils.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/use-goal-draft-publish.js.map +1 -1
- 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.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-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-status.js +2 -2
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-status.js.map +1 -1
- 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.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-info.js.map +1 -1
- 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.map +1 -1
- 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/no-active-milestone/no-active-milestone.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js +21 -21
- package/dist/features/milestone/milestone-list-container/milestone-list-container.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/goal-resource-assign.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/api/lpar-resource-assign.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item-styled.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/no-resource-screen.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-styled.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +39 -39
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/utils.js.map +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.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/api/test-sheet-assign.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-item/chapter-item-styled.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-styled.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 +28 -28
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/utils/index.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-styled.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-list/tests-list.js.map +1 -1
- package/dist/features/milestone/outcome/api/milestone-achievement.js +3 -3
- package/dist/features/milestone/outcome/api/milestone-outcome.js.map +1 -1
- package/dist/features/milestone/outcome/comps/achievement/achievement-constants.js.map +1 -1
- package/dist/features/milestone/outcome/comps/achievement/achievement-container-styled.js.map +1 -1
- package/dist/features/milestone/outcome/comps/achievement/achievement-container.js +3 -3
- package/dist/features/milestone/outcome/comps/achievement/achievement-container.js.map +1 -1
- package/dist/features/milestone/outcome/comps/achievement/reason-submit-modal.js +13 -13
- package/dist/features/milestone/outcome/comps/achievement/reason-submit-modal.js.map +1 -1
- package/dist/features/milestone/outcome/comps/achievement/share-instructions-modal.js +20 -20
- package/dist/features/milestone/outcome/comps/achievement/share-instructions-modal.js.map +1 -1
- package/dist/features/milestone/outcome/comps/outcome-collection/dynamic-input-handler.js.map +1 -1
- package/dist/features/milestone/outcome/comps/outcome-collection/input-descriptor.js.map +1 -1
- package/dist/features/milestone/outcome/comps/outcome-collection/input-handler.js.map +1 -1
- package/dist/features/milestone/outcome/comps/outcome-collection/milestone-outcome-collection-container.js.map +1 -1
- package/dist/features/milestone/outcome/comps/outcome-collection/outcome-collection-helper.js.map +1 -1
- package/dist/features/milestone/outcome/comps/outcome-collection/outcome-form/outcome-form-helpers.js.map +1 -1
- package/dist/features/milestone/outcome/comps/outcome-collection/outcome-form/outcome-form.js.map +1 -1
- package/dist/features/milestone/outcome/comps/outcome-collection/outcome-styled.js.map +1 -1
- package/dist/features/milestone/outcome/comps/outcome-collection/rank-inputs/index.js.map +1 -1
- package/dist/features/milestone/outcome/comps/outcome-collection/score-marks-input/index.js.map +1 -1
- package/dist/features/milestone/outcome/comps/past-milestone/past-milestone-container.js.map +1 -1
- package/dist/features/milestone/outcome/comps/past-milestone/past-milestone-form.js.map +1 -1
- package/dist/features/milestone/outcome/comps/past-milestone/past-milestone-styled.js.map +1 -1
- package/dist/features/milestone/outcome/comps/past-milestone/question.js.map +1 -1
- package/dist/features/milestone/outcome/milestone-outcome-container.js +23 -23
- package/dist/features/milestone/outcome/milestone-outcome-container.js.map +1 -1
- package/dist/features/milestone/outcome/milestone-outcome-styled.js.map +1 -1
- package/dist/features/milestone/outcome/outcome-helpers.js.map +1 -1
- package/dist/features/milestone/start/milestone-start.js +3 -3
- package/dist/features/milestone/start/milestone-start.js.map +1 -1
- package/dist/features/pointer-sync/hooks/use-pointer-sync.js +13 -13
- package/dist/features/pointer-sync/hooks/use-pointer-sync.js.map +1 -1
- package/dist/features/pointer-sync/pointer.js +7 -7
- package/dist/features/pointer-sync/pointer.js.map +1 -1
- package/dist/features/post-game-stats/accuracy/accuracy-styled.js +5 -5
- package/dist/features/post-game-stats/accuracy/accuracy-styled.js.map +1 -1
- package/dist/features/post-game-stats/accuracy/accuracy-utils.js.map +1 -1
- package/dist/features/post-game-stats/accuracy/accuracy.js +3 -3
- package/dist/features/post-game-stats/accuracy/accuracy.js.map +1 -1
- package/dist/features/post-game-stats/clock/clock-styled.js +1 -1
- package/dist/features/post-game-stats/clock/clock-styled.js.map +1 -1
- package/dist/features/post-game-stats/clock/clock.js +3 -3
- package/dist/features/post-game-stats/clock/clock.js.map +1 -1
- package/dist/features/post-game-stats/digital-meter/comp/animated-arc/animated-arc.js +13 -12
- package/dist/features/post-game-stats/digital-meter/comp/animated-arc/animated-arc.js.map +1 -1
- package/dist/features/post-game-stats/digital-meter/digital-meter-styled.js +11 -11
- package/dist/features/post-game-stats/digital-meter/digital-meter-styled.js.map +1 -1
- package/dist/features/post-game-stats/digital-meter/digital-meter.js +7 -7
- package/dist/features/post-game-stats/digital-meter/digital-meter.js.map +1 -1
- package/dist/features/post-game-stats/digital-meter/helper.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/post-game-stats.js.map +1 -1
- package/dist/features/post-game-stats/streak/streak-styled.js +5 -5
- package/dist/features/post-game-stats/streak/streak-styled.js.map +1 -1
- package/dist/features/post-game-stats/streak/streak.js +1 -1
- package/dist/features/post-game-stats/streak/streak.js.map +1 -1
- package/dist/features/sheet-tools/desmos-calculator/desmos-calculator-styled.js.map +1 -1
- package/dist/features/sheet-tools/desmos-calculator/desmos-calculator.js +13 -13
- package/dist/features/sheet-tools/desmos-calculator/desmos-calculator.js.map +1 -1
- package/dist/features/sheet-tools/tool-header/tool-header-styled.js.map +1 -1
- package/dist/features/sheet-tools/tool-header/tool-header.js +14 -14
- package/dist/features/sheet-tools/tool-header/tool-header.js.map +1 -1
- package/dist/features/sheets/comps/sheet-button/index.js.map +1 -1
- package/dist/features/sheets/comps/sheet-button/styled.js.map +1 -1
- package/dist/features/sheets/comps/sheet-button/variant.js.map +1 -1
- package/dist/features/sheets/constants/sheet.js.map +1 -1
- package/dist/features/sheets/lessons-list/lesson-item/context-menu-helper/context-menu-helper-styled.js.map +1 -1
- package/dist/features/sheets/lessons-list/lesson-item/context-menu-helper/menu-element-styled.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-styled.js.map +1 -1
- package/dist/features/sheets/lessons-list/lesson-item/lesson-item-utils.js +3 -4
- package/dist/features/sheets/lessons-list/lesson-item/lesson-item-utils.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 +14 -14
- 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-styled.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 +3 -3
- package/dist/features/sheets/resources-list/resource-item/resource-item.js.map +1 -1
- package/dist/features/sheets/resources-list/resource-item/styled.js.map +1 -1
- package/dist/features/sheets/resources-list/resource-item/utils.js.map +1 -1
- package/dist/features/sheets/resources-list/resources-list.js.map +1 -1
- package/dist/features/sheets/resources-list/styled.js.map +1 -1
- package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/context-menu-helper/menu-element/menu-element.js.map +1 -1
- package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/context-menu-helper/target-element/target-element.js.map +1 -1
- package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/reward-n-actions-styled.js.map +1 -1
- package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/reward-n-actions-utils.js.map +1 -1
- package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/reward-n-actions.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-constant.js +2 -0
- package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions-constant.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/sheet-item/sheet-item-icon.js.map +1 -1
- package/dist/features/sheets/sheets-list/sheet-item/sheet-item-styled.js.map +1 -1
- package/dist/features/sheets/sheets-list/sheet-item/sheet-item-tag.js.map +1 -1
- package/dist/features/sheets/sheets-list/sheet-item/sheet-item-utils.js.map +1 -1
- package/dist/features/sheets/sheets-list/sheet-item/sheet-item.js.map +1 -1
- package/dist/features/sheets/sheets-list/sheets-list.js +15 -15
- package/dist/features/sheets/sheets-list/sheets-list.js.map +1 -1
- package/dist/features/sheets/utils/is-v3-worksheet.js.map +1 -1
- package/dist/features/student-details/class-details/class-details-utils.js.map +1 -1
- package/dist/features/student-details/class-details/class-details.js.map +1 -1
- package/dist/features/student-details/student-details-styled.js.map +1 -1
- package/dist/features/student-details/student-details-utils.js.map +1 -1
- package/dist/features/student-details/student-details.js +17 -17
- package/dist/features/student-details/student-details.js.map +1 -1
- package/dist/features/student-details/wins-preview/wins-preview-styled.js.map +1 -1
- package/dist/features/student-details/wins-preview/wins-preview.js.map +1 -1
- package/dist/features/talk-meter/helper.js.map +1 -1
- package/dist/features/talk-meter/hooks/use-talk-meter.js.map +1 -1
- package/dist/features/talk-meter/ripple/index.js +1 -1
- package/dist/features/talk-meter/ripple/index.js.map +1 -1
- package/dist/features/talk-meter/talk-meter-styled.js +1 -1
- package/dist/features/talk-meter/talk-meter-styled.js.map +1 -1
- package/dist/features/talk-meter/talk-meter-view/talk-meter-view.js +14 -12
- package/dist/features/talk-meter/talk-meter-view/talk-meter-view.js.map +1 -1
- package/dist/features/talk-meter/talk-meter.js +23 -23
- package/dist/features/talk-meter/talk-meter.js.map +1 -1
- package/dist/features/trial-session/api/course-stream.js.map +1 -1
- package/dist/features/trial-session/comps/about-cuemath/about-cuemath-constants.js.map +1 -1
- package/dist/features/trial-session/comps/about-cuemath/index.js.map +1 -1
- package/dist/features/trial-session/comps/additional-info/additional-info.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/background-grid/background-grid-styled.js.map +1 -1
- package/dist/features/trial-session/comps/background-grid/background-grid-utils.js.map +1 -1
- package/dist/features/trial-session/comps/background-grid/background-grid.js.map +1 -1
- package/dist/features/trial-session/comps/class-preference/class-preference.js.map +1 -1
- package/dist/features/trial-session/comps/clock/clock.js.map +1 -1
- package/dist/features/trial-session/comps/communication-slide/index.js.map +1 -1
- package/dist/features/trial-session/comps/countdown-progress-bar/countdown-progress-bar.js.map +1 -1
- package/dist/features/trial-session/comps/cue-tips/cues/cues-styled.js +6 -6
- package/dist/features/trial-session/comps/cue-tips/cues/index.js.map +1 -1
- package/dist/features/trial-session/comps/cue-tips/tips/index.js.map +1 -1
- package/dist/features/trial-session/comps/cue-tips/tips/tips-styled.js.map +1 -1
- package/dist/features/trial-session/comps/learning-plan/index.js.map +1 -1
- package/dist/features/trial-session/comps/learning-plan/learning-plan-styled.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/learning-session/learning-session-constants.js.map +1 -1
- package/dist/features/trial-session/comps/learning-session/learning-session-styled.js.map +1 -1
- package/dist/features/trial-session/comps/learning-session/learning-session.js.map +1 -1
- package/dist/features/trial-session/comps/navigation-bar/index.js.map +1 -1
- package/dist/features/trial-session/comps/navigation-bar/navigation-bar-styled.js.map +1 -1
- package/dist/features/trial-session/comps/offering-information/offering-information-constants.js.map +1 -1
- package/dist/features/trial-session/comps/offering-information/offering-information-styled.js.map +1 -1
- package/dist/features/trial-session/comps/offering-information/offering-information.js.map +1 -1
- package/dist/features/trial-session/comps/pricing/board-comp.js.map +1 -1
- package/dist/features/trial-session/comps/pricing/pricing-styled.js.map +1 -1
- package/dist/features/trial-session/comps/pricing/pricing.js.map +1 -1
- package/dist/features/trial-session/comps/school-goals/school-goals-view.js.map +1 -1
- package/dist/features/trial-session/comps/school-goals/school-goals.js.map +1 -1
- package/dist/features/trial-session/comps/session-insights/session-insights.js.map +1 -1
- package/dist/features/trial-session/comps/session-overview/session-overview-styled.js.map +1 -1
- package/dist/features/trial-session/comps/session-overview/session-overview-utils.js.map +1 -1
- package/dist/features/trial-session/comps/session-overview/session-overview.js.map +1 -1
- package/dist/features/trial-session/comps/session-report/report-card.js.map +1 -1
- package/dist/features/trial-session/comps/session-report/session-report.js +3 -3
- package/dist/features/trial-session/comps/session-report/session-report.js.map +1 -1
- package/dist/features/trial-session/comps/slide-header/index.js.map +1 -1
- package/dist/features/trial-session/comps/solutions/index.js.map +1 -1
- package/dist/features/trial-session/comps/solutions/solutions.styled.js +5 -5
- package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js.map +1 -1
- package/dist/features/trial-session/comps/student-feedback/student-feedback-constants.js.map +1 -1
- package/dist/features/trial-session/comps/student-feedback/student-feedback-styled.js.map +1 -1
- package/dist/features/trial-session/comps/student-feedback/student-feedback.js +3 -3
- package/dist/features/trial-session/comps/student-feedback/student-feedback.js.map +1 -1
- package/dist/features/trial-session/comps/student-info/student-info-styled.js.map +1 -1
- package/dist/features/trial-session/comps/student-info/student-info.js.map +1 -1
- package/dist/features/trial-session/comps/student-personalization/student-personalization.js +7 -7
- package/dist/features/trial-session/comps/student-personalization/student-personalization.js.map +1 -1
- package/dist/features/trial-session/comps/student-profile/student-profile-styled.js.map +1 -1
- package/dist/features/trial-session/comps/student-profile/student-profile-utils.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-intro-constants.js.map +1 -1
- package/dist/features/trial-session/comps/teacher-intro/teacher-intro.js.map +1 -1
- package/dist/features/trial-session/comps/test-prep/test-prep.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/trial-circle-game/trial-circle-game.js.map +1 -1
- package/dist/features/trial-session/comps/worksheet/worksheet.js.map +1 -1
- package/dist/features/trial-session/context/trial-session-context.js.map +1 -1
- package/dist/features/trial-session/helper.js.map +1 -1
- package/dist/features/trial-session/hooks/use-class-time-alerts.js.map +1 -1
- package/dist/features/trial-session/hooks/use-left-panel-button-state.js.map +1 -1
- package/dist/features/trial-session/hooks/use-trial-session-navigation.js.map +1 -1
- package/dist/features/trial-session/left-panel/index.js.map +1 -1
- package/dist/features/trial-session/right-panel/index.js.map +1 -1
- package/dist/features/trial-session/right-panel/right-panel-styled.js.map +1 -1
- package/dist/features/trial-session/trial-session-view.js.map +1 -1
- package/dist/features/trial-session/trial-session.js +6 -6
- package/dist/features/trial-session/trial-session.js.map +1 -1
- package/dist/features/ui/accordion-section/accordion-section.js +13 -13
- package/dist/features/ui/accordion-section/accordion-section.js.map +1 -1
- package/dist/features/ui/arc-button/arc-button.js.map +1 -1
- package/dist/features/ui/arrow-tooltip/arrow-tooltip-styled.js +21 -20
- package/dist/features/ui/arrow-tooltip/arrow-tooltip-styled.js.map +1 -1
- package/dist/features/ui/arrow-tooltip/arrow-tooltip-util.js.map +1 -1
- package/dist/features/ui/arrow-tooltip/arrow-tooltip.js +14 -14
- package/dist/features/ui/arrow-tooltip/arrow-tooltip.js.map +1 -1
- package/dist/features/ui/avatar/avatar-types.js +5 -5
- package/dist/features/ui/avatar/avatar.js +11 -11
- package/dist/features/ui/avatar/avatar.js.map +1 -1
- package/dist/features/ui/avatar/layers/base/variant-1.js.map +1 -1
- package/dist/features/ui/avatar/layers/eyes/variant-1.js.map +1 -1
- package/dist/features/ui/avatar/layers/eyes/variant-10.js.map +1 -1
- package/dist/features/ui/avatar/layers/eyes/variant-11.js.map +1 -1
- package/dist/features/ui/avatar/layers/eyes/variant-12.js.map +1 -1
- package/dist/features/ui/avatar/layers/eyes/variant-13.js.map +1 -1
- package/dist/features/ui/avatar/layers/eyes/variant-14.js.map +1 -1
- package/dist/features/ui/avatar/layers/eyes/variant-15.js.map +1 -1
- package/dist/features/ui/avatar/layers/eyes/variant-16.js.map +1 -1
- package/dist/features/ui/avatar/layers/eyes/variant-17.js.map +1 -1
- package/dist/features/ui/avatar/layers/eyes/variant-18.js.map +1 -1
- package/dist/features/ui/avatar/layers/eyes/variant-2.js.map +1 -1
- package/dist/features/ui/avatar/layers/eyes/variant-3.js.map +1 -1
- package/dist/features/ui/avatar/layers/eyes/variant-4.js.map +1 -1
- package/dist/features/ui/avatar/layers/eyes/variant-5.js.map +1 -1
- package/dist/features/ui/avatar/layers/eyes/variant-6.js.map +1 -1
- package/dist/features/ui/avatar/layers/eyes/variant-7.js.map +1 -1
- package/dist/features/ui/avatar/layers/eyes/variant-8.js.map +1 -1
- package/dist/features/ui/avatar/layers/eyes/variant-9.js.map +1 -1
- package/dist/features/ui/avatar/layers/hair/variant-1.js.map +1 -1
- package/dist/features/ui/avatar/layers/hair/variant-10.js.map +1 -1
- package/dist/features/ui/avatar/layers/hair/variant-2.js.map +1 -1
- package/dist/features/ui/avatar/layers/hair/variant-3.js.map +1 -1
- package/dist/features/ui/avatar/layers/hair/variant-4.js.map +1 -1
- package/dist/features/ui/avatar/layers/hair/variant-5.js.map +1 -1
- package/dist/features/ui/avatar/layers/hair/variant-6.js.map +1 -1
- package/dist/features/ui/avatar/layers/hair/variant-7.js.map +1 -1
- package/dist/features/ui/avatar/layers/hair/variant-8.js.map +1 -1
- package/dist/features/ui/avatar/layers/hair/variant-9.js.map +1 -1
- package/dist/features/ui/avatar/layers/mouth/variant-1.js.map +1 -1
- package/dist/features/ui/avatar/layers/mouth/variant-10.js.map +1 -1
- package/dist/features/ui/avatar/layers/mouth/variant-11.js.map +1 -1
- package/dist/features/ui/avatar/layers/mouth/variant-12.js.map +1 -1
- package/dist/features/ui/avatar/layers/mouth/variant-13.js.map +1 -1
- package/dist/features/ui/avatar/layers/mouth/variant-14.js.map +1 -1
- package/dist/features/ui/avatar/layers/mouth/variant-15.js.map +1 -1
- package/dist/features/ui/avatar/layers/mouth/variant-16.js.map +1 -1
- package/dist/features/ui/avatar/layers/mouth/variant-17.js.map +1 -1
- package/dist/features/ui/avatar/layers/mouth/variant-18.js.map +1 -1
- package/dist/features/ui/avatar/layers/mouth/variant-2.js.map +1 -1
- package/dist/features/ui/avatar/layers/mouth/variant-3.js.map +1 -1
- package/dist/features/ui/avatar/layers/mouth/variant-4.js.map +1 -1
- package/dist/features/ui/avatar/layers/mouth/variant-5.js.map +1 -1
- package/dist/features/ui/avatar/layers/mouth/variant-6.js.map +1 -1
- package/dist/features/ui/avatar/layers/mouth/variant-7.js.map +1 -1
- package/dist/features/ui/avatar/layers/mouth/variant-8.js.map +1 -1
- package/dist/features/ui/avatar/layers/mouth/variant-9.js.map +1 -1
- package/dist/features/ui/buttons/button/button-styled.js.map +1 -1
- package/dist/features/ui/buttons/button/button.js +25 -25
- package/dist/features/ui/buttons/button/button.js.map +1 -1
- package/dist/features/ui/buttons/clickable/clickable.js +9 -9
- package/dist/features/ui/buttons/clickable/clickable.js.map +1 -1
- package/dist/features/ui/buttons/icon-button/icon-button-styled.js.map +1 -1
- package/dist/features/ui/buttons/icon-button/icon-button.js +14 -14
- package/dist/features/ui/buttons/icon-button/icon-button.js.map +1 -1
- package/dist/features/ui/buttons/text-button/text-button-styled.js.map +1 -1
- package/dist/features/ui/buttons/text-button/text-button.js +19 -19
- package/dist/features/ui/buttons/text-button/text-button.js.map +1 -1
- package/dist/features/ui/callout/callout.js +10 -10
- package/dist/features/ui/callout/callout.js.map +1 -1
- package/dist/features/ui/context/context.js.map +1 -1
- package/dist/features/ui/context/use-tracking-context.js +2 -2
- package/dist/features/ui/context/use-tracking-context.js.map +1 -1
- package/dist/features/ui/context-menu/context-menu.js +13 -13
- package/dist/features/ui/context-menu/context-menu.js.map +1 -1
- package/dist/features/ui/error/error.js +11 -11
- package/dist/features/ui/error/error.js.map +1 -1
- package/dist/features/ui/grade-selector/grade-selector-styled.js.map +1 -1
- package/dist/features/ui/grade-selector/grade-selector.js.map +1 -1
- package/dist/features/ui/grade-selector/grade-tab.js.map +1 -1
- package/dist/features/ui/hooks/use-click-handler.js.map +1 -1
- package/dist/features/ui/hooks/use-context-menu-click-handler.js +17 -17
- package/dist/features/ui/hooks/use-context-menu-click-handler.js.map +1 -1
- package/dist/features/ui/hooks/use-response-handler.js.map +1 -1
- package/dist/features/ui/image/image.js.map +1 -1
- package/dist/features/ui/inputs/base-input/base-input-styled.js.map +1 -1
- package/dist/features/ui/inputs/base-input/base-input.js.map +1 -1
- package/dist/features/ui/inputs/base-select-input/base-select-input-styled.js.map +1 -1
- package/dist/features/ui/inputs/base-select-input/base-select-input.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-styled.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/cascading-select-input/cascading-select-input.js +23 -23
- package/dist/features/ui/inputs/cascading-select-input/cascading-select-input.js.map +1 -1
- package/dist/features/ui/inputs/checkbox-input/checkbox-input-styled.js.map +1 -1
- package/dist/features/ui/inputs/checkbox-input/checkbox-input.js +20 -20
- package/dist/features/ui/inputs/checkbox-input/checkbox-input.js.map +1 -1
- package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list.js +16 -16
- package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list.js.map +1 -1
- package/dist/features/ui/inputs/google-places-search-input/google-places-search-input.js +6 -6
- package/dist/features/ui/inputs/google-places-search-input/google-places-search-input.js.map +1 -1
- package/dist/features/ui/inputs/num-range-input/num-range-input.js +4 -4
- package/dist/features/ui/inputs/num-range-input/num-range-input.js.map +1 -1
- package/dist/features/ui/inputs/percentile-input/percentile-input.js +21 -21
- package/dist/features/ui/inputs/percentile-input/percentile-input.js.map +1 -1
- package/dist/features/ui/inputs/percentile-input/percentile-styled.js.map +1 -1
- package/dist/features/ui/inputs/radio-input/radio-input.js +14 -14
- package/dist/features/ui/inputs/radio-input/radio-input.js.map +1 -1
- package/dist/features/ui/inputs/radio-input/radio-option/radio-option-styled.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-input/searchable-input-styled.js.map +1 -1
- package/dist/features/ui/inputs/searchable-input/searchable-input.js +3 -3
- package/dist/features/ui/inputs/searchable-input/searchable-input.js.map +1 -1
- package/dist/features/ui/inputs/searchable-select-input/searchable-select-input.js +17 -17
- package/dist/features/ui/inputs/searchable-select-input/searchable-select-input.js.map +1 -1
- package/dist/features/ui/inputs/searchable-select-input/use-filtered-options.js.map +1 -1
- package/dist/features/ui/inputs/select-input/select-input.js +3 -3
- package/dist/features/ui/inputs/select-input/select-input.js.map +1 -1
- package/dist/features/ui/inputs/text-input/text-input-styled.js.map +1 -1
- package/dist/features/ui/inputs/text-input/text-input.js +33 -33
- package/dist/features/ui/inputs/text-input/text-input.js.map +1 -1
- package/dist/features/ui/layout/flex-view.js +23 -23
- package/dist/features/ui/layout/flex-view.js.map +1 -1
- package/dist/features/ui/loader/app-loader/app-loader.js +3 -3
- package/dist/features/ui/loader/app-loader/app-loader.js.map +1 -1
- package/dist/features/ui/lottie-animation/helper.js.map +1 -1
- package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -1
- package/dist/features/ui/nudge/nudge.js +9 -9
- package/dist/features/ui/nudge/nudge.js.map +1 -1
- package/dist/features/ui/perfect-hits/perfect-hits-helpers.js +1 -1
- package/dist/features/ui/perfect-hits/perfect-hits-helpers.js.map +1 -1
- package/dist/features/ui/perfect-hits/perfect-hits-styled.js +1 -1
- package/dist/features/ui/perfect-hits/perfect-hits.js.map +1 -1
- package/dist/features/ui/radio-cards/radio-card-option/radio-card-option-styled.js.map +1 -1
- package/dist/features/ui/radio-cards/radio-card-option/radio-card-option.js.map +1 -1
- package/dist/features/ui/radio-cards/radio-cards.js +15 -15
- package/dist/features/ui/radio-cards/radio-cards.js.map +1 -1
- package/dist/features/ui/section-list/section-list.js +9 -9
- package/dist/features/ui/section-list/section-list.js.map +1 -1
- package/dist/features/ui/selection-cards/selection-card-option/selection-card-option-styled.js.map +1 -1
- package/dist/features/ui/selection-cards/selection-card-option/selection-card-option.js.map +1 -1
- package/dist/features/ui/selection-cards/selection-cards.js +18 -18
- package/dist/features/ui/selection-cards/selection-cards.js.map +1 -1
- package/dist/features/ui/separator/separator.js +6 -6
- package/dist/features/ui/separator/separator.js.map +1 -1
- package/dist/features/ui/stepper/stepper-styled.js.map +1 -1
- package/dist/features/ui/stepper/stepper.js +7 -7
- package/dist/features/ui/stepper/stepper.js.map +1 -1
- package/dist/features/ui/streak-icon/streak-icon.js +14 -14
- package/dist/features/ui/streak-icon/streak-icon.js.map +1 -1
- package/dist/features/ui/superscript/superscript.js.map +1 -1
- package/dist/features/ui/tab/tab-styled.js.map +1 -1
- package/dist/features/ui/tab/tab.js +17 -17
- package/dist/features/ui/tab/tab.js.map +1 -1
- package/dist/features/ui/tag/tag-styled.js.map +1 -1
- package/dist/features/ui/tag/tag.js +4 -4
- package/dist/features/ui/tag/tag.js.map +1 -1
- package/dist/features/ui/text/text.js +24 -23
- package/dist/features/ui/text/text.js.map +1 -1
- package/dist/features/ui/theme/arrow-tooltip.js.map +1 -1
- package/dist/features/ui/theme/button.js.map +1 -1
- package/dist/features/ui/theme/checkbox.js.map +1 -1
- package/dist/features/ui/theme/get-theme.js.map +1 -1
- package/dist/features/ui/theme/input.js.map +1 -1
- package/dist/features/ui/theme/layout.js.map +1 -1
- package/dist/features/ui/theme/tab.js.map +1 -1
- package/dist/features/ui/theme/text-button.js.map +1 -1
- package/dist/features/ui/theme/text.js.map +1 -1
- package/dist/features/ui/time-left-timeline/time-left-timeline-styled.js.map +1 -1
- package/dist/features/ui/time-left-timeline/time-left-timeline.js +16 -16
- package/dist/features/ui/time-left-timeline/time-left-timeline.js.map +1 -1
- package/dist/features/ui/timers/countdown-timer/countdown-timer.js +15 -15
- package/dist/features/ui/timers/countdown-timer/countdown-timer.js.map +1 -1
- package/dist/features/ui/video/index.js +3 -3
- package/dist/features/ui/video/index.js.map +1 -1
- package/dist/features/ui/video/styled.js.map +1 -1
- package/dist/features/utils/load-script.js +9 -9
- package/dist/features/utils/load-script.js.map +1 -1
- package/dist/features/utils/utils.js.map +1 -1
- package/dist/features/worksheet/learnosity-preloader/learnosity-preloader.js +25 -25
- package/dist/features/worksheet/learnosity-preloader/learnosity-preloader.js.map +1 -1
- package/dist/features/worksheet/learnosity-preloader/use-download-script.js.map +1 -1
- package/dist/features/worksheet/learnosity-preloader/use-is-learnosity-loaded.js +2 -2
- package/dist/features/worksheet/learnosity-preloader/use-is-learnosity-loaded.js.map +1 -1
- package/dist/features/worksheet/user-pointer-pin/hooks/use-user-location.js.map +1 -1
- package/dist/features/worksheet/user-pointer-pin/user-pin.js.map +1 -1
- package/dist/features/worksheet/worksheet/constants.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-get-active-question-id.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/hooks/use-s3-helper.js.map +1 -1
- package/dist/features/worksheet/worksheet/hooks/use-time-on-questions.js.map +1 -1
- package/dist/features/worksheet/worksheet/hooks/use-worksheet-data-helper.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 +17 -17
- package/dist/features/worksheet/worksheet/worksheet-container.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-helpers.js +4 -4
- package/dist/features/worksheet/worksheet/worksheet-helpers.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-styled.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-styled.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 +2 -2
- package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-section-navigation/worksheet-section-navigation.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-permissions/error.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-permissions/sheet-locked.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/header/header-tags.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/header/header.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-styled.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-feedback.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/subjective-review.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/subjective-styled.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/system-intros/advanced-practice-intro.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/system-intros/basic-practice-intro.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/system-intros/exit-ticket-intro.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/system-intros/regular-practice-intro.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question-styled.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/scribble-switch.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-styled.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-sidebar/navigator.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-sidebar/question-guide.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-sidebar/sidebar.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-sidebar/worksheet-sidebar-styled.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-styled.js +4 -4
- package/dist/features/worksheet/worksheet/worksheet-styled.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-summary/worksheet-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 +5 -5
- package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/api/get-preview-worksheet.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js +16 -16
- package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.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 +16 -16
- package/dist/features/worksheet/worksheet-preview/worksheet-preview.js.map +1 -1
- package/dist/helpers/date-time.js.map +1 -1
- package/dist/helpers/get-device-details.js.map +1 -1
- package/dist/helpers/label-text.js.map +1 -1
- package/dist/index.d.ts +14 -1
- package/dist/index.js +481 -481
- package/dist/node_modules/@cuemath/analytics-v2/dist/constants.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/addLeadingZeros.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/defaultOptions.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/format/formatters.js +2 -0
- package/dist/node_modules/date-fns/_lib/format/formatters.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/format/lightFormatters.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/format/longFormatters.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js.map +1 -1
- package/dist/node_modules/date-fns/addDays.js.map +1 -1
- package/dist/node_modules/date-fns/addMonths.js.map +1 -1
- package/dist/node_modules/date-fns/constructNow.js.map +1 -1
- package/dist/node_modules/date-fns/eachMonthOfInterval.js.map +1 -1
- package/dist/node_modules/date-fns/format.js.map +1 -1
- package/dist/node_modules/date-fns/getDefaultOptions.js.map +1 -1
- package/dist/node_modules/date-fns/getISODay.js.map +1 -1
- package/dist/node_modules/date-fns/getISOWeekYear.js.map +1 -1
- package/dist/node_modules/date-fns/getWeekYear.js.map +1 -1
- package/dist/node_modules/date-fns/isAfter.js.map +1 -1
- package/dist/node_modules/date-fns/lastDayOfMonth.js.map +1 -1
- package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +1 -1
- package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +1 -1
- package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +1 -1
- package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +1 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js.map +1 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/Parser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/Setter.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/DateParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/DayParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/EraParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/MonthParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/SecondParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/parsers/YearParser.js.map +1 -1
- package/dist/node_modules/date-fns/parse/_lib/utils.js.map +1 -1
- package/dist/node_modules/date-fns/parse.js.map +1 -1
- package/dist/node_modules/date-fns/setDay.js.map +1 -1
- package/dist/node_modules/date-fns/startOfISOWeek.js.map +1 -1
- package/dist/node_modules/date-fns/startOfWeek.js.map +1 -1
- package/dist/node_modules/date-fns/startOfWeekYear.js.map +1 -1
- package/dist/node_modules/date-fns/transpose.js.map +1 -1
- package/dist/node_modules/fast-equals/dist/esm/index.js +133 -174
- package/dist/node_modules/fast-equals/dist/esm/index.js.map +1 -1
- package/dist/node_modules/filter-obj/index.js.map +1 -1
- package/dist/node_modules/humanize-plus/dist/humanize.js.map +1 -1
- package/dist/node_modules/lodash.debounce/index.js.map +1 -1
- package/dist/node_modules/lodash.isequal/index.js +1 -1
- package/dist/node_modules/lodash.isequal/index.js.map +1 -1
- package/dist/node_modules/lodash.throttle/index.js.map +1 -1
- package/dist/node_modules/query-string/base.js.map +1 -1
- package/dist/node_modules/query-string/node_modules/decode-uri-component/index.js.map +1 -1
- package/dist/node_modules/split-on-first/index.js.map +1 -1
- package/dist/node_modules/ua-parser-js/src/ua-parser.js +3 -3
- package/dist/node_modules/ua-parser-js/src/ua-parser.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
- package/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"worksheet-helpers.js","sources":["../../../../src/features/worksheet/worksheet/worksheet-helpers.ts"],"sourcesContent":["import type { NODE_TYPES } from '../../../types/models/worksheet';\nimport type { TColorNames, TUserTypes } from '../../ui/types';\nimport type { TWorksheetQuestionPaperColor } from './worksheet-question/worksheet-question-types';\n\nimport Bulb2Icon from '../../../assets/line-icons/icons/bulb2';\nimport EditStarIcon from '../../../assets/line-icons/icons/edit-star';\nimport Edit2Icon from '../../../assets/line-icons/icons/edit2';\nimport QuestionLetterIcon from '../../../assets/line-icons/icons/question-letter';\nimport Star2Icon from '../../../assets/line-icons/icons/star2';\nimport EVENTS from '../constants/events';\nimport {\n ACTION_BAR_HEIGHT,\n OPTIONAL_ITEM_TYPES,\n QUESTION_WIDTH,\n SPLIT_QUESTION_WIDTH,\n} from './constants';\nimport {\n QUESTION_TAGS,\n type ILearnosityItem,\n type ILearnosityQuestion,\n type ISheetNudgeBannerInfo,\n type IWorksheetBehavior,\n type IWorksheetProps,\n type IWorksheetQuestion,\n type IWorksheetResponse,\n type TInstructorStimulus,\n type TItemType,\n type TSectionName,\n} from './worksheet-types';\n\ninterface IGetSectionNameFromItemType {\n (itemType?: TItemType): TSectionName | undefined;\n}\n\nconst getSectionNameFromItemType: IGetSectionNameFromItemType = itemType => {\n switch (itemType) {\n case 'overview':\n return 'overview';\n case 'learning-we-do':\n case 'learning-your-turn':\n case 'learning-explore':\n return 'learning';\n case 'practice-basic':\n case 'practice-basic-optional':\n return 'practice-basic';\n case 'practice-regular':\n case 'practice-regular-optional':\n return 'practice-regular';\n case 'exit-ticket':\n return 'exit-ticket';\n case 'advanced-explore':\n case 'advanced-we-do':\n case 'advanced-your-turn':\n case 'advanced-practice':\n return 'advanced';\n default:\n return undefined;\n }\n};\n\nconst isConceptIntroWidget = (instructorStimulus?: TInstructorStimulus) => {\n if (!instructorStimulus) {\n return false;\n }\n\n const lowerCaseInstructorStimulus = instructorStimulus.toLowerCase();\n\n return lowerCaseInstructorStimulus === 'intro' || lowerCaseInstructorStimulus === 'concept-intro';\n};\n\nconst getTagsMap = (tags: string[]): Record<string, string> => {\n return tags.reduce((acc, tag) => {\n const [key, value] = tag.split(':');\n const trimmedKey = key?.trim();\n const trimmedValue = value?.trim();\n\n if (!trimmedKey || !trimmedValue) {\n return acc;\n }\n\n return {\n ...acc,\n [trimmedKey.toLowerCase()]: trimmedValue,\n };\n }, {});\n};\n\ninterface IGetQuestionsFromItems {\n (\n items: ILearnosityItem[],\n options: {\n sectioned?: boolean;\n adaptive?: boolean;\n },\n ): IWorksheetQuestion[];\n}\nconst getQuestionsFromItems: IGetQuestionsFromItems = (\n items,\n { sectioned = false, adaptive = false },\n) => {\n if (sectioned) {\n return items.reduce((acc, item, itemIndex) => {\n let hasIntroWidget = false;\n const { content, questions, itemType } = item;\n const sectionName = getSectionNameFromItemType(itemType);\n const prevItem = acc[acc.length - 1];\n const itemDisplayNumber =\n sectionName === prevItem?.section_name && prevItem?.item_display_number\n ? prevItem.item_display_number + 1\n : 1;\n const orderedQuestionIds = content.match(/question-[^\"]*/g);\n const orderedQuestions = orderedQuestionIds?.map((responseId, widgetIndex) => {\n const question = questions.find(\n ({ response_id: respId }) => respId === responseId.replace('question-', ''),\n );\n\n if (!question) {\n throw new Error(`Question not found for the response id: ${responseId}`);\n }\n\n hasIntroWidget = hasIntroWidget || isConceptIntroWidget(question.instructor_stimulus);\n\n return {\n ...question,\n // Some questions are set to limited number of attempts which can show feedback which is causing the question to be stuck in the errored state\n feedback_attempts: undefined,\n item_reference: item.reference,\n item_number: itemIndex,\n item_display_number: itemDisplayNumber,\n section_name: sectionName,\n item_type: sectioned ? itemType : undefined,\n is_optional: itemType ? OPTIONAL_ITEM_TYPES.includes(itemType) : false,\n item_tags: item.tags ?? [],\n item_tags_map: getTagsMap(item.tags ?? []),\n question_number: widgetIndex - (hasIntroWidget ? 1 : 0),\n total_questions: orderedQuestionIds.length,\n } as IWorksheetQuestion;\n });\n\n hasIntroWidget = false;\n\n if (orderedQuestions?.[0] && itemIndex > 0 && items.length > 0) {\n const prevItemType = items[itemIndex - 1]?.itemType;\n const itemTypeDerived = itemType?.startsWith('advanced-') ? 'advanced' : itemType;\n const prevItemTypeDerived = prevItemType?.startsWith('advanced-')\n ? 'advanced'\n : prevItemType;\n\n if (\n (itemTypeDerived === 'practice-basic' ||\n itemTypeDerived === 'practice-regular' ||\n itemTypeDerived === 'exit-ticket' ||\n itemTypeDerived === 'advanced') &&\n itemTypeDerived !== prevItemTypeDerived\n ) {\n return [\n ...acc,\n {\n ...orderedQuestions[0],\n metadata: {\n ...orderedQuestions[0].metadata,\n teacher_tips: undefined,\n hints: undefined,\n solution: undefined,\n },\n instructor_stimulus: 'SystemIntro',\n response_id: `${itemType}-system-intro`,\n is_optional: itemType?.startsWith('advanced-'),\n },\n ...(orderedQuestions ?? []),\n ];\n }\n }\n\n return [...acc, ...(orderedQuestions ?? [])];\n }, [] as IWorksheetQuestion[]);\n }\n\n const finalQuestions = items.reduce((acc, item, itemIndex) => {\n const { content, questions } = item;\n const orderedQuestionIds = content.match(/question-[^\"]*/g);\n const orderedQuestions = orderedQuestionIds?.map<IWorksheetQuestion>(\n (responseId, widgetIndex) => {\n const question = questions.find(\n ({ response_id: respId }) => respId === responseId.replace('question-', ''),\n );\n\n if (!question) {\n throw new Error(`Question not found for the response id: ${responseId}`);\n }\n\n return {\n ...question,\n feedback_attempts: undefined,\n item_reference: item.reference,\n item_number: itemIndex,\n item_display_number: itemIndex + 1,\n item_tags: item.tags ?? [],\n item_tags_map: getTagsMap(item.tags ?? []),\n question_number: widgetIndex,\n total_questions: orderedQuestionIds.length,\n };\n },\n );\n\n return [...acc, ...(orderedQuestions ?? [])];\n }, [] as IWorksheetQuestion[]);\n\n if (adaptive) {\n const topics: string[] = [];\n const topicsOrder: Record<string, number> = {};\n\n return finalQuestions\n .sort((a, b) => {\n const aTopic = a.item_tags_map[QUESTION_TAGS.TRIAL_TOPIC];\n const bTopic = b.item_tags_map[QUESTION_TAGS.TRIAL_TOPIC];\n\n if (aTopic && topicsOrder[aTopic] === undefined) {\n topicsOrder[aTopic] = topics.length;\n topics.push(aTopic);\n }\n\n if (bTopic && topicsOrder[bTopic] === undefined) {\n topicsOrder[bTopic] = topics.length;\n topics.push(bTopic);\n }\n\n if (!aTopic || !bTopic) {\n return 0;\n }\n\n const aSortKey = `${topicsOrder[aTopic]}-${\n a.item_tags_map[QUESTION_TAGS.QUESTION_CODE]?.length ?? 0\n }`;\n const bSortKey = `${topicsOrder[bTopic]}-${\n b.item_tags_map[QUESTION_TAGS.QUESTION_CODE]?.length ?? 0\n }`;\n\n return aSortKey > bSortKey ? 1 : -1;\n })\n .map(question => {\n const topicOrder =\n topicsOrder[question.item_tags_map[QUESTION_TAGS.TRIAL_TOPIC] ?? ''] ?? 0;\n const questionCode = question.item_tags_map[QUESTION_TAGS.QUESTION_CODE] ?? '';\n\n return {\n ...question,\n item_display_number: topicOrder * 3 + questionCode.length,\n };\n });\n }\n\n return finalQuestions;\n};\n\ninterface IGetInitialQuestionId {\n (params: {\n questions: IWorksheetQuestion[];\n initialQuestion: IWorksheetBehavior['initialQuestion'];\n lastUnlockedQuestionIndex: number;\n initialResponseId?: string;\n initialItemIndex?: number;\n }): string;\n}\n\nconst getInitialQuestionId: IGetInitialQuestionId = ({\n questions,\n initialQuestion,\n initialResponseId,\n initialItemIndex,\n lastUnlockedQuestionIndex,\n}) => {\n const unlockedQuestions = questions.slice(0, lastUnlockedQuestionIndex + 1);\n const lastUnlockedQuestion = questions[lastUnlockedQuestionIndex]!;\n\n if (initialResponseId && unlockedQuestions.find(q => q.response_id === initialResponseId)) {\n return initialResponseId;\n }\n\n if (\n typeof initialItemIndex === 'number' &&\n initialItemIndex <= lastUnlockedQuestion.item_number\n ) {\n const question = questions.find(q => q.item_number === initialItemIndex);\n\n if (question?.response_id) {\n return question.response_id;\n }\n }\n\n if (initialQuestion === 'FIRST' && questions[0]?.response_id) {\n return questions[0].response_id;\n }\n\n if (initialQuestion === 'CURRENT') {\n return lastUnlockedQuestion.response_id;\n }\n\n if (questions[0]?.response_id) {\n return questions[0].response_id;\n }\n\n throw new Error('Initial question not found');\n};\n\ninterface IGetLastUnlockedQuestionIndex {\n (options: {\n questions: IWorksheetQuestion[];\n responses: Record<string, IWorksheetResponse>;\n behavior: IWorksheetBehavior;\n userType: TUserTypes;\n }): number;\n}\n\nconst getLastUnlockedQuestionIndex: IGetLastUnlockedQuestionIndex = ({\n questions,\n responses,\n behavior,\n userType,\n}) => {\n const { maximumAttempts, teacherValidationEnabled, validation, navigationMode } = behavior;\n const questionIndex = [...questions].reverse().findIndex(q => {\n const qResp = responses[q.response_id];\n\n const { attemptsHistory, validatedByTeacher, assignStatus } = qResp ?? {};\n\n if (teacherValidationEnabled) {\n if (validatedByTeacher) {\n return true;\n }\n\n if (assignStatus === 'skipped') {\n return true;\n }\n\n return false;\n }\n\n const lastAttemptScore = attemptsHistory?.slice(-1)[0]?.score;\n\n if (lastAttemptScore) {\n if ((lastAttemptScore.score ?? 0) === lastAttemptScore.max_score) {\n return true;\n }\n\n const maximumAttemptsReached = (attemptsHistory?.length ?? 0) >= maximumAttempts;\n\n return maximumAttemptsReached;\n }\n\n if (!validation && navigationMode === 'LINEAR' && (qResp?.response || qResp?.skipped)) {\n return true;\n }\n\n return false;\n });\n\n if (questionIndex === -1) {\n return 0;\n }\n\n if (questionIndex === 0) {\n if (teacherValidationEnabled) {\n const unskippedQuestionIndex = [...questions].reverse().findIndex(q => {\n return responses[q.response_id]?.assignStatus !== 'skipped';\n });\n\n return questions.length - unskippedQuestionIndex - 1;\n }\n\n return questions.length - 1;\n }\n\n if (teacherValidationEnabled && userType === 'STUDENT') {\n const lastUnlockedQuestionIndex = questions.length - questionIndex;\n const lastUnlockedQuestion = questions[lastUnlockedQuestionIndex]!;\n const { assignStatus } = responses[lastUnlockedQuestion.response_id] ?? {};\n\n if (lastUnlockedQuestion.is_optional && !assignStatus) {\n return lastUnlockedQuestionIndex - 1;\n }\n\n return lastUnlockedQuestionIndex;\n }\n\n return questions.length - questionIndex;\n};\n\ntype TQuestionMetadata = Pick<\n IWorksheetResponse,\n 'widgetReference' | 'itemReference' | 'itemPosition' | 'questionPosition' | 'isOkayTypeQuestion'\n>;\n\nfunction getQuestionMetadata(\n questions: IWorksheetQuestion[],\n questionId: string,\n): TQuestionMetadata;\nfunction getQuestionMetadata(question: IWorksheetQuestion): TQuestionMetadata;\nfunction getQuestionMetadata(\n questions: IWorksheetQuestion | IWorksheetQuestion[],\n questionId?: string,\n) {\n const question = Array.isArray(questions)\n ? questions.find(q => q.response_id === questionId)\n : questions;\n\n if (!question) {\n throw new Error(`Question with id ${questionId} not found`);\n }\n\n return {\n widgetReference: question.metadata.widget_reference,\n itemReference: question.item_reference,\n itemPosition: question.item_number,\n questionPosition: question.question_number,\n isOkayTypeQuestion: isOkayTypeQuestion(question),\n score: {\n max_score:\n question?.validation?.valid_response?.score ?? 0 * question.metadata.valid_response_count,\n },\n tags: {\n ...question.item_tags_map,\n instructor_stimulus: question.instructor_stimulus,\n },\n };\n}\n\ninterface IGetInitialResponses {\n (questions: IWorksheetQuestion[]): Record<string, IWorksheetResponse>;\n}\n\nconst getInitialResponses: IGetInitialResponses = questions => {\n return questions.reduce(\n (acc, question) => ({\n ...acc,\n [question.response_id]: getQuestionMetadata(questions, question.response_id),\n }),\n {},\n );\n};\n\ninterface IGetWorksheetDimensions {\n (\n items: ILearnosityItem[],\n layout: IWorksheetProps['layout'],\n ): {\n questionsContainerWidth: number;\n maxQuestionWidth: number;\n actionbarHeight: number;\n };\n}\n\nconst getWorksheetDimensions: IGetWorksheetDimensions = (items, layout) => {\n const { actionBar } = layout;\n const isSingleColumn = !items.some(item =>\n item.questions.some(question => question.stimulus_review),\n );\n const actionbarHeight = actionBar === 'bottom' ? ACTION_BAR_HEIGHT : 0;\n\n return {\n questionsContainerWidth: isSingleColumn ? QUESTION_WIDTH : SPLIT_QUESTION_WIDTH,\n maxQuestionWidth: QUESTION_WIDTH,\n actionbarHeight,\n };\n};\n\ninterface IGetRenderableQuestions {\n (options: {\n questions: IWorksheetQuestion[];\n lastUnlockedQuestionIndex: number;\n userType: TUserTypes;\n }): IWorksheetQuestion[];\n}\nconst getRenderableQuestions: IGetRenderableQuestions = ({\n questions,\n lastUnlockedQuestionIndex,\n userType,\n}) => {\n if (userType === 'STUDENT') return questions.slice(0, lastUnlockedQuestionIndex + 1);\n\n return questions;\n};\n\ninterface IScrollToQuestion {\n (questionId: string, params?: { animation?: boolean }): void;\n}\n\nconst scrollToQuestion: IScrollToQuestion = (questionId, { animation = false } = {}) => {\n const $questionEl = document.querySelectorAll(`.widget-${questionId}`)[0];\n\n if ($questionEl) {\n $questionEl.scrollIntoView({\n block: 'start',\n behavior: animation ? 'smooth' : 'instant',\n });\n }\n};\n\ninterface IIsOkayTypeQuestion {\n (question: IWorksheetQuestion | ILearnosityQuestion): boolean;\n}\n\nconst isOkayTypeQuestion: IIsOkayTypeQuestion = question => {\n const { type, options, instructor_stimulus } = question;\n const itemType = 'item_type' in question ? question.item_type : undefined;\n\n if (\n itemType === 'overview' ||\n instructor_stimulus === 'Intro' ||\n instructor_stimulus === 'SystemIntro' ||\n instructor_stimulus === 'Concept-Intro'\n ) {\n return true;\n }\n\n return type === 'mcq' && options?.length === 1 ? true : false;\n};\n\nconst setMathJaxConfigInWindow = (\n logger: (eventName: string, data?: Record<string, unknown>) => void,\n) => {\n window.MathJax = {\n options: {\n enableMenu: false,\n ignoreHtmlClass: 'lrn_noMath',\n compileError: function (doc, math, err) {\n logger(EVENTS.MATHJAX_COMPILE_ERROR);\n doc.compileError(math, err);\n },\n typesetError: function (doc, math, err) {\n logger(EVENTS.MATHJAX_TYPESET_ERROR);\n doc.typesetError(math, err);\n // throw new Error('typesetError');\n },\n },\n tex: {\n inlineMath: [\n ['\\\\(', '\\\\)'],\n ['$$', '$$'],\n ],\n displayMath: [['\\\\[', '\\\\]']],\n macros: {\n abs: ['{|#1|}', 1],\n degree: ['°'],\n longdiv: ['{\\\\enclose{longdiv}{#1}}', 1],\n atomic: ['{_{#1}^{#2}}', 2],\n polyatomic: ['{_{#2}{}^{#1}}', 2],\n circledot: ['{\\\\odot}'],\n parallelogram: ['\\\\unicode{x25B1}'],\n ngtr: ['\\\\unicode{x226F}'],\n nless: ['\\\\unicode{x226E}'],\n MathQuillVarField: ['#1', 1],\n overarc: ['{\\\\overparen{#1}}', 1],\n },\n formatError: (jax, err) => {\n logger(EVENTS.MATHJAX_FORMAT_ERROR, {\n id: err.id,\n message: err.message,\n });\n jax.formatError(err);\n },\n },\n chtml: {\n minScale: 1,\n matchFontHeight: false,\n },\n };\n};\n\ninterface IGetPaperColorByQuestion {\n (question: IWorksheetQuestion): TWorksheetQuestionPaperColor;\n}\n\nconst getPaperColorByQuestion: IGetPaperColorByQuestion = question => {\n const { item_type, instructor_stimulus } = question;\n const lowerCaseInstructorStimulus = instructor_stimulus?.toLowerCase();\n\n switch (item_type) {\n case 'overview':\n return 'white';\n case 'learning-we-do':\n case 'learning-your-turn':\n case 'learning-explore':\n if (\n lowerCaseInstructorStimulus === 'instruction' ||\n lowerCaseInstructorStimulus === 'intro' ||\n lowerCaseInstructorStimulus === 'concept-intro'\n ) {\n return 'blue';\n }\n\n if (lowerCaseInstructorStimulus === 'task') {\n return 'green';\n }\n\n return 'yellow';\n case 'practice-basic':\n case 'practice-regular':\n return 'yellow';\n case 'exit-ticket':\n return 'purple';\n case 'advanced-practice':\n return 'orange';\n default:\n if (lowerCaseInstructorStimulus === 'learn') return 'blue';\n\n if (lowerCaseInstructorStimulus === 'try' || lowerCaseInstructorStimulus === 'apply')\n return 'green';\n\n return 'yellow';\n }\n};\n\nconst getQuestionBackgroundImage = (paperColor: TWorksheetQuestionPaperColor) => {\n return `https://cuemath-intel.s3.ap-southeast-1.amazonaws.com/media/math-canvas/paper-${paperColor}.png`;\n};\n\nconst getQuestionBorderColor = (\n paperColor: TWorksheetQuestionPaperColor,\n isActive?: boolean,\n): TColorNames => {\n if (!isActive) {\n return 'GREY_3';\n }\n\n switch (paperColor) {\n case 'orange':\n case 'white':\n return 'ORANGE_2';\n case 'blue':\n return 'BLUE_2';\n case 'green':\n return 'GREEN_2';\n case 'yellow':\n return 'YELLOW_2';\n case 'purple':\n return 'PURPLE_2';\n default:\n return 'GREY_3';\n }\n};\n\nconst getNavigationSectionBackgroundColor = (sectionName?: TSectionName): TColorNames => {\n switch (sectionName) {\n case 'learning':\n return 'BLUE_1';\n case 'practice-basic':\n case 'practice-regular':\n return 'YELLOW_1';\n case 'exit-ticket':\n return 'PURPLE_1';\n case 'advanced':\n return 'ORANGE_1';\n default:\n return 'YELLOW_1';\n }\n};\n\nconst getNavigationSectionName = (sectionName?: TSectionName): string => {\n switch (sectionName) {\n case 'learning':\n return 'Learning';\n case 'practice-basic':\n return 'Basic practice';\n case 'practice-regular':\n return 'Regular practice';\n case 'exit-ticket':\n return 'Mini quiz';\n case 'advanced':\n return 'Advanced work';\n default:\n return '';\n }\n};\n\nconst getNavigationSectionIcon = (sectionName?: TSectionName) => {\n switch (sectionName) {\n case 'learning':\n return Bulb2Icon;\n case 'practice-basic':\n return Edit2Icon;\n case 'practice-regular':\n return EditStarIcon;\n case 'exit-ticket':\n return QuestionLetterIcon;\n case 'advanced':\n return Star2Icon;\n default:\n return Bulb2Icon;\n }\n};\n\nconst isSATAssessmentNode = (nodeType: NODE_TYPES) =>\n nodeType === 'SAT_ENGLISH_ASSESSMENT' || nodeType === 'SAT_MATH_ASSESSMENT';\n\nconst getWorksheetNudgeBannerInfo = (\n userType: TUserTypes,\n markedAsCompleted: boolean,\n): ISheetNudgeBannerInfo => {\n const isTeacher = userType === 'TEACHER';\n\n if (markedAsCompleted) {\n return {\n bannerBackgroundColor: 'GREEN_4',\n label: isTeacher\n ? 'This sheet was marked as completed.'\n : 'Marked as completed by the teacher',\n };\n }\n\n return {\n bannerBackgroundColor: 'ORANGE_2',\n label: 'Complete this with your tutor in class',\n };\n};\n\nexport {\n getInitialQuestionId,\n getInitialResponses,\n getLastUnlockedQuestionIndex,\n getNavigationSectionBackgroundColor,\n getNavigationSectionIcon,\n getNavigationSectionName,\n getPaperColorByQuestion,\n getQuestionBackgroundImage,\n getQuestionBorderColor,\n getQuestionMetadata,\n getQuestionsFromItems,\n getRenderableQuestions,\n getWorksheetDimensions,\n isConceptIntroWidget,\n isSATAssessmentNode,\n isOkayTypeQuestion,\n scrollToQuestion,\n setMathJaxConfigInWindow,\n getWorksheetNudgeBannerInfo,\n};\n"],"names":["getSectionNameFromItemType","itemType","isConceptIntroWidget","instructorStimulus","lowerCaseInstructorStimulus","getTagsMap","tags","acc","tag","key","value","trimmedKey","trimmedValue","getQuestionsFromItems","items","sectioned","adaptive","item","itemIndex","hasIntroWidget","content","questions","sectionName","prevItem","itemDisplayNumber","orderedQuestionIds","orderedQuestions","responseId","widgetIndex","question","respId","OPTIONAL_ITEM_TYPES","prevItemType","_a","itemTypeDerived","prevItemTypeDerived","finalQuestions","topics","topicsOrder","a","b","aTopic","QUESTION_TAGS","bTopic","aSortKey","bSortKey","_b","topicOrder","questionCode","getInitialQuestionId","initialQuestion","initialResponseId","initialItemIndex","lastUnlockedQuestionIndex","unlockedQuestions","lastUnlockedQuestion","q","getLastUnlockedQuestionIndex","responses","behavior","userType","maximumAttempts","teacherValidationEnabled","validation","navigationMode","questionIndex","qResp","attemptsHistory","validatedByTeacher","assignStatus","lastAttemptScore","unskippedQuestionIndex","getQuestionMetadata","questionId","isOkayTypeQuestion","getInitialResponses","getWorksheetDimensions","layout","actionBar","QUESTION_WIDTH","SPLIT_QUESTION_WIDTH","ACTION_BAR_HEIGHT","getRenderableQuestions","scrollToQuestion","animation","$questionEl","type","options","instructor_stimulus","setMathJaxConfigInWindow","logger","doc","math","err","EVENTS","jax","getPaperColorByQuestion","item_type","getQuestionBackgroundImage","paperColor","getQuestionBorderColor","isActive","getNavigationSectionBackgroundColor","getNavigationSectionName","getNavigationSectionIcon","Bulb2Icon","Edit2Icon","EditStarIcon","QuestionLetterIcon","Star2Icon","getWorksheetNudgeBannerInfo","markedAsCompleted","isTeacher"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"worksheet-helpers.js","sources":["../../../../src/features/worksheet/worksheet/worksheet-helpers.ts"],"sourcesContent":["import type { NODE_TYPES } from '../../../types/models/worksheet';\nimport type { TColorNames, TUserTypes } from '../../ui/types';\nimport type { TWorksheetQuestionPaperColor } from './worksheet-question/worksheet-question-types';\n\nimport Bulb2Icon from '../../../assets/line-icons/icons/bulb2';\nimport EditStarIcon from '../../../assets/line-icons/icons/edit-star';\nimport Edit2Icon from '../../../assets/line-icons/icons/edit2';\nimport QuestionLetterIcon from '../../../assets/line-icons/icons/question-letter';\nimport Star2Icon from '../../../assets/line-icons/icons/star2';\nimport EVENTS from '../constants/events';\nimport {\n ACTION_BAR_HEIGHT,\n OPTIONAL_ITEM_TYPES,\n QUESTION_WIDTH,\n SPLIT_QUESTION_WIDTH,\n} from './constants';\nimport {\n QUESTION_TAGS,\n type ILearnosityItem,\n type ILearnosityQuestion,\n type ISheetNudgeBannerInfo,\n type IWorksheetBehavior,\n type IWorksheetProps,\n type IWorksheetQuestion,\n type IWorksheetResponse,\n type TInstructorStimulus,\n type TItemType,\n type TSectionName,\n} from './worksheet-types';\n\ninterface IGetSectionNameFromItemType {\n (itemType?: TItemType): TSectionName | undefined;\n}\n\nconst getSectionNameFromItemType: IGetSectionNameFromItemType = itemType => {\n switch (itemType) {\n case 'overview':\n return 'overview';\n case 'learning-we-do':\n case 'learning-your-turn':\n case 'learning-explore':\n return 'learning';\n case 'practice-basic':\n case 'practice-basic-optional':\n return 'practice-basic';\n case 'practice-regular':\n case 'practice-regular-optional':\n return 'practice-regular';\n case 'exit-ticket':\n return 'exit-ticket';\n case 'advanced-explore':\n case 'advanced-we-do':\n case 'advanced-your-turn':\n case 'advanced-practice':\n return 'advanced';\n default:\n return undefined;\n }\n};\n\nconst isConceptIntroWidget = (instructorStimulus?: TInstructorStimulus) => {\n if (!instructorStimulus) {\n return false;\n }\n\n const lowerCaseInstructorStimulus = instructorStimulus.toLowerCase();\n\n return lowerCaseInstructorStimulus === 'intro' || lowerCaseInstructorStimulus === 'concept-intro';\n};\n\nconst getTagsMap = (tags: string[]): Record<string, string> => {\n return tags.reduce((acc, tag) => {\n const [key, value] = tag.split(':');\n const trimmedKey = key?.trim();\n const trimmedValue = value?.trim();\n\n if (!trimmedKey || !trimmedValue) {\n return acc;\n }\n\n return {\n ...acc,\n [trimmedKey.toLowerCase()]: trimmedValue,\n };\n }, {});\n};\n\ninterface IGetQuestionsFromItems {\n (\n items: ILearnosityItem[],\n options: {\n sectioned?: boolean;\n adaptive?: boolean;\n },\n ): IWorksheetQuestion[];\n}\nconst getQuestionsFromItems: IGetQuestionsFromItems = (\n items,\n { sectioned = false, adaptive = false },\n) => {\n if (sectioned) {\n return items.reduce((acc, item, itemIndex) => {\n let hasIntroWidget = false;\n const { content, questions, itemType } = item;\n const sectionName = getSectionNameFromItemType(itemType);\n const prevItem = acc[acc.length - 1];\n const itemDisplayNumber =\n sectionName === prevItem?.section_name && prevItem?.item_display_number\n ? prevItem.item_display_number + 1\n : 1;\n const orderedQuestionIds = content.match(/question-[^\"]*/g);\n const orderedQuestions = orderedQuestionIds?.map((responseId, widgetIndex) => {\n const question = questions.find(\n ({ response_id: respId }) => respId === responseId.replace('question-', ''),\n );\n\n if (!question) {\n throw new Error(`Question not found for the response id: ${responseId}`);\n }\n\n hasIntroWidget = hasIntroWidget || isConceptIntroWidget(question.instructor_stimulus);\n\n return {\n ...question,\n // Some questions are set to limited number of attempts which can show feedback which is causing the question to be stuck in the errored state\n feedback_attempts: undefined,\n item_reference: item.reference,\n item_number: itemIndex,\n item_display_number: itemDisplayNumber,\n section_name: sectionName,\n item_type: sectioned ? itemType : undefined,\n is_optional: itemType ? OPTIONAL_ITEM_TYPES.includes(itemType) : false,\n item_tags: item.tags ?? [],\n item_tags_map: getTagsMap(item.tags ?? []),\n question_number: widgetIndex - (hasIntroWidget ? 1 : 0),\n total_questions: orderedQuestionIds.length,\n } as IWorksheetQuestion;\n });\n\n hasIntroWidget = false;\n\n if (orderedQuestions?.[0] && itemIndex > 0 && items.length > 0) {\n const prevItemType = items[itemIndex - 1]?.itemType;\n const itemTypeDerived = itemType?.startsWith('advanced-') ? 'advanced' : itemType;\n const prevItemTypeDerived = prevItemType?.startsWith('advanced-')\n ? 'advanced'\n : prevItemType;\n\n if (\n (itemTypeDerived === 'practice-basic' ||\n itemTypeDerived === 'practice-regular' ||\n itemTypeDerived === 'exit-ticket' ||\n itemTypeDerived === 'advanced') &&\n itemTypeDerived !== prevItemTypeDerived\n ) {\n return [\n ...acc,\n {\n ...orderedQuestions[0],\n metadata: {\n ...orderedQuestions[0].metadata,\n teacher_tips: undefined,\n hints: undefined,\n solution: undefined,\n },\n instructor_stimulus: 'SystemIntro',\n response_id: `${itemType}-system-intro`,\n is_optional: itemType?.startsWith('advanced-'),\n },\n ...(orderedQuestions ?? []),\n ];\n }\n }\n\n return [...acc, ...(orderedQuestions ?? [])];\n }, [] as IWorksheetQuestion[]);\n }\n\n const finalQuestions = items.reduce((acc, item, itemIndex) => {\n const { content, questions } = item;\n const orderedQuestionIds = content.match(/question-[^\"]*/g);\n const orderedQuestions = orderedQuestionIds?.map<IWorksheetQuestion>(\n (responseId, widgetIndex) => {\n const question = questions.find(\n ({ response_id: respId }) => respId === responseId.replace('question-', ''),\n );\n\n if (!question) {\n throw new Error(`Question not found for the response id: ${responseId}`);\n }\n\n return {\n ...question,\n feedback_attempts: undefined,\n item_reference: item.reference,\n item_number: itemIndex,\n item_display_number: itemIndex + 1,\n item_tags: item.tags ?? [],\n item_tags_map: getTagsMap(item.tags ?? []),\n question_number: widgetIndex,\n total_questions: orderedQuestionIds.length,\n };\n },\n );\n\n return [...acc, ...(orderedQuestions ?? [])];\n }, [] as IWorksheetQuestion[]);\n\n if (adaptive) {\n const topics: string[] = [];\n const topicsOrder: Record<string, number> = {};\n\n return finalQuestions\n .sort((a, b) => {\n const aTopic = a.item_tags_map[QUESTION_TAGS.TRIAL_TOPIC];\n const bTopic = b.item_tags_map[QUESTION_TAGS.TRIAL_TOPIC];\n\n if (aTopic && topicsOrder[aTopic] === undefined) {\n topicsOrder[aTopic] = topics.length;\n topics.push(aTopic);\n }\n\n if (bTopic && topicsOrder[bTopic] === undefined) {\n topicsOrder[bTopic] = topics.length;\n topics.push(bTopic);\n }\n\n if (!aTopic || !bTopic) {\n return 0;\n }\n\n const aSortKey = `${topicsOrder[aTopic]}-${\n a.item_tags_map[QUESTION_TAGS.QUESTION_CODE]?.length ?? 0\n }`;\n const bSortKey = `${topicsOrder[bTopic]}-${\n b.item_tags_map[QUESTION_TAGS.QUESTION_CODE]?.length ?? 0\n }`;\n\n return aSortKey > bSortKey ? 1 : -1;\n })\n .map(question => {\n const topicOrder =\n topicsOrder[question.item_tags_map[QUESTION_TAGS.TRIAL_TOPIC] ?? ''] ?? 0;\n const questionCode = question.item_tags_map[QUESTION_TAGS.QUESTION_CODE] ?? '';\n\n return {\n ...question,\n item_display_number: topicOrder * 3 + questionCode.length,\n };\n });\n }\n\n return finalQuestions;\n};\n\ninterface IGetInitialQuestionId {\n (params: {\n questions: IWorksheetQuestion[];\n initialQuestion: IWorksheetBehavior['initialQuestion'];\n lastUnlockedQuestionIndex: number;\n initialResponseId?: string;\n initialItemIndex?: number;\n }): string;\n}\n\nconst getInitialQuestionId: IGetInitialQuestionId = ({\n questions,\n initialQuestion,\n initialResponseId,\n initialItemIndex,\n lastUnlockedQuestionIndex,\n}) => {\n const unlockedQuestions = questions.slice(0, lastUnlockedQuestionIndex + 1);\n const lastUnlockedQuestion = questions[lastUnlockedQuestionIndex]!;\n\n if (initialResponseId && unlockedQuestions.find(q => q.response_id === initialResponseId)) {\n return initialResponseId;\n }\n\n if (\n typeof initialItemIndex === 'number' &&\n initialItemIndex <= lastUnlockedQuestion.item_number\n ) {\n const question = questions.find(q => q.item_number === initialItemIndex);\n\n if (question?.response_id) {\n return question.response_id;\n }\n }\n\n if (initialQuestion === 'FIRST' && questions[0]?.response_id) {\n return questions[0].response_id;\n }\n\n if (initialQuestion === 'CURRENT') {\n return lastUnlockedQuestion.response_id;\n }\n\n if (questions[0]?.response_id) {\n return questions[0].response_id;\n }\n\n throw new Error('Initial question not found');\n};\n\ninterface IGetLastUnlockedQuestionIndex {\n (options: {\n questions: IWorksheetQuestion[];\n responses: Record<string, IWorksheetResponse>;\n behavior: IWorksheetBehavior;\n userType: TUserTypes;\n }): number;\n}\n\nconst getLastUnlockedQuestionIndex: IGetLastUnlockedQuestionIndex = ({\n questions,\n responses,\n behavior,\n userType,\n}) => {\n const { maximumAttempts, teacherValidationEnabled, validation, navigationMode } = behavior;\n const questionIndex = [...questions].reverse().findIndex(q => {\n const qResp = responses[q.response_id];\n\n const { attemptsHistory, validatedByTeacher, assignStatus } = qResp ?? {};\n\n if (teacherValidationEnabled) {\n if (validatedByTeacher) {\n return true;\n }\n\n if (assignStatus === 'skipped') {\n return true;\n }\n\n return false;\n }\n\n const lastAttemptScore = attemptsHistory?.slice(-1)[0]?.score;\n\n if (lastAttemptScore) {\n if ((lastAttemptScore.score ?? 0) === lastAttemptScore.max_score) {\n return true;\n }\n\n const maximumAttemptsReached = (attemptsHistory?.length ?? 0) >= maximumAttempts;\n\n return maximumAttemptsReached;\n }\n\n if (!validation && navigationMode === 'LINEAR' && (qResp?.response || qResp?.skipped)) {\n return true;\n }\n\n return false;\n });\n\n if (questionIndex === -1) {\n return 0;\n }\n\n if (questionIndex === 0) {\n if (teacherValidationEnabled) {\n const unskippedQuestionIndex = [...questions].reverse().findIndex(q => {\n return responses[q.response_id]?.assignStatus !== 'skipped';\n });\n\n return questions.length - unskippedQuestionIndex - 1;\n }\n\n return questions.length - 1;\n }\n\n if (teacherValidationEnabled && userType === 'STUDENT') {\n const lastUnlockedQuestionIndex = questions.length - questionIndex;\n const lastUnlockedQuestion = questions[lastUnlockedQuestionIndex]!;\n const { assignStatus } = responses[lastUnlockedQuestion.response_id] ?? {};\n\n if (lastUnlockedQuestion.is_optional && !assignStatus) {\n return lastUnlockedQuestionIndex - 1;\n }\n\n return lastUnlockedQuestionIndex;\n }\n\n return questions.length - questionIndex;\n};\n\ntype TQuestionMetadata = Pick<\n IWorksheetResponse,\n 'widgetReference' | 'itemReference' | 'itemPosition' | 'questionPosition' | 'isOkayTypeQuestion'\n>;\n\nfunction getQuestionMetadata(\n questions: IWorksheetQuestion[],\n questionId: string,\n): TQuestionMetadata;\nfunction getQuestionMetadata(question: IWorksheetQuestion): TQuestionMetadata;\nfunction getQuestionMetadata(\n questions: IWorksheetQuestion | IWorksheetQuestion[],\n questionId?: string,\n) {\n const question = Array.isArray(questions)\n ? questions.find(q => q.response_id === questionId)\n : questions;\n\n if (!question) {\n throw new Error(`Question with id ${questionId} not found`);\n }\n\n return {\n widgetReference: question.metadata.widget_reference,\n itemReference: question.item_reference,\n itemPosition: question.item_number,\n questionPosition: question.question_number,\n isOkayTypeQuestion: isOkayTypeQuestion(question),\n score: {\n max_score:\n question?.validation?.valid_response?.score ?? 0 * question.metadata.valid_response_count,\n },\n tags: {\n ...question.item_tags_map,\n instructor_stimulus: question.instructor_stimulus,\n },\n };\n}\n\ninterface IGetInitialResponses {\n (questions: IWorksheetQuestion[]): Record<string, IWorksheetResponse>;\n}\n\nconst getInitialResponses: IGetInitialResponses = questions => {\n return questions.reduce(\n (acc, question) => ({\n ...acc,\n [question.response_id]: getQuestionMetadata(questions, question.response_id),\n }),\n {},\n );\n};\n\ninterface IGetWorksheetDimensions {\n (\n items: ILearnosityItem[],\n layout: IWorksheetProps['layout'],\n ): {\n questionsContainerWidth: number;\n maxQuestionWidth: number;\n actionbarHeight: number;\n };\n}\n\nconst getWorksheetDimensions: IGetWorksheetDimensions = (items, layout) => {\n const { actionBar } = layout;\n const isSingleColumn = !items.some(item =>\n item.questions.some(question => question.stimulus_review),\n );\n const actionbarHeight = actionBar === 'bottom' ? ACTION_BAR_HEIGHT : 0;\n\n return {\n questionsContainerWidth: isSingleColumn ? QUESTION_WIDTH : SPLIT_QUESTION_WIDTH,\n maxQuestionWidth: QUESTION_WIDTH,\n actionbarHeight,\n };\n};\n\ninterface IGetRenderableQuestions {\n (options: {\n questions: IWorksheetQuestion[];\n lastUnlockedQuestionIndex: number;\n userType: TUserTypes;\n }): IWorksheetQuestion[];\n}\nconst getRenderableQuestions: IGetRenderableQuestions = ({\n questions,\n lastUnlockedQuestionIndex,\n userType,\n}) => {\n if (userType === 'STUDENT') return questions.slice(0, lastUnlockedQuestionIndex + 1);\n\n return questions;\n};\n\ninterface IScrollToQuestion {\n (questionId: string, params?: { animation?: boolean }): void;\n}\n\nconst scrollToQuestion: IScrollToQuestion = (questionId, { animation = false } = {}) => {\n const $questionEl = document.querySelectorAll(`.widget-${questionId}`)[0];\n\n if ($questionEl) {\n $questionEl.scrollIntoView({\n block: 'start',\n behavior: animation ? 'smooth' : 'instant',\n });\n }\n};\n\ninterface IIsOkayTypeQuestion {\n (question: IWorksheetQuestion | ILearnosityQuestion): boolean;\n}\n\nconst isOkayTypeQuestion: IIsOkayTypeQuestion = question => {\n const { type, options, instructor_stimulus } = question;\n const itemType = 'item_type' in question ? question.item_type : undefined;\n\n if (\n itemType === 'overview' ||\n instructor_stimulus === 'Intro' ||\n instructor_stimulus === 'SystemIntro' ||\n instructor_stimulus === 'Concept-Intro'\n ) {\n return true;\n }\n\n return type === 'mcq' && options?.length === 1 ? true : false;\n};\n\nconst setMathJaxConfigInWindow = (\n logger: (eventName: string, data?: Record<string, unknown>) => void,\n) => {\n window.MathJax = {\n options: {\n enableMenu: false,\n ignoreHtmlClass: 'lrn_noMath',\n compileError: function (doc, math, err) {\n logger(EVENTS.MATHJAX_COMPILE_ERROR);\n doc.compileError(math, err);\n },\n typesetError: function (doc, math, err) {\n logger(EVENTS.MATHJAX_TYPESET_ERROR);\n doc.typesetError(math, err);\n // throw new Error('typesetError');\n },\n },\n tex: {\n inlineMath: [\n ['\\\\(', '\\\\)'],\n ['$$', '$$'],\n ],\n displayMath: [['\\\\[', '\\\\]']],\n macros: {\n abs: ['{|#1|}', 1],\n degree: ['°'],\n longdiv: ['{\\\\enclose{longdiv}{#1}}', 1],\n atomic: ['{_{#1}^{#2}}', 2],\n polyatomic: ['{_{#2}{}^{#1}}', 2],\n circledot: ['{\\\\odot}'],\n parallelogram: ['\\\\unicode{x25B1}'],\n ngtr: ['\\\\unicode{x226F}'],\n nless: ['\\\\unicode{x226E}'],\n MathQuillVarField: ['#1', 1],\n overarc: ['{\\\\overparen{#1}}', 1],\n },\n formatError: (jax, err) => {\n logger(EVENTS.MATHJAX_FORMAT_ERROR, {\n id: err.id,\n message: err.message,\n });\n jax.formatError(err);\n },\n },\n chtml: {\n minScale: 1,\n matchFontHeight: false,\n },\n };\n};\n\ninterface IGetPaperColorByQuestion {\n (question: IWorksheetQuestion): TWorksheetQuestionPaperColor;\n}\n\nconst getPaperColorByQuestion: IGetPaperColorByQuestion = question => {\n const { item_type, instructor_stimulus } = question;\n const lowerCaseInstructorStimulus = instructor_stimulus?.toLowerCase();\n\n switch (item_type) {\n case 'overview':\n return 'white';\n case 'learning-we-do':\n case 'learning-your-turn':\n case 'learning-explore':\n if (\n lowerCaseInstructorStimulus === 'instruction' ||\n lowerCaseInstructorStimulus === 'intro' ||\n lowerCaseInstructorStimulus === 'concept-intro'\n ) {\n return 'blue';\n }\n\n if (lowerCaseInstructorStimulus === 'task') {\n return 'green';\n }\n\n return 'yellow';\n case 'practice-basic':\n case 'practice-regular':\n return 'yellow';\n case 'exit-ticket':\n return 'purple';\n case 'advanced-practice':\n return 'orange';\n default:\n if (lowerCaseInstructorStimulus === 'learn') return 'blue';\n\n if (lowerCaseInstructorStimulus === 'try' || lowerCaseInstructorStimulus === 'apply')\n return 'green';\n\n return 'yellow';\n }\n};\n\nconst getQuestionBackgroundImage = (paperColor: TWorksheetQuestionPaperColor) => {\n return `https://cuemath-intel.s3.ap-southeast-1.amazonaws.com/media/math-canvas/paper-${paperColor}.png`;\n};\n\nconst getQuestionBorderColor = (\n paperColor: TWorksheetQuestionPaperColor,\n isActive?: boolean,\n): TColorNames => {\n if (!isActive) {\n return 'GREY_3';\n }\n\n switch (paperColor) {\n case 'orange':\n case 'white':\n return 'ORANGE_2';\n case 'blue':\n return 'BLUE_2';\n case 'green':\n return 'GREEN_2';\n case 'yellow':\n return 'YELLOW_2';\n case 'purple':\n return 'PURPLE_2';\n default:\n return 'GREY_3';\n }\n};\n\nconst getNavigationSectionBackgroundColor = (sectionName?: TSectionName): TColorNames => {\n switch (sectionName) {\n case 'learning':\n return 'BLUE_1';\n case 'practice-basic':\n case 'practice-regular':\n return 'YELLOW_1';\n case 'exit-ticket':\n return 'PURPLE_1';\n case 'advanced':\n return 'ORANGE_1';\n default:\n return 'YELLOW_1';\n }\n};\n\nconst getNavigationSectionName = (sectionName?: TSectionName): string => {\n switch (sectionName) {\n case 'learning':\n return 'Learning';\n case 'practice-basic':\n return 'Basic practice';\n case 'practice-regular':\n return 'Regular practice';\n case 'exit-ticket':\n return 'Mini quiz';\n case 'advanced':\n return 'Advanced work';\n default:\n return '';\n }\n};\n\nconst getNavigationSectionIcon = (sectionName?: TSectionName) => {\n switch (sectionName) {\n case 'learning':\n return Bulb2Icon;\n case 'practice-basic':\n return Edit2Icon;\n case 'practice-regular':\n return EditStarIcon;\n case 'exit-ticket':\n return QuestionLetterIcon;\n case 'advanced':\n return Star2Icon;\n default:\n return Bulb2Icon;\n }\n};\n\nconst isSATAssessmentNode = (nodeType: NODE_TYPES) =>\n nodeType === 'SAT_ENGLISH_ASSESSMENT' || nodeType === 'SAT_MATH_ASSESSMENT';\n\nconst getWorksheetNudgeBannerInfo = (\n userType: TUserTypes,\n markedAsCompleted: boolean,\n): ISheetNudgeBannerInfo => {\n const isTeacher = userType === 'TEACHER';\n\n if (markedAsCompleted) {\n return {\n bannerBackgroundColor: 'GREEN_4',\n label: isTeacher\n ? 'This sheet was marked as completed.'\n : 'Marked as completed by the teacher',\n };\n }\n\n return {\n bannerBackgroundColor: 'ORANGE_2',\n label: 'Complete this with your tutor in class',\n };\n};\n\nexport {\n getInitialQuestionId,\n getInitialResponses,\n getLastUnlockedQuestionIndex,\n getNavigationSectionBackgroundColor,\n getNavigationSectionIcon,\n getNavigationSectionName,\n getPaperColorByQuestion,\n getQuestionBackgroundImage,\n getQuestionBorderColor,\n getQuestionMetadata,\n getQuestionsFromItems,\n getRenderableQuestions,\n getWorksheetDimensions,\n isConceptIntroWidget,\n isSATAssessmentNode,\n isOkayTypeQuestion,\n scrollToQuestion,\n setMathJaxConfigInWindow,\n getWorksheetNudgeBannerInfo,\n};\n"],"names":["getSectionNameFromItemType","itemType","isConceptIntroWidget","instructorStimulus","lowerCaseInstructorStimulus","getTagsMap","tags","acc","tag","key","value","trimmedKey","trimmedValue","getQuestionsFromItems","items","sectioned","adaptive","item","itemIndex","hasIntroWidget","content","questions","sectionName","prevItem","itemDisplayNumber","orderedQuestionIds","orderedQuestions","responseId","widgetIndex","question","respId","OPTIONAL_ITEM_TYPES","prevItemType","_a","itemTypeDerived","prevItemTypeDerived","finalQuestions","topics","topicsOrder","a","b","aTopic","QUESTION_TAGS","bTopic","aSortKey","bSortKey","_b","topicOrder","questionCode","getInitialQuestionId","initialQuestion","initialResponseId","initialItemIndex","lastUnlockedQuestionIndex","unlockedQuestions","lastUnlockedQuestion","q","getLastUnlockedQuestionIndex","responses","behavior","userType","maximumAttempts","teacherValidationEnabled","validation","navigationMode","questionIndex","qResp","attemptsHistory","validatedByTeacher","assignStatus","lastAttemptScore","unskippedQuestionIndex","getQuestionMetadata","questionId","isOkayTypeQuestion","getInitialResponses","getWorksheetDimensions","layout","actionBar","QUESTION_WIDTH","SPLIT_QUESTION_WIDTH","ACTION_BAR_HEIGHT","getRenderableQuestions","scrollToQuestion","animation","$questionEl","type","options","instructor_stimulus","setMathJaxConfigInWindow","logger","doc","math","err","EVENTS","jax","getPaperColorByQuestion","item_type","getQuestionBackgroundImage","paperColor","getQuestionBorderColor","isActive","getNavigationSectionBackgroundColor","getNavigationSectionName","getNavigationSectionIcon","Bulb2Icon","Edit2Icon","EditStarIcon","QuestionLetterIcon","Star2Icon","getWorksheetNudgeBannerInfo","markedAsCompleted","isTeacher"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"worksheet-item-navigation.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-navigation/worksheet-item-navigation/worksheet-item-navigation.tsx"],"sourcesContent":["import type { IWorksheetItemNavigationProps } from '../worksheet-navigation-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';\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 { TOP_NAVIGATION_ARROW_WIDTH } from '../../constants';\nimport WorksheetItemNumber from '../worksheet-item-number/worksheet-item-number';\nimport * as Styled from '../worksheet-navigation-styled';\n\nconst WorksheetItemNavigation: FC<IWorksheetItemNavigationProps> = memo(props => {\n const {\n items,\n responses,\n validation,\n activeItemNumber,\n peerItemNumber,\n onItemNumberClick,\n summaryVisible,\n maximumAttempts,\n } = props;\n const [isOverflowing, setIsOverflowing] = useState(false);\n const [visibleSection, setVisibleSection] = useState<'left' | 'right'>('left');\n const containerRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n\n const toggleVisibleSection = useCallback(() => {\n setVisibleSection(prevVisibleSection => (prevVisibleSection === 'left' ? 'right' : 'left'));\n }, []);\n\n useLayoutEffect(() => {\n const containerEl = containerRef.current;\n const contentEl = contentRef.current;\n\n if (containerEl && contentEl) {\n if (contentEl.clientWidth > containerEl.clientWidth) {\n setIsOverflowing(true);\n }\n }\n }, []);\n\n useEffect(() => {\n const contentEl = contentRef.current;\n\n if (activeItemNumber !== undefined && isOverflowing && contentEl) {\n const itemNumberEl = contentEl.querySelector(`.worksheet-item-number-${activeItemNumber}`);\n\n if (itemNumberEl) {\n setVisibleSection(prevVisibleSection => {\n const { left, right } = itemNumberEl.getBoundingClientRect();\n\n if (\n prevVisibleSection === 'left' &&\n right + TOP_NAVIGATION_ARROW_WIDTH + 16 > contentEl.clientWidth\n ) {\n return 'right';\n }\n\n if (prevVisibleSection === 'right' && left - TOP_NAVIGATION_ARROW_WIDTH - 16 < 0) {\n return 'left';\n }\n\n return prevVisibleSection;\n });\n }\n }\n }, [activeItemNumber, isOverflowing]);\n\n return (\n <Styled.Container\n ref={containerRef}\n $background=\"YELLOW_1\"\n $alignItems={isOverflowing ? `flex-${visibleSection === 'left' ? 'start' : 'end'}` : 'center'}\n >\n <FlexView ref={contentRef} $gutterX={1} $flexGapX={1} $flexDirection=\"row\">\n {items.map(item => {\n const {\n firstQuestion: { response_id, item_number },\n } = item;\n\n return (\n <WorksheetItemNumber\n key={response_id}\n item={item}\n summaryVisible={summaryVisible}\n responses={responses}\n validation={validation}\n placement=\"top\"\n onItemNumberClick={onItemNumberClick}\n canShowUserPin={item_number === peerItemNumber}\n maximumAttempts={maximumAttempts}\n />\n );\n })}\n </FlexView>\n {isOverflowing && visibleSection === 'left' && (\n <Clickable label=\"Worksheet Nav Right Arrow\" onClick={toggleVisibleSection}>\n <Styled.RightArrowWrapper $justifyContent=\"center\">\n <RightIcon width={24} height={24} />\n </Styled.RightArrowWrapper>\n </Clickable>\n )}\n {isOverflowing && visibleSection === 'right' && (\n <Clickable label=\"Worksheet Nav Left Arrow\" onClick={toggleVisibleSection}>\n <Styled.LeftArrowWrapper $justifyContent=\"center\">\n <LeftIcon width={24} height={24} />\n </Styled.LeftArrowWrapper>\n </Clickable>\n )}\n </Styled.Container>\n );\n});\n\nexport default WorksheetItemNavigation;\n"],"names":["WorksheetItemNavigation","memo","props","items","responses","validation","activeItemNumber","peerItemNumber","onItemNumberClick","summaryVisible","maximumAttempts","isOverflowing","setIsOverflowing","useState","visibleSection","setVisibleSection","containerRef","useRef","contentRef","toggleVisibleSection","useCallback","prevVisibleSection","useLayoutEffect","containerEl","contentEl","useEffect","itemNumberEl","left","right","TOP_NAVIGATION_ARROW_WIDTH","jsxs","Styled.Container","jsx","FlexView","item","response_id","item_number","WorksheetItemNumber","Clickable","Styled.RightArrowWrapper","RightIcon","Styled.LeftArrowWrapper","LeftIcon"],"mappings":";;;;;;;;;AAaM,MAAAA,IAA6DC,EAAK,CAASC,MAAA;AACzE,QAAA;AAAA,IACJ,OAAAC;AAAA,IACA,WAAAC;AAAA,IACA,YAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,iBAAAC;AAAA,
|
1
|
+
{"version":3,"file":"worksheet-item-navigation.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-navigation/worksheet-item-navigation/worksheet-item-navigation.tsx"],"sourcesContent":["import type { IWorksheetItemNavigationProps } from '../worksheet-navigation-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';\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 { TOP_NAVIGATION_ARROW_WIDTH } from '../../constants';\nimport WorksheetItemNumber from '../worksheet-item-number/worksheet-item-number';\nimport * as Styled from '../worksheet-navigation-styled';\n\nconst WorksheetItemNavigation: FC<IWorksheetItemNavigationProps> = memo(props => {\n const {\n items,\n responses,\n validation,\n activeItemNumber,\n peerItemNumber,\n onItemNumberClick,\n summaryVisible,\n maximumAttempts,\n } = props;\n const [isOverflowing, setIsOverflowing] = useState(false);\n const [visibleSection, setVisibleSection] = useState<'left' | 'right'>('left');\n const containerRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n\n const toggleVisibleSection = useCallback(() => {\n setVisibleSection(prevVisibleSection => (prevVisibleSection === 'left' ? 'right' : 'left'));\n }, []);\n\n useLayoutEffect(() => {\n const containerEl = containerRef.current;\n const contentEl = contentRef.current;\n\n if (containerEl && contentEl) {\n if (contentEl.clientWidth > containerEl.clientWidth) {\n setIsOverflowing(true);\n }\n }\n }, []);\n\n useEffect(() => {\n const contentEl = contentRef.current;\n\n if (activeItemNumber !== undefined && isOverflowing && contentEl) {\n const itemNumberEl = contentEl.querySelector(`.worksheet-item-number-${activeItemNumber}`);\n\n if (itemNumberEl) {\n setVisibleSection(prevVisibleSection => {\n const { left, right } = itemNumberEl.getBoundingClientRect();\n\n if (\n prevVisibleSection === 'left' &&\n right + TOP_NAVIGATION_ARROW_WIDTH + 16 > contentEl.clientWidth\n ) {\n return 'right';\n }\n\n if (prevVisibleSection === 'right' && left - TOP_NAVIGATION_ARROW_WIDTH - 16 < 0) {\n return 'left';\n }\n\n return prevVisibleSection;\n });\n }\n }\n }, [activeItemNumber, isOverflowing]);\n\n return (\n <Styled.Container\n ref={containerRef}\n $background=\"YELLOW_1\"\n $alignItems={isOverflowing ? `flex-${visibleSection === 'left' ? 'start' : 'end'}` : 'center'}\n >\n <FlexView ref={contentRef} $gutterX={1} $flexGapX={1} $flexDirection=\"row\">\n {items.map(item => {\n const {\n firstQuestion: { response_id, item_number },\n } = item;\n\n return (\n <WorksheetItemNumber\n key={response_id}\n item={item}\n summaryVisible={summaryVisible}\n responses={responses}\n validation={validation}\n placement=\"top\"\n onItemNumberClick={onItemNumberClick}\n canShowUserPin={item_number === peerItemNumber}\n maximumAttempts={maximumAttempts}\n />\n );\n })}\n </FlexView>\n {isOverflowing && visibleSection === 'left' && (\n <Clickable label=\"Worksheet Nav Right Arrow\" onClick={toggleVisibleSection}>\n <Styled.RightArrowWrapper $justifyContent=\"center\">\n <RightIcon width={24} height={24} />\n </Styled.RightArrowWrapper>\n </Clickable>\n )}\n {isOverflowing && visibleSection === 'right' && (\n <Clickable label=\"Worksheet Nav Left Arrow\" onClick={toggleVisibleSection}>\n <Styled.LeftArrowWrapper $justifyContent=\"center\">\n <LeftIcon width={24} height={24} />\n </Styled.LeftArrowWrapper>\n </Clickable>\n )}\n </Styled.Container>\n );\n});\n\nexport default WorksheetItemNavigation;\n"],"names":["WorksheetItemNavigation","memo","props","items","responses","validation","activeItemNumber","peerItemNumber","onItemNumberClick","summaryVisible","maximumAttempts","isOverflowing","setIsOverflowing","useState","visibleSection","setVisibleSection","containerRef","useRef","contentRef","toggleVisibleSection","useCallback","prevVisibleSection","useLayoutEffect","containerEl","contentEl","useEffect","itemNumberEl","left","right","TOP_NAVIGATION_ARROW_WIDTH","jsxs","Styled.Container","jsx","FlexView","item","response_id","item_number","WorksheetItemNumber","Clickable","Styled.RightArrowWrapper","RightIcon","Styled.LeftArrowWrapper","LeftIcon"],"mappings":";;;;;;;;;AAaM,MAAAA,IAA6DC,EAAK,CAASC,MAAA;AACzE,QAAA;AAAA,IACJ,OAAAC;AAAA,IACA,WAAAC;AAAA,IACA,YAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,iBAAAC;AAAA,EACE,IAAAR,GACE,CAACS,GAAeC,CAAgB,IAAIC,EAAS,EAAK,GAClD,CAACC,GAAgBC,CAAiB,IAAIF,EAA2B,MAAM,GACvEG,IAAeC,EAAuB,IAAI,GAC1CC,IAAaD,EAAuB,IAAI,GAExCE,IAAuBC,EAAY,MAAM;AAC7C,IAAAL,EAAkB,CAAuBM,MAAAA,MAAuB,SAAS,UAAU,MAAO;AAAA,EAC5F,GAAG,CAAE,CAAA;AAEL,SAAAC,EAAgB,MAAM;AACpB,UAAMC,IAAcP,EAAa,SAC3BQ,IAAYN,EAAW;AAE7B,IAAIK,KAAeC,KACbA,EAAU,cAAcD,EAAY,eACtCX,EAAiB,EAAI;AAAA,EAG3B,GAAG,CAAE,CAAA,GAELa,EAAU,MAAM;AACd,UAAMD,IAAYN,EAAW;AAEzB,QAAAZ,MAAqB,UAAaK,KAAiBa,GAAW;AAChE,YAAME,IAAeF,EAAU,cAAc,0BAA0BlB,CAAgB,EAAE;AAEzF,MAAIoB,KACFX,EAAkB,CAAsBM,MAAA;AACtC,cAAM,EAAE,MAAAM,GAAM,OAAAC,EAAM,IAAIF,EAAa,sBAAsB;AAE3D,eACEL,MAAuB,UACvBO,IAAQC,IAA6B,KAAKL,EAAU,cAE7C,UAGLH,MAAuB,WAAWM,IAAOE,IAA6B,KAAK,IACtE,SAGFR;AAAA,MAAA,CACR;AAAA,IAEL;AAAA,EAAA,GACC,CAACf,GAAkBK,CAAa,CAAC,GAGlC,gBAAAmB;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,KAAKf;AAAA,MACL,aAAY;AAAA,MACZ,aAAaL,IAAgB,QAAQG,MAAmB,SAAS,UAAU,KAAK,KAAK;AAAA,MAErF,UAAA;AAAA,QAAC,gBAAAkB,EAAAC,GAAA,EAAS,KAAKf,GAAY,UAAU,GAAG,WAAW,GAAG,gBAAe,OAClE,UAAMf,EAAA,IAAI,CAAQ+B,MAAA;AACX,gBAAA;AAAA,YACJ,eAAe,EAAE,aAAAC,GAAa,aAAAC,EAAY;AAAA,UACxC,IAAAF;AAGF,iBAAA,gBAAAF;AAAA,YAACK;AAAA,YAAA;AAAA,cAEC,MAAAH;AAAA,cACA,gBAAAzB;AAAA,cACA,WAAAL;AAAA,cACA,YAAAC;AAAA,cACA,WAAU;AAAA,cACV,mBAAAG;AAAA,cACA,gBAAgB4B,MAAgB7B;AAAA,cAChC,iBAAAG;AAAA,YAAA;AAAA,YARKyB;AAAA,UAAA;AAAA,QAWV,CAAA,GACH;AAAA,QACCxB,KAAiBG,MAAmB,UACnC,gBAAAkB,EAACM,KAAU,OAAM,6BAA4B,SAASnB,GACpD,UAAC,gBAAAa,EAAAO,GAAA,EAAyB,iBAAgB,UACxC,UAAC,gBAAAP,EAAAQ,GAAA,EAAU,OAAO,IAAI,QAAQ,IAAI,EAAA,CACpC,EACF,CAAA;AAAA,QAED7B,KAAiBG,MAAmB,WACnC,gBAAAkB,EAACM,KAAU,OAAM,4BAA2B,SAASnB,GACnD,UAAC,gBAAAa,EAAAS,GAAA,EAAwB,iBAAgB,UACvC,UAAC,gBAAAT,EAAAU,GAAA,EAAS,OAAO,IAAI,QAAQ,IAAI,EAAA,CACnC,EACF,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR,CAAC;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"worksheet-item-number-styled.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-navigation/worksheet-item-number/worksheet-item-number-styled.tsx"],"sourcesContent":["import type { TColorNames } from '../../../../ui/types';\nimport type { TItemState } from './worksheet-item-number-types';\n\nimport styled from 'styled-components';\n\nimport FlexView from '../../../../ui/layout/flex-view';\n\nconst ItemBackgroundColorMap: Record<TItemState, TColorNames> = {\n correct: 'GREEN_2',\n incorrect: 'ORANGE_2',\n answered: 'BLACK',\n unanswered: 'GREY_1',\n disabled: 'GREY_2',\n skipped: 'GREY_1',\n};\n\ninterface IItemNumberWrapperProps {\n $itemState: TItemState;\n $isActive: boolean;\n $placement: 'top' | 'bottom';\n $summaryVisible?: boolean;\n}\n\nconst ItemNumberWrapper = styled(FlexView)<IItemNumberWrapperProps>(\n ({ $itemState, $isActive, $placement, $summaryVisible, theme: { colors } }) => `\n position: relative;\n width: ${$placement === 'top' ? 24 : 40}px;\n height: ${$placement === 'top' ? 24 : 40}px;\n border-radius: ${$placement === 'top' ? '50%' : '0px'};\n background-color: ${\n colors[$isActive && !$summaryVisible ? 'YELLOW_2' : ItemBackgroundColorMap[$itemState]]\n };\n ${\n $itemState === 'unanswered' && $placement === 'bottom'\n ? `\n border: 1px dashed ${colors.GREY_2};\n background-color: ${colors.WHITE};\n `\n : ''\n }\n\n `,\n);\n\nconst BookmarkWrapper = styled.div(\n ({ theme: { colors } }) => `\n position: absolute;\n top: -5px;\n right: -8px;\n color: ${colors.ORANGE_4};\n `,\n);\n\nconst OptionalTag = styled.div(\n ({ theme }) => `\n position: absolute;\n top: -2px;\n right: -1px;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: ${theme.colors.BLACK};\n\n &:after {\n content: '';\n display: block;\n width: 4px;\n height: 4px;\n border-radius: 50%;\n border: 1px solid ${theme.colors.WHITE};\n margin: 2px 0 0 2px;\n }\n`,\n);\n\nconst UserPin = styled.img`\n position: absolute;\n top: -8px;\n right: -8px;\n`;\n\nconst ItemStatus = styled.img`\n position: absolute;\n top: -8px;\n left: -8px;\n`;\n\nexport { ItemNumberWrapper, BookmarkWrapper, UserPin, ItemStatus, OptionalTag };\n"],"names":["ItemBackgroundColorMap","ItemNumberWrapper","styled","FlexView","$itemState","$isActive","$placement","$summaryVisible","colors","BookmarkWrapper","OptionalTag","theme","UserPin","ItemStatus"],"mappings":";;AAOA,MAAMA,IAA0D;AAAA,EAC9D,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,SAAS;AACX,GASMC,IAAoBC,EAAOC,CAAQ;AAAA,EACvC,CAAC,EAAE,YAAAC,GAAY,WAAAC,GAAW,YAAAC,GAAY,iBAAAC,GAAiB,OAAO,EAAE,QAAAC,EAAO,
|
1
|
+
{"version":3,"file":"worksheet-item-number-styled.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-navigation/worksheet-item-number/worksheet-item-number-styled.tsx"],"sourcesContent":["import type { TColorNames } from '../../../../ui/types';\nimport type { TItemState } from './worksheet-item-number-types';\n\nimport styled from 'styled-components';\n\nimport FlexView from '../../../../ui/layout/flex-view';\n\nconst ItemBackgroundColorMap: Record<TItemState, TColorNames> = {\n correct: 'GREEN_2',\n incorrect: 'ORANGE_2',\n answered: 'BLACK',\n unanswered: 'GREY_1',\n disabled: 'GREY_2',\n skipped: 'GREY_1',\n};\n\ninterface IItemNumberWrapperProps {\n $itemState: TItemState;\n $isActive: boolean;\n $placement: 'top' | 'bottom';\n $summaryVisible?: boolean;\n}\n\nconst ItemNumberWrapper = styled(FlexView)<IItemNumberWrapperProps>(\n ({ $itemState, $isActive, $placement, $summaryVisible, theme: { colors } }) => `\n position: relative;\n width: ${$placement === 'top' ? 24 : 40}px;\n height: ${$placement === 'top' ? 24 : 40}px;\n border-radius: ${$placement === 'top' ? '50%' : '0px'};\n background-color: ${\n colors[$isActive && !$summaryVisible ? 'YELLOW_2' : ItemBackgroundColorMap[$itemState]]\n };\n ${\n $itemState === 'unanswered' && $placement === 'bottom'\n ? `\n border: 1px dashed ${colors.GREY_2};\n background-color: ${colors.WHITE};\n `\n : ''\n }\n\n `,\n);\n\nconst BookmarkWrapper = styled.div(\n ({ theme: { colors } }) => `\n position: absolute;\n top: -5px;\n right: -8px;\n color: ${colors.ORANGE_4};\n `,\n);\n\nconst OptionalTag = styled.div(\n ({ theme }) => `\n position: absolute;\n top: -2px;\n right: -1px;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: ${theme.colors.BLACK};\n\n &:after {\n content: '';\n display: block;\n width: 4px;\n height: 4px;\n border-radius: 50%;\n border: 1px solid ${theme.colors.WHITE};\n margin: 2px 0 0 2px;\n }\n`,\n);\n\nconst UserPin = styled.img`\n position: absolute;\n top: -8px;\n right: -8px;\n`;\n\nconst ItemStatus = styled.img`\n position: absolute;\n top: -8px;\n left: -8px;\n`;\n\nexport { ItemNumberWrapper, BookmarkWrapper, UserPin, ItemStatus, OptionalTag };\n"],"names":["ItemBackgroundColorMap","ItemNumberWrapper","styled","FlexView","$itemState","$isActive","$placement","$summaryVisible","colors","BookmarkWrapper","OptionalTag","theme","UserPin","ItemStatus"],"mappings":";;AAOA,MAAMA,IAA0D;AAAA,EAC9D,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,SAAS;AACX,GASMC,IAAoBC,EAAOC,CAAQ;AAAA,EACvC,CAAC,EAAE,YAAAC,GAAY,WAAAC,GAAW,YAAAC,GAAY,iBAAAC,GAAiB,OAAO,EAAE,QAAAC,EAAO,EAAA,MAAQ;AAAA;AAAA,aAEpEF,MAAe,QAAQ,KAAK,EAAE;AAAA,cAC7BA,MAAe,QAAQ,KAAK,EAAE;AAAA,qBACvBA,MAAe,QAAQ,QAAQ,KAAK;AAAA,wBAEnDE,EAAOH,KAAa,CAACE,IAAkB,aAAaP,EAAuBI,CAAU,CAAC,CACxF;AAAA,MAEEA,MAAe,gBAAgBE,MAAe,WAC1C;AAAA,+BACqBE,EAAO,MAAM;AAAA,8BACdA,EAAO,KAAK;AAAA,YAEhC,EACN;AAAA;AAAA;AAGJ,GAEMC,IAAkBP,EAAO;AAAA,EAC7B,CAAC,EAAE,OAAO,EAAE,QAAAM,EAAA,EAAe,MAAA;AAAA;AAAA;AAAA;AAAA,aAIhBA,EAAO,QAAQ;AAAA;AAE5B,GAEME,IAAcR,EAAO;AAAA,EACzB,CAAC,EAAE,OAAAS,EAAA,MAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAOKA,EAAM,OAAO,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAQhBA,EAAM,OAAO,KAAK;AAAA;AAAA;AAAA;AAI1C,GAEMC,IAAUV,EAAO;AAAA;AAAA;AAAA;AAAA,GAMjBW,IAAaX,EAAO;AAAA;AAAA;AAAA;AAAA;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"worksheet-item-number.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-navigation/worksheet-item-number/worksheet-item-number.tsx"],"sourcesContent":["import type { IWorksheetItemNumberProps, TItemState } from './worksheet-item-number-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useMemo } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../../assets/illustrations/illustrations';\nimport BookmarkIcon from '../../../../../assets/line-icons/icons/bookmark';\nimport Clickable from '../../../../ui/buttons/clickable/clickable';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport { TOP_NAVIGATION_HEIGHT } from '../../constants';\nimport * as Styled from './worksheet-item-number-styled';\n\nconst WorksheetItemNumber: FC<IWorksheetItemNumberProps> = memo(\n ({\n placement,\n item,\n isOptional,\n responses,\n validation,\n onItemNumberClick,\n canShowUserPin,\n teacherValidationEnabled,\n summaryVisible,\n maximumAttempts,\n }) => {\n const { firstQuestion, isActive, isUnlocked, questionIds } = item;\n const { item_number, item_display_number } = firstQuestion;\n const { itemState, markedForReview }: { itemState: TItemState; markedForReview: boolean } =\n useMemo(() => {\n const totalQuestion = questionIds.length;\n let state: TItemState = 'unanswered';\n const {\n correctQuestions,\n incorrectQuestions,\n editedQuestions,\n markedForReviewQuestions,\n skippedQuestions,\n } = questionIds.reduce(\n (acc, questionId) => {\n const response = responses[questionId];\n\n if (!response) {\n return acc;\n }\n\n const { responseEdited, score: responseScore, validatedByTeacher } = response;\n const isAttempted =\n responseScore && 'score' in responseScore && 'max_score' in responseScore;\n const isCorrect = responseScore?.score === responseScore?.max_score;\n\n if (validation) {\n if (responseEdited && maximumAttempts !== -1) {\n acc.editedQuestions++;\n } else if (teacherValidationEnabled) {\n if (validatedByTeacher) acc.correctQuestions++;\n else if (isAttempted) {\n acc[isCorrect ? 'correctQuestions' : 'incorrectQuestions']++;\n }\n } else if (isAttempted) {\n acc[isCorrect ? 'correctQuestions' : 'incorrectQuestions']++;\n }\n } else {\n if (responseEdited) {\n acc.editedQuestions++;\n }\n }\n\n if (response.markedForReview) acc.markedForReviewQuestions++;\n\n if (response.skipped) acc.skippedQuestions++;\n\n return acc;\n },\n {\n correctQuestions: 0,\n incorrectQuestions: 0,\n editedQuestions: 0,\n markedForReviewQuestions: 0,\n skippedQuestions: 0,\n },\n );\n\n if (editedQuestions > 0) state = 'answered';\n else if (skippedQuestions > 0) state = 'skipped';\n else if (incorrectQuestions > 0) state = validation ? 'incorrect' : 'answered';\n else if (correctQuestions === totalQuestion) state = validation ? 'correct' : 'answered';\n else if (correctQuestions > 0 && correctQuestions < totalQuestion) state = 'answered';\n\n return {\n itemState: state,\n markedForReview: markedForReviewQuestions > 0,\n };\n }, [maximumAttempts, questionIds, responses, teacherValidationEnabled, validation]);\n\n const handleItemNumberClick = useCallback(() => {\n onItemNumberClick(firstQuestion.response_id);\n }, [firstQuestion.response_id, onItemNumberClick]);\n\n const itemTextColor = useMemo(\n () => ((!isActive || summaryVisible) && itemState === 'answered' ? 'WHITE' : 'BLACK'),\n [isActive, itemState, summaryVisible],\n );\n\n return (\n <Clickable label=\"Item Number\" disabled={!isUnlocked} onClick={handleItemNumberClick}>\n <FlexView $height={TOP_NAVIGATION_HEIGHT} $justifyContent=\"center\">\n <Styled.ItemNumberWrapper\n className={`worksheet-item-number-${item_number}`}\n $itemState={isUnlocked ? itemState : 'disabled'}\n $isActive={isActive}\n $placement={placement}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $summaryVisible={summaryVisible}\n >\n <Text\n $renderAs={placement === 'top' ? 'body3' : 'body1'}\n $color={itemTextColor}\n $opacity={isUnlocked ? 1 : 0.5}\n >\n {item_display_number}\n </Text>\n {markedForReview && (\n <Styled.BookmarkWrapper>\n <BookmarkIcon />\n </Styled.BookmarkWrapper>\n )}\n {canShowUserPin && (\n <Styled.UserPin width={20} height={20} src={ILLUSTRATIONS.USER_PIN} />\n )}\n {itemState === 'correct' && <Styled.ItemStatus src={ILLUSTRATIONS.TICK_GREEN} />}\n {['incorrect', 'skipped'].includes(itemState) && (\n <Styled.ItemStatus src={ILLUSTRATIONS.CAUTION} />\n )}\n {itemState === 'unanswered' && isOptional && <Styled.OptionalTag />}\n </Styled.ItemNumberWrapper>\n </FlexView>\n </Clickable>\n );\n },\n);\n\nexport default WorksheetItemNumber;\n"],"names":["WorksheetItemNumber","memo","placement","item","isOptional","responses","validation","onItemNumberClick","canShowUserPin","teacherValidationEnabled","summaryVisible","maximumAttempts","firstQuestion","isActive","isUnlocked","questionIds","item_number","item_display_number","itemState","markedForReview","useMemo","totalQuestion","state","correctQuestions","incorrectQuestions","editedQuestions","markedForReviewQuestions","skippedQuestions","acc","questionId","response","responseEdited","responseScore","validatedByTeacher","isAttempted","isCorrect","handleItemNumberClick","useCallback","itemTextColor","jsx","Clickable","FlexView","TOP_NAVIGATION_HEIGHT","jsxs","Styled.ItemNumberWrapper","Text","Styled.BookmarkWrapper","BookmarkIcon","Styled.UserPin","ILLUSTRATIONS","Styled.ItemStatus","Styled.OptionalTag"],"mappings":";;;;;;;;;AAaA,MAAMA,KAAqDC;AAAA,EACzD,CAAC;AAAA,IACC,WAAAC;AAAA,IACA,MAAAC;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC;AAAA,IACA,YAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,0BAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,iBAAAC;AAAA,EAAA,MACI;AACJ,UAAM,EAAE,eAAAC,GAAe,UAAAC,GAAU,YAAAC,GAAY,aAAAC,
|
1
|
+
{"version":3,"file":"worksheet-item-number.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-navigation/worksheet-item-number/worksheet-item-number.tsx"],"sourcesContent":["import type { IWorksheetItemNumberProps, TItemState } from './worksheet-item-number-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useMemo } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../../assets/illustrations/illustrations';\nimport BookmarkIcon from '../../../../../assets/line-icons/icons/bookmark';\nimport Clickable from '../../../../ui/buttons/clickable/clickable';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport { TOP_NAVIGATION_HEIGHT } from '../../constants';\nimport * as Styled from './worksheet-item-number-styled';\n\nconst WorksheetItemNumber: FC<IWorksheetItemNumberProps> = memo(\n ({\n placement,\n item,\n isOptional,\n responses,\n validation,\n onItemNumberClick,\n canShowUserPin,\n teacherValidationEnabled,\n summaryVisible,\n maximumAttempts,\n }) => {\n const { firstQuestion, isActive, isUnlocked, questionIds } = item;\n const { item_number, item_display_number } = firstQuestion;\n const { itemState, markedForReview }: { itemState: TItemState; markedForReview: boolean } =\n useMemo(() => {\n const totalQuestion = questionIds.length;\n let state: TItemState = 'unanswered';\n const {\n correctQuestions,\n incorrectQuestions,\n editedQuestions,\n markedForReviewQuestions,\n skippedQuestions,\n } = questionIds.reduce(\n (acc, questionId) => {\n const response = responses[questionId];\n\n if (!response) {\n return acc;\n }\n\n const { responseEdited, score: responseScore, validatedByTeacher } = response;\n const isAttempted =\n responseScore && 'score' in responseScore && 'max_score' in responseScore;\n const isCorrect = responseScore?.score === responseScore?.max_score;\n\n if (validation) {\n if (responseEdited && maximumAttempts !== -1) {\n acc.editedQuestions++;\n } else if (teacherValidationEnabled) {\n if (validatedByTeacher) acc.correctQuestions++;\n else if (isAttempted) {\n acc[isCorrect ? 'correctQuestions' : 'incorrectQuestions']++;\n }\n } else if (isAttempted) {\n acc[isCorrect ? 'correctQuestions' : 'incorrectQuestions']++;\n }\n } else {\n if (responseEdited) {\n acc.editedQuestions++;\n }\n }\n\n if (response.markedForReview) acc.markedForReviewQuestions++;\n\n if (response.skipped) acc.skippedQuestions++;\n\n return acc;\n },\n {\n correctQuestions: 0,\n incorrectQuestions: 0,\n editedQuestions: 0,\n markedForReviewQuestions: 0,\n skippedQuestions: 0,\n },\n );\n\n if (editedQuestions > 0) state = 'answered';\n else if (skippedQuestions > 0) state = 'skipped';\n else if (incorrectQuestions > 0) state = validation ? 'incorrect' : 'answered';\n else if (correctQuestions === totalQuestion) state = validation ? 'correct' : 'answered';\n else if (correctQuestions > 0 && correctQuestions < totalQuestion) state = 'answered';\n\n return {\n itemState: state,\n markedForReview: markedForReviewQuestions > 0,\n };\n }, [maximumAttempts, questionIds, responses, teacherValidationEnabled, validation]);\n\n const handleItemNumberClick = useCallback(() => {\n onItemNumberClick(firstQuestion.response_id);\n }, [firstQuestion.response_id, onItemNumberClick]);\n\n const itemTextColor = useMemo(\n () => ((!isActive || summaryVisible) && itemState === 'answered' ? 'WHITE' : 'BLACK'),\n [isActive, itemState, summaryVisible],\n );\n\n return (\n <Clickable label=\"Item Number\" disabled={!isUnlocked} onClick={handleItemNumberClick}>\n <FlexView $height={TOP_NAVIGATION_HEIGHT} $justifyContent=\"center\">\n <Styled.ItemNumberWrapper\n className={`worksheet-item-number-${item_number}`}\n $itemState={isUnlocked ? itemState : 'disabled'}\n $isActive={isActive}\n $placement={placement}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $summaryVisible={summaryVisible}\n >\n <Text\n $renderAs={placement === 'top' ? 'body3' : 'body1'}\n $color={itemTextColor}\n $opacity={isUnlocked ? 1 : 0.5}\n >\n {item_display_number}\n </Text>\n {markedForReview && (\n <Styled.BookmarkWrapper>\n <BookmarkIcon />\n </Styled.BookmarkWrapper>\n )}\n {canShowUserPin && (\n <Styled.UserPin width={20} height={20} src={ILLUSTRATIONS.USER_PIN} />\n )}\n {itemState === 'correct' && <Styled.ItemStatus src={ILLUSTRATIONS.TICK_GREEN} />}\n {['incorrect', 'skipped'].includes(itemState) && (\n <Styled.ItemStatus src={ILLUSTRATIONS.CAUTION} />\n )}\n {itemState === 'unanswered' && isOptional && <Styled.OptionalTag />}\n </Styled.ItemNumberWrapper>\n </FlexView>\n </Clickable>\n );\n },\n);\n\nexport default WorksheetItemNumber;\n"],"names":["WorksheetItemNumber","memo","placement","item","isOptional","responses","validation","onItemNumberClick","canShowUserPin","teacherValidationEnabled","summaryVisible","maximumAttempts","firstQuestion","isActive","isUnlocked","questionIds","item_number","item_display_number","itemState","markedForReview","useMemo","totalQuestion","state","correctQuestions","incorrectQuestions","editedQuestions","markedForReviewQuestions","skippedQuestions","acc","questionId","response","responseEdited","responseScore","validatedByTeacher","isAttempted","isCorrect","handleItemNumberClick","useCallback","itemTextColor","jsx","Clickable","FlexView","TOP_NAVIGATION_HEIGHT","jsxs","Styled.ItemNumberWrapper","Text","Styled.BookmarkWrapper","BookmarkIcon","Styled.UserPin","ILLUSTRATIONS","Styled.ItemStatus","Styled.OptionalTag"],"mappings":"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"}
|
package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-navigation-styled.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"worksheet-navigation-styled.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-navigation/worksheet-navigation-styled.ts"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../ui/layout/flex-view';\nimport { TOP_NAVIGATION_ARROW_WIDTH } from '../constants';\n\nconst Container = styled(FlexView)`\n position: relative;\n overflow: hidden;\n`;\n\nconst BackgroundLayer = styled(FlexView)`\n position: absolute;\n top: 0;\n width: 50%;\n height: 100%;\n z-index: -1;\n`;\n\nconst LeftContainerBackground = styled(BackgroundLayer)`\n left: 0;\n`;\n\nconst RightContainerBackground = styled(BackgroundLayer)`\n right: 0;\n`;\n\nconst SectionWrapper = styled(FlexView)<{ $hasBorder: boolean }>(\n ({ theme, $hasBorder }) => `\n align-items: center;\n border-left: ${$hasBorder ? `2px solid ${theme.colors.WHITE}` : 'none'};\n`,\n);\n\nconst ArrowWrapper = styled(FlexView)`\n position: absolute;\n top: 0;\n bottom: 0;\n backdrop-filter: blur(20px);\n align-items: center;\n width: ${TOP_NAVIGATION_ARROW_WIDTH}px;\n`;\n\nconst LeftArrowWrapper = styled(ArrowWrapper)`\n left: 0;\n border-right: 2px solid white;\n`;\n\nconst RightArrowWrapper = styled(ArrowWrapper)`\n right: 0;\n border-left: 2px solid white;\n`;\n\nexport {\n Container,\n LeftContainerBackground,\n RightContainerBackground,\n SectionWrapper,\n LeftArrowWrapper,\n RightArrowWrapper,\n};\n"],"names":["Container","styled","FlexView","BackgroundLayer","LeftContainerBackground","RightContainerBackground","SectionWrapper","theme","$hasBorder","ArrowWrapper","TOP_NAVIGATION_ARROW_WIDTH","LeftArrowWrapper","RightArrowWrapper"],"mappings":";;;AAKM,MAAAA,IAAYC,EAAOC,CAAQ;AAAA;AAAA;AAAA,GAK3BC,IAAkBF,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQjCE,IAA0BH,EAAOE,CAAe;AAAA;AAAA,GAIhDE,IAA2BJ,EAAOE,CAAe;AAAA;AAAA,GAIjDG,IAAiBL,EAAOC,CAAQ;AAAA,EACpC,CAAC,EAAE,OAAAK,GAAO,YAAAC,
|
1
|
+
{"version":3,"file":"worksheet-navigation-styled.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-navigation/worksheet-navigation-styled.ts"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../ui/layout/flex-view';\nimport { TOP_NAVIGATION_ARROW_WIDTH } from '../constants';\n\nconst Container = styled(FlexView)`\n position: relative;\n overflow: hidden;\n`;\n\nconst BackgroundLayer = styled(FlexView)`\n position: absolute;\n top: 0;\n width: 50%;\n height: 100%;\n z-index: -1;\n`;\n\nconst LeftContainerBackground = styled(BackgroundLayer)`\n left: 0;\n`;\n\nconst RightContainerBackground = styled(BackgroundLayer)`\n right: 0;\n`;\n\nconst SectionWrapper = styled(FlexView)<{ $hasBorder: boolean }>(\n ({ theme, $hasBorder }) => `\n align-items: center;\n border-left: ${$hasBorder ? `2px solid ${theme.colors.WHITE}` : 'none'};\n`,\n);\n\nconst ArrowWrapper = styled(FlexView)`\n position: absolute;\n top: 0;\n bottom: 0;\n backdrop-filter: blur(20px);\n align-items: center;\n width: ${TOP_NAVIGATION_ARROW_WIDTH}px;\n`;\n\nconst LeftArrowWrapper = styled(ArrowWrapper)`\n left: 0;\n border-right: 2px solid white;\n`;\n\nconst RightArrowWrapper = styled(ArrowWrapper)`\n right: 0;\n border-left: 2px solid white;\n`;\n\nexport {\n Container,\n LeftContainerBackground,\n RightContainerBackground,\n SectionWrapper,\n LeftArrowWrapper,\n RightArrowWrapper,\n};\n"],"names":["Container","styled","FlexView","BackgroundLayer","LeftContainerBackground","RightContainerBackground","SectionWrapper","theme","$hasBorder","ArrowWrapper","TOP_NAVIGATION_ARROW_WIDTH","LeftArrowWrapper","RightArrowWrapper"],"mappings":";;;AAKM,MAAAA,IAAYC,EAAOC,CAAQ;AAAA;AAAA;AAAA,GAK3BC,IAAkBF,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQjCE,IAA0BH,EAAOE,CAAe;AAAA;AAAA,GAIhDE,IAA2BJ,EAAOE,CAAe;AAAA;AAAA,GAIjDG,IAAiBL,EAAOC,CAAQ;AAAA,EACpC,CAAC,EAAE,OAAAK,GAAO,YAAAC,EAAA,MAAiB;AAAA;AAAA,iBAEZA,IAAa,aAAaD,EAAM,OAAO,KAAK,KAAK,MAAM;AAAA;AAExE,GAEME,IAAeR,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAMzBQ,CAA0B;AAAA,GAG/BC,IAAmBV,EAAOQ,CAAY;AAAA;AAAA;AAAA,GAKtCG,IAAoBX,EAAOQ,CAAY;AAAA;AAAA;AAAA;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"worksheet-navigation.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-navigation/worksheet-navigation.tsx"],"sourcesContent":["import type { IWorksheetItemNumberProps } from './worksheet-item-number/worksheet-item-number-types';\nimport type { IWorksheetNavigationProps } from './worksheet-navigation-types';\nimport type { FC } from 'react';\n\nimport { memo, useMemo } from 'react';\n\nimport FlexView from '../../../ui/layout/flex-view';\nimport useRemoteUserLocation from '../../user-pointer-pin/hooks/use-user-location';\nimport WorksheetItemNavigation from './worksheet-item-navigation/worksheet-item-navigation';\nimport WorksheetItemNumber from './worksheet-item-number/worksheet-item-number';\nimport WorksheetSectionNavigation from './worksheet-section-navigation/worksheet-section-navigation';\n\nconst WorksheetNavigation: FC<IWorksheetNavigationProps> = memo(\n ({\n placement,\n questions,\n responses,\n activeQuestionIndex,\n lastUnlockedQuestionIndex,\n behavior,\n onItemNumberClick,\n userType,\n summaryVisible,\n }) => {\n const { validation, teacherValidationEnabled, maximumAttempts } = behavior;\n const activeItemNumber = questions[activeQuestionIndex]?.item_number;\n const { peerItemNumber } = useRemoteUserLocation({\n questions,\n activeQuestionIndex,\n userType,\n });\n\n const items = useMemo(\n () =>\n questions.reduce(\n (acc, question, questionIndex) => {\n const { item_number, response_id } = question;\n const item = acc[item_number];\n const isUnlocked =\n userType === 'TEACHER' ? true : questionIndex <= lastUnlockedQuestionIndex;\n\n if (!item) {\n acc.push({\n firstQuestion: question,\n isActive: questionIndex === activeQuestionIndex,\n isUnlocked,\n questionIds: [response_id],\n });\n } else {\n item.isActive = item.isActive || questionIndex === activeQuestionIndex;\n item.isUnlocked = item.isUnlocked || isUnlocked;\n item.questionIds.push(response_id);\n }\n\n return acc;\n },\n [] as IWorksheetItemNumberProps['item'][],\n ),\n [activeQuestionIndex, lastUnlockedQuestionIndex, questions, userType],\n );\n\n if (placement === 'bottom') {\n return (\n <FlexView $flexGapX={1} $flexDirection=\"row\" $flexWrap>\n {items.map(item => (\n <WorksheetItemNumber\n key={item.firstQuestion.response_id}\n responses={responses}\n validation={validation}\n placement={placement}\n item={item}\n onItemNumberClick={onItemNumberClick}\n summaryVisible={summaryVisible}\n maximumAttempts={maximumAttempts}\n />\n ))}\n </FlexView>\n );\n }\n\n if (teacherValidationEnabled) {\n return (\n <WorksheetSectionNavigation\n userType={userType}\n activeItemNumber={activeItemNumber}\n items={items}\n responses={responses}\n validation={validation}\n peerItemNumber={peerItemNumber}\n onItemNumberClick={onItemNumberClick}\n maximumAttempts={maximumAttempts}\n />\n );\n }\n\n return (\n <WorksheetItemNavigation\n activeItemNumber={activeItemNumber}\n items={items}\n responses={responses}\n validation={validation}\n peerItemNumber={peerItemNumber}\n summaryVisible={summaryVisible}\n onItemNumberClick={onItemNumberClick}\n maximumAttempts={maximumAttempts}\n />\n );\n },\n);\n\nexport default WorksheetNavigation;\n"],"names":["WorksheetNavigation","memo","placement","questions","responses","activeQuestionIndex","lastUnlockedQuestionIndex","behavior","onItemNumberClick","userType","summaryVisible","validation","teacherValidationEnabled","maximumAttempts","activeItemNumber","_a","peerItemNumber","useRemoteUserLocation","items","useMemo","acc","question","questionIndex","item_number","response_id","item","isUnlocked","jsx","FlexView","WorksheetItemNumber","WorksheetSectionNavigation","WorksheetItemNavigation"],"mappings":";;;;;;;AAYA,MAAMA,IAAqDC;AAAA,EACzD,CAAC;AAAA,IACC,WAAAC;AAAA,IACA,WAAAC;AAAA,IACA,WAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,2BAAAC;AAAA,IACA,UAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,MACI;;AACJ,UAAM,EAAE,YAAAC,GAAY,0BAAAC,GAA0B,iBAAAC,
|
1
|
+
{"version":3,"file":"worksheet-navigation.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-navigation/worksheet-navigation.tsx"],"sourcesContent":["import type { IWorksheetItemNumberProps } from './worksheet-item-number/worksheet-item-number-types';\nimport type { IWorksheetNavigationProps } from './worksheet-navigation-types';\nimport type { FC } from 'react';\n\nimport { memo, useMemo } from 'react';\n\nimport FlexView from '../../../ui/layout/flex-view';\nimport useRemoteUserLocation from '../../user-pointer-pin/hooks/use-user-location';\nimport WorksheetItemNavigation from './worksheet-item-navigation/worksheet-item-navigation';\nimport WorksheetItemNumber from './worksheet-item-number/worksheet-item-number';\nimport WorksheetSectionNavigation from './worksheet-section-navigation/worksheet-section-navigation';\n\nconst WorksheetNavigation: FC<IWorksheetNavigationProps> = memo(\n ({\n placement,\n questions,\n responses,\n activeQuestionIndex,\n lastUnlockedQuestionIndex,\n behavior,\n onItemNumberClick,\n userType,\n summaryVisible,\n }) => {\n const { validation, teacherValidationEnabled, maximumAttempts } = behavior;\n const activeItemNumber = questions[activeQuestionIndex]?.item_number;\n const { peerItemNumber } = useRemoteUserLocation({\n questions,\n activeQuestionIndex,\n userType,\n });\n\n const items = useMemo(\n () =>\n questions.reduce(\n (acc, question, questionIndex) => {\n const { item_number, response_id } = question;\n const item = acc[item_number];\n const isUnlocked =\n userType === 'TEACHER' ? true : questionIndex <= lastUnlockedQuestionIndex;\n\n if (!item) {\n acc.push({\n firstQuestion: question,\n isActive: questionIndex === activeQuestionIndex,\n isUnlocked,\n questionIds: [response_id],\n });\n } else {\n item.isActive = item.isActive || questionIndex === activeQuestionIndex;\n item.isUnlocked = item.isUnlocked || isUnlocked;\n item.questionIds.push(response_id);\n }\n\n return acc;\n },\n [] as IWorksheetItemNumberProps['item'][],\n ),\n [activeQuestionIndex, lastUnlockedQuestionIndex, questions, userType],\n );\n\n if (placement === 'bottom') {\n return (\n <FlexView $flexGapX={1} $flexDirection=\"row\" $flexWrap>\n {items.map(item => (\n <WorksheetItemNumber\n key={item.firstQuestion.response_id}\n responses={responses}\n validation={validation}\n placement={placement}\n item={item}\n onItemNumberClick={onItemNumberClick}\n summaryVisible={summaryVisible}\n maximumAttempts={maximumAttempts}\n />\n ))}\n </FlexView>\n );\n }\n\n if (teacherValidationEnabled) {\n return (\n <WorksheetSectionNavigation\n userType={userType}\n activeItemNumber={activeItemNumber}\n items={items}\n responses={responses}\n validation={validation}\n peerItemNumber={peerItemNumber}\n onItemNumberClick={onItemNumberClick}\n maximumAttempts={maximumAttempts}\n />\n );\n }\n\n return (\n <WorksheetItemNavigation\n activeItemNumber={activeItemNumber}\n items={items}\n responses={responses}\n validation={validation}\n peerItemNumber={peerItemNumber}\n summaryVisible={summaryVisible}\n onItemNumberClick={onItemNumberClick}\n maximumAttempts={maximumAttempts}\n />\n );\n },\n);\n\nexport default WorksheetNavigation;\n"],"names":["WorksheetNavigation","memo","placement","questions","responses","activeQuestionIndex","lastUnlockedQuestionIndex","behavior","onItemNumberClick","userType","summaryVisible","validation","teacherValidationEnabled","maximumAttempts","activeItemNumber","_a","peerItemNumber","useRemoteUserLocation","items","useMemo","acc","question","questionIndex","item_number","response_id","item","isUnlocked","jsx","FlexView","WorksheetItemNumber","WorksheetSectionNavigation","WorksheetItemNavigation"],"mappings":";;;;;;;AAYA,MAAMA,IAAqDC;AAAA,EACzD,CAAC;AAAA,IACC,WAAAC;AAAA,IACA,WAAAC;AAAA,IACA,WAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,2BAAAC;AAAA,IACA,UAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,MACI;;AACJ,UAAM,EAAE,YAAAC,GAAY,0BAAAC,GAA0B,iBAAAC,EAAA,IAAoBN,GAC5DO,KAAmBC,IAAAZ,EAAUE,CAAmB,MAA7B,gBAAAU,EAAgC,aACnD,EAAE,gBAAAC,EAAe,IAAIC,EAAsB;AAAA,MAC/C,WAAAd;AAAA,MACA,qBAAAE;AAAA,MACA,UAAAI;AAAA,IAAA,CACD,GAEKS,IAAQC;AAAA,MACZ,MACEhB,EAAU;AAAA,QACR,CAACiB,GAAKC,GAAUC,MAAkB;AAC1B,gBAAA,EAAE,aAAAC,GAAa,aAAAC,EAAgB,IAAAH,GAC/BI,IAAOL,EAAIG,CAAW,GACtBG,IACJjB,MAAa,YAAY,KAAOa,KAAiBhB;AAEnD,iBAAKmB,KAQEA,EAAA,WAAWA,EAAK,YAAYH,MAAkBjB,GAC9CoB,EAAA,aAAaA,EAAK,cAAcC,GAChCD,EAAA,YAAY,KAAKD,CAAW,KATjCJ,EAAI,KAAK;AAAA,YACP,eAAeC;AAAA,YACf,UAAUC,MAAkBjB;AAAA,YAC5B,YAAAqB;AAAA,YACA,aAAa,CAACF,CAAW;AAAA,UAAA,CAC1B,GAOIJ;AAAA,QACT;AAAA,QACA,CAAC;AAAA,MACH;AAAA,MACF,CAACf,GAAqBC,GAA2BH,GAAWM,CAAQ;AAAA,IAAA;AAGtE,WAAIP,MAAc,WAEd,gBAAAyB,EAACC,GAAS,EAAA,WAAW,GAAG,gBAAe,OAAM,WAAS,IACnD,UAAMV,EAAA,IAAI,CACTO,MAAA,gBAAAE;AAAA,MAACE;AAAA,MAAA;AAAA,QAEC,WAAAzB;AAAA,QACA,YAAAO;AAAA,QACA,WAAAT;AAAA,QACA,MAAAuB;AAAA,QACA,mBAAAjB;AAAA,QACA,gBAAAE;AAAA,QACA,iBAAAG;AAAA,MAAA;AAAA,MAPKY,EAAK,cAAc;AAAA,IAS3B,CAAA,EACH,CAAA,IAIAb,IAEA,gBAAAe;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,UAAArB;AAAA,QACA,kBAAAK;AAAA,QACA,OAAAI;AAAA,QACA,WAAAd;AAAA,QACA,YAAAO;AAAA,QACA,gBAAAK;AAAA,QACA,mBAAAR;AAAA,QACA,iBAAAK;AAAA,MAAA;AAAA,IAAA,IAMJ,gBAAAc;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,kBAAAjB;AAAA,QACA,OAAAI;AAAA,QACA,WAAAd;AAAA,QACA,YAAAO;AAAA,QACA,gBAAAK;AAAA,QACA,gBAAAN;AAAA,QACA,mBAAAF;AAAA,QACA,iBAAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;"}
|
@@ -6,7 +6,7 @@ import J from "../../../../ui/arrow-tooltip/arrow-tooltip.js";
|
|
6
6
|
import y from "../../../../ui/buttons/clickable/clickable.js";
|
7
7
|
import K from "../../../../ui/layout/flex-view.js";
|
8
8
|
import { TOP_NAVIGATION_ARROW_WIDTH as O } from "../../constants.js";
|
9
|
-
import { getNavigationSectionBackgroundColor as S,
|
9
|
+
import { getNavigationSectionBackgroundColor as S, getNavigationSectionIcon as Y, getNavigationSectionName as Z } from "../../worksheet-helpers.js";
|
10
10
|
import tt from "../worksheet-item-number/worksheet-item-number.js";
|
11
11
|
import { Container as et, LeftContainerBackground as it, RightContainerBackground as nt, SectionWrapper as ot, RightArrowWrapper as rt, LeftArrowWrapper as st } from "../worksheet-navigation-styled.js";
|
12
12
|
const wt = X((B) => {
|
@@ -73,7 +73,7 @@ const wt = X((B) => {
|
|
73
73
|
),
|
74
74
|
/* @__PURE__ */ i(K, { ref: g, $flexDirection: "row", children: c.map(({ sectionName: t, items: e }, o) => {
|
75
75
|
var u, f;
|
76
|
-
const r =
|
76
|
+
const r = Y(t), a = Z(t), n = (u = e[0]) == null ? void 0 : u.firstQuestion;
|
77
77
|
return (n == null ? void 0 : n.is_optional) && ((f = s[n.response_id]) == null ? void 0 : f.assignStatus) === "skipped" ? null : /* @__PURE__ */ E(
|
78
78
|
ot,
|
79
79
|
{
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"worksheet-section-navigation.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-navigation/worksheet-section-navigation/worksheet-section-navigation.tsx"],"sourcesContent":["import type { TSectionName } from '../../worksheet-types';\nimport type { IWorksheetItemNavigationProps } from '../worksheet-navigation-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\n\nimport LeftIcon from '../../../../../assets/line-icons/icons/left';\nimport RightIcon from '../../../../../assets/line-icons/icons/right';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport Clickable from '../../../../ui/buttons/clickable/clickable';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport { TOP_NAVIGATION_ARROW_WIDTH } from '../../constants';\nimport {\n getNavigationSectionBackgroundColor,\n getNavigationSectionIcon,\n getNavigationSectionName,\n} from '../../worksheet-helpers';\nimport WorksheetItemNumber from '../worksheet-item-number/worksheet-item-number';\nimport * as Styled from '../worksheet-navigation-styled';\n\nconst WorksheetSectionNavigation: FC<IWorksheetItemNavigationProps> = memo(props => {\n const {\n activeItemNumber,\n items,\n responses,\n validation,\n userType,\n peerItemNumber,\n onItemNumberClick,\n maximumAttempts,\n } = props;\n const [isOverflowing, setIsOverflowing] = useState(false);\n const [visibleSection, setVisibleSection] = useState<'left' | 'right'>('left');\n const containerRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const sections = useMemo(() => {\n return items.reduce(\n (acc, item, itemIndex) => {\n const { section_name } = item.firstQuestion;\n const prevItemSectionName = items[itemIndex - 1]?.firstQuestion.section_name;\n const lastSection = acc[acc.length - 1];\n\n if (section_name === 'overview') {\n return acc;\n }\n\n if (section_name !== prevItemSectionName) {\n if (\n !item.firstQuestion.is_optional ||\n userType === 'TEACHER' ||\n responses[item.firstQuestion.response_id]?.assignStatus === 'assigned'\n ) {\n return [\n ...acc,\n {\n sectionName: section_name,\n items: [item],\n },\n ];\n }\n\n return acc;\n }\n\n if (\n !item.firstQuestion.is_optional ||\n userType === 'TEACHER' ||\n responses[item.firstQuestion.response_id]?.assignStatus === 'assigned'\n ) {\n lastSection?.items.push(item);\n }\n\n return acc;\n },\n [] as Array<{\n sectionName?: TSectionName;\n items: (typeof items)[number][];\n }>,\n );\n }, [items, responses, userType]);\n const visibleItemsCount = useMemo(\n () => sections.reduce((acc, section) => acc + section.items.length, 0),\n [sections],\n );\n const activeSectionName = activeItemNumber\n ? items[activeItemNumber]?.firstQuestion.section_name\n : undefined;\n\n const toggleVisibleSection = useCallback(() => {\n setVisibleSection(prevVisibleSection => (prevVisibleSection === 'left' ? 'right' : 'left'));\n }, []);\n\n useLayoutEffect(() => {\n const containerEl = containerRef.current;\n const contentEl = contentRef.current;\n\n if (containerEl && contentEl) {\n if (contentEl.clientWidth > containerEl.clientWidth) {\n setIsOverflowing(true);\n }\n }\n }, [visibleItemsCount]);\n\n useEffect(() => {\n const contentEl = contentRef.current;\n\n if (activeSectionName !== undefined && isOverflowing && contentEl) {\n const sectionEl = contentEl.querySelector(`.worksheet-section-${activeSectionName}`);\n\n if (sectionEl) {\n setVisibleSection(prevVisibleSection => {\n const { left, right } = sectionEl.getBoundingClientRect();\n\n if (\n prevVisibleSection === 'left' &&\n right + TOP_NAVIGATION_ARROW_WIDTH + 16 > contentEl.clientWidth\n ) {\n return 'right';\n }\n\n if (prevVisibleSection === 'right' && left - TOP_NAVIGATION_ARROW_WIDTH - 16 < 0) {\n return 'left';\n }\n\n return prevVisibleSection;\n });\n }\n }\n }, [activeSectionName, isOverflowing]);\n\n return (\n <Styled.Container\n ref={containerRef}\n $alignItems={isOverflowing ? `flex-${visibleSection === 'left' ? 'start' : 'end'}` : 'center'}\n >\n <Styled.LeftContainerBackground\n $background={getNavigationSectionBackgroundColor(sections[0]?.sectionName)}\n />\n <Styled.RightContainerBackground\n $background={getNavigationSectionBackgroundColor(\n sections[sections.length - 1]?.sectionName,\n )}\n />\n <FlexView ref={contentRef} $flexDirection=\"row\">\n {sections.map(({ sectionName, items: sectionItems }, sectionIndex) => {\n const SectionIcon = getNavigationSectionIcon(sectionName);\n const sectionTooltip = getNavigationSectionName(sectionName);\n const firstQuestion = sectionItems[0]?.firstQuestion;\n const sectionSkipped =\n firstQuestion?.is_optional &&\n responses[firstQuestion.response_id]?.assignStatus === 'skipped';\n\n if (sectionSkipped) {\n return null;\n }\n\n return (\n <Styled.SectionWrapper\n key={sectionName}\n className={`worksheet-section-${sectionName}`}\n $background={getNavigationSectionBackgroundColor(sectionName)}\n $hasBorder={sectionIndex > 0}\n $gutterX={1}\n $flexDirection=\"row\"\n $flexGapX={0.75}\n >\n <ArrowTooltip tooltipItem={sectionTooltip} position=\"bottom\" renderAs=\"primary\">\n <SectionIcon width={24} height={24} />\n </ArrowTooltip>\n {sectionItems.map(item => {\n const {\n firstQuestion: { response_id, item_number, is_optional },\n } = item;\n const isSkipped = is_optional\n ? responses[response_id]?.assignStatus === 'skipped'\n : false;\n\n if (isSkipped) {\n return null;\n }\n\n return (\n <WorksheetItemNumber\n key={response_id}\n item={item}\n responses={responses}\n validation={validation}\n placement=\"top\"\n onItemNumberClick={onItemNumberClick}\n canShowUserPin={item_number === peerItemNumber}\n isOptional={is_optional}\n teacherValidationEnabled\n maximumAttempts={maximumAttempts}\n />\n );\n })}\n </Styled.SectionWrapper>\n );\n })}\n </FlexView>\n {isOverflowing && visibleSection === 'left' && (\n <Clickable label=\"Worksheet Nav Right Arrow\" onClick={toggleVisibleSection}>\n <Styled.RightArrowWrapper $justifyContent=\"center\">\n <RightIcon width={24} height={24} />\n </Styled.RightArrowWrapper>\n </Clickable>\n )}\n {isOverflowing && visibleSection === 'right' && (\n <Clickable label=\"Worksheet Nav Left Arrow\" onClick={toggleVisibleSection}>\n <Styled.LeftArrowWrapper $justifyContent=\"center\">\n <LeftIcon width={24} height={24} />\n </Styled.LeftArrowWrapper>\n </Clickable>\n )}\n </Styled.Container>\n );\n});\n\nexport default WorksheetSectionNavigation;\n"],"names":["WorksheetSectionNavigation","memo","props","activeItemNumber","items","responses","validation","userType","peerItemNumber","onItemNumberClick","maximumAttempts","isOverflowing","setIsOverflowing","useState","visibleSection","setVisibleSection","containerRef","useRef","contentRef","sections","useMemo","acc","item","itemIndex","section_name","prevItemSectionName","_a","lastSection","_b","_c","visibleItemsCount","section","activeSectionName","toggleVisibleSection","useCallback","prevVisibleSection","useLayoutEffect","containerEl","contentEl","useEffect","sectionEl","left","right","TOP_NAVIGATION_ARROW_WIDTH","jsxs","Styled.Container","jsx","Styled.LeftContainerBackground","getNavigationSectionBackgroundColor","Styled.RightContainerBackground","FlexView","sectionName","sectionItems","sectionIndex","SectionIcon","getNavigationSectionIcon","sectionTooltip","getNavigationSectionName","firstQuestion","Styled.SectionWrapper","ArrowTooltip","response_id","item_number","is_optional","WorksheetItemNumber","Clickable","Styled.RightArrowWrapper","RightIcon","Styled.LeftArrowWrapper","LeftIcon"],"mappings":";;;;;;;;;;;AAoBM,MAAAA,KAAgEC,EAAK,CAASC,MAAA;;AAC5E,QAAA;AAAA,IACJ,kBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,WAAAC;AAAA,IACA,YAAAC;AAAA,IACA,UAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,iBAAAC;AAAA,EAAA,IACER,GACE,CAACS,GAAeC,CAAgB,IAAIC,EAAS,EAAK,GAClD,CAACC,GAAgBC,CAAiB,IAAIF,EAA2B,MAAM,GACvEG,IAAeC,EAAuB,IAAI,GAC1CC,IAAaD,EAAuB,IAAI,GACxCE,IAAWC,EAAQ,MAChBhB,EAAM;AAAA,IACX,CAACiB,GAAKC,GAAMC,MAAc;;AAClB,YAAA,EAAE,cAAAC,MAAiBF,EAAK,eACxBG,KAAsBC,IAAAtB,EAAMmB,IAAY,CAAC,MAAnB,gBAAAG,EAAsB,cAAc,cAC1DC,IAAcN,EAAIA,EAAI,SAAS,CAAC;AAEtC,aAAIG,MAAiB,aACZH,IAGLG,MAAiBC,IAEjB,CAACH,EAAK,cAAc,eACpBf,MAAa,eACbqB,IAAAvB,EAAUiB,EAAK,cAAc,WAAW,MAAxC,gBAAAM,EAA2C,kBAAiB,aAErD;AAAA,QACL,GAAGP;AAAA,QACH;AAAA,UACE,aAAaG;AAAA,UACb,OAAO,CAACF,CAAI;AAAA,QAAA;AAAA,MAEhB,IAGKD,MAIP,CAACC,EAAK,cAAc,eACpBf,MAAa,eACbsB,IAAAxB,EAAUiB,EAAK,cAAc,WAAW,MAAxC,gBAAAO,EAA2C,kBAAiB,gBAE/CF,KAAA,QAAAA,EAAA,MAAM,KAAKL,KAGnBD;AAAA,IACT;AAAA,IACA,CAAA;AAAA,EAIF,GACC,CAACjB,GAAOC,GAAWE,CAAQ,CAAC,GACzBuB,IAAoBV;AAAA,IACxB,MAAMD,EAAS,OAAO,CAACE,GAAKU,MAAYV,IAAMU,EAAQ,MAAM,QAAQ,CAAC;AAAA,IACrE,CAACZ,CAAQ;AAAA,EACX,GACMa,IAAoB7B,KACtBuB,IAAAtB,EAAMD,CAAgB,MAAtB,gBAAAuB,EAAyB,cAAc,eACvC,QAEEO,IAAuBC,EAAY,MAAM;AAC7C,IAAAnB,EAAkB,CAAuBoB,MAAAA,MAAuB,SAAS,UAAU,MAAO;AAAA,EAC5F,GAAG,EAAE;AAEL,SAAAC,EAAgB,MAAM;AACpB,UAAMC,IAAcrB,EAAa,SAC3BsB,IAAYpB,EAAW;AAE7B,IAAImB,KAAeC,KACbA,EAAU,cAAcD,EAAY,eACtCzB,EAAiB,EAAI;AAAA,EAEzB,GACC,CAACkB,CAAiB,CAAC,GAEtBS,EAAU,MAAM;AACd,UAAMD,IAAYpB,EAAW;AAEzB,QAAAc,MAAsB,UAAarB,KAAiB2B,GAAW;AACjE,YAAME,IAAYF,EAAU,cAAc,sBAAsBN,CAAiB,EAAE;AAEnF,MAAIQ,KACFzB,EAAkB,CAAsBoB,MAAA;AACtC,cAAM,EAAE,MAAAM,GAAM,OAAAC,MAAUF,EAAU,sBAAsB;AAExD,eACEL,MAAuB,UACvBO,IAAQC,IAA6B,KAAKL,EAAU,cAE7C,UAGLH,MAAuB,WAAWM,IAAOE,IAA6B,KAAK,IACtE,SAGFR;AAAA,MAAA,CACR;AAAA,IACH;AAAA,EACF,GACC,CAACH,GAAmBrB,CAAa,CAAC,GAGnC,gBAAAiC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,KAAK7B;AAAA,MACL,aAAaL,IAAgB,QAAQG,MAAmB,SAAS,UAAU,KAAK,KAAK;AAAA,MAErF,UAAA;AAAA,QAAA,gBAAAgC;AAAA,UAACC;AAAAA,UAAA;AAAA,YACC,aAAaC,GAAoCpB,IAAAT,EAAS,CAAC,MAAV,gBAAAS,EAAa,WAAW;AAAA,UAAA;AAAA,QAC3E;AAAA,QACA,gBAAAkB;AAAA,UAACG;AAAAA,UAAA;AAAA,YACC,aAAaD;AAAA,eACXnB,IAAAV,EAASA,EAAS,SAAS,CAAC,MAA5B,gBAAAU,EAA+B;AAAA,YAAA;AAAA,UACjC;AAAA,QACF;AAAA,QACC,gBAAAiB,EAAAI,GAAA,EAAS,KAAKhC,GAAY,gBAAe,OACvC,UAAAC,EAAS,IAAI,CAAC,EAAE,aAAAgC,GAAa,OAAOC,KAAgBC,MAAiB;;AAC9D,gBAAAC,IAAcC,EAAyBJ,CAAW,GAClDK,IAAiBC,EAAyBN,CAAW,GACrDO,KAAgBhC,IAAA0B,EAAa,CAAC,MAAd,gBAAA1B,EAAiB;AAKvC,kBAHEgC,KAAA,gBAAAA,EAAe,kBACf9B,IAAAvB,EAAUqD,EAAc,WAAW,MAAnC,gBAAA9B,EAAsC,kBAAiB,YAGhD,OAIP,gBAAAgB;AAAA,YAACe;AAAAA,YAAA;AAAA,cAEC,WAAW,qBAAqBR,CAAW;AAAA,cAC3C,aAAaH,EAAoCG,CAAW;AAAA,cAC5D,YAAYE,IAAe;AAAA,cAC3B,UAAU;AAAA,cACV,gBAAe;AAAA,cACf,WAAW;AAAA,cAEX,UAAA;AAAA,gBAAA,gBAAAP,EAACc,GAAa,EAAA,aAAaJ,GAAgB,UAAS,UAAS,UAAS,WACpE,UAAA,gBAAAV,EAACQ,GAAY,EAAA,OAAO,IAAI,QAAQ,GAAI,CAAA,GACtC;AAAA,gBACCF,EAAa,IAAI,CAAQ9B,MAAA;;AAClB,wBAAA;AAAA,oBACJ,eAAe,EAAE,aAAAuC,GAAa,aAAAC,GAAa,aAAAC,EAAY;AAAA,kBAAA,IACrDzC;AAKJ,0BAJkByC,MACdrC,IAAArB,EAAUwD,CAAW,MAArB,gBAAAnC,EAAwB,kBAAiB,YACzC,MAGK,OAIP,gBAAAoB;AAAA,oBAACkB;AAAA,oBAAA;AAAA,sBAEC,MAAA1C;AAAA,sBACA,WAAAjB;AAAA,sBACA,YAAAC;AAAA,sBACA,WAAU;AAAA,sBACV,mBAAAG;AAAA,sBACA,gBAAgBqD,MAAgBtD;AAAA,sBAChC,YAAYuD;AAAA,sBACZ,0BAAwB;AAAA,sBACxB,iBAAArD;AAAA,oBAAA;AAAA,oBATKmD;AAAA,kBAUP;AAAA,gBAEH,CAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YArCIV;AAAA,UAsCP;AAAA,QAEH,CAAA,GACH;AAAA,QACCxC,KAAiBG,MAAmB,UACnC,gBAAAgC,EAACmB,KAAU,OAAM,6BAA4B,SAAShC,GACpD,UAAC,gBAAAa,EAAAoB,IAAA,EAAyB,iBAAgB,UACxC,UAAC,gBAAApB,EAAAqB,GAAA,EAAU,OAAO,IAAI,QAAQ,IAAI,EAAA,CACpC,EACF,CAAA;AAAA,QAEDxD,KAAiBG,MAAmB,WACnC,gBAAAgC,EAACmB,KAAU,OAAM,4BAA2B,SAAShC,GACnD,UAAC,gBAAAa,EAAAsB,IAAA,EAAwB,iBAAgB,UACvC,UAAC,gBAAAtB,EAAAuB,GAAA,EAAS,OAAO,IAAI,QAAQ,GAAI,CAAA,EACnC,CAAA,EACF,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ;AAEJ,CAAC;"}
|
1
|
+
{"version":3,"file":"worksheet-section-navigation.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-navigation/worksheet-section-navigation/worksheet-section-navigation.tsx"],"sourcesContent":["import type { TSectionName } from '../../worksheet-types';\nimport type { IWorksheetItemNavigationProps } from '../worksheet-navigation-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\n\nimport LeftIcon from '../../../../../assets/line-icons/icons/left';\nimport RightIcon from '../../../../../assets/line-icons/icons/right';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport Clickable from '../../../../ui/buttons/clickable/clickable';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport { TOP_NAVIGATION_ARROW_WIDTH } from '../../constants';\nimport {\n getNavigationSectionBackgroundColor,\n getNavigationSectionIcon,\n getNavigationSectionName,\n} from '../../worksheet-helpers';\nimport WorksheetItemNumber from '../worksheet-item-number/worksheet-item-number';\nimport * as Styled from '../worksheet-navigation-styled';\n\nconst WorksheetSectionNavigation: FC<IWorksheetItemNavigationProps> = memo(props => {\n const {\n activeItemNumber,\n items,\n responses,\n validation,\n userType,\n peerItemNumber,\n onItemNumberClick,\n maximumAttempts,\n } = props;\n const [isOverflowing, setIsOverflowing] = useState(false);\n const [visibleSection, setVisibleSection] = useState<'left' | 'right'>('left');\n const containerRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const sections = useMemo(() => {\n return items.reduce(\n (acc, item, itemIndex) => {\n const { section_name } = item.firstQuestion;\n const prevItemSectionName = items[itemIndex - 1]?.firstQuestion.section_name;\n const lastSection = acc[acc.length - 1];\n\n if (section_name === 'overview') {\n return acc;\n }\n\n if (section_name !== prevItemSectionName) {\n if (\n !item.firstQuestion.is_optional ||\n userType === 'TEACHER' ||\n responses[item.firstQuestion.response_id]?.assignStatus === 'assigned'\n ) {\n return [\n ...acc,\n {\n sectionName: section_name,\n items: [item],\n },\n ];\n }\n\n return acc;\n }\n\n if (\n !item.firstQuestion.is_optional ||\n userType === 'TEACHER' ||\n responses[item.firstQuestion.response_id]?.assignStatus === 'assigned'\n ) {\n lastSection?.items.push(item);\n }\n\n return acc;\n },\n [] as Array<{\n sectionName?: TSectionName;\n items: (typeof items)[number][];\n }>,\n );\n }, [items, responses, userType]);\n const visibleItemsCount = useMemo(\n () => sections.reduce((acc, section) => acc + section.items.length, 0),\n [sections],\n );\n const activeSectionName = activeItemNumber\n ? items[activeItemNumber]?.firstQuestion.section_name\n : undefined;\n\n const toggleVisibleSection = useCallback(() => {\n setVisibleSection(prevVisibleSection => (prevVisibleSection === 'left' ? 'right' : 'left'));\n }, []);\n\n useLayoutEffect(() => {\n const containerEl = containerRef.current;\n const contentEl = contentRef.current;\n\n if (containerEl && contentEl) {\n if (contentEl.clientWidth > containerEl.clientWidth) {\n setIsOverflowing(true);\n }\n }\n }, [visibleItemsCount]);\n\n useEffect(() => {\n const contentEl = contentRef.current;\n\n if (activeSectionName !== undefined && isOverflowing && contentEl) {\n const sectionEl = contentEl.querySelector(`.worksheet-section-${activeSectionName}`);\n\n if (sectionEl) {\n setVisibleSection(prevVisibleSection => {\n const { left, right } = sectionEl.getBoundingClientRect();\n\n if (\n prevVisibleSection === 'left' &&\n right + TOP_NAVIGATION_ARROW_WIDTH + 16 > contentEl.clientWidth\n ) {\n return 'right';\n }\n\n if (prevVisibleSection === 'right' && left - TOP_NAVIGATION_ARROW_WIDTH - 16 < 0) {\n return 'left';\n }\n\n return prevVisibleSection;\n });\n }\n }\n }, [activeSectionName, isOverflowing]);\n\n return (\n <Styled.Container\n ref={containerRef}\n $alignItems={isOverflowing ? `flex-${visibleSection === 'left' ? 'start' : 'end'}` : 'center'}\n >\n <Styled.LeftContainerBackground\n $background={getNavigationSectionBackgroundColor(sections[0]?.sectionName)}\n />\n <Styled.RightContainerBackground\n $background={getNavigationSectionBackgroundColor(\n sections[sections.length - 1]?.sectionName,\n )}\n />\n <FlexView ref={contentRef} $flexDirection=\"row\">\n {sections.map(({ sectionName, items: sectionItems }, sectionIndex) => {\n const SectionIcon = getNavigationSectionIcon(sectionName);\n const sectionTooltip = getNavigationSectionName(sectionName);\n const firstQuestion = sectionItems[0]?.firstQuestion;\n const sectionSkipped =\n firstQuestion?.is_optional &&\n responses[firstQuestion.response_id]?.assignStatus === 'skipped';\n\n if (sectionSkipped) {\n return null;\n }\n\n return (\n <Styled.SectionWrapper\n key={sectionName}\n className={`worksheet-section-${sectionName}`}\n $background={getNavigationSectionBackgroundColor(sectionName)}\n $hasBorder={sectionIndex > 0}\n $gutterX={1}\n $flexDirection=\"row\"\n $flexGapX={0.75}\n >\n <ArrowTooltip tooltipItem={sectionTooltip} position=\"bottom\" renderAs=\"primary\">\n <SectionIcon width={24} height={24} />\n </ArrowTooltip>\n {sectionItems.map(item => {\n const {\n firstQuestion: { response_id, item_number, is_optional },\n } = item;\n const isSkipped = is_optional\n ? responses[response_id]?.assignStatus === 'skipped'\n : false;\n\n if (isSkipped) {\n return null;\n }\n\n return (\n <WorksheetItemNumber\n key={response_id}\n item={item}\n responses={responses}\n validation={validation}\n placement=\"top\"\n onItemNumberClick={onItemNumberClick}\n canShowUserPin={item_number === peerItemNumber}\n isOptional={is_optional}\n teacherValidationEnabled\n maximumAttempts={maximumAttempts}\n />\n );\n })}\n </Styled.SectionWrapper>\n );\n })}\n </FlexView>\n {isOverflowing && visibleSection === 'left' && (\n <Clickable label=\"Worksheet Nav Right Arrow\" onClick={toggleVisibleSection}>\n <Styled.RightArrowWrapper $justifyContent=\"center\">\n <RightIcon width={24} height={24} />\n </Styled.RightArrowWrapper>\n </Clickable>\n )}\n {isOverflowing && visibleSection === 'right' && (\n <Clickable label=\"Worksheet Nav Left Arrow\" onClick={toggleVisibleSection}>\n <Styled.LeftArrowWrapper $justifyContent=\"center\">\n <LeftIcon width={24} height={24} />\n </Styled.LeftArrowWrapper>\n </Clickable>\n )}\n </Styled.Container>\n );\n});\n\nexport default WorksheetSectionNavigation;\n"],"names":["WorksheetSectionNavigation","memo","props","activeItemNumber","items","responses","validation","userType","peerItemNumber","onItemNumberClick","maximumAttempts","isOverflowing","setIsOverflowing","useState","visibleSection","setVisibleSection","containerRef","useRef","contentRef","sections","useMemo","acc","item","itemIndex","section_name","prevItemSectionName","_a","lastSection","_b","_c","visibleItemsCount","section","activeSectionName","toggleVisibleSection","useCallback","prevVisibleSection","useLayoutEffect","containerEl","contentEl","useEffect","sectionEl","left","right","TOP_NAVIGATION_ARROW_WIDTH","jsxs","Styled.Container","jsx","Styled.LeftContainerBackground","getNavigationSectionBackgroundColor","Styled.RightContainerBackground","FlexView","sectionName","sectionItems","sectionIndex","SectionIcon","getNavigationSectionIcon","sectionTooltip","getNavigationSectionName","firstQuestion","Styled.SectionWrapper","ArrowTooltip","response_id","item_number","is_optional","WorksheetItemNumber","Clickable","Styled.RightArrowWrapper","RightIcon","Styled.LeftArrowWrapper","LeftIcon"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"error.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-permissions/error.tsx"],"sourcesContent":["import { memo } from 'react';\n\nimport { LOTTIE } from '../../../../assets/lottie/lottie';\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport LottieAnimation from '../../../ui/lottie-animation/lottie-animation';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { BaseWrapper } from './styles';\n\ninterface ErrorProps {\n buttonLabel?: string;\n error: string;\n handleClick: () => void;\n}\n\nconst Error: React.FC<ErrorProps> = ({ buttonLabel = 'Home', error, handleClick }) => (\n <BaseWrapper $background=\"BLACK_75\">\n <FlexView $alignItems=\"center\">\n <Separator heightX={4} />\n <LottieAnimation src={LOTTIE.ERROR_LOTTIE} height={320} width={320} />\n <Text $renderAs=\"h6\" $color=\"WHITE\" $align=\"center\">\n {error || 'Oh No! Error detected...'}\n </Text>\n <Separator heightX={1} />\n <Button\n label={buttonLabel}\n onClick={handleClick}\n renderAs=\"primary\"\n size=\"regular\"\n widthX={14}\n />\n </FlexView>\n </BaseWrapper>\n);\n\nexport default memo(Error);\n"],"names":["Error","buttonLabel","error","handleClick","jsx","BaseWrapper","jsxs","FlexView","Separator","LottieAnimation","LOTTIE","Text","Button","memo"],"mappings":";;;;;;;;;AAgBA,MAAMA,IAA8B,CAAC,EAAE,aAAAC,IAAc,QAAQ,OAAAC,GAAO,aAAAC,EAAA,MAClE,gBAAAC,EAACC,KAAY,aAAY,YACvB,UAAC,gBAAAC,EAAAC,GAAA,EAAS,aAAY,UACpB,UAAA;AAAA,EAAC,gBAAAH,EAAAI,GAAA,EAAU,SAAS,EAAG,CAAA;AAAA,EACvB,gBAAAJ,EAACK,KAAgB,KAAKC,EAAO,cAAc,QAAQ,KAAK,OAAO,KAAK;AAAA,EACpE,gBAAAN,EAACO,KAAK,WAAU,MAAK,QAAO,SAAQ,QAAO,UACxC,UAAAT,KAAS,2BACZ,CAAA;AAAA,EACA,gBAAAE,EAACI,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,EACvB,gBAAAJ;AAAA,IAACQ;AAAA,IAAA;AAAA,MACC,OAAOX;AAAA,MACP,SAASE;AAAA,MACT,UAAS;AAAA,MACT,MAAK;AAAA,MACL,QAAQ;AAAA,IAAA;AAAA,
|
1
|
+
{"version":3,"file":"error.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-permissions/error.tsx"],"sourcesContent":["import { memo } from 'react';\n\nimport { LOTTIE } from '../../../../assets/lottie/lottie';\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport LottieAnimation from '../../../ui/lottie-animation/lottie-animation';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { BaseWrapper } from './styles';\n\ninterface ErrorProps {\n buttonLabel?: string;\n error: string;\n handleClick: () => void;\n}\n\nconst Error: React.FC<ErrorProps> = ({ buttonLabel = 'Home', error, handleClick }) => (\n <BaseWrapper $background=\"BLACK_75\">\n <FlexView $alignItems=\"center\">\n <Separator heightX={4} />\n <LottieAnimation src={LOTTIE.ERROR_LOTTIE} height={320} width={320} />\n <Text $renderAs=\"h6\" $color=\"WHITE\" $align=\"center\">\n {error || 'Oh No! Error detected...'}\n </Text>\n <Separator heightX={1} />\n <Button\n label={buttonLabel}\n onClick={handleClick}\n renderAs=\"primary\"\n size=\"regular\"\n widthX={14}\n />\n </FlexView>\n </BaseWrapper>\n);\n\nexport default memo(Error);\n"],"names":["Error","buttonLabel","error","handleClick","jsx","BaseWrapper","jsxs","FlexView","Separator","LottieAnimation","LOTTIE","Text","Button","memo"],"mappings":";;;;;;;;;AAgBA,MAAMA,IAA8B,CAAC,EAAE,aAAAC,IAAc,QAAQ,OAAAC,GAAO,aAAAC,EAAA,MAClE,gBAAAC,EAACC,KAAY,aAAY,YACvB,UAAC,gBAAAC,EAAAC,GAAA,EAAS,aAAY,UACpB,UAAA;AAAA,EAAC,gBAAAH,EAAAI,GAAA,EAAU,SAAS,EAAG,CAAA;AAAA,EACvB,gBAAAJ,EAACK,KAAgB,KAAKC,EAAO,cAAc,QAAQ,KAAK,OAAO,KAAK;AAAA,EACpE,gBAAAN,EAACO,KAAK,WAAU,MAAK,QAAO,SAAQ,QAAO,UACxC,UAAAT,KAAS,2BACZ,CAAA;AAAA,EACA,gBAAAE,EAACI,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,EACvB,gBAAAJ;AAAA,IAACQ;AAAA,IAAA;AAAA,MACC,OAAOX;AAAA,MACP,SAASE;AAAA,MACT,UAAS;AAAA,MACT,MAAK;AAAA,MACL,QAAQ;AAAA,IAAA;AAAA,EACV;AAAA,EACF,CAAA,EACF,CAAA,GAGaD,IAAAW,EAAKb,CAAK;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sheet-locked.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-permissions/sheet-locked.tsx"],"sourcesContent":["import { memo } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { BaseWrapper } from './styles';\n\nconst SheetLocked = ({ onHomeClick }: { onHomeClick: () => void }) => {\n const {\n layout: { gutter },\n } = useTheme();\n\n return (\n <BaseWrapper $background=\"BLACK_75\">\n <FlexView $alignItems=\"center\">\n <Separator heightX={4} />\n <img\n alt=\"locked-img\"\n src={ILLUSTRATIONS.LOCKED}\n width={gutter * 12.5}\n height={gutter * 12.5}\n />\n <Text $renderAs=\"h6\" $color=\"WHITE\">\n The sheet is locked. Come back later\n </Text>\n <Separator heightX={1} />\n <Button label=\"Home\" onClick={onHomeClick} renderAs=\"primary\" size=\"regular\" widthX={14} />\n </FlexView>\n </BaseWrapper>\n );\n};\n\nexport default memo(SheetLocked);\n"],"names":["SheetLocked","onHomeClick","gutter","useTheme","BaseWrapper","jsxs","FlexView","jsx","Separator","ILLUSTRATIONS","Text","Button","sheetLocked","memo"],"mappings":";;;;;;;;;AAUA,MAAMA,IAAc,CAAC,EAAE,aAAAC,QAA+C;AAC9D,QAAA;AAAA,IACJ,QAAQ,EAAE,QAAAC,EAAO;AAAA,MACfC,EAAS;AAEb,2BACGC,GAAY,EAAA,aAAY,YACvB,UAAC,gBAAAC,EAAAC,GAAA,EAAS,aAAY,UACpB,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAU,SAAS,EAAG,CAAA;AAAA,IACvB,gBAAAD;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAI;AAAA,QACJ,KAAKE,EAAc;AAAA,QACnB,OAAOP,IAAS;AAAA,QAChB,QAAQA,IAAS;AAAA,MAAA;AAAA,IACnB;AAAA,sBACCQ,GAAK,EAAA,WAAU,MAAK,QAAO,SAAQ,UAEpC,wCAAA;AAAA,IACA,gBAAAH,EAACC,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,IACvB,gBAAAD,EAACI,GAAO,EAAA,OAAM,QAAO,SAASV,GAAa,UAAS,WAAU,MAAK,WAAU,QAAQ,GAAI,CAAA;AAAA,EAAA,
|
1
|
+
{"version":3,"file":"sheet-locked.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-permissions/sheet-locked.tsx"],"sourcesContent":["import { memo } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { BaseWrapper } from './styles';\n\nconst SheetLocked = ({ onHomeClick }: { onHomeClick: () => void }) => {\n const {\n layout: { gutter },\n } = useTheme();\n\n return (\n <BaseWrapper $background=\"BLACK_75\">\n <FlexView $alignItems=\"center\">\n <Separator heightX={4} />\n <img\n alt=\"locked-img\"\n src={ILLUSTRATIONS.LOCKED}\n width={gutter * 12.5}\n height={gutter * 12.5}\n />\n <Text $renderAs=\"h6\" $color=\"WHITE\">\n The sheet is locked. Come back later\n </Text>\n <Separator heightX={1} />\n <Button label=\"Home\" onClick={onHomeClick} renderAs=\"primary\" size=\"regular\" widthX={14} />\n </FlexView>\n </BaseWrapper>\n );\n};\n\nexport default memo(SheetLocked);\n"],"names":["SheetLocked","onHomeClick","gutter","useTheme","BaseWrapper","jsxs","FlexView","jsx","Separator","ILLUSTRATIONS","Text","Button","sheetLocked","memo"],"mappings":";;;;;;;;;AAUA,MAAMA,IAAc,CAAC,EAAE,aAAAC,QAA+C;AAC9D,QAAA;AAAA,IACJ,QAAQ,EAAE,QAAAC,EAAO;AAAA,MACfC,EAAS;AAEb,2BACGC,GAAY,EAAA,aAAY,YACvB,UAAC,gBAAAC,EAAAC,GAAA,EAAS,aAAY,UACpB,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAU,SAAS,EAAG,CAAA;AAAA,IACvB,gBAAAD;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAI;AAAA,QACJ,KAAKE,EAAc;AAAA,QACnB,OAAOP,IAAS;AAAA,QAChB,QAAQA,IAAS;AAAA,MAAA;AAAA,IACnB;AAAA,sBACCQ,GAAK,EAAA,WAAU,MAAK,QAAO,SAAQ,UAEpC,wCAAA;AAAA,IACA,gBAAAH,EAACC,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,IACvB,gBAAAD,EAACI,GAAO,EAAA,OAAM,QAAO,SAASV,GAAa,UAAS,WAAU,MAAK,WAAU,QAAQ,GAAI,CAAA;AAAA,EAAA,EAC3F,CAAA,EACF,CAAA;AAEJ,GAEeW,IAAAC,EAAKb,CAAW;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"header-tags.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-question/header/header-tags.tsx"],"sourcesContent":["import type { TInstructorStimulus, TItemType } from '../../worksheet-types';\nimport type { TWorksheetQuestionPaperColor } from '../worksheet-question-types';\n\nimport { memo, useMemo, type FC } from 'react';\n\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport { getQuestionBorderColor } from '../../worksheet-helpers';\n\ninterface IHeaderTag {\n itemType?: TItemType;\n paperColor?: TWorksheetQuestionPaperColor;\n instructorStimulus?: TInstructorStimulus;\n}\n\nconst getItemType = (itemType?: string, instructorStimulus?: TInstructorStimulus) => {\n switch (itemType) {\n case 'learning-we-do':\n return 'We Do';\n case 'learning-your-turn':\n return 'Your Turn';\n case 'learning-explore':\n return 'Explore';\n }\n\n switch (instructorStimulus?.toLowerCase()) {\n case 'try':\n return 'Try';\n case 'learn':\n return 'Learn';\n case 'apply':\n return 'Apply';\n }\n\n return null;\n};\n\nconst HeaderTag: FC<IHeaderTag> = memo(({ itemType, paperColor, instructorStimulus }) => {\n const itemTypeLabel = useMemo(\n () => getItemType(itemType, instructorStimulus),\n [instructorStimulus, itemType],\n );\n\n if (itemTypeLabel) {\n return (\n <>\n <Separator width={4} />\n <FlexView\n $borderRadius={12}\n $background={getQuestionBorderColor(paperColor ?? 'yellow', true)}\n $gutter={8}\n $height=\"fit-content\"\n >\n <Separator height={2} />\n <Text $renderAs=\"eyebrow2\">{itemTypeLabel}</Text>\n </FlexView>\n </>\n );\n }\n\n return null;\n});\n\nexport default HeaderTag;\n"],"names":["getItemType","itemType","instructorStimulus","HeaderTag","memo","paperColor","itemTypeLabel","useMemo","jsxs","Fragment","jsx","Separator","FlexView","getQuestionBorderColor","Text"],"mappings":";;;;;;AAgBA,MAAMA,IAAc,CAACC,GAAmBC,MAA6C;AACnF,UAAQD,GAAU;AAAA,IAChB,KAAK;AACI,aAAA;AAAA,IACT,KAAK;AACI,aAAA;AAAA,IACT,KAAK;AACI,aAAA;AAAA,
|
1
|
+
{"version":3,"file":"header-tags.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-question/header/header-tags.tsx"],"sourcesContent":["import type { TInstructorStimulus, TItemType } from '../../worksheet-types';\nimport type { TWorksheetQuestionPaperColor } from '../worksheet-question-types';\n\nimport { memo, useMemo, type FC } from 'react';\n\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport { getQuestionBorderColor } from '../../worksheet-helpers';\n\ninterface IHeaderTag {\n itemType?: TItemType;\n paperColor?: TWorksheetQuestionPaperColor;\n instructorStimulus?: TInstructorStimulus;\n}\n\nconst getItemType = (itemType?: string, instructorStimulus?: TInstructorStimulus) => {\n switch (itemType) {\n case 'learning-we-do':\n return 'We Do';\n case 'learning-your-turn':\n return 'Your Turn';\n case 'learning-explore':\n return 'Explore';\n }\n\n switch (instructorStimulus?.toLowerCase()) {\n case 'try':\n return 'Try';\n case 'learn':\n return 'Learn';\n case 'apply':\n return 'Apply';\n }\n\n return null;\n};\n\nconst HeaderTag: FC<IHeaderTag> = memo(({ itemType, paperColor, instructorStimulus }) => {\n const itemTypeLabel = useMemo(\n () => getItemType(itemType, instructorStimulus),\n [instructorStimulus, itemType],\n );\n\n if (itemTypeLabel) {\n return (\n <>\n <Separator width={4} />\n <FlexView\n $borderRadius={12}\n $background={getQuestionBorderColor(paperColor ?? 'yellow', true)}\n $gutter={8}\n $height=\"fit-content\"\n >\n <Separator height={2} />\n <Text $renderAs=\"eyebrow2\">{itemTypeLabel}</Text>\n </FlexView>\n </>\n );\n }\n\n return null;\n});\n\nexport default HeaderTag;\n"],"names":["getItemType","itemType","instructorStimulus","HeaderTag","memo","paperColor","itemTypeLabel","useMemo","jsxs","Fragment","jsx","Separator","FlexView","getQuestionBorderColor","Text"],"mappings":";;;;;;AAgBA,MAAMA,IAAc,CAACC,GAAmBC,MAA6C;AACnF,UAAQD,GAAU;AAAA,IAChB,KAAK;AACI,aAAA;AAAA,IACT,KAAK;AACI,aAAA;AAAA,IACT,KAAK;AACI,aAAA;AAAA,EACX;AAEQ,UAAAC,KAAA,gBAAAA,EAAoB,eAAe;AAAA,IACzC,KAAK;AACI,aAAA;AAAA,IACT,KAAK;AACI,aAAA;AAAA,IACT,KAAK;AACI,aAAA;AAAA,EACX;AAEO,SAAA;AACT,GAEMC,IAA4BC,EAAK,CAAC,EAAE,UAAAH,GAAU,YAAAI,GAAY,oBAAAH,QAAyB;AACvF,QAAMI,IAAgBC;AAAA,IACpB,MAAMP,EAAYC,GAAUC,CAAkB;AAAA,IAC9C,CAACA,GAAoBD,CAAQ;AAAA,EAAA;AAG/B,SAAIK,IAGE,gBAAAE,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAU,OAAO,EAAG,CAAA;AAAA,IACrB,gBAAAH;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,eAAe;AAAA,QACf,aAAaC,EAAuBR,KAAc,UAAU,EAAI;AAAA,QAChE,SAAS;AAAA,QACT,SAAQ;AAAA,QAER,UAAA;AAAA,UAAC,gBAAAK,EAAAC,GAAA,EAAU,QAAQ,EAAG,CAAA;AAAA,UACrB,gBAAAD,EAAAI,GAAA,EAAK,WAAU,YAAY,UAAcR,GAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAC5C;AAAA,EACF,EAAA,CAAA,IAIG;AACT,CAAC;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"header.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-question/header/header.tsx"],"sourcesContent":["import type { IQuestionHeaderProps } from '../worksheet-question-types';\n\nimport { memo, useCallback, useMemo, type FC } from 'react';\n\nimport BookmarkIcon from '../../../../../assets/line-icons/icons/bookmark';\nimport BookmarkStrokeIcon from '../../../../../assets/line-icons/icons/bookmark-stroke-icon';\nimport MistakeIcon from '../../../../../assets/line-icons/icons/mistake';\nimport Skip2Icon from '../../../../../assets/line-icons/icons/skip2';\nimport Button from '../../../../ui/buttons/button/button';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport { TOP_NAVIGATION_HEIGHT } from '../../constants';\nimport { getQuestionBorderColor } from '../../worksheet-helpers';\nimport * as Styled from '../worksheet-question-styled';\nimport HeaderTag from './header-tags';\nimport ValidatedAnimation from './validated-animation';\n\nconst QuestionHeader: FC<IQuestionHeaderProps> = memo(\n ({\n paperColor,\n actionbarHeight,\n behavior,\n onMarkForReview,\n question,\n response,\n userType,\n onResolveDoubt,\n canResolveDoubt,\n layout,\n worksheetCompleted,\n }) => {\n const { topOffset, questionsScrollable, navigationBar } = layout;\n const teacherValidated = response?.validatedByTeacher ?? false;\n const markedForReview = response?.markedForReview ?? false;\n const attempts = (response?.attemptsHistory || []).length ?? 0;\n const { canMarkForReview, teacherValidationEnabled } = behavior;\n const {\n item_display_number,\n question_number,\n total_questions: totalQuestions,\n response_id: responseId,\n item_type: itemType,\n instructor_stimulus: instructorStimulus,\n } = question;\n\n const questionNumber = `${item_display_number}${\n totalQuestions > 1 ? String.fromCharCode('a'.charCodeAt(0) + question_number) : ''\n }`;\n\n const handleMarkForReview = useCallback(\n () => onMarkForReview(responseId, true),\n [onMarkForReview, responseId],\n );\n\n const handleUnmarkForReview = useCallback(\n () => onMarkForReview(responseId, false),\n [onMarkForReview, responseId],\n );\n\n const canShowResolveButton = useMemo(() => {\n const { score, max_score: maxScore } = response?.score || {};\n\n if (worksheetCompleted && onResolveDoubt && !response?.doubtResolved) {\n if (response?.skipped) {\n return true;\n }\n\n if (response?.responseEdited && score !== maxScore) {\n return true;\n }\n\n return false;\n }\n }, [onResolveDoubt, response, worksheetCompleted]);\n\n const handleDoubtResolve = useCallback(() => {\n if (onResolveDoubt) {\n onResolveDoubt(responseId);\n }\n }, [onResolveDoubt, responseId]);\n\n if (questionsScrollable || !canMarkForReview) {\n return (\n <Styled.QuestionHeaderWrapper\n $flexDirection=\"row\"\n $topOffset={topOffset + navigationBar === 'top' ? TOP_NAVIGATION_HEIGHT : 0}\n $actionbarHeight={actionbarHeight}\n $justifyContent=\"space-between\"\n >\n <FlexView $flexDirection=\"row\">\n <FlexView\n $position=\"relative\"\n $background={getQuestionBorderColor(paperColor ?? 'yellow', true)}\n $widthX={2.5}\n $heightX={2.5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadiusX={0.5}\n $marginBottom={18}\n >\n <Text $renderAs=\"body1Medium\">{questionNumber}</Text>\n {teacherValidationEnabled && (\n <Styled.QuestionValidationAnimationWrapper>\n <ValidatedAnimation validated={teacherValidated} />\n </Styled.QuestionValidationAnimationWrapper>\n )}\n </FlexView>\n {canShowResolveButton && (\n <FlexView $gutterX={0.5} $gapX={0.2}>\n <Button\n renderAs=\"secondary\"\n label={`Mark as Resolved`}\n onClick={handleDoubtResolve}\n disabled={!canResolveDoubt}\n size=\"xsmall\"\n iconPosition=\"left\"\n Icon={response?.skipped ? Skip2Icon : MistakeIcon}\n />\n </FlexView>\n )}\n <Separator width={5} />\n {!!attempts && userType === 'TEACHER' && (\n <FlexView\n $flexDirection=\"row\"\n $background=\"WHITE\"\n $flexGapX={0.25}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadiusX={0.5}\n $marginBottom={18}\n $gutterX={0.5}\n >\n <Text $renderAs=\"body1\">Attempts:</Text>\n <Text $renderAs=\"body1Medium\">{attempts}</Text>\n </FlexView>\n )}\n <HeaderTag\n itemType={itemType}\n instructorStimulus={instructorStimulus}\n paperColor={paperColor}\n />\n </FlexView>\n </Styled.QuestionHeaderWrapper>\n );\n }\n\n return (\n <Styled.ItemHeader\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n $background=\"YELLOW_1\"\n $marginBottom={18}\n >\n <Styled.ItemHeaderTag>\n <Text $renderAs=\"eyebrow1\">Question {item_display_number}</Text>\n </Styled.ItemHeaderTag>\n {canMarkForReview && (\n <Button\n renderAs=\"secondary\"\n label={`Mark${markedForReview ? 'ed' : ''} for review`}\n onClick={markedForReview ? handleUnmarkForReview : handleMarkForReview}\n size=\"xsmall\"\n iconPosition=\"left\"\n Icon={markedForReview ? BookmarkIcon : BookmarkStrokeIcon}\n />\n )}\n </Styled.ItemHeader>\n );\n },\n);\n\nexport default QuestionHeader;\n"],"names":["QuestionHeader","memo","paperColor","actionbarHeight","behavior","onMarkForReview","question","response","userType","onResolveDoubt","canResolveDoubt","layout","worksheetCompleted","topOffset","questionsScrollable","navigationBar","teacherValidated","markedForReview","attempts","canMarkForReview","teacherValidationEnabled","item_display_number","question_number","totalQuestions","responseId","itemType","instructorStimulus","questionNumber","handleMarkForReview","useCallback","handleUnmarkForReview","canShowResolveButton","useMemo","score","maxScore","handleDoubtResolve","jsx","Styled.QuestionHeaderWrapper","TOP_NAVIGATION_HEIGHT","jsxs","FlexView","getQuestionBorderColor","Text","Styled.QuestionValidationAnimationWrapper","ValidatedAnimation","Button","Skip2Icon","MistakeIcon","Separator","HeaderTag","Styled.ItemHeader","Styled.ItemHeaderTag","BookmarkIcon","BookmarkStrokeIcon"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"header.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-question/header/header.tsx"],"sourcesContent":["import type { IQuestionHeaderProps } from '../worksheet-question-types';\n\nimport { memo, useCallback, useMemo, type FC } from 'react';\n\nimport BookmarkIcon from '../../../../../assets/line-icons/icons/bookmark';\nimport BookmarkStrokeIcon from '../../../../../assets/line-icons/icons/bookmark-stroke-icon';\nimport MistakeIcon from '../../../../../assets/line-icons/icons/mistake';\nimport Skip2Icon from '../../../../../assets/line-icons/icons/skip2';\nimport Button from '../../../../ui/buttons/button/button';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport { TOP_NAVIGATION_HEIGHT } from '../../constants';\nimport { getQuestionBorderColor } from '../../worksheet-helpers';\nimport * as Styled from '../worksheet-question-styled';\nimport HeaderTag from './header-tags';\nimport ValidatedAnimation from './validated-animation';\n\nconst QuestionHeader: FC<IQuestionHeaderProps> = memo(\n ({\n paperColor,\n actionbarHeight,\n behavior,\n onMarkForReview,\n question,\n response,\n userType,\n onResolveDoubt,\n canResolveDoubt,\n layout,\n worksheetCompleted,\n }) => {\n const { topOffset, questionsScrollable, navigationBar } = layout;\n const teacherValidated = response?.validatedByTeacher ?? false;\n const markedForReview = response?.markedForReview ?? false;\n const attempts = (response?.attemptsHistory || []).length ?? 0;\n const { canMarkForReview, teacherValidationEnabled } = behavior;\n const {\n item_display_number,\n question_number,\n total_questions: totalQuestions,\n response_id: responseId,\n item_type: itemType,\n instructor_stimulus: instructorStimulus,\n } = question;\n\n const questionNumber = `${item_display_number}${\n totalQuestions > 1 ? String.fromCharCode('a'.charCodeAt(0) + question_number) : ''\n }`;\n\n const handleMarkForReview = useCallback(\n () => onMarkForReview(responseId, true),\n [onMarkForReview, responseId],\n );\n\n const handleUnmarkForReview = useCallback(\n () => onMarkForReview(responseId, false),\n [onMarkForReview, responseId],\n );\n\n const canShowResolveButton = useMemo(() => {\n const { score, max_score: maxScore } = response?.score || {};\n\n if (worksheetCompleted && onResolveDoubt && !response?.doubtResolved) {\n if (response?.skipped) {\n return true;\n }\n\n if (response?.responseEdited && score !== maxScore) {\n return true;\n }\n\n return false;\n }\n }, [onResolveDoubt, response, worksheetCompleted]);\n\n const handleDoubtResolve = useCallback(() => {\n if (onResolveDoubt) {\n onResolveDoubt(responseId);\n }\n }, [onResolveDoubt, responseId]);\n\n if (questionsScrollable || !canMarkForReview) {\n return (\n <Styled.QuestionHeaderWrapper\n $flexDirection=\"row\"\n $topOffset={topOffset + navigationBar === 'top' ? TOP_NAVIGATION_HEIGHT : 0}\n $actionbarHeight={actionbarHeight}\n $justifyContent=\"space-between\"\n >\n <FlexView $flexDirection=\"row\">\n <FlexView\n $position=\"relative\"\n $background={getQuestionBorderColor(paperColor ?? 'yellow', true)}\n $widthX={2.5}\n $heightX={2.5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadiusX={0.5}\n $marginBottom={18}\n >\n <Text $renderAs=\"body1Medium\">{questionNumber}</Text>\n {teacherValidationEnabled && (\n <Styled.QuestionValidationAnimationWrapper>\n <ValidatedAnimation validated={teacherValidated} />\n </Styled.QuestionValidationAnimationWrapper>\n )}\n </FlexView>\n {canShowResolveButton && (\n <FlexView $gutterX={0.5} $gapX={0.2}>\n <Button\n renderAs=\"secondary\"\n label={`Mark as Resolved`}\n onClick={handleDoubtResolve}\n disabled={!canResolveDoubt}\n size=\"xsmall\"\n iconPosition=\"left\"\n Icon={response?.skipped ? Skip2Icon : MistakeIcon}\n />\n </FlexView>\n )}\n <Separator width={5} />\n {!!attempts && userType === 'TEACHER' && (\n <FlexView\n $flexDirection=\"row\"\n $background=\"WHITE\"\n $flexGapX={0.25}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadiusX={0.5}\n $marginBottom={18}\n $gutterX={0.5}\n >\n <Text $renderAs=\"body1\">Attempts:</Text>\n <Text $renderAs=\"body1Medium\">{attempts}</Text>\n </FlexView>\n )}\n <HeaderTag\n itemType={itemType}\n instructorStimulus={instructorStimulus}\n paperColor={paperColor}\n />\n </FlexView>\n </Styled.QuestionHeaderWrapper>\n );\n }\n\n return (\n <Styled.ItemHeader\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n $background=\"YELLOW_1\"\n $marginBottom={18}\n >\n <Styled.ItemHeaderTag>\n <Text $renderAs=\"eyebrow1\">Question {item_display_number}</Text>\n </Styled.ItemHeaderTag>\n {canMarkForReview && (\n <Button\n renderAs=\"secondary\"\n label={`Mark${markedForReview ? 'ed' : ''} for review`}\n onClick={markedForReview ? handleUnmarkForReview : handleMarkForReview}\n size=\"xsmall\"\n iconPosition=\"left\"\n Icon={markedForReview ? BookmarkIcon : BookmarkStrokeIcon}\n />\n )}\n </Styled.ItemHeader>\n );\n },\n);\n\nexport default QuestionHeader;\n"],"names":["QuestionHeader","memo","paperColor","actionbarHeight","behavior","onMarkForReview","question","response","userType","onResolveDoubt","canResolveDoubt","layout","worksheetCompleted","topOffset","questionsScrollable","navigationBar","teacherValidated","markedForReview","attempts","canMarkForReview","teacherValidationEnabled","item_display_number","question_number","totalQuestions","responseId","itemType","instructorStimulus","questionNumber","handleMarkForReview","useCallback","handleUnmarkForReview","canShowResolveButton","useMemo","score","maxScore","handleDoubtResolve","jsx","Styled.QuestionHeaderWrapper","TOP_NAVIGATION_HEIGHT","jsxs","FlexView","getQuestionBorderColor","Text","Styled.QuestionValidationAnimationWrapper","ValidatedAnimation","Button","Skip2Icon","MistakeIcon","Separator","HeaderTag","Styled.ItemHeader","Styled.ItemHeaderTag","BookmarkIcon","BookmarkStrokeIcon"],"mappings":"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"}
|
package/dist/features/worksheet/worksheet/worksheet-question/header/validated-animation.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"validated-animation.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-question/header/validated-animation.tsx"],"sourcesContent":["import type { FC } from 'react';\n\nimport { memo, useState } from 'react';\n\nimport Check2Icon from '../../../../../assets/line-icons/icons/check2';\nimport { LOTTIE } from '../../../../../assets/lottie/lottie';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport LottieAnimation from '../../../../ui/lottie-animation/lottie-animation';\n\ninterface IValidatedAnimationProps {\n validated: boolean;\n}\n\nconst animationSettings = { name: 'validated', loop: false };\n\nconst ValidatedAnimation: FC<IValidatedAnimationProps> = memo(({ validated }) => {\n const [validatedOnMount] = useState(validated);\n\n if (validatedOnMount) {\n return (\n <FlexView $width={40} $height={40} $alignItems=\"center\" $justifyContent=\"center\">\n <FlexView\n $borderRadius={10}\n $background=\"REAL_BLACK\"\n $width={20}\n $height={20}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n <Check2Icon color=\"WHITE\" width={16} height={16} />\n </FlexView>\n </FlexView>\n );\n }\n\n if (!validatedOnMount && validated) {\n return <LottieAnimation src={LOTTIE.TEACHER_VALIDATION} settings={animationSettings} />;\n }\n\n return null;\n});\n\nexport default ValidatedAnimation;\n"],"names":["animationSettings","ValidatedAnimation","memo","validated","validatedOnMount","useState","jsx","FlexView","Check2Icon","LottieAnimation","LOTTIE"],"mappings":";;;;;;AAaA,MAAMA,IAAoB,EAAE,MAAM,aAAa,MAAM,GAAM,GAErDC,IAAmDC,EAAK,CAAC,EAAE,WAAAC,QAAgB;AAC/E,QAAM,CAACC,CAAgB,IAAIC,EAASF,CAAS;AAE7C,SAAIC,IAEA,gBAAAE,EAACC,KAAS,QAAQ,IAAI,SAAS,IAAI,aAAY,UAAS,iBAAgB,UACtE,UAAA,gBAAAD;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,eAAe;AAAA,MACf,aAAY;AAAA,MACZ,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAEhB,4BAACC,GAAW,EAAA,OAAM,SAAQ,OAAO,IAAI,QAAQ,
|
1
|
+
{"version":3,"file":"validated-animation.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-question/header/validated-animation.tsx"],"sourcesContent":["import type { FC } from 'react';\n\nimport { memo, useState } from 'react';\n\nimport Check2Icon from '../../../../../assets/line-icons/icons/check2';\nimport { LOTTIE } from '../../../../../assets/lottie/lottie';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport LottieAnimation from '../../../../ui/lottie-animation/lottie-animation';\n\ninterface IValidatedAnimationProps {\n validated: boolean;\n}\n\nconst animationSettings = { name: 'validated', loop: false };\n\nconst ValidatedAnimation: FC<IValidatedAnimationProps> = memo(({ validated }) => {\n const [validatedOnMount] = useState(validated);\n\n if (validatedOnMount) {\n return (\n <FlexView $width={40} $height={40} $alignItems=\"center\" $justifyContent=\"center\">\n <FlexView\n $borderRadius={10}\n $background=\"REAL_BLACK\"\n $width={20}\n $height={20}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n <Check2Icon color=\"WHITE\" width={16} height={16} />\n </FlexView>\n </FlexView>\n );\n }\n\n if (!validatedOnMount && validated) {\n return <LottieAnimation src={LOTTIE.TEACHER_VALIDATION} settings={animationSettings} />;\n }\n\n return null;\n});\n\nexport default ValidatedAnimation;\n"],"names":["animationSettings","ValidatedAnimation","memo","validated","validatedOnMount","useState","jsx","FlexView","Check2Icon","LottieAnimation","LOTTIE"],"mappings":";;;;;;AAaA,MAAMA,IAAoB,EAAE,MAAM,aAAa,MAAM,GAAM,GAErDC,IAAmDC,EAAK,CAAC,EAAE,WAAAC,QAAgB;AAC/E,QAAM,CAACC,CAAgB,IAAIC,EAASF,CAAS;AAE7C,SAAIC,IAEA,gBAAAE,EAACC,KAAS,QAAQ,IAAI,SAAS,IAAI,aAAY,UAAS,iBAAgB,UACtE,UAAA,gBAAAD;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,eAAe;AAAA,MACf,aAAY;AAAA,MACZ,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAEhB,4BAACC,GAAW,EAAA,OAAM,SAAQ,OAAO,IAAI,QAAQ,IAAI;AAAA,IAAA;AAAA,EAErD,EAAA,CAAA,IAIA,CAACJ,KAAoBD,sBACfM,GAAgB,EAAA,KAAKC,EAAO,oBAAoB,UAAUV,EAAmB,CAAA,IAGhF;AACT,CAAC;"}
|