@cuemath/leap 2.8.60-ag2 → 2.8.60-as1

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 (41) hide show
  1. package/dist/constants/api.js +2 -3
  2. package/dist/constants/api.js.map +1 -1
  3. package/dist/features/analytics-events/whitelist-events.js +7 -9
  4. package/dist/features/analytics-events/whitelist-events.js.map +1 -1
  5. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js +7 -7
  6. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js.map +1 -1
  7. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js +2 -2
  8. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js.map +1 -1
  9. package/dist/features/chapters-v2/utils/node-card-utils.js +1 -0
  10. package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
  11. package/dist/features/homework/card-menu-options.js +13 -11
  12. package/dist/features/homework/card-menu-options.js.map +1 -1
  13. package/dist/features/homework/homework-card.js +132 -139
  14. package/dist/features/homework/homework-card.js.map +1 -1
  15. package/dist/features/homework/styles.js +20 -20
  16. package/dist/features/homework/styles.js.map +1 -1
  17. package/dist/features/milestone/create/api/goal-submit.js +1 -1
  18. package/dist/features/milestone/create/api/goal-submit.js.map +1 -1
  19. package/dist/features/milestone/edit/comps/edit-milestone-modal/api/patch-goal-plan.js +1 -1
  20. package/dist/features/milestone/edit/comps/edit-milestone-modal/api/patch-goal-plan.js.map +1 -1
  21. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js +81 -127
  22. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js.map +1 -1
  23. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-item.js +41 -0
  24. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-item.js.map +1 -0
  25. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view-styled.js +10 -16
  26. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view-styled.js.map +1 -1
  27. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js +46 -77
  28. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js.map +1 -1
  29. package/dist/features/recent-chapters/recent-chapters.js +31 -28
  30. package/dist/features/recent-chapters/recent-chapters.js.map +1 -1
  31. package/dist/features/sheet-v2/resource-list/resource-item.js +51 -0
  32. package/dist/features/sheet-v2/resource-list/resource-item.js.map +1 -0
  33. package/dist/features/sheet-v2/resource-list/resource-list.js +21 -40
  34. package/dist/features/sheet-v2/resource-list/resource-list.js.map +1 -1
  35. package/dist/features/sheets/resources-list/resource-item/resource-item.js.map +1 -1
  36. package/dist/features/sheets/resources-list/resource-item/styled.js +0 -1
  37. package/dist/features/sheets/resources-list/resource-item/styled.js.map +1 -1
  38. package/dist/features/sheets/sheets-analytics-events.js +2 -6
  39. package/dist/features/sheets/sheets-analytics-events.js.map +1 -1
  40. package/dist/index.d.ts +8 -5
  41. package/package.json +1 -1
