@cuemath/leap 3.1.3 → 3.1.5-aa0

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.
Files changed (43) hide show
  1. package/dist/assets/lib/lib.js +1 -1
  2. package/dist/assets/lib/lib.js.map +1 -1
  3. package/dist/features/cue-canvas/constants/constants.js +35 -3
  4. package/dist/features/cue-canvas/constants/constants.js.map +1 -1
  5. package/dist/features/cue-canvas/cue-canvas-core.js +68 -55
  6. package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
  7. package/dist/features/cue-canvas/cue-canvas-helpers.js +46 -42
  8. package/dist/features/cue-canvas/cue-canvas-helpers.js.map +1 -1
  9. package/dist/features/cue-canvas/cue-canvas-provider.js +21 -23
  10. package/dist/features/cue-canvas/cue-canvas-provider.js.map +1 -1
  11. package/dist/features/cue-canvas/cue-cavas-styled.js +13 -15
  12. package/dist/features/cue-canvas/cue-cavas-styled.js.map +1 -1
  13. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +46 -50
  14. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
  15. package/dist/features/cue-canvas/hooks/use-config-updater.js +11 -4
  16. package/dist/features/cue-canvas/hooks/use-config-updater.js.map +1 -1
  17. package/dist/features/cue-canvas/toolbar/color-palette.js +42 -33
  18. package/dist/features/cue-canvas/toolbar/color-palette.js.map +1 -1
  19. package/dist/features/cue-canvas/toolbar/color-picker-menu.js +28 -25
  20. package/dist/features/cue-canvas/toolbar/color-picker-menu.js.map +1 -1
  21. package/dist/features/cue-canvas/toolbar/pen-tool-menu.js +24 -35
  22. package/dist/features/cue-canvas/toolbar/pen-tool-menu.js.map +1 -1
  23. package/dist/features/cue-canvas/toolbar/toolbar.js +17 -18
  24. package/dist/features/cue-canvas/toolbar/toolbar.js.map +1 -1
  25. package/dist/features/cue-canvas/toolbar/whiteboard-toolbar.js +13 -11
  26. package/dist/features/cue-canvas/toolbar/whiteboard-toolbar.js.map +1 -1
  27. package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js +48 -47
  28. package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js.map +1 -1
  29. package/dist/features/milestone/milestone-list-container/api/get-past-milestone-count.js +18 -0
  30. package/dist/features/milestone/milestone-list-container/api/get-past-milestone-count.js.map +1 -0
  31. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +100 -121
  32. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
  33. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-styled.js +15 -14
  34. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-styled.js.map +1 -1
  35. package/dist/features/milestone/milestone-list-container/milestone-list-container.js +52 -51
  36. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  37. package/dist/features/worksheet/worksheet/worksheet-container.js +26 -26
  38. package/dist/features/worksheet/worksheet/worksheet-container.js.map +1 -1
  39. package/dist/index.d.ts +33 -0
  40. package/dist/index.js +146 -143
  41. package/dist/index.js.map +1 -1
  42. package/dist/static/lib/{polypad-4.5.4.js → polypad-4.5.4.v1.js} +8 -1
  43. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"milestone-list-container.js","sources":["../../../../src/features/milestone/milestone-list-container/milestone-list-container.tsx"],"sourcesContent":["import type {\n IMilestoneContainerProps,\n IMilestoneListQueryParams,\n} from './milestone-list-container-types';\nimport type { IMilestoneData } from './milestone-list/milestone-list-types';\n\nimport { titleCase } from 'humanize-plus';\nimport React, { memo, useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\nimport { EVENTS } from '../../communication/pub-sub/constants';\nimport { useInClassActionListener } from '../../communication/pub-sub/hooks';\nimport { invalidateHomeworks } from '../../homework/hw-card-list/api/get-homeworks';\nimport Separator from '../../ui/separator/separator';\nimport { invalidateMilestoneResources } from './api/get-milestone-resources';\nimport { useGetAllMilestonesdata, invalidateMilestonesData } from './api/get-milestones';\nimport { invalidateTestHelpData } from './api/get-tests-list';\nimport FilterMilestones from './filter-milestones';\nimport MilestoneList from './milestone-list/milestone-list';\nimport MilestoneLoader from './milestone-list/milestone-loader/milestone-loader';\nimport * as Styled from './styled';\n\nconst invalidateAllMilestones = (queryParams: IMilestoneListQueryParams) => {\n invalidateMilestonesData(queryParams);\n};\n\nconst MilestoneListContainer: React.FC<IMilestoneContainerProps> = memo(\n ({ studentName, studentId, studentClassroomId, ...restMilestoneListContainerProps }) => {\n const {\n milestoneType,\n isStudentPresent,\n isClassOngoing,\n userType,\n canCreatePlan,\n teacherName,\n parentName,\n courseStream,\n activeMilestoneId,\n activeTabId,\n onExpandPastMilestones,\n onAddOutcome,\n onChapterClick,\n onEdit,\n onCreateMilestoneTest,\n onDraftPublish,\n onAddChapter,\n onCreatePlan,\n onDelete,\n onAssignResources,\n onNodeAttempt,\n onNodeView,\n onNodeReview,\n onNodeReattempt,\n onNodeReset,\n onNodeUnassign,\n onTestPreview,\n onTestReview,\n onTestStart,\n onWidgetTabSelection,\n onNodeAssignAsHomework,\n } = restMilestoneListContainerProps;\n\n const queryParams: IMilestoneListQueryParams = useMemo(\n () =>\n ({\n milestone_state_group:\n milestoneType === 'ACTIVE'\n ? userType === 'TEACHER'\n ? 'LIVE'\n : 'STUDENT_LIVE'\n : milestoneType,\n course_stream: courseStream,\n student_id: studentId,\n }) as const,\n [milestoneType, courseStream, studentId, userType],\n );\n\n const {\n data: milestoneData,\n getAll: getMilestoneData,\n isStale: isMilestoneDataStale,\n isProcessing: isMilestoneProcessing,\n } = useGetAllMilestonesdata(queryParams);\n\n const [filteredMilestones, setFilteredMilestones] = useState<IMilestoneData[] | undefined>();\n const [isFiltersAdded, setIsFiltersAdded] = useState<boolean>(false);\n\n const handleFilterMilestones = useCallback(\n (data: { searchText?: string; selectedBoard?: string; selectedGrade?: string }) => {\n const { searchText, selectedBoard, selectedGrade } = data || {};\n\n if (searchText || selectedBoard || selectedGrade) {\n setIsFiltersAdded(true);\n }\n\n const filteredData = milestoneData?.filter(item => {\n const { milestone_name: milestoneName, board, grade } = item || {};\n const matchesSearchText = searchText\n ? milestoneName.toLowerCase().includes(searchText.toLowerCase())\n : true;\n const matchesCurriculum = selectedBoard ? board === selectedBoard : true;\n const matchesGrade = selectedGrade ? grade === selectedGrade : true;\n\n return matchesSearchText && matchesCurriculum && matchesGrade;\n });\n\n setFilteredMilestones(filteredData);\n },\n [milestoneData],\n );\n\n const handleClearFilter = () => {\n setIsFiltersAdded(false);\n setFilteredMilestones(undefined);\n };\n\n useInClassActionListener(\n {\n studentClassroomId,\n actions: [\n [EVENTS.CHAPTER_UPDATED],\n [EVENTS.LESSONS_MARKED_AS_FAMILIAR],\n [EVENTS.LESSONS_MARKED_AS_IRRELEVANT],\n [EVENTS.LESSONS_PROGRESS_RESET],\n [EVENTS.UNLOCK_SHEETS],\n [EVENTS.EXTRA_PRACTICE_ASSIGNED],\n [EVENTS.MILESTONE_DATE_UPDATED],\n [EVENTS.MILESTONE_DELETED],\n [EVENTS.MILESTONE_NAME_UPDATED],\n [EVENTS.MILESTONE_EDITED],\n [EVENTS.MILESTONE_RESOURCE_ASSIGNED],\n [EVENTS.MILESTONE_RESOURCE_UNASSIGNED],\n [EVENTS.MILESTONE_RESOURCE_RESET],\n [EVENTS.SHEET_UNASSIGNED],\n [EVENTS.GOAL_CREATED],\n [EVENTS.GOAL_EDITED],\n [EVENTS.GOAL_DELETED],\n [EVENTS.GOAL_OUTCOME_ADDED],\n [EVENTS.PAST_MILESTONE_OUTCOME_ADDED],\n [EVENTS.MILESTONE_TEST_ASSIGNED],\n [EVENTS.SHEET_MARKED_AS_REVIEWED],\n ],\n callback: messages => {\n const milestoneResourceEventPayload = messages.find(\n message =>\n message.eventName === EVENTS.MILESTONE_RESOURCE_ASSIGNED ||\n message.eventName === EVENTS.MILESTONE_RESOURCE_UNASSIGNED ||\n message.eventName === EVENTS.MILESTONE_RESOURCE_RESET ||\n message.eventName === EVENTS.SHEET_MARKED_AS_REVIEWED,\n )?.eventPayload;\n const milestoneTestEventPayload = messages.find(\n message =>\n message.eventName === EVENTS.MILESTONE_TEST_ASSIGNED ||\n message.eventName === EVENTS.MILESTONE_RESOURCE_RESET,\n )?.eventPayload;\n\n if (milestoneResourceEventPayload) {\n const { milestoneId: resourceMilestoneId } =\n (milestoneResourceEventPayload as { milestoneId: string }) || {};\n\n invalidateHomeworks(studentId);\n invalidateMilestoneResources(resourceMilestoneId);\n }\n\n if (milestoneTestEventPayload) {\n const { milestoneId } = milestoneTestEventPayload as { milestoneId: string };\n\n invalidateHomeworks(studentId);\n invalidateTestHelpData(milestoneId);\n }\n\n invalidateAllMilestones(queryParams);\n },\n },\n (milestoneType === 'ACTIVE' || milestoneType === 'INACTIVE') && isStudentPresent,\n );\n\n useEffect(() => {\n getMilestoneData(queryParams);\n }, [getMilestoneData, queryParams]);\n\n useEffect(() => {\n if (!isMilestoneProcessing && isMilestoneDataStale) {\n getMilestoneData(queryParams);\n }\n }, [getMilestoneData, queryParams, isMilestoneDataStale, isMilestoneProcessing]);\n\n if (isMilestoneProcessing && !milestoneData) {\n return <MilestoneLoader numMilestones={2} />;\n }\n\n const showFilters = milestoneType === 'ACTIVE' && milestoneData && milestoneData.length > 6;\n\n return (\n <Styled.ContentWrapper $disablePointerEvents={isMilestoneProcessing}>\n {isMilestoneProcessing && (\n <Styled.LoaderWrapper>\n <img src={ILLUSTRATIONS.LOADER_1} alt=\"loading\" />\n </Styled.LoaderWrapper>\n )}\n {showFilters && (\n <>\n <FilterMilestones\n filteredMilestones={filteredMilestones}\n milestones={milestoneData}\n handleFilterMilestones={handleFilterMilestones}\n handleClearFilter={handleClearFilter}\n />\n <Separator heightX={1.5} />\n </>\n )}\n\n <MilestoneList\n showFilters={!!showFilters}\n canCreatePlan={canCreatePlan}\n isClassOngoing={isClassOngoing}\n isFiltersAdded={isFiltersAdded}\n isStudentPresent={isStudentPresent}\n milestoneType={milestoneType}\n milestones={isFiltersAdded ? filteredMilestones : milestoneData}\n onAddChapter={onAddChapter}\n onAddOutcome={onAddOutcome}\n onChapterClick={onChapterClick}\n onCreatePlan={onCreatePlan}\n onDelete={onDelete}\n onDraftPublish={onDraftPublish}\n onEdit={onEdit}\n onExpandPastMilestones={onExpandPastMilestones}\n onCreateMilestoneTest={onCreateMilestoneTest}\n onAssignResources={onAssignResources}\n onTestPreview={onTestPreview}\n onTestReview={onTestReview}\n onTestStart={onTestStart}\n onNodeAttempt={onNodeAttempt}\n onNodeView={onNodeView}\n onNodeReview={onNodeReview}\n onNodeReattempt={onNodeReattempt}\n onNodeReset={onNodeReset}\n onNodeUnassign={onNodeUnassign}\n onNodeAssignAsHomework={onNodeAssignAsHomework}\n activeMilestoneId={activeMilestoneId}\n activeTabId={activeTabId}\n onWidgetTabSelection={onWidgetTabSelection}\n studentId={studentId}\n studentName={titleCase(studentName)}\n teacherName={teacherName}\n parentName={parentName}\n userType={userType}\n courseStream={courseStream}\n />\n </Styled.ContentWrapper>\n );\n },\n);\n\nexport default MilestoneListContainer;\n"],"names":["invalidateAllMilestones","queryParams","invalidateMilestonesData","MilestoneListContainer","memo","studentName","studentId","studentClassroomId","restMilestoneListContainerProps","milestoneType","isStudentPresent","isClassOngoing","userType","canCreatePlan","teacherName","parentName","courseStream","activeMilestoneId","activeTabId","onExpandPastMilestones","onAddOutcome","onChapterClick","onEdit","onCreateMilestoneTest","onDraftPublish","onAddChapter","onCreatePlan","onDelete","onAssignResources","onNodeAttempt","onNodeView","onNodeReview","onNodeReattempt","onNodeReset","onNodeUnassign","onTestPreview","onTestReview","onTestStart","onWidgetTabSelection","onNodeAssignAsHomework","useMemo","milestoneData","getMilestoneData","isMilestoneDataStale","isMilestoneProcessing","useGetAllMilestonesdata","filteredMilestones","setFilteredMilestones","useState","isFiltersAdded","setIsFiltersAdded","handleFilterMilestones","useCallback","data","searchText","selectedBoard","selectedGrade","filteredData","item","milestoneName","board","grade","handleClearFilter","useInClassActionListener","EVENTS","messages","milestoneResourceEventPayload","_a","message","milestoneTestEventPayload","_b","resourceMilestoneId","invalidateHomeworks","invalidateMilestoneResources","milestoneId","invalidateTestHelpData","useEffect","jsx","MilestoneLoader","showFilters","jsxs","Styled.ContentWrapper","Styled.LoaderWrapper","ILLUSTRATIONS","Fragment","FilterMilestones","Separator","MilestoneList","titleCase","MilestoneListContainer$1"],"mappings":"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"}
