@cuemath/leap 3.5.48-gg1 → 3.5.48-j2
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 -3
- package/dist/assets/illustrations/illustrations.js.map +1 -1
- package/dist/assets/line-icons/icons/bulb.js +10 -10
- package/dist/assets/line-icons/icons/bulb.js.map +1 -1
- package/dist/assets/line-icons/icons/hand.js.map +1 -1
- package/dist/assets/line-icons/icons/scribble.js +36 -13
- package/dist/assets/line-icons/icons/scribble.js.map +1 -1
- package/dist/assets/line-icons/icons/sticker.js +9 -9
- package/dist/assets/line-icons/icons/sticker.js.map +1 -1
- package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js.map +1 -1
- package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js +6 -6
- package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js.map +1 -1
- package/dist/features/journey/hooks/use-home-page-journey/recent-chapters-mock.js +2 -2
- package/dist/features/journey/hooks/use-home-page-journey/recent-chapters-mock.js.map +1 -1
- package/dist/features/journey/mocks/chapter-page-journey-mock-data.js +29 -64
- package/dist/features/journey/mocks/chapter-page-journey-mock-data.js.map +1 -1
- package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js +2 -2
- package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +107 -103
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js +2 -2
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +104 -96
- 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-widget.js +134 -115
- 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-container.js +95 -91
- 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 +92 -74
- package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js +28 -25
- 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/resources-assign.js +214 -170
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/store/action-types.js +20 -0
- package/dist/features/milestone/milestone-resources/resources-assign/store/action-types.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/store/actions.js +55 -0
- package/dist/features/milestone/milestone-resources/resources-assign/store/actions.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/store/initial-state.js +38 -0
- package/dist/features/milestone/milestone-resources/resources-assign/store/initial-state.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/store/reducer.js +58 -0
- package/dist/features/milestone/milestone-resources/resources-assign/store/reducer.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-list/resources-list.js +40 -39
- package/dist/features/milestone/milestone-resources/resources-list/resources-list.js.map +1 -1
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js +44 -43
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-selection.js +51 -42
- 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 +85 -72
- 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/test-preview/test-preview.js +34 -25
- 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-types.js +5 -0
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-types.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js +146 -89
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
- package/dist/features/puzzles/app/puzzle-app-view.js +40 -40
- package/dist/features/puzzles/app/puzzle-app-view.js.map +1 -1
- package/dist/features/trial-session/comps/learning-plan/index.js +268 -83
- package/dist/features/trial-session/comps/learning-plan/index.js.map +1 -1
- package/dist/features/trial-session/hooks/use-learning-plan-sync.js +29 -0
- package/dist/features/trial-session/hooks/use-learning-plan-sync.js.map +1 -0
- package/dist/features/trial-session/trial-session-types.js +3 -2
- package/dist/features/trial-session/trial-session-types.js.map +1 -1
- package/dist/features/ui/tabs/tabs.js +15 -15
- package/dist/features/ui/tabs/tabs.js.map +1 -1
- package/dist/features/worksheet/learnosity-preloader/learnosity-preloader.js +1 -0
- package/dist/features/worksheet/learnosity-preloader/learnosity-preloader.js.map +1 -1
- package/dist/features/worksheet/worksheet/constants.js +13 -12
- package/dist/features/worksheet/worksheet/constants.js.map +1 -1
- package/dist/features/worksheet/worksheet/hooks/use-create-imperative-handle.js +100 -123
- package/dist/features/worksheet/worksheet/hooks/use-create-imperative-handle.js.map +1 -1
- package/dist/features/worksheet/worksheet/hooks/use-worksheet-store.js +1 -1
- package/dist/features/worksheet/worksheet/hooks/use-worksheet-store.js.map +1 -1
- package/dist/features/worksheet/worksheet/question-tips.js +100 -0
- package/dist/features/worksheet/worksheet/question-tips.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js +109 -40
- package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js +46 -49
- package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-calculator/worksheet-calculator.js +4 -4
- package/dist/features/worksheet/worksheet/worksheet-calculator/worksheet-calculator.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-helpers.js +276 -129
- package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-navigation.js +25 -25
- package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-navigation.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-provider.js +1 -1
- package/dist/features/worksheet/worksheet/worksheet-provider.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js +25 -22
- 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 +20 -26
- 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 +17 -32
- package/dist/features/worksheet/worksheet/worksheet-question/question-backdrop/question-backdrop.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/subjective-styled.js +22 -17
- package/dist/features/worksheet/worksheet/worksheet-question/subjective-styled.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/system-intros/basic-practice-intro.js +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/regular-practice-intro.js +2 -2
- 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 +50 -32
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question-styled.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js +287 -377
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/scribble-switch.js +53 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/scribble-switch.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js +191 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js +345 -20
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-sidebar/navigator.js +20 -33
- package/dist/features/worksheet/worksheet/worksheet-sidebar/navigator.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-sidebar/question-guide.js +112 -0
- package/dist/features/worksheet/worksheet/worksheet-sidebar/question-guide.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-sidebar/sidebar.js +61 -0
- package/dist/features/worksheet/worksheet/worksheet-sidebar/sidebar.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-sidebar/worksheet-sidebar-styled.js +91 -0
- package/dist/features/worksheet/worksheet/worksheet-sidebar/worksheet-sidebar-styled.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-store.js +289 -0
- package/dist/features/worksheet/worksheet/worksheet-store.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-styled.js +83 -29
- package/dist/features/worksheet/worksheet/worksheet-styled.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-summary-controller/worksheet-summary-controller.js +24 -45
- package/dist/features/worksheet/worksheet/worksheet-summary-controller/worksheet-summary-controller.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-types.js +3 -4
- package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-view.js +99 -88
- package/dist/features/worksheet/worksheet/worksheet-view.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet.js +117 -126
- package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js +29 -29
- package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.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-view.js +24 -24
- package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js.map +1 -1
- package/dist/index.d.ts +129 -68
- package/dist/index.js +745 -760
- package/dist/index.js.map +1 -1
- package/dist/node_modules/decode-uri-component/index.js.map +1 -0
- package/dist/node_modules/query-string/base.js +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/native.js +7 -0
- package/dist/node_modules/uuid/dist/esm-browser/native.js.map +1 -0
- package/dist/node_modules/uuid/dist/esm-browser/rng.js +3 -2
- package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js +6 -10
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/v4.js +12 -9
- package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
- package/dist/types/models/worksheet.js +1 -2
- package/dist/types/models/worksheet.js.map +1 -1
- package/package.json +1 -1
- package/dist/assets/line-icons/icons/chevron-up.js +0 -28
- package/dist/assets/line-icons/icons/chevron-up.js.map +0 -1
- package/dist/assets/line-icons/icons/close.js +0 -28
- package/dist/assets/line-icons/icons/close.js.map +0 -1
- package/dist/assets/line-icons/icons/cursor2.js +0 -24
- package/dist/assets/line-icons/icons/cursor2.js.map +0 -1
- package/dist/assets/line-icons/icons/hints.js +0 -25
- package/dist/assets/line-icons/icons/hints.js.map +0 -1
- package/dist/assets/line-icons/icons/question-feedback.js +0 -30
- package/dist/assets/line-icons/icons/question-feedback.js.map +0 -1
- package/dist/assets/line-icons/icons/teaching-tools.js +0 -40
- package/dist/assets/line-icons/icons/teaching-tools.js.map +0 -1
- package/dist/assets/line-icons/icons/tval-question.js +0 -32
- package/dist/assets/line-icons/icons/tval-question.js.map +0 -1
- package/dist/features/trial-session/comps/learning-plan/use-learning-plan-scroll-sync.js +0 -37
- package/dist/features/trial-session/comps/learning-plan/use-learning-plan-scroll-sync.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-allow-retry-button-click.js +0 -15
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-allow-retry-button-click.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-back-button-click.js +0 -18
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-back-button-click.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-check-button-click.js +0 -21
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-check-button-click.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-next-button-click.js +0 -19
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-next-button-click.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-ready-button-click.js +0 -34
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-ready-button-click.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-response-change.js +0 -38
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-response-change.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-retry-button-click.js +0 -16
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-retry-button-click.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-skip-button-click.js +0 -35
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-skip-button-click.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-skip-section-button-click.js +0 -12
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-skip-section-button-click.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-start-button-click.js +0 -44
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-start-button-click.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-submit-quiz.js +0 -51
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-submit-quiz.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-validate-button-click.js +0 -19
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-validate-button-click.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-play-validation-audio.js +0 -23
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-play-validation-audio.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-validate-question.js +0 -36
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-validate-question.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3.js +0 -184
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3_1.js +0 -261
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3_1.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller.js +0 -180
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller-lesson-v3.js +0 -77
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller-lesson-v3.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller-lesson-v3_1.js +0 -103
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller-lesson-v3_1.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller.js +0 -21
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller-view.js +0 -22
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller-view.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar-styled.js +0 -49
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar-styled.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar.js +0 -191
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/scribble-switch.js +0 -65
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/scribble-switch.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-styled.js +0 -9
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-styled.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-tools.js +0 -38
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-tools.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-computed-properties.js +0 -73
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-computed-properties.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-derived-blocker.js +0 -20
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-derived-blocker.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-last-attemptable-question-index.js +0 -69
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-last-attemptable-question-index.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-last-unlocked-question-index.js +0 -18
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-last-unlocked-question-index.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-merged-response-state.js +0 -19
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-merged-response-state.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-questions-from-items.js +0 -138
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-questions-from-items.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-renderable-questions.js +0 -9
- package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-renderable-questions.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-store/worksheet-store.js +0 -230
- package/dist/features/worksheet/worksheet/worksheet-store/worksheet-store.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-teaching-tools/worksheet-teaching-tools-styled.js +0 -19
- package/dist/features/worksheet/worksheet/worksheet-teaching-tools/worksheet-teaching-tools-styled.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-teaching-tools/worksheet-teaching-tools.js +0 -72
- package/dist/features/worksheet/worksheet/worksheet-teaching-tools/worksheet-teaching-tools.js.map +0 -1
- package/dist/node_modules/query-string/node_modules/decode-uri-component/index.js.map +0 -1
- package/dist/node_modules/uuid/dist/esm-browser/regex.js +0 -5
- package/dist/node_modules/uuid/dist/esm-browser/regex.js.map +0 -1
- package/dist/node_modules/uuid/dist/esm-browser/validate.js +0 -8
- package/dist/node_modules/uuid/dist/esm-browser/validate.js.map +0 -1
- package/dist/static/pattern-cubes.113d8dda.svg +0 -1
- package/dist/static/pattern-diamond.a51b202c.svg +0 -1
- package/dist/static/pattern-honeycomb.ed7ad26a.svg +0 -1
- /package/dist/node_modules/{query-string/node_modules/decode-uri-component → decode-uri-component}/index.js +0 -0
|
@@ -1,133 +1,190 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { memo as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import { useMilestoneGet as
|
|
8
|
-
import { usePostTestHelpPreview as
|
|
9
|
-
import { usePostTestSheetAssign as
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
|
|
1
|
+
import { jsx as f, jsxs as B } from "react/jsx-runtime";
|
|
2
|
+
import { memo as Y, useState as E, useCallback as o, useEffect as T } from "react";
|
|
3
|
+
import J from "../../../ui/buttons/button/button.js";
|
|
4
|
+
import K from "../../../ui/layout/flex-view.js";
|
|
5
|
+
import Q from "../../../ui/loader/app-loader/app-loader.js";
|
|
6
|
+
import Z from "../../../ui/text/text.js";
|
|
7
|
+
import { useMilestoneGet as ee } from "../../edit/comps/edit-milestone-modal/api/get-milestone.js";
|
|
8
|
+
import { usePostTestHelpPreview as te } from "./api/preview-test-sheet.js";
|
|
9
|
+
import { usePostTestSheetAssign as se } from "./api/test-sheet-assign.js";
|
|
10
|
+
import ie from "./test-stages/chapter-selection/chapter-selection.js";
|
|
11
|
+
import ne from "./test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js";
|
|
12
|
+
import re from "./test-stages/test-preview/test-preview.js";
|
|
13
|
+
import { ETestsStage as p } from "./tests-creation-types.js";
|
|
14
|
+
const oe = {
|
|
14
15
|
selectedChapters: null,
|
|
15
16
|
difficultyLevel: null,
|
|
16
17
|
title: null,
|
|
17
18
|
duration: null,
|
|
18
19
|
chapters: null
|
|
19
|
-
},
|
|
20
|
-
const {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
}, le = Y(function(R) {
|
|
21
|
+
const {
|
|
22
|
+
milestoneId: l,
|
|
23
|
+
studentId: $,
|
|
24
|
+
testNumber: b,
|
|
25
|
+
userType: v = "TEACHER",
|
|
26
|
+
state: e,
|
|
27
|
+
onStateChange: s,
|
|
28
|
+
onTestAssign: _,
|
|
29
|
+
onExit: M,
|
|
30
|
+
onError: h
|
|
31
|
+
} = R, [u, g] = E(
|
|
32
|
+
(e == null ? void 0 : e.testStage) ?? p.CHAPTER_SELECTION
|
|
33
|
+
), [n, d] = E(
|
|
34
|
+
(e == null ? void 0 : e.testFormData) ?? oe
|
|
35
|
+
), [r, A] = E(
|
|
36
|
+
(e == null ? void 0 : e.testPreviewItems) ?? []
|
|
37
|
+
), F = o(
|
|
38
|
+
(t) => {
|
|
39
|
+
g(t), s == null || s({ testStage: t, testFormData: n, testPreviewItems: r });
|
|
40
|
+
},
|
|
41
|
+
[n, r, s]
|
|
42
|
+
), x = o(
|
|
43
|
+
(t, i) => {
|
|
44
|
+
(t || !(i != null && i.length)) && (d((m) => {
|
|
45
|
+
const { chapters: a, selectedChapters: c } = m, z = a == null ? void 0 : a.map((D) => c != null && c.includes(D.id) ? {
|
|
46
|
+
...D,
|
|
27
47
|
item_bank_enabled: !1
|
|
28
|
-
} :
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
chapters: V ?? null,
|
|
48
|
+
} : D), N = {
|
|
49
|
+
...m,
|
|
50
|
+
chapters: z ?? null,
|
|
32
51
|
selectedChapters: null,
|
|
33
52
|
difficultyLevel: null,
|
|
34
53
|
duration: null
|
|
35
54
|
};
|
|
36
|
-
|
|
55
|
+
return s == null || s({
|
|
56
|
+
testStage: p.CHAPTER_SELECTION,
|
|
57
|
+
testFormData: N,
|
|
58
|
+
testPreviewItems: []
|
|
59
|
+
}), N;
|
|
60
|
+
}), g(p.CHAPTER_SELECTION), h(
|
|
37
61
|
"We're experiencing a temporary limitation with the chapters you've selected. Please select alternative chapters and proceed."
|
|
38
|
-
)),
|
|
62
|
+
)), t ? h(t) : i && (A(i), s == null || s({ testStage: u, testFormData: n, testPreviewItems: i }));
|
|
39
63
|
},
|
|
40
|
-
[
|
|
41
|
-
),
|
|
42
|
-
(
|
|
43
|
-
|
|
64
|
+
[h, u, n, s]
|
|
65
|
+
), j = o(
|
|
66
|
+
(t) => {
|
|
67
|
+
t ? h(t) : _();
|
|
44
68
|
},
|
|
45
|
-
[
|
|
69
|
+
[h, _]
|
|
46
70
|
), {
|
|
47
|
-
get:
|
|
48
|
-
data:
|
|
49
|
-
isProcessing:
|
|
50
|
-
isProcessingFailed:
|
|
51
|
-
error:
|
|
52
|
-
} =
|
|
71
|
+
get: O,
|
|
72
|
+
data: k,
|
|
73
|
+
isProcessing: V,
|
|
74
|
+
isProcessingFailed: W,
|
|
75
|
+
error: I
|
|
76
|
+
} = ee(l, {
|
|
53
77
|
with_sheets: !0
|
|
54
|
-
}), { post:
|
|
55
|
-
onComplete:
|
|
56
|
-
}), { post: S, isProcessing:
|
|
57
|
-
onComplete:
|
|
58
|
-
}), { user_milestone_plan:
|
|
59
|
-
(
|
|
60
|
-
|
|
78
|
+
}), { post: y, isProcessing: G } = te({
|
|
79
|
+
onComplete: x
|
|
80
|
+
}), { post: S, isProcessing: U } = se({
|
|
81
|
+
onComplete: j
|
|
82
|
+
}), { user_milestone_plan: X } = k || {}, { user_chapters: P } = X || {}, L = o(
|
|
83
|
+
(t) => {
|
|
84
|
+
y(t);
|
|
61
85
|
},
|
|
62
|
-
[
|
|
63
|
-
),
|
|
64
|
-
|
|
86
|
+
[y]
|
|
87
|
+
), w = o(() => {
|
|
88
|
+
O(l, {
|
|
65
89
|
with_sheets: !0
|
|
66
90
|
});
|
|
67
|
-
}, [
|
|
68
|
-
const { duration:
|
|
69
|
-
|
|
91
|
+
}, [O, l]), q = o(() => {
|
|
92
|
+
const { duration: t, difficultyLevel: i, selectedChapters: m } = n;
|
|
93
|
+
t && i && m && S(
|
|
70
94
|
{
|
|
71
|
-
items:
|
|
95
|
+
items: r,
|
|
72
96
|
node_params: {
|
|
73
97
|
is_timed: !0,
|
|
74
|
-
sheet_time:
|
|
75
|
-
difficulty_level:
|
|
98
|
+
sheet_time: t * 60,
|
|
99
|
+
difficulty_level: i
|
|
76
100
|
}
|
|
77
101
|
},
|
|
78
102
|
{
|
|
79
|
-
userMilestoneId:
|
|
103
|
+
userMilestoneId: l
|
|
80
104
|
}
|
|
81
105
|
);
|
|
82
|
-
}, [S,
|
|
83
|
-
(
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
106
|
+
}, [S, n, l, r]), H = o(
|
|
107
|
+
(t) => {
|
|
108
|
+
d(t), s == null || s({ testStage: u, testFormData: t, testPreviewItems: r });
|
|
109
|
+
},
|
|
110
|
+
[u, r, s]
|
|
111
|
+
), C = o(
|
|
112
|
+
(t, i) => {
|
|
113
|
+
if (i) {
|
|
114
|
+
const { difficultyLevel: m, duration: a } = i, c = { ...n, ...i };
|
|
115
|
+
d(c), g(t), s == null || s({ testStage: t, testFormData: c, testPreviewItems: r }), t === p.PREVIEW && m && a && L({
|
|
116
|
+
difficulty_level: m,
|
|
117
|
+
duration: a,
|
|
118
|
+
user_chapter_ids: c.selectedChapters || []
|
|
90
119
|
});
|
|
91
|
-
}
|
|
120
|
+
} else
|
|
121
|
+
F(t);
|
|
92
122
|
},
|
|
93
|
-
[
|
|
123
|
+
[
|
|
124
|
+
F,
|
|
125
|
+
L,
|
|
126
|
+
n,
|
|
127
|
+
r,
|
|
128
|
+
s
|
|
129
|
+
]
|
|
94
130
|
);
|
|
95
|
-
return
|
|
96
|
-
|
|
97
|
-
}, [
|
|
98
|
-
|
|
99
|
-
}, [
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
131
|
+
return T(() => {
|
|
132
|
+
l && w();
|
|
133
|
+
}, [l, w]), T(() => {
|
|
134
|
+
P && P.length > 0 && d((t) => ({ ...t, chapters: P }));
|
|
135
|
+
}, [P]), T(() => {
|
|
136
|
+
(e == null ? void 0 : e.testStage) !== void 0 && g(e.testStage);
|
|
137
|
+
}, [e == null ? void 0 : e.testStage]), T(() => {
|
|
138
|
+
(e == null ? void 0 : e.testFormData) !== void 0 && d((t) => ({
|
|
139
|
+
...t,
|
|
140
|
+
...e.testFormData
|
|
141
|
+
}));
|
|
142
|
+
}, [e == null ? void 0 : e.testFormData]), T(() => {
|
|
143
|
+
(e == null ? void 0 : e.testPreviewItems) !== void 0 && A(e.testPreviewItems);
|
|
144
|
+
}, [e == null ? void 0 : e.testPreviewItems]), V || G ? /* @__PURE__ */ f(Q, { height: "100vh" }) : W ? /* @__PURE__ */ B(K, { $height: "100vh", $flexGapX: 1.5, $alignItems: "center", $justifyContent: "center", children: [
|
|
145
|
+
/* @__PURE__ */ f(Z, { $renderAs: "h6", children: (I == null ? void 0 : I.message) || "Oops! Something went wrong." }),
|
|
146
|
+
/* @__PURE__ */ f(
|
|
147
|
+
J,
|
|
103
148
|
{
|
|
104
149
|
widthX: 14,
|
|
105
150
|
size: "small",
|
|
106
151
|
shape: "square",
|
|
107
152
|
renderAs: "primary",
|
|
108
153
|
label: "Try again",
|
|
109
|
-
onClick:
|
|
154
|
+
onClick: w
|
|
110
155
|
}
|
|
111
156
|
)
|
|
112
|
-
] }) :
|
|
113
|
-
|
|
157
|
+
] }) : P ? u === p.PREVIEW ? /* @__PURE__ */ f(
|
|
158
|
+
re,
|
|
159
|
+
{
|
|
160
|
+
studentId: $,
|
|
161
|
+
items: r,
|
|
162
|
+
testNumber: b,
|
|
163
|
+
isAssignInProgress: U,
|
|
164
|
+
onTestStageChange: C,
|
|
165
|
+
onTestSheetAssign: q,
|
|
166
|
+
userType: v
|
|
167
|
+
}
|
|
168
|
+
) : u === p.DIFFICULTY_AND_DURATION_SELECTION ? /* @__PURE__ */ f(
|
|
169
|
+
ne,
|
|
114
170
|
{
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
onTestStageChange: g,
|
|
120
|
-
onTestSheetAssign: k
|
|
171
|
+
testFormData: n,
|
|
172
|
+
userType: v,
|
|
173
|
+
onTestStageChange: C,
|
|
174
|
+
onFormDataChange: H
|
|
121
175
|
}
|
|
122
|
-
) :
|
|
123
|
-
|
|
176
|
+
) : /* @__PURE__ */ f(
|
|
177
|
+
ie,
|
|
124
178
|
{
|
|
125
|
-
testFormData:
|
|
126
|
-
|
|
179
|
+
testFormData: n,
|
|
180
|
+
userType: v,
|
|
181
|
+
onProceed: C,
|
|
182
|
+
onExit: M,
|
|
183
|
+
onFormDataChange: H
|
|
127
184
|
}
|
|
128
|
-
) :
|
|
129
|
-
}),
|
|
185
|
+
) : null;
|
|
186
|
+
}), Ce = le;
|
|
130
187
|
export {
|
|
131
|
-
|
|
188
|
+
Ce as default
|
|
132
189
|
};
|
|
133
190
|
//# sourceMappingURL=tests-creation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tests-creation.js","sources":["../../../../../src/features/milestone/milestone-tests/tests-creation/tests-creation.tsx"],"sourcesContent":["import { type FC, memo, useCallback, useEffect, useState } from 'react';\n\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport Text from '../../../ui/text/text';\nimport { useMilestoneGet } from '../../edit/comps/edit-milestone-modal/api/get-milestone';\nimport {\n usePostTestHelpPreview,\n type ITestHelpPreviewPayload,\n type ITestHelpPreviewResponse,\n} from './api/preview-test-sheet';\nimport { usePostTestSheetAssign } from './api/test-sheet-assign';\nimport ChapterSelection from './test-stages/chapter-selection/chapter-selection';\nimport DifficultyAndDurationSelection from './test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection';\nimport TestPreview from './test-stages/test-preview/test-preview';\nimport type { ITestFromData, ITestsCreationProps, TTestsStage } from './tests-creation-types';\n\nconst initFormData: ITestFromData = {\n selectedChapters: null,\n difficultyLevel: null,\n title: null,\n duration: null,\n chapters: null,\n};\n\nconst TestsCreation: FC<ITestsCreationProps> = memo(function TestsCreation(props) {\n const { milestoneId, studentId, testNumber, onTestAssign, onExit, onError } = props;\n\n const [testStage, setTestStage] = useState<TTestsStage>('CHAPTER_SELECTION');\n const [testFormData, setTestFromData] = useState<ITestFromData>(initFormData);\n const [testPreviewItems, setTestPreviewItems] = useState<ITestHelpPreviewResponse[]>([]);\n\n const handleOnTestStageChange = useCallback((nextStage: TTestsStage) => {\n setTestStage(nextStage);\n }, []);\n\n const handleOnTestHelpPreviewComplete = useCallback(\n (errorMessage: string | null, data?: ITestHelpPreviewResponse[]) => {\n if (errorMessage || !data?.length) {\n handleOnTestStageChange('CHAPTER_SELECTION');\n\n setTestFromData(prev => {\n const { chapters, selectedChapters } = prev;\n\n const updatedChapters = chapters?.map(chapter => {\n if (selectedChapters?.includes(chapter.id)) {\n return {\n ...chapter,\n item_bank_enabled: false,\n };\n }\n\n return chapter;\n });\n\n return {\n ...prev,\n chapters: updatedChapters ?? null,\n selectedChapters: null,\n difficultyLevel: null,\n duration: null,\n };\n });\n\n onError(\n `We're experiencing a temporary limitation with the chapters you've selected. Please select alternative chapters and proceed.`,\n );\n }\n\n if (errorMessage) {\n onError(errorMessage);\n } else if (data) {\n setTestPreviewItems(data);\n }\n },\n [onError, setTestPreviewItems, handleOnTestStageChange],\n );\n\n const handleOnTestSheetAssignComplete = useCallback(\n (errorMessage: string | null) => {\n if (errorMessage) {\n onError(errorMessage);\n } else {\n onTestAssign();\n }\n },\n [onError, onTestAssign],\n );\n\n const {\n get: getMilestone,\n data: currentMilestoneData,\n isProcessing: isMilestoneProcessing,\n isProcessingFailed: isMilestoneProcessingFailed,\n error: milestoneGetError,\n } = useMilestoneGet(milestoneId, {\n with_sheets: true,\n });\n\n const { post: postTestHelpPreview, isProcessing: testPreviewIsProcessing } =\n usePostTestHelpPreview({\n onComplete: handleOnTestHelpPreviewComplete,\n });\n\n const { post: postTestSheetAssign, isProcessing: testAssignIsProcessing } =\n usePostTestSheetAssign({\n onComplete: handleOnTestSheetAssignComplete,\n });\n\n const { user_milestone_plan: userMilestonePlan } = currentMilestoneData || {};\n const { user_chapters: userChapters } = userMilestonePlan || {};\n\n const handleOnPostTestHelpPreview = useCallback(\n (data: ITestHelpPreviewPayload) => {\n postTestHelpPreview(data);\n },\n [postTestHelpPreview],\n );\n\n const handleOnGetMilestone = useCallback(() => {\n getMilestone(milestoneId, {\n with_sheets: true,\n });\n }, [getMilestone, milestoneId]);\n\n const handleOnTestSheetAssign = useCallback(() => {\n const { duration, difficultyLevel, selectedChapters } = testFormData;\n\n if (duration && difficultyLevel && selectedChapters) {\n postTestSheetAssign(\n {\n items: testPreviewItems,\n node_params: {\n is_timed: true,\n sheet_time: duration * 60,\n difficulty_level: difficultyLevel,\n },\n },\n {\n userMilestoneId: milestoneId,\n },\n );\n }\n }, [postTestSheetAssign, testFormData, milestoneId, testPreviewItems]);\n\n const handleOnProceed = useCallback(\n (nextStage: TTestsStage, updatedForm?: ITestFromData) => {\n handleOnTestStageChange(nextStage);\n\n if (updatedForm) {\n const { difficultyLevel, duration } = updatedForm;\n\n setTestFromData(prev => ({ ...prev, ...updatedForm }));\n\n if (nextStage === 'PREVIEW' && difficultyLevel && duration) {\n handleOnPostTestHelpPreview({\n difficulty_level: difficultyLevel,\n duration: duration,\n user_chapter_ids: testFormData.selectedChapters || [],\n });\n }\n }\n },\n [handleOnTestStageChange, handleOnPostTestHelpPreview, testFormData],\n );\n\n useEffect(() => {\n if (milestoneId) {\n handleOnGetMilestone();\n }\n }, [milestoneId, handleOnGetMilestone]);\n\n useEffect(() => {\n if (userChapters && userChapters.length > 0) {\n setTestFromData(prev => ({ ...prev, chapters: userChapters }));\n }\n }, [userChapters]);\n\n if (isMilestoneProcessing || testPreviewIsProcessing) {\n return <AppLoader height=\"100vh\" />;\n }\n\n if (isMilestoneProcessingFailed) {\n return (\n <FlexView $height=\"100vh\" $flexGapX={1.5} $alignItems=\"center\" $justifyContent=\"center\">\n <Text $renderAs=\"h6\">{milestoneGetError?.message || 'Oops! Something went wrong.'}</Text>\n <Button\n widthX={14}\n size=\"small\"\n shape=\"square\"\n renderAs=\"primary\"\n label=\"Try again\"\n onClick={handleOnGetMilestone}\n />\n </FlexView>\n );\n }\n\n if (!userChapters) return null;\n\n if (testStage === 'PREVIEW') {\n return (\n <TestPreview\n studentId={studentId}\n items={testPreviewItems}\n testNumber={testNumber}\n isAssignInProgress={testAssignIsProcessing}\n onTestStageChange={handleOnProceed}\n onTestSheetAssign={handleOnTestSheetAssign}\n />\n );\n }\n\n if (testStage === 'DIFFICULTY_AND_DURATION_SELECTION') {\n return (\n <DifficultyAndDurationSelection\n testFormData={testFormData}\n onTestStageChange={handleOnProceed}\n />\n );\n }\n\n return (\n <ChapterSelection testFormData={testFormData} onProceed={handleOnProceed} onExit={onExit} />\n );\n});\n\nexport default TestsCreation;\n"],"names":["initFormData","TestsCreation","memo","props","milestoneId","studentId","testNumber","onTestAssign","onExit","onError","testStage","setTestStage","useState","testFormData","setTestFromData","testPreviewItems","setTestPreviewItems","handleOnTestStageChange","useCallback","nextStage","handleOnTestHelpPreviewComplete","errorMessage","data","prev","chapters","selectedChapters","updatedChapters","chapter","handleOnTestSheetAssignComplete","getMilestone","currentMilestoneData","isMilestoneProcessing","isMilestoneProcessingFailed","milestoneGetError","useMilestoneGet","postTestHelpPreview","testPreviewIsProcessing","usePostTestHelpPreview","postTestSheetAssign","testAssignIsProcessing","usePostTestSheetAssign","userMilestonePlan","userChapters","handleOnPostTestHelpPreview","handleOnGetMilestone","handleOnTestSheetAssign","duration","difficultyLevel","handleOnProceed","updatedForm","useEffect","jsx","AppLoader","jsxs","FlexView","Text","Button","TestPreview","DifficultyAndDurationSelection","ChapterSelection","TestsCreation$1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tests-creation.js","sources":["../../../../../src/features/milestone/milestone-tests/tests-creation/tests-creation.tsx"],"sourcesContent":["import { type FC, memo, useCallback, useEffect, useState } from 'react';\n\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport Text from '../../../ui/text/text';\nimport { useMilestoneGet } from '../../edit/comps/edit-milestone-modal/api/get-milestone';\nimport {\n usePostTestHelpPreview,\n type ITestHelpPreviewPayload,\n type ITestHelpPreviewResponse,\n} from './api/preview-test-sheet';\nimport { usePostTestSheetAssign } from './api/test-sheet-assign';\nimport ChapterSelection from './test-stages/chapter-selection/chapter-selection';\nimport DifficultyAndDurationSelection from './test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection';\nimport TestPreview from './test-stages/test-preview/test-preview';\nimport { ETestsStage, type ITestFormData, type ITestsCreationProps } from './tests-creation-types';\n\nconst initFormData: ITestFormData = {\n selectedChapters: null,\n difficultyLevel: null,\n title: null,\n duration: null,\n chapters: null,\n};\n\nconst TestsCreation: FC<ITestsCreationProps> = memo(function TestsCreation(props) {\n const {\n milestoneId,\n studentId,\n testNumber,\n userType = 'TEACHER',\n state,\n onStateChange,\n onTestAssign,\n onExit,\n onError,\n } = props;\n\n const [testStage, setTestStage] = useState<ETestsStage>(\n state?.testStage ?? ETestsStage.CHAPTER_SELECTION,\n );\n const [testFormData, setTestFormData] = useState<ITestFormData>(\n state?.testFormData ?? initFormData,\n );\n const [testPreviewItems, setTestPreviewItems] = useState<ITestHelpPreviewResponse[]>(\n state?.testPreviewItems ?? [],\n );\n\n const handleOnTestStageChange = useCallback(\n (nextStage: ETestsStage) => {\n setTestStage(nextStage);\n onStateChange?.({ testStage: nextStage, testFormData, testPreviewItems });\n },\n [testFormData, testPreviewItems, onStateChange],\n );\n\n const handleOnTestHelpPreviewComplete = useCallback(\n (errorMessage: string | null, data?: ITestHelpPreviewResponse[]) => {\n if (errorMessage || !data?.length) {\n setTestFormData(prev => {\n const { chapters, selectedChapters } = prev;\n\n const updatedChapters = chapters?.map(chapter => {\n if (selectedChapters?.includes(chapter.id)) {\n return {\n ...chapter,\n item_bank_enabled: false,\n };\n }\n\n return chapter;\n });\n\n const newFormData = {\n ...prev,\n chapters: updatedChapters ?? null,\n selectedChapters: null,\n difficultyLevel: null,\n duration: null,\n };\n\n onStateChange?.({\n testStage: ETestsStage.CHAPTER_SELECTION,\n testFormData: newFormData,\n testPreviewItems: [],\n });\n\n return newFormData;\n });\n\n setTestStage(ETestsStage.CHAPTER_SELECTION);\n\n onError(\n `We're experiencing a temporary limitation with the chapters you've selected. Please select alternative chapters and proceed.`,\n );\n }\n\n if (errorMessage) {\n onError(errorMessage);\n } else if (data) {\n setTestPreviewItems(data);\n onStateChange?.({ testStage, testFormData, testPreviewItems: data });\n }\n },\n [onError, testStage, testFormData, onStateChange],\n );\n\n const handleOnTestSheetAssignComplete = useCallback(\n (errorMessage: string | null) => {\n if (errorMessage) {\n onError(errorMessage);\n } else {\n onTestAssign();\n }\n },\n [onError, onTestAssign],\n );\n\n const {\n get: getMilestone,\n data: currentMilestoneData,\n isProcessing: isMilestoneProcessing,\n isProcessingFailed: isMilestoneProcessingFailed,\n error: milestoneGetError,\n } = useMilestoneGet(milestoneId, {\n with_sheets: true,\n });\n\n const { post: postTestHelpPreview, isProcessing: testPreviewIsProcessing } =\n usePostTestHelpPreview({\n onComplete: handleOnTestHelpPreviewComplete,\n });\n\n const { post: postTestSheetAssign, isProcessing: testAssignIsProcessing } =\n usePostTestSheetAssign({\n onComplete: handleOnTestSheetAssignComplete,\n });\n\n const { user_milestone_plan: userMilestonePlan } = currentMilestoneData || {};\n const { user_chapters: userChapters } = userMilestonePlan || {};\n\n const handleOnPostTestHelpPreview = useCallback(\n (data: ITestHelpPreviewPayload) => {\n postTestHelpPreview(data);\n },\n [postTestHelpPreview],\n );\n\n const handleOnGetMilestone = useCallback(() => {\n getMilestone(milestoneId, {\n with_sheets: true,\n });\n }, [getMilestone, milestoneId]);\n\n const handleOnTestSheetAssign = useCallback(() => {\n const { duration, difficultyLevel, selectedChapters } = testFormData;\n\n if (duration && difficultyLevel && selectedChapters) {\n postTestSheetAssign(\n {\n items: testPreviewItems,\n node_params: {\n is_timed: true,\n sheet_time: duration * 60,\n difficulty_level: difficultyLevel,\n },\n },\n {\n userMilestoneId: milestoneId,\n },\n );\n }\n }, [postTestSheetAssign, testFormData, milestoneId, testPreviewItems]);\n\n const handleOnFormDataChange = useCallback(\n (updatedFormData: ITestFormData) => {\n setTestFormData(updatedFormData);\n onStateChange?.({ testStage, testFormData: updatedFormData, testPreviewItems });\n },\n [testStage, testPreviewItems, onStateChange],\n );\n\n const handleOnProceed = useCallback(\n (nextStage: ETestsStage, updatedForm?: ITestFormData) => {\n if (updatedForm) {\n const { difficultyLevel, duration } = updatedForm;\n const newFormData = { ...testFormData, ...updatedForm };\n\n setTestFormData(newFormData);\n setTestStage(nextStage);\n\n onStateChange?.({ testStage: nextStage, testFormData: newFormData, testPreviewItems });\n\n if (nextStage === ETestsStage.PREVIEW && difficultyLevel && duration) {\n handleOnPostTestHelpPreview({\n difficulty_level: difficultyLevel,\n duration: duration,\n user_chapter_ids: newFormData.selectedChapters || [],\n });\n }\n } else {\n handleOnTestStageChange(nextStage);\n }\n },\n [\n handleOnTestStageChange,\n handleOnPostTestHelpPreview,\n testFormData,\n testPreviewItems,\n onStateChange,\n ],\n );\n\n useEffect(() => {\n if (milestoneId) {\n handleOnGetMilestone();\n }\n }, [milestoneId, handleOnGetMilestone]);\n\n useEffect(() => {\n if (userChapters && userChapters.length > 0) {\n setTestFormData(prev => ({ ...prev, chapters: userChapters }));\n }\n }, [userChapters]);\n\n useEffect(() => {\n if (state?.testStage !== undefined) {\n setTestStage(state.testStage);\n }\n }, [state?.testStage]);\n\n useEffect(() => {\n if (state?.testFormData !== undefined) {\n setTestFormData(prev => ({\n ...prev,\n ...state.testFormData,\n }));\n }\n }, [state?.testFormData]);\n\n useEffect(() => {\n if (state?.testPreviewItems !== undefined) {\n setTestPreviewItems(state.testPreviewItems);\n }\n }, [state?.testPreviewItems]);\n\n if (isMilestoneProcessing || testPreviewIsProcessing) {\n return <AppLoader height=\"100vh\" />;\n }\n\n if (isMilestoneProcessingFailed) {\n return (\n <FlexView $height=\"100vh\" $flexGapX={1.5} $alignItems=\"center\" $justifyContent=\"center\">\n <Text $renderAs=\"h6\">{milestoneGetError?.message || 'Oops! Something went wrong.'}</Text>\n <Button\n widthX={14}\n size=\"small\"\n shape=\"square\"\n renderAs=\"primary\"\n label=\"Try again\"\n onClick={handleOnGetMilestone}\n />\n </FlexView>\n );\n }\n\n if (!userChapters) return null;\n\n if (testStage === ETestsStage.PREVIEW) {\n return (\n <TestPreview\n studentId={studentId}\n items={testPreviewItems}\n testNumber={testNumber}\n isAssignInProgress={testAssignIsProcessing}\n onTestStageChange={handleOnProceed}\n onTestSheetAssign={handleOnTestSheetAssign}\n userType={userType}\n />\n );\n }\n\n if (testStage === ETestsStage.DIFFICULTY_AND_DURATION_SELECTION) {\n return (\n <DifficultyAndDurationSelection\n testFormData={testFormData}\n userType={userType}\n onTestStageChange={handleOnProceed}\n onFormDataChange={handleOnFormDataChange}\n />\n );\n }\n\n return (\n <ChapterSelection\n testFormData={testFormData}\n userType={userType}\n onProceed={handleOnProceed}\n onExit={onExit}\n onFormDataChange={handleOnFormDataChange}\n />\n );\n});\n\nexport default TestsCreation;\n"],"names":["initFormData","TestsCreation","memo","props","milestoneId","studentId","testNumber","userType","state","onStateChange","onTestAssign","onExit","onError","testStage","setTestStage","useState","ETestsStage","testFormData","setTestFormData","testPreviewItems","setTestPreviewItems","handleOnTestStageChange","useCallback","nextStage","handleOnTestHelpPreviewComplete","errorMessage","data","prev","chapters","selectedChapters","updatedChapters","chapter","newFormData","handleOnTestSheetAssignComplete","getMilestone","currentMilestoneData","isMilestoneProcessing","isMilestoneProcessingFailed","milestoneGetError","useMilestoneGet","postTestHelpPreview","testPreviewIsProcessing","usePostTestHelpPreview","postTestSheetAssign","testAssignIsProcessing","usePostTestSheetAssign","userMilestonePlan","userChapters","handleOnPostTestHelpPreview","handleOnGetMilestone","handleOnTestSheetAssign","duration","difficultyLevel","handleOnFormDataChange","updatedFormData","handleOnProceed","updatedForm","useEffect","jsx","AppLoader","jsxs","FlexView","Text","Button","TestPreview","DifficultyAndDurationSelection","ChapterSelection","TestsCreation$1"],"mappings":"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"}
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { memo as
|
|
1
|
+
import { jsxs as y, jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { memo as A, useRef as S, useCallback as _, useEffect as l, useMemo as $ } from "react";
|
|
3
3
|
import H from "../../ui/image/image.js";
|
|
4
4
|
import M from "../../ui/layout/flex-view.js";
|
|
5
5
|
import x from "../../ui/separator/separator.js";
|
|
6
6
|
import d from "../../worksheet/constants/events.js";
|
|
7
7
|
import N from "../../worksheet/worksheet/hooks/use-learnosity.js";
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
const
|
|
8
|
+
import Q from "../../worksheet/worksheet/hooks/use-worksheet-data-helper.js";
|
|
9
|
+
import { getQuestionsFromItems as V } from "../../worksheet/worksheet/worksheet-helpers.js";
|
|
10
|
+
import { PuzzleQuestionWrapper as P, PuzzleContainer as R } from "./puzzle-app-styled.js";
|
|
11
|
+
const F = (u) => {
|
|
12
12
|
if (!u) return null;
|
|
13
13
|
const t = u.match(/<img[^>]+src="([^">]+)"/);
|
|
14
14
|
return t ? t[1] : null;
|
|
15
|
-
},
|
|
15
|
+
}, L = ({
|
|
16
16
|
worksheetData: u,
|
|
17
17
|
loggerRef: t,
|
|
18
|
-
onWorksheetErrored:
|
|
18
|
+
onWorksheetErrored: n,
|
|
19
19
|
imageHue: I,
|
|
20
20
|
onLoaded: p
|
|
21
21
|
}) => {
|
|
22
|
-
const { signed_request:
|
|
22
|
+
const { signed_request: g, questions_signed_request: w } = u, z = S(null), {
|
|
23
23
|
loadingState: i,
|
|
24
24
|
data: o,
|
|
25
|
-
error:
|
|
26
|
-
} =
|
|
25
|
+
error: f
|
|
26
|
+
} = Q({
|
|
27
27
|
attemptId: void 0,
|
|
28
|
-
signedRequest:
|
|
28
|
+
signedRequest: g,
|
|
29
29
|
loggerRef: t
|
|
30
|
-
}),
|
|
30
|
+
}), E = _(
|
|
31
31
|
(s) => {
|
|
32
|
-
|
|
32
|
+
n({
|
|
33
33
|
code: s.code,
|
|
34
34
|
message: s.detail
|
|
35
35
|
});
|
|
36
36
|
},
|
|
37
|
-
[
|
|
38
|
-
), { learnosity:
|
|
37
|
+
[n]
|
|
38
|
+
), { learnosity: r } = N(w, E, t);
|
|
39
39
|
l(() => {
|
|
40
|
-
i === "error" &&
|
|
41
|
-
message:
|
|
40
|
+
i === "error" && n({
|
|
41
|
+
message: f ?? "Error loading worksheet"
|
|
42
42
|
});
|
|
43
|
-
}, [i,
|
|
44
|
-
|
|
45
|
-
}, [
|
|
46
|
-
|
|
47
|
-
}, [
|
|
43
|
+
}, [i, n, f]), l(() => {
|
|
44
|
+
r && t.current(d.WORKSHEET_V3_LEARNOSITY_INITIALIZED);
|
|
45
|
+
}, [r, t]), l(() => {
|
|
46
|
+
r && i === "success" && p && (t.current(d.WORKSHEET_V3_READY), p());
|
|
47
|
+
}, [r, i, t, p]);
|
|
48
48
|
const m = $(() => i === "success" && (o != null && o.learnosityItems) ? (t.current(d.WORKSHEET_V3_READY), V(o.learnosityItems, {
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
sectioned: !1,
|
|
50
|
+
adaptive: !1
|
|
51
51
|
}).map((e) => ({
|
|
52
52
|
response_id: e.response_id,
|
|
53
53
|
type: e.type,
|
|
@@ -60,12 +60,12 @@ const L = (u) => {
|
|
|
60
60
|
// Add other properties as needed
|
|
61
61
|
}))) : [], [i, o, t]);
|
|
62
62
|
l(() => {
|
|
63
|
-
if (
|
|
63
|
+
if (r && m.length > 0) {
|
|
64
64
|
const c = requestAnimationFrame(() => {
|
|
65
65
|
try {
|
|
66
|
-
|
|
66
|
+
r.renderMath("mathjax");
|
|
67
67
|
} catch (e) {
|
|
68
|
-
|
|
68
|
+
n({
|
|
69
69
|
message: `MathJax rendering failed: ${e instanceof Error ? e.message : "Unknown error"}`
|
|
70
70
|
});
|
|
71
71
|
}
|
|
@@ -74,20 +74,20 @@ const L = (u) => {
|
|
|
74
74
|
cancelAnimationFrame(c);
|
|
75
75
|
};
|
|
76
76
|
}
|
|
77
|
-
}, [
|
|
78
|
-
const
|
|
79
|
-
const { stimulus: c = "", template: e = "", response_id:
|
|
80
|
-
return /* @__PURE__ */
|
|
77
|
+
}, [r, n, m]);
|
|
78
|
+
const T = _((s) => {
|
|
79
|
+
const { stimulus: c = "", template: e = "", response_id: v } = s, h = F(c);
|
|
80
|
+
return /* @__PURE__ */ y(
|
|
81
81
|
M,
|
|
82
82
|
{
|
|
83
83
|
$background: "TRANSPARENT",
|
|
84
84
|
$alignItems: "center",
|
|
85
85
|
className: "puzzle-app-view-question-card",
|
|
86
86
|
children: [
|
|
87
|
-
|
|
87
|
+
h && /* @__PURE__ */ a(
|
|
88
88
|
H,
|
|
89
89
|
{
|
|
90
|
-
src:
|
|
90
|
+
src: h,
|
|
91
91
|
alt: "Puzzle illustration",
|
|
92
92
|
width: 183,
|
|
93
93
|
height: 183,
|
|
@@ -95,26 +95,26 @@ const L = (u) => {
|
|
|
95
95
|
}
|
|
96
96
|
),
|
|
97
97
|
/* @__PURE__ */ a(x, { heightX: 1 }),
|
|
98
|
-
e && /* @__PURE__ */ a(
|
|
98
|
+
e && /* @__PURE__ */ a(P, { children: /* @__PURE__ */ a("div", { dangerouslySetInnerHTML: { __html: e } }) })
|
|
99
99
|
]
|
|
100
100
|
},
|
|
101
|
-
|
|
101
|
+
v
|
|
102
102
|
);
|
|
103
103
|
}, []);
|
|
104
104
|
return m.length ? /* @__PURE__ */ a(
|
|
105
105
|
R,
|
|
106
106
|
{
|
|
107
|
-
ref:
|
|
107
|
+
ref: z,
|
|
108
108
|
$gapX: 1,
|
|
109
109
|
$gutterX: 1,
|
|
110
110
|
$imageHue: I,
|
|
111
111
|
$background: "WHITE_1",
|
|
112
112
|
className: "puzzle-app-view-container",
|
|
113
|
-
children: m.map((s) => /* @__PURE__ */ a("div", { children:
|
|
113
|
+
children: m.map((s) => /* @__PURE__ */ a("div", { children: T(s) }, `question-${s.response_id}`))
|
|
114
114
|
}
|
|
115
115
|
) : null;
|
|
116
|
-
},
|
|
116
|
+
}, U = A(L);
|
|
117
117
|
export {
|
|
118
|
-
|
|
118
|
+
U as default
|
|
119
119
|
};
|
|
120
120
|
//# sourceMappingURL=puzzle-app-view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puzzle-app-view.js","sources":["../../../../src/features/puzzles/app/puzzle-app-view.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useRef, type FC } from 'react';\n\nimport Image from '../../ui/image/image';\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport EVENTS from '../../worksheet/constants/events';\nimport useLearnosity from '../../worksheet/worksheet/hooks/use-learnosity';\nimport useWorksheetDataHelper from '../../worksheet/worksheet/hooks/use-worksheet-data-helper';\nimport type {\n ILearnosityError,\n ILearnosityQuestion,\n} from '../../worksheet/worksheet/worksheet-types';\nimport * as Styled from './puzzle-app-styled';\nimport type { IPuzzleAppViewProps } from './puzzle-app-types';\
|
|
1
|
+
{"version":3,"file":"puzzle-app-view.js","sources":["../../../../src/features/puzzles/app/puzzle-app-view.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useRef, type FC } from 'react';\n\nimport Image from '../../ui/image/image';\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport EVENTS from '../../worksheet/constants/events';\nimport useLearnosity from '../../worksheet/worksheet/hooks/use-learnosity';\nimport useWorksheetDataHelper from '../../worksheet/worksheet/hooks/use-worksheet-data-helper';\nimport { getQuestionsFromItems } from '../../worksheet/worksheet/worksheet-helpers';\nimport type {\n ILearnosityError,\n ILearnosityQuestion,\n} from '../../worksheet/worksheet/worksheet-types';\nimport * as Styled from './puzzle-app-styled';\nimport type { IPuzzleAppViewProps } from './puzzle-app-types';\n\nconst extractImageFromHTML = (htmlString: string) => {\n if (!htmlString) return null;\n\n const imgMatch = htmlString.match(/<img[^>]+src=\"([^\">]+)\"/);\n\n return imgMatch ? imgMatch[1] : null;\n};\n\nconst PuzzleAppView: FC<IPuzzleAppViewProps> = ({\n worksheetData,\n loggerRef,\n onWorksheetErrored,\n imageHue,\n onLoaded,\n}) => {\n const { signed_request: itemsSignedRequest, questions_signed_request: questionSignedRequest } =\n worksheetData;\n\n // Ref for the container to trigger MathJax rendering\n const containerRef = useRef<HTMLDivElement>(null);\n\n // Get Learnosity items using the signed_request (not questions_signed_request)\n const {\n loadingState,\n data: learnosityData,\n error: worksheetError,\n } = useWorksheetDataHelper({\n attemptId: undefined,\n signedRequest: itemsSignedRequest,\n loggerRef,\n });\n\n const onLearnosityErrored = useCallback(\n (err: ILearnosityError) => {\n onWorksheetErrored({\n code: err.code,\n message: err.detail,\n });\n },\n [onWorksheetErrored],\n );\n\n // Initialize Learnosity using questions_signed_request (needed for interactive questions)\n const { learnosity } = useLearnosity(questionSignedRequest, onLearnosityErrored, loggerRef);\n\n useEffect(() => {\n if (loadingState === 'error') {\n onWorksheetErrored({\n message: worksheetError ?? 'Error loading worksheet',\n });\n }\n }, [loadingState, onWorksheetErrored, worksheetError]);\n\n // Log when learnosity is ready for future interactive features\n useEffect(() => {\n if (learnosity) {\n loggerRef.current(EVENTS.WORKSHEET_V3_LEARNOSITY_INITIALIZED);\n }\n }, [learnosity, loggerRef]);\n\n useEffect(() => {\n if (learnosity && loadingState === 'success' && onLoaded) {\n loggerRef.current(EVENTS.WORKSHEET_V3_READY);\n onLoaded();\n }\n }, [learnosity, loadingState, loggerRef, onLoaded]);\n\n // Memoize questions processing to prevent re-render loops\n const questions = useMemo(() => {\n // Extract questions from Learnosity items when data is loaded successfully\n if (loadingState === 'success' && learnosityData?.learnosityItems) {\n loggerRef.current(EVENTS.WORKSHEET_V3_READY);\n\n // Convert learnosityItems to questions using the worksheet helper\n const worksheetQuestions = getQuestionsFromItems(learnosityData.learnosityItems, {\n sectioned: false,\n adaptive: false,\n });\n\n // Extract just the Learnosity questions from worksheet questions\n const learnosityQuestions: ILearnosityQuestion[] = worksheetQuestions.map(q => ({\n response_id: q.response_id,\n type: q.type,\n stimulus: q.stimulus,\n template: q.template,\n stimulus_review: q.stimulus_review,\n options: q.options,\n metadata: q.metadata,\n validation: q.validation,\n // Add other properties as needed\n }));\n\n return learnosityQuestions;\n }\n\n return [];\n }, [loadingState, learnosityData, loggerRef]);\n\n // Force MathJax rendering after questions are loaded and rendered\n // Similar to how useLearnosityAppend does it\n useEffect(() => {\n if (learnosity && questions.length > 0) {\n // Use requestAnimationFrame to ensure DOM is updated before rendering math\n const renderMath = () => {\n try {\n learnosity.renderMath('mathjax');\n } catch (error) {\n onWorksheetErrored({\n message: `MathJax rendering failed: ${\n error instanceof Error ? error.message : 'Unknown error'\n }`,\n });\n }\n };\n\n const animationId = requestAnimationFrame(renderMath);\n\n return () => {\n cancelAnimationFrame(animationId);\n };\n }\n }, [learnosity, onWorksheetErrored, questions]);\n\n const renderQuestionContent = useCallback((question: ILearnosityQuestion) => {\n const { stimulus = '', template = '', response_id: responseId } = question;\n const imageUrl = extractImageFromHTML(stimulus);\n\n return (\n <FlexView\n $background=\"TRANSPARENT\"\n key={responseId}\n $alignItems=\"center\"\n className=\"puzzle-app-view-question-card\"\n >\n {/* Main Image or Interactive Content */}\n {imageUrl && (\n <Image\n src={imageUrl}\n alt=\"Puzzle illustration\"\n width={183}\n height={183}\n withLoader={true}\n />\n )}\n\n <Separator heightX={1} />\n\n {/* Question HTML Content */}\n {template && (\n <Styled.PuzzleQuestionWrapper>\n <div dangerouslySetInnerHTML={{ __html: template }} />\n </Styled.PuzzleQuestionWrapper>\n )}\n </FlexView>\n );\n }, []);\n\n if (!questions.length) return null;\n\n return (\n <Styled.PuzzleContainer\n ref={containerRef}\n $gapX={1}\n $gutterX={1}\n $imageHue={imageHue}\n $background=\"WHITE_1\"\n className=\"puzzle-app-view-container\"\n >\n {questions.map(question => (\n <div key={`question-${question.response_id}`}>{renderQuestionContent(question)}</div>\n ))}\n </Styled.PuzzleContainer>\n );\n};\n\nexport default memo(PuzzleAppView);\n"],"names":["extractImageFromHTML","htmlString","imgMatch","PuzzleAppView","worksheetData","loggerRef","onWorksheetErrored","imageHue","onLoaded","itemsSignedRequest","questionSignedRequest","containerRef","useRef","loadingState","learnosityData","worksheetError","useWorksheetDataHelper","onLearnosityErrored","useCallback","err","learnosity","useLearnosity","useEffect","EVENTS","questions","useMemo","getQuestionsFromItems","q","animationId","error","renderQuestionContent","question","stimulus","template","responseId","imageUrl","jsxs","FlexView","jsx","Image","Separator","Styled.PuzzleQuestionWrapper","Styled.PuzzleContainer","PuzzleAppView$1","memo"],"mappings":"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"}
|