@cuemath/leap 3.5.71-j2 → 3.5.71

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 (135) hide show
  1. package/dist/features/chapters-v2/comps/node-card/node-card-types.js.map +1 -1
  2. package/dist/features/homework/homework-card.js +198 -215
  3. package/dist/features/homework/homework-card.js.map +1 -1
  4. package/dist/features/math-fit/math-fit-card/math-fit-card.js +45 -45
  5. package/dist/features/math-fit/math-fit-card/math-fit-card.js.map +1 -1
  6. package/dist/features/math-fit/math-fit-overview/math-fit-overview-types.js.map +1 -1
  7. package/dist/features/math-fit/math-fit-overview/math-fit-overview.js +16 -16
  8. package/dist/features/math-fit/math-fit-overview/math-fit-overview.js.map +1 -1
  9. package/dist/features/math-fit/math-fit-report/comps/report-header/report-header-styled.js +1 -1
  10. package/dist/features/math-fit/math-fit-report/comps/report-header/report-header-styled.js.map +1 -1
  11. package/dist/features/milestone/create/comps/add-custom-chapter/add-custom-chapter.js +61 -66
  12. package/dist/features/milestone/create/comps/add-custom-chapter/add-custom-chapter.js.map +1 -1
  13. package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js +40 -41
  14. package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js.map +1 -1
  15. package/dist/features/milestone/create/comps/add-custom-chapter/search-chapter/search-chapters.js +25 -32
  16. package/dist/features/milestone/create/comps/add-custom-chapter/search-chapter/search-chapters.js.map +1 -1
  17. package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapter-item.js +12 -14
  18. package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapter-item.js.map +1 -1
  19. package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapters.js +10 -17
  20. package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapters.js.map +1 -1
  21. package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/tags-render.js +6 -6
  22. package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/tags-render.js.map +1 -1
  23. package/dist/features/milestone/create/comps/body-layout/body-layout.js +22 -23
  24. package/dist/features/milestone/create/comps/body-layout/body-layout.js.map +1 -1
  25. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js +75 -78
  26. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js.map +1 -1
  27. package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.js +49 -53
  28. package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.js.map +1 -1
  29. package/dist/features/milestone/create/milestone-create-styled.js +8 -10
  30. package/dist/features/milestone/create/milestone-create-styled.js.map +1 -1
  31. package/dist/features/milestone/create/milestone-create.js +49 -53
  32. package/dist/features/milestone/create/milestone-create.js.map +1 -1
  33. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js +72 -80
  34. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +1 -1
  35. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +104 -108
  36. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
  37. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js +14 -14
  38. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
  39. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js +9 -9
  40. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js.map +1 -1
  41. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js +22 -30
  42. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js.map +1 -1
  43. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +92 -100
  44. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
  45. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js +117 -136
  46. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
  47. package/dist/features/milestone/milestone-list-container/milestone-list-container.js +95 -99
  48. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  49. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js +66 -62
  50. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js.map +1 -1
  51. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js +25 -26
  52. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js.map +1 -1
  53. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js +33 -40
  54. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js.map +1 -1
  55. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js +53 -43
  56. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js.map +1 -1
  57. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +168 -183
  58. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -1
  59. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js +68 -70
  60. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js.map +1 -1
  61. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js +60 -62
  62. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js.map +1 -1
  63. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js +34 -36
  64. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js.map +1 -1
  65. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-selection.js +42 -47
  66. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-selection.js.map +1 -1
  67. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js +58 -59
  68. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js.map +1 -1
  69. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview-styled.js +5 -7
  70. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview-styled.js.map +1 -1
  71. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js +26 -36
  72. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js.map +1 -1
  73. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js +89 -120
  74. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
  75. package/dist/features/sheet-v2/resource-list/resource-list.js +26 -28
  76. package/dist/features/sheet-v2/resource-list/resource-list.js.map +1 -1
  77. package/dist/features/trial-session/comps/learning-plan/index.js +92 -221
  78. package/dist/features/trial-session/comps/learning-plan/index.js.map +1 -1
  79. package/dist/features/trial-session/comps/learning-plan/learning-plan-styled.js +6 -7
  80. package/dist/features/trial-session/comps/learning-plan/learning-plan-styled.js.map +1 -1
  81. package/dist/features/trial-session/comps/learning-plan/use-learning-plan-scroll-sync.js +37 -0
  82. package/dist/features/trial-session/comps/learning-plan/use-learning-plan-scroll-sync.js.map +1 -0
  83. package/dist/features/trial-session/hooks/use-trial-session-navigation.js +116 -113
  84. package/dist/features/trial-session/hooks/use-trial-session-navigation.js.map +1 -1
  85. package/dist/features/trial-session/trial-session-types.js +2 -3
  86. package/dist/features/trial-session/trial-session-types.js.map +1 -1
  87. package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js +74 -90
  88. package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js.map +1 -1
  89. package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
  90. package/dist/features/worksheet/worksheet/worksheet.js +28 -39
  91. package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
  92. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js +24 -27
  93. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js.map +1 -1
  94. package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js +37 -41
  95. package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js.map +1 -1
  96. package/dist/features/worksheet/worksheet-preview/worksheet-preview.js +2 -2
  97. package/dist/features/worksheet/worksheet-preview/worksheet-preview.js.map +1 -1
  98. package/dist/index.d.ts +10 -71
  99. package/dist/node_modules/uuid/dist/esm-browser/regex.js +5 -0
  100. package/dist/node_modules/uuid/dist/esm-browser/regex.js.map +1 -0
  101. package/dist/node_modules/uuid/dist/esm-browser/rng.js +2 -3
  102. package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
  103. package/dist/node_modules/uuid/dist/esm-browser/stringify.js +10 -6
  104. package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
  105. package/dist/node_modules/uuid/dist/esm-browser/v4.js +9 -12
  106. package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
  107. package/dist/node_modules/uuid/dist/esm-browser/validate.js +8 -0
  108. package/dist/node_modules/uuid/dist/esm-browser/validate.js.map +1 -0
  109. package/package.json +1 -1
  110. package/dist/features/milestone/edit/goal-draft-edit-sync.js +0 -26
  111. package/dist/features/milestone/edit/goal-draft-edit-sync.js.map +0 -1
  112. package/dist/features/milestone/edit/hooks/use-milestone-edit-sync.js +0 -82
  113. package/dist/features/milestone/edit/hooks/use-milestone-edit-sync.js.map +0 -1
  114. package/dist/features/milestone/milestone-list-container/hooks/use-milestone-list-sync.js +0 -49
  115. package/dist/features/milestone/milestone-list-container/hooks/use-milestone-list-sync.js.map +0 -1
  116. package/dist/features/milestone/milestone-list-container/milestone-list-sync.js +0 -25
  117. package/dist/features/milestone/milestone-list-container/milestone-list-sync.js.map +0 -1
  118. package/dist/features/milestone/milestone-resources/resources-assign/hooks/use-resource-assign-sync.js +0 -71
  119. package/dist/features/milestone/milestone-resources/resources-assign/hooks/use-resource-assign-sync.js.map +0 -1
  120. package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-sync.js +0 -17
  121. package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-sync.js.map +0 -1
  122. package/dist/features/milestone/milestone-resources/resources-assign/store/resource-assign-store.js +0 -198
  123. package/dist/features/milestone/milestone-resources/resources-assign/store/resource-assign-store.js.map +0 -1
  124. package/dist/features/milestone/milestone-tests/tests-creation/hooks/use-tests-creation-sync.js +0 -68
  125. package/dist/features/milestone/milestone-tests/tests-creation/hooks/use-tests-creation-sync.js.map +0 -1
  126. package/dist/features/milestone/milestone-tests/tests-creation/store/tests-creation-store.js +0 -78
  127. package/dist/features/milestone/milestone-tests/tests-creation/store/tests-creation-store.js.map +0 -1
  128. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-sync.js +0 -17
  129. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-sync.js.map +0 -1
  130. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-types.js +0 -5
  131. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-types.js.map +0 -1
  132. package/dist/features/trial-session/hooks/use-learning-plan-scroll-sync.js +0 -75
  133. package/dist/features/trial-session/hooks/use-learning-plan-scroll-sync.js.map +0 -1
  134. package/dist/node_modules/uuid/dist/esm-browser/native.js +0 -7
  135. package/dist/node_modules/uuid/dist/esm-browser/native.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"node-card-types.js","sources":["../../../../../src/features/chapters-v2/comps/node-card/node-card-types.ts"],"sourcesContent":["import type { EWorksheetActivity, IWorksheetModel } from '../../../../types/models/worksheet';\nimport type {\n NODE_TYPE,\n PYTHON_NODE_TYPES,\n SAT_NODE_TYPE,\n SHEET_ATTEMPT_LOCATION,\n} from '../../../sheets/constants/sheet';\nimport type { THueNames, TUserTypes } from '../../../ui/types';\nimport type { BLOCK_TYPE } from '../../constants/block-constants';\nimport type { NODE_CARD_COURSE_TYPES, NODE_CARD_STATES } from '../../constants/node-constants';\n\ntype TSheetAttemptLocation = keyof typeof SHEET_ATTEMPT_LOCATION;\n\ntype TSheetStates = keyof typeof NODE_CARD_STATES;\nexport type TNodeTypes =\n | keyof typeof NODE_TYPE\n | keyof typeof PYTHON_NODE_TYPES\n | keyof typeof SAT_NODE_TYPE;\nexport type TCourseType = keyof typeof NODE_CARD_COURSE_TYPES;\n\nexport enum ECardType {\n MATHFIT = 'MATHFIT',\n}\n\ninterface INodePermissions {\n can_change_attempt_location: boolean;\n can_mark_familiar: boolean;\n can_reattempt: boolean;\n can_reset: boolean;\n can_resume: boolean;\n can_review: boolean;\n can_assign_as_homework: boolean;\n can_start: boolean;\n can_teacher_review: boolean;\n can_unassign: boolean;\n can_unlock: boolean;\n can_un_skip: boolean;\n can_skip: boolean;\n}\n\nexport interface TNodeDataTestItemsDataProps {\n chapter_name: string;\n goal_name: string;\n ref: string;\n}\n\ninterface INodeDataProps {\n accuracy: number | null;\n attempt_location: TSheetAttemptLocation;\n block_id: string;\n card_header: string;\n chapter_id: string | null;\n chapter_name?: string;\n complete_status: boolean;\n course_type: TCourseType;\n desmos_calculator_enabled: boolean;\n correct_answers: number;\n due_date_ts: number | null;\n id: string;\n image_hue: THueNames;\n image_url: string | null;\n activity_type: EWorksheetActivity | null;\n is_optional: boolean;\n is_timed: boolean;\n is_worksheet_v3: boolean | null;\n items?: TNodeDataTestItemsDataProps[];\n learnosity_activity_ref: string;\n marked_as_completed: boolean;\n node_id: string;\n node_type: TNodeTypes;\n permissions: INodePermissions;\n sheet_statement: string;\n sheet_time: number | null;\n state: TSheetStates;\n subtext: string | null;\n title: string;\n total_questions: number | null;\n unlocked_on_ts: number | null;\n user_attempt_id: string | null;\n user_chapter_id: string | null;\n user_block_id: string | null;\n user_milestone_id?: string;\n user_node_id: string | null;\n worksheet_id: string;\n is_turing: boolean;\n student_instructions_ref: string | null;\n instructions_ref: string | null;\n worksheet?: IWorksheetModel | null;\n}\n\ninterface INodeCardTagsProps {\n state: TSheetStates;\n accuracy?: number | null;\n nodeType: TNodeTypes;\n dueDateTs?: number | null;\n isStudent?: boolean;\n isMilestone?: boolean;\n isMathFitCard?: boolean;\n}\n\ninterface INodeCardCallbacks {\n onNodeAttempt?: (\n nodeData: INodeDataProps,\n milestoneId?: string,\n homeworkId?: string,\n isSatMockTestBlock?: boolean,\n ) => void;\n onNodeView?: (nodeData: INodeDataProps, milestoneId?: string) => void;\n onNodeReview?: (\n nodeData: INodeDataProps,\n milestoneId?: string,\n homeworkId?: string,\n isSatMockTestBlock?: boolean,\n ) => void;\n onNodeReattempt?: (nodeData: INodeDataProps, milestoneId?: string) => void;\n onNodeAssignAsHomework?: (nodeData: INodeDataProps, milestoneId?: string) => void;\n onNodeMarkAsDone?: (nodeData: INodeDataProps) => void;\n onNodeReset?: (nodeData: INodeDataProps, milestoneId?: string) => void;\n onNodeUnassign?: (nodeData: INodeDataProps, milestoneId?: string, homeworkId?: string) => void;\n onNodeUnlock?: (nodeData: INodeDataProps, milestoneId?: string) => void;\n onNodeSkipUnSkip?: (nodeData: INodeDataProps, milestoneId?: string) => void;\n onCardClick?: ({ entityId, type }: { entityId: string; type: ECardType }) => void;\n}\n\ninterface INodeCardProps extends INodeCardCallbacks {\n userType: TUserTypes;\n nodeData: INodeDataProps;\n imageHue: THueNames;\n blockType?: keyof typeof BLOCK_TYPE;\n isSkipped?: boolean;\n isStudent?: boolean;\n}\n\nexport type {\n TSheetStates,\n INodeDataProps,\n INodePermissions,\n INodeCardProps,\n INodeCardCallbacks,\n INodeCardTagsProps,\n};\n"],"names":["ECardType"],"mappings":"AAoBY,IAAAA,sBAAAA,OACVA,EAAA,UAAU,WADAA,IAAAA,KAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"node-card-types.js","sources":["../../../../../src/features/chapters-v2/comps/node-card/node-card-types.ts"],"sourcesContent":["import type { EWorksheetActivity, IWorksheetModel } from '../../../../types/models/worksheet';\nimport type {\n NODE_TYPE,\n PYTHON_NODE_TYPES,\n SAT_NODE_TYPE,\n SHEET_ATTEMPT_LOCATION,\n} from '../../../sheets/constants/sheet';\nimport type { THueNames, TUserTypes } from '../../../ui/types';\nimport type { BLOCK_TYPE } from '../../constants/block-constants';\nimport type { NODE_CARD_COURSE_TYPES, NODE_CARD_STATES } from '../../constants/node-constants';\n\ntype TSheetAttemptLocation = keyof typeof SHEET_ATTEMPT_LOCATION;\n\ntype TSheetStates = keyof typeof NODE_CARD_STATES;\nexport type TNodeTypes =\n | keyof typeof NODE_TYPE\n | keyof typeof PYTHON_NODE_TYPES\n | keyof typeof SAT_NODE_TYPE;\nexport type TCourseType = keyof typeof NODE_CARD_COURSE_TYPES;\n\nexport enum ECardType {\n MATHFIT = 'MATHFIT',\n}\n\ninterface INodePermissions {\n can_change_attempt_location: boolean;\n can_mark_familiar: boolean;\n can_reattempt: boolean;\n can_reset: boolean;\n can_resume: boolean;\n can_review: boolean;\n can_assign_as_homework: boolean;\n can_start: boolean;\n can_teacher_review: boolean;\n can_unassign: boolean;\n can_unlock: boolean;\n can_un_skip: boolean;\n can_skip: boolean;\n}\n\nexport interface TNodeDataTestItemsDataProps {\n chapter_name: string;\n goal_name: string;\n ref: string;\n}\n\ninterface INodeDataProps {\n accuracy: number | null;\n attempt_location: TSheetAttemptLocation;\n block_id: string;\n card_header: string;\n chapter_id: string | null;\n chapter_name?: string;\n complete_status: boolean;\n course_type: TCourseType;\n desmos_calculator_enabled: boolean;\n correct_answers: number;\n due_date_ts: number | null;\n id: string;\n image_hue: THueNames;\n image_url: string | null;\n activity_type: EWorksheetActivity | null;\n is_optional: boolean;\n is_timed: boolean;\n is_worksheet_v3: boolean | null;\n items?: TNodeDataTestItemsDataProps[];\n learnosity_activity_ref: string;\n marked_as_completed: boolean;\n node_id: string;\n node_type: TNodeTypes;\n permissions: INodePermissions;\n sheet_statement: string;\n sheet_time: number | null;\n state: TSheetStates;\n subtext: string | null;\n title: string;\n total_questions: number | null;\n unlocked_on_ts: number | null;\n user_attempt_id: string | null;\n user_chapter_id: string | null;\n user_block_id: string | null;\n user_milestone_id?: string;\n user_node_id: string | null;\n worksheet_id: string;\n is_turing: boolean;\n student_instructions_ref: string | null;\n instructions_ref: string | null;\n worksheet?: IWorksheetModel | null;\n}\n\ninterface INodeCardTagsProps {\n state: TSheetStates;\n accuracy?: number | null;\n nodeType: TNodeTypes;\n dueDateTs?: number | null;\n isStudent?: boolean;\n isMilestone?: boolean;\n isMathFitCard?: boolean;\n}\n\ninterface INodeCardCallbacks {\n onNodeAttempt?: (\n nodeData: INodeDataProps,\n milestoneId?: string,\n homeworkId?: string,\n isSatMockTestBlock?: boolean,\n ) => void;\n onNodeView?: (nodeData: INodeDataProps, milestoneId?: string) => void;\n onNodeReview?: (\n nodeData: INodeDataProps,\n milestoneId?: string,\n homeworkId?: string,\n isSatMockTestBlock?: boolean,\n ) => void;\n onNodeReattempt?: (nodeData: INodeDataProps, milestoneId?: string) => void;\n onNodeAssignAsHomework?: (nodeData: INodeDataProps, milestoneId?: string) => void;\n onNodeMarkAsDone?: (nodeData: INodeDataProps) => void;\n onNodeReset?: (nodeData: INodeDataProps, milestoneId?: string) => void;\n onNodeUnassign?: (nodeData: INodeDataProps, milestoneId?: string, homeworkId?: string) => void;\n onNodeUnlock?: (nodeData: INodeDataProps, milestoneId?: string) => void;\n onNodeSkipUnSkip?: (nodeData: INodeDataProps, milestoneId?: string) => void;\n onCardClick?: ({\n entityId,\n type,\n state,\n }: {\n entityId: string;\n type: ECardType;\n state: TSheetStates;\n }) => void;\n}\n\ninterface INodeCardProps extends INodeCardCallbacks {\n userType: TUserTypes;\n nodeData: INodeDataProps;\n imageHue: THueNames;\n blockType?: keyof typeof BLOCK_TYPE;\n isSkipped?: boolean;\n isStudent?: boolean;\n}\n\nexport type {\n TSheetStates,\n INodeDataProps,\n INodePermissions,\n INodeCardProps,\n INodeCardCallbacks,\n INodeCardTagsProps,\n};\n"],"names":["ECardType"],"mappings":"AAoBY,IAAAA,sBAAAA,OACVA,EAAA,UAAU,WADAA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -1,325 +1,308 @@