1
+ {"version":3,"file":"milestone-list-container.js","sources":["../../../../src/features/milestone/milestone-list-container/milestone-list-container.tsx"],"sourcesContent":["import type {\n IMilestoneContainerProps,\n IMilestoneListQueryParams,\n} from './milestone-list-container-types';\nimport type { IMilestoneData } from './milestone-list/milestone-list-types';\n\nimport { titleCase } from 'humanize-plus';\nimport React, { memo, useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\nimport { EVENTS } from '../../communication/pub-sub/constants';\nimport { useInClassActionListener } from '../../communication/pub-sub/hooks';\nimport { invalidateHomeworks } from '../../homework/hw-card-list/api/get-homeworks';\nimport Separator from '../../ui/separator/separator';\nimport { invalidateMilestoneResources } from './api/get-milestone-resources';\nimport { useGetAllMilestonesdata, invalidateMilestonesData } from './api/get-milestones';\nimport { invalidatePastMilestoneCount } from './api/get-past-milestone-count';\nimport { invalidateTestHelpData } from './api/get-tests-list';\nimport FilterMilestones from './filter-milestones';\nimport MilestoneList from './milestone-list/milestone-list';\nimport MilestoneLoader from './milestone-list/milestone-loader/milestone-loader';\nimport * as Styled from './styled';\n\nconst invalidateAllMilestones = (queryParams: IMilestoneListQueryParams) => {\n invalidateMilestonesData(queryParams);\n invalidatePastMilestoneCount(queryParams.student_id);\n};\n\nconst MilestoneListContainer: React.FC<IMilestoneContainerProps> = memo(\n ({ studentName, studentId, studentClassroomId, ...restMilestoneListContainerProps }) => {\n const {\n milestoneType,\n isStudentPresent,\n isClassOngoing,\n userType,\n canCreatePlan,\n teacherName,\n parentName,\n courseStream,\n activeMilestoneId,\n activeTabId,\n onExpandPastMilestones,\n onAddOutcome,\n onChapterClick,\n onEdit,\n onCreateMilestoneTest,\n onDraftPublish,\n onAddChapter,\n onCreatePlan,\n onDelete,\n onAssignResources,\n onNodeAttempt,\n onNodeView,\n onNodeReview,\n onNodeReattempt,\n onNodeReset,\n onNodeUnassign,\n onTestPreview,\n onTestReview,\n onTestStart,\n onWidgetTabSelection,\n onNodeAssignAsHomework,\n } = restMilestoneListContainerProps;\n\n const queryParams: IMilestoneListQueryParams = useMemo(\n () =>\n ({\n milestone_state_group:\n milestoneType === 'ACTIVE'\n ? userType === 'TEACHER'\n ? 'LIVE'\n : 'STUDENT_LIVE'\n : milestoneType,\n course_stream: courseStream,\n student_id: studentId,\n }) as const,\n [milestoneType, courseStream, studentId, userType],\n );\n\n const {\n data: milestoneData,\n getAll: getMilestoneData,\n isStale: isMilestoneDataStale,\n isProcessing: isMilestoneProcessing,\n } = useGetAllMilestonesdata(queryParams);\n\n const [filteredMilestones, setFilteredMilestones] = useState<IMilestoneData[] | undefined>();\n const [isFiltersAdded, setIsFiltersAdded] = useState<boolean>(false);\n\n const handleFilterMilestones = useCallback(\n (data: { searchText?: string; selectedBoard?: string; selectedGrade?: string }) => {\n const { searchText, selectedBoard, selectedGrade } = data || {};\n\n if (searchText || selectedBoard || selectedGrade) {\n setIsFiltersAdded(true);\n }\n\n const filteredData = milestoneData?.filter(item => {\n const { milestone_name: milestoneName, board, grade } = item || {};\n const matchesSearchText = searchText\n ? milestoneName.toLowerCase().includes(searchText.toLowerCase())\n : true;\n const matchesCurriculum = selectedBoard ? board === selectedBoard : true;\n const matchesGrade = selectedGrade ? grade === selectedGrade : true;\n\n return matchesSearchText && matchesCurriculum && matchesGrade;\n });\n\n setFilteredMilestones(filteredData);\n },\n [milestoneData],\n );\n\n const handleClearFilter = () => {\n setIsFiltersAdded(false);\n setFilteredMilestones(undefined);\n };\n\n useInClassActionListener(\n {\n studentClassroomId,\n actions: [\n [EVENTS.CHAPTER_UPDATED],\n [EVENTS.LESSONS_MARKED_AS_FAMILIAR],\n [EVENTS.LESSONS_MARKED_AS_IRRELEVANT],\n [EVENTS.LESSONS_PROGRESS_RESET],\n [EVENTS.UNLOCK_SHEETS],\n [EVENTS.EXTRA_PRACTICE_ASSIGNED],\n [EVENTS.MILESTONE_DATE_UPDATED],\n [EVENTS.MILESTONE_DELETED],\n [EVENTS.MILESTONE_NAME_UPDATED],\n [EVENTS.MILESTONE_EDITED],\n [EVENTS.MILESTONE_RESOURCE_ASSIGNED],\n [EVENTS.MILESTONE_RESOURCE_UNASSIGNED],\n [EVENTS.MILESTONE_RESOURCE_RESET],\n [EVENTS.SHEET_UNASSIGNED],\n [EVENTS.GOAL_CREATED],\n [EVENTS.GOAL_EDITED],\n [EVENTS.GOAL_DELETED],\n [EVENTS.GOAL_OUTCOME_ADDED],\n [EVENTS.PAST_MILESTONE_OUTCOME_ADDED],\n [EVENTS.MILESTONE_TEST_ASSIGNED],\n [EVENTS.SHEET_MARKED_AS_REVIEWED],\n ],\n callback: messages => {\n const milestoneResourceEventPayload = messages.find(\n message =>\n message.eventName === EVENTS.MILESTONE_RESOURCE_ASSIGNED ||\n message.eventName === EVENTS.MILESTONE_RESOURCE_UNASSIGNED ||\n message.eventName === EVENTS.MILESTONE_RESOURCE_RESET ||\n message.eventName === EVENTS.SHEET_MARKED_AS_REVIEWED,\n )?.eventPayload;\n const milestoneTestEventPayload = messages.find(\n message =>\n message.eventName === EVENTS.MILESTONE_TEST_ASSIGNED ||\n message.eventName === EVENTS.MILESTONE_RESOURCE_RESET,\n )?.eventPayload;\n\n if (milestoneResourceEventPayload) {\n const { milestoneId: resourceMilestoneId } =\n (milestoneResourceEventPayload as { milestoneId: string }) || {};\n\n invalidateHomeworks(studentId);\n invalidateMilestoneResources(resourceMilestoneId);\n }\n\n if (milestoneTestEventPayload) {\n const { milestoneId } = milestoneTestEventPayload as { milestoneId: string };\n\n invalidateHomeworks(studentId);\n invalidateTestHelpData(milestoneId);\n }\n\n invalidateAllMilestones(queryParams);\n },\n },\n (milestoneType === 'ACTIVE' || milestoneType === 'INACTIVE') && isStudentPresent,\n );\n\n useEffect(() => {\n getMilestoneData(queryParams);\n }, [getMilestoneData, queryParams]);\n\n useEffect(() => {\n if (!isMilestoneProcessing && isMilestoneDataStale) {\n getMilestoneData(queryParams);\n }\n }, [getMilestoneData, queryParams, isMilestoneDataStale, isMilestoneProcessing]);\n\n if (isMilestoneProcessing && !milestoneData) {\n return <MilestoneLoader numMilestones={2} />;\n }\n\n const showFilters = milestoneType === 'ACTIVE' && milestoneData && milestoneData.length > 6;\n\n return (\n <Styled.ContentWrapper $disablePointerEvents={isMilestoneProcessing}>\n {isMilestoneProcessing && (\n <Styled.LoaderWrapper>\n <img src={ILLUSTRATIONS.LOADER_1} alt=\"loading\" />\n </Styled.LoaderWrapper>\n )}\n {showFilters && (\n <>\n <FilterMilestones\n filteredMilestones={filteredMilestones}\n milestones={milestoneData}\n handleFilterMilestones={handleFilterMilestones}\n handleClearFilter={handleClearFilter}\n />\n <Separator heightX={1.5} />\n </>\n )}\n\n <MilestoneList\n showFilters={!!showFilters}\n canCreatePlan={canCreatePlan}\n isClassOngoing={isClassOngoing}\n isFiltersAdded={isFiltersAdded}\n isStudentPresent={isStudentPresent}\n milestoneType={milestoneType}\n milestones={isFiltersAdded ? filteredMilestones : milestoneData}\n onAddChapter={onAddChapter}\n onAddOutcome={onAddOutcome}\n onChapterClick={onChapterClick}\n onCreatePlan={onCreatePlan}\n onDelete={onDelete}\n onDraftPublish={onDraftPublish}\n onEdit={onEdit}\n onExpandPastMilestones={onExpandPastMilestones}\n onCreateMilestoneTest={onCreateMilestoneTest}\n onAssignResources={onAssignResources}\n onTestPreview={onTestPreview}\n onTestReview={onTestReview}\n onTestStart={onTestStart}\n onNodeAttempt={onNodeAttempt}\n onNodeView={onNodeView}\n onNodeReview={onNodeReview}\n onNodeReattempt={onNodeReattempt}\n onNodeReset={onNodeReset}\n onNodeUnassign={onNodeUnassign}\n onNodeAssignAsHomework={onNodeAssignAsHomework}\n activeMilestoneId={activeMilestoneId}\n activeTabId={activeTabId}\n onWidgetTabSelection={onWidgetTabSelection}\n studentId={studentId}\n studentName={titleCase(studentName)}\n teacherName={teacherName}\n parentName={parentName}\n userType={userType}\n courseStream={courseStream}\n />\n </Styled.ContentWrapper>\n );\n },\n);\n\nexport default MilestoneListContainer;\n"],"names":["invalidateAllMilestones","queryParams","invalidateMilestonesData","invalidatePastMilestoneCount","MilestoneListContainer","memo","studentName","studentId","studentClassroomId","restMilestoneListContainerProps","milestoneType","isStudentPresent","isClassOngoing","userType","canCreatePlan","teacherName","parentName","courseStream","activeMilestoneId","activeTabId","onExpandPastMilestones","onAddOutcome","onChapterClick","onEdit","onCreateMilestoneTest","onDraftPublish","onAddChapter","onCreatePlan","onDelete","onAssignResources","onNodeAttempt","onNodeView","onNodeReview","onNodeReattempt","onNodeReset","onNodeUnassign","onTestPreview","onTestReview","onTestStart","onWidgetTabSelection","onNodeAssignAsHomework","useMemo","milestoneData","getMilestoneData","isMilestoneDataStale","isMilestoneProcessing","useGetAllMilestonesdata","filteredMilestones","setFilteredMilestones","useState","isFiltersAdded","setIsFiltersAdded","handleFilterMilestones","useCallback","data","searchText","selectedBoard","selectedGrade","filteredData","item","milestoneName","board","grade","handleClearFilter","useInClassActionListener","EVENTS","messages","milestoneResourceEventPayload","_a","message","milestoneTestEventPayload","_b","resourceMilestoneId","invalidateHomeworks","invalidateMilestoneResources","milestoneId","invalidateTestHelpData","useEffect","jsx","MilestoneLoader","showFilters","jsxs","Styled.ContentWrapper","Styled.LoaderWrapper","ILLUSTRATIONS","Fragment","FilterMilestones","Separator","MilestoneList","titleCase","MilestoneListContainer$1"],"mappings":"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"}
@@ -1,25 +1,25 @@
1
1
  import { jsx as f } from "react/jsx-runtime";