@@ -1,165 +1,119 @@
1
- import { jsxs as u, jsx as e, Fragment as x } from "react/jsx-runtime";
2
- import { memo as H, useCallback as l, useEffect as L } from "react";
3
- import { IMAGES as X } from "../../../../assets/images/images.js";
4
- import D from "../../../ui/arrow-tooltip/arrow-tooltip.js";
5
- import S 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";
8
- import _ from "../../../ui/separator/separator.js";
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 = H((c) => {
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";
9
+ 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) => {
15
19
  const {
16
- isChaptersAvailable: g,
17
- isDraftMilestone: E,
18
- isMilestoneActive: d,
19
- userType: b,
20
- studentId: m,
21
- userMilestoneId: t,
22
- canUpdatePlan: I
23
- } = c, { onCreateMilestoneTest: i, onTestPreview: o, onTestStart: n, onTestReview: s } = c, {
24
- get: A,
25
- data: r,
26
- isProcessingFailed: p,
27
- isProcessed: f,
28
- isStale: C,
29
- isProcessing: w
30
- } = G(), y = !I || !g || !d || d && E, k = d && !g ? "Chapters need to be assigned" : E ? "Allowed after plan is published" : "Plan is completed", h = l(() => {
31
- A(t, void 0, {
32
- studentId: m
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
33
37
  });
34
- }, [A, m, t]);
35
- L(() => {
36
- !w && (!f && !p || C) && h();
37
- }, [h, f, w, p, C]);
38
- const $ = l(() => {
38
+ }, [g, a, r]);
39
+ x(() => {
40
+ !E && (!m && !l || u) && c();
41
+ }, [c, m, E, l, u]);
42
+ const C = A(() => {
39
43
  if (typeof i == "function") {
40
- i == null || i(t, ((r == null ? void 0 : r.length) || 0) + 1);
44
+ i == null || i(r, ((t == null ? void 0 : t.length) || 0) + 1);
41
45
  return;
42
46
  }
43
47
  throw new Error("No callback provided. If provided it must be a function");
44
- }, [i, t, r]), M = l(
45
- (a) => {
46
- if (typeof o == "function") {
47
- o == null || o(a, t);
48
- return;
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." }),
51
+ /* @__PURE__ */ e(
52
+ b,
53
+ {
54
+ widthX: 14,
55
+ size: "small",
56
+ shape: "square",
57
+ renderAs: "primary",
58
+ label: "Try again",
59
+ onClick: c
49
60
  }
50
- throw new Error("No callback provided. If provided it must be a function");
51
- },
52
- [o, t]
53
- ), O = l(
54
- (a) => {
55
- if (typeof n == "function") {
56
- n == null || n(a);
57
- return;
58
- }
59
- throw new Error("No callback provided. If provided it must be a function");
60
- },
61
- [n]
62
- ), P = l(
63
- (a) => {
64
- if (typeof s == "function") {
65
- s == null || s(a, t);
66
- return;
67
- }
68
- throw new Error("No callback provided. If provided it must be a function");
69
- },
70
- [s, t]
71
- );
72
- return p ? /* @__PURE__ */ u(
73
- T,
74
- {
75
- $flexGapX: 1.5,
76
- $alignItems: "center",
77
- $justifyContent: "center",
78
- $height: "100%",
79
- $background: "WHITE",
80
- children: [
81
- /* @__PURE__ */ e(N, { $renderAs: "h6", children: "Oops! Something went wrong. Please try again later." }),
82
- /* @__PURE__ */ e(
83
- S,
84
- {
85
- widthX: 14,
86
- size: "small",
87
- shape: "square",
88
- renderAs: "primary",
89
- label: "Try again",
90
- onClick: h
91
- }
92
- )
93
- ]
94
- }
95
- ) : f ? r != null && r.length ? /* @__PURE__ */ e(
96
- W,
61
+ )
62
+ ] }) }) : m ? t != null && t.length ? /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(
63
+ j,
97
64
  {
98
- ...c,
99
- onNodeAttempt: O,
100
- onNodeView: M,
101
- onNodeReview: P,
102
- milestoneId: t,
103
- sheets: r,
104
- userType: b,
105
- studentId: m,
106
- onCreateNewTest: $,
107
- canUpdatedPlan: I,
108
- isMilestoneActive: d
65
+ ...o,
66
+ milestoneId: r,
67
+ sheets: t,
68
+ userType: T,
69
+ studentId: a,
70
+ onCreateNewTest: C,
71
+ canUpdatedPlan: f,
72
+ isMilestoneActive: n
109
73
  }
110
- ) : /* @__PURE__ */ u(
111
- T,
74
+ ) }) : /* @__PURE__ */ d(
75
+ s,
112
76
  {
113
77
  $gapX: 6.75,
114
78
  $alignItems: "center",
115
79
  $justifyContent: "center",
116
80
  $background: "WHITE",
117
- $height: v,
118
81
  children: [
119
- /* @__PURE__ */ e("img", { src: X.EMPTY_MIX_TESTS, alt: "empty_mix_tests" }),
120
- /* @__PURE__ */ e(_, { heightX: 2 }),
121
- b === "TEACHER" ? /* @__PURE__ */ u(x, { children: [
82
+ /* @__PURE__ */ e("img", { src: P.EMPTY_MIX_TESTS, alt: "empty_mix_tests" }),
83
+ /* @__PURE__ */ e($, { heightX: 2 }),
84
+ T === "TEACHER" ? /* @__PURE__ */ d(w, { children: [
122
85
  /* @__PURE__ */ e(
123
- D,
86
+ N,
124
87
  {
125
88
  renderAs: "primary",
126
89
  position: "bottom",
127
- hidden: !y,
128
- tooltipItem: k,
90
+ hidden: !I,
91
+ tooltipItem: _,
129
92
  children: /* @__PURE__ */ e(
130
- S,
93
+ b,
131
94
  {
132
95
  widthX: 10,
133
96
  renderAs: "primary",
134
97
  shape: "square",
135
98
  size: "small",
136
99
  label: "Create a Test",
137
- onClick: $,
138
- disabled: y,
139
- analyticsLabel: R.CUSTOM_TEST_CREATION_STARTED,
100
+ onClick: C,
101
+ disabled: I,
102
+ analyticsLabel: X.CUSTOM_TEST_CREATION_STARTED,
140
103
  analyticsProps: {
141
- milestone_id: t
104
+ milestone_id: r
142
105
  }
143
106
  }
144
107
  )
145
108
  }
146
109
  ),
147
- /* @__PURE__ */ e(_, { heightX: 2 })
148
- ] }) : /* @__PURE__ */ e(N, { $renderAs: "ab2-bold", $color: "BLACK_T_87", children: "Wait for the teacher to create a test" })
110
+ /* @__PURE__ */ e($, { heightX: 2 })
111
+ ] }) : /* @__PURE__ */ e(y, { $renderAs: "ab2-bold", $color: "BLACK_T_87", children: "Wait for the teacher to create a test" })
149
112
  ]
150
113
  }
151
- ) : /* @__PURE__ */ e(
152
- T,
153
- {
154
- $height: v,
155
- $alignItems: "center",
156
- $justifyContent: "center",
157
- $background: "WHITE",
158
- children: /* @__PURE__ */ e(j, { height: "100%" })
159
- }
160
- );
114
+ ) : /* @__PURE__ */ e(s, { $alignItems: "center", $justifyContent: "center", $background: "WHITE", children: /* @__PURE__ */ e(k, { height: "100%" }) });
161
115
  });