1
- import { jsxs as I, jsx as i } from "react/jsx-runtime";
2
- import { memo as pr, useRef as Y, useCallback as k, useMemo as v } from "react";
3
- import q from "../../assets/line-icons/icons/eye2.js";
4
- import br from "../../assets/line-icons/icons/home2.js";
5
- import wr from "../../assets/line-icons/icons/more-vertical.js";
6
- import A from "../../assets/line-icons/icons/redo.js";
7
- import { ECardType as G } from "../chapters-v2/comps/node-card/node-card-types.js";
8
- import J from "../ui/arrow-tooltip/arrow-tooltip.js";
9
- import Cr from "../ui/buttons/clickable/clickable.js";
10
- import U from "../ui/hooks/use-context-menu-click-handler.js";
11
- import Er from "../ui/layout/flex-view.js";
12
- import Q from "./card-menu-options.js";
13
- import Mr from "./homework-card-view.js";
14
- import { EHWCardListEntityType as Tr } from "./hw-card-list/hw-card-list-types.js";
15
- import { CardContainer as _r, MenuWrapper as $r, CardKebabMenuWrapper as kr, BlurContainer as vr, BlurFlexView as Rr, StyledMinus2Icon as gr } from "./styles.js";
16
- import { getCardAnalyticProps as Sr } from "./utils.js";
17
- const yr = ({
1
+ import { jsxs as z, jsx as i } from "react/jsx-runtime";
2
+ import { memo as fr, useRef as B, useCallback as _, useMemo as hr } from "react";
3
+ import K from "../../assets/line-icons/icons/eye2.js";
4
+ import dr from "../../assets/line-icons/icons/home2.js";
5
+ import mr from "../../assets/line-icons/icons/more-vertical.js";
6
+ import Z from "../../assets/line-icons/icons/redo.js";
7
+ import { ECardType as A } from "../chapters-v2/comps/node-card/node-card-types.js";
8
+ import I from "../ui/arrow-tooltip/arrow-tooltip.js";
9
+ import pr from "../ui/buttons/clickable/clickable.js";
10
+ import Y from "../ui/hooks/use-context-menu-click-handler.js";
11
+ import br from "../ui/layout/flex-view.js";
12
+ import q from "./card-menu-options.js";
13
+ import wr from "./homework-card-view.js";
14
+ import { EHWCardListEntityType as Cr } from "./hw-card-list/hw-card-list-types.js";
15
+ import { CardContainer as Er, MenuWrapper as Mr, CardKebabMenuWrapper as Tr, BlurContainer as _r, BlurFlexView as $r, StyledMinus2Icon as kr } from "./styles.js";
16
+ import { getCardAnalyticProps as Rr } from "./utils.js";
17
+ const vr = ({
18
18
  // callbacks
19
19
  nodeData: r,
20
- onNodeAttempt: R,
21
- onNodeReattempt: b,
22
- onNodeReview: u,
23
- onNodeUnassign: w,
24
- onNodeView: g,
25
- onNodeAssignAsHomework: C,
26
- onCardClick: f,
20
+ onNodeAttempt: $,
21
+ onNodeReattempt: m,
22
+ onNodeReview: l,
23
+ onNodeUnassign: p,
24
+ onNodeView: k,
25
+ onNodeAssignAsHomework: b,
26
+ onCardClick: u,
27
27
  entityId: n,
28
- entityType: E,
29
- header: D,
28
+ entityType: w,
29
+ header: G,
30
30
  homeworkId: c,
31
- isInQueue: W,
32
- mathFitCardRef: N,
33
- renderAs: H,
34
- score: rr,
35
- shouldOpenOnRight: er,
36
- state: h,
37
- totalQuestions: L,
38
- imageUrl: ir,
39
- studentId: x,
40
- subHeader: tr,
41
- userMilestoneId: nr,
42
- userType: P,
43
- puzzleHWCardRef: cr,
44
- disableMenuActions: X
31
+ isInQueue: S,
32
+ puzzleHWCardRef: J,
33
+ mathFitCardRef: U,
34
+ renderAs: y,
35
+ score: Q,
36
+ shouldOpenOnRight: D,
37
+ state: t,
38
+ totalQuestions: O,
39
+ imageUrl: N,
40
+ studentId: V,
41
+ subHeader: rr,
42
+ userMilestoneId: er,
43
+ userType: F
45
44
  }) => {
46
- const o = H === "homework", { node_type: m, permissions: or, user_node_id: d } = r, e = nr || "", S = m === "PUZZLE_CARD", t = E === Tr.MATHFIT_TEST, y = h === "LOCKED", O = Y(null), V = Y(null), { menuVisible: j, onMenuClick: sr } = U(O), { menuVisible: ar, onMenuClick: z } = U(V), {
47
- can_start: M,
48
- can_resume: T,
49
- can_review: s,
50
- can_unassign: B,
51
- can_reset: _,
52
- can_assign_as_homework: K
53
- } = or, a = P === "STUDENT", $ = k(() => {
54
- if (s) {
55
- if (typeof u != "function")
45
+ const s = y === "homework", { node_type: C, permissions: ir, user_node_id: f } = r, e = er || "", W = C === "PUZZLE_CARD", o = w === Cr.MATHFIT_TEST, H = t === "LOCKED", R = B(null), v = B(null), { menuVisible: L, onMenuClick: tr } = Y(R), { menuVisible: nr, onMenuClick: x } = Y(v), {
46
+ can_start: E,
47
+ can_resume: M,
48
+ can_review: h,
49
+ can_unassign: cr,
50
+ can_reset: P,
51
+ can_assign_as_homework: or
52
+ } = ir, a = F === "STUDENT", T = _(() => {
53
+ if (h) {
54
+ if (typeof l != "function")
56
55
  throw new Error("onReview must be a function");
57
- if (!d)
56
+ if (!f)
58
57
  throw new Error("user node id must be present to review the sheet");
59
- u(r, e);
58
+ l(r, e);
60
59
  return;
61
60
  }
62
- }, [s, u, d, r, e]), lr = k(() => {
63
- if (t && n) {
64
- if (typeof f != "function")
61
+ }, [h, l, f, r, e]), sr = _(() => {
62
+ if (o && n) {
63
+ if (typeof u != "function")
65
64
  throw new Error("onCardClick must be a function for MathFit cards");
66
- f({ entityId: n, type: G.MATHFIT });
65
+ u({ entityId: n, type: A.MATHFIT, state: t });
67
66
  return;
68
67
  }
69
- if (M || T) {
70
- if (typeof R != "function")
68
+ if (E || M) {
69
+ if (typeof $ != "function")
71
70
  throw new Error("onNodeAttempt must be a function");
72
- R(r, e, c);
71
+ $(r, e, c);
73
72
  return;
74
73
  }
75
- if (!o) {
76
- z();
74
+ if (!s) {
75
+ x();
77
76
  return;
78
77
  }
79
- $();
78
+ T();
80
79
  }, [
81
- T,
82
80
  M,
81
+ E,
83
82
  n,
84
83
  c,
84
+ s,
85
85
  o,
86
- t,
87
86
  e,
88
87
  r,
89
- f,
90
- R,
91
- z,
92
- $
93
- ]), F = k(() => {
94
- if (t && n) {
95
- if (typeof f != "function")
88
+ u,
89
+ $,
90
+ x,
91
+ T,
92
+ t
93
+ ]), g = _(() => {
94
+ if (o && n) {
95
+ if (typeof u != "function")
96
96
  throw new Error("onCardClick must be a function for MathFit cards");
97
- f({ entityId: n, type: G.MATHFIT });
97
+ u({ entityId: n, type: A.MATHFIT, state: t });
98
98
  return;
99
99
  }
100
- if (s) {
101
- if (typeof u != "function")
100
+ if (h) {
101
+ if (typeof l != "function")
102
102
  throw new Error("onNodeReview must be a function");
103
- if (!d)
103
+ if (!f)
104
104
  throw new Error("user node id must be present to review the sheet");
105
- u(r, e, c);
105
+ l(r, e, c);
106
106
  return;
107
107
  }
108
- if (typeof g != "function")
108
+ if (typeof k != "function")
109
109
  throw new Error("onNodeView must be a function");
110
- g(r, e);
110
+ k(r, e);
111
111
  }, [
112
- s,
112
+ h,
113
113
  n,
114
114
  c,
115
- t,
115
+ o,
116
116
  e,
117
117
  r,
118
- f,
119
118
  u,
120
- g,
121
- d
122
- ]), l = k(
123
- (p) => {
124
- switch (p) {
119
+ l,
120
+ k,
121
+ t,
122
+ f
123
+ ]), d = _(
124
+ (j) => {
125
+ switch (j) {
125
126
  case "teacher-card-view":
126
- F();
127
+ g();
127
128
  return;
128
129
  case "student-card-view":
129
- $();
130
+ T();
130
131
  return;
131
132
  case "teacher-card-unassign":
132
- w == null || w(r, e, c);
133
+ p == null || p(r, e, c);
133
134
  return;
134
135
  case "student-card-reattempt":
135
136
  case "teacher-card-redo":
136
- b == null || b(r, e);
137
+ m == null || m(r, e);
137
138
  return;
138
139
  case "teacher-card-assign-as-hw":
139
- C == null || C(r, e);
140
+ b == null || b(r, e);
140
141
  return;
141
142
  default:
142
- throw new Error(`No callback function for ${p}`);
143
+ throw new Error(`No callback function for ${j}`);
143
144
  }
144
145
  },
145
146
  [
146
147
  c,
147
148
  e,
148
149
  r,
149
- C,
150
150
  b,
151
- w,
152
- $,
153
- F
151
+ m,
152
+ p,
153
+ T,
154
+ g
154
155
  ]
155
- ), ur = v(() => {
156
- const p = [
157
- {
158
- id: "teacher-card-view",
159
- label: s ? "Review" : "View",
160
- icon: q,
161
- disabled: !1,
162
- onClick: l
163
- },
164
- {
165
- id: "teacher-card-unassign",
166
- label: "Unassign",
167
- icon: gr,
168
- disabled: o ? m === "MASTERY" : !B,
169
- onClick: l
170
- },
171
- {
172
- id: "teacher-card-redo",
173
- label: "Redo",
174
- icon: A,
175
- disabled: !_,
176
- onClick: l
177
- },
178
- {
179
- id: "teacher-card-assign-as-hw",
180
- label: "Assign as HW",
181
- icon: br,
182
- disabled: !K,
183
- onClick: l
184
- }
185
- ];
186
- return X ? p.filter((mr) => mr.id === "teacher-card-view") : p;
187
- }, [
188
- s,
189
- B,
190
- _,
191
- K,
192
- o,
193
- m,
194
- X,
195
- l
196
- ]), fr = v(
197
- () => [
198
- {
199
- id: "student-card-view",
200
- label: "Review",
201
- icon: q,
202
- disabled: !s,
203
- onClick: l
204
- },
205
- {
206
- id: "student-card-reattempt",
207
- label: "Reattempt",
208
- icon: A,
209
- disabled: !_,
210
- onClick: l
211
- }
212
- ],
213
- [s, _, l]
214
- ), Z = v(
215
- () => Sr({
216
- canResume: T,
217
- canStart: M,
156
+ ), ar = [
157
+ {
158
+ id: "teacher-card-view",
159
+ label: h ? "Review" : "View",
160
+ icon: K,
161
+ disabled: !1,
162
+ onClick: d
163
+ },
164
+ {
165
+ id: "teacher-card-unassign",
166
+ label: "Unassign",
167
+ icon: kr,
168
+ disabled: s ? C === "MASTERY" : !cr,
169
+ onClick: d
170
+ },
171
+ {
172
+ id: "teacher-card-redo",
173
+ label: "Redo",
174
+ icon: Z,
175
+ disabled: !P,
176
+ onClick: d
177
+ },
178
+ {
179
+ id: "teacher-card-assign-as-hw",
180
+ label: "Assign as HW",
181
+ icon: dr,
182
+ disabled: !or,
183
+ onClick: d
184
+ }
185
+ ], lr = [
186
+ {
187
+ id: "student-card-view",
188
+ label: "Review",
189
+ icon: K,
190
+ disabled: !h,
191
+ onClick: d
192
+ },
193
+ {
194
+ id: "student-card-reattempt",
195
+ label: "Reattempt",
196
+ icon: Z,
197
+ disabled: !P,
198
+ onClick: d
199
+ }
200
+ ], X = hr(
201
+ () => Rr({
202
+ canResume: M,
203
+ canStart: E,
218
204
  entityId: n,
219
- entityType: E,
205
+ entityType: w,
220
206
  homeworkId: c,
221
- isHomeWork: o,
207
+ isHomeWork: s,
222
208
  isStudent: a,
223
209
  milestoneId: e,
224
- nodeType: m,
225
- studentId: x,
226
- totalQuestions: L,
227
- userNodeId: d
210
+ nodeType: C,
211
+ studentId: V,
212
+ totalQuestions: O,
213
+ userNodeId: f
228
214
  }),
229
215
  [
230
- T,
231
216
  M,
232
- n,
233
217
  E,
218
+ n,
219
+ w,
234
220
  c,
235
- o,
221
+ s,
236
222
  a,
237
223
  e,
238
- m,
239
- x,
240
- L,
241
- d
224
+ C,
225
+ V,
226
+ O,
227
+ f
242
228
  ]
243
- ), hr = !a && !S && !t, dr = v(
244
- () => a && S && y || !a && t && h !== "COMPLETED" && h !== "EXPIRED" || t && y,
245
- [a, S, y, t, h]
246
- );
247
- return /* @__PURE__ */ I(_r, { $position: "relative", $width: "fit-content", children: [
229
+ ), ur = a && W && H || !a && o && t !== "COMPLETED" && t !== "EXPIRED" || o && H;
230
+ return /* @__PURE__ */ z(Er, { $position: "relative", $width: "fit-content", children: [
248
231
  /* @__PURE__ */ i(
249
- Cr,
232
+ pr,
250
233
  {
251
- onClick: a ? lr : F,
234
+ onClick: a ? sr : g,
252
235
  label: "homework-card",
253
- analyticsLabel: Z.analyticsLabel,
254
- analyticsProps: Z.analyticsProps,
255
- disabled: dr,
236
+ analyticsLabel: X.analyticsLabel,
237
+ analyticsProps: X.analyticsProps,
238
+ disabled: ur,
256
239
  children: /* @__PURE__ */ i(
257
- Mr,
240
+ wr,
258
241
  {
259
- entityType: E,
260
- header: D,
261
- isInQueue: W,
262
- isMilestone: H === "milestone",
242
+ entityType: w,
243
+ header: G,
244
+ isInQueue: S,
245
+ isMilestone: y === "milestone",
263
246
  nodeData: r,
264
- puzzleHWCardRef: cr,
265
- mathFitCardRef: N,
266
- score: rr,
267
- imageUrl: ir,
268
- state: h,
269
- studentContainerRef: V,
270
- subHeader: tr,
271
- userType: P
247
+ puzzleHWCardRef: J,
248
+ mathFitCardRef: U,
249
+ score: Q,
250
+ imageUrl: N,
251
+ state: t,
252
+ studentContainerRef: v,
253
+ subHeader: rr,
254
+ userType: F
272
255
  }
273
256
  )
274
257
  }
275
258
  ),
276
- a && !o && !t && /* @__PURE__ */ i(
277
- Q,
259
+ a && !s && !o && /* @__PURE__ */ i(
260
+ q,
278
261
  {
279
262
  $width: 200,
280
- options: fr,
281
- triggerRef: V,
282
- visible: ar,
263
+ options: lr,
264
+ triggerRef: v,
265
+ visible: nr,
283
266
  shouldOpenOnRight: !1
284
267
  }
285
268
  ),
286
- hr && /* @__PURE__ */ I($r, { $position: "absolute", $width: "fit-content", $borderRadiusX: 2, children: [
269
+ !a && !W && !o && /* @__PURE__ */ z(Mr, { $position: "absolute", $width: "fit-content", $borderRadiusX: 2, children: [
287
270
  /* @__PURE__ */ i(
288
- J,
271
+ I,
289
272
  {
290
273
  renderAs: "primary",
291
274
  tooltipItem: "Review",
292
275
  position: "bottom",
293
276
  zIndex: 6,
294
277
  parentWidth: "100%",
295
- hidden: j || h !== "WAIT_FOR_REVIEW" && o,
278
+ hidden: L || t !== "WAIT_FOR_REVIEW" && s,
296
279
  children: /* @__PURE__ */ i(
297
- kr,
280
+ Tr,
298
281
  {
299
282
  $alignItems: "center",
300
283
  $justifyContent: "center",
301
- ref: O,
302
- onClick: sr,
303
- children: /* @__PURE__ */ i(wr, { width: 16, height: 16 })
284
+ ref: R,
285
+ onClick: tr,
286
+ children: /* @__PURE__ */ i(mr, { width: 16, height: 16 })
304
287
  }
305
288
  )
306
289
  }
307
290
  ),
308
291
  /* @__PURE__ */ i(
309
- Q,
292
+ q,
310
293
  {
311
- options: ur,
312
- triggerRef: O,
313
- visible: j,
314
- shouldOpenOnRight: er,
294
+ options: ar,
295
+ triggerRef: R,
296
+ visible: L,
297
+ shouldOpenOnRight: D,
315
298
  $width: 144
316
299
  }
317
300
  )
318
301
  ] }),
319
- W && /* @__PURE__ */ i(vr, { $background: "WHITE_5", children: /* @__PURE__ */ i(Rr, { $heightX: 1, $widthX: 6, children: /* @__PURE__ */ i(J, { renderAs: "primary", tooltipItem: "Not visible to student", position: "bottom", children: /* @__PURE__ */ i(Er, { $heightX: 1, $widthX: 6 }) }) }) })
302
+ S && /* @__PURE__ */ i(_r, { $background: "WHITE_5", children: /* @__PURE__ */ i($r, { $heightX: 1, $widthX: 6, children: /* @__PURE__ */ i(I, { renderAs: "primary", tooltipItem: "Not visible to student", position: "bottom", children: /* @__PURE__ */ i(br, { $heightX: 1, $widthX: 6 }) }) }) })
320
303
  ] });
321
- }, qr = pr(yr);
304
+ }, Zr = fr(vr);
322
305
  export {
323
- qr as default
306
+ Zr as default
324
307
  };
325
308
  //# sourceMappingURL=homework-card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"homework-card.js","sources":["../../../src/features/homework/homework-card.tsx"],"sourcesContent":["import { memo, useCallback, useMemo, useRef, type FC } from 'react';\n\nimport Eye2Icon from '../../assets/line-icons/icons/eye2';\nimport Home2Icon from '../../assets/line-icons/icons/home2';\nimport MoreVerticalIcon from '../../assets/line-icons/icons/more-vertical';\nimport RedoIcon from '../../assets/line-icons/icons/redo';\nimport {\n ECardType,\n type INodeCardCallbacks,\n type INodeDataProps,\n type TSheetStates,\n} from '../chapters-v2/comps/node-card/node-card-types';\nimport ArrowTooltip from '../ui/arrow-tooltip/arrow-tooltip';\nimport Clickable from '../ui/buttons/clickable/clickable';\nimport useContextMenuClickHandler from '../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../ui/layout/flex-view';\nimport type { TUserTypes } from '../ui/types';\nimport CardMenuOptions from './card-menu-options';\nimport HomeworkView from './homework-card-view';\nimport { EHWCardListEntityType } from './hw-card-list/hw-card-list-types';\nimport * as Styled from './styles';\nimport { getCardAnalyticProps } from './utils';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n entityId?: string;\n entityType?: EHWCardListEntityType;\n header: string;\n homeworkId?: string;\n isInQueue?: boolean;\n nodeData: INodeDataProps;\n puzzleHWCardRef?: React.RefObject<HTMLDivElement>;\n mathFitCardRef?: React.RefObject<HTMLDivElement>;\n disableMenuActions?: boolean;\n renderAs: 'homework' | 'milestone';\n score: number | null;\n shouldOpenOnRight: boolean;\n state: TSheetStates;\n imageUrl?: string;\n studentId: string;\n subHeader: string;\n userMilestoneId?: string;\n userType: TUserTypes;\n totalQuestions: number;\n}\n\nconst HomeworkCard: FC<IHomeworkCardProps> = ({\n // callbacks\n nodeData,\n onNodeAttempt,\n onNodeReattempt,\n onNodeReview,\n onNodeUnassign,\n onNodeView,\n onNodeAssignAsHomework,\n onCardClick,\n\n entityId,\n entityType,\n header,\n homeworkId,\n isInQueue,\n mathFitCardRef,\n renderAs,\n score,\n shouldOpenOnRight,\n state,\n totalQuestions,\n imageUrl,\n studentId,\n subHeader,\n userMilestoneId,\n userType,\n puzzleHWCardRef,\n disableMenuActions,\n}) => {\n const isHomeWork = renderAs === 'homework';\n const { node_type: nodeType, permissions, user_node_id: userNodeId } = nodeData;\n\n const milestoneId = userMilestoneId || '';\n const isPuzzleCard = nodeType === 'PUZZLE_CARD';\n const isMathFitCard = entityType === EHWCardListEntityType.MATHFIT_TEST;\n const isSheetLocked = state === 'LOCKED';\n\n const teacherContainerRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const studentContainerRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const { menuVisible: teacherMenuVisible, onMenuClick: onTeacherMenuClick } =\n useContextMenuClickHandler(teacherContainerRef);\n const { menuVisible: studentMenuVisible, onMenuClick: onStudentMenuClick } =\n useContextMenuClickHandler(studentContainerRef);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n can_assign_as_homework: canAssignAsHw,\n } = permissions;\n const isStudent = userType === 'STUDENT';\n\n const onStudentViewSheet = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, milestoneId);\n\n return;\n }\n }, [canReview, onNodeReview, userNodeId, nodeData, milestoneId]);\n\n const onStudentCardClick = useCallback(() => {\n // Handle MathFit card clicks\n if (isMathFitCard && entityId) {\n if (typeof onCardClick !== 'function') {\n throw new Error('onCardClick must be a function for MathFit cards');\n }\n\n onCardClick({ entityId, type: ECardType.MATHFIT });\n\n return;\n }\n\n if (canStart || canResume) {\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData, milestoneId, homeworkId);\n\n return;\n }\n\n if (!isHomeWork) {\n onStudentMenuClick();\n\n return;\n }\n onStudentViewSheet();\n }, [\n canResume,\n canStart,\n entityId,\n homeworkId,\n isHomeWork,\n isMathFitCard,\n milestoneId,\n nodeData,\n onCardClick,\n onNodeAttempt,\n onStudentMenuClick,\n onStudentViewSheet,\n ]);\n\n const onTeacherCardClick = useCallback(() => {\n // Handle MathFit card clicks\n if (isMathFitCard && entityId) {\n if (typeof onCardClick !== 'function') {\n throw new Error('onCardClick must be a function for MathFit cards');\n }\n\n onCardClick({ entityId, type: ECardType.MATHFIT });\n\n return;\n }\n\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onNodeReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, milestoneId, homeworkId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onNodeView must be a function');\n }\n\n onNodeView(nodeData, milestoneId);\n }, [\n canReview,\n entityId,\n homeworkId,\n isMathFitCard,\n milestoneId,\n nodeData,\n onCardClick,\n onNodeReview,\n onNodeView,\n userNodeId,\n ]);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'teacher-card-view':\n onTeacherCardClick();\n\n return;\n case 'student-card-view':\n onStudentViewSheet();\n\n return;\n case 'teacher-card-unassign':\n onNodeUnassign?.(nodeData, milestoneId, homeworkId);\n\n return;\n case 'student-card-reattempt':\n case 'teacher-card-redo':\n onNodeReattempt?.(nodeData, milestoneId);\n\n return;\n\n case 'teacher-card-assign-as-hw':\n onNodeAssignAsHomework?.(nodeData, milestoneId);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [\n homeworkId,\n milestoneId,\n nodeData,\n onNodeAssignAsHomework,\n onNodeReattempt,\n onNodeUnassign,\n onStudentViewSheet,\n onTeacherCardClick,\n ],\n );\n\n const teacherOptions = useMemo(() => {\n const options = [\n {\n id: 'teacher-card-view',\n label: canReview ? 'Review' : 'View',\n icon: Eye2Icon,\n disabled: false,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n disabled: isHomeWork ? nodeType === 'MASTERY' : !canUnassign,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-redo',\n label: 'Redo',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-assign-as-hw',\n label: 'Assign as HW',\n icon: Home2Icon,\n disabled: !canAssignAsHw,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n return disableMenuActions\n ? options.filter(option => option.id === 'teacher-card-view')\n : options;\n }, [\n canReview,\n canUnassign,\n canReset,\n canAssignAsHw,\n isHomeWork,\n nodeType,\n disableMenuActions,\n handleOnMenuOptionClick,\n ]);\n\n const studentOptions = useMemo(\n () => [\n {\n id: 'student-card-view',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'student-card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n ],\n [canReview, canReset, handleOnMenuOptionClick],\n );\n\n const analyticsLabel = useMemo(\n () =>\n getCardAnalyticProps({\n canResume,\n canStart,\n entityId,\n entityType,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n totalQuestions,\n userNodeId,\n }),\n [\n canResume,\n canStart,\n entityId,\n entityType,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n totalQuestions,\n userNodeId,\n ],\n );\n\n const showMoreMenu = !isStudent && !isPuzzleCard && !isMathFitCard;\n\n const isClickableDisabled = useMemo(\n () =>\n (isStudent && isPuzzleCard && isSheetLocked) ||\n (!isStudent && isMathFitCard && state !== 'COMPLETED' && state !== 'EXPIRED') ||\n (isMathFitCard && isSheetLocked),\n [isStudent, isPuzzleCard, isSheetLocked, isMathFitCard, state],\n );\n\n return (\n <Styled.CardContainer $position=\"relative\" $width=\"fit-content\">\n <Clickable\n onClick={isStudent ? onStudentCardClick : onTeacherCardClick}\n label=\"homework-card\"\n analyticsLabel={analyticsLabel.analyticsLabel}\n analyticsProps={analyticsLabel.analyticsProps}\n disabled={isClickableDisabled}\n >\n <HomeworkView\n entityType={entityType}\n header={header}\n isInQueue={isInQueue}\n isMilestone={renderAs === 'milestone'}\n nodeData={nodeData}\n puzzleHWCardRef={puzzleHWCardRef}\n mathFitCardRef={mathFitCardRef}\n score={score}\n imageUrl={imageUrl}\n state={state}\n studentContainerRef={studentContainerRef}\n subHeader={subHeader}\n userType={userType}\n />\n </Clickable>\n {isStudent && !isHomeWork && !isMathFitCard && (\n <CardMenuOptions\n $width={200}\n options={studentOptions}\n triggerRef={studentContainerRef}\n visible={studentMenuVisible}\n shouldOpenOnRight={false}\n />\n )}\n {showMoreMenu && (\n <Styled.MenuWrapper $position=\"absolute\" $width=\"fit-content\" $borderRadiusX={2}>\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Review\"\n position=\"bottom\"\n zIndex={6}\n parentWidth=\"100%\"\n hidden={teacherMenuVisible || (state !== 'WAIT_FOR_REVIEW' && isHomeWork)}\n >\n <Styled.CardKebabMenuWrapper\n $alignItems=\"center\"\n $justifyContent=\"center\"\n ref={teacherContainerRef}\n onClick={onTeacherMenuClick}\n >\n <MoreVerticalIcon width={16} height={16} />\n </Styled.CardKebabMenuWrapper>\n </ArrowTooltip>\n <CardMenuOptions\n options={teacherOptions}\n triggerRef={teacherContainerRef}\n visible={teacherMenuVisible}\n shouldOpenOnRight={shouldOpenOnRight}\n $width={144}\n />\n </Styled.MenuWrapper>\n )}\n {isInQueue && (\n <Styled.BlurContainer $background=\"WHITE_5\">\n <Styled.BlurFlexView $heightX={1} $widthX={6}>\n <ArrowTooltip renderAs=\"primary\" tooltipItem=\"Not visible to student\" position=\"bottom\">\n <FlexView $heightX={1} $widthX={6} />\n </ArrowTooltip>\n </Styled.BlurFlexView>\n </Styled.BlurContainer>\n )}\n </Styled.CardContainer>\n );\n};\n\nexport default memo(HomeworkCard);\n"],"names":["HomeworkCard","nodeData","onNodeAttempt","onNodeReattempt","onNodeReview","onNodeUnassign","onNodeView","onNodeAssignAsHomework","onCardClick","entityId","entityType","header","homeworkId","isInQueue","mathFitCardRef","renderAs","score","shouldOpenOnRight","state","totalQuestions","imageUrl","studentId","subHeader","userMilestoneId","userType","puzzleHWCardRef","disableMenuActions","isHomeWork","nodeType","permissions","userNodeId","milestoneId","isPuzzleCard","isMathFitCard","EHWCardListEntityType","isSheetLocked","teacherContainerRef","useRef","studentContainerRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","canStart","canResume","canReview","canUnassign","canReset","canAssignAsHw","isStudent","onStudentViewSheet","useCallback","onStudentCardClick","ECardType","onTeacherCardClick","handleOnMenuOptionClick","optionId","teacherOptions","useMemo","options","Eye2Icon","Styled.StyledMinus2Icon","RedoIcon","Home2Icon","option","studentOptions","analyticsLabel","getCardAnalyticProps","showMoreMenu","isClickableDisabled","Styled.CardContainer","jsx","Clickable","HomeworkView","CardMenuOptions","jsxs","Styled.MenuWrapper","ArrowTooltip","Styled.CardKebabMenuWrapper","MoreVerticalIcon","Styled.BlurContainer","Styled.BlurFlexView","FlexView","HomeworkCard$1","memo"],"mappings":"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"}
1
+ {"version":3,"file":"homework-card.js","sources":["../../../src/features/homework/homework-card.tsx"],"sourcesContent":["import { memo, useCallback, useMemo, useRef, type FC } from 'react';\n\nimport Eye2Icon from '../../assets/line-icons/icons/eye2';\nimport Home2Icon from '../../assets/line-icons/icons/home2';\nimport MoreVerticalIcon from '../../assets/line-icons/icons/more-vertical';\nimport RedoIcon from '../../assets/line-icons/icons/redo';\nimport {\n ECardType,\n type INodeCardCallbacks,\n type INodeDataProps,\n type TSheetStates,\n} from '../chapters-v2/comps/node-card/node-card-types';\nimport ArrowTooltip from '../ui/arrow-tooltip/arrow-tooltip';\nimport Clickable from '../ui/buttons/clickable/clickable';\nimport useContextMenuClickHandler from '../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../ui/layout/flex-view';\nimport type { TUserTypes } from '../ui/types';\nimport CardMenuOptions from './card-menu-options';\nimport HomeworkView from './homework-card-view';\nimport { EHWCardListEntityType } from './hw-card-list/hw-card-list-types';\nimport * as Styled from './styles';\nimport { getCardAnalyticProps } from './utils';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n entityId?: string;\n entityType?: EHWCardListEntityType;\n header: string;\n homeworkId?: string;\n isInQueue?: boolean;\n nodeData: INodeDataProps;\n puzzleHWCardRef?: React.RefObject<HTMLDivElement>;\n mathFitCardRef?: React.RefObject<HTMLDivElement>;\n renderAs: 'homework' | 'milestone';\n score: number | null;\n shouldOpenOnRight: boolean;\n state: TSheetStates;\n imageUrl?: string;\n studentId: string;\n subHeader: string;\n userMilestoneId?: string;\n userType: TUserTypes;\n totalQuestions: number;\n}\n\nconst HomeworkCard: FC<IHomeworkCardProps> = ({\n // callbacks\n nodeData,\n onNodeAttempt,\n onNodeReattempt,\n onNodeReview,\n onNodeUnassign,\n onNodeView,\n onNodeAssignAsHomework,\n onCardClick,\n\n entityId,\n entityType,\n header,\n homeworkId,\n isInQueue,\n puzzleHWCardRef,\n mathFitCardRef,\n renderAs,\n score,\n shouldOpenOnRight,\n state,\n totalQuestions,\n imageUrl,\n studentId,\n subHeader,\n userMilestoneId,\n userType,\n}) => {\n const isHomeWork = renderAs === 'homework';\n const { node_type: nodeType, permissions, user_node_id: userNodeId } = nodeData;\n\n const milestoneId = userMilestoneId || '';\n const isPuzzleCard = nodeType === 'PUZZLE_CARD';\n const isMathFitCard = entityType === EHWCardListEntityType.MATHFIT_TEST;\n const isSheetLocked = state === 'LOCKED';\n\n const teacherContainerRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const studentContainerRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const { menuVisible: teacherMenuVisible, onMenuClick: onTeacherMenuClick } =\n useContextMenuClickHandler(teacherContainerRef);\n const { menuVisible: studentMenuVisible, onMenuClick: onStudentMenuClick } =\n useContextMenuClickHandler(studentContainerRef);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n can_assign_as_homework: canAssignAsHw,\n } = permissions;\n const isStudent = userType === 'STUDENT';\n\n const onStudentViewSheet = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, milestoneId);\n\n return;\n }\n }, [canReview, onNodeReview, userNodeId, nodeData, milestoneId]);\n\n const onStudentCardClick = useCallback(() => {\n // Handle MathFit card clicks\n if (isMathFitCard && entityId) {\n if (typeof onCardClick !== 'function') {\n throw new Error('onCardClick must be a function for MathFit cards');\n }\n\n onCardClick({ entityId, type: ECardType.MATHFIT, state });\n\n return;\n }\n\n if (canStart || canResume) {\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData, milestoneId, homeworkId);\n\n return;\n }\n\n if (!isHomeWork) {\n onStudentMenuClick();\n\n return;\n }\n onStudentViewSheet();\n }, [\n canResume,\n canStart,\n entityId,\n homeworkId,\n isHomeWork,\n isMathFitCard,\n milestoneId,\n nodeData,\n onCardClick,\n onNodeAttempt,\n onStudentMenuClick,\n onStudentViewSheet,\n state,\n ]);\n\n const onTeacherCardClick = useCallback(() => {\n // Handle MathFit card clicks\n if (isMathFitCard && entityId) {\n if (typeof onCardClick !== 'function') {\n throw new Error('onCardClick must be a function for MathFit cards');\n }\n\n onCardClick({ entityId, type: ECardType.MATHFIT, state });\n\n return;\n }\n\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onNodeReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, milestoneId, homeworkId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onNodeView must be a function');\n }\n\n onNodeView(nodeData, milestoneId);\n }, [\n canReview,\n entityId,\n homeworkId,\n isMathFitCard,\n milestoneId,\n nodeData,\n onCardClick,\n onNodeReview,\n onNodeView,\n state,\n userNodeId,\n ]);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'teacher-card-view':\n onTeacherCardClick();\n\n return;\n case 'student-card-view':\n onStudentViewSheet();\n\n return;\n case 'teacher-card-unassign':\n onNodeUnassign?.(nodeData, milestoneId, homeworkId);\n\n return;\n case 'student-card-reattempt':\n case 'teacher-card-redo':\n onNodeReattempt?.(nodeData, milestoneId);\n\n return;\n\n case 'teacher-card-assign-as-hw':\n onNodeAssignAsHomework?.(nodeData, milestoneId);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [\n homeworkId,\n milestoneId,\n nodeData,\n onNodeAssignAsHomework,\n onNodeReattempt,\n onNodeUnassign,\n onStudentViewSheet,\n onTeacherCardClick,\n ],\n );\n\n const teacherOptions = [\n {\n id: 'teacher-card-view',\n label: canReview ? 'Review' : 'View',\n icon: Eye2Icon,\n disabled: false,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n disabled: isHomeWork ? nodeType === 'MASTERY' : !canUnassign,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-redo',\n label: 'Redo',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-assign-as-hw',\n label: 'Assign as HW',\n icon: Home2Icon,\n disabled: !canAssignAsHw,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const studentOptions = [\n {\n id: 'student-card-view',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'student-card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const analyticsLabel = useMemo(\n () =>\n getCardAnalyticProps({\n canResume,\n canStart,\n entityId,\n entityType,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n totalQuestions,\n userNodeId,\n }),\n [\n canResume,\n canStart,\n entityId,\n entityType,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n totalQuestions,\n userNodeId,\n ],\n );\n\n const isClickableDisabled =\n (isStudent && isPuzzleCard && isSheetLocked) ||\n (!isStudent && isMathFitCard && state !== 'COMPLETED' && state !== 'EXPIRED') ||\n (isMathFitCard && isSheetLocked);\n\n return (\n <Styled.CardContainer $position=\"relative\" $width=\"fit-content\">\n <Clickable\n onClick={isStudent ? onStudentCardClick : onTeacherCardClick}\n label=\"homework-card\"\n analyticsLabel={analyticsLabel.analyticsLabel}\n analyticsProps={analyticsLabel.analyticsProps}\n disabled={isClickableDisabled}\n >\n <HomeworkView\n entityType={entityType}\n header={header}\n isInQueue={isInQueue}\n isMilestone={renderAs === 'milestone'}\n nodeData={nodeData}\n puzzleHWCardRef={puzzleHWCardRef}\n mathFitCardRef={mathFitCardRef}\n score={score}\n imageUrl={imageUrl}\n state={state}\n studentContainerRef={studentContainerRef}\n subHeader={subHeader}\n userType={userType}\n />\n </Clickable>\n {isStudent && !isHomeWork && !isMathFitCard && (\n <CardMenuOptions\n $width={200}\n options={studentOptions}\n triggerRef={studentContainerRef}\n visible={studentMenuVisible}\n shouldOpenOnRight={false}\n />\n )}\n {!isStudent && !isPuzzleCard && !isMathFitCard && (\n <Styled.MenuWrapper $position=\"absolute\" $width=\"fit-content\" $borderRadiusX={2}>\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Review\"\n position=\"bottom\"\n zIndex={6}\n parentWidth=\"100%\"\n hidden={teacherMenuVisible || (state !== 'WAIT_FOR_REVIEW' && isHomeWork)}\n >\n <Styled.CardKebabMenuWrapper\n $alignItems=\"center\"\n $justifyContent=\"center\"\n ref={teacherContainerRef}\n onClick={onTeacherMenuClick}\n >\n <MoreVerticalIcon width={16} height={16} />\n </Styled.CardKebabMenuWrapper>\n </ArrowTooltip>\n <CardMenuOptions\n options={teacherOptions}\n triggerRef={teacherContainerRef}\n visible={teacherMenuVisible}\n shouldOpenOnRight={shouldOpenOnRight}\n $width={144}\n />\n </Styled.MenuWrapper>\n )}\n {isInQueue && (\n <Styled.BlurContainer $background=\"WHITE_5\">\n <Styled.BlurFlexView $heightX={1} $widthX={6}>\n <ArrowTooltip renderAs=\"primary\" tooltipItem=\"Not visible to student\" position=\"bottom\">\n <FlexView $heightX={1} $widthX={6} />\n </ArrowTooltip>\n </Styled.BlurFlexView>\n </Styled.BlurContainer>\n )}\n </Styled.CardContainer>\n );\n};\n\nexport default memo(HomeworkCard);\n"],"names":["HomeworkCard","nodeData","onNodeAttempt","onNodeReattempt","onNodeReview","onNodeUnassign","onNodeView","onNodeAssignAsHomework","onCardClick","entityId","entityType","header","homeworkId","isInQueue","puzzleHWCardRef","mathFitCardRef","renderAs","score","shouldOpenOnRight","state","totalQuestions","imageUrl","studentId","subHeader","userMilestoneId","userType","isHomeWork","nodeType","permissions","userNodeId","milestoneId","isPuzzleCard","isMathFitCard","EHWCardListEntityType","isSheetLocked","teacherContainerRef","useRef","studentContainerRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","canStart","canResume","canReview","canUnassign","canReset","canAssignAsHw","isStudent","onStudentViewSheet","useCallback","onStudentCardClick","ECardType","onTeacherCardClick","handleOnMenuOptionClick","optionId","teacherOptions","Eye2Icon","Styled.StyledMinus2Icon","RedoIcon","Home2Icon","studentOptions","analyticsLabel","useMemo","getCardAnalyticProps","isClickableDisabled","Styled.CardContainer","jsx","Clickable","HomeworkView","CardMenuOptions","jsxs","Styled.MenuWrapper","ArrowTooltip","Styled.CardKebabMenuWrapper","MoreVerticalIcon","Styled.BlurContainer","Styled.BlurFlexView","FlexView","HomeworkCard$1","memo"],"mappings":"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"}