@cuemath/leap 2.9.9-as6 → 2.9.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/illustrations/illustrations.js +0 -9
- package/dist/assets/illustrations/illustrations.js.map +1 -1
- package/dist/assets/line-icons/icons/bin2.js +8 -7
- package/dist/assets/line-icons/icons/bin2.js.map +1 -1
- package/dist/assets/line-icons/icons/chevron-left.js.map +1 -1
- package/dist/assets/lottie/lottie.js +1 -9
- package/dist/assets/lottie/lottie.js.map +1 -1
- package/dist/constants/api.js +2 -3
- package/dist/constants/api.js.map +1 -1
- package/dist/features/analytics-events/platform-events-student.js +3 -3
- package/dist/features/analytics-events/platform-events-student.js.map +1 -1
- package/dist/features/analytics-events/whitelist-events.js +11 -13
- package/dist/features/analytics-events/whitelist-events.js.map +1 -1
- package/dist/features/chapters/chapters-list/chapter-item/chapter-item-styled.js +33 -99
- 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 +49 -92
- package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js.map +1 -1
- package/dist/features/chapters/chapters-list/chapters-list-styled.js +5 -5
- package/dist/features/chapters/chapters-list/chapters-list-styled.js.map +1 -1
- package/dist/features/chapters/chapters-list/chapters-list.js +70 -64
- package/dist/features/chapters/chapters-list/chapters-list.js.map +1 -1
- package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js +104 -74
- package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js.map +1 -1
- package/dist/features/communication/pub-sub/constants.js +6 -12
- package/dist/features/communication/pub-sub/constants.js.map +1 -1
- package/dist/features/journey/comps/coachmark/coachmark-styled.js +8 -26
- package/dist/features/journey/comps/coachmark/coachmark-styled.js.map +1 -1
- package/dist/features/journey/comps/coachmark/coachmark.js +24 -24
- package/dist/features/journey/comps/coachmark/coachmark.js.map +1 -1
- package/dist/features/journey/journey-id/journey-id-student.js +1 -1
- package/dist/features/journey/journey-id/journey-id-student.js.map +1 -1
- package/dist/features/journey/use-journey/journey-context-provider.js +28 -36
- package/dist/features/journey/use-journey/journey-context-provider.js.map +1 -1
- package/dist/features/journey/use-journey/journey-styled.js +5 -10
- package/dist/features/journey/use-journey/journey-styled.js.map +1 -1
- package/dist/features/milestone/create/api/goal-submit.js +1 -1
- package/dist/features/milestone/create/api/goal-submit.js.map +1 -1
- package/dist/features/milestone/create/comps/chapter-item/chapter-item.js +49 -42
- package/dist/features/milestone/create/comps/chapter-item/chapter-item.js.map +1 -1
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js +4 -12
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js.map +1 -1
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js +105 -128
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js.map +1 -1
- package/dist/features/milestone/create/comps/milestone-progress-v2/milestone-progress-v2.js +92 -0
- package/dist/features/milestone/create/comps/milestone-progress-v2/milestone-progress-v2.js.map +1 -0
- package/dist/features/milestone/create/comps/milestone-progress-v2/styled.js +25 -0
- package/dist/features/milestone/create/comps/milestone-progress-v2/styled.js.map +1 -0
- package/dist/features/milestone/create/comps/sheets-list/sheets-list-styled.js +20 -14
- 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 +50 -26
- package/dist/features/milestone/create/comps/sheets-list/sheets-list.js.map +1 -1
- package/dist/features/milestone/create/milestone-create.js +43 -49
- package/dist/features/milestone/create/milestone-create.js.map +1 -1
- package/dist/features/milestone/create/utils/index.js +38 -33
- package/dist/features/milestone/create/utils/index.js.map +1 -1
- package/dist/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.js +1 -1
- package/dist/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.js.map +1 -1
- package/dist/features/milestone/edit/comps/edit-milestone-modal/api/patch-goal-plan.js +1 -1
- package/dist/features/milestone/edit/comps/edit-milestone-modal/api/patch-goal-plan.js.map +1 -1
- package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js +53 -51
- package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js.map +1 -1
- package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js +40 -42
- package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +1 -1
- package/dist/features/milestone/edit/goal-edit-container.js +62 -64
- package/dist/features/milestone/edit/goal-edit-container.js.map +1 -1
- package/dist/features/milestone/edit/goal-edit-helpers.js +53 -50
- package/dist/features/milestone/edit/goal-edit-helpers.js.map +1 -1
- package/dist/features/milestone/edit/milestone-edit-container.js +52 -54
- package/dist/features/milestone/edit/milestone-edit-container.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/api/get-milestone-resources.js +1 -1
- package/dist/features/milestone/milestone-list-container/api/get-milestone-resources.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/api/get-milestones.js +17 -9
- package/dist/features/milestone/milestone-list-container/api/get-milestones.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/api/get-tests-list.js +1 -1
- package/dist/features/milestone/milestone-list-container/api/get-tests-list.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +105 -138
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element-styled.js +13 -0
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element-styled.js.map +1 -0
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element.js +38 -0
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element.js.map +1 -0
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js +123 -107
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js +176 -157
- 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 +10 -24
- 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 +86 -80
- 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 +22 -10
- 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 +53 -0
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-status.js.map +1 -0
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-styled.js +37 -70
- 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 +176 -114
- 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 +25 -0
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-info.js.map +1 -0
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-rank.js +16 -29
- 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 +25 -17
- 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 +35 -23
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js +113 -110
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +8 -8
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-list/resources-list-styled.js +1 -1
- package/dist/features/milestone/milestone-resources/resources-list/resources-list-styled.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-list/resources-list.js +113 -116
- 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 +5 -5
- package/dist/features/milestone/milestone-tests/tests-creation/api/test-sheet-assign.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-item/chapter-item.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js +50 -46
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js +71 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-styled.js +31 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-styled.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js +38 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item.js +79 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list-styled.js +18 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list-styled.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list.js +51 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-list/tests-list-styled.js +11 -0
- package/dist/features/milestone/milestone-tests/tests-list/tests-list-styled.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-list/tests-list.js +135 -0
- package/dist/features/milestone/milestone-tests/tests-list/tests-list.js.map +1 -0
- package/dist/features/sheets/resources-list/resource-item/styled.js +1 -1
- package/dist/features/sheets/resources-list/resource-item/styled.js.map +1 -1
- package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions-constant.js +3 -4
- package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions-constant.js.map +1 -1
- package/dist/features/trial-session/comps/learning-plan/index.js.map +1 -1
- package/dist/features/ui/arrow-tooltip/arrow-tooltip.js +29 -30
- package/dist/features/ui/arrow-tooltip/arrow-tooltip.js.map +1 -1
- package/dist/features/ui/constants/z-index.js +1 -1
- package/dist/features/ui/constants/z-index.js.map +1 -1
- package/dist/features/ui/context-menu/context-menu-styled.js +14 -28
- package/dist/features/ui/context-menu/context-menu-styled.js.map +1 -1
- package/dist/features/ui/context-menu/context-menu.js +15 -30
- package/dist/features/ui/context-menu/context-menu.js.map +1 -1
- package/dist/features/ui/lottie-animation/lottie-animation.js +13 -19
- package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -1
- package/dist/features/ui/theme/button.js +107 -22
- package/dist/features/ui/theme/button.js.map +1 -1
- package/dist/features/worksheet/worksheet/hooks/use-create-imperative-handle.js +96 -78
- package/dist/features/worksheet/worksheet/hooks/use-create-imperative-handle.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js +79 -47
- package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js +150 -147
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet.js +325 -300
- package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
- package/dist/index.d.ts +46 -351
- package/dist/index.js +471 -503
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/assets/line-icons/icons/alarm.js +0 -41
- package/dist/assets/line-icons/icons/alarm.js.map +0 -1
- package/dist/assets/line-icons/icons/dart.js +0 -23
- package/dist/assets/line-icons/icons/dart.js.map +0 -1
- package/dist/assets/line-icons/icons/exclamation.js +0 -26
- package/dist/assets/line-icons/icons/exclamation.js.map +0 -1
- package/dist/assets/line-icons/icons/home2.js +0 -25
- package/dist/assets/line-icons/icons/home2.js.map +0 -1
- package/dist/assets/line-icons/icons/important.js +0 -23
- package/dist/assets/line-icons/icons/important.js.map +0 -1
- package/dist/assets/line-icons/icons/puzzle.js +0 -25
- package/dist/assets/line-icons/icons/puzzle.js.map +0 -1
- package/dist/assets/line-icons/icons/recap.js +0 -32
- package/dist/assets/line-icons/icons/recap.js.map +0 -1
- package/dist/assets/line-icons/icons/skip-colored.js +0 -43
- package/dist/assets/line-icons/icons/skip-colored.js.map +0 -1
- package/dist/assets/line-icons/icons/status.js +0 -41
- package/dist/assets/line-icons/icons/status.js.map +0 -1
- package/dist/assets/line-icons/icons/testtube.js +0 -33
- package/dist/assets/line-icons/icons/testtube.js.map +0 -1
- package/dist/features/chapters-v2/api/chapter.js +0 -10
- package/dist/features/chapters-v2/api/chapter.js.map +0 -1
- package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js +0 -112
- package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js.map +0 -1
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections-styled.js +0 -35
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections-styled.js.map +0 -1
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js +0 -83
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js.map +0 -1
- package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner-styled.js +0 -90
- package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner-styled.js.map +0 -1
- package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js +0 -98
- package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js.map +0 -1
- package/dist/features/chapters-v2/chapter-details/chapter-details-styled.js +0 -51
- package/dist/features/chapters-v2/chapter-details/chapter-details-styled.js.map +0 -1
- package/dist/features/chapters-v2/chapter-details/chapter-details.js +0 -129
- package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +0 -1
- package/dist/features/chapters-v2/comps/node-card/border-path-animation.js +0 -13
- package/dist/features/chapters-v2/comps/node-card/border-path-animation.js.map +0 -1
- package/dist/features/chapters-v2/comps/node-card/node-card-styled.js +0 -159
- package/dist/features/chapters-v2/comps/node-card/node-card-styled.js.map +0 -1
- package/dist/features/chapters-v2/comps/node-card/node-card-tags.js +0 -16
- package/dist/features/chapters-v2/comps/node-card/node-card-tags.js.map +0 -1
- package/dist/features/chapters-v2/comps/node-card/node-card.js +0 -12
- package/dist/features/chapters-v2/comps/node-card/node-card.js.map +0 -1
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-option.js +0 -30
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-option.js.map +0 -1
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options-styled.js +0 -32
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options-styled.js.map +0 -1
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js +0 -9
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js.map +0 -1
- package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js +0 -189
- package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js.map +0 -1
- package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js +0 -194
- package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js.map +0 -1
- package/dist/features/chapters-v2/comps/tag/tag-styled.js +0 -13
- package/dist/features/chapters-v2/comps/tag/tag-styled.js.map +0 -1
- package/dist/features/chapters-v2/comps/tag/tag.js +0 -28
- package/dist/features/chapters-v2/comps/tag/tag.js.map +0 -1
- package/dist/features/chapters-v2/constants/block-constants.js +0 -20
- package/dist/features/chapters-v2/constants/block-constants.js.map +0 -1
- package/dist/features/chapters-v2/constants/node-constants.js +0 -14
- package/dist/features/chapters-v2/constants/node-constants.js.map +0 -1
- package/dist/features/chapters-v2/utils/index.js +0 -38
- package/dist/features/chapters-v2/utils/index.js.map +0 -1
- package/dist/features/chapters-v2/utils/node-card-utils.js +0 -177
- package/dist/features/chapters-v2/utils/node-card-utils.js.map +0 -1
- package/dist/features/homework/card-menu-option.js +0 -28
- package/dist/features/homework/card-menu-option.js.map +0 -1
- package/dist/features/homework/card-menu-options.js +0 -22
- package/dist/features/homework/card-menu-options.js.map +0 -1
- package/dist/features/homework/card-title.js +0 -16
- package/dist/features/homework/card-title.js.map +0 -1
- package/dist/features/homework/homework-analytics-events.js +0 -10
- package/dist/features/homework/homework-analytics-events.js.map +0 -1
- package/dist/features/homework/homework-card-view.js +0 -143
- package/dist/features/homework/homework-card-view.js.map +0 -1
- package/dist/features/homework/homework-card.js +0 -245
- package/dist/features/homework/homework-card.js.map +0 -1
- package/dist/features/homework/hw-card-list/api/get-homeworks.js +0 -10
- package/dist/features/homework/hw-card-list/api/get-homeworks.js.map +0 -1
- package/dist/features/homework/hw-card-list/hw-card-list-styled.js +0 -63
- package/dist/features/homework/hw-card-list/hw-card-list-styled.js.map +0 -1
- package/dist/features/homework/hw-card-list/hw-card-list-view.js +0 -157
- package/dist/features/homework/hw-card-list/hw-card-list-view.js.map +0 -1
- package/dist/features/homework/hw-card-list/hw-card-list.js +0 -67
- package/dist/features/homework/hw-card-list/hw-card-list.js.map +0 -1
- package/dist/features/homework/node-progress.js +0 -29
- package/dist/features/homework/node-progress.js.map +0 -1
- package/dist/features/homework/styles.js +0 -130
- package/dist/features/homework/styles.js.map +0 -1
- package/dist/features/homework/utils.js +0 -48
- package/dist/features/homework/utils.js.map +0 -1
- package/dist/features/journey/hooks/use-chapter-journey.js +0 -194
- package/dist/features/journey/hooks/use-chapter-journey.js.map +0 -1
- package/dist/features/journey/hooks/use-home-page-journey.js +0 -279
- package/dist/features/journey/hooks/use-home-page-journey.js.map +0 -1
- package/dist/features/journey/journey-id/journey-id-teacher.js +0 -5
- package/dist/features/journey/journey-id/journey-id-teacher.js.map +0 -1
- package/dist/features/journey/mocks/chapter-page-journey-mock-data.js +0 -587
- package/dist/features/journey/mocks/chapter-page-journey-mock-data.js.map +0 -1
- package/dist/features/journey/mocks/home-page-homwworks-mock.js +0 -268
- package/dist/features/journey/mocks/home-page-homwworks-mock.js.map +0 -1
- package/dist/features/journey/mocks/recent-chapters-mock.js +0 -531
- package/dist/features/journey/mocks/recent-chapters-mock.js.map +0 -1
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js +0 -165
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js.map +0 -1
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view-styled.js +0 -25
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view-styled.js.map +0 -1
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js +0 -87
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js.map +0 -1
- package/dist/features/recent-chapters/api/get-recent-chapters.js +0 -9
- package/dist/features/recent-chapters/api/get-recent-chapters.js.map +0 -1
- package/dist/features/recent-chapters/recent-chapters-styled.js +0 -16
- package/dist/features/recent-chapters/recent-chapters-styled.js.map +0 -1
- package/dist/features/recent-chapters/recent-chapters.js +0 -39
- package/dist/features/recent-chapters/recent-chapters.js.map +0 -1
- package/dist/features/sheet-v2/resource-list/resource-list.js +0 -45
- package/dist/features/sheet-v2/resource-list/resource-list.js.map +0 -1
- package/dist/node_modules/date-fns/differenceInDays.js +0 -17
- package/dist/node_modules/date-fns/differenceInDays.js.map +0 -1
- package/dist/static/chapter-header-bg-2.c8d96894.svg +0 -1
- package/dist/static/competitive-arena.b9c40801.json +0 -1
- package/dist/static/learn.71b13323.json +0 -1
- package/dist/static/node-custom-test-bg.d3b757be.svg +0 -1
- package/dist/static/node-learn-bg.b61f815c.svg +0 -1
- package/dist/static/node-practice-bg.16cbaf2a.svg +0 -1
- package/dist/static/node-project-bg.e6a33e28.svg +0 -1
- package/dist/static/node-puzzle-bg.3422135c.svg +0 -1
- package/dist/static/node-recap-bg.546154e4.svg +0 -1
- package/dist/static/node-test-prep-bg.42c0b9c4.svg +0 -1
- package/dist/static/node-video-bg.3df3f73a.svg +0 -1
- package/dist/static/practice.158dd488.json +0 -1
- package/dist/static/project.eb665827.json +0 -1
- package/dist/static/puzzle.b298c7e4.json +0 -1
- package/dist/static/recap.0dd2c1e2.json +0 -1
- package/dist/static/test.803d6036.json +0 -1
- package/dist/static/video.b41451e2.json +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"button.js","sources":["../../../../src/features/ui/theme/button.ts"],"sourcesContent":["import type {\n IButtonSizeConfig,\n TButtonSizes,\n IButtonVariantConfig,\n TButtonVariants,\n} from '../types';\n\ninterface IGetButtonConfig {\n (gutter: number): {\n sizes: Record<TButtonSizes, IButtonSizeConfig>;\n variants: Record<TButtonVariants, IButtonVariantConfig>;\n };\n}\n\nconst getButtonConfig: IGetButtonConfig = (gutter: number) => {\n const sizes: Record<TButtonSizes, IButtonSizeConfig> = {\n xsmall: {\n height: gutter * 2,\n paddingHorizontal: gutter * (1 + 0.375),\n textVariant: 'ub3-bold',\n borderWidth: 1,\n iconSize: gutter,\n iconPadding: gutter * 0.25,\n loaderSize: gutter * 1.25,\n },\n small: {\n height: gutter * 2.5,\n paddingHorizontal: gutter * (1 + 0.625),\n textVariant: 'ub2-bold',\n borderWidth: 1,\n iconSize: gutter * 1.25,\n iconPadding: gutter * 0.375,\n loaderSize: gutter * 1.5,\n },\n regular: {\n height: gutter * 3,\n paddingHorizontal: gutter * (1 + 0.875),\n textVariant: 'ub1-bold',\n borderWidth: 1,\n iconSize: gutter * 1.5,\n iconPadding: gutter * 0.5,\n loaderSize: gutter * 1.75,\n },\n medium: {\n height: gutter * 3.5,\n paddingHorizontal: gutter * (1 + 1.125),\n textVariant: 'ub1-bold',\n borderWidth: 1.5,\n iconSize: gutter * 1.5,\n iconPadding: gutter * 0.5,\n loaderSize: gutter * 2,\n },\n large: {\n height: gutter * 4,\n paddingHorizontal: gutter * (1 + 1.375),\n textVariant: 'ub1-bold',\n borderWidth: 2,\n iconSize: gutter * 1.5,\n iconPadding: gutter * 0.5,\n loaderSize: gutter * 2.25,\n },\n };\n\n const variants: Record<TButtonVariants, IButtonVariantConfig> = {\n
|
1
|
+
{"version":3,"file":"button.js","sources":["../../../../src/features/ui/theme/button.ts"],"sourcesContent":["import type {\n IButtonSizeConfig,\n TButtonSizes,\n IButtonVariantConfig,\n TButtonVariants,\n} from '../types';\n\ninterface IGetButtonConfig {\n (gutter: number): {\n sizes: Record<TButtonSizes, IButtonSizeConfig>;\n variants: Record<TButtonVariants, IButtonVariantConfig>;\n };\n}\n\nconst getButtonConfig: IGetButtonConfig = (gutter: number) => {\n const sizes: Record<TButtonSizes, IButtonSizeConfig> = {\n xsmall: {\n height: gutter * 2,\n paddingHorizontal: gutter * (1 + 0.375),\n textVariant: 'ub3-bold',\n borderWidth: 1,\n iconSize: gutter,\n iconPadding: gutter * 0.25,\n loaderSize: gutter * 1.25,\n },\n small: {\n height: gutter * 2.5,\n paddingHorizontal: gutter * (1 + 0.625),\n textVariant: 'ub2-bold',\n borderWidth: 1,\n iconSize: gutter * 1.25,\n iconPadding: gutter * 0.375,\n loaderSize: gutter * 1.5,\n },\n regular: {\n height: gutter * 3,\n paddingHorizontal: gutter * (1 + 0.875),\n textVariant: 'ub1-bold',\n borderWidth: 1,\n iconSize: gutter * 1.5,\n iconPadding: gutter * 0.5,\n loaderSize: gutter * 1.75,\n },\n medium: {\n height: gutter * 3.5,\n paddingHorizontal: gutter * (1 + 1.125),\n textVariant: 'ub1-bold',\n borderWidth: 1.5,\n iconSize: gutter * 1.5,\n iconPadding: gutter * 0.5,\n loaderSize: gutter * 2,\n },\n large: {\n height: gutter * 4,\n paddingHorizontal: gutter * (1 + 1.375),\n textVariant: 'ub1-bold',\n borderWidth: 2,\n iconSize: gutter * 1.5,\n iconPadding: gutter * 0.5,\n loaderSize: gutter * 2.25,\n },\n };\n\n const variants: Record<TButtonVariants, IButtonVariantConfig> = {\n primary: {\n backgroundColorName: {\n inactive: 'YELLOW_4',\n active: 'BLACK',\n disabled: 'GREY_3',\n },\n colorName: {\n inactive: 'BLACK',\n active: 'WHITE',\n disabled: 'BLACK',\n },\n borderColorName: {\n inactive: 'BLACK',\n active: 'BLACK',\n disabled: 'GREY_3',\n },\n },\n secondary: {\n backgroundColorName: {\n inactive: 'WHITE',\n active: 'BLACK',\n disabled: 'GREY_3',\n },\n colorName: {\n inactive: 'BLACK',\n active: 'WHITE',\n disabled: 'BLACK',\n },\n borderColorName: {\n inactive: 'BLACK',\n active: 'BLACK',\n disabled: 'GREY_3',\n },\n },\n tertiary: {\n backgroundColorName: {\n inactive: 'WHITE',\n active: 'RED',\n disabled: 'GREY_3',\n },\n colorName: {\n inactive: 'RED',\n active: 'WHITE',\n disabled: 'BLACK',\n },\n borderColorName: {\n inactive: 'RED',\n active: 'RED',\n disabled: 'GREY_3',\n },\n },\n // 'yellow': {\n // backgroundColorName: {\n // inactive: 'YELLOW_4',\n // active: 'BLACK_4',\n // disabled: 'BLACK_T_35',\n // },\n // borderColorName: {\n // inactive: 'BLACK_4',\n // active: 'BLACK_4',\n // disabled: 'BLACK_T_35',\n // },\n // colorName: {\n // inactive: 'BLACK_4',\n // active: 'WHITE_4',\n // disabled: 'BLACK_T_35',\n // },\n // },\n // 'yellow-dark': {\n // backgroundColorName: {\n // inactive: 'YELLOW_4',\n // active: 'WHITE_4',\n // disabled: 'WHITE_T_40',\n // },\n // borderColorName: {\n // inactive: 'BLACK_4',\n // active: 'BLACK_4',\n // disabled: 'WHITE_T_40',\n // },\n // colorName: {\n // inactive: 'BLACK_4',\n // active: 'BLACK_4',\n // disabled: 'WHITE_T_40',\n // },\n // },\n // 'white': {\n // backgroundColorName: {\n // inactive: 'WHITE_1',\n // active: 'BLACK_T_35',\n // disabled: 'BLACK_T_35',\n // },\n // borderColorName: {\n // inactive: 'BLACK_4',\n // active: 'BLACK_4',\n // disabled: 'BLACK_T_35',\n // },\n // colorName: {\n // inactive: 'BLACK_4',\n // active: 'BLACK_4',\n // disabled: 'BLACK_T_35',\n // },\n // },\n // 'white-dark': {\n // backgroundColorName: {\n // inactive: 'WHITE_4',\n // active: 'WHITE_T_70',\n // disabled: 'WHITE_T_40',\n // },\n // borderColorName: {\n // inactive: 'BLACK_4',\n // active: 'BLACK_4',\n // disabled: 'WHITE_T_40',\n // },\n // colorName: {\n // inactive: 'BLACK_4',\n // active: 'BLACK_4',\n // disabled: 'WHITE_T_40',\n // },\n // },\n // 'black': {\n // backgroundColorName: {\n // inactive: 'BLACK_4',\n // active: 'BLACK_T_60',\n // disabled: 'BLACK_T_35',\n // },\n // borderColorName: {\n // inactive: 'BLACK_4',\n // active: 'BLACK_4',\n // disabled: 'BLACK_T_35',\n // },\n // colorName: {\n // inactive: 'WHITE_4',\n // active: 'WHITE_4',\n // disabled: 'BLACK_T_35',\n // },\n // },\n // 'black-dark': {\n // backgroundColorName: {\n // inactive: 'BLACK_4',\n // active: 'WHITE_T_40',\n // disabled: 'WHITE_T_40',\n // },\n // borderColorName: {\n // inactive: 'WHITE_4',\n // active: 'WHITE_4',\n // disabled: 'WHITE_T_40',\n // },\n // colorName: {\n // inactive: 'WHITE_4',\n // active: 'WHITE_4',\n // disabled: 'WHITE_T_40',\n // },\n // },\n };\n\n return { sizes, variants };\n};\n\nexport default getButtonConfig;\n"],"names":["getButtonConfig","gutter"],"mappings":"AAcM,MAAAA,IAAoC,CAACC,OA6MlC,EAAE,OA5M8C;AAAA,EACrD,QAAQ;AAAA,IACN,QAAQA,IAAS;AAAA,IACjB,mBAAmBA,IAAU;AAAA,IAC7B,aAAa;AAAA,IACb,aAAa;AAAA,IACb,UAAUA;AAAA,IACV,aAAaA,IAAS;AAAA,IACtB,YAAYA,IAAS;AAAA,EACvB;AAAA,EACA,OAAO;AAAA,IACL,QAAQA,IAAS;AAAA,IACjB,mBAAmBA,IAAU;AAAA,IAC7B,aAAa;AAAA,IACb,aAAa;AAAA,IACb,UAAUA,IAAS;AAAA,IACnB,aAAaA,IAAS;AAAA,IACtB,YAAYA,IAAS;AAAA,EACvB;AAAA,EACA,SAAS;AAAA,IACP,QAAQA,IAAS;AAAA,IACjB,mBAAmBA,IAAU;AAAA,IAC7B,aAAa;AAAA,IACb,aAAa;AAAA,IACb,UAAUA,IAAS;AAAA,IACnB,aAAaA,IAAS;AAAA,IACtB,YAAYA,IAAS;AAAA,EACvB;AAAA,EACA,QAAQ;AAAA,IACN,QAAQA,IAAS;AAAA,IACjB,mBAAmBA,IAAU;AAAA,IAC7B,aAAa;AAAA,IACb,aAAa;AAAA,IACb,UAAUA,IAAS;AAAA,IACnB,aAAaA,IAAS;AAAA,IACtB,YAAYA,IAAS;AAAA,EACvB;AAAA,EACA,OAAO;AAAA,IACL,QAAQA,IAAS;AAAA,IACjB,mBAAmBA,IAAU;AAAA,IAC7B,aAAa;AAAA,IACb,aAAa;AAAA,IACb,UAAUA,IAAS;AAAA,IACnB,aAAaA,IAAS;AAAA,IACtB,YAAYA,IAAS;AAAA,EACvB;AAAA,GA+Jc,UA5JgD;AAAA,EAC9D,SAAS;AAAA,IACP,qBAAqB;AAAA,MACnB,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,IACA,WAAW;AAAA,MACT,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,IACA,iBAAiB;AAAA,MACf,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,WAAW;AAAA,IACT,qBAAqB;AAAA,MACnB,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,IACA,WAAW;AAAA,MACT,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,IACA,iBAAiB;AAAA,MACf,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,qBAAqB;AAAA,MACnB,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,IACA,WAAW;AAAA,MACT,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,IACA,iBAAiB;AAAA,MACf,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
|
@@ -1,63 +1,63 @@
|
|
1
|
-
import { useCallback as
|
2
|
-
import
|
3
|
-
import { TEACHER_VALIDATION_AUDIO_LIST as
|
4
|
-
import { getQuestionMetadata as
|
5
|
-
import { QUESTIONS_RATING as
|
6
|
-
const
|
7
|
-
behavior:
|
8
|
-
questions:
|
9
|
-
setResponses:
|
10
|
-
onResponseChange:
|
11
|
-
onBulkResponsesChange:
|
12
|
-
getTimeSpentOnQuestion:
|
1
|
+
import { useCallback as D, useImperativeHandle as K } from "react";
|
2
|
+
import X from "../../../hooks/use-audio-player.js";
|
3
|
+
import { TEACHER_VALIDATION_AUDIO_LIST as Y } from "../constants.js";
|
4
|
+
import { getQuestionMetadata as Q, isConceptIntroWidget as Z } from "../worksheet-helpers.js";
|
5
|
+
import { QUESTIONS_RATING as v, QUESTION_TAGS as x } from "../worksheet-types.js";
|
6
|
+
const h = (F, {
|
7
|
+
behavior: J,
|
8
|
+
questions: r,
|
9
|
+
setResponses: S,
|
10
|
+
onResponseChange: L,
|
11
|
+
onBulkResponsesChange: d,
|
12
|
+
getTimeSpentOnQuestion: W
|
13
13
|
}) => {
|
14
|
-
const { navigationMode:
|
15
|
-
(_, a,
|
16
|
-
|
17
|
-
const c =
|
18
|
-
|
19
|
-
var
|
20
|
-
const m =
|
21
|
-
...
|
14
|
+
const { navigationMode: w } = J, M = X(Y), H = D(
|
15
|
+
(_, a, T) => {
|
16
|
+
M("VALIDATE");
|
17
|
+
const c = W(_);
|
18
|
+
S((t) => {
|
19
|
+
var $, j;
|
20
|
+
const m = r.findIndex((E) => E.response_id === _), i = r[m], f = {
|
21
|
+
...Q(r, _),
|
22
22
|
...t[_],
|
23
23
|
validatedByTeacher: !0,
|
24
|
-
rating: a ?
|
24
|
+
rating: a ? v[a] : void 0,
|
25
25
|
timeSpent: c
|
26
26
|
};
|
27
|
-
if (
|
28
|
-
if ((
|
27
|
+
if (w === "ADAPTIVE") {
|
28
|
+
if (($ = t[_]) != null && $.validatedByTeacher)
|
29
29
|
return t;
|
30
|
-
const E =
|
30
|
+
const E = i.item_tags_map[x.TRIAL_TOPIC], O = i.item_tags_map[x.QUESTION_CODE], y = O && O.length < 3 ? `${O}${a}` : "Q", I = r.findIndex((A, U) => U <= m ? !1 : y !== "Q" ? A.item_tags_map[x.TRIAL_TOPIC] === E && A.item_tags_map[x.QUESTION_CODE] === y : A.item_tags_map[x.TRIAL_TOPIC] !== E), N = {
|
31
31
|
[_]: f,
|
32
|
-
...
|
33
|
-
(
|
34
|
-
...
|
32
|
+
...r.reduce(
|
33
|
+
(A, U, z) => (z <= m || I > -1 && z >= I || (A[U.response_id] = {
|
34
|
+
...Q(r, U.response_id),
|
35
35
|
...t[U.response_id],
|
36
36
|
assignStatus: "skipped"
|
37
|
-
}),
|
37
|
+
}), A),
|
38
38
|
{}
|
39
39
|
)
|
40
|
-
},
|
41
|
-
return
|
40
|
+
}, P = (j = r[I]) == null ? void 0 : j.response_id;
|
41
|
+
return P ? d == null || d({
|
42
42
|
...N,
|
43
|
-
[
|
44
|
-
...t[
|
45
|
-
...
|
43
|
+
[P]: {
|
44
|
+
...t[P],
|
45
|
+
...Q(r, P),
|
46
46
|
assignStatus: void 0
|
47
47
|
}
|
48
|
-
}) :
|
48
|
+
}) : d == null || d(N), {
|
49
49
|
...t,
|
50
50
|
...N
|
51
51
|
};
|
52
52
|
}
|
53
|
-
if (
|
54
|
-
const { item_reference: E } =
|
53
|
+
if (T) {
|
54
|
+
const { item_reference: E } = i, O = {
|
55
55
|
[_]: f,
|
56
|
-
...
|
56
|
+
...r.reduce(
|
57
57
|
(y, I) => {
|
58
58
|
var N;
|
59
|
-
return I.response_id !==
|
60
|
-
...
|
59
|
+
return I.response_id !== i.response_id && I.item_reference === E && !((N = t[I.response_id]) != null && N.validatedByTeacher) && (y[I.response_id] = {
|
60
|
+
...Q(r, I.response_id),
|
61
61
|
...t[I.response_id],
|
62
62
|
assignStatus: "skipped"
|
63
63
|
}), y;
|
@@ -65,7 +65,7 @@ const u = (z, {
|
|
65
65
|
{}
|
66
66
|
)
|
67
67
|
};
|
68
|
-
return
|
68
|
+
return d == null || d({
|
69
69
|
...t,
|
70
70
|
...O
|
71
71
|
}), {
|
@@ -73,13 +73,13 @@ const u = (z, {
|
|
73
73
|
...O
|
74
74
|
};
|
75
75
|
}
|
76
|
-
return
|
76
|
+
return w === "CURRENT" && i.item_number === 0 ? d == null || d({
|
77
77
|
...t,
|
78
78
|
[_]: f
|
79
|
-
}) :
|
79
|
+
}) : L == null || L({
|
80
80
|
responseId: _,
|
81
81
|
response: f,
|
82
|
-
question:
|
82
|
+
question: i,
|
83
83
|
isNewAttempt: !1
|
84
84
|
}), {
|
85
85
|
...t,
|
@@ -88,79 +88,97 @@ const u = (z, {
|
|
88
88
|
});
|
89
89
|
},
|
90
90
|
[
|
91
|
+
W,
|
91
92
|
w,
|
92
|
-
L,
|
93
|
-
i,
|
94
|
-
P,
|
95
|
-
H,
|
96
93
|
d,
|
97
|
-
|
94
|
+
L,
|
95
|
+
M,
|
96
|
+
r,
|
97
|
+
S
|
98
98
|
]
|
99
|
-
),
|
99
|
+
), V = D(
|
100
100
|
(_) => {
|
101
|
-
|
102
|
-
const
|
101
|
+
S((a) => {
|
102
|
+
const T = r.filter(
|
103
103
|
(t) => {
|
104
104
|
var m;
|
105
105
|
return _.startsWith("advanced-") ? (m = t.item_type) == null ? void 0 : m.startsWith("advanced-") : t.item_type === _;
|
106
106
|
}
|
107
107
|
), c = {};
|
108
|
-
return
|
108
|
+
return T.length > 0 ? (T.forEach((t) => {
|
109
109
|
c[t.response_id] = {
|
110
|
-
...
|
110
|
+
...Q(r, t.response_id),
|
111
111
|
...a[t.response_id],
|
112
112
|
assignStatus: "assigned"
|
113
113
|
};
|
114
|
-
}),
|
114
|
+
}), d == null || d(c), {
|
115
115
|
...a,
|
116
116
|
...c
|
117
117
|
}) : a;
|
118
118
|
});
|
119
119
|
},
|
120
|
-
[
|
121
|
-
),
|
120
|
+
[d, r, S]
|
121
|
+
), b = D(
|
122
122
|
(_) => {
|
123
|
-
|
124
|
-
const
|
123
|
+
S((a) => {
|
124
|
+
const T = r.filter(
|
125
125
|
(m) => {
|
126
|
-
var
|
127
|
-
return _.startsWith("advanced-") ? (
|
126
|
+
var i;
|
127
|
+
return _.startsWith("advanced-") ? (i = m.item_type) == null ? void 0 : i.startsWith("advanced-") : m.item_type === _;
|
128
128
|
}
|
129
129
|
), c = {}, t = [];
|
130
|
-
return
|
131
|
-
const f = a[
|
132
|
-
f != null && f.validatedByTeacher ? t.push(
|
133
|
-
...
|
130
|
+
return T.length > 0 ? (T.forEach((i) => {
|
131
|
+
const f = a[i.response_id];
|
132
|
+
f != null && f.validatedByTeacher ? t.push(i) : c[i.response_id] = {
|
133
|
+
...Q(r, i.response_id),
|
134
134
|
...f,
|
135
135
|
assignStatus: "skipped"
|
136
136
|
};
|
137
137
|
}), t.some(
|
138
|
-
({ instructor_stimulus:
|
139
|
-
) || t.forEach((
|
140
|
-
c[
|
141
|
-
...
|
142
|
-
...a[
|
138
|
+
({ instructor_stimulus: i }) => !(i === "SystemIntro" || Z(i))
|
139
|
+
) || t.forEach((i) => {
|
140
|
+
c[i.response_id] = {
|
141
|
+
...Q(r, i.response_id),
|
142
|
+
...a[i.response_id],
|
143
143
|
assignStatus: "skipped"
|
144
144
|
};
|
145
|
-
}),
|
145
|
+
}), d == null || d(c), {
|
146
146
|
...a,
|
147
147
|
...c
|
148
148
|
}) : a;
|
149
149
|
});
|
150
150
|
},
|
151
|
-
[
|
151
|
+
[d, r, S]
|
152
|
+
), G = D(
|
153
|
+
(_, a, T) => {
|
154
|
+
const c = a === "SIMULATION" ? "simState" : void 0;
|
155
|
+
c && S((t) => {
|
156
|
+
if (!r.find((f) => f.response_id === _)) return t;
|
157
|
+
const i = {
|
158
|
+
...Q(r, _),
|
159
|
+
...t[_],
|
160
|
+
[c]: T
|
161
|
+
};
|
162
|
+
return {
|
163
|
+
...t,
|
164
|
+
[_]: i
|
165
|
+
};
|
166
|
+
});
|
167
|
+
},
|
168
|
+
[r, S]
|
152
169
|
);
|
153
|
-
|
154
|
-
|
170
|
+
K(
|
171
|
+
F,
|
155
172
|
() => ({
|
156
|
-
validateQuestion:
|
157
|
-
assignOptionalItems:
|
158
|
-
skipOptionalItems:
|
173
|
+
validateQuestion: H,
|
174
|
+
assignOptionalItems: V,
|
175
|
+
skipOptionalItems: b,
|
176
|
+
updateMediaState: G
|
159
177
|
}),
|
160
|
-
[b, G,
|
178
|
+
[V, b, G, H]
|
161
179
|
);
|
162
180
|
};
|
163
181
|
export {
|
164
|
-
|
182
|
+
h as default
|
165
183
|
};
|
166
184
|
//# sourceMappingURL=use-create-imperative-handle.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-create-imperative-handle.js","sources":["../../../../../src/features/worksheet/worksheet/hooks/use-create-imperative-handle.ts"],"sourcesContent":["import type { Dispatch, ForwardedRef, SetStateAction } from 'react';\n\nimport { useCallback, useImperativeHandle } from 'react';\n\nimport useAudioPlayer from '../../../hooks/use-audio-player';\nimport { TEACHER_VALIDATION_AUDIO_LIST } from '../constants';\nimport { getQuestionMetadata, isConceptIntroWidget } from '../worksheet-helpers';\nimport {\n QUESTION_TAGS,\n QUESTIONS_RATING,\n type IWorksheetBehavior,\n type IWorksheetProps,\n type IWorksheetQuestion,\n type IWorksheetRef,\n type IWorksheetResponse,\n} from '../worksheet-types';\n\ninterface IUseCreateImperativeHandle {\n (\n ref: ForwardedRef<IWorksheetRef>,\n options: {\n behavior: IWorksheetBehavior;\n questions: IWorksheetQuestion[];\n setResponses: Dispatch<SetStateAction<Record<string, IWorksheetResponse>>>;\n onResponseChange: IWorksheetProps['onResponseChange'];\n onBulkResponsesChange: IWorksheetProps['onBulkResponsesChange'];\n getTimeSpentOnQuestion: (questionId: string) => number;\n },\n ): void;\n}\n\nconst useCreateImperativeHandle: IUseCreateImperativeHandle = (\n ref,\n {\n behavior,\n questions,\n setResponses,\n onResponseChange,\n onBulkResponsesChange,\n getTimeSpentOnQuestion,\n },\n) => {\n const { navigationMode } = behavior;\n const playNotifSound = useAudioPlayer(TEACHER_VALIDATION_AUDIO_LIST);\n const validateQuestion = useCallback<IWorksheetRef['validateQuestion']>(\n (questionId, rating, skipRemainingQuestions) => {\n playNotifSound('VALIDATE');\n const timeSpentOnQuestion = getTimeSpentOnQuestion(questionId);\n\n setResponses(prevResponses => {\n const questionIndex = questions.findIndex(q => q.response_id === questionId);\n const question = questions[questionIndex]!;\n\n const newResponse = {\n ...getQuestionMetadata(questions, questionId),\n ...prevResponses[questionId],\n validatedByTeacher: true,\n rating: rating ? QUESTIONS_RATING[rating] : undefined,\n timeSpent: timeSpentOnQuestion,\n };\n\n if (navigationMode === 'ADAPTIVE') {\n if (prevResponses[questionId]?.validatedByTeacher) {\n return prevResponses;\n }\n\n const topicName = question.item_tags_map[QUESTION_TAGS.TRIAL_TOPIC];\n const questionCode = question.item_tags_map[QUESTION_TAGS.QUESTION_CODE];\n const nextQuestionCode =\n questionCode && questionCode.length < 3 ? `${questionCode}${rating}` : 'Q';\n const nextQuestionIndex = questions.findIndex((q, qIndex) => {\n if (qIndex <= questionIndex) return false;\n\n if (nextQuestionCode !== 'Q') {\n return (\n q.item_tags_map[QUESTION_TAGS.TRIAL_TOPIC] === topicName &&\n q.item_tags_map[QUESTION_TAGS.QUESTION_CODE] === nextQuestionCode\n );\n }\n\n return q.item_tags_map[QUESTION_TAGS.TRIAL_TOPIC] !== topicName;\n });\n\n const newResponses = {\n [questionId]: newResponse,\n ...questions.reduce(\n (acc, q, qIndex) => {\n if (qIndex <= questionIndex) return acc;\n\n if (nextQuestionIndex > -1 && qIndex >= nextQuestionIndex) return acc;\n\n acc[q.response_id] = {\n ...getQuestionMetadata(questions, q.response_id),\n ...prevResponses[q.response_id],\n assignStatus: 'skipped',\n };\n\n return acc;\n },\n {} as Record<string, IWorksheetResponse>,\n ),\n };\n const nextQuestionResponseId = questions[nextQuestionIndex]?.response_id;\n\n if (nextQuestionResponseId) {\n onBulkResponsesChange?.({\n ...newResponses,\n [nextQuestionResponseId]: {\n ...prevResponses[nextQuestionResponseId],\n ...getQuestionMetadata(questions, nextQuestionResponseId),\n assignStatus: undefined,\n },\n });\n } else {\n onBulkResponsesChange?.(newResponses);\n }\n\n return {\n ...prevResponses,\n ...newResponses,\n };\n }\n\n if (skipRemainingQuestions) {\n const { item_reference } = question;\n const newResponses = {\n [questionId]: newResponse,\n ...questions.reduce(\n (acc, q) => {\n if (\n q.response_id !== question.response_id &&\n q.item_reference === item_reference &&\n !prevResponses[q.response_id]?.validatedByTeacher\n ) {\n acc[q.response_id] = {\n ...getQuestionMetadata(questions, q.response_id),\n ...prevResponses[q.response_id],\n assignStatus: 'skipped',\n };\n }\n\n return acc;\n },\n {} as Record<string, IWorksheetResponse>,\n ),\n };\n\n onBulkResponsesChange?.({\n ...prevResponses,\n ...newResponses,\n });\n\n return {\n ...prevResponses,\n ...newResponses,\n };\n }\n\n if (navigationMode === 'CURRENT' && question.item_number === 0) {\n onBulkResponsesChange?.({\n ...prevResponses,\n [questionId]: newResponse,\n });\n } else {\n onResponseChange?.({\n responseId: questionId,\n response: newResponse,\n question,\n isNewAttempt: false,\n });\n }\n\n return {\n ...prevResponses,\n [questionId]: newResponse,\n };\n });\n },\n [\n getTimeSpentOnQuestion,\n navigationMode,\n onBulkResponsesChange,\n onResponseChange,\n playNotifSound,\n questions,\n setResponses,\n ],\n );\n\n const assignOptionalItems = useCallback<IWorksheetRef['assignOptionalItems']>(\n itemType => {\n setResponses(prevResponses => {\n const optionalQuestions = questions.filter(q =>\n itemType.startsWith('advanced-')\n ? q.item_type?.startsWith('advanced-')\n : q.item_type === itemType,\n );\n const assignedResponses: Record<string, IWorksheetResponse> = {};\n\n if (optionalQuestions.length > 0) {\n optionalQuestions.forEach(question => {\n assignedResponses[question.response_id] = {\n ...getQuestionMetadata(questions, question.response_id),\n ...prevResponses[question.response_id],\n assignStatus: 'assigned',\n };\n });\n\n onBulkResponsesChange?.(assignedResponses);\n\n return {\n ...prevResponses,\n ...assignedResponses,\n };\n }\n\n return prevResponses;\n });\n },\n [onBulkResponsesChange, questions, setResponses],\n );\n\n const skipOptionalItems = useCallback<IWorksheetRef['skipOptionalItems']>(\n itemType => {\n setResponses(prevResponses => {\n const optionalQuestions = questions.filter(q =>\n itemType.startsWith('advanced-')\n ? q.item_type?.startsWith('advanced-')\n : q.item_type === itemType,\n );\n const skippedResponses: Record<string, IWorksheetResponse> = {};\n const unskippedQuestions: IWorksheetQuestion[] = [];\n\n if (optionalQuestions.length > 0) {\n optionalQuestions.forEach(question => {\n const prevResponse = prevResponses[question.response_id];\n\n if (!prevResponse?.validatedByTeacher) {\n skippedResponses[question.response_id] = {\n ...getQuestionMetadata(questions, question.response_id),\n ...prevResponse,\n assignStatus: 'skipped',\n };\n } else {\n unskippedQuestions.push(question);\n }\n });\n\n const nonIntroUnskippedQuestionsPresent = unskippedQuestions.some(\n ({ instructor_stimulus }) =>\n !(instructor_stimulus === 'SystemIntro' || isConceptIntroWidget(instructor_stimulus)),\n );\n\n if (!nonIntroUnskippedQuestionsPresent) {\n unskippedQuestions.forEach(question => {\n skippedResponses[question.response_id] = {\n ...getQuestionMetadata(questions, question.response_id),\n ...prevResponses[question.response_id],\n assignStatus: 'skipped',\n };\n });\n }\n\n onBulkResponsesChange?.(skippedResponses);\n\n return {\n ...prevResponses,\n ...skippedResponses,\n };\n }\n\n return prevResponses;\n });\n },\n [onBulkResponsesChange, questions, setResponses],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n validateQuestion,\n assignOptionalItems,\n skipOptionalItems,\n }),\n [assignOptionalItems, skipOptionalItems, validateQuestion],\n );\n};\n\nexport default useCreateImperativeHandle;\n"],"names":["useCreateImperativeHandle","ref","behavior","questions","setResponses","onResponseChange","onBulkResponsesChange","getTimeSpentOnQuestion","navigationMode","playNotifSound","useAudioPlayer","TEACHER_VALIDATION_AUDIO_LIST","validateQuestion","useCallback","questionId","rating","skipRemainingQuestions","timeSpentOnQuestion","prevResponses","questionIndex","q","question","newResponse","getQuestionMetadata","QUESTIONS_RATING","_a","topicName","QUESTION_TAGS","questionCode","nextQuestionCode","nextQuestionIndex","qIndex","newResponses","acc","nextQuestionResponseId","_b","item_reference","assignOptionalItems","itemType","optionalQuestions","assignedResponses","skipOptionalItems","skippedResponses","unskippedQuestions","prevResponse","instructor_stimulus","isConceptIntroWidget","useImperativeHandle"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"use-create-imperative-handle.js","sources":["../../../../../src/features/worksheet/worksheet/hooks/use-create-imperative-handle.ts"],"sourcesContent":["import type { Dispatch, ForwardedRef, SetStateAction } from 'react';\n\nimport { useCallback, useImperativeHandle } from 'react';\n\nimport useAudioPlayer from '../../../hooks/use-audio-player';\nimport { TEACHER_VALIDATION_AUDIO_LIST } from '../constants';\nimport { getQuestionMetadata, isConceptIntroWidget } from '../worksheet-helpers';\nimport {\n QUESTION_TAGS,\n QUESTIONS_RATING,\n type IWorksheetBehavior,\n type IWorksheetProps,\n type IWorksheetQuestion,\n type IWorksheetRef,\n type IWorksheetResponse,\n} from '../worksheet-types';\n\ninterface IUseCreateImperativeHandle {\n (\n ref: ForwardedRef<IWorksheetRef>,\n options: {\n behavior: IWorksheetBehavior;\n questions: IWorksheetQuestion[];\n setResponses: Dispatch<SetStateAction<Record<string, IWorksheetResponse>>>;\n onResponseChange: IWorksheetProps['onResponseChange'];\n onBulkResponsesChange: IWorksheetProps['onBulkResponsesChange'];\n getTimeSpentOnQuestion: (questionId: string) => number;\n },\n ): void;\n}\n\nconst useCreateImperativeHandle: IUseCreateImperativeHandle = (\n ref,\n {\n behavior,\n questions,\n setResponses,\n onResponseChange,\n onBulkResponsesChange,\n getTimeSpentOnQuestion,\n },\n) => {\n const { navigationMode } = behavior;\n const playNotifSound = useAudioPlayer(TEACHER_VALIDATION_AUDIO_LIST);\n const validateQuestion = useCallback<IWorksheetRef['validateQuestion']>(\n (questionId, rating, skipRemainingQuestions) => {\n playNotifSound('VALIDATE');\n const timeSpentOnQuestion = getTimeSpentOnQuestion(questionId);\n\n setResponses(prevResponses => {\n const questionIndex = questions.findIndex(q => q.response_id === questionId);\n const question = questions[questionIndex]!;\n\n const newResponse = {\n ...getQuestionMetadata(questions, questionId),\n ...prevResponses[questionId],\n validatedByTeacher: true,\n rating: rating ? QUESTIONS_RATING[rating] : undefined,\n timeSpent: timeSpentOnQuestion,\n };\n\n if (navigationMode === 'ADAPTIVE') {\n if (prevResponses[questionId]?.validatedByTeacher) {\n return prevResponses;\n }\n\n const topicName = question.item_tags_map[QUESTION_TAGS.TRIAL_TOPIC];\n const questionCode = question.item_tags_map[QUESTION_TAGS.QUESTION_CODE];\n const nextQuestionCode =\n questionCode && questionCode.length < 3 ? `${questionCode}${rating}` : 'Q';\n const nextQuestionIndex = questions.findIndex((q, qIndex) => {\n if (qIndex <= questionIndex) return false;\n\n if (nextQuestionCode !== 'Q') {\n return (\n q.item_tags_map[QUESTION_TAGS.TRIAL_TOPIC] === topicName &&\n q.item_tags_map[QUESTION_TAGS.QUESTION_CODE] === nextQuestionCode\n );\n }\n\n return q.item_tags_map[QUESTION_TAGS.TRIAL_TOPIC] !== topicName;\n });\n\n const newResponses = {\n [questionId]: newResponse,\n ...questions.reduce(\n (acc, q, qIndex) => {\n if (qIndex <= questionIndex) return acc;\n\n if (nextQuestionIndex > -1 && qIndex >= nextQuestionIndex) return acc;\n\n acc[q.response_id] = {\n ...getQuestionMetadata(questions, q.response_id),\n ...prevResponses[q.response_id],\n assignStatus: 'skipped',\n };\n\n return acc;\n },\n {} as Record<string, IWorksheetResponse>,\n ),\n };\n const nextQuestionResponseId = questions[nextQuestionIndex]?.response_id;\n\n if (nextQuestionResponseId) {\n onBulkResponsesChange?.({\n ...newResponses,\n [nextQuestionResponseId]: {\n ...prevResponses[nextQuestionResponseId],\n ...getQuestionMetadata(questions, nextQuestionResponseId),\n assignStatus: undefined,\n },\n });\n } else {\n onBulkResponsesChange?.(newResponses);\n }\n\n return {\n ...prevResponses,\n ...newResponses,\n };\n }\n\n if (skipRemainingQuestions) {\n const { item_reference } = question;\n const newResponses = {\n [questionId]: newResponse,\n ...questions.reduce(\n (acc, q) => {\n if (\n q.response_id !== question.response_id &&\n q.item_reference === item_reference &&\n !prevResponses[q.response_id]?.validatedByTeacher\n ) {\n acc[q.response_id] = {\n ...getQuestionMetadata(questions, q.response_id),\n ...prevResponses[q.response_id],\n assignStatus: 'skipped',\n };\n }\n\n return acc;\n },\n {} as Record<string, IWorksheetResponse>,\n ),\n };\n\n onBulkResponsesChange?.({\n ...prevResponses,\n ...newResponses,\n });\n\n return {\n ...prevResponses,\n ...newResponses,\n };\n }\n\n if (navigationMode === 'CURRENT' && question.item_number === 0) {\n onBulkResponsesChange?.({\n ...prevResponses,\n [questionId]: newResponse,\n });\n } else {\n onResponseChange?.({\n responseId: questionId,\n response: newResponse,\n question,\n isNewAttempt: false,\n });\n }\n\n return {\n ...prevResponses,\n [questionId]: newResponse,\n };\n });\n },\n [\n getTimeSpentOnQuestion,\n navigationMode,\n onBulkResponsesChange,\n onResponseChange,\n playNotifSound,\n questions,\n setResponses,\n ],\n );\n\n const assignOptionalItems = useCallback<IWorksheetRef['assignOptionalItems']>(\n itemType => {\n setResponses(prevResponses => {\n const optionalQuestions = questions.filter(q =>\n itemType.startsWith('advanced-')\n ? q.item_type?.startsWith('advanced-')\n : q.item_type === itemType,\n );\n const assignedResponses: Record<string, IWorksheetResponse> = {};\n\n if (optionalQuestions.length > 0) {\n optionalQuestions.forEach(question => {\n assignedResponses[question.response_id] = {\n ...getQuestionMetadata(questions, question.response_id),\n ...prevResponses[question.response_id],\n assignStatus: 'assigned',\n };\n });\n\n onBulkResponsesChange?.(assignedResponses);\n\n return {\n ...prevResponses,\n ...assignedResponses,\n };\n }\n\n return prevResponses;\n });\n },\n [onBulkResponsesChange, questions, setResponses],\n );\n\n const skipOptionalItems = useCallback<IWorksheetRef['skipOptionalItems']>(\n itemType => {\n setResponses(prevResponses => {\n const optionalQuestions = questions.filter(q =>\n itemType.startsWith('advanced-')\n ? q.item_type?.startsWith('advanced-')\n : q.item_type === itemType,\n );\n const skippedResponses: Record<string, IWorksheetResponse> = {};\n const unskippedQuestions: IWorksheetQuestion[] = [];\n\n if (optionalQuestions.length > 0) {\n optionalQuestions.forEach(question => {\n const prevResponse = prevResponses[question.response_id];\n\n if (!prevResponse?.validatedByTeacher) {\n skippedResponses[question.response_id] = {\n ...getQuestionMetadata(questions, question.response_id),\n ...prevResponse,\n assignStatus: 'skipped',\n };\n } else {\n unskippedQuestions.push(question);\n }\n });\n\n const nonIntroUnskippedQuestionsPresent = unskippedQuestions.some(\n ({ instructor_stimulus }) =>\n !(instructor_stimulus === 'SystemIntro' || isConceptIntroWidget(instructor_stimulus)),\n );\n\n if (!nonIntroUnskippedQuestionsPresent) {\n unskippedQuestions.forEach(question => {\n skippedResponses[question.response_id] = {\n ...getQuestionMetadata(questions, question.response_id),\n ...prevResponses[question.response_id],\n assignStatus: 'skipped',\n };\n });\n }\n\n onBulkResponsesChange?.(skippedResponses);\n\n return {\n ...prevResponses,\n ...skippedResponses,\n };\n }\n\n return prevResponses;\n });\n },\n [onBulkResponsesChange, questions, setResponses],\n );\n\n const updateMediaState = useCallback<IWorksheetRef['updateMediaState']>(\n (responseId, mediaType, mediaState) => {\n const key = mediaType === 'SIMULATION' ? 'simState' : undefined;\n\n if (!key) return;\n\n setResponses(prevResponses => {\n const question = questions.find(q => q.response_id === responseId);\n\n if (!question) return prevResponses;\n\n const newResponse = {\n ...getQuestionMetadata(questions, responseId),\n ...prevResponses[responseId],\n [key]: mediaState,\n };\n\n return {\n ...prevResponses,\n [responseId]: newResponse,\n };\n });\n },\n [questions, setResponses],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n validateQuestion,\n assignOptionalItems,\n skipOptionalItems,\n updateMediaState,\n }),\n [assignOptionalItems, skipOptionalItems, updateMediaState, validateQuestion],\n );\n};\n\nexport default useCreateImperativeHandle;\n"],"names":["useCreateImperativeHandle","ref","behavior","questions","setResponses","onResponseChange","onBulkResponsesChange","getTimeSpentOnQuestion","navigationMode","playNotifSound","useAudioPlayer","TEACHER_VALIDATION_AUDIO_LIST","validateQuestion","useCallback","questionId","rating","skipRemainingQuestions","timeSpentOnQuestion","prevResponses","questionIndex","q","question","newResponse","getQuestionMetadata","QUESTIONS_RATING","_a","topicName","QUESTION_TAGS","questionCode","nextQuestionCode","nextQuestionIndex","qIndex","newResponses","acc","nextQuestionResponseId","_b","item_reference","assignOptionalItems","itemType","optionalQuestions","assignedResponses","skipOptionalItems","skippedResponses","unskippedQuestions","prevResponse","instructor_stimulus","isConceptIntroWidget","updateMediaState","responseId","mediaType","mediaState","key","useImperativeHandle"],"mappings":"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"}
|
@@ -1,71 +1,103 @@
|
|
1
|
-
import { jsx as
|
2
|
-
import { memo as
|
3
|
-
import
|
4
|
-
import { LearnosityQuestionContainer as
|
5
|
-
const
|
1
|
+
import { jsx as S } from "react/jsx-runtime";
|
2
|
+
import { memo as g, useRef as I, useCallback as M, useEffect as m } from "react";
|
3
|
+
import Q from "../hooks/use-learnosity-append.js";
|
4
|
+
import { LearnosityQuestionContainer as $ } from "./worksheet-question-styled.js";
|
5
|
+
const D = g(
|
6
6
|
({
|
7
7
|
signedRequest: R,
|
8
|
-
appended:
|
9
|
-
canRender:
|
10
|
-
canForceAppend:
|
11
|
-
question:
|
12
|
-
response:
|
13
|
-
learnosity:
|
14
|
-
isConceptIntro:
|
8
|
+
appended: o,
|
9
|
+
canRender: E,
|
10
|
+
canForceAppend: a,
|
11
|
+
question: n,
|
12
|
+
response: s,
|
13
|
+
learnosity: w,
|
14
|
+
isConceptIntro: h,
|
15
|
+
simState: u,
|
16
|
+
onMediaStateChange: _
|
15
17
|
}) => {
|
16
|
-
const
|
17
|
-
(
|
18
|
+
const c = I(null), t = I(s), { forceAppend: p } = Q(R), d = M(
|
19
|
+
(e) => {
|
20
|
+
const { source: r, data: i } = e, { type: l } = i ?? {};
|
21
|
+
l === "SIM_IS_READY" ? r.postMessage(
|
22
|
+
{
|
23
|
+
type: "SIMULATION_CONFIG",
|
24
|
+
payload: {
|
25
|
+
userRole: a ? "teacher" : "student",
|
26
|
+
simulationState: u
|
27
|
+
}
|
28
|
+
},
|
29
|
+
"*"
|
30
|
+
) : l === "SIM_STATE_UPDATE" && _(n, "SIMULATION", e.data.payload);
|
31
|
+
},
|
32
|
+
[a, u, _, n]
|
33
|
+
), y = M(
|
34
|
+
(e) => {
|
18
35
|
window.requestAnimationFrame(() => {
|
19
|
-
var
|
20
|
-
const
|
21
|
-
|
22
|
-
|
23
|
-
}), (
|
24
|
-
question:
|
25
|
-
response:
|
26
|
-
callback: (
|
27
|
-
var
|
28
|
-
|
36
|
+
var i, l, T;
|
37
|
+
const r = document.createElement("div");
|
38
|
+
r.classList.add("learnosity-response"), r.classList.add(`question-${n.response_id}`), (l = (i = c.current) == null ? void 0 : i.children[0]) == null || l.querySelectorAll("svg path").forEach((f) => {
|
39
|
+
f.id = `${f.id} + temp`;
|
40
|
+
}), (T = c.current) == null || T.append(r), p({
|
41
|
+
question: n,
|
42
|
+
response: e,
|
43
|
+
callback: (f) => {
|
44
|
+
var v, A;
|
45
|
+
f || ((A = (v = c.current) == null ? void 0 : v.children[0]) == null || A.remove(), t.current && t.current !== e ? y(t.current) : t.current = void 0);
|
29
46
|
}
|
30
47
|
});
|
31
48
|
});
|
32
49
|
},
|
33
|
-
[p,
|
34
|
-
),
|
35
|
-
return
|
36
|
-
let
|
37
|
-
return
|
38
|
-
const
|
39
|
-
|
40
|
-
questions: [
|
41
|
-
...
|
50
|
+
[p, n]
|
51
|
+
), L = I(!1);
|
52
|
+
return m(() => {
|
53
|
+
let e;
|
54
|
+
return E && (L.current || (e = window.requestAnimationFrame(() => {
|
55
|
+
const r = t.current ?? s;
|
56
|
+
L.current = !0, w.appendQuestion({
|
57
|
+
questions: [n],
|
58
|
+
...r ? {
|
42
59
|
responses: {
|
43
|
-
[
|
60
|
+
[n.response_id]: {
|
44
61
|
// Learnosity is mutating the response object, so we need to clone it
|
45
|
-
...
|
62
|
+
...r
|
46
63
|
}
|
47
64
|
}
|
48
65
|
} : {}
|
49
66
|
});
|
50
67
|
}))), () => {
|
51
|
-
|
68
|
+
e && window.cancelAnimationFrame(e);
|
52
69
|
};
|
53
|
-
}, [
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
70
|
+
}, [E, w, n, s]), m(() => {
|
71
|
+
var e;
|
72
|
+
return o && (t.current = void 0, (e = c.current) != null && e.querySelector("iframe") && window.addEventListener("message", d)), () => {
|
73
|
+
window.removeEventListener("message", d);
|
74
|
+
};
|
75
|
+
}, [o, d]), m(() => {
|
76
|
+
var e, r;
|
77
|
+
if (u && o) {
|
78
|
+
const i = (e = c.current) == null ? void 0 : e.querySelector("iframe");
|
79
|
+
i && ((r = i.contentWindow) == null || r.postMessage(
|
80
|
+
{
|
81
|
+
type: "SIM_STATE_UPDATE",
|
82
|
+
payload: u
|
83
|
+
},
|
84
|
+
"*"
|
85
|
+
));
|
86
|
+
}
|
87
|
+
}, [o, a, u]), m(() => {
|
88
|
+
o && s && a && s !== t.current && (t.current ? t.current = s : (t.current = s, y(s)));
|
89
|
+
}, [o, a, s, y]), /* @__PURE__ */ S(
|
90
|
+
$,
|
59
91
|
{
|
60
|
-
ref:
|
61
|
-
$isConceptIntro:
|
62
|
-
$isTeacher:
|
63
|
-
children: /* @__PURE__ */
|
92
|
+
ref: c,
|
93
|
+
$isConceptIntro: h,
|
94
|
+
$isTeacher: a,
|
95
|
+
children: /* @__PURE__ */ S("div", { className: `learnosity-response question-${n.response_id}` })
|
64
96
|
}
|
65
97
|
);
|
66
98
|
}
|
67
99
|
);
|
68
100
|
export {
|
69
|
-
|
101
|
+
D as default
|
70
102
|
};
|
71
103
|
//# sourceMappingURL=learnosity-question.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"learnosity-question.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-question/learnosity-question.tsx"],"sourcesContent":["import type { ILearnosityQuestionResponse } from '../worksheet-types';\nimport type { ILearnosityQuestionProps } from './worksheet-question-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useRef } from 'react';\n\nimport useLearnosityAppend from '../hooks/use-learnosity-append';\nimport * as Styled from './worksheet-question-styled';\n\nconst LearnosityQuestion: FC<ILearnosityQuestionProps> = memo(\n ({\n signedRequest,\n appended,\n canRender,\n canForceAppend,\n question,\n response,\n learnosity,\n isConceptIntro,\n }) => {\n const containerElementRef = useRef<HTMLDivElement>(null);\n const latestQuestionResponseRef = useRef<ILearnosityQuestionResponse | undefined>(response);\n const { forceAppend } = useLearnosityAppend(signedRequest);\n\n const updateResponse = useCallback(\n (newResponse: ILearnosityQuestionResponse) => {\n window.requestAnimationFrame(() => {\n const questionElement = document.createElement('div');\n\n questionElement.classList.add('learnosity-response');\n questionElement.classList.add(`question-${question.response_id}`);\n // Drawing questions looks for already appended path elements with id, if present it will not append the path, to overcome this issue we are adding temp to the id\n containerElementRef.current?.children[0]?.querySelectorAll('svg path').forEach(path => {\n path.id = `${path.id} + temp`;\n });\n\n containerElementRef.current?.append(questionElement);\n forceAppend({\n question,\n response: newResponse,\n callback: error => {\n if (error) return;\n\n containerElementRef.current?.children[0]?.remove();\n\n if (\n latestQuestionResponseRef.current &&\n latestQuestionResponseRef.current !== newResponse\n )\n updateResponse(latestQuestionResponseRef.current);\n else latestQuestionResponseRef.current = undefined;\n },\n });\n });\n },\n [forceAppend, question],\n );\n\n const appendQuestionCalledRef = useRef(false);\n\n useEffect(() => {\n let requestId: number;\n\n if (canRender) {\n if (!appendQuestionCalledRef.current) {\n requestId = window.requestAnimationFrame(() => {\n const appenndableResponse = latestQuestionResponseRef.current ?? response;\n\n appendQuestionCalledRef.current = true;\n learnosity.appendQuestion({\n questions: [question],\n ...(appenndableResponse\n ? {\n responses: {\n [question.response_id]: {\n // Learnosity is mutating the response object, so we need to clone it\n ...appenndableResponse,\n },\n },\n }\n : {}),\n });\n });\n }\n }\n\n return () => {\n if (requestId) window.cancelAnimationFrame(requestId);\n };\n }, [canRender, learnosity, question, response]);\n\n useEffect(() => {\n if (appended) {\n latestQuestionResponseRef.current = undefined;\n }\n }, [appended]);\n\n useEffect(() => {\n if (appended && response && canForceAppend) {\n if (response !== latestQuestionResponseRef.current) {\n if (!latestQuestionResponseRef.current) {\n latestQuestionResponseRef.current = response;\n updateResponse(response);\n } else {\n latestQuestionResponseRef.current = response;\n }\n }\n }\n }, [appended, canForceAppend, response, updateResponse]);\n\n return (\n <Styled.LearnosityQuestionContainer\n ref={containerElementRef}\n $isConceptIntro={isConceptIntro}\n $isTeacher={canForceAppend}\n >\n <div className={`learnosity-response question-${question.response_id}`} />\n </Styled.LearnosityQuestionContainer>\n );\n },\n);\n\nexport default LearnosityQuestion;\n"],"names":["LearnosityQuestion","memo","signedRequest","appended","canRender","canForceAppend","question","response","learnosity","isConceptIntro","containerElementRef","useRef","latestQuestionResponseRef","forceAppend","useLearnosityAppend","
|
1
|
+
{"version":3,"file":"learnosity-question.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-question/learnosity-question.tsx"],"sourcesContent":["import type { ILearnosityQuestionResponse } from '../worksheet-types';\nimport type { ILearnosityQuestionProps } from './worksheet-question-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useRef } from 'react';\n\nimport useLearnosityAppend from '../hooks/use-learnosity-append';\nimport * as Styled from './worksheet-question-styled';\n\nconst LearnosityQuestion: FC<ILearnosityQuestionProps> = memo(\n ({\n signedRequest,\n appended,\n canRender,\n canForceAppend,\n question,\n response,\n learnosity,\n isConceptIntro,\n simState,\n onMediaStateChange,\n }) => {\n const containerElementRef = useRef<HTMLDivElement>(null);\n const latestQuestionResponseRef = useRef<ILearnosityQuestionResponse | undefined>(response);\n const { forceAppend } = useLearnosityAppend(signedRequest);\n\n const handleSimIframeMessage = useCallback(\n (event: MessageEvent) => {\n const { source, data } = event;\n const { type } = data ?? ({} as { type: string });\n\n if (type === 'SIM_IS_READY') {\n (source as Window).postMessage(\n {\n type: 'SIMULATION_CONFIG',\n payload: {\n userRole: canForceAppend ? 'teacher' : 'student',\n simulationState: simState,\n },\n },\n '*',\n );\n } else if (type === 'SIM_STATE_UPDATE') {\n onMediaStateChange(question, 'SIMULATION', event.data.payload);\n }\n },\n [canForceAppend, simState, onMediaStateChange, question],\n );\n\n const updateResponse = useCallback(\n (newResponse: ILearnosityQuestionResponse) => {\n window.requestAnimationFrame(() => {\n const questionElement = document.createElement('div');\n\n questionElement.classList.add('learnosity-response');\n questionElement.classList.add(`question-${question.response_id}`);\n // Drawing questions looks for already appended path elements with id, if present it will not append the path, to overcome this issue we are adding temp to the id\n containerElementRef.current?.children[0]?.querySelectorAll('svg path').forEach(path => {\n path.id = `${path.id} + temp`;\n });\n\n containerElementRef.current?.append(questionElement);\n forceAppend({\n question,\n response: newResponse,\n callback: error => {\n if (error) return;\n\n containerElementRef.current?.children[0]?.remove();\n\n if (\n latestQuestionResponseRef.current &&\n latestQuestionResponseRef.current !== newResponse\n )\n updateResponse(latestQuestionResponseRef.current);\n else latestQuestionResponseRef.current = undefined;\n },\n });\n });\n },\n [forceAppend, question],\n );\n\n const appendQuestionCalledRef = useRef(false);\n\n useEffect(() => {\n let requestId: number;\n\n if (canRender) {\n if (!appendQuestionCalledRef.current) {\n requestId = window.requestAnimationFrame(() => {\n const appenndableResponse = latestQuestionResponseRef.current ?? response;\n\n appendQuestionCalledRef.current = true;\n learnosity.appendQuestion({\n questions: [question],\n ...(appenndableResponse\n ? {\n responses: {\n [question.response_id]: {\n // Learnosity is mutating the response object, so we need to clone it\n ...appenndableResponse,\n },\n },\n }\n : {}),\n });\n });\n }\n }\n\n return () => {\n if (requestId) window.cancelAnimationFrame(requestId);\n };\n }, [canRender, learnosity, question, response]);\n\n useEffect(() => {\n if (appended) {\n latestQuestionResponseRef.current = undefined;\n\n if (containerElementRef.current?.querySelector('iframe')) {\n window.addEventListener('message', handleSimIframeMessage);\n }\n }\n\n return () => {\n window.removeEventListener('message', handleSimIframeMessage);\n };\n }, [appended, handleSimIframeMessage]);\n\n useEffect(() => {\n if (simState && appended) {\n const simIframe = containerElementRef.current?.querySelector('iframe');\n\n if (simIframe) {\n simIframe.contentWindow?.postMessage(\n {\n type: 'SIM_STATE_UPDATE',\n payload: simState,\n },\n '*',\n );\n }\n }\n }, [appended, canForceAppend, simState]);\n\n useEffect(() => {\n if (appended && response && canForceAppend) {\n if (response !== latestQuestionResponseRef.current) {\n if (!latestQuestionResponseRef.current) {\n latestQuestionResponseRef.current = response;\n updateResponse(response);\n } else {\n latestQuestionResponseRef.current = response;\n }\n }\n }\n }, [appended, canForceAppend, response, updateResponse]);\n\n return (\n <Styled.LearnosityQuestionContainer\n ref={containerElementRef}\n $isConceptIntro={isConceptIntro}\n $isTeacher={canForceAppend}\n >\n <div className={`learnosity-response question-${question.response_id}`} />\n </Styled.LearnosityQuestionContainer>\n );\n },\n);\n\nexport default LearnosityQuestion;\n"],"names":["LearnosityQuestion","memo","signedRequest","appended","canRender","canForceAppend","question","response","learnosity","isConceptIntro","simState","onMediaStateChange","containerElementRef","useRef","latestQuestionResponseRef","forceAppend","useLearnosityAppend","handleSimIframeMessage","useCallback","event","source","data","type","updateResponse","newResponse","questionElement","_b","_a","path","_c","error","appendQuestionCalledRef","useEffect","requestId","appenndableResponse","simIframe","jsx","Styled.LearnosityQuestionContainer"],"mappings":"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"}
|