162
116
  export {
163
- re as default
117
+ Q as default
164
118
  };
165
119
  //# 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 { 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 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\n $flexGapX={1.5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $height=\"100%\"\n $background=\"WHITE\"\n >\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","jsxs","FlexView","jsx","Text","Button","TestSheetsList","MILESTONE_WIDGET_MIN_HEIGHT","IMAGES","Separator","Fragment","ArrowTooltip","TESTS_CREATION_ANALYTICS_EVENTS","AppLoader"],"mappings":";;;;;;;;;;;;;AAiBM,MAAAA,KAA0CC,EAAK,CAASC,MAAA;AACtD,QAAA;AAAA,IACJ,qBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,eAAAC;AAAA,EACE,IAAAP,GACE,EAAE,uBAAAQ,GAAuB,eAAAC,GAAe,aAAAC,GAAa,cAAAC,MAAiBX,GAEtE;AAAA,IACJ,KAAKY;AAAA,IACL,MAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,SAAAC;AAAA,IACA,cAAAC;AAAA,MACEC,EAAmB,GAEjBC,IACJ,CAACZ,KACD,CAACN,KACD,CAACE,KACAA,KAAqBD,GAClBkB,IACJjB,KAAqB,CAACF,IAClB,iCACAC,IACE,oCACA,qBAEFmB,IAAmBC,EAAY,MAAM;AACzC,IAAAV,EAAgBN,GAAiB,QAAW;AAAA,MAC1C,WAAAD;AAAA,IAAA,CACD;AAAA,EACA,GAAA,CAACO,GAAiBP,GAAWC,CAAe,CAAC;AAEhD,EAAAiB,EAAU,MAAM;AACd,IAAI,CAACN,MAAkB,CAACF,KAAe,CAACD,KAAuBE,MAC5CK;EACnB,GACC,CAACA,GAAkBN,GAAaE,GAAcH,GAAoBE,CAAO,CAAC;AAEvE,QAAAQ,IAA8BF,EAAY,MAAM;AAChD,QAAA,OAAOd,KAA0B,YAAY;AAC/C,MAAAA,KAAA,QAAAA,EAAwBF,KAAkBO,KAAA,gBAAAA,EAAM,WAAU,KAAK;AAE/D;AAAA,IACF;AAEM,UAAA,IAAI,MAAM,yDAAyD;AAAA,EACxE,GAAA,CAACL,GAAuBF,GAAiBO,CAAI,CAAC,GAE3CY,IAAsBH;AAAA,IAC1B,CAACI,MAA8B;AACzB,UAAA,OAAOjB,KAAkB,YAAY;AACvC,QAAAA,KAAA,QAAAA,EAAgBiB,GAAWpB;AAE3B;AAAA,MACF;AAEM,YAAA,IAAI,MAAM,yDAAyD;AAAA,IAC3E;AAAA,IACA,CAACG,GAAeH,CAAe;AAAA,EAAA,GAG3BqB,IAAoBL;AAAA,IACxB,CAACI,MAA8B;AACzB,UAAA,OAAOhB,KAAgB,YAAY;AACrC,QAAAA,KAAA,QAAAA,EAAcgB;AAEd;AAAA,MACF;AAEM,YAAA,IAAI,MAAM,yDAAyD;AAAA,IAC3E;AAAA,IACA,CAAChB,CAAW;AAAA,EAAA,GAGRkB,IAAqBN;AAAA,IACzB,CAACI,MAA8B;AACzB,UAAA,OAAOf,KAAiB,YAAY;AACtC,QAAAA,KAAA,QAAAA,EAAee,GAAWpB;AAE1B;AAAA,MACF;AAEM,YAAA,IAAI,MAAM,yDAAyD;AAAA,IAC3E;AAAA,IACA,CAACK,GAAcL,CAAe;AAAA,EAAA;AAGhC,SAAIQ,IAEA,gBAAAe;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAChB,SAAQ;AAAA,MACR,aAAY;AAAA,MAEZ,UAAA;AAAA,QAAC,gBAAAC,EAAAC,GAAA,EAAK,WAAU,MAAK,UAAmD,uDAAA;AAAA,QACxE,gBAAAD;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,QAAQ;AAAA,YACR,MAAK;AAAA,YACL,OAAM;AAAA,YACN,UAAS;AAAA,YACT,OAAM;AAAA,YACN,SAASZ;AAAA,UAAA;AAAA,QACX;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,IAKFN,IACEF,KAAA,QAAAA,EAAM,SAEN,gBAAAkB;AAAA,IAACG;AAAA,IAAA;AAAA,MACE,GAAGlC;AAAA,MACJ,eAAe2B;AAAA,MACf,YAAYF;AAAA,MACZ,cAAcG;AAAA,MACd,aAAatB;AAAA,MACb,QAAQO;AAAA,MACR,UAAAT;AAAA,MACA,WAAAC;AAAA,MACA,iBAAiBmB;AAAA,MACjB,gBAAgBjB;AAAA,MAChB,mBAAAJ;AAAA,IAAA;AAAA,EAAA,IAMJ,gBAAA0B;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,MACP,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAChB,aAAY;AAAA,MACZ,SAASK;AAAA,MAET,UAAA;AAAA,QAAA,gBAAAJ,EAAC,OAAI,EAAA,KAAKK,EAAO,iBAAiB,KAAI,mBAAkB;AAAA,QACxD,gBAAAL,EAACM,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,QACtBjC,MAAa,YAEV,gBAAAyB,EAAAS,GAAA,EAAA,UAAA;AAAA,UAAA,gBAAAP;AAAA,YAACQ;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,UAAS;AAAA,cACT,QAAQ,CAACpB;AAAA,cACT,aAAaC;AAAA,cAEb,UAAA,gBAAAW;AAAA,gBAACE;AAAA,gBAAA;AAAA,kBACC,QAAQ;AAAA,kBACR,UAAS;AAAA,kBACT,OAAM;AAAA,kBACN,MAAK;AAAA,kBACL,OAAM;AAAA,kBACN,SAAST;AAAA,kBACT,UAAUL;AAAA,kBACV,gBAAgBqB,EAAgC;AAAA,kBAChD,gBAAgB;AAAA,oBACd,cAAclC;AAAA,kBAChB;AAAA,gBAAA;AAAA,cACF;AAAA,YAAA;AAAA,UACF;AAAA,UACA,gBAAAyB,EAACM,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,QAAA,EAAA,CACzB,IAEC,gBAAAN,EAAAC,GAAA,EAAK,WAAU,YAAW,QAAO,cAAa,UAE/C,yCAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,IAON,gBAAAD;AAAA,IAACD;AAAA,IAAA;AAAA,MACC,SAASK;AAAA,MACT,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAChB,aAAY;AAAA,MAEZ,UAAA,gBAAAJ,EAACU,GAAU,EAAA,QAAO,OAAO,CAAA;AAAA,IAAA;AAAA,EAAA;AAG/B,CAAC;"}
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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"}
@@ -0,0 +1,41 @@
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
@@ -0,0 +1 @@
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,16 +1,11 @@
1
- import { styled as t } from "styled-components";
2
- import o from "../../../ui/layout/flex-view.js";
3
- const i = t(o)`
4
- position: sticky;
5
- bottom: 0;
6
- margin-left: auto;
7
- `, s = t(o)(({ theme: e }) => {
8
- const { colors: r } = e;
9
- return `
10
- border-radius: 50%;
11
- box-shadow: 0px 10px 20px 0px ${r.BLACK_T_15};
12
- `;
13
- }), a = t.div`
1
+ import { styled as o } from "styled-components";
2
+ const p = o.div(({ theme: t }) => `
3
+ position: absolute;
4
+ bottom: ${t.layout.gutter}px;
5
+ right: ${t.layout.gutter}px;
6
+ box-shadow: 0px 10px 20px 0px ${t.colors.BLACK_T_20};
7
+ border-radius: 50%;
8
+ `), e = o.div`
14
9
  display: grid;
