@cuemath/leap 2.8.60-as1 → 2.8.60-as3

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.
@@ -31,7 +31,7 @@ const He = ({
31
31
  accuracy: S,
32
32
  due_date_ts: W,
33
33
  image_url: w,
34
- image_hue: A = "ORANGE",
34
+ image_hue: A,
35
35
  card_header: O = "",
36
36
  permissions: B,
37
37
  user_node_id: s
@@ -123,78 +123,86 @@ const He = ({
123
123
  onClick: p
124
124
  }
125
125
  ], V = !!k.find((l) => l.visible);
126
- return /* @__PURE__ */ e(ee, { onClick: v ? z : void 0, label: "homework-card", children: /* @__PURE__ */ a(ne, { $widthX: 12.5, $position: "relative", $background: `${A}_2`, children: [
127
- /* @__PURE__ */ a(
128
- ce,
129
- {
130
- $flexDirection: "row",
131
- $alignItems: "center",
132
- $width: "100%",
133
- $heightX: 3.5,
134
- $bgImage: R || "",
135
- $gutterX: 0.78125,
136
- $flexGap: 8.5,
137
- $position: "relative",
138
- children: [
139
- /* @__PURE__ */ e(
140
- oe,
141
- {
142
- $width: 31,
143
- $height: 31,
144
- $borderRadiusX: 2,
145
- $background: "WHITE_1",
146
- $position: "relative",
147
- $alignItems: "center",
148
- $justifyContent: "center",
149
- children: $ && /* @__PURE__ */ e($, { width: 20, height: 20 })
150
- }
151
- ),
152
- /* @__PURE__ */ e(te, { $renderAs: "ac4-black", children: O }),
153
- !!w && /* @__PURE__ */ e(ae, { children: /* @__PURE__ */ e(se, { src: w, alt: "Chapter image" }) })
154
- ]
155
- }
156
- ),
157
- /* @__PURE__ */ e(Z, { nodeType: c, state: X, accuracy: S, dueDateTs: W }),
158
- /* @__PURE__ */ a(u, { $gutterX: 0.75, $gapX: 1, $flexRowGapX: 0.5, $background: "WHITE", children: [
159
- /* @__PURE__ */ e(
160
- E,
161
- {
162
- renderAs: "primary",
163
- position: "bottom",
164
- tooltipItem: d || "",
165
- hidden: !K,
166
- widthX: 21.75,
167
- children: /* @__PURE__ */ e(u, { $heightX: 2.5, children: /* @__PURE__ */ e(le, { ref: o, $renderAs: "ab3", children: d }) })
168
- }
169
- ),
170
- /* @__PURE__ */ a(
171
- u,
172
- {
173
- $flexDirection: "row",
174
- $heightX: 1.25,
175
- $alignItems: "center",
176
- $justifyContent: "space-between",
177
- children: [
178
- /* @__PURE__ */ e(ue, { $renderAs: "ub3", $color: "BLACK_T_60", children: I }),
179
- !v && r && V && /* @__PURE__ */ a(u, { $position: "relative", $width: "fit-content", children: [
126
+ return /* @__PURE__ */ e(ee, { onClick: v ? z : void 0, label: "homework-card", children: /* @__PURE__ */ a(
127
+ ne,
128
+ {
129
+ $widthX: 12.5,
130
+ $position: "relative",
131
+ $background: `${A || "ORANGE"}_2`,
132
+ children: [
133
+ /* @__PURE__ */ a(
134
+ ce,
135
+ {
136
+ $flexDirection: "row",
137
+ $alignItems: "center",
138
+ $width: "100%",
139
+ $heightX: 3.5,
140
+ $bgImage: R,
141
+ $gutterX: 0.78125,
142
+ $flexGap: 8.5,
143
+ $position: "relative",
144
+ children: [
180
145
  /* @__PURE__ */ e(
181
- E,
146
+ oe,
182
147
  {
183
- renderAs: "primary",
184
- tooltipItem: "Review",
185
- position: "bottom",
186
- zIndex: 5,
187
- parentWidth: "100%",
188
- children: /* @__PURE__ */ e(he, { ref: b, onClick: G, children: /* @__PURE__ */ e(U, { width: 16, height: 16 }) })
148
+ $width: 31,
149
+ $height: 31,
150
+ $borderRadiusX: 2,
151
+ $background: "WHITE_1",
152
+ $position: "relative",
153
+ $alignItems: "center",
154
+ $justifyContent: "center",
155
+ children: $ && /* @__PURE__ */ e($, { width: 20, height: 20 })
189
156
  }
190
157
  ),
191
- /* @__PURE__ */ e(me, { $visible: j, children: /* @__PURE__ */ e(ie, { options: k }) })
192
- ] })
193
- ]
194
- }
195
- )
196
- ] })
197
- ] }) });
158
+ /* @__PURE__ */ e(te, { $renderAs: "ac4-black", children: O }),
159
+ !!w && /* @__PURE__ */ e(ae, { children: /* @__PURE__ */ e(se, { src: w, alt: "Chapter image" }) })
160
+ ]
161
+ }
162
+ ),
163
+ /* @__PURE__ */ e(Z, { nodeType: c, state: X, accuracy: S, dueDateTs: W }),
164
+ /* @__PURE__ */ a(u, { $gutterX: 0.75, $gapX: 1, $flexRowGapX: 0.5, $background: "WHITE", children: [
165
+ /* @__PURE__ */ e(
166
+ E,
167
+ {
168
+ renderAs: "primary",
169
+ position: "bottom",
170
+ tooltipItem: d,
171
+ hidden: !K,
172
+ widthX: 21.75,
173
+ children: /* @__PURE__ */ e(u, { $heightX: 2.5, children: /* @__PURE__ */ e(le, { ref: o, $renderAs: "ab3", children: d }) })
174
+ }
175
+ ),
176
+ /* @__PURE__ */ a(
177
+ u,
178
+ {
179
+ $flexDirection: "row",
180
+ $heightX: 1.25,
181
+ $alignItems: "center",
182
+ $justifyContent: "space-between",
183
+ children: [
184
+ /* @__PURE__ */ e(ue, { $renderAs: "ub3", $color: "BLACK_T_60", children: I }),
185
+ !v && r && V && /* @__PURE__ */ a(u, { $position: "relative", $width: "fit-content", children: [
186
+ /* @__PURE__ */ e(
187
+ E,
188
+ {
189
+ renderAs: "primary",
190
+ tooltipItem: "Review",
191
+ position: "bottom",
192
+ zIndex: 5,
193
+ parentWidth: "100%",
194
+ children: /* @__PURE__ */ e(he, { ref: b, onClick: G, children: /* @__PURE__ */ e(U, { width: 16, height: 16 }) })
195
+ }
196
+ ),
197
+ /* @__PURE__ */ e(me, { $visible: j, children: /* @__PURE__ */ e(ie, { options: k }) })
198
+ ] })
199
+ ]
200
+ }
201
+ )
202
+ ] })
203
+ ]
204
+ }
205
+ ) });
198
206
  };
199
207
  export {
200
208
  He as default
@@ -1 +1 @@
1
- {"version":3,"file":"homework-card.js","sources":["../../../src/features/homework/homework-card.tsx"],"sourcesContent":["import type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../chapters-v2/comps/node-card/node-card-types';\nimport type { ICardMenuOption } from './card-menu-options';\n\nimport { useCallback, useLayoutEffect, useRef, useState } from 'react';\n\nimport Eye2Icon from '../../assets/line-icons/icons/eye2';\nimport MoreVerticalIcon from '../../assets/line-icons/icons/more-vertical';\nimport RedoIcon from '../../assets/line-icons/icons/redo';\nimport NodeCardTags from '../chapters-v2/comps/node-card/node-card-tags';\nimport { getNodeTypeBasedBgImage } from '../chapters-v2/utils';\nimport { getNodeCardBasedIcon } from '../chapters-v2/utils/node-card-utils';\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 Text from '../ui/text/text';\nimport CardMenuOptions from './card-menu-options';\nimport * as Styled from './styles';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n header: string;\n nodeData: INodeDataProps;\n subHeader: string;\n userType: 'TEACHER' | 'STUDENT';\n userMilestoneId?: string;\n}\n\nconst HomeworkCard = ({\n header,\n nodeData,\n subHeader,\n userType,\n userMilestoneId,\n onNodeUnassign,\n onNodeReset,\n onNodeView,\n onNodeReview,\n onNodeAttempt,\n}: IHomeworkCardProps) => {\n const {\n node_type: nodeType,\n state,\n accuracy,\n due_date_ts: dueDateTs,\n image_url: imageUrl,\n image_hue: imageHue = 'ORANGE',\n card_header: cardHeader = '',\n permissions,\n user_node_id: userNodeId,\n } = nodeData;\n\n const bgImage = nodeType && getNodeTypeBasedBgImage(nodeType);\n const NodeCardIcon = nodeType && getNodeCardBasedIcon(nodeType);\n const containerRef = useRef<HTMLDivElement>(null);\n const { menuVisible, onMenuClick } = useContextMenuClickHandler(containerRef);\n const titleTextRef = useRef<HTMLDivElement>(null);\n const [showTitleTooltip, setShowTitleTooltip] = useState(false);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_teacher_review: canTeacherReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n } = permissions || {};\n const isStudent = userType === 'STUDENT';\n\n useLayoutEffect(() => {\n if (\n titleTextRef.current &&\n titleTextRef.current.scrollHeight > titleTextRef.current.clientHeight\n ) {\n setShowTitleTooltip(true);\n }\n }, [titleTextRef]);\n\n const onStudentView = useCallback(() => {\n if (canStart || canResume) {\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData);\n\n return;\n }\n\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, userMilestoneId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onPreview must be a function');\n }\n\n onNodeView(nodeData, userMilestoneId);\n }, [\n canResume,\n canReview,\n canStart,\n userMilestoneId,\n nodeData,\n onNodeAttempt,\n onNodeReview,\n onNodeView,\n userNodeId,\n ]);\n\n const onTeacherView = useCallback(() => {\n if (canTeacherReview) {\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\n onNodeReview(nodeData, userMilestoneId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onPreview must be a function');\n }\n\n onNodeView(nodeData, userMilestoneId);\n }, [canTeacherReview, userMilestoneId, nodeData, onNodeReview, onNodeView, userNodeId]);\n\n const handleOnMenuOptionClick = (optionId: string) => {\n switch (optionId) {\n case 'card-view':\n onTeacherView();\n\n return;\n case 'card-unassign':\n nodeData && onNodeUnassign?.(nodeData, userMilestoneId);\n\n return;\n case 'card-reset':\n nodeData && onNodeReset?.(nodeData, userMilestoneId);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n };\n\n const menuOptions: ICardMenuOption[] = [\n {\n id: 'card-view',\n label: 'View',\n icon: Eye2Icon,\n visible: true,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n visible: !!canUnassign,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'card-reset',\n label: 'Reset',\n icon: RedoIcon,\n visible: !!canReset,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const canShowMenuOptions = !!menuOptions.find(option => option.visible);\n\n return (\n <Clickable onClick={isStudent ? onStudentView : undefined} label=\"homework-card\">\n <Styled.CardContainer $widthX={12.5} $position=\"relative\" $background={`${imageHue}_2`}>\n <Styled.CardWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $width=\"100%\"\n $heightX={3.5}\n $bgImage={bgImage || ''}\n $gutterX={0.78125}\n $flexGap={8.5}\n $position=\"relative\"\n >\n <Styled.IconWrapper\n $width={31}\n $height={31}\n $borderRadiusX={2}\n $background=\"WHITE_1\"\n $position=\"relative\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n {NodeCardIcon && <NodeCardIcon width={20} height={20} />}\n </Styled.IconWrapper>\n <Text $renderAs=\"ac4-black\">{cardHeader}</Text>\n {!!imageUrl && (\n <Styled.BannerImageWrapper>\n <Styled.BannerImage src={imageUrl} alt=\"Chapter image\" />\n </Styled.BannerImageWrapper>\n )}\n </Styled.CardWrapper>\n <NodeCardTags nodeType={nodeType} state={state} accuracy={accuracy} dueDateTs={dueDateTs} />\n <FlexView $gutterX={0.75} $gapX={1} $flexRowGapX={0.5} $background=\"WHITE\">\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={header || ''}\n hidden={!showTitleTooltip}\n widthX={21.75}\n >\n <FlexView $heightX={2.5}>\n <Styled.HeaderText ref={titleTextRef} $renderAs=\"ab3\">\n {header}\n </Styled.HeaderText>\n </FlexView>\n </ArrowTooltip>\n <FlexView\n $flexDirection=\"row\"\n $heightX={1.25}\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n >\n <Styled.SubHeaderText $renderAs=\"ub3\" $color=\"BLACK_T_60\">\n {subHeader}\n </Styled.SubHeaderText>\n {!isStudent && nodeData && canShowMenuOptions && (\n <FlexView $position=\"relative\" $width=\"fit-content\">\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Review\"\n position=\"bottom\"\n zIndex={5}\n parentWidth=\"100%\"\n >\n <Styled.CardKebabMenuWrapper ref={containerRef} onClick={onMenuClick}>\n <MoreVerticalIcon width={16} height={16} />\n </Styled.CardKebabMenuWrapper>\n </ArrowTooltip>\n <Styled.CardMenuOptionsWrapper $visible={menuVisible}>\n <CardMenuOptions options={menuOptions} />\n </Styled.CardMenuOptionsWrapper>\n </FlexView>\n )}\n </FlexView>\n </FlexView>\n </Styled.CardContainer>\n </Clickable>\n );\n};\n\nexport default HomeworkCard;\n"],"names":["HomeworkCard","header","nodeData","subHeader","userType","userMilestoneId","onNodeUnassign","onNodeReset","onNodeView","onNodeReview","onNodeAttempt","nodeType","state","accuracy","dueDateTs","imageUrl","imageHue","cardHeader","permissions","userNodeId","bgImage","getNodeTypeBasedBgImage","NodeCardIcon","getNodeCardBasedIcon","containerRef","useRef","menuVisible","onMenuClick","useContextMenuClickHandler","titleTextRef","showTitleTooltip","setShowTitleTooltip","useState","canStart","canResume","canReview","canTeacherReview","canUnassign","canReset","isStudent","useLayoutEffect","onStudentView","useCallback","onTeacherView","handleOnMenuOptionClick","optionId","menuOptions","Eye2Icon","Styled.StyledMinus2Icon","RedoIcon","canShowMenuOptions","option","Clickable","jsxs","Styled.CardContainer","Styled.CardWrapper","jsx","Styled.IconWrapper","Text","Styled.BannerImageWrapper","Styled.BannerImage","NodeCardTags","FlexView","ArrowTooltip","Styled.HeaderText","Styled.SubHeaderText","Styled.CardKebabMenuWrapper","MoreVerticalIcon","Styled.CardMenuOptionsWrapper","CardMenuOptions"],"mappings":"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"}
1
+ {"version":3,"file":"homework-card.js","sources":["../../../src/features/homework/homework-card.tsx"],"sourcesContent":["import type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../chapters-v2/comps/node-card/node-card-types';\nimport type { ICardMenuOption } from './card-menu-options';\n\nimport { useCallback, useLayoutEffect, useRef, useState } from 'react';\n\nimport Eye2Icon from '../../assets/line-icons/icons/eye2';\nimport MoreVerticalIcon from '../../assets/line-icons/icons/more-vertical';\nimport RedoIcon from '../../assets/line-icons/icons/redo';\nimport NodeCardTags from '../chapters-v2/comps/node-card/node-card-tags';\nimport { getNodeTypeBasedBgImage } from '../chapters-v2/utils';\nimport { getNodeCardBasedIcon } from '../chapters-v2/utils/node-card-utils';\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 Text from '../ui/text/text';\nimport CardMenuOptions from './card-menu-options';\nimport * as Styled from './styles';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n header: string;\n nodeData: INodeDataProps;\n subHeader: string;\n userType: 'TEACHER' | 'STUDENT';\n userMilestoneId?: string;\n}\n\nconst HomeworkCard = ({\n header,\n nodeData,\n subHeader,\n userType,\n userMilestoneId,\n onNodeUnassign,\n onNodeReset,\n onNodeView,\n onNodeReview,\n onNodeAttempt,\n}: IHomeworkCardProps) => {\n const {\n node_type: nodeType,\n state,\n accuracy,\n due_date_ts: dueDateTs,\n image_url: imageUrl,\n image_hue: imageHue,\n card_header: cardHeader = '',\n permissions,\n user_node_id: userNodeId,\n } = nodeData;\n\n const bgImage = nodeType && getNodeTypeBasedBgImage(nodeType);\n const NodeCardIcon = nodeType && getNodeCardBasedIcon(nodeType);\n const containerRef = useRef<HTMLDivElement>(null);\n const { menuVisible, onMenuClick } = useContextMenuClickHandler(containerRef);\n const titleTextRef = useRef<HTMLDivElement>(null);\n const [showTitleTooltip, setShowTitleTooltip] = useState(false);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_teacher_review: canTeacherReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n } = permissions || {};\n const isStudent = userType === 'STUDENT';\n\n useLayoutEffect(() => {\n if (\n titleTextRef.current &&\n titleTextRef.current.scrollHeight > titleTextRef.current.clientHeight\n ) {\n setShowTitleTooltip(true);\n }\n }, [titleTextRef]);\n\n const onStudentView = useCallback(() => {\n if (canStart || canResume) {\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData);\n\n return;\n }\n\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, userMilestoneId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onPreview must be a function');\n }\n\n onNodeView(nodeData, userMilestoneId);\n }, [\n canResume,\n canReview,\n canStart,\n userMilestoneId,\n nodeData,\n onNodeAttempt,\n onNodeReview,\n onNodeView,\n userNodeId,\n ]);\n\n const onTeacherView = useCallback(() => {\n if (canTeacherReview) {\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\n onNodeReview(nodeData, userMilestoneId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onPreview must be a function');\n }\n\n onNodeView(nodeData, userMilestoneId);\n }, [canTeacherReview, userMilestoneId, nodeData, onNodeReview, onNodeView, userNodeId]);\n\n const handleOnMenuOptionClick = (optionId: string) => {\n switch (optionId) {\n case 'card-view':\n onTeacherView();\n\n return;\n case 'card-unassign':\n nodeData && onNodeUnassign?.(nodeData, userMilestoneId);\n\n return;\n case 'card-reset':\n nodeData && onNodeReset?.(nodeData, userMilestoneId);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n };\n\n const menuOptions: ICardMenuOption[] = [\n {\n id: 'card-view',\n label: 'View',\n icon: Eye2Icon,\n visible: true,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n visible: !!canUnassign,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'card-reset',\n label: 'Reset',\n icon: RedoIcon,\n visible: !!canReset,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const canShowMenuOptions = !!menuOptions.find(option => option.visible);\n\n return (\n <Clickable onClick={isStudent ? onStudentView : undefined} label=\"homework-card\">\n <Styled.CardContainer\n $widthX={12.5}\n $position=\"relative\"\n $background={`${imageHue || 'ORANGE'}_2`}\n >\n <Styled.CardWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $width=\"100%\"\n $heightX={3.5}\n $bgImage={bgImage}\n $gutterX={0.78125}\n $flexGap={8.5}\n $position=\"relative\"\n >\n <Styled.IconWrapper\n $width={31}\n $height={31}\n $borderRadiusX={2}\n $background=\"WHITE_1\"\n $position=\"relative\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n {NodeCardIcon && <NodeCardIcon width={20} height={20} />}\n </Styled.IconWrapper>\n <Text $renderAs=\"ac4-black\">{cardHeader}</Text>\n {!!imageUrl && (\n <Styled.BannerImageWrapper>\n <Styled.BannerImage src={imageUrl} alt=\"Chapter image\" />\n </Styled.BannerImageWrapper>\n )}\n </Styled.CardWrapper>\n <NodeCardTags nodeType={nodeType} state={state} accuracy={accuracy} dueDateTs={dueDateTs} />\n <FlexView $gutterX={0.75} $gapX={1} $flexRowGapX={0.5} $background=\"WHITE\">\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={header}\n hidden={!showTitleTooltip}\n widthX={21.75}\n >\n <FlexView $heightX={2.5}>\n <Styled.HeaderText ref={titleTextRef} $renderAs=\"ab3\">\n {header}\n </Styled.HeaderText>\n </FlexView>\n </ArrowTooltip>\n <FlexView\n $flexDirection=\"row\"\n $heightX={1.25}\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n >\n <Styled.SubHeaderText $renderAs=\"ub3\" $color=\"BLACK_T_60\">\n {subHeader}\n </Styled.SubHeaderText>\n {!isStudent && nodeData && canShowMenuOptions && (\n <FlexView $position=\"relative\" $width=\"fit-content\">\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Review\"\n position=\"bottom\"\n zIndex={5}\n parentWidth=\"100%\"\n >\n <Styled.CardKebabMenuWrapper ref={containerRef} onClick={onMenuClick}>\n <MoreVerticalIcon width={16} height={16} />\n </Styled.CardKebabMenuWrapper>\n </ArrowTooltip>\n <Styled.CardMenuOptionsWrapper $visible={menuVisible}>\n <CardMenuOptions options={menuOptions} />\n </Styled.CardMenuOptionsWrapper>\n </FlexView>\n )}\n </FlexView>\n </FlexView>\n </Styled.CardContainer>\n </Clickable>\n );\n};\n\nexport default HomeworkCard;\n"],"names":["HomeworkCard","header","nodeData","subHeader","userType","userMilestoneId","onNodeUnassign","onNodeReset","onNodeView","onNodeReview","onNodeAttempt","nodeType","state","accuracy","dueDateTs","imageUrl","imageHue","cardHeader","permissions","userNodeId","bgImage","getNodeTypeBasedBgImage","NodeCardIcon","getNodeCardBasedIcon","containerRef","useRef","menuVisible","onMenuClick","useContextMenuClickHandler","titleTextRef","showTitleTooltip","setShowTitleTooltip","useState","canStart","canResume","canReview","canTeacherReview","canUnassign","canReset","isStudent","useLayoutEffect","onStudentView","useCallback","onTeacherView","handleOnMenuOptionClick","optionId","menuOptions","Eye2Icon","Styled.StyledMinus2Icon","RedoIcon","canShowMenuOptions","option","Clickable","jsxs","Styled.CardContainer","Styled.CardWrapper","jsx","Styled.IconWrapper","Text","Styled.BannerImageWrapper","Styled.BannerImage","NodeCardTags","FlexView","ArrowTooltip","Styled.HeaderText","Styled.SubHeaderText","Styled.CardKebabMenuWrapper","MoreVerticalIcon","Styled.CardMenuOptionsWrapper","CardMenuOptions"],"mappings":"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"}
@@ -40,21 +40,21 @@ const l = r(t)(({ theme: o }) => `
40
40
  &:hover {
41
41
  border: 1px solid ${({ theme: o }) => o.colors.BLACK};
42
42
  }
43
- `, b = r(t)(({ $bgImage: o }) => `
44
- background-image: url(${o});
45
- background-repeat: no-repeat;
46
- background-size: cover;
47
- background-position: center;
48
- overflow: hidden;
49
- `), w = r(t)`
43
+ `, b = r(t)(({ $bgImage: o }) => o ? `
44
+ background-image: url(${o});
45
+ background-repeat: no-repeat;
46
+ background-size: cover;
47
+ background-position: center;
48
+ overflow: hidden;
49
+ ` : "overflow: hidden;"), f = r(t)`
50
50
  display: flex;
51
51
  align-items: center;
52
52
  justify-content: center;
53
- `, f = r(t)`
53
+ `, w = r(t)`
54
54
  position: absolute;
55
55
  right: -18px;
56
56
  top: -4px;
57
- `, g = r.img(({ theme: o }) => {
57
+ `, h = r.img(({ theme: o }) => {
58
58
  const { gutter: e } = o.layout;
59
59
  return `
60
60
  border: 1px solid ${o.colors.BLACK_T_15};
@@ -62,7 +62,7 @@ const l = r(t)(({ theme: o }) => `
62
62
  height: ${e * 4}px;
63
63
  border-radius: 50%;
64
64
  `;
65
- }), h = r(i)`
65
+ }), g = r(i)`
66
66
  path {
67
67
  stroke: ${({ theme: o }) => o.colors.WHITE};
68
68
  }
@@ -72,13 +72,13 @@ const l = r(t)(({ theme: o }) => `
72
72
  -webkit-box-orient: vertical;
73
73
  overflow: hidden;
74
74
  text-overflow: ellipsis;
75
- `, k = r(t)`
75
+ `, v = r(t)`
76
76
  box-shadow: 0px 6px 12px 0px rgba(0, 0, 0, 0.4);
77
77
  width: 180px;
78
78
  position: relative;
79
79
  left: 0;
80
80
  top: 0;
81
- `, v = r(t)(({
81
+ `, k = r(t)(({
82
82
  theme: o,
83
83
  $disabled: e
84
84
  }) => `
@@ -91,24 +91,24 @@ const l = r(t)(({ theme: o }) => `
91
91
  path {
92
92
  fill: ${o.colors.WHITE_1};
93
93
  }
94
- `), $ = r(n)`
94
+ `), C = r(n)`
95
95
  white-space: nowrap;
96
96
  overflow: hidden;
97
97
  text-overflow: ellipsis;
98
98
  `;
99
99
  export {
100
- g as BannerImage,
101
- f as BannerImageWrapper,
100
+ h as BannerImage,
101
+ w as BannerImageWrapper,
102
102
  x as CardContainer,
103
103
  l as CardKebabMenuWrapper,
104
104
  u as CardMenuOptionsWrapper,
105
- v as CardOptionWrapper,
106
- k as CardOptions,
105
+ k as CardOptionWrapper,
106
+ v as CardOptions,
107
107
  b as CardWrapper,
108
108
  m as HeaderText,
109
- w as IconWrapper,
110
- $ as OptionText,
111
- h as StyledMinus2Icon,
109
+ f as IconWrapper,
110
+ C as OptionText,
111
+ g as StyledMinus2Icon,
112
112
  d as SubHeaderText
113
113
  };
114
114
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sources":["../../../src/features/homework/styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nimport Minus2Icon from '../../assets/line-icons/icons/minus2';\nimport FlexView from '../ui/layout/flex-view';\nimport Text from '../ui/text/text';\n\nexport interface ICardWrapperProps {\n $bgImage: string;\n}\n\nexport interface ICardOptionsMenuWrapperProps {\n $visible: boolean;\n}\n\nexport const CardKebabMenuWrapper = styled(FlexView)(({ theme }) => {\n return `\n cursor: pointer;\n width: fit-content;\n \n &:hover {\n border-radius: 50%;\n background: ${theme.colors.WHITE_5}; \n }\n `;\n});\n\nexport const SubHeaderText = styled(Text)`\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const CardMenuOptionsWrapper = styled(FlexView)<ICardOptionsMenuWrapperProps>(({\n theme,\n $visible,\n}) => {\n return `\n cursor: pointer;\n position: absolute;\n z-index: 6;\n top: calc(100% + 4px);\n left: 0;\n transform-origin: top;\n transform: scaleY(${$visible ? 1 : 0});\n opacity: ${$visible ? 1 : 0};\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n \n &:hover {\n border-radius: 50%;\n background: ${theme.colors.WHITE_5}; \n }\n `;\n});\n\nexport const CardContainer = styled(FlexView)`\n border: 1px solid ${({ theme }) => theme.colors.BLACK_T_15};\n\n &:hover {\n border: 1px solid ${({ theme }) => theme.colors.BLACK};\n }\n`;\n\nexport const CardWrapper = styled(FlexView)<ICardWrapperProps>(({ $bgImage }) => {\n return `\n background-image: url(${$bgImage});\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center;\n overflow: hidden;\n `;\n});\n\nexport const IconWrapper = styled(FlexView)`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const BannerImageWrapper = styled(FlexView)`\n position: absolute;\n right: -18px;\n top: -4px;\n`;\n\nexport const BannerImage = styled.img(({ theme }) => {\n const { gutter } = theme.layout;\n\n return `\n border: 1px solid ${theme.colors.BLACK_T_15};\n width: ${gutter * 4}px;\n height: ${gutter * 4}px;\n border-radius: 50%;\n `;\n});\n\nexport const StyledMinus2Icon = styled(Minus2Icon)`\n path {\n stroke: ${({ theme }) => theme.colors.WHITE};\n }\n`;\n\nexport const HeaderText = styled(Text)`\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport interface ICardOptionWrapperProps {\n $disabled?: boolean;\n}\n\nexport const CardOptions = styled(FlexView)`\n box-shadow: 0px 6px 12px 0px rgba(0, 0, 0, 0.4);\n width: 180px;\n position: relative;\n left: 0;\n top: 0;\n`;\n\nexport const CardOptionWrapper = styled(FlexView)<ICardOptionWrapperProps>(({\n theme,\n $disabled,\n}) => {\n return `\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n \n &:hover {\n background: ${$disabled ? 'transparent' : theme.colors.BLACK};\n };\n \n path {\n fill: ${theme.colors.WHITE_1};\n }\n `;\n});\n\nexport const OptionText = styled(Text)`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n"],"names":["CardKebabMenuWrapper","styled","FlexView","theme","SubHeaderText","Text","CardMenuOptionsWrapper","$visible","CardContainer","CardWrapper","$bgImage","IconWrapper","BannerImageWrapper","BannerImage","gutter","StyledMinus2Icon","Minus2Icon","HeaderText","CardOptions","CardOptionWrapper","$disabled","OptionText"],"mappings":";;;;AAcO,MAAMA,IAAuBC,EAAOC,CAAQ,EAAE,CAAC,EAAE,OAAAC,QAC/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAMWA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC,GAEYC,IAAgBH,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQ3BC,IAAyBL,EAAOC,CAAQ,EAAgC,CAAC;AAAA,EACpF,OAAAC;AAAA,EACA,UAAAI;AACF,MACS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAOeA,IAAW,IAAI,CAAC;AAAA,eACzBA,IAAW,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKXJ,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC,GAEYK,IAAgBP,EAAOC,CAAQ;AAAA,sBACtB,CAAC,EAAE,OAAAC,EAAA,MAAYA,EAAM,OAAO,UAAU;AAAA;AAAA;AAAA,wBAGpC,CAAC,EAAE,OAAAA,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA;AAAA,GAI5CM,IAAcR,EAAOC,CAAQ,EAAqB,CAAC,EAAE,UAAAQ,QACzD;AAAA,4BACmBA,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,GAMnC,GAEYC,IAAcV,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,GAM7BU,IAAqBX,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,GAMpCW,IAAcZ,EAAO,IAAI,CAAC,EAAE,OAAAE,QAAY;AAC7C,QAAA,EAAE,QAAAW,EAAO,IAAIX,EAAM;AAElB,SAAA;AAAA,wBACeA,EAAM,OAAO,UAAU;AAAA,aAClCW,IAAS,CAAC;AAAA,cACTA,IAAS,CAAC;AAAA;AAAA;AAGxB,CAAC,GAEYC,IAAmBd,EAAOe,CAAU;AAAA;AAAA,cAEnC,CAAC,EAAE,OAAAb,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA;AAAA,GAIlCc,IAAahB,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAYxBa,IAAcjB,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQ7BiB,IAAoBlB,EAAOC,CAAQ,EAA2B,CAAC;AAAA,EAC1E,OAAAC;AAAA,EACA,WAAAiB;AACF,MACS;AAAA,cACKA,IAAY,gBAAgB,SAAS;AAAA;AAAA;AAAA,oBAG/BA,IAAY,gBAAgBjB,EAAM,OAAO,KAAK;AAAA;AAAA;AAAA;AAAA,cAIpDA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGjC,GAEYkB,IAAapB,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"styles.js","sources":["../../../src/features/homework/styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nimport Minus2Icon from '../../assets/line-icons/icons/minus2';\nimport FlexView from '../ui/layout/flex-view';\nimport Text from '../ui/text/text';\n\nexport interface ICardWrapperProps {\n $bgImage: string;\n}\n\nexport interface ICardOptionsMenuWrapperProps {\n $visible: boolean;\n}\n\nexport const CardKebabMenuWrapper = styled(FlexView)(({ theme }) => {\n return `\n cursor: pointer;\n width: fit-content;\n \n &:hover {\n border-radius: 50%;\n background: ${theme.colors.WHITE_5}; \n }\n `;\n});\n\nexport const SubHeaderText = styled(Text)`\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const CardMenuOptionsWrapper = styled(FlexView)<ICardOptionsMenuWrapperProps>(({\n theme,\n $visible,\n}) => {\n return `\n cursor: pointer;\n position: absolute;\n z-index: 6;\n top: calc(100% + 4px);\n left: 0;\n transform-origin: top;\n transform: scaleY(${$visible ? 1 : 0});\n opacity: ${$visible ? 1 : 0};\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n \n &:hover {\n border-radius: 50%;\n background: ${theme.colors.WHITE_5}; \n }\n `;\n});\n\nexport const CardContainer = styled(FlexView)`\n border: 1px solid ${({ theme }) => theme.colors.BLACK_T_15};\n\n &:hover {\n border: 1px solid ${({ theme }) => theme.colors.BLACK};\n }\n`;\n\nexport const CardWrapper = styled(FlexView)<ICardWrapperProps>(({ $bgImage }) => {\n if ($bgImage) {\n return `\n background-image: url(${$bgImage});\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center;\n overflow: hidden;\n `;\n }\n\n return 'overflow: hidden;';\n});\n\nexport const IconWrapper = styled(FlexView)`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const BannerImageWrapper = styled(FlexView)`\n position: absolute;\n right: -18px;\n top: -4px;\n`;\n\nexport const BannerImage = styled.img(({ theme }) => {\n const { gutter } = theme.layout;\n\n return `\n border: 1px solid ${theme.colors.BLACK_T_15};\n width: ${gutter * 4}px;\n height: ${gutter * 4}px;\n border-radius: 50%;\n `;\n});\n\nexport const StyledMinus2Icon = styled(Minus2Icon)`\n path {\n stroke: ${({ theme }) => theme.colors.WHITE};\n }\n`;\n\nexport const HeaderText = styled(Text)`\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport interface ICardOptionWrapperProps {\n $disabled?: boolean;\n}\n\nexport const CardOptions = styled(FlexView)`\n box-shadow: 0px 6px 12px 0px rgba(0, 0, 0, 0.4);\n width: 180px;\n position: relative;\n left: 0;\n top: 0;\n`;\n\nexport const CardOptionWrapper = styled(FlexView)<ICardOptionWrapperProps>(({\n theme,\n $disabled,\n}) => {\n return `\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n \n &:hover {\n background: ${$disabled ? 'transparent' : theme.colors.BLACK};\n };\n \n path {\n fill: ${theme.colors.WHITE_1};\n }\n `;\n});\n\nexport const OptionText = styled(Text)`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n"],"names":["CardKebabMenuWrapper","styled","FlexView","theme","SubHeaderText","Text","CardMenuOptionsWrapper","$visible","CardContainer","CardWrapper","$bgImage","IconWrapper","BannerImageWrapper","BannerImage","gutter","StyledMinus2Icon","Minus2Icon","HeaderText","CardOptions","CardOptionWrapper","$disabled","OptionText"],"mappings":";;;;AAcO,MAAMA,IAAuBC,EAAOC,CAAQ,EAAE,CAAC,EAAE,OAAAC,QAC/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAMWA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC,GAEYC,IAAgBH,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQ3BC,IAAyBL,EAAOC,CAAQ,EAAgC,CAAC;AAAA,EACpF,OAAAC;AAAA,EACA,UAAAI;AACF,MACS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAOeA,IAAW,IAAI,CAAC;AAAA,eACzBA,IAAW,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKXJ,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC,GAEYK,IAAgBP,EAAOC,CAAQ;AAAA,sBACtB,CAAC,EAAE,OAAAC,EAAA,MAAYA,EAAM,OAAO,UAAU;AAAA;AAAA;AAAA,wBAGpC,CAAC,EAAE,OAAAA,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA;AAAA,GAI5CM,IAAcR,EAAOC,CAAQ,EAAqB,CAAC,EAAE,UAAAQ,QAC5DA,IACK;AAAA,8BACmBA,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,QAQ7B,mBACR,GAEYC,IAAcV,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,GAM7BU,IAAqBX,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,GAMpCW,IAAcZ,EAAO,IAAI,CAAC,EAAE,OAAAE,QAAY;AAC7C,QAAA,EAAE,QAAAW,EAAO,IAAIX,EAAM;AAElB,SAAA;AAAA,wBACeA,EAAM,OAAO,UAAU;AAAA,aAClCW,IAAS,CAAC;AAAA,cACTA,IAAS,CAAC;AAAA;AAAA;AAGxB,CAAC,GAEYC,IAAmBd,EAAOe,CAAU;AAAA;AAAA,cAEnC,CAAC,EAAE,OAAAb,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA;AAAA,GAIlCc,IAAahB,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAYxBa,IAAcjB,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQ7BiB,IAAoBlB,EAAOC,CAAQ,EAA2B,CAAC;AAAA,EAC1E,OAAAC;AAAA,EACA,WAAAiB;AACF,MACS;AAAA,cACKA,IAAY,gBAAgB,SAAS;AAAA;AAAA;AAAA,oBAG/BA,IAAY,gBAAgBjB,EAAM,OAAO,KAAK;AAAA;AAAA;AAAA;AAAA,cAIpDA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGjC,GAEYkB,IAAapB,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA;"}
@@ -1,119 +1,157 @@
1
- import { jsx as e, jsxs as d, Fragment as w } from "react/jsx-runtime";
2
- import { memo as M, useCallback as A, useEffect as x } from "react";
3
- import H from "styled-components";
4
- import { IMAGES as P } from "../../../../assets/images/images.js";
5
- import N from "../../../ui/arrow-tooltip/arrow-tooltip.js";
6
- import b from "../../../ui/buttons/button/button.js";
7
- import S from "../../../ui/layout/flex-view.js";
8
- import k from "../../../ui/loader/app-loader/app-loader.js";
1
+ import { jsxs as u, jsx as e, Fragment as x } from "react/jsx-runtime";
2
+ import { memo as L, useCallback as l, useEffect as H } from "react";
3
+ import { IMAGES as X } from "../../../../assets/images/images.js";
4
+ import D from "../../../ui/arrow-tooltip/arrow-tooltip.js";
5
+ import _ from "../../../ui/buttons/button/button.js";
6
+ import T from "../../../ui/layout/flex-view.js";
7
+ import j from "../../../ui/loader/app-loader/app-loader.js";
9
8
  import $ from "../../../ui/separator/separator.js";
10
- import y from "../../../ui/text/text.js";
11
- import { MILESTONE_WIDGET_MIN_HEIGHT as L } from "../../constants.js";
12
- import { useGetTestHelpData as O } from "../../milestone-list-container/api/get-tests-list.js";
13
- import { TESTS_CREATION_ANALYTICS_EVENTS as X } from "../tests-creation/tests-creation-analytics-events.js";
14
- import j from "./test-list-view.js";
15
- const s = H(S)`
16
- position: relative;
17
- min-height: ${L}px;
18
- `, Q = M((o) => {
9
+ import N from "../../../ui/text/text.js";
10
+ import { MILESTONE_WIDGET_MIN_HEIGHT as v } from "../../constants.js";
11
+ import { useGetTestHelpData as G } from "../../milestone-list-container/api/get-tests-list.js";
12
+ import { TESTS_CREATION_ANALYTICS_EVENTS as R } from "../tests-creation/tests-creation-analytics-events.js";
13
+ import W from "./test-list-view.js";
14
+ const re = L((c) => {
19
15
  const {
20
- isChaptersAvailable: p,
21
- isDraftMilestone: h,
22
- isMilestoneActive: n,
23
- userType: T,
24
- studentId: a,
25
- userMilestoneId: r,
26
- canUpdatePlan: f
27
- } = o, { onCreateMilestoneTest: i } = o, {
28
- get: g,
29
- data: t,
30
- isProcessingFailed: l,
31
- isProcessed: m,
32
- isStale: u,
33
- isProcessing: E
34
- } = O(), I = !f || !p || !n || n && h, _ = n && !p ? "Chapters need to be assigned" : h ? "Allowed after plan is published" : "Plan is completed", c = A(() => {
35
- g(r, void 0, {
36
- studentId: a
16
+ isChaptersAvailable: g,
17
+ isDraftMilestone: E,
18
+ isMilestoneActive: d,
19
+ userType: b,
20
+ studentId: p,
21
+ userMilestoneId: t,
22
+ canUpdatePlan: I
23
+ } = c, { onCreateMilestoneTest: s, onTestPreview: o, onTestStart: i, onTestReview: n } = c;
24
+ console.log(o, n, i, "ayush props MilestoneTestsList");
25
+ const {
26
+ get: A,
27
+ data: r,
28
+ isProcessingFailed: m,
29
+ isProcessed: f,
30
+ isStale: C,
31
+ isProcessing: w
32
+ } = G(), y = !I || !g || !d || d && E, M = d && !g ? "Chapters need to be assigned" : E ? "Allowed after plan is published" : "Plan is completed", h = l(() => {
33
+ A(t, void 0, {
34
+ studentId: p
37
35
  });
38
- }, [g, a, r]);
39
- x(() => {
40
- !E && (!m && !l || u) && c();
41
- }, [c, m, E, l, u]);
42
- const C = A(() => {
43
- if (typeof i == "function") {
44
- i == null || i(r, ((t == null ? void 0 : t.length) || 0) + 1);
36
+ }, [A, p, t]);
37
+ H(() => {
38
+ !w && (!f && !m || C) && h();
39
+ }, [h, f, w, m, C]);
40
+ const S = l(() => {
41
+ if (typeof s == "function") {
42
+ s == null || s(t, ((r == null ? void 0 : r.length) || 0) + 1);
45
43
  return;
46
44
  }
47
45
  throw new Error("No callback provided. If provided it must be a function");
48
- }, [i, r, t]);
49
- return l ? /* @__PURE__ */ e(s, { $alignItems: "center", $justifyContent: "center", $background: "WHITE", children: /* @__PURE__ */ d(S, { $flexGapX: 1.5, $alignItems: "center", $justifyContent: "center", children: [
50
- /* @__PURE__ */ e(y, { $renderAs: "h6", children: "Oops! Something went wrong. Please try again later." }),
46
+ }, [s, t, r]), O = l(
47
+ (a) => {
48
+ if (typeof o == "function") {
49
+ o == null || o(a, t);
50
+ return;
51
+ }
52
+ throw new Error("No callback provided. If provided it must be a function");
53
+ },
54
+ [o, t]
55
+ ), k = l(
56
+ (a) => {
57
+ if (typeof i == "function") {
58
+ i == null || i(a);
59
+ return;
60
+ }
61
+ throw new Error("No callback provided. If provided it must be a function");
62
+ },
63
+ [i]
64
+ ), P = l(
65
+ (a) => {
66
+ if (typeof n == "function") {
67
+ n == null || n(a, t);
68
+ return;
69
+ }
70
+ throw new Error("No callback provided. If provided it must be a function");
71
+ },
72
+ [n, t]
73
+ );
74
+ return m ? /* @__PURE__ */ u(T, { $flexGapX: 1.5, $alignItems: "center", $justifyContent: "center", children: [
75
+ /* @__PURE__ */ e(N, { $renderAs: "h6", children: "Oops! Something went wrong. Please try again later." }),
51
76
  /* @__PURE__ */ e(
52
- b,
77
+ _,
53
78
  {
54
79
  widthX: 14,
55
80
  size: "small",
56
81
  shape: "square",
57
82
  renderAs: "primary",
58
83
  label: "Try again",
59
- onClick: c
84
+ onClick: h
60
85
  }
61
86
  )
62
- ] }) }) : m ? t != null && t.length ? /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(
63
- j,
87
+ ] }) : f ? r != null && r.length ? /* @__PURE__ */ e(
88
+ W,
64
89
  {
65
- ...o,
66
- milestoneId: r,
67
- sheets: t,
68
- userType: T,
69
- studentId: a,
70
- onCreateNewTest: C,
71
- canUpdatedPlan: f,
72
- isMilestoneActive: n
90
+ ...c,
91
+ onNodeAttempt: k,
92
+ onNodeView: O,
93
+ onNodeReview: P,
94
+ milestoneId: t,
95
+ sheets: r,
96
+ userType: b,
97
+ studentId: p,
98
+ onCreateNewTest: S,
99
+ canUpdatedPlan: I,
100
+ isMilestoneActive: d
73
101
  }
74
- ) }) : /* @__PURE__ */ d(
75
- s,
102
+ ) : /* @__PURE__ */ u(
103
+ T,
76
104
  {
77
105
  $gapX: 6.75,
78
106
  $alignItems: "center",
79
107
  $justifyContent: "center",
80
108
  $background: "WHITE",
109
+ $height: v,
81
110
  children: [
82
- /* @__PURE__ */ e("img", { src: P.EMPTY_MIX_TESTS, alt: "empty_mix_tests" }),
111
+ /* @__PURE__ */ e("img", { src: X.EMPTY_MIX_TESTS, alt: "empty_mix_tests" }),
83
112
  /* @__PURE__ */ e($, { heightX: 2 }),
84
- T === "TEACHER" ? /* @__PURE__ */ d(w, { children: [
113
+ b === "TEACHER" ? /* @__PURE__ */ u(x, { children: [
85
114
  /* @__PURE__ */ e(
86
- N,
115
+ D,
87
116
  {
88
117
  renderAs: "primary",
89
118
  position: "bottom",
90
- hidden: !I,
91
- tooltipItem: _,
119
+ hidden: !y,
120
+ tooltipItem: M,
92
121
  children: /* @__PURE__ */ e(
93
- b,
122
+ _,
94
123
  {
95
124
  widthX: 10,
96
125
  renderAs: "primary",
97
126
  shape: "square",
98
127
  size: "small",
99
128
  label: "Create a Test",
100
- onClick: C,
101
- disabled: I,
102
- analyticsLabel: X.CUSTOM_TEST_CREATION_STARTED,
129
+ onClick: S,
130
+ disabled: y,
131
+ analyticsLabel: R.CUSTOM_TEST_CREATION_STARTED,
103
132
  analyticsProps: {
104
- milestone_id: r
133
+ milestone_id: t
105
134
  }
106
135
  }
107
136
  )
108
137
  }
109
138
  ),
110
139
  /* @__PURE__ */ e($, { heightX: 2 })
111
- ] }) : /* @__PURE__ */ e(y, { $renderAs: "ab2-bold", $color: "BLACK_T_87", children: "Wait for the teacher to create a test" })
140
+ ] }) : /* @__PURE__ */ e(N, { $renderAs: "ab2-bold", $color: "BLACK_T_87", children: "Wait for the teacher to create a test" })
112
141
  ]
113
142
  }
114
- ) : /* @__PURE__ */ e(s, { $alignItems: "center", $justifyContent: "center", $background: "WHITE", children: /* @__PURE__ */ e(k, { height: "100%" }) });
143
+ ) : /* @__PURE__ */ e(
144
+ T,
145
+ {
146
+ $height: v,
147
+ $alignItems: "center",
148
+ $justifyContent: "center",
149
+ $background: "WHITE",
150
+ children: /* @__PURE__ */ e(j, { height: "100%" })
151
+ }
152
+ );
115
153
  });
116
154
  export {
117
- Q as default
155
+ re as default
118
156
  };
119
157
  //# sourceMappingURL=test-list-container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-list-container.js","sources":["../../../../../src/features/milestone/milestone-tests/test-list-v2/test-list-container.tsx"],"sourcesContent":["import type { ITestsListProps } from './types';\n\nimport { memo, useCallback, useEffect, type FC } from 'react';\nimport styled from 'styled-components';\n\nimport { IMAGES } from '../../../../assets/images/images';\nimport ArrowTooltip from '../../../ui/arrow-tooltip/arrow-tooltip';\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { MILESTONE_WIDGET_MIN_HEIGHT } from '../../constants';\nimport { useGetTestHelpData } from '../../milestone-list-container/api/get-tests-list';\nimport { TESTS_CREATION_ANALYTICS_EVENTS } from '../tests-creation/tests-creation-analytics-events';\nimport TestSheetsList from './test-list-view';\n\nconst TestHelpWrapper = styled(FlexView)`\n position: relative;\n min-height: ${MILESTONE_WIDGET_MIN_HEIGHT}px;\n`;\n\nconst MilestoneTestsList: FC<ITestsListProps> = memo(props => {\n const {\n isChaptersAvailable,\n isDraftMilestone,\n isMilestoneActive,\n userType,\n studentId,\n userMilestoneId,\n canUpdatePlan,\n } = props;\n const { onCreateMilestoneTest } = props;\n\n const {\n get: getTestHelpData,\n data,\n isProcessingFailed,\n isProcessed,\n isStale,\n isProcessing,\n } = useGetTestHelpData();\n\n const isTestSheetCreationDisabled =\n !canUpdatePlan ||\n !isChaptersAvailable ||\n !isMilestoneActive ||\n (isMilestoneActive && isDraftMilestone);\n const testCreationCtaTooltipText =\n isMilestoneActive && !isChaptersAvailable\n ? 'Chapters need to be assigned'\n : isDraftMilestone\n ? 'Allowed after plan is published'\n : 'Plan is completed';\n\n const handleOnTryAgain = useCallback(() => {\n getTestHelpData(userMilestoneId, undefined, {\n studentId,\n });\n }, [getTestHelpData, studentId, userMilestoneId]);\n\n useEffect(() => {\n if (!isProcessing && ((!isProcessed && !isProcessingFailed) || isStale)) {\n handleOnTryAgain();\n }\n }, [handleOnTryAgain, isProcessed, isProcessing, isProcessingFailed, isStale]);\n\n const handleOnCreateMilestoneTest = useCallback(() => {\n if (typeof onCreateMilestoneTest === 'function') {\n onCreateMilestoneTest?.(userMilestoneId, (data?.length || 0) + 1);\n\n return;\n }\n\n throw new Error('No callback provided. If provided it must be a function');\n }, [onCreateMilestoneTest, userMilestoneId, data]);\n\n if (isProcessingFailed) {\n return (\n <TestHelpWrapper $alignItems=\"center\" $justifyContent=\"center\" $background=\"WHITE\">\n <FlexView $flexGapX={1.5} $alignItems=\"center\" $justifyContent=\"center\">\n <Text $renderAs=\"h6\">Oops! Something went wrong. Please try again later.</Text>\n <Button\n widthX={14}\n size=\"small\"\n shape=\"square\"\n renderAs=\"primary\"\n label=\"Try again\"\n onClick={handleOnTryAgain}\n />\n </FlexView>\n </TestHelpWrapper>\n );\n }\n\n if (isProcessed) {\n if (data?.length) {\n return (\n <TestHelpWrapper>\n <TestSheetsList\n {...props}\n milestoneId={userMilestoneId}\n sheets={data}\n userType={userType}\n studentId={studentId}\n onCreateNewTest={handleOnCreateMilestoneTest}\n canUpdatedPlan={canUpdatePlan}\n isMilestoneActive={isMilestoneActive}\n />\n </TestHelpWrapper>\n );\n }\n\n return (\n <TestHelpWrapper\n $gapX={6.75}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $background=\"WHITE\"\n >\n <img src={IMAGES.EMPTY_MIX_TESTS} alt=\"empty_mix_tests\" />\n <Separator heightX={2} />\n {userType === 'TEACHER' ? (\n <>\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n hidden={!isTestSheetCreationDisabled}\n tooltipItem={testCreationCtaTooltipText}\n >\n <Button\n widthX={10}\n renderAs=\"primary\"\n shape=\"square\"\n size=\"small\"\n label=\"Create a Test\"\n onClick={handleOnCreateMilestoneTest}\n disabled={isTestSheetCreationDisabled}\n analyticsLabel={TESTS_CREATION_ANALYTICS_EVENTS.CUSTOM_TEST_CREATION_STARTED}\n analyticsProps={{\n milestone_id: userMilestoneId,\n }}\n />\n </ArrowTooltip>\n <Separator heightX={2} />\n </>\n ) : (\n <Text $renderAs=\"ab2-bold\" $color=\"BLACK_T_87\">\n Wait for the teacher to create a test\n </Text>\n )}\n </TestHelpWrapper>\n );\n }\n\n return (\n <TestHelpWrapper $alignItems=\"center\" $justifyContent=\"center\" $background=\"WHITE\">\n <AppLoader height=\"100%\" />\n </TestHelpWrapper>\n );\n});\n\nexport default MilestoneTestsList;\n"],"names":["TestHelpWrapper","styled","FlexView","MILESTONE_WIDGET_MIN_HEIGHT","MilestoneTestsList","memo","props","isChaptersAvailable","isDraftMilestone","isMilestoneActive","userType","studentId","userMilestoneId","canUpdatePlan","onCreateMilestoneTest","getTestHelpData","data","isProcessingFailed","isProcessed","isStale","isProcessing","useGetTestHelpData","isTestSheetCreationDisabled","testCreationCtaTooltipText","handleOnTryAgain","useCallback","useEffect","handleOnCreateMilestoneTest","jsx","jsxs","Text","Button","TestSheetsList","IMAGES","Separator","Fragment","ArrowTooltip","TESTS_CREATION_ANALYTICS_EVENTS","AppLoader"],"mappings":"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"}
1
+ {"version":3,"file":"test-list-container.js","sources":["../../../../../src/features/milestone/milestone-tests/test-list-v2/test-list-container.tsx"],"sourcesContent":["import type { INodeDataProps } from '../../../chapters-v2/comps/node-card/node-card-types';\nimport type { ITestsListProps } from './types';\n\nimport { memo, useCallback, useEffect, type FC } from 'react';\n\nimport { IMAGES } from '../../../../assets/images/images';\nimport ArrowTooltip from '../../../ui/arrow-tooltip/arrow-tooltip';\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { MILESTONE_WIDGET_MIN_HEIGHT } from '../../constants';\nimport { useGetTestHelpData } from '../../milestone-list-container/api/get-tests-list';\nimport { TESTS_CREATION_ANALYTICS_EVENTS } from '../tests-creation/tests-creation-analytics-events';\nimport TestSheetsList from './test-list-view';\n\nconst MilestoneTestsList: FC<ITestsListProps> = memo(props => {\n const {\n isChaptersAvailable,\n isDraftMilestone,\n isMilestoneActive,\n userType,\n studentId,\n userMilestoneId,\n canUpdatePlan,\n } = props;\n const { onCreateMilestoneTest, onTestPreview, onTestStart, onTestReview } = props;\n\n console.log(onTestPreview, onTestReview, onTestStart, 'ayush props MilestoneTestsList');\n\n const {\n get: getTestHelpData,\n data,\n isProcessingFailed,\n isProcessed,\n isStale,\n isProcessing,\n } = useGetTestHelpData();\n\n const isTestSheetCreationDisabled =\n !canUpdatePlan ||\n !isChaptersAvailable ||\n !isMilestoneActive ||\n (isMilestoneActive && isDraftMilestone);\n const testCreationCtaTooltipText =\n isMilestoneActive && !isChaptersAvailable\n ? 'Chapters need to be assigned'\n : isDraftMilestone\n ? 'Allowed after plan is published'\n : 'Plan is completed';\n\n const handleOnTryAgain = useCallback(() => {\n getTestHelpData(userMilestoneId, undefined, {\n studentId,\n });\n }, [getTestHelpData, studentId, userMilestoneId]);\n\n useEffect(() => {\n if (!isProcessing && ((!isProcessed && !isProcessingFailed) || isStale)) {\n handleOnTryAgain();\n }\n }, [handleOnTryAgain, isProcessed, isProcessing, isProcessingFailed, isStale]);\n\n const handleOnCreateMilestoneTest = useCallback(() => {\n if (typeof onCreateMilestoneTest === 'function') {\n onCreateMilestoneTest?.(userMilestoneId, (data?.length || 0) + 1);\n\n return;\n }\n\n throw new Error('No callback provided. If provided it must be a function');\n }, [onCreateMilestoneTest, userMilestoneId, data]);\n\n const handleOnTestPreview = useCallback(\n (sheetData: INodeDataProps) => {\n if (typeof onTestPreview === 'function') {\n onTestPreview?.(sheetData, userMilestoneId);\n\n return;\n }\n\n throw new Error('No callback provided. If provided it must be a function');\n },\n [onTestPreview, userMilestoneId],\n );\n\n const handleOnTestStart = useCallback(\n (sheetData: INodeDataProps) => {\n if (typeof onTestStart === 'function') {\n onTestStart?.(sheetData);\n\n return;\n }\n\n throw new Error('No callback provided. If provided it must be a function');\n },\n [onTestStart],\n );\n\n const handleOnTestReview = useCallback(\n (sheetData: INodeDataProps) => {\n if (typeof onTestReview === 'function') {\n onTestReview?.(sheetData, userMilestoneId);\n\n return;\n }\n\n throw new Error('No callback provided. If provided it must be a function');\n },\n [onTestReview, userMilestoneId],\n );\n\n if (isProcessingFailed) {\n return (\n <FlexView $flexGapX={1.5} $alignItems=\"center\" $justifyContent=\"center\">\n <Text $renderAs=\"h6\">Oops! Something went wrong. Please try again later.</Text>\n <Button\n widthX={14}\n size=\"small\"\n shape=\"square\"\n renderAs=\"primary\"\n label=\"Try again\"\n onClick={handleOnTryAgain}\n />\n </FlexView>\n );\n }\n\n if (isProcessed) {\n if (data?.length) {\n return (\n <TestSheetsList\n {...props}\n onNodeAttempt={handleOnTestStart}\n onNodeView={handleOnTestPreview}\n onNodeReview={handleOnTestReview}\n milestoneId={userMilestoneId}\n sheets={data}\n userType={userType}\n studentId={studentId}\n onCreateNewTest={handleOnCreateMilestoneTest}\n canUpdatedPlan={canUpdatePlan}\n isMilestoneActive={isMilestoneActive}\n />\n );\n }\n\n return (\n <FlexView\n $gapX={6.75}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $background=\"WHITE\"\n $height={MILESTONE_WIDGET_MIN_HEIGHT}\n >\n <img src={IMAGES.EMPTY_MIX_TESTS} alt=\"empty_mix_tests\" />\n <Separator heightX={2} />\n {userType === 'TEACHER' ? (\n <>\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n hidden={!isTestSheetCreationDisabled}\n tooltipItem={testCreationCtaTooltipText}\n >\n <Button\n widthX={10}\n renderAs=\"primary\"\n shape=\"square\"\n size=\"small\"\n label=\"Create a Test\"\n onClick={handleOnCreateMilestoneTest}\n disabled={isTestSheetCreationDisabled}\n analyticsLabel={TESTS_CREATION_ANALYTICS_EVENTS.CUSTOM_TEST_CREATION_STARTED}\n analyticsProps={{\n milestone_id: userMilestoneId,\n }}\n />\n </ArrowTooltip>\n <Separator heightX={2} />\n </>\n ) : (\n <Text $renderAs=\"ab2-bold\" $color=\"BLACK_T_87\">\n Wait for the teacher to create a test\n </Text>\n )}\n </FlexView>\n );\n }\n\n return (\n <FlexView\n $height={MILESTONE_WIDGET_MIN_HEIGHT}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $background=\"WHITE\"\n >\n <AppLoader height=\"100%\" />\n </FlexView>\n );\n});\n\nexport default MilestoneTestsList;\n"],"names":["MilestoneTestsList","memo","props","isChaptersAvailable","isDraftMilestone","isMilestoneActive","userType","studentId","userMilestoneId","canUpdatePlan","onCreateMilestoneTest","onTestPreview","onTestStart","onTestReview","getTestHelpData","data","isProcessingFailed","isProcessed","isStale","isProcessing","useGetTestHelpData","isTestSheetCreationDisabled","testCreationCtaTooltipText","handleOnTryAgain","useCallback","useEffect","handleOnCreateMilestoneTest","handleOnTestPreview","sheetData","handleOnTestStart","handleOnTestReview","FlexView","jsx","Text","Button","TestSheetsList","jsxs","MILESTONE_WIDGET_MIN_HEIGHT","IMAGES","Separator","Fragment","ArrowTooltip","TESTS_CREATION_ANALYTICS_EVENTS","AppLoader"],"mappings":"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"}
@@ -1,51 +1,63 @@
1
- import { jsxs as _, Fragment as l, jsx as o } from "react/jsx-runtime";
2
- import { memo as I } from "react";
3
- import E from "../../../../assets/line-icons/icons/plus2.js";
4
- import S from "../../../ui/buttons/icon-button/icon-button.js";
5
- import { TESTS_CREATION_ANALYTICS_EVENTS as f } from "../tests-creation/tests-creation-analytics-events.js";
6
- import A from "./test-list-item.js";
7
- import { TestSheetItemWrapper as C, IconContainer as h } from "./test-list-view-styled.js";
8
- const $ = I(
1
+ import { jsxs as E, Fragment as S, jsx as o } from "react/jsx-runtime";
2
+ import { h as C } from "../../../../node_modules/humanize-plus/dist/humanize.js";
3
+ import { memo as A } from "react";
4
+ import $ from "../../../../assets/line-icons/icons/plus2.js";
5
+ import N from "../../../homework/homework-card.js";
6
+ import b from "../../../ui/buttons/icon-button/icon-button.js";
7
+ import { TESTS_CREATION_ANALYTICS_EVENTS as k } from "../tests-creation/tests-creation-analytics-events.js";
8
+ import { TestSheetItemWrapper as w, IconContainer as x } from "./test-list-view-styled.js";
9
+ const y = (t) => {
10
+ const e = /* @__PURE__ */ new Set();
11
+ return t == null || t.forEach((r) => {
12
+ e.add(r.chapter_name);
13
+ }), Array.from(e);
14
+ }, F = A(
9
15
  ({
10
- milestoneId: r,
11
- studentId: n,
12
- sheets: i,
13
- userType: t,
16
+ milestoneId: t,
17
+ studentId: e,
18
+ sheets: r,
19
+ userType: s,
14
20
  onCreateNewTest: m,
15
- isMilestoneActive: s,
21
+ isMilestoneActive: c,
16
22
  canUpdatedPlan: d,
17
- ...T
18
- }) => /* @__PURE__ */ _(l, { children: [
19
- /* @__PURE__ */ o(C, { children: i.map((e, a) => {
20
- const { worksheet_id: c, node_id: p } = e;
23
+ ...p
24
+ }) => /* @__PURE__ */ E(S, { children: [
25
+ /* @__PURE__ */ o(w, { children: r.map((i, l) => {
26
+ const {
27
+ items: h,
28
+ node_id: T,
29
+ sheet_time: a,
30
+ total_questions: n,
31
+ worksheet_id: _
32
+ } = i, u = a && Math.ceil(a / 60) || 0, f = y(h).join(", "), I = `${typeof n == "number" ? `${n} ${C.pluralize(n, "Question")}, ` : ""}${u} Mins`;
21
33
  return /* @__PURE__ */ o(
22
- A,
34
+ N,
23
35
  {
24
- userType: t,
25
- sheet: e,
26
- milestoneId: r,
27
- studentId: n,
28
- ...T
36
+ userType: s,
37
+ header: f,
38
+ subHeader: I,
39
+ nodeData: i,
40
+ ...p
29
41
  },
30
- `${c}_${p}_${a}`
42
+ `${_}_${T}_${l}`
31
43
  );
32
44
  }) }),
33
- t === "TEACHER" && d && /* @__PURE__ */ o(h, { children: /* @__PURE__ */ o(
34
- S,
45
+ s === "TEACHER" && d && /* @__PURE__ */ o(x, { children: /* @__PURE__ */ o(
46
+ b,
35
47
  {
36
- Icon: E,
48
+ Icon: $,
37
49
  renderAs: "secondary",
38
- analyticsLabel: f.CUSTOM_TEST_CREATION_STARTED,
50
+ analyticsLabel: k.CUSTOM_TEST_CREATION_STARTED,
39
51
  onClick: m,
40
- disabled: !s,
52
+ disabled: !c,
41
53
  analyticsProps: {
42
- milestone_id: r
54
+ milestone_id: t
43
55
  }
44
56
  }
45
57
  ) })
46
58
  ] })
47
59
  );
48
60
  export {
49
- $ as default
61
+ F as default
50
62
  };
51
63
  //# sourceMappingURL=test-list-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-list-view.js","sources":["../../../../../src/features/milestone/milestone-tests/test-list-v2/test-list-view.tsx"],"sourcesContent":["import type { ITestSheetsList } from './types';\nimport type { FC } from 'react';\n\nimport { memo } from 'react';\n\nimport Plus2Icon from '../../../../assets/line-icons/icons/plus2';\nimport IconButton from '../../../ui/buttons/icon-button/icon-button';\nimport { TESTS_CREATION_ANALYTICS_EVENTS } from '../tests-creation/tests-creation-analytics-events';\nimport TestListItem from './test-list-item';\nimport * as Styled from './test-list-view-styled';\n\nconst TestSheetsList: FC<ITestSheetsList> = memo(\n ({\n milestoneId,\n studentId,\n sheets,\n userType,\n onCreateNewTest,\n isMilestoneActive,\n canUpdatedPlan,\n ...sheetCallbacks\n }) => {\n return (\n <>\n <Styled.TestSheetItemWrapper>\n {sheets.map((sheet, idx) => {\n const { worksheet_id: worksheetId, node_id: nodeId } = sheet;\n\n return (\n <TestListItem\n key={`${worksheetId}_${nodeId}_${idx}`}\n userType={userType}\n sheet={sheet}\n milestoneId={milestoneId}\n studentId={studentId}\n {...sheetCallbacks}\n />\n );\n })}\n </Styled.TestSheetItemWrapper>\n\n {userType === 'TEACHER' && canUpdatedPlan && (\n <Styled.IconContainer>\n <IconButton\n Icon={Plus2Icon}\n renderAs=\"secondary\"\n analyticsLabel={TESTS_CREATION_ANALYTICS_EVENTS.CUSTOM_TEST_CREATION_STARTED}\n onClick={onCreateNewTest}\n disabled={!isMilestoneActive}\n analyticsProps={{\n milestone_id: milestoneId,\n }}\n />\n </Styled.IconContainer>\n )}\n </>\n );\n },\n);\n\nexport default TestSheetsList;\n"],"names":["TestSheetsList","memo","milestoneId","studentId","sheets","userType","onCreateNewTest","isMilestoneActive","canUpdatedPlan","sheetCallbacks","jsxs","Fragment","jsx","Styled.TestSheetItemWrapper","sheet","idx","worksheetId","nodeId","TestListItem","Styled.IconContainer","IconButton","Plus2Icon","TESTS_CREATION_ANALYTICS_EVENTS"],"mappings":";;;;;;;AAWA,MAAMA,IAAsCC;AAAA,EAC1C,CAAC;AAAA,IACC,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,MAIC,gBAAAC,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EACE,YAAO,IAAI,CAACC,GAAOC,MAAQ;AAC1B,YAAM,EAAE,cAAcC,GAAa,SAASC,MAAWH;AAGrD,aAAA,gBAAAF;AAAA,QAACM;AAAA,QAAA;AAAA,UAEC,UAAAb;AAAA,UACA,OAAAS;AAAA,UACA,aAAAZ;AAAA,UACA,WAAAC;AAAA,UACC,GAAGM;AAAA,QAAA;AAAA,QALC,GAAGO,CAAW,IAAIC,CAAM,IAAIF,CAAG;AAAA,MAAA;AAAA,IAQzC,CAAA,GACH;AAAA,IAECV,MAAa,aAAaG,KACxB,gBAAAI,EAAAO,GAAA,EACC,UAAA,gBAAAP;AAAA,MAACQ;AAAA,MAAA;AAAA,QACC,MAAMC;AAAA,QACN,UAAS;AAAA,QACT,gBAAgBC,EAAgC;AAAA,QAChD,SAAShB;AAAA,QACT,UAAU,CAACC;AAAA,QACX,gBAAgB;AAAA,UACd,cAAcL;AAAA,QAChB;AAAA,MAAA;AAAA,IAAA,GAEJ;AAAA,EAEJ,EAAA,CAAA;AAGN;"}
1
+ {"version":3,"file":"test-list-view.js","sources":["../../../../../src/features/milestone/milestone-tests/test-list-v2/test-list-view.tsx"],"sourcesContent":["import type { TNodeDataTestItemsDataProps } from '../../../chapters-v2/comps/node-card/node-card-types';\nimport type { ITestSheetsList } from './types';\nimport type { FC } from 'react';\n\nimport { pluralize } from 'humanize-plus';\nimport { memo } from 'react';\n\nimport Plus2Icon from '../../../../assets/line-icons/icons/plus2';\nimport HomeworkCard from '../../../homework/homework-card';\nimport IconButton from '../../../ui/buttons/icon-button/icon-button';\nimport { TESTS_CREATION_ANALYTICS_EVENTS } from '../tests-creation/tests-creation-analytics-events';\nimport * as Styled from './test-list-view-styled';\n\nconst getTopicsFromItems = (items?: TNodeDataTestItemsDataProps[]) => {\n const topics = new Set<string>();\n\n items?.forEach(item => {\n topics.add(item.chapter_name);\n });\n\n return Array.from(topics);\n};\n\nconst TestSheetsList: FC<ITestSheetsList> = memo(\n ({\n milestoneId,\n studentId,\n sheets,\n userType,\n onCreateNewTest,\n isMilestoneActive,\n canUpdatedPlan,\n ...sheetCallbacks\n }) => {\n return (\n <>\n <Styled.TestSheetItemWrapper>\n {sheets.map((sheet, idx) => {\n const {\n items,\n node_id: nodeId,\n sheet_time: sheetTime,\n total_questions: totalQuestions,\n worksheet_id: worksheetId,\n } = sheet;\n const totalSheetTime = (sheetTime && Math.ceil(sheetTime / 60)) || 0;\n const topics = getTopicsFromItems(items);\n const testChapterName = topics.join(', ');\n const subHeader = `${\n typeof totalQuestions === 'number'\n ? `${totalQuestions} ${pluralize(totalQuestions, 'Question')}, `\n : ''\n }${totalSheetTime} Mins`;\n\n return (\n <HomeworkCard\n key={`${worksheetId}_${nodeId}_${idx}`}\n userType={userType}\n header={testChapterName}\n subHeader={subHeader}\n nodeData={sheet}\n {...sheetCallbacks}\n />\n );\n })}\n </Styled.TestSheetItemWrapper>\n\n {userType === 'TEACHER' && canUpdatedPlan && (\n <Styled.IconContainer>\n <IconButton\n Icon={Plus2Icon}\n renderAs=\"secondary\"\n analyticsLabel={TESTS_CREATION_ANALYTICS_EVENTS.CUSTOM_TEST_CREATION_STARTED}\n onClick={onCreateNewTest}\n disabled={!isMilestoneActive}\n analyticsProps={{\n milestone_id: milestoneId,\n }}\n />\n </Styled.IconContainer>\n )}\n </>\n );\n },\n);\n\nexport default TestSheetsList;\n"],"names":["getTopicsFromItems","items","topics","item","TestSheetsList","memo","milestoneId","studentId","sheets","userType","onCreateNewTest","isMilestoneActive","canUpdatedPlan","sheetCallbacks","jsxs","Fragment","jsx","Styled.TestSheetItemWrapper","sheet","idx","nodeId","sheetTime","totalQuestions","worksheetId","totalSheetTime","testChapterName","subHeader","pluralize","HomeworkCard","Styled.IconContainer","IconButton","Plus2Icon","TESTS_CREATION_ANALYTICS_EVENTS"],"mappings":";;;;;;;;AAaA,MAAMA,IAAqB,CAACC,MAA0C;AAC9D,QAAAC,wBAAa;AAEnB,SAAAD,KAAA,QAAAA,EAAO,QAAQ,CAAQE,MAAA;AACd,IAAAD,EAAA,IAAIC,EAAK,YAAY;AAAA,EAAA,IAGvB,MAAM,KAAKD,CAAM;AAC1B,GAEME,IAAsCC;AAAA,EAC1C,CAAC;AAAA,IACC,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,MAIC,gBAAAC,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EACE,YAAO,IAAI,CAACC,GAAOC,MAAQ;AACpB,YAAA;AAAA,QACJ,OAAAlB;AAAA,QACA,SAASmB;AAAA,QACT,YAAYC;AAAA,QACZ,iBAAiBC;AAAA,QACjB,cAAcC;AAAA,MACZ,IAAAL,GACEM,IAAkBH,KAAa,KAAK,KAAKA,IAAY,EAAE,KAAM,GAE7DI,IADSzB,EAAmBC,CAAK,EACR,KAAK,IAAI,GAClCyB,IAAY,GAChB,OAAOJ,KAAmB,WACtB,GAAGA,CAAc,IAAIK,EAAA,UAAUL,GAAgB,UAAU,CAAC,OAC1D,EACN,GAAGE,CAAc;AAGf,aAAA,gBAAAR;AAAA,QAACY;AAAA,QAAA;AAAA,UAEC,UAAAnB;AAAA,UACA,QAAQgB;AAAA,UACR,WAAAC;AAAA,UACA,UAAUR;AAAA,UACT,GAAGL;AAAA,QAAA;AAAA,QALC,GAAGU,CAAW,IAAIH,CAAM,IAAID,CAAG;AAAA,MAAA;AAAA,IAQzC,CAAA,GACH;AAAA,IAECV,MAAa,aAAaG,KACxB,gBAAAI,EAAAa,GAAA,EACC,UAAA,gBAAAb;AAAA,MAACc;AAAA,MAAA;AAAA,QACC,MAAMC;AAAA,QACN,UAAS;AAAA,QACT,gBAAgBC,EAAgC;AAAA,QAChD,SAAStB;AAAA,QACT,UAAU,CAACC;AAAA,QACX,gBAAgB;AAAA,UACd,cAAcL;AAAA,QAChB;AAAA,MAAA;AAAA,IAAA,GAEJ;AAAA,EAEJ,EAAA,CAAA;AAGN;"}
@@ -1,30 +1,52 @@
1
- import { jsx as e } from "react/jsx-runtime";
2
- import { memo as p, useRef as c } from "react";
3
- import u from "styled-components";
4
- import a from "../../ui/layout/flex-view.js";
5
- import f from "./resource-item.js";
6
- const l = u.div`
1
+ import { jsx as n } from "react/jsx-runtime";
2
+ import { h as p } from "../../../node_modules/humanize-plus/dist/humanize.js";
3
+ import { memo as u, useRef as l } from "react";
4
+ import f from "styled-components";
5
+ import E from "../../homework/homework-card.js";
6
+ import _ from "../../ui/layout/flex-view.js";
7
+ const h = f.div`
7
8
  display: grid;
8
9
  grid-template-columns: repeat(3, 200px);
9
10
  grid-gap: 32px;
10
11
  justify-content: center;
11
12
  padding: 32px 0;
12
- `, h = p(({ sheets: t, userType: o, ...i }) => {
13
- const s = c(null);
14
- return /* @__PURE__ */ e(a, { ref: s, children: /* @__PURE__ */ e(l, { children: t.map((r, n) => {
15
- const { worksheet_id: d, node_id: m } = r;
16
- return /* @__PURE__ */ e(
17
- f,
13
+ `, Z = (r) => {
14
+ const {
15
+ sheet_time: t,
16
+ node_type: o,
17
+ total_questions: e
18
+ } = r || {};
19
+ switch (o) {
20
+ case "ASSESSMENT":
21
+ case "MASTERY":
22
+ case "DYNAMIC":
23
+ return `${typeof e == "number" ? `${e} ${p.pluralize(e, "Question")}, ${t ? `${t / 60} min` : ""}` : ""}`;
24
+ case "PUZZLE_EASY":
25
+ case "PUZZLE_HARD":
26
+ case "PUZZLE_MEDIUM":
27
+ case "PUZZLE":
28
+ return "";
29
+ default:
30
+ return "";
31
+ }
32
+ }, R = u(({ sheets: r, userType: t, ...o }) => {
33
+ const e = l(null);
34
+ return /* @__PURE__ */ n(_, { ref: e, children: /* @__PURE__ */ n(h, { children: r.map((s, i) => {
35
+ const { title: a, node_id: d, worksheet_id: m } = s, c = Z(s);
36
+ return /* @__PURE__ */ n(
37
+ E,
18
38
  {
19
- sheet: r,
20
- userType: o,
21
- ...i
39
+ header: a,
40
+ subHeader: c,
41
+ userType: t,
42
+ nodeData: s,
43
+ ...o
22
44
  },
23
- `${d}_${m}_${n}`
45
+ `${m}_${d}_${i}`
24
46
  );
25
47
  }) }) });
26
48
  });
27
49
  export {
28
- h as default
50
+ R as default
29
51
  };
30
52
  //# sourceMappingURL=resource-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-list.js","sources":["../../../../src/features/sheet-v2/resource-list/resource-list.tsx"],"sourcesContent":["import type { IResourcesListProps } from './types';\nimport type { FC } from 'react';\n\nimport { useRef, memo } from 'react';\nimport styled from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport ResourceItem from './resource-item';\n\nconst ResourceItemListWrapper = styled.div`\n display: grid;\n grid-template-columns: repeat(3, 200px);\n grid-gap: 32px;\n justify-content: center;\n padding: 32px 0;\n`;\n\nconst ResourcesList: FC<IResourcesListProps> = memo(({ sheets, userType, ...sheetCallBacks }) => {\n const resourceListContainerRef = useRef<HTMLDivElement>(null);\n\n return (\n <FlexView ref={resourceListContainerRef}>\n <ResourceItemListWrapper>\n {sheets.map((sheet, idx) => {\n const { worksheet_id: worksheetId, node_id: nodeId } = sheet;\n\n return (\n <ResourceItem\n key={`${worksheetId}_${nodeId}_${idx}`}\n sheet={sheet}\n userType={userType}\n {...sheetCallBacks}\n />\n );\n })}\n </ResourceItemListWrapper>\n </FlexView>\n );\n});\n\nexport default ResourcesList;\n"],"names":["ResourceItemListWrapper","styled","ResourcesList","memo","sheets","userType","sheetCallBacks","resourceListContainerRef","useRef","jsx","FlexView","sheet","idx","worksheetId","nodeId","ResourceItem"],"mappings":";;;;;AASA,MAAMA,IAA0BC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQjCC,IAAyCC,EAAK,CAAC,EAAE,QAAAC,GAAQ,UAAAC,GAAU,GAAGC,QAAqB;AACzF,QAAAC,IAA2BC,EAAuB,IAAI;AAG1D,SAAA,gBAAAC,EAACC,GAAS,EAAA,KAAKH,GACb,UAAA,gBAAAE,EAACT,KACE,UAAOI,EAAA,IAAI,CAACO,GAAOC,MAAQ;AAC1B,UAAM,EAAE,cAAcC,GAAa,SAASC,MAAWH;AAGrD,WAAA,gBAAAF;AAAA,MAACM;AAAA,MAAA;AAAA,QAEC,OAAAJ;AAAA,QACA,UAAAN;AAAA,QACC,GAAGC;AAAA,MAAA;AAAA,MAHC,GAAGO,CAAW,IAAIC,CAAM,IAAIF,CAAG;AAAA,IAAA;AAAA,EAItC,CAEH,GACH,EACF,CAAA;AAEJ,CAAC;"}
1
+ {"version":3,"file":"resource-list.js","sources":["../../../../src/features/sheet-v2/resource-list/resource-list.tsx"],"sourcesContent":["import type { INodeDataProps } from '../../chapters-v2/comps/node-card/node-card-types';\nimport type { IResourcesListProps } from './types';\nimport type { FC } from 'react';\n\nimport { pluralize } from 'humanize-plus';\nimport { useRef, memo } from 'react';\nimport styled from 'styled-components';\n\nimport HomeworkCard from '../../homework/homework-card';\nimport FlexView from '../../ui/layout/flex-view';\n\nconst ResourceItemListWrapper = styled.div`\n display: grid;\n grid-template-columns: repeat(3, 200px);\n grid-gap: 32px;\n justify-content: center;\n padding: 32px 0;\n`;\n\nconst getSubHeader = (sheet: INodeDataProps) => {\n const {\n sheet_time: sheetTime,\n node_type: nodeType,\n total_questions: totalQuestions,\n } = sheet || {};\n\n switch (nodeType) {\n case 'ASSESSMENT':\n case 'MASTERY':\n case 'DYNAMIC':\n return `${\n typeof totalQuestions === 'number'\n ? `${totalQuestions} ${pluralize(totalQuestions, 'Question')}, ${\n sheetTime ? `${sheetTime / 60} min` : ''\n }`\n : ''\n }`;\n case 'PUZZLE_EASY':\n case 'PUZZLE_HARD':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE':\n return '';\n default:\n return '';\n }\n};\n\nconst ResourcesList: FC<IResourcesListProps> = memo(({ sheets, userType, ...sheetCallBacks }) => {\n const resourceListContainerRef = useRef<HTMLDivElement>(null);\n\n return (\n <FlexView ref={resourceListContainerRef}>\n <ResourceItemListWrapper>\n {sheets.map((sheet, idx) => {\n const { title, node_id: nodeId, worksheet_id: worksheetId } = sheet;\n const subHeader = getSubHeader(sheet);\n\n return (\n <HomeworkCard\n key={`${worksheetId}_${nodeId}_${idx}`}\n header={title}\n subHeader={subHeader}\n userType={userType}\n nodeData={sheet}\n {...sheetCallBacks}\n />\n );\n })}\n </ResourceItemListWrapper>\n </FlexView>\n );\n});\n\nexport default ResourcesList;\n"],"names":["ResourceItemListWrapper","styled","getSubHeader","sheet","sheetTime","nodeType","totalQuestions","pluralize","ResourcesList","memo","sheets","userType","sheetCallBacks","resourceListContainerRef","useRef","jsx","FlexView","idx","title","nodeId","worksheetId","subHeader","HomeworkCard"],"mappings":";;;;;;AAWA,MAAMA,IAA0BC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQjCC,IAAe,CAACC,MAA0B;AACxC,QAAA;AAAA,IACJ,YAAYC;AAAA,IACZ,WAAWC;AAAA,IACX,iBAAiBC;AAAA,EAAA,IACfH,KAAS,CAAA;AAEb,UAAQE,GAAU;AAAA,IAChB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,GACL,OAAOC,KAAmB,WACtB,GAAGA,CAAc,IAAIC,YAAUD,GAAgB,UAAU,CAAC,KACxDF,IAAY,GAAGA,IAAY,EAAE,SAAS,EACxC,KACA,EACN;AAAA,IACF,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,IACT;AACS,aAAA;AAAA,EACX;AACF,GAEMI,IAAyCC,EAAK,CAAC,EAAE,QAAAC,GAAQ,UAAAC,GAAU,GAAGC,QAAqB;AACzF,QAAAC,IAA2BC,EAAuB,IAAI;AAG1D,SAAA,gBAAAC,EAACC,GAAS,EAAA,KAAKH,GACb,UAAA,gBAAAE,EAACf,KACE,UAAOU,EAAA,IAAI,CAACP,GAAOc,MAAQ;AAC1B,UAAM,EAAE,OAAAC,GAAO,SAASC,GAAQ,cAAcC,EAAgB,IAAAjB,GACxDkB,IAAYnB,EAAaC,CAAK;AAGlC,WAAA,gBAAAY;AAAA,MAACO;AAAA,MAAA;AAAA,QAEC,QAAQJ;AAAA,QACR,WAAAG;AAAA,QACA,UAAAV;AAAA,QACA,UAAUR;AAAA,QACT,GAAGS;AAAA,MAAA;AAAA,MALC,GAAGQ,CAAW,IAAID,CAAM,IAAIF,CAAG;AAAA,IAAA;AAAA,EAMtC,CAEH,GACH,EACF,CAAA;AAEJ,CAAC;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/leap",
3
- "version": "2.8.60-as1",
3
+ "version": "2.8.60-as3",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
@@ -1,41 +0,0 @@
1
- import { jsx as h } from "react/jsx-runtime";
2
- import { h as d } from "../../../../node_modules/humanize-plus/dist/humanize.js";
3
- import { memo as f, useMemo as s } from "react";
4
- import l from "../../../homework/homework-card.js";
5
- const T = (e) => {
6
- const t = /* @__PURE__ */ new Set();
7
- return e == null || e.forEach((r) => {
8
- t.add(r.chapter_name);
9
- }), Array.from(t);
10
- }, _ = f((e) => {
11
- const { sheet: t, userType: r, milestoneId: $, ...c } = e, {
12
- items: a,
13
- // state,
14
- sheet_time: n,
15
- // node_type: nodeType,
16
- // image_url: imageUrl,
17
- // permissions,
18
- // accuracy,
19
- // due_date_ts: dueDateTs,
20
- total_questions: o
21
- // image_hue: imageHue,
22
- // card_header: cardHeader = '',
23
- } = t, m = s(() => n && Math.ceil(n / 60) || 0, [n]), i = s(() => T(a), [a]), p = s(() => i.join(", "), [i]), u = s(
24
- () => `${typeof o == "number" ? `${o} ${d.pluralize(o, "Question")}, ` : ""}${m} Mins`,
25
- [o, m]
26
- );
27
- return /* @__PURE__ */ h(
28
- l,
29
- {
30
- header: p,
31
- subHeader: u,
32
- userType: r,
33
- nodeData: t,
34
- ...c
35
- }
36
- );
37
- });
38
- export {
39
- _ as default
40
- };
41
- //# sourceMappingURL=test-list-item.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-list-item.js","sources":["../../../../../src/features/milestone/milestone-tests/test-list-v2/test-list-item.tsx"],"sourcesContent":["import type { TNodeDataTestItemsDataProps } from '../../../chapters-v2/comps/node-card/node-card-types';\nimport type { ITestItemProps } from './types';\nimport type { FC } from 'react';\n\nimport { pluralize } from 'humanize-plus';\nimport { memo, useMemo } from 'react';\n\nimport HomeworkCard from '../../../homework/homework-card';\n\nconst getTopicsFromItems = (items?: TNodeDataTestItemsDataProps[]) => {\n const topics = new Set<string>();\n\n items?.forEach(item => {\n topics.add(item.chapter_name);\n });\n\n return Array.from(topics);\n};\n\nconst TestListItem: FC<ITestItemProps> = memo(props => {\n const { sheet, userType, milestoneId, ...resProps } = props;\n const {\n items,\n // state,\n sheet_time: sheetTime,\n // node_type: nodeType,\n // image_url: imageUrl,\n // permissions,\n // accuracy,\n // due_date_ts: dueDateTs,\n total_questions: totalQuestions,\n // image_hue: imageHue,\n // card_header: cardHeader = '',\n } = sheet;\n // const {\n // can_start: canStart,\n // can_resume: canResume,\n // can_review: canReview,\n // can_teacher_review: canTeacherReview,\n // } = permissions || {};\n // const isStudent = useMemo(() => userType === 'STUDENT', [userType]);\n // const canReviewSheet = useMemo(\n // () => (isStudent ? canReview : canTeacherReview),\n // [canReview, canTeacherReview, isStudent],\n // );\n const totalSheetTime = useMemo(() => (sheetTime && Math.ceil(sheetTime / 60)) || 0, [sheetTime]);\n const topics = useMemo(() => getTopicsFromItems(items), [items]);\n const testChapterName = useMemo(() => topics.join(', '), [topics]);\n const subHeader = useMemo(\n () =>\n `${\n typeof totalQuestions === 'number'\n ? `${totalQuestions} ${pluralize(totalQuestions, 'Question')}, `\n : ''\n }${totalSheetTime} Mins`,\n [totalQuestions, totalSheetTime],\n );\n\n // const handleOnClick = useCallback(() => {\n // if (isStudent) {\n // if (canStart || canResume) {\n // if (typeof onTestStart === 'function') {\n // onTestStart(sheet);\n\n // return;\n // }\n\n // throw new Error('No callback is available');\n // }\n // }\n\n // if (canReviewSheet) {\n // if (typeof onTestReview !== 'function') {\n // throw new Error('onTestReview must be a function');\n // }\n\n // onTestReview(sheet, milestoneId);\n\n // return;\n // }\n\n // if (typeof onTestPreview !== 'function') {\n // throw new Error('onTestPreview must be a function');\n // }\n\n // onTestPreview(milestoneId, sheet);\n\n // return;\n // }, [\n // canResume,\n // canReviewSheet,\n // canStart,\n // isStudent,\n // milestoneId,\n // onTestPreview,\n // onTestReview,\n // onTestStart,\n // sheet,\n // ]);\n\n return (\n <HomeworkCard\n header={testChapterName}\n subHeader={subHeader}\n userType={userType}\n nodeData={sheet}\n {...resProps}\n />\n );\n});\n\nexport default TestListItem;\n"],"names":["getTopicsFromItems","items","topics","item","TestListItem","memo","props","sheet","userType","milestoneId","resProps","sheetTime","totalQuestions","totalSheetTime","useMemo","testChapterName","subHeader","pluralize","jsx","HomeworkCard"],"mappings":";;;;AASA,MAAMA,IAAqB,CAACC,MAA0C;AAC9D,QAAAC,wBAAa;AAEnB,SAAAD,KAAA,QAAAA,EAAO,QAAQ,CAAQE,MAAA;AACd,IAAAD,EAAA,IAAIC,EAAK,YAAY;AAAA,EAAA,IAGvB,MAAM,KAAKD,CAAM;AAC1B,GAEME,IAAmCC,EAAK,CAASC,MAAA;AACrD,QAAM,EAAE,OAAAC,GAAO,UAAAC,GAAU,aAAAC,GAAa,GAAGC,EAAa,IAAAJ,GAChD;AAAA,IACJ,OAAAL;AAAA;AAAA,IAEA,YAAYU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMZ,iBAAiBC;AAAA;AAAA;AAAA,EAGf,IAAAL,GAYEM,IAAiBC,EAAQ,MAAOH,KAAa,KAAK,KAAKA,IAAY,EAAE,KAAM,GAAG,CAACA,CAAS,CAAC,GACzFT,IAASY,EAAQ,MAAMd,EAAmBC,CAAK,GAAG,CAACA,CAAK,CAAC,GACzDc,IAAkBD,EAAQ,MAAMZ,EAAO,KAAK,IAAI,GAAG,CAACA,CAAM,CAAC,GAC3Dc,IAAYF;AAAA,IAChB,MACE,GACE,OAAOF,KAAmB,WACtB,GAAGA,CAAc,IAAIK,EAAAA,UAAUL,GAAgB,UAAU,CAAC,OAC1D,EACN,GAAGC,CAAc;AAAA,IACnB,CAACD,GAAgBC,CAAc;AAAA,EAAA;AA8C/B,SAAA,gBAAAK;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,QAAQJ;AAAA,MACR,WAAAC;AAAA,MACA,UAAAR;AAAA,MACA,UAAUD;AAAA,MACT,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGV,CAAC;"}
@@ -1,51 +0,0 @@
1
- import { jsx as a } from "react/jsx-runtime";
2
- import { h as m } from "../../../node_modules/humanize-plus/dist/humanize.js";
3
- import { memo as n, useMemo as u } from "react";
4
- import c from "../../homework/homework-card.js";
5
- const i = (e) => {
6
- const {
7
- sheet_time: o,
8
- node_type: r,
9
- total_questions: t
10
- } = e || {};
11
- switch (r) {
12
- case "ASSESSMENT":
13
- case "MASTERY":
14
- case "DYNAMIC":
15
- return `${typeof t == "number" ? `${t} ${m.pluralize(t, "Question")}` : ""}${o ? `, ${o / 60} min` : ""}`;
16
- case "PUZZLE_EASY":
17
- case "PUZZLE_HARD":
18
- case "PUZZLE_MEDIUM":
19
- case "PUZZLE":
20
- return "";
21
- default:
22
- return "";
23
- }
24
- }, f = n(({ sheet: e, userType: o, ...r }) => {
25
- const {
26
- // accuracy,
27
- // permissions,
28
- title: t
29
- // state: sheetState,
30
- // user_node_id: userNodeId,
31
- // node_type: nodeType,
32
- // image_url: imageUrl,
33
- // image_hue: imageHue,
34
- // due_date_ts: dueDateTs,
35
- // card_header: cardHeader = '',
36
- } = e, s = u(() => i(e), [e]);
37
- return /* @__PURE__ */ a(
38
- c,
39
- {
40
- header: t,
41
- subHeader: s,
42
- userType: o,
43
- nodeData: e,
44
- ...r
45
- }
46
- );
47
- });
48
- export {
49
- f as default
50
- };
51
- //# sourceMappingURL=resource-item.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resource-item.js","sources":["../../../../src/features/sheet-v2/resource-list/resource-item.tsx"],"sourcesContent":["import type { INodeDataProps } from '../../chapters-v2/comps/node-card/node-card-types';\nimport type { IResourceItemProps } from './types';\nimport type { FC } from 'react';\n\nimport { pluralize } from 'humanize-plus';\nimport { memo, useMemo } from 'react';\n\nimport HomeworkCard from '../../homework/homework-card';\n// import Clickable from '../../ui/buttons/clickable/clickable';\n\nconst getSubHeader = (sheet: INodeDataProps) => {\n const {\n sheet_time: sheetTime,\n node_type: nodeType,\n total_questions: totalQuestions,\n } = sheet || {};\n\n switch (nodeType) {\n case 'ASSESSMENT':\n case 'MASTERY':\n case 'DYNAMIC':\n return `${\n typeof totalQuestions === 'number'\n ? `${totalQuestions} ${pluralize(totalQuestions, 'Question')}`\n : ''\n }${sheetTime ? `, ${sheetTime / 60} min` : ''}`;\n case 'PUZZLE_EASY':\n case 'PUZZLE_HARD':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE':\n return '';\n default:\n return '';\n }\n};\n\nconst ResourceItem: FC<IResourceItemProps> = memo(({ sheet, userType, ...resProps }) => {\n const {\n // accuracy,\n // permissions,\n title,\n // state: sheetState,\n // user_node_id: userNodeId,\n // node_type: nodeType,\n // image_url: imageUrl,\n // image_hue: imageHue,\n // due_date_ts: dueDateTs,\n // card_header: cardHeader = '',\n } = sheet;\n // const {\n // can_start: canStart,\n // can_resume: canResume,\n // can_review: canReview,\n // can_teacher_review: canTeacherReview,\n // } = permissions;\n // const isStudent = userType === 'STUDENT';\n // const canReviewSheet = isStudent ? canReview : canTeacherReview;\n const subHeader = useMemo(() => getSubHeader(sheet), [sheet]);\n\n // const handleOnClick = useCallback(() => {\n // if (isStudent && (canStart || canResume)) {\n // if (typeof onNodeAttempt === 'function') {\n // onNodeAttempt(sheet);\n\n // return;\n // }\n\n // throw new Error('No callback is available');\n // }\n\n // if (canReviewSheet) {\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\n // onNodeReview(sheet);\n\n // return;\n // }\n\n // if (typeof onNodeView !== 'function') {\n // throw new Error('onPreview must be a function');\n // }\n\n // onNodeView(sheet);\n // }, [\n // canResume,\n // canReviewSheet,\n // canStart,\n // isStudent,\n // onNodeAttempt,\n // onNodeReview,\n // onNodeView,\n // sheet,\n // userNodeId,\n // ]);\n\n return (\n <HomeworkCard\n header={title}\n subHeader={subHeader}\n userType={userType}\n nodeData={sheet}\n {...resProps}\n />\n );\n});\n\nexport default ResourceItem;\n"],"names":["getSubHeader","sheet","sheetTime","nodeType","totalQuestions","pluralize","ResourceItem","memo","userType","resProps","title","subHeader","useMemo","jsx","HomeworkCard"],"mappings":";;;;AAUA,MAAMA,IAAe,CAACC,MAA0B;AACxC,QAAA;AAAA,IACJ,YAAYC;AAAA,IACZ,WAAWC;AAAA,IACX,iBAAiBC;AAAA,EAAA,IACfH,KAAS,CAAA;AAEb,UAAQE,GAAU;AAAA,IAChB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,GACL,OAAOC,KAAmB,WACtB,GAAGA,CAAc,IAAIC,YAAUD,GAAgB,UAAU,CAAC,KAC1D,EACN,GAAGF,IAAY,KAAKA,IAAY,EAAE,SAAS,EAAE;AAAA,IAC/C,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,IACT;AACS,aAAA;AAAA,EACX;AACF,GAEMI,IAAuCC,EAAK,CAAC,EAAE,OAAAN,GAAO,UAAAO,GAAU,GAAGC,QAAe;AAChF,QAAA;AAAA;AAAA;AAAA,IAGJ,OAAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQE,IAAAT,GASEU,IAAYC,EAAQ,MAAMZ,EAAaC,CAAK,GAAG,CAACA,CAAK,CAAC;AA6C1D,SAAA,gBAAAY;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,QAAQJ;AAAA,MACR,WAAAC;AAAA,MACA,UAAAH;AAAA,MACA,UAAUP;AAAA,MACT,GAAGQ;AAAA,IAAA;AAAA,EAAA;AAGV,CAAC;"}