@cuemath/leap 2.8.60-as3 → 2.8.60-beta-0.1

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 (105) hide show
  1. package/dist/assets/line-icons/icons/bin2.js +8 -7
  2. package/dist/assets/line-icons/icons/bin2.js.map +1 -1
  3. package/dist/features/analytics-events/whitelist-events.js +9 -7
  4. package/dist/features/analytics-events/whitelist-events.js.map +1 -1
  5. package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js +2 -2
  6. package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js.map +1 -1
  7. package/dist/features/chapters-v2/chapter-details/chapter-details.js +24 -24
  8. package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -1
  9. package/dist/features/chapters-v2/comps/node-card/node-card-styled.js +16 -15
  10. package/dist/features/chapters-v2/comps/node-card/node-card-styled.js.map +1 -1
  11. package/dist/features/chapters-v2/comps/node-card/node-card-tags.js +8 -12
  12. package/dist/features/chapters-v2/comps/node-card/node-card-tags.js.map +1 -1
  13. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js +72 -76
  14. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js.map +1 -1
  15. package/dist/features/chapters-v2/utils/index.js +4 -5
  16. package/dist/features/chapters-v2/utils/index.js.map +1 -1
  17. package/dist/features/chapters-v2/utils/node-card-utils.js +34 -62
  18. package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
  19. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js +75 -62
  20. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js.map +1 -1
  21. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js +110 -127
  22. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js.map +1 -1
  23. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js +4 -12
  24. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js.map +1 -1
  25. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js +105 -128
  26. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js.map +1 -1
  27. package/dist/features/milestone/create/milestone-create.js +43 -49
  28. package/dist/features/milestone/create/milestone-create.js.map +1 -1
  29. package/dist/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.js +1 -1
  30. package/dist/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.js.map +1 -1
  31. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js +40 -42
  32. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +1 -1
  33. package/dist/features/milestone/edit/goal-edit-container.js +62 -64
  34. package/dist/features/milestone/edit/goal-edit-container.js.map +1 -1
  35. package/dist/features/milestone/edit/milestone-edit-container.js +52 -54
  36. package/dist/features/milestone/edit/milestone-edit-container.js.map +1 -1
  37. package/dist/features/milestone/milestone-list-container/api/get-milestone-resources.js.map +1 -1
  38. package/dist/features/milestone/milestone-list-container/api/get-tests-list.js.map +1 -1
  39. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +89 -96
  40. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
  41. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js +28 -28
  42. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
  43. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js +111 -120
  44. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js.map +1 -1
  45. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +61 -59
  46. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
  47. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js +85 -83
  48. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
  49. package/dist/features/milestone/milestone-list-container/milestone-list-container.js +90 -88
  50. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  51. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js +98 -82
  52. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js.map +1 -1
  53. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js +18 -16
  54. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
  55. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js +71 -0
  56. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js.map +1 -0
  57. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-styled.js +31 -0
  58. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-styled.js.map +1 -0
  59. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js +38 -0
  60. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js.map +1 -0
  61. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item.js +79 -0
  62. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item.js.map +1 -0
  63. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list-styled.js +18 -0
  64. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list-styled.js.map +1 -0
  65. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list.js +51 -0
  66. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list.js.map +1 -0
  67. package/dist/features/milestone/milestone-tests/tests-list/tests-list-styled.js +11 -0
  68. package/dist/features/milestone/milestone-tests/tests-list/tests-list-styled.js.map +1 -0
  69. package/dist/features/milestone/milestone-tests/tests-list/tests-list.js +144 -0
  70. package/dist/features/milestone/milestone-tests/tests-list/tests-list.js.map +1 -0
  71. package/dist/features/sheets/resources-list/resource-item/resource-item.js.map +1 -1
  72. package/dist/features/sheets/resources-list/resource-item/styled.js +1 -0
  73. package/dist/features/sheets/resources-list/resource-item/styled.js.map +1 -1
  74. package/dist/features/sheets/sheets-analytics-events.js +6 -2
  75. package/dist/features/sheets/sheets-analytics-events.js.map +1 -1
  76. package/dist/features/ui/lottie-animation/lottie-animation.js +24 -39
  77. package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -1
  78. package/dist/features/ui/theme/button.js +5 -5
  79. package/dist/features/ui/theme/button.js.map +1 -1
  80. package/dist/index.d.ts +13 -39
  81. package/dist/index.js +377 -381
  82. package/dist/index.js.map +1 -1
  83. package/package.json +1 -1
  84. package/dist/assets/line-icons/icons/skip-colored.js +0 -43
  85. package/dist/assets/line-icons/icons/skip-colored.js.map +0 -1
  86. package/dist/features/homework/card-menu-options.js +0 -25
  87. package/dist/features/homework/card-menu-options.js.map +0 -1
  88. package/dist/features/homework/homework-card.js +0 -210
  89. package/dist/features/homework/homework-card.js.map +0 -1
  90. package/dist/features/homework/styles.js +0 -114
  91. package/dist/features/homework/styles.js.map +0 -1
  92. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js +0 -157
  93. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js.map +0 -1
  94. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view-styled.js +0 -19
  95. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view-styled.js.map +0 -1
  96. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js +0 -63
  97. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js.map +0 -1
  98. package/dist/features/recent-chapters/api/get-recent-chapters.js +0 -9
  99. package/dist/features/recent-chapters/api/get-recent-chapters.js.map +0 -1
  100. package/dist/features/recent-chapters/recent-chapters-styled.js +0 -16
  101. package/dist/features/recent-chapters/recent-chapters-styled.js.map +0 -1
  102. package/dist/features/recent-chapters/recent-chapters.js +0 -43
  103. package/dist/features/recent-chapters/recent-chapters.js.map +0 -1
  104. package/dist/features/sheet-v2/resource-list/resource-list.js +0 -52
  105. package/dist/features/sheet-v2/resource-list/resource-list.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-sheet-item-utils.js","sources":["../../../../../../../src/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.ts"],"sourcesContent":["import type {\n TSheetButtonState,\n TSheetButtonVariant,\n} from '../../../../../sheets/comps/sheet-button/types';\nimport type {\n ISheetDataProps,\n TTestHelpItemsDataProps,\n} from '../../../../../sheets/sheets-list/sheet-item/sheet-item-types';\n\nimport { SHEET_STATE } from '../../../../../sheets/constants/sheet';\nimport { IS_CHAPTER_COMPLETED_STATES } from '../../../../create/milestone-create-constants';\n\nconst { COMPLETED } = SHEET_STATE;\n\ninterface IGetTestSheetCtaInfo {\n (\n state: ISheetDataProps['state'],\n permissions: ISheetDataProps['permissions'],\n isStudent: boolean,\n ): {\n state: TSheetButtonState | undefined;\n renderAs: TSheetButtonVariant;\n label: 'Start' | 'Resume' | 'View' | 'Review';\n };\n}\n\nconst getTestCtaInfo: IGetTestSheetCtaInfo = (sheetState, permissions, isStudent) => {\n const { can_start: canStart, can_resume: canResume } = permissions;\n\n const isSheetCompleted =\n sheetState === COMPLETED ||\n IS_CHAPTER_COMPLETED_STATES.some(completedState => completedState === sheetState);\n\n if (isStudent) {\n if (canResume) {\n return {\n state: 'in_progress',\n renderAs: 'primary',\n label: 'Resume',\n };\n }\n\n if (canStart) {\n return {\n state: undefined,\n renderAs: 'primary',\n label: 'Start',\n };\n }\n }\n\n if (isSheetCompleted) {\n return {\n state: 'completed',\n renderAs: 'secondary_black',\n label: 'Review',\n };\n }\n\n return {\n state: canResume ? 'in_progress' : undefined,\n renderAs: 'primary',\n label: 'View',\n };\n};\n\nconst getTopicsFromItems = (items?: TTestHelpItemsDataProps[]) => {\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\nexport { getTopicsFromItems, getTestCtaInfo };\n"],"names":["COMPLETED","SHEET_STATE","getTestCtaInfo","sheetState","permissions","isStudent","canStart","canResume","isSheetCompleted","IS_CHAPTER_COMPLETED_STATES","completedState","getTopicsFromItems","items","topics","item"],"mappings":";;AAYA,MAAM,EAAE,WAAAA,EAAc,IAAAC,GAchBC,IAAuC,CAACC,GAAYC,GAAaC,MAAc;AACnF,QAAM,EAAE,WAAWC,GAAU,YAAYC,MAAcH,GAEjDI,IACJL,MAAeH,KACfS,EAA4B,KAAK,CAAAC,MAAkBA,MAAmBP,CAAU;AAElF,MAAIE,GAAW;AACb,QAAIE;AACK,aAAA;AAAA,QACL,OAAO;AAAA,QACP,UAAU;AAAA,QACV,OAAO;AAAA,MAAA;AAIX,QAAID;AACK,aAAA;AAAA,QACL,OAAO;AAAA,QACP,UAAU;AAAA,QACV,OAAO;AAAA,MAAA;AAAA,EAGb;AAEA,SAAIE,IACK;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV,OAAO;AAAA,EAAA,IAIJ;AAAA,IACL,OAAOD,IAAY,gBAAgB;AAAA,IACnC,UAAU;AAAA,IACV,OAAO;AAAA,EAAA;AAEX,GAEMI,IAAqB,CAACC,MAAsC;AAC1D,QAAAC,wBAAa;AAEnB,SAAAD,KAAA,QAAAA,EAAO,QAAQ,CAAQE,MAAA;AACd,IAAAD,EAAA,IAAIC,EAAK,YAAY;AAAA,EAAA,IAGvB,MAAM,KAAKD,CAAM;AAC1B;"}
@@ -0,0 +1,79 @@
1
+ import { jsxs as s, jsx as t } from "react/jsx-runtime";
2
+ import { h as g } from "../../../../../../node_modules/humanize-plus/dist/humanize.js";
3
+ import { memo as y, useRef as D, useState as M, useMemo as n, useEffect as b } from "react";
4
+ import { SHEET_STATE as F } from "../../../../../sheets/constants/sheet.js";
5
+ import H from "../../../../../ui/arrow-tooltip/arrow-tooltip.js";
6
+ import f from "../../../../../ui/layout/flex-view.js";
7
+ import j from "../../../../../ui/text/text.js";
8
+ import { IS_CHAPTER_COMPLETED_STATES as v } from "../../../../create/milestone-create-constants.js";
9
+ import R from "./test-sheet-item-cta.js";
10
+ import { TestItemCard as O, TestTag as P, TestItemTitle as X } from "./test-sheet-item-styled.js";
11
+ import { getTopicsFromItems as Y } from "./test-sheet-item-utils.js";
12
+ const { COMPLETED: z } = F, B = {
13
+ EASY: "Easy",
14
+ MODERATE: "Moderate",
15
+ DIFFICULT: "Difficult"
16
+ }, ee = y((p) => {
17
+ const { sheet: l, userType: a, milestoneId: h, studentId: d, onTestPreview: u, onTestReview: E, onTestStart: I } = p, {
18
+ title: C,
19
+ items: m,
20
+ sheet_time: o,
21
+ state: c,
22
+ difficulty_level: S
23
+ } = l, e = D(null), [_, $] = M(!1), A = n(() => o && Math.ceil(o / 60) || 0, [o]), r = n(() => Y(m), [m]), i = n(() => r.join(" • "), [r]), T = r.length, w = B[S || "EASY"], x = c === z || v.some((L) => L === c);
24
+ return b(() => {
25
+ e.current && e.current.scrollHeight > e.current.clientHeight && $(!0);
26
+ }, [e]), /* @__PURE__ */ s(
27
+ O,
28
+ {
29
+ $gapX: 1.25,
30
+ $gutterX: 1.25,
31
+ $flexGapX: 1.25,
32
+ $background: x ? "WHITE_3" : "WHITE_1",
33
+ $justifyContent: "space-between",
34
+ children: [
35
+ /* @__PURE__ */ s(f, { $flexGap: 4, children: [
36
+ /* @__PURE__ */ t(P, { $renderAs: "ac4", $color: "BLACK_T_60", children: C }),
37
+ /* @__PURE__ */ t(
38
+ H,
39
+ {
40
+ renderAs: "primary",
41
+ position: "bottom",
42
+ tooltipItem: i ?? "",
43
+ widthX: 22.4375,
44
+ hidden: !_ || !i,
45
+ children: /* @__PURE__ */ t(X, { ref: e, $renderAs: "ab2", children: i })
46
+ }
47
+ ),
48
+ /* @__PURE__ */ s(j, { $renderAs: "ub3", $color: "BLACK_T_60", children: [
49
+ T,
50
+ " ",
51
+ g.pluralize(T, "Chapter"),
52
+ " • ",
53
+ w,
54
+ " •",
55
+ " ",
56
+ A,
57
+ " Mins"
58
+ ] })
59
+ ] }),
60
+ /* @__PURE__ */ t(f, { $flexDirection: "row", $justifyContent: "space-between", $alignItems: "center", children: /* @__PURE__ */ t(
61
+ R,
62
+ {
63
+ milestoneId: h,
64
+ studentId: d,
65
+ sheet: l,
66
+ userType: a,
67
+ onTestPreview: u,
68
+ onTestReview: E,
69
+ onTestStart: I
70
+ }
71
+ ) })
72
+ ]
73
+ }
74
+ );
75
+ });
76
+ export {
77
+ ee as default
78
+ };
79
+ //# sourceMappingURL=test-sheet-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-sheet-item.js","sources":["../../../../../../../src/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item.tsx"],"sourcesContent":["import type { ITestSheetItemProps } from './test-sheet-item-types';\nimport type { FC } from 'react';\n\nimport { pluralize } from 'humanize-plus';\nimport { memo, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { SHEET_STATE } from '../../../../../sheets/constants/sheet';\nimport ArrowTooltip from '../../../../../ui/arrow-tooltip/arrow-tooltip';\nimport FlexView from '../../../../../ui/layout/flex-view';\nimport Text from '../../../../../ui/text/text';\nimport { IS_CHAPTER_COMPLETED_STATES } from '../../../../create/milestone-create-constants';\nimport TestSheetItemCta from './test-sheet-item-cta';\nimport * as Styled from './test-sheet-item-styled';\nimport { getTopicsFromItems } from './test-sheet-item-utils';\n\nconst { COMPLETED } = SHEET_STATE;\n\nconst TEST_DIFFICULTY_LEVEL = {\n EASY: 'Easy',\n MODERATE: 'Moderate',\n DIFFICULT: 'Difficult',\n};\n\nconst TestSheetItem: FC<ITestSheetItemProps> = memo(props => {\n const { sheet, userType, milestoneId, studentId, onTestPreview, onTestReview, onTestStart } =\n props;\n const {\n title,\n items,\n sheet_time: sheetTime,\n state: testState,\n difficulty_level: difficultyLevel,\n } = sheet;\n\n const titleTextRef = useRef<HTMLDivElement>(null);\n const [showTitleTooltip, setShowTitleTooltip] = useState(false);\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\n const noOfChapters = topics.length;\n\n const testDifficultyLevel = TEST_DIFFICULTY_LEVEL[difficultyLevel || 'EASY'];\n const isTestCompleted =\n testState === COMPLETED || IS_CHAPTER_COMPLETED_STATES.some(state => state === testState);\n\n useEffect(() => {\n if (\n titleTextRef.current &&\n titleTextRef.current.scrollHeight > titleTextRef.current.clientHeight\n ) {\n setShowTitleTooltip(true);\n }\n }, [titleTextRef]);\n\n return (\n <Styled.TestItemCard\n $gapX={1.25}\n $gutterX={1.25}\n $flexGapX={1.25}\n $background={isTestCompleted ? 'WHITE_3' : 'WHITE_1'}\n $justifyContent=\"space-between\"\n >\n <FlexView $flexGap={4}>\n <Styled.TestTag $renderAs=\"ac4\" $color=\"BLACK_T_60\">\n {title}\n </Styled.TestTag>\n\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={testChapterName ?? ''}\n widthX={22.4375}\n hidden={!showTitleTooltip || !testChapterName}\n >\n <Styled.TestItemTitle ref={titleTextRef} $renderAs=\"ab2\">\n {testChapterName}\n </Styled.TestItemTitle>\n </ArrowTooltip>\n\n <Text $renderAs=\"ub3\" $color=\"BLACK_T_60\">\n {noOfChapters} {pluralize(noOfChapters, 'Chapter')} • {testDifficultyLevel} •{' '}\n {totalSheetTime} Mins\n </Text>\n </FlexView>\n\n <FlexView $flexDirection=\"row\" $justifyContent=\"space-between\" $alignItems=\"center\">\n <TestSheetItemCta\n milestoneId={milestoneId}\n studentId={studentId}\n sheet={sheet}\n userType={userType}\n onTestPreview={onTestPreview}\n onTestReview={onTestReview}\n onTestStart={onTestStart}\n />\n </FlexView>\n </Styled.TestItemCard>\n );\n});\n\nexport default TestSheetItem;\n"],"names":["COMPLETED","SHEET_STATE","TEST_DIFFICULTY_LEVEL","TestSheetItem","memo","props","sheet","userType","milestoneId","studentId","onTestPreview","onTestReview","onTestStart","title","items","sheetTime","testState","difficultyLevel","titleTextRef","useRef","showTitleTooltip","setShowTitleTooltip","useState","totalSheetTime","useMemo","topics","getTopicsFromItems","testChapterName","noOfChapters","testDifficultyLevel","isTestCompleted","IS_CHAPTER_COMPLETED_STATES","state","useEffect","jsxs","Styled.TestItemCard","FlexView","jsx","Styled.TestTag","ArrowTooltip","Styled.TestItemTitle","Text","pluralize","TestSheetItemCta"],"mappings":";;;;;;;;;;;AAeA,MAAM,EAAE,WAAAA,EAAc,IAAAC,GAEhBC,IAAwB;AAAA,EAC5B,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAW;AACb,GAEMC,KAAyCC,EAAK,CAASC,MAAA;AACrD,QAAA,EAAE,OAAAC,GAAO,UAAAC,GAAU,aAAAC,GAAa,WAAAC,GAAW,eAAAC,GAAe,cAAAC,GAAc,aAAAC,EAC5E,IAAAP,GACI;AAAA,IACJ,OAAAQ;AAAA,IACA,OAAAC;AAAA,IACA,YAAYC;AAAA,IACZ,OAAOC;AAAA,IACP,kBAAkBC;AAAA,EAChB,IAAAX,GAEEY,IAAeC,EAAuB,IAAI,GAC1C,CAACC,GAAkBC,CAAmB,IAAIC,EAAS,EAAK,GAExDC,IAAiBC,EAAQ,MAAOT,KAAa,KAAK,KAAKA,IAAY,EAAE,KAAM,GAAG,CAACA,CAAS,CAAC,GACzFU,IAASD,EAAQ,MAAME,EAAmBZ,CAAK,GAAG,CAACA,CAAK,CAAC,GACzDa,IAAkBH,EAAQ,MAAMC,EAAO,KAAK,KAAK,GAAG,CAACA,CAAM,CAAC,GAE5DG,IAAeH,EAAO,QAEtBI,IAAsB3B,EAAsBe,KAAmB,MAAM,GACrEa,IACJd,MAAchB,KAAa+B,EAA4B,KAAK,CAAAC,MAASA,MAAUhB,CAAS;AAE1F,SAAAiB,EAAU,MAAM;AACd,IACEf,EAAa,WACbA,EAAa,QAAQ,eAAeA,EAAa,QAAQ,gBAEzDG,EAAoB,EAAI;AAAA,EAC1B,GACC,CAACH,CAAY,CAAC,GAGf,gBAAAgB;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,OAAO;AAAA,MACP,UAAU;AAAA,MACV,WAAW;AAAA,MACX,aAAaL,IAAkB,YAAY;AAAA,MAC3C,iBAAgB;AAAA,MAEhB,UAAA;AAAA,QAAC,gBAAAI,EAAAE,GAAA,EAAS,UAAU,GAClB,UAAA;AAAA,UAAA,gBAAAC,EAACC,GAAA,EAAe,WAAU,OAAM,QAAO,cACpC,UACHzB,GAAA;AAAA,UAEA,gBAAAwB;AAAA,YAACE;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,UAAS;AAAA,cACT,aAAaZ,KAAmB;AAAA,cAChC,QAAQ;AAAA,cACR,QAAQ,CAACP,KAAoB,CAACO;AAAA,cAE9B,UAAA,gBAAAU,EAACG,GAAA,EAAqB,KAAKtB,GAAc,WAAU,OAChD,UACHS,GAAA;AAAA,YAAA;AAAA,UACF;AAAA,UAEC,gBAAAO,EAAAO,GAAA,EAAK,WAAU,OAAM,QAAO,cAC1B,UAAA;AAAA,YAAAb;AAAA,YAAa;AAAA,YAAEc,EAAA,UAAUd,GAAc,SAAS;AAAA,YAAE;AAAA,YAAIC;AAAA,YAAoB;AAAA,YAAG;AAAA,YAC7EN;AAAA,YAAe;AAAA,UAAA,GAClB;AAAA,QAAA,GACF;AAAA,0BAECa,GAAS,EAAA,gBAAe,OAAM,iBAAgB,iBAAgB,aAAY,UACzE,UAAA,gBAAAC;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,aAAAnC;AAAA,YACA,WAAAC;AAAA,YACA,OAAAH;AAAA,YACA,UAAAC;AAAA,YACA,eAAAG;AAAA,YACA,cAAAC;AAAA,YACA,aAAAC;AAAA,UAAA;AAAA,QAAA,GAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;"}
@@ -0,0 +1,18 @@
1
+ import { styled as o } from "styled-components";
2
+ const e = 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
+ `), p = o.div`
9
+ display: grid;
10
+ grid-template-columns: repeat(2, 1fr);
11
+ grid-template-rows: max-content;
12
+ gap: 0;
13
+ `;
14
+ export {
15
+ e as IconContainer,
16
+ p as TestSheetItemWrapper
17
+ };
18
+ //# sourceMappingURL=test-sheets-list-styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-sheets-list-styled.js","sources":["../../../../../../src/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list-styled.tsx"],"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(2, 1fr);\n grid-template-rows: max-content;\n gap: 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;"}
@@ -0,0 +1,51 @@
1
+ import { jsxs as _, Fragment as l, jsx as o } from "react/jsx-runtime";
2
+ import { memo as I } from "react";
3
+ import S from "../../../../../assets/line-icons/icons/plus2.js";
4
+ import E 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 h from "./test-sheet-item/test-sheet-item.js";
7
+ import { TestSheetItemWrapper as A, IconContainer as C } from "./test-sheets-list-styled.js";
8
+ const $ = I(
9
+ ({
10
+ milestoneId: r,
11
+ studentId: n,
12
+ sheets: m,
13
+ userType: e,
14
+ onCreateNewTest: i,
15
+ isMilestoneActive: s,
16
+ canUpdatedPlan: d,
17
+ ...T
18
+ }) => /* @__PURE__ */ _(l, { children: [
19
+ /* @__PURE__ */ o(A, { children: m.map((t, a) => {
20
+ const { worksheet_id: c, node_id: p } = t;
21
+ return /* @__PURE__ */ o(
22
+ h,
23
+ {
24
+ userType: e,
25
+ sheet: t,
26
+ milestoneId: r,
27
+ studentId: n,
28
+ ...T
29
+ },
30
+ `${c}_${p}_${a}`
31
+ );
32
+ }) }),
33
+ e === "TEACHER" && d && /* @__PURE__ */ o(C, { children: /* @__PURE__ */ o(
34
+ E,
35
+ {
36
+ Icon: S,
37
+ renderAs: "secondary",
38
+ analyticsLabel: f.CUSTOM_TEST_CREATION_STARTED,
39
+ onClick: i,
40
+ disabled: !s,
41
+ analyticsProps: {
42
+ milestone_id: r
43
+ }
44
+ }
45
+ ) })
46
+ ] })
47
+ );
48
+ export {
49
+ $ as default
50
+ };
51
+ //# sourceMappingURL=test-sheets-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-sheets-list.js","sources":["../../../../../../src/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list.tsx"],"sourcesContent":["import type { ITestSheetsList } from './test-sheets-list-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 TestSheetItem from './test-sheet-item/test-sheet-item';\nimport * as Styled from './test-sheets-list-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 <TestSheetItem\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","TestSheetItem","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;"}
@@ -0,0 +1,11 @@
1
+ import e from "styled-components";
2
+ import o from "../../../ui/layout/flex-view.js";
3
+ import { MILESTONE_WIDGET_MIN_HEIGHT as r } from "../../constants.js";
4
+ const m = e(o)`
5
+ position: relative;
6
+ min-height: ${r}px;
7
+ `;
8
+ export {
9
+ m as TestHelpWrapper
10
+ };
11
+ //# sourceMappingURL=tests-list-styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tests-list-styled.js","sources":["../../../../../src/features/milestone/milestone-tests/tests-list/tests-list-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../ui/layout/flex-view';\nimport { MILESTONE_WIDGET_MIN_HEIGHT } from '../../constants';\n\nconst TestHelpWrapper = styled(FlexView)`\n position: relative;\n min-height: ${MILESTONE_WIDGET_MIN_HEIGHT}px;\n`;\n\nexport { TestHelpWrapper };\n"],"names":["TestHelpWrapper","styled","FlexView","MILESTONE_WIDGET_MIN_HEIGHT"],"mappings":";;;AAKM,MAAAA,IAAkBC,EAAOC,CAAQ;AAAA;AAAA,gBAEvBC,CAA2B;AAAA;"}
@@ -0,0 +1,144 @@
1
+ import { jsx as e, jsxs as T, Fragment as M } from "react/jsx-runtime";
2
+ import { memo as H, useCallback as o, useEffect as R } from "react";
3
+ import { IMAGES as X } from "../../../../assets/images/images.js";
4
+ import j from "../../../ui/arrow-tooltip/arrow-tooltip.js";
5
+ import v from "../../../ui/buttons/button/button.js";
6
+ import L from "../../../ui/layout/flex-view.js";
7
+ import D from "../../../ui/loader/app-loader/app-loader.js";
8
+ import $ from "../../../ui/separator/separator.js";
9
+ import _ from "../../../ui/text/text.js";
10
+ import { useGetTestHelpData as W } from "../../milestone-list-container/api/get-tests-list.js";
11
+ import { TESTS_CREATION_ANALYTICS_EVENTS as F } from "../tests-creation/tests-creation-analytics-events.js";
12
+ import G from "./test-sheets-list/test-sheets-list.js";
13
+ import { TestHelpWrapper as a } from "./tests-list-styled.js";
14
+ const ne = H((u) => {
15
+ const {
16
+ isChaptersAvailable: g,
17
+ isDraftMilestone: b,
18
+ isMilestoneActive: s,
19
+ userType: w,
20
+ studentId: l,
21
+ userMilestoneId: t,
22
+ canUpdatePlan: C
23
+ } = u, { onCreateMilestoneTest: n, onTestPreview: c, onTestReview: d, onTestStart: p } = u, {
24
+ get: E,
25
+ data: r,
26
+ isProcessingFailed: m,
27
+ isProcessed: f,
28
+ isStale: I,
29
+ isProcessing: A
30
+ } = W(), y = !C || !g || !s || s && b, P = s && !g ? "Chapters need to be assigned" : b ? "Allowed after plan is published" : "Plan is completed", h = o(() => {
31
+ E(t, void 0, {
32
+ studentId: l
33
+ });
34
+ }, [E, l, t]);
35
+ R(() => {
36
+ !A && (!f && !m || I) && h();
37
+ }, [h, f, A, m, I]);
38
+ const S = o(() => {
39
+ if (typeof n == "function") {
40
+ n == null || n(t, ((r == null ? void 0 : r.length) || 0) + 1);
41
+ return;
42
+ }
43
+ throw new Error("No callback provided. If provided it must be a function");
44
+ }, [n, t, r]), k = o(
45
+ (i, x) => {
46
+ if (typeof c == "function") {
47
+ c(i, x);
48
+ return;
49
+ }
50
+ throw new Error("No callback provided. If provided it must be a function");
51
+ },
52
+ [c]
53
+ ), N = o(
54
+ (i) => {
55
+ if (typeof p == "function") {
56
+ p(i);
57
+ return;
58
+ }
59
+ throw new Error("No callback provided. If provided it must be a function");
60
+ },
61
+ [p]
62
+ ), O = o(
63
+ (i) => {
64
+ if (typeof d == "function") {
65
+ d(i, t);
66
+ return;
67
+ }
68
+ throw new Error("No callback provided. If provided it must be a function");
69
+ },
70
+ [d, t]
71
+ );
72
+ return m ? /* @__PURE__ */ e(a, { $alignItems: "center", $justifyContent: "center", $background: "WHITE", children: /* @__PURE__ */ T(L, { $flexGapX: 1.5, $alignItems: "center", $justifyContent: "center", children: [
73
+ /* @__PURE__ */ e(_, { $renderAs: "h6", children: "Oops! Something went wrong. Please try again later." }),
74
+ /* @__PURE__ */ e(
75
+ v,
76
+ {
77
+ widthX: 14,
78
+ size: "small",
79
+ shape: "square",
80
+ renderAs: "primary",
81
+ label: "Try again",
82
+ onClick: h
83
+ }
84
+ )
85
+ ] }) }) : f ? r != null && r.length ? /* @__PURE__ */ e(a, { children: /* @__PURE__ */ e(
86
+ G,
87
+ {
88
+ milestoneId: t,
89
+ sheets: r,
90
+ userType: w,
91
+ studentId: l,
92
+ onCreateNewTest: S,
93
+ onTestPreview: k,
94
+ onTestReview: O,
95
+ onTestStart: N,
96
+ canUpdatedPlan: C,
97
+ isMilestoneActive: s
98
+ }
99
+ ) }) : /* @__PURE__ */ T(
100
+ a,
101
+ {
102
+ $gapX: 6.75,
103
+ $alignItems: "center",
104
+ $justifyContent: "center",
105
+ $background: "WHITE",
106
+ children: [
107
+ /* @__PURE__ */ e("img", { src: X.EMPTY_MIX_TESTS, alt: "empty_mix_tests" }),
108
+ /* @__PURE__ */ e($, { heightX: 2 }),
109
+ w === "TEACHER" ? /* @__PURE__ */ T(M, { children: [
110
+ /* @__PURE__ */ e(
111
+ j,
112
+ {
113
+ renderAs: "primary",
114
+ position: "bottom",
115
+ hidden: !y,
116
+ tooltipItem: P,
117
+ children: /* @__PURE__ */ e(
118
+ v,
119
+ {
120
+ widthX: 10,
121
+ renderAs: "primary",
122
+ shape: "square",
123
+ size: "small",
124
+ label: "Create a Test",
125
+ onClick: S,
126
+ disabled: y,
127
+ analyticsLabel: F.CUSTOM_TEST_CREATION_STARTED,
128
+ analyticsProps: {
129
+ milestone_id: t
130
+ }
131
+ }
132
+ )
133
+ }
134
+ ),
135
+ /* @__PURE__ */ e($, { heightX: 2 })
136
+ ] }) : /* @__PURE__ */ e(_, { $renderAs: "ab2-bold", $color: "BLACK_T_87", children: "Wait for the teacher to create a test" })
137
+ ]
138
+ }
139
+ ) : /* @__PURE__ */ e(a, { $alignItems: "center", $justifyContent: "center", $background: "WHITE", children: /* @__PURE__ */ e(D, { height: "100%" }) });
140
+ });
141
+ export {
142
+ ne as default
143
+ };
144
+ //# sourceMappingURL=tests-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tests-list.js","sources":["../../../../../src/features/milestone/milestone-tests/tests-list/tests-list.tsx"],"sourcesContent":["import type { ITestsListProps } from './tests-list-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 { 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-sheets-list/test-sheets-list';\nimport * as Styled from './tests-list-styled';\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, onTestReview, onTestStart } = 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 handleOnPreview = useCallback<NonNullable<ITestsListProps['onTestPreview']>>(\n (milestoneId, sheetData) => {\n if (typeof onTestPreview === 'function') {\n onTestPreview(milestoneId, sheetData);\n\n return;\n }\n\n throw new Error('No callback provided. If provided it must be a function');\n },\n [onTestPreview],\n );\n\n const handleOnStart = useCallback<NonNullable<ITestsListProps['onTestStart']>>(\n sheet => {\n if (typeof onTestStart === 'function') {\n onTestStart(sheet);\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 handleOnReview = useCallback<NonNullable<ITestsListProps['onTestReview']>>(\n sheet => {\n if (typeof onTestReview === 'function') {\n onTestReview(sheet, 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 <Styled.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 </Styled.TestHelpWrapper>\n );\n }\n\n if (isProcessed) {\n if (data?.length) {\n return (\n <Styled.TestHelpWrapper>\n <TestSheetsList\n milestoneId={userMilestoneId}\n sheets={data}\n userType={userType}\n studentId={studentId}\n onCreateNewTest={handleOnCreateMilestoneTest}\n onTestPreview={handleOnPreview}\n onTestReview={handleOnReview}\n onTestStart={handleOnStart}\n canUpdatedPlan={canUpdatePlan}\n isMilestoneActive={isMilestoneActive}\n />\n </Styled.TestHelpWrapper>\n );\n }\n\n return (\n <Styled.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 </Styled.TestHelpWrapper>\n );\n }\n\n return (\n <Styled.TestHelpWrapper $alignItems=\"center\" $justifyContent=\"center\" $background=\"WHITE\">\n <AppLoader height=\"100%\" />\n </Styled.TestHelpWrapper>\n );\n});\n\nexport default MilestoneTestsList;\n"],"names":["MilestoneTestsList","memo","props","isChaptersAvailable","isDraftMilestone","isMilestoneActive","userType","studentId","userMilestoneId","canUpdatePlan","onCreateMilestoneTest","onTestPreview","onTestReview","onTestStart","getTestHelpData","data","isProcessingFailed","isProcessed","isStale","isProcessing","useGetTestHelpData","isTestSheetCreationDisabled","testCreationCtaTooltipText","handleOnTryAgain","useCallback","useEffect","handleOnCreateMilestoneTest","handleOnPreview","milestoneId","sheetData","handleOnStart","sheet","handleOnReview","Styled.TestHelpWrapper","FlexView","jsx","Text","Button","TestSheetsList","jsxs","IMAGES","Separator","Fragment","ArrowTooltip","TESTS_CREATION_ANALYTICS_EVENTS","AppLoader"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resource-item.js","sources":["../../../../../src/features/sheets/resources-list/resource-item/resource-item.tsx"],"sourcesContent":["import type { IMenuOptionsProps } from './context-menu-helper/menu-element-types';\nimport type { IResourceItemProps } from './types';\nimport type { FC } from 'react';\n\nimport { useCallback, useLayoutEffect, useRef, memo, useState, useMemo } from 'react';\n\nimport Minus2Icon from '../../../../assets/line-icons/icons/minus2';\nimport Plus2Icon from '../../../../assets/line-icons/icons/plus2';\nimport RedoIcon from '../../../../assets/line-icons/icons/redo';\nimport ArrowTooltip from '../../../ui/arrow-tooltip/arrow-tooltip';\nimport ContextMenu from '../../../ui/context-menu/context-menu';\nimport { useUIContext } from '../../../ui/context/context';\nimport FlexView from '../../../ui/layout/flex-view';\nimport SheetButton from '../../comps/sheet-button';\nimport ContextMenuTargetElement from '../../lessons-list/lesson-item/context-menu-helper/target-element';\nimport { SHEETS_ANALYTICS_EVENTS } from '../../sheets-analytics-events';\nimport { TEACHER_MENU_OPTIONS } from '../../sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions-constant';\nimport { isV3Worksheet } from '../../utils/is-v3-worksheet';\nimport ContextMenuElement from './context-menu-helper/menu-element';\nimport * as Styled from './styled';\nimport {\n getResourceItemBackgroundColor,\n getResourceItemCtaInfo,\n getResourceItemCtaState,\n} from './utils';\n\nconst { UNASSIGN, REDO } = TEACHER_MENU_OPTIONS;\n\nconst ResourceItem: FC<IResourceItemProps> = memo(\n ({\n sheet,\n userType,\n isMilestoneWidget,\n userMilestoneId,\n onUnlock,\n onUnAssignSheet,\n onReset,\n onPreview,\n onReview,\n onStart,\n }) => {\n const { onClick: trackClick } = useUIContext();\n const titleTextRef = useRef<HTMLDivElement>(null);\n const [showTitleTooltip, setShowTitleTooltip] = useState(false);\n\n const {\n accuracy,\n permissions,\n title,\n sheet_statement: sheetStatement,\n state: sheetState,\n node_id: nodeId,\n user_node_id: userNodeId,\n node_sub_group: nodeSubGroup,\n node_type: nodeType,\n } = sheet;\n const {\n can_start: canStart,\n can_resume: canResume,\n can_unlock: canUnlock,\n can_review: canReview,\n can_teacher_review: canTeacherReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n } = permissions;\n\n const sheetAccuracy = typeof accuracy === 'number' ? `${accuracy}%` : undefined;\n const isStudent = userType === 'STUDENT';\n const canReviewSheet = isStudent ? canReview : canTeacherReview;\n\n const ctaState = getResourceItemCtaState(sheetState);\n const { label, Icon } = getResourceItemCtaInfo(nodeSubGroup) || {};\n\n const analyticsProps = useMemo(\n () => ({\n node_id: nodeId,\n node_type: nodeType,\n }),\n [nodeId, nodeType],\n );\n\n const handleAssignSheet = useCallback(() => {\n trackClick({\n analyticsLabel: SHEETS_ANALYTICS_EVENTS.RESOURCE_ASSIGNED,\n props: analyticsProps,\n });\n\n onUnlock?.(nodeId);\n }, [onUnlock, nodeId, trackClick, analyticsProps]);\n\n const handleOnClick = useCallback(() => {\n if (isStudent && (canStart || canResume)) {\n if (typeof onStart === 'function') {\n onStart(nodeId, isV3Worksheet(sheet), userNodeId);\n\n return;\n }\n throw new Error('No callback is available');\n }\n\n if (canReviewSheet) {\n if (typeof onReview !== '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 onReview(userNodeId, isV3Worksheet(sheet, 'review'), userMilestoneId);\n\n return;\n }\n\n if (typeof onPreview !== 'function') {\n throw new Error('onPreview must be a function');\n }\n onPreview(sheet, isV3Worksheet(sheet));\n }, [\n canResume,\n canReviewSheet,\n canStart,\n isStudent,\n nodeId,\n sheet,\n userMilestoneId,\n userNodeId,\n onStart,\n onReview,\n onPreview,\n ]);\n\n const handleMenuOptionClick = useCallback(\n (selectedOption: string) => {\n switch (selectedOption) {\n case UNASSIGN:\n if (typeof onUnAssignSheet !== 'function') {\n throw new Error('onUnassignSheet must be a function');\n }\n\n trackClick({\n analyticsLabel: SHEETS_ANALYTICS_EVENTS.RESOURCE_UNASSIGNED,\n props: analyticsProps,\n });\n\n onUnAssignSheet(sheet);\n\n return;\n\n case REDO:\n if (typeof onReset !== 'function') {\n throw new Error('onReset must be a function');\n }\n\n onReset(sheet);\n\n return;\n }\n },\n [sheet, onUnAssignSheet, onReset, analyticsProps, trackClick],\n );\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 menuOptions: IMenuOptionsProps[] = [\n {\n id: 'supplementary_resources_unassign',\n label: 'Unassign',\n icon: <Minus2Icon width={20} height={20} />,\n option: UNASSIGN,\n visible: canUnassign,\n onClick: handleMenuOptionClick,\n },\n {\n id: 'supplementary_resources_redo',\n label: 'Redo',\n icon: <RedoIcon />,\n option: REDO,\n visible: canReset,\n onClick: handleMenuOptionClick,\n },\n ];\n\n const backgroundColor = getResourceItemBackgroundColor(\n sheetState,\n isStudent,\n canUnlock,\n !!isMilestoneWidget,\n );\n\n return (\n <Styled.ResourceItemCard\n $gapX={1}\n $gutterX={1}\n $flexGapX={1.25}\n $background={backgroundColor}\n $justifyContent=\"space-between\"\n $heightX={8}\n $isMilestoneWidget={isMilestoneWidget}\n >\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={title}\n hidden={!showTitleTooltip}\n widthX={21.75}\n >\n <Styled.ResourceItemTitle ref={titleTextRef} $renderAs=\"ab2\" $color=\"BLACK_T_87\">\n {title}\n </Styled.ResourceItemTitle>\n </ArrowTooltip>\n\n <FlexView $flexDirection=\"row\" $justifyContent=\"space-between\" $alignItems=\"center\">\n <ArrowTooltip position=\"bottom\" tooltipItem={sheetStatement} renderAs=\"secondary\">\n <SheetButton\n renderAs=\"primary\"\n label={label ?? ''}\n Icon={Icon}\n backgroundColor={backgroundColor}\n state={ctaState}\n hoverActive={false}\n onClick={handleOnClick}\n accuracy={sheetAccuracy}\n widthX={8.5}\n />\n </ArrowTooltip>\n\n {!isStudent &&\n (canUnlock ? (\n <Styled.IconButtonWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n onClick={handleAssignSheet}\n >\n <Plus2Icon />\n </Styled.IconButtonWrapper>\n ) : (\n <ContextMenu\n targetElement={<ContextMenuTargetElement invertHover />}\n menuElement={<ContextMenuElement menuOptions={menuOptions} />}\n />\n ))}\n </FlexView>\n </Styled.ResourceItemCard>\n );\n },\n);\n\nexport default ResourceItem;\n"],"names":["UNASSIGN","REDO","TEACHER_MENU_OPTIONS","ResourceItem","memo","sheet","userType","isMilestoneWidget","userMilestoneId","onUnlock","onUnAssignSheet","onReset","onPreview","onReview","onStart","trackClick","useUIContext","titleTextRef","useRef","showTitleTooltip","setShowTitleTooltip","useState","accuracy","permissions","title","sheetStatement","sheetState","nodeId","userNodeId","nodeSubGroup","nodeType","canStart","canResume","canUnlock","canReview","canTeacherReview","canUnassign","canReset","sheetAccuracy","isStudent","canReviewSheet","ctaState","getResourceItemCtaState","label","Icon","getResourceItemCtaInfo","analyticsProps","useMemo","handleAssignSheet","useCallback","SHEETS_ANALYTICS_EVENTS","handleOnClick","isV3Worksheet","handleMenuOptionClick","selectedOption","useLayoutEffect","menuOptions","jsx","Minus2Icon","RedoIcon","backgroundColor","getResourceItemBackgroundColor","jsxs","Styled.ResourceItemCard","ArrowTooltip","Styled.ResourceItemTitle","FlexView","SheetButton","Styled.IconButtonWrapper","Plus2Icon","ContextMenu","ContextMenuTargetElement","ContextMenuElement"],"mappings":"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"}
1
+ {"version":3,"file":"resource-item.js","sources":["../../../../../src/features/sheets/resources-list/resource-item/resource-item.tsx"],"sourcesContent":["import type { IMenuOptionsProps } from './context-menu-helper/menu-element-types';\nimport type { IResourceItemProps } from './types';\nimport type { FC } from 'react';\n\nimport { useCallback, useLayoutEffect, useRef, memo, useState, useMemo } from 'react';\n\nimport Minus2Icon from '../../../../assets/line-icons/icons/minus2';\nimport Plus2Icon from '../../../../assets/line-icons/icons/plus2';\nimport RedoIcon from '../../../../assets/line-icons/icons/redo';\nimport ArrowTooltip from '../../../ui/arrow-tooltip/arrow-tooltip';\nimport ContextMenu from '../../../ui/context-menu/context-menu';\nimport { useUIContext } from '../../../ui/context/context';\nimport FlexView from '../../../ui/layout/flex-view';\nimport SheetButton from '../../comps/sheet-button';\nimport ContextMenuTargetElement from '../../lessons-list/lesson-item/context-menu-helper/target-element';\nimport { SHEETS_ANALYTICS_EVENTS } from '../../sheets-analytics-events';\nimport { TEACHER_MENU_OPTIONS } from '../../sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions-constant';\nimport { isV3Worksheet } from '../../utils/is-v3-worksheet';\nimport ContextMenuElement from './context-menu-helper/menu-element';\nimport * as Styled from './styled';\nimport {\n getResourceItemBackgroundColor,\n getResourceItemCtaInfo,\n getResourceItemCtaState,\n} from './utils';\n\nconst { UNASSIGN, REDO } = TEACHER_MENU_OPTIONS;\n\nconst ResourceItem: FC<IResourceItemProps> = memo(\n ({\n sheet,\n userType,\n isMilestoneWidget,\n userMilestoneId,\n onUnlock,\n onUnAssignSheet,\n onReset,\n onPreview,\n onReview,\n onStart,\n }) => {\n const { onClick: trackClick } = useUIContext();\n const titleTextRef = useRef<HTMLDivElement>(null);\n const [showTitleTooltip, setShowTitleTooltip] = useState(false);\n\n const {\n accuracy,\n permissions,\n title,\n sheet_statement: sheetStatement,\n state: sheetState,\n node_id: nodeId,\n user_node_id: userNodeId,\n node_sub_group: nodeSubGroup,\n node_type: nodeType,\n } = sheet;\n const {\n can_start: canStart,\n can_resume: canResume,\n can_unlock: canUnlock,\n can_review: canReview,\n can_teacher_review: canTeacherReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n } = permissions;\n\n const sheetAccuracy = typeof accuracy === 'number' ? `${accuracy}%` : undefined;\n const isStudent = userType === 'STUDENT';\n const canReviewSheet = isStudent ? canReview : canTeacherReview;\n\n const ctaState = getResourceItemCtaState(sheetState);\n const { label, Icon } = getResourceItemCtaInfo(nodeSubGroup) || {};\n\n const analyticsProps = useMemo(\n () => ({\n node_id: nodeId,\n node_type: nodeType,\n }),\n [nodeId, nodeType],\n );\n\n const handleAssignSheet = useCallback(() => {\n trackClick({\n analyticsLabel: SHEETS_ANALYTICS_EVENTS.RESOURCE_ASSIGNED,\n props: analyticsProps,\n });\n\n onUnlock?.(nodeId);\n }, [onUnlock, nodeId, trackClick, analyticsProps]);\n\n const handleOnClick = useCallback(() => {\n if (isStudent && (canStart || canResume)) {\n if (typeof onStart === 'function') {\n onStart(nodeId, isV3Worksheet(sheet), userNodeId);\n\n return;\n }\n\n throw new Error('No callback is available');\n }\n\n if (canReviewSheet) {\n if (typeof onReview !== '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 onReview(userNodeId, isV3Worksheet(sheet, 'review'), userMilestoneId);\n\n return;\n }\n\n if (typeof onPreview !== 'function') {\n throw new Error('onPreview must be a function');\n }\n\n onPreview(sheet, isV3Worksheet(sheet));\n }, [\n canResume,\n canReviewSheet,\n canStart,\n isStudent,\n nodeId,\n sheet,\n userMilestoneId,\n userNodeId,\n onStart,\n onReview,\n onPreview,\n ]);\n\n const handleMenuOptionClick = useCallback(\n (selectedOption: string) => {\n switch (selectedOption) {\n case UNASSIGN:\n if (typeof onUnAssignSheet !== 'function') {\n throw new Error('onUnassignSheet must be a function');\n }\n\n trackClick({\n analyticsLabel: SHEETS_ANALYTICS_EVENTS.RESOURCE_UNASSIGNED,\n props: analyticsProps,\n });\n\n onUnAssignSheet(sheet);\n\n return;\n\n case REDO:\n if (typeof onReset !== 'function') {\n throw new Error('onReset must be a function');\n }\n\n onReset(sheet);\n\n return;\n }\n },\n [sheet, onUnAssignSheet, onReset, analyticsProps, trackClick],\n );\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 menuOptions: IMenuOptionsProps[] = [\n {\n id: 'supplementary_resources_unassign',\n label: 'Unassign',\n icon: <Minus2Icon width={20} height={20} />,\n option: UNASSIGN,\n visible: canUnassign,\n onClick: handleMenuOptionClick,\n },\n {\n id: 'supplementary_resources_redo',\n label: 'Redo',\n icon: <RedoIcon />,\n option: REDO,\n visible: canReset,\n onClick: handleMenuOptionClick,\n },\n ];\n\n const backgroundColor = getResourceItemBackgroundColor(\n sheetState,\n isStudent,\n canUnlock,\n !!isMilestoneWidget,\n );\n\n return (\n <Styled.ResourceItemCard\n $gapX={1}\n $gutterX={1}\n $flexGapX={1.25}\n $background={backgroundColor}\n $justifyContent=\"space-between\"\n $heightX={8}\n $isMilestoneWidget={isMilestoneWidget}\n >\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={title}\n hidden={!showTitleTooltip}\n widthX={21.75}\n >\n <Styled.ResourceItemTitle ref={titleTextRef} $renderAs=\"ab2\" $color=\"BLACK_T_87\">\n {title}\n </Styled.ResourceItemTitle>\n </ArrowTooltip>\n\n <FlexView $flexDirection=\"row\" $justifyContent=\"space-between\" $alignItems=\"center\">\n <ArrowTooltip position=\"bottom\" tooltipItem={sheetStatement} renderAs=\"secondary\">\n <SheetButton\n renderAs=\"primary\"\n label={label ?? ''}\n Icon={Icon}\n backgroundColor={backgroundColor}\n state={ctaState}\n hoverActive={false}\n onClick={handleOnClick}\n accuracy={sheetAccuracy}\n widthX={8.5}\n />\n </ArrowTooltip>\n\n {!isStudent &&\n (canUnlock ? (\n <Styled.IconButtonWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n onClick={handleAssignSheet}\n >\n <Plus2Icon />\n </Styled.IconButtonWrapper>\n ) : (\n <ContextMenu\n targetElement={<ContextMenuTargetElement invertHover />}\n menuElement={<ContextMenuElement menuOptions={menuOptions} />}\n />\n ))}\n </FlexView>\n </Styled.ResourceItemCard>\n );\n },\n);\n\nexport default ResourceItem;\n"],"names":["UNASSIGN","REDO","TEACHER_MENU_OPTIONS","ResourceItem","memo","sheet","userType","isMilestoneWidget","userMilestoneId","onUnlock","onUnAssignSheet","onReset","onPreview","onReview","onStart","trackClick","useUIContext","titleTextRef","useRef","showTitleTooltip","setShowTitleTooltip","useState","accuracy","permissions","title","sheetStatement","sheetState","nodeId","userNodeId","nodeSubGroup","nodeType","canStart","canResume","canUnlock","canReview","canTeacherReview","canUnassign","canReset","sheetAccuracy","isStudent","canReviewSheet","ctaState","getResourceItemCtaState","label","Icon","getResourceItemCtaInfo","analyticsProps","useMemo","handleAssignSheet","useCallback","SHEETS_ANALYTICS_EVENTS","handleOnClick","isV3Worksheet","handleMenuOptionClick","selectedOption","useLayoutEffect","menuOptions","jsx","Minus2Icon","RedoIcon","backgroundColor","getResourceItemBackgroundColor","jsxs","Styled.ResourceItemCard","ArrowTooltip","Styled.ResourceItemTitle","FlexView","SheetButton","Styled.IconButtonWrapper","Plus2Icon","ContextMenu","ContextMenuTargetElement","ContextMenuElement"],"mappings":"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"}
@@ -8,6 +8,7 @@ const c = e(i)(({ theme: r, $isMilestoneWidget: o }) => {
8
8
  ${o && `
9
9
  border-top-width: 0;
10
10
  border-left-width: 0;
11
+
11
12
  &:nth-child(even) {
12
13
  border-right-width: 0;
13
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"styled.js","sources":["../../../../../src/features/sheets/resources-list/resource-item/styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\n\ninterface IResourceItemCard {\n $isMilestoneWidget?: boolean;\n}\n\nconst ResourceItemCard = styled(FlexView)<IResourceItemCard>(({ theme, $isMilestoneWidget }) => {\n const { WHITE_5 } = theme.colors;\n\n return `\n border: 1px solid ${WHITE_5};\n ${\n $isMilestoneWidget &&\n `\n border-top-width: 0;\n border-left-width: 0;\n &:nth-child(even) {\n border-right-width: 0;\n }\n `\n }\n `;\n});\n\nconst ResourceItemTitle = styled(Text)(() => {\n return `\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n text-overflow: ellipsis;\n overflow: hidden;\n `;\n});\n\nconst IconButtonWrapper = styled(FlexView)(({ theme }) => {\n const { gutter } = theme.layout;\n const { BLACK_T_87 } = theme.colors;\n\n return `\n width: ${gutter * 2}px;\n height: ${gutter * 2}px;\n border: 1px solid ${BLACK_T_87};\n border-radius: 50%;\n cursor: pointer;\n `;\n});\n\nexport { ResourceItemCard, ResourceItemTitle, IconButtonWrapper };\n"],"names":["ResourceItemCard","styled","FlexView","theme","$isMilestoneWidget","WHITE_5","ResourceItemTitle","Text","IconButtonWrapper","gutter","BLACK_T_87"],"mappings":";;;AASM,MAAAA,IAAmBC,EAAOC,CAAQ,EAAqB,CAAC,EAAE,OAAAC,GAAO,oBAAAC,QAAyB;AACxF,QAAA,EAAE,SAAAC,EAAQ,IAAIF,EAAM;AAEnB,SAAA;AAAA,0BACiBE,CAAO;AAAA,QAEzBD,KACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAOF;AAAA;AAEN,CAAC,GAEKE,IAAoBL,EAAOM,CAAI,EAAE,MAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAOR,GAEKC,IAAoBP,EAAOC,CAAQ,EAAE,CAAC,EAAE,OAAAC,QAAY;AAClD,QAAA,EAAE,QAAAM,EAAO,IAAIN,EAAM,QACnB,EAAE,YAAAO,EAAW,IAAIP,EAAM;AAEtB,SAAA;AAAA,eACMM,IAAS,CAAC;AAAA,gBACTA,IAAS,CAAC;AAAA,0BACAC,CAAU;AAAA;AAAA;AAAA;AAIpC,CAAC;"}
1
+ {"version":3,"file":"styled.js","sources":["../../../../../src/features/sheets/resources-list/resource-item/styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\n\ninterface IResourceItemCard {\n $isMilestoneWidget?: boolean;\n}\n\nconst ResourceItemCard = styled(FlexView)<IResourceItemCard>(({ theme, $isMilestoneWidget }) => {\n const { WHITE_5 } = theme.colors;\n\n return `\n border: 1px solid ${WHITE_5};\n ${\n $isMilestoneWidget &&\n `\n border-top-width: 0;\n border-left-width: 0;\n\n &:nth-child(even) {\n border-right-width: 0;\n }\n `\n }\n `;\n});\n\nconst ResourceItemTitle = styled(Text)(() => {\n return `\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n text-overflow: ellipsis;\n overflow: hidden;\n `;\n});\n\nconst IconButtonWrapper = styled(FlexView)(({ theme }) => {\n const { gutter } = theme.layout;\n const { BLACK_T_87 } = theme.colors;\n\n return `\n width: ${gutter * 2}px;\n height: ${gutter * 2}px;\n border: 1px solid ${BLACK_T_87};\n border-radius: 50%;\n cursor: pointer;\n `;\n});\n\nexport { ResourceItemCard, ResourceItemTitle, IconButtonWrapper };\n"],"names":["ResourceItemCard","styled","FlexView","theme","$isMilestoneWidget","WHITE_5","ResourceItemTitle","Text","IconButtonWrapper","gutter","BLACK_T_87"],"mappings":";;;AASM,MAAAA,IAAmBC,EAAOC,CAAQ,EAAqB,CAAC,EAAE,OAAAC,GAAO,oBAAAC,QAAyB;AACxF,QAAA,EAAE,SAAAC,EAAQ,IAAIF,EAAM;AAEnB,SAAA;AAAA,0BACiBE,CAAO;AAAA,QAEzBD,KACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAQF;AAAA;AAEN,CAAC,GAEKE,IAAoBL,EAAOM,CAAI,EAAE,MAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAOR,GAEKC,IAAoBP,EAAOC,CAAQ,EAAE,CAAC,EAAE,OAAAC,QAAY;AAClD,QAAA,EAAE,QAAAM,EAAO,IAAIN,EAAM,QACnB,EAAE,YAAAO,EAAW,IAAIP,EAAM;AAEtB,SAAA;AAAA,eACMM,IAAS,CAAC;AAAA,gBACTA,IAAS,CAAC;AAAA,0BACAC,CAAU;AAAA;AAAA;AAAA;AAIpC,CAAC;"}
@@ -1,7 +1,11 @@
1
1
  import { PLUGINS as r } from "../../node_modules/@cuemath/analytics-v2/dist/constants.js";
2
2
  var s = /* @__PURE__ */ ((e) => (e.RESOURCE_ASSIGNED = "resource_assigned", e.RESOURCE_UNASSIGNED = "resource_unassigned", e))(s || {});
3
- r.MIXPANEL, r.MIXPANEL;
3
+ const n = {
4
+ resource_assigned: [r.MIXPANEL],
5
+ resource_unassigned: [r.MIXPANEL]
6
+ };
4
7
  export {
5
- s as SHEETS_ANALYTICS_EVENTS
8
+ s as SHEETS_ANALYTICS_EVENTS,
9
+ n as SHEETS_ANALYTICS_WHITELIST_EVENTS
6
10
  };
7
11
  //# sourceMappingURL=sheets-analytics-events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sheets-analytics-events.js","sources":["../../../src/features/sheets/sheets-analytics-events.ts"],"sourcesContent":["import { PLUGINS } from '@cuemath/analytics-v2/dist/constants';\n\nexport enum SHEETS_ANALYTICS_EVENTS {\n RESOURCE_ASSIGNED = 'resource_assigned',\n RESOURCE_UNASSIGNED = 'resource_unassigned',\n}\n\nexport const SHEETS_ANALYTICS_WHITELIST_EVENTS = {\n [SHEETS_ANALYTICS_EVENTS.RESOURCE_ASSIGNED]: [PLUGINS.MIXPANEL],\n [SHEETS_ANALYTICS_EVENTS.RESOURCE_UNASSIGNED]: [PLUGINS.MIXPANEL],\n};\n"],"names":["SHEETS_ANALYTICS_EVENTS","PLUGINS"],"mappings":";AAEY,IAAAA,sBAAAA,OACVA,EAAA,oBAAoB,qBACpBA,EAAA,sBAAsB,uBAFZA,IAAAA,KAAA,CAAA,CAAA;AAMoCC,EAAQ,UACNA,EAAQ;"}
1
+ {"version":3,"file":"sheets-analytics-events.js","sources":["../../../src/features/sheets/sheets-analytics-events.ts"],"sourcesContent":["import { PLUGINS } from '@cuemath/analytics-v2/dist/constants';\n\nexport enum SHEETS_ANALYTICS_EVENTS {\n RESOURCE_ASSIGNED = 'resource_assigned',\n RESOURCE_UNASSIGNED = 'resource_unassigned',\n}\n\nexport const SHEETS_ANALYTICS_WHITELIST_EVENTS = {\n [SHEETS_ANALYTICS_EVENTS.RESOURCE_ASSIGNED]: [PLUGINS.MIXPANEL],\n [SHEETS_ANALYTICS_EVENTS.RESOURCE_UNASSIGNED]: [PLUGINS.MIXPANEL],\n};\n"],"names":["SHEETS_ANALYTICS_EVENTS","SHEETS_ANALYTICS_WHITELIST_EVENTS","PLUGINS"],"mappings":";AAEY,IAAAA,sBAAAA,OACVA,EAAA,oBAAoB,qBACpBA,EAAA,sBAAsB,uBAFZA,IAAAA,KAAA,CAAA,CAAA;AAKL,MAAMC,IAAoC;AAAA,EAC9C,mBAA4C,CAACC,EAAQ,QAAQ;AAAA,EAC7D,qBAA8C,CAACA,EAAQ,QAAQ;AAClE;"}
@@ -1,52 +1,37 @@
1
- import { jsx as L } from "react/jsx-runtime";
2
- import w from "lottie-web";
3
- import { memo as y, forwardRef as b, useRef as c, useImperativeHandle as A, useEffect as E } from "react";
4
- import I from "../layout/flex-view.js";
5
- import { fetchLottie as $ } from "./helper.js";
6
- const x = b((p, h) => {
7
- const {
8
- src: s,
9
- width: v = "100%",
10
- height: g = "100%",
11
- settings: u,
12
- eventListener: r,
13
- onRender: i,
14
- animateOnIntersect: o
15
- } = p, n = c(null), t = c(null), a = c(null);
16
- return A(
17
- h,
1
+ import { jsx as d } from "react/jsx-runtime";
2
+ import p from "lottie-web";
3
+ import { memo as h, forwardRef as L, useRef as m, useImperativeHandle as g, useEffect as v } from "react";
4
+ import w from "../layout/flex-view.js";
5
+ import { fetchLottie as y } from "./helper.js";
6
+ const A = L((s, u) => {
7
+ const { src: i, width: l = "100%", height: f = "100%", settings: a, eventListener: t, onRender: n } = s, o = m(null), e = m(null);
8
+ return g(
9
+ u,
18
10
  () => ({
19
- playSegments: (m, e) => {
20
- t.current && t.current.playSegments(m, e);
11
+ playSegments: (c, r) => {
12
+ e.current && e.current.playSegments(c, r);
21
13
  }
22
14
  }),
23
15
  []
24
- ), E(() => ((async () => {
16
+ ), v(() => ((async () => {
25
17
  try {
26
- const e = await $(s);
27
- n.current && (t.current = w.loadAnimation({
28
- container: n.current,
29
- animationData: e,
18
+ const r = await y(i);
19
+ o.current && (e.current = p.loadAnimation({
20
+ container: o.current,
21
+ animationData: r,
30
22
  renderer: "svg",
31
23
  loop: !0,
32
24
  autoplay: !0,
33
- ...u
34
- }), o && (a.current = new IntersectionObserver(
35
- ([l]) => {
36
- var f, d;
37
- l && l.isIntersecting ? (f = t.current) == null || f.play() : (d = t.current) == null || d.pause();
38
- },
39
- { threshold: 0 }
40
- ), n.current && a.current.observe(n.current)), i == null || i(), r && t.current.addEventListener(r.name, r.callback));
41
- } catch (e) {
42
- throw Error(`Error loading Lottie animation: ${e}`);
25
+ ...a
26
+ }), n == null || n(), t && e.current.addEventListener(t.name, t.callback));
27
+ } catch (r) {
28
+ throw Error(`Error loading Lottie animation: ${r}`);
43
29
  }
44
30
  })(), () => {
45
- var e;
46
- t.current && (r && t.current.removeEventListener(r.name, r.callback), o && ((e = a.current) == null || e.disconnect()), t.current.destroy());
47
- }), [s, r, i, o, u]), /* @__PURE__ */ L(I, { ref: n, $width: v, $height: g });
48
- }), F = y(x);
31
+ e.current && (t && e.current.removeEventListener(t.name, t.callback), e.current.destroy());
32
+ }), [i, t, n, a]), /* @__PURE__ */ d(w, { ref: o, $width: l, $height: f });
33
+ }), I = h(A);
49
34
  export {
50
- F as default
35
+ I as default
51
36
  };
52
37
  //# sourceMappingURL=lottie-animation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lottie-animation.js","sources":["../../../../src/features/ui/lottie-animation/lottie-animation.tsx"],"sourcesContent":["import type { ILottieAnimationProps, ILottieAnimationRef } from './types';\nimport type { AnimationItem, AnimationSegment } from 'lottie-web';\n\nimport lottie from 'lottie-web';\nimport { forwardRef, memo, useEffect, useImperativeHandle, useRef } from 'react';\n\nimport FlexView from '../layout/flex-view';\nimport { fetchLottie } from './helper';\n\nconst LottieAnimation = forwardRef<ILottieAnimationRef, ILottieAnimationProps>((props, ref) => {\n const {\n src,\n width = '100%',\n height = '100%',\n settings,\n eventListener,\n onRender,\n animateOnIntersect,\n } = props;\n\n const container = useRef<HTMLDivElement>(null);\n const animationInstance = useRef<AnimationItem | null>(null);\n const intersectionObserver = useRef<IntersectionObserver | null>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n playSegments: (segments: AnimationSegment, forceFlag?: boolean) => {\n if (animationInstance.current) {\n animationInstance.current.playSegments(segments, forceFlag);\n }\n },\n }),\n [],\n );\n\n useEffect(() => {\n const loadAnimation = async () => {\n try {\n const animationData = await fetchLottie(src);\n\n if (container.current) {\n animationInstance.current = lottie.loadAnimation({\n container: container.current,\n animationData,\n renderer: 'svg',\n loop: true,\n autoplay: true,\n ...settings,\n });\n\n if (animateOnIntersect) {\n intersectionObserver.current = new IntersectionObserver(\n ([entry]) => {\n if (entry && entry.isIntersecting) {\n animationInstance.current?.play();\n } else {\n animationInstance.current?.pause();\n }\n },\n { threshold: 0 },\n );\n\n if (container.current) {\n intersectionObserver.current.observe(container.current);\n }\n }\n\n onRender?.();\n if (eventListener) {\n animationInstance.current.addEventListener(eventListener.name, eventListener.callback);\n }\n }\n } catch (error) {\n throw Error(`Error loading Lottie animation: ${error}`);\n }\n };\n\n loadAnimation();\n\n return () => {\n if (animationInstance.current) {\n if (eventListener) {\n animationInstance.current.removeEventListener(eventListener.name, eventListener.callback);\n }\n\n if (animateOnIntersect) {\n intersectionObserver.current?.disconnect();\n }\n animationInstance.current.destroy();\n }\n };\n }, [src, eventListener, onRender, animateOnIntersect, settings]);\n\n return <FlexView ref={container} $width={width} $height={height} />;\n});\n\nexport default memo(LottieAnimation);\n"],"names":["LottieAnimation","forwardRef","props","ref","src","width","height","settings","eventListener","onRender","animateOnIntersect","container","useRef","animationInstance","intersectionObserver","useImperativeHandle","segments","forceFlag","useEffect","animationData","fetchLottie","lottie","entry","_a","_b","error","FlexView","LottieAnimation$1","memo"],"mappings":";;;;;AASA,MAAMA,IAAkBC,EAAuD,CAACC,GAAOC,MAAQ;AACvF,QAAA;AAAA,IACJ,KAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,QAAAC,IAAS;AAAA,IACT,UAAAC;AAAA,IACA,eAAAC;AAAA,IACA,UAAAC;AAAA,IACA,oBAAAC;AAAA,EACE,IAAAR,GAEES,IAAYC,EAAuB,IAAI,GACvCC,IAAoBD,EAA6B,IAAI,GACrDE,IAAuBF,EAAoC,IAAI;AAErE,SAAAG;AAAA,IACEZ;AAAA,IACA,OAAO;AAAA,MACL,cAAc,CAACa,GAA4BC,MAAwB;AACjE,QAAIJ,EAAkB,WACFA,EAAA,QAAQ,aAAaG,GAAUC,CAAS;AAAA,MAE9D;AAAA,IAAA;AAAA,IAEF,CAAC;AAAA,EAAA,GAGHC,EAAU,QACc,YAAY;AAC5B,QAAA;AACI,YAAAC,IAAgB,MAAMC,EAAYhB,CAAG;AAE3C,MAAIO,EAAU,YACME,EAAA,UAAUQ,EAAO,cAAc;AAAA,QAC/C,WAAWV,EAAU;AAAA,QACrB,eAAAQ;AAAA,QACA,UAAU;AAAA,QACV,MAAM;AAAA,QACN,UAAU;AAAA,QACV,GAAGZ;AAAA,MAAA,CACJ,GAEGG,MACFI,EAAqB,UAAU,IAAI;AAAA,QACjC,CAAC,CAACQ,CAAK,MAAM;;AACP,UAAAA,KAASA,EAAM,kBACjBC,IAAAV,EAAkB,YAAlB,QAAAU,EAA2B,UAE3BC,IAAAX,EAAkB,YAAlB,QAAAW,EAA2B;AAAA,QAE/B;AAAA,QACA,EAAE,WAAW,EAAE;AAAA,MAAA,GAGbb,EAAU,WACSG,EAAA,QAAQ,QAAQH,EAAU,OAAO,IAI/CF,KAAA,QAAAA,KACPD,KACFK,EAAkB,QAAQ,iBAAiBL,EAAc,MAAMA,EAAc,QAAQ;AAAA,aAGlFiB,GAAO;AACR,YAAA,MAAM,mCAAmCA,CAAK,EAAE;AAAA,IACxD;AAAA,EAAA,MAKK,MAAM;;AACX,IAAIZ,EAAkB,YAChBL,KACFK,EAAkB,QAAQ,oBAAoBL,EAAc,MAAMA,EAAc,QAAQ,GAGtFE,OACFa,IAAAT,EAAqB,YAArB,QAAAS,EAA8B,eAEhCV,EAAkB,QAAQ;EAC5B,IAED,CAACT,GAAKI,GAAeC,GAAUC,GAAoBH,CAAQ,CAAC,qBAEvDmB,GAAS,EAAA,KAAKf,GAAW,QAAQN,GAAO,SAASC,EAAQ,CAAA;AACnE,CAAC,GAEcqB,IAAAC,EAAK5B,CAAe;"}
1
+ {"version":3,"file":"lottie-animation.js","sources":["../../../../src/features/ui/lottie-animation/lottie-animation.tsx"],"sourcesContent":["import type { ILottieAnimationProps, ILottieAnimationRef } from './types';\nimport type { AnimationItem, AnimationSegment } from 'lottie-web';\n\nimport lottie from 'lottie-web';\nimport { forwardRef, memo, useEffect, useImperativeHandle, useRef } from 'react';\n\nimport FlexView from '../layout/flex-view';\nimport { fetchLottie } from './helper';\n\nconst LottieAnimation = forwardRef<ILottieAnimationRef, ILottieAnimationProps>((props, ref) => {\n const { src, width = '100%', height = '100%', settings, eventListener, onRender } = props;\n\n const container = useRef<HTMLDivElement>(null);\n const animationInstance = useRef<AnimationItem | null>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n playSegments: (segments: AnimationSegment, forceFlag?: boolean) => {\n if (animationInstance.current) {\n animationInstance.current.playSegments(segments, forceFlag);\n }\n },\n }),\n [],\n );\n\n useEffect(() => {\n const loadAnimation = async () => {\n try {\n const animationData = await fetchLottie(src);\n\n if (container.current) {\n animationInstance.current = lottie.loadAnimation({\n container: container.current,\n animationData,\n renderer: 'svg',\n loop: true,\n autoplay: true,\n ...settings,\n });\n\n onRender?.();\n if (eventListener) {\n animationInstance.current.addEventListener(eventListener.name, eventListener.callback);\n }\n }\n } catch (error) {\n throw Error(`Error loading Lottie animation: ${error}`);\n }\n };\n\n loadAnimation();\n\n return () => {\n if (animationInstance.current) {\n if (eventListener) {\n animationInstance.current.removeEventListener(eventListener.name, eventListener.callback);\n }\n animationInstance.current.destroy();\n }\n };\n }, [src, eventListener, onRender, settings]);\n\n return <FlexView ref={container} $width={width} $height={height} />;\n});\n\nexport default memo(LottieAnimation);\n"],"names":["LottieAnimation","forwardRef","props","ref","src","width","height","settings","eventListener","onRender","container","useRef","animationInstance","useImperativeHandle","segments","forceFlag","useEffect","animationData","fetchLottie","lottie","error","FlexView","LottieAnimation$1","memo"],"mappings":";;;;;AASA,MAAMA,IAAkBC,EAAuD,CAACC,GAAOC,MAAQ;AACvF,QAAA,EAAE,KAAAC,GAAK,OAAAC,IAAQ,QAAQ,QAAAC,IAAS,QAAQ,UAAAC,GAAU,eAAAC,GAAe,UAAAC,EAAa,IAAAP,GAE9EQ,IAAYC,EAAuB,IAAI,GACvCC,IAAoBD,EAA6B,IAAI;AAE3D,SAAAE;AAAA,IACEV;AAAA,IACA,OAAO;AAAA,MACL,cAAc,CAACW,GAA4BC,MAAwB;AACjE,QAAIH,EAAkB,WACFA,EAAA,QAAQ,aAAaE,GAAUC,CAAS;AAAA,MAE9D;AAAA,IAAA;AAAA,IAEF,CAAC;AAAA,EAAA,GAGHC,EAAU,QACc,YAAY;AAC5B,QAAA;AACI,YAAAC,IAAgB,MAAMC,EAAYd,CAAG;AAE3C,MAAIM,EAAU,YACME,EAAA,UAAUO,EAAO,cAAc;AAAA,QAC/C,WAAWT,EAAU;AAAA,QACrB,eAAAO;AAAA,QACA,UAAU;AAAA,QACV,MAAM;AAAA,QACN,UAAU;AAAA,QACV,GAAGV;AAAA,MAAA,CACJ,GAEUE,KAAA,QAAAA,KACPD,KACFI,EAAkB,QAAQ,iBAAiBJ,EAAc,MAAMA,EAAc,QAAQ;AAAA,aAGlFY,GAAO;AACR,YAAA,MAAM,mCAAmCA,CAAK,EAAE;AAAA,IACxD;AAAA,EAAA,MAKK,MAAM;AACX,IAAIR,EAAkB,YAChBJ,KACFI,EAAkB,QAAQ,oBAAoBJ,EAAc,MAAMA,EAAc,QAAQ,GAE1FI,EAAkB,QAAQ;EAC5B,IAED,CAACR,GAAKI,GAAeC,GAAUF,CAAQ,CAAC,qBAEnCc,GAAS,EAAA,KAAKX,GAAW,QAAQL,GAAO,SAASC,EAAQ,CAAA;AACnE,CAAC,GAEcgB,IAAAC,EAAKvB,CAAe;"}
@@ -81,18 +81,18 @@ const o = (i) => ({ sizes: {
81
81
  },
82
82
  tertiary: {
83
83
  backgroundColorName: {
84
- inactive: "RED",
85
- active: "BLACK",
84
+ inactive: "WHITE",
85
+ active: "RED",
86
86
  disabled: "GREY_3"
87
87
  },
88
88
  colorName: {
89
- inactive: "WHITE",
89
+ inactive: "RED",
90
90
  active: "WHITE",
91
91
  disabled: "BLACK"
92
92
  },
93
93
  borderColorName: {
94
- inactive: "BLACK",
95
- active: "BLACK",
94
+ inactive: "RED",
95
+ active: "RED",
96
96
  disabled: "GREY_3"
97
97
  }
98
98
  },