15
10
  grid-template-columns: repeat(3, 200px);
16
11
  grid-gap: 32px;
@@ -18,8 +13,7 @@ const i = t(o)`
18
13
  padding: 32px 0;
19
14
  `;
20
15
  export {
21
- s as IconButtonCover,
22
- i as IconContainer,
23
- a as TestSheetItemWrapper
16
+ p as IconContainer,
17
+ e as TestSheetItemWrapper
24
18
  };
25
19
  //# sourceMappingURL=test-list-view-styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-list-view-styled.js","sources":["../../../../../src/features/milestone/milestone-tests/test-list-v2/test-list-view-styled.ts"],"sourcesContent":["import { styled } from 'styled-components';\n\nimport FlexView from '../../../ui/layout/flex-view';\n\nconst IconContainer = styled(FlexView)`\n position: sticky;\n bottom: 0;\n margin-left: auto;\n`;\n\nconst IconButtonCover = styled(FlexView)(({ theme }) => {\n const { colors } = theme;\n\n return `\n border-radius: 50%;\n box-shadow: 0px 10px 20px 0px ${colors.BLACK_T_15};\n `;\n});\n\nconst TestSheetItemWrapper = 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\nexport { IconContainer, IconButtonCover, TestSheetItemWrapper };\n"],"names":["IconContainer","styled","FlexView","IconButtonCover","theme","colors","TestSheetItemWrapper"],"mappings":";;AAIM,MAAAA,IAAgBC,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,GAM/BC,IAAkBF,EAAOC,CAAQ,EAAE,CAAC,EAAE,OAAAE,QAAY;AAChD,QAAA,EAAE,QAAAC,EAAW,IAAAD;AAEZ,SAAA;AAAA;AAAA,sCAE6BC,EAAO,UAAU;AAAA;AAEvD,CAAC,GAEKC,IAAuBL,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"test-list-view-styled.js","sources":["../../../../../src/features/milestone/milestone-tests/test-list-v2/test-list-view-styled.ts"],"sourcesContent":["import { styled } from 'styled-components';\n\nconst IconContainer = styled.div(({ theme }) => {\n return `\n position: absolute;\n bottom: ${theme.layout.gutter}px;\n right: ${theme.layout.gutter}px;\n box-shadow: 0px 10px 20px 0px ${theme.colors.BLACK_T_20};\n border-radius: 50%;\n `;\n});\n\nconst TestSheetItemWrapper = 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\nexport { IconContainer, TestSheetItemWrapper };\n"],"names":["IconContainer","styled","theme","TestSheetItemWrapper"],"mappings":";AAEA,MAAMA,IAAgBC,EAAO,IAAI,CAAC,EAAE,OAAAC,QAC3B;AAAA;AAAA,cAEKA,EAAM,OAAO,MAAM;AAAA,aACpBA,EAAM,OAAO,MAAM;AAAA,oCACIA,EAAM,OAAO,UAAU;AAAA;AAAA,GAG1D,GAEKC,IAAuBF,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -1,82 +1,51 @@