2
2
  import { memo as W, forwardRef as S, useCallback as q, useEffect as m } from "react";
3
- import L from "../../cue-canvas/cue-canvas-provider.js";
4
- import v from "../constants/events.js";
5
- import I from "./hooks/use-learnosity.js";
6
- import T from "./hooks/use-worksheet-data-helper.js";
7
- import w from "./worksheet.js";
8
- const x = (u, l) => {
3
+ import v from "../../cue-canvas/cue-canvas-provider.js";
4
+ import L from "../constants/events.js";
5
+ import A from "./hooks/use-learnosity.js";
6
+ import I from "./hooks/use-worksheet-data-helper.js";
7
+ import T from "./worksheet.js";
8
+ const w = (u, l) => {
9
9
  const {
10
10
  attemptId: R,
11
11
  itemsSignedRequest: g,
12
- questionsSignedRequest: p,
12
+ questionsSignedRequest: c,
13
13
  onLoaded: r,
14
14
  onErrored: t,
15
15
  onResponsesLoaded: a,
16
- loggerRef: o,
17
- userType: c,
16
+ loggerRef: s,
17
+ userType: d,
18
18
  ...E
19
- } = u, { loadingState: s, learnosityActivityRef: h, data: e, error: d } = T({
19
+ } = u, { loadingState: o, learnosityActivityRef: h, data: e, error: p } = I({
20
20
  attemptId: R,
21
21
  signedRequest: g,
22
- loggerRef: o
22
+ loggerRef: s
23
23
  }), y = q(
24
24
  (i) => {
25
25
  t({
@@ -28,39 +28,39 @@ const x = (u, l) => {
28
28
  });
29
29
  },
30
30
  [t]
31
- ), { learnosity: n, appendedQuestionIds: k } = I(
32
- p,
31
+ ), { learnosity: n, appendedQuestionIds: k } = A(
32
+ c,
33
33
  y,
34
- o
34
+ s
35
35
  );
36
36
  if (m(() => {
37
- s === "error" && t({
38
- message: d ?? "Error loading worksheet"
37
+ o === "error" && t({
38
+ message: p ?? "Error loading worksheet"
39
39
  });
40
- }, [s, d, r, t]), m(() => {
41
- n && s === "success" && r && (o.current(v.WORKSHEET_V3_READY), r());
42
- }, [n, s, o, r]), m(() => {
40
+ }, [o, p, r, t]), m(() => {
41
+ n && o === "success" && r && (s.current(L.WORKSHEET_V3_READY), r());
42
+ }, [n, o, s, r]), m(() => {
43
43
  e != null && e.responses && a && a(e.responses ?? {});
44
- }, [e == null ? void 0 : e.responses, a]), s === "success" && e && n) {
44
+ }, [e == null ? void 0 : e.responses, a]), o === "success" && e && n) {
45
45
  const { learnosityItems: i, responses: C } = e;
46
- return /* @__PURE__ */ f(L, { userType: c, children: /* @__PURE__ */ f(
47
- w,
46
+ return /* @__PURE__ */ f(v, { userType: d, renderAs: "canvas", children: /* @__PURE__ */ f(
47
+ T,
48
48
  {
49
49
  ref: l,
50
- questionsSignedRequest: p,
50
+ questionsSignedRequest: c,
51
51
  learnosity: n,
52
52
  appendedQuestionIds: k,
53
53
  learnosityActivityRef: h,
54
54
  learnosityItems: i,
55
55
  learnosityResponses: C,
56
- loggerRef: o,
57
- userType: c,
56
+ loggerRef: s,
57
+ userType: d,
58
58
  ...E
59
59
  }
60
60
  ) });
61
61
  }
62
62
  return null;
63
- }, A = W(S(x)), N = A;
63
+ }, x = W(S(w)), N = x;
64
64
  export {
65
65
  N as default
66
66
  };
@@ -1 +1 @@
1
- {"version":3,"file":"worksheet-container.js","sources":["../../../../src/features/worksheet/worksheet/worksheet-container.tsx"],"sourcesContent":["import type { IWorksheetRef } from './worksheet-types';\nimport type { ForwardRefRenderFunction } from 'react';\n\nimport { forwardRef, memo, useCallback, useEffect } from 'react';\n\nimport CueCanvasProvider from '../../cue-canvas/cue-canvas-provider';\nimport EVENTS from '../constants/events';\nimport useLearnosity from './hooks/use-learnosity';\nimport useWorksheetDataHelper from './hooks/use-worksheet-data-helper';\nimport Worksheet from './worksheet';\nimport { type ILearnosityError, type IWorksheetContainerProps } from './worksheet-types';\n\nconst WorksheetContainerComp: ForwardRefRenderFunction<IWorksheetRef, IWorksheetContainerProps> = (\n props,\n ref,\n) => {\n const {\n attemptId,\n itemsSignedRequest,\n questionsSignedRequest,\n onLoaded,\n onErrored,\n onResponsesLoaded,\n loggerRef,\n userType,\n ...other\n } = props;\n\n const { loadingState, learnosityActivityRef, data, error } = useWorksheetDataHelper({\n attemptId,\n signedRequest: itemsSignedRequest,\n loggerRef,\n });\n\n const onLearnosityErrored = useCallback(\n (err: ILearnosityError) => {\n onErrored({\n code: err.code,\n message: err.detail,\n });\n },\n [onErrored],\n );\n\n const { learnosity, appendedQuestionIds } = useLearnosity(\n questionsSignedRequest,\n onLearnosityErrored,\n loggerRef,\n );\n\n useEffect(() => {\n if (loadingState === 'error') {\n onErrored({\n message: error ?? 'Error loading worksheet',\n });\n }\n }, [loadingState, error, onLoaded, onErrored]);\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 useEffect(() => {\n if (data?.responses && onResponsesLoaded) {\n onResponsesLoaded(data.responses ?? {});\n }\n }, [data?.responses, onResponsesLoaded]);\n\n if (loadingState === 'success' && data && learnosity) {\n const { learnosityItems, responses } = data;\n\n return (\n <CueCanvasProvider userType={userType}>\n <Worksheet\n ref={ref}\n questionsSignedRequest={questionsSignedRequest}\n learnosity={learnosity}\n appendedQuestionIds={appendedQuestionIds}\n learnosityActivityRef={learnosityActivityRef}\n learnosityItems={learnosityItems}\n learnosityResponses={responses}\n loggerRef={loggerRef}\n userType={userType}\n {...other}\n />\n </CueCanvasProvider>\n );\n }\n\n return null;\n};\n\nconst WorksheetContainer = memo(forwardRef(WorksheetContainerComp));\n\nexport default WorksheetContainer;\n"],"names":["WorksheetContainerComp","props","ref","attemptId","itemsSignedRequest","questionsSignedRequest","onLoaded","onErrored","onResponsesLoaded","loggerRef","userType","other","loadingState","learnosityActivityRef","data","error","useWorksheetDataHelper","onLearnosityErrored","useCallback","err","learnosity","appendedQuestionIds","useLearnosity","useEffect","EVENTS","learnosityItems","responses","jsx","CueCanvasProvider","Worksheet","WorksheetContainer","memo","forwardRef","WorksheetContainer$1"],"mappings":";;;;;;;AAYA,MAAMA,IAA4F,CAChGC,GACAC,MACG;AACG,QAAA;AAAA,IACJ,WAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,wBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,GAAGC;AAAA,EACD,IAAAV,GAEE,EAAE,cAAAW,GAAc,uBAAAC,GAAuB,MAAAC,GAAM,OAAAC,EAAA,IAAUC,EAAuB;AAAA,IAClF,WAAAb;AAAA,IACA,eAAeC;AAAA,IACf,WAAAK;AAAA,EAAA,CACD,GAEKQ,IAAsBC;AAAA,IAC1B,CAACC,MAA0B;AACf,MAAAZ,EAAA;AAAA,QACR,MAAMY,EAAI;AAAA,QACV,SAASA,EAAI;AAAA,MAAA,CACd;AAAA,IACH;AAAA,IACA,CAACZ,CAAS;AAAA,EAAA,GAGN,EAAE,YAAAa,GAAY,qBAAAC,EAAA,IAAwBC;AAAA,IAC1CjB;AAAA,IACAY;AAAA,IACAR;AAAA,EAAA;AAwBE,MArBJc,EAAU,MAAM;AACd,IAAIX,MAAiB,WACTL,EAAA;AAAA,MACR,SAASQ,KAAS;AAAA,IAAA,CACnB;AAAA,KAEF,CAACH,GAAcG,GAAOT,GAAUC,CAAS,CAAC,GAE7CgB,EAAU,MAAM;AACV,IAAAH,KAAcR,MAAiB,aAAaN,MACpCG,EAAA,QAAQe,EAAO,kBAAkB,GAClClB;KAEV,CAACc,GAAYR,GAAcH,GAAWH,CAAQ,CAAC,GAElDiB,EAAU,MAAM;AACV,IAAAT,KAAA,QAAAA,EAAM,aAAaN,KACHA,EAAAM,EAAK,aAAa,CAAA,CAAE;AAAA,EAEvC,GAAA,CAACA,KAAA,gBAAAA,EAAM,WAAWN,CAAiB,CAAC,GAEnCI,MAAiB,aAAaE,KAAQM,GAAY;AAC9C,UAAA,EAAE,iBAAAK,GAAiB,WAAAC,EAAc,IAAAZ;AAGrC,WAAA,gBAAAa,EAACC,KAAkB,UAAAlB,GACjB,UAAA,gBAAAiB;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,KAAA3B;AAAA,QACA,wBAAAG;AAAA,QACA,YAAAe;AAAA,QACA,qBAAAC;AAAA,QACA,uBAAAR;AAAA,QACA,iBAAAY;AAAA,QACA,qBAAqBC;AAAA,QACrB,WAAAjB;AAAA,QACA,UAAAC;AAAA,QACC,GAAGC;AAAA,MAAA;AAAA,IAER,EAAA,CAAA;AAAA,EAEJ;AAEO,SAAA;AACT,GAEMmB,IAAqBC,EAAKC,EAAWhC,CAAsB,CAAC,GAElEiC,IAAeH;"}
1
+ {"version":3,"file":"worksheet-container.js","sources":["../../../../src/features/worksheet/worksheet/worksheet-container.tsx"],"sourcesContent":["import type { IWorksheetRef } from './worksheet-types';\nimport type { ForwardRefRenderFunction } from 'react';\n\nimport { forwardRef, memo, useCallback, useEffect } from 'react';\n\nimport CueCanvasProvider from '../../cue-canvas/cue-canvas-provider';\nimport EVENTS from '../constants/events';\nimport useLearnosity from './hooks/use-learnosity';\nimport useWorksheetDataHelper from './hooks/use-worksheet-data-helper';\nimport Worksheet from './worksheet';\nimport { type ILearnosityError, type IWorksheetContainerProps } from './worksheet-types';\n\nconst WorksheetContainerComp: ForwardRefRenderFunction<IWorksheetRef, IWorksheetContainerProps> = (\n props,\n ref,\n) => {\n const {\n attemptId,\n itemsSignedRequest,\n questionsSignedRequest,\n onLoaded,\n onErrored,\n onResponsesLoaded,\n loggerRef,\n userType,\n ...other\n } = props;\n\n const { loadingState, learnosityActivityRef, data, error } = useWorksheetDataHelper({\n attemptId,\n signedRequest: itemsSignedRequest,\n loggerRef,\n });\n\n const onLearnosityErrored = useCallback(\n (err: ILearnosityError) => {\n onErrored({\n code: err.code,\n message: err.detail,\n });\n },\n [onErrored],\n );\n\n const { learnosity, appendedQuestionIds } = useLearnosity(\n questionsSignedRequest,\n onLearnosityErrored,\n loggerRef,\n );\n\n useEffect(() => {\n if (loadingState === 'error') {\n onErrored({\n message: error ?? 'Error loading worksheet',\n });\n }\n }, [loadingState, error, onLoaded, onErrored]);\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 useEffect(() => {\n if (data?.responses && onResponsesLoaded) {\n onResponsesLoaded(data.responses ?? {});\n }\n }, [data?.responses, onResponsesLoaded]);\n\n if (loadingState === 'success' && data && learnosity) {\n const { learnosityItems, responses } = data;\n\n return (\n <CueCanvasProvider userType={userType} renderAs=\"canvas\">\n <Worksheet\n ref={ref}\n questionsSignedRequest={questionsSignedRequest}\n learnosity={learnosity}\n appendedQuestionIds={appendedQuestionIds}\n learnosityActivityRef={learnosityActivityRef}\n learnosityItems={learnosityItems}\n learnosityResponses={responses}\n loggerRef={loggerRef}\n userType={userType}\n {...other}\n />\n </CueCanvasProvider>\n );\n }\n\n return null;\n};\n\nconst WorksheetContainer = memo(forwardRef(WorksheetContainerComp));\n\nexport default WorksheetContainer;\n"],"names":["WorksheetContainerComp","props","ref","attemptId","itemsSignedRequest","questionsSignedRequest","onLoaded","onErrored","onResponsesLoaded","loggerRef","userType","other","loadingState","learnosityActivityRef","data","error","useWorksheetDataHelper","onLearnosityErrored","useCallback","err","learnosity","appendedQuestionIds","useLearnosity","useEffect","EVENTS","learnosityItems","responses","jsx","CueCanvasProvider","Worksheet","WorksheetContainer","memo","forwardRef","WorksheetContainer$1"],"mappings":";;;;;;;AAYA,MAAMA,IAA4F,CAChGC,GACAC,MACG;AACG,QAAA;AAAA,IACJ,WAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,wBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,GAAGC;AAAA,EACD,IAAAV,GAEE,EAAE,cAAAW,GAAc,uBAAAC,GAAuB,MAAAC,GAAM,OAAAC,EAAA,IAAUC,EAAuB;AAAA,IAClF,WAAAb;AAAA,IACA,eAAeC;AAAA,IACf,WAAAK;AAAA,EAAA,CACD,GAEKQ,IAAsBC;AAAA,IAC1B,CAACC,MAA0B;AACf,MAAAZ,EAAA;AAAA,QACR,MAAMY,EAAI;AAAA,QACV,SAASA,EAAI;AAAA,MAAA,CACd;AAAA,IACH;AAAA,IACA,CAACZ,CAAS;AAAA,EAAA,GAGN,EAAE,YAAAa,GAAY,qBAAAC,EAAA,IAAwBC;AAAA,IAC1CjB;AAAA,IACAY;AAAA,IACAR;AAAA,EAAA;AAwBE,MArBJc,EAAU,MAAM;AACd,IAAIX,MAAiB,WACTL,EAAA;AAAA,MACR,SAASQ,KAAS;AAAA,IAAA,CACnB;AAAA,KAEF,CAACH,GAAcG,GAAOT,GAAUC,CAAS,CAAC,GAE7CgB,EAAU,MAAM;AACV,IAAAH,KAAcR,MAAiB,aAAaN,MACpCG,EAAA,QAAQe,EAAO,kBAAkB,GAClClB;KAEV,CAACc,GAAYR,GAAcH,GAAWH,CAAQ,CAAC,GAElDiB,EAAU,MAAM;AACV,IAAAT,KAAA,QAAAA,EAAM,aAAaN,KACHA,EAAAM,EAAK,aAAa,CAAA,CAAE;AAAA,EAEvC,GAAA,CAACA,KAAA,gBAAAA,EAAM,WAAWN,CAAiB,CAAC,GAEnCI,MAAiB,aAAaE,KAAQM,GAAY;AAC9C,UAAA,EAAE,iBAAAK,GAAiB,WAAAC,EAAc,IAAAZ;AAEvC,WACG,gBAAAa,EAAAC,GAAA,EAAkB,UAAAlB,GAAoB,UAAS,UAC9C,UAAA,gBAAAiB;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,KAAA3B;AAAA,QACA,wBAAAG;AAAA,QACA,YAAAe;AAAA,QACA,qBAAAC;AAAA,QACA,uBAAAR;AAAA,QACA,iBAAAY;AAAA,QACA,qBAAqBC;AAAA,QACrB,WAAAjB;AAAA,QACA,UAAAC;AAAA,QACC,GAAGC;AAAA,MAAA;AAAA,IAER,EAAA,CAAA;AAAA,EAEJ;AAEO,SAAA;AACT,GAEMmB,IAAqBC,EAAKC,EAAWhC,CAAsB,CAAC,GAElEiC,IAAeH;"}
package/dist/index.d.ts CHANGED
@@ -299,6 +299,7 @@ export declare const CueCanvasHomeworkController: NamedExoticComponent<IHomeWork
299
299
 
300
300
  export declare const CueCanvasProvider: FC<PropsWithChildren<{
301
301
  userType: TUserTypes;
302
+ renderAs: TRenderAs_2;
302
303
  }>>;
303
304
 
304
305
  export declare const CueCanvasSideBar: NamedExoticComponent<ISidebar>;
@@ -806,6 +807,9 @@ declare interface ICalloutProps {
806
807
  declare interface ICanvasUpdateConfig {
807
808
  dimesion?: IViewport;
808
809
  gridName?: TCueCanvasGridName;
810
+ tool?: TCueCanvasTool;
811
+ color?: TCueCanvasColors;
812
+ height?: number;
809
813
  }
810
814
 
811
815
  declare interface ICascadeSelectValue {
@@ -2477,6 +2481,8 @@ export declare const invalidateMilestoneResources: (id: string, query?: void | u
2477
2481
 
2478
2482
  export declare const invalidateMilestonesData: (query?: TQuery | undefined) => void;
2479
2483
 
2484
+ export declare const invalidatePastMilestoneCount: (id: string, query?: void | undefined, allIdsInvalid?: boolean) => void;
2485
+
2480
2486
  export declare const invalidateTestHelpData: (id: string, query?: void | undefined, allIdsInvalid?: boolean) => void;
2481
2487
 
2482
2488
  declare interface IOnChapterExitWarningProps {
@@ -4776,8 +4782,12 @@ declare type TCreateOnPresubmit = (options: TOnPreSubmitOptions) => void;
4776
4782
 
4777
4783
  declare type TCueCanvasChangeDataObject = Record<string, TDrawingData[]>;
4778
4784
 
4785
+ declare type TCueCanvasColors = 'CANVAS_RED' | 'CANVAS_YELLOW' | 'CANVAS_GREEN' | 'CANVAS_BLUE' | 'CANVAS_PURPLE' | 'CANVAS_PINK' | 'LIGHT_ORANGE' | 'LIGHT_RED' | 'LIGHT_PINK' | 'LIGHT_PURPLE' | 'LIGHT_BLUE' | 'LIGHT_TEAL' | 'LIGHT_GREEN' | 'LIGHT_YELLOW' | 'WHITE' | 'ORANGE' | 'RED' | 'PINK' | 'PURPLE' | 'BLUE' | 'TEAL' | 'GREEN' | 'YELLOW' | 'GREY' | 'DARK_ORANGE' | 'DARK_RED' | 'DARK_PINK' | 'DARK_PURPLE' | 'DARK_BLUE' | 'DARK_TEAL' | 'DARK_GREEN' | 'DARK_YELLOW' | 'BLACK';
4786
+
4779
4787
  declare type TCueCanvasGridName = 'none' | 'square2-grid' | 'square-checked' | 'square-dots' | 'square-grid' | 'tri-dots' | 'tri-grid' | 'tri2-dots' | 'tri2-grid';
4780
4788
 
4789
+ declare type TCueCanvasTool = 'pen' | 'eraser' | 'move' | 'undo' | 'redo' | 'marker' | 'highlighter' | 'ruler' | 'pan' | 'clearAll' | 'text' | 'equation' | 'grid' | 'home' | 'lock' | 'unlock' | 'zoomIn' | 'zoomOut' | 'upload' | 'download';
4790
+
4781
4791
  declare type TCueProgramData = {
4782
4792
  description: string;
4783
4793
  id: string;
@@ -5388,6 +5398,11 @@ declare type TQuery = {
5388
5398
  course_stream: TCourseStream;
5389
5399
  };
5390
5400
 
5401
+ declare type TQuery_2 = {
5402
+ milestone_state_group: 'ALL' | 'DRAFT' | 'STUDENT_ALL' | 'LIVE' | 'STUDENT_LIVE' | 'INACTIVE';
5403
+ course_stream: TCourseStream;
5404
+ };
5405
+
5391
5406
  declare type TQuestionByQuestionOverviewList = {
5392
5407
  section: string;
5393
5408
  question_no: number;
@@ -5766,6 +5781,24 @@ export declare const useGetMilestoneResources: (initialId?: string, initialQuery
5766
5781
  } & Record<string, unknown>) | undefined;
5767
5782
  };
5768
5783
 
5784
+ export declare const useGetPastMilestoneCount: (initialId?: string, initialQuery?: void | undefined) => {
5785
+ get: (id: string, query: void, meta: TQuery_2) => Promise<void>;
5786
+ resource: ResourceModel<{
5787
+ user_milestones_count: number;
5788
+ }> | undefined;
5789
+ data: {
5790
+ user_milestones_count: number;
5791
+ } | undefined;
5792
+ permissions: Record<string, unknown> | undefined;
5793
+ isProcessing: boolean;
5794
+ isProcessed: boolean;
5795
+ isProcessingFailed: boolean;
5796
+ isStale: boolean;
5797
+ error: ({
5798
+ message?: string | undefined;
5799
+ } & Record<string, unknown>) | undefined;
5800
+ };
5801
+
5769
5802
  export declare const useGetTestHelpData: (initialId?: string, initialQuery?: void | undefined) => {
5770
5803
  get: (id: string, query: void, meta: {
5771
5804
  studentId: string;