1
- import { jsxs as E, jsx as t } from "react/jsx-runtime";
2
- import { h as $ } from "../../../../node_modules/humanize-plus/dist/humanize.js";
3
- import { memo as C } from "react";
4
- import S from "../../../../assets/line-icons/icons/plus2.js";
5
- import A from "../../../homework/homework-card.js";
6
- import N from "../../../ui/buttons/icon-button/icon-button.js";
7
- import w from "../../../ui/layout/flex-view.js";
8
- import { MILESTONE_WIDGET_MIN_HEIGHT as x } from "../../constants.js";
9
- import { TESTS_CREATION_ANALYTICS_EVENTS as y } from "../tests-creation/tests-creation-analytics-events.js";
10
- import { TestSheetItemWrapper as b, IconContainer as j, IconButtonCover as H } from "./test-list-view-styled.js";
11
- const M = (e) => {
12
- const o = /* @__PURE__ */ new Set();
13
- return e == null || e.forEach((r) => {
14
- o.add(r.chapter_name);
15
- }), Array.from(o).join(", ");
16
- }, G = C(
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(
17
9
  ({
18
- milestoneId: e,
19
- studentId: o,
20
- sheets: r,
21
- userType: i,
22
- onCreateNewTest: a,
23
- isMilestoneActive: m,
24
- canUpdatedPlan: c,
25
- ...d
26
- }) => /* @__PURE__ */ E(
27
- w,
28
- {
29
- $height: x,
30
- $position: "relative",
31
- $justifyContent: "space-between",
32
- children: [
33
- /* @__PURE__ */ t(b, { children: r.map((s, p) => {
34
- const {
35
- items: l,
36
- node_id: h,
37
- sheet_time: T,
38
- total_questions: n,
39
- worksheet_id: f
40
- } = s, u = Math.ceil((T || 0) / 60), I = M(l), _ = `${typeof n == "number" ? `${n} ${$.pluralize(n, "Question")}, ` : ""}${u} Mins`;
41
- return /* @__PURE__ */ t(
42
- A,
43
- {
44
- userType: i,
45
- header: I,
46
- subHeader: _,
47
- nodeData: s,
48
- ...d
49
- },
50
- `${f}_${h}_${p}`
51
- );
52
- }) }),
53
- i === "TEACHER" && c && /* @__PURE__ */ t(
54
- j,
55
- {
56
- $flexDirection: "row",
57
- $justifyContent: "flex-end",
58
- $gapX: 1,
59
- $gutterX: 1,
60
- children: /* @__PURE__ */ t(H, { children: /* @__PURE__ */ t(
61
- N,
62
- {
63
- Icon: S,
64
- renderAs: "secondary",
65
- analyticsLabel: y.CUSTOM_TEST_CREATION_STARTED,
66
- onClick: a,
67
- disabled: !m,
68
- analyticsProps: {
69
- milestone_id: e
70
- }
71
- }
72
- ) })
73
- }
74
- )
75
- ]
76
- }
77
- )
10
+ milestoneId: r,
11
+ studentId: n,
12
+ sheets: i,
13
+ userType: t,
14
+ onCreateNewTest: m,
15
+ isMilestoneActive: s,
16
+ 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;
21
+ return /* @__PURE__ */ o(
22
+ A,
23
+ {
24
+ userType: t,
25
+ sheet: e,
26
+ milestoneId: r,
27
+ studentId: n,
28
+ ...T
29
+ },
30
+ `${c}_${p}_${a}`
31
+ );
32
+ }) }),
33
+ t === "TEACHER" && d && /* @__PURE__ */ o(h, { children: /* @__PURE__ */ o(
34
+ S,
35
+ {
36
+ Icon: E,
37
+ renderAs: "secondary",
38
+ analyticsLabel: f.CUSTOM_TEST_CREATION_STARTED,
39
+ onClick: m,
40
+ disabled: !s,
41
+ analyticsProps: {
42
+ milestone_id: r
43
+ }
44
+ }
45
+ ) })
46
+ ] })
78
47
  );
79
48
  export {
80
- G as default
49
+ $ as default
81
50
  };
82
51
  //# 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 { 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 FlexView from '../../../ui/layout/flex-view';\nimport { MILESTONE_WIDGET_MIN_HEIGHT } from '../../constants';\nimport { TESTS_CREATION_ANALYTICS_EVENTS } from '../tests-creation/tests-creation-analytics-events';\nimport * as Styled from './test-list-view-styled';\n\nconst getTopicNameFromItems = (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).join(', ');\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 <FlexView\n $height={MILESTONE_WIDGET_MIN_HEIGHT}\n $position=\"relative\"\n $justifyContent=\"space-between\"\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 = Math.ceil((sheetTime || 0) / 60);\n const testChapterName = getTopicNameFromItems(items);\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 $flexDirection=\"row\"\n $justifyContent=\"flex-end\"\n $gapX={1}\n $gutterX={1}\n >\n <Styled.IconButtonCover>\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.IconButtonCover>\n </Styled.IconContainer>\n )}\n </FlexView>\n );\n },\n);\n\nexport default TestSheetsList;\n"],"names":["getTopicNameFromItems","items","topics","item","TestSheetsList","memo","milestoneId","studentId","sheets","userType","onCreateNewTest","isMilestoneActive","canUpdatedPlan","sheetCallbacks","jsxs","FlexView","MILESTONE_WIDGET_MIN_HEIGHT","jsx","Styled.TestSheetItemWrapper","sheet","idx","nodeId","sheetTime","totalQuestions","worksheetId","totalSheetTime","testChapterName","subHeader","pluralize","HomeworkCard","Styled.IconContainer","Styled.IconButtonCover","IconButton","Plus2Icon","TESTS_CREATION_ANALYTICS_EVENTS"],"mappings":";;;;;;;;;;AAeA,MAAMA,IAAwB,CAACC,MAA0C;AACjE,QAAAC,wBAAa;AAEnB,SAAAD,KAAA,QAAAA,EAAO,QAAQ,CAAQE,MAAA;AACd,IAAAD,EAAA,IAAIC,EAAK,YAAY;AAAA,EAAA,IAGvB,MAAM,KAAKD,CAAM,EAAE,KAAK,IAAI;AACrC,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,MAGD,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,SAASC;AAAA,MACT,WAAU;AAAA,MACV,iBAAgB;AAAA,MAEhB,UAAA;AAAA,QAAA,gBAAAC,EAACC,GAAA,EACE,YAAO,IAAI,CAACC,GAAOC,MAAQ;AACpB,gBAAA;AAAA,YACJ,OAAAnB;AAAA,YACA,SAASoB;AAAA,YACT,YAAYC;AAAA,YACZ,iBAAiBC;AAAA,YACjB,cAAcC;AAAA,UACZ,IAAAL,GACEM,IAAiB,KAAK,MAAMH,KAAa,KAAK,EAAE,GAChDI,IAAkB1B,EAAsBC,CAAK,GAC7C0B,IAAY,GAChB,OAAOJ,KAAmB,WACtB,GAAGA,CAAc,IAAIK,EAAA,UAAUL,GAAgB,UAAU,CAAC,OAC1D,EACN,GAAGE,CAAc;AAGf,iBAAA,gBAAAR;AAAA,YAACY;AAAA,YAAA;AAAA,cAEC,UAAApB;AAAA,cACA,QAAQiB;AAAA,cACR,WAAAC;AAAA,cACA,UAAUR;AAAA,cACT,GAAGN;AAAA,YAAA;AAAA,YALC,GAAGW,CAAW,IAAIH,CAAM,IAAID,CAAG;AAAA,UAAA;AAAA,QAQzC,CAAA,GACH;AAAA,QAECX,MAAa,aAAaG,KACzB,gBAAAK;AAAA,UAACa;AAAAA,UAAA;AAAA,YACC,gBAAe;AAAA,YACf,iBAAgB;AAAA,YAChB,OAAO;AAAA,YACP,UAAU;AAAA,YAEV,UAAA,gBAAAb,EAACc,GAAA,EACC,UAAA,gBAAAd;AAAA,cAACe;AAAA,cAAA;AAAA,gBACC,MAAMC;AAAA,gBACN,UAAS;AAAA,gBACT,gBAAgBC,EAAgC;AAAA,gBAChD,SAASxB;AAAA,gBACT,UAAU,CAACC;AAAA,gBACX,gBAAgB;AAAA,kBACd,cAAcL;AAAA,gBAChB;AAAA,cAAA;AAAA,YAAA,GAEJ;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAKV;"}
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,40 +1,43 @@
1
- import { jsxs as s, jsx as l } from "react/jsx-runtime";
2
- import { useCallback as f, useEffect as h } from "react";
3
- import C from "../chapters/chapters-list/chapter-item/chapter-item.js";
4
- import d from "../ui/layout/flex-view.js";
5
- import u from "../ui/text/text.js";
6
- import { useGetRecentChapters as x } from "./api/get-recent-chapters.js";
7
- import { ChaptersWrapper as g } from "./recent-chapters-styled.js";
8
- const R = ({
1
+ import { jsxs as i, jsx as l } from "react/jsx-runtime";
2
+ import { useCallback as h, useEffect as d } from "react";
3
+ import u from "../chapters/chapters-list/chapter-item/chapter-item.js";
4
+ import x from "../ui/layout/flex-view.js";
5
+ import g from "../ui/text/text.js";
6
+ import { useGetRecentChapters as R } from "./api/get-recent-chapters.js";
7
+ import { ChaptersWrapper as $ } from "./recent-chapters-styled.js";
8
+ const a = ({
9
9
  studentId: r,
10
10
  courseStream: t,
11
- userType: p,
12
- onChapterClick: a
11
+ userType: m,
12
+ onChapterClick: f
13
13
  }) => {
14
- const { get: o, data: e, isProcessingFailed: m } = x(), i = f(() => {
14
+ const { get: o, data: e, isProcessingFailed: p } = R(), n = h(() => {
15
15
  o(r, void 0, { courseStream: t });
16
16
  }, [t, o, r]);
17
- return h(() => {
18
- i();
19
- }, [i]), m ? null : e && e.length > 0 ? /* @__PURE__ */ s(d, { $flexRowGapX: 1, children: [
20
- /* @__PURE__ */ s(u, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: [
21
- "Recent Chapters (",
17
+ return d(() => {
18
+ n();
19
+ }, [n]), p || (e == null ? void 0 : e.length) === 0 ? null : e && e.length > 0 ? /* @__PURE__ */ i(x, { $flexRowGapX: 1, children: [
20
+ /* @__PURE__ */ i(g, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: [
21
+ "Recent Chapters ($",
22
22
  e == null ? void 0 : e.length,
23
23
  ")"
24
24
  ] }),
25
- /* @__PURE__ */ l(g, { children: e.map((n, c) => /* @__PURE__ */ l(
26
- C,
27
- {
28
- userType: p,
29
- chapter: n,
30
- onChapterClick: a,
31
- itemIndex: c
32
- },
33
- n.id
34
- )) })
25
+ /* @__PURE__ */ l($, { children: e == null ? void 0 : e.map((s, c) => {
26
+ const { id: C } = s;
27
+ return /* @__PURE__ */ l(
28
+ u,
29
+ {
30
+ userType: m,
31
+ chapter: s,
32
+ onChapterClick: f,
33
+ itemIndex: c
34
+ },
35
+ C
36
+ );
37
+ }) })
35
38
  ] }) : null;
36
- }, G = R;
39
+ }, T = a;
37
40
  export {
38
- G as default
41
+ T as default
39
42
  };
40
43
  //# sourceMappingURL=recent-chapters.js.map