@cuemath/leap 3.0.22-aa3 → 3.0.23-guru.0

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 (92) hide show
  1. package/dist/assets/line-icons/icons/check.js +3 -3
  2. package/dist/assets/line-icons/icons/check.js.map +1 -1
  3. package/dist/assets/line-icons/icons/lock3.js +34 -0
  4. package/dist/assets/line-icons/icons/lock3.js.map +1 -0
  5. package/dist/assets/line-icons/icons/unlock2.js +34 -0
  6. package/dist/assets/line-icons/icons/unlock2.js.map +1 -0
  7. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js +26 -22
  8. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js.map +1 -1
  9. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js +31 -55
  10. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js.map +1 -1
  11. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js +1 -1
  12. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js.map +1 -1
  13. package/dist/features/chapters-v2/chapter-details/chapter-details.js +58 -54
  14. package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -1
  15. package/dist/features/chapters-v2/comps/node-card/node-card-styled.js +1 -0
  16. package/dist/features/chapters-v2/comps/node-card/node-card-styled.js.map +1 -1
  17. package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js +128 -107
  18. package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js.map +1 -1
  19. package/dist/features/chapters-v2/constants/node-constants.js +3 -1
  20. package/dist/features/chapters-v2/constants/node-constants.js.map +1 -1
  21. package/dist/features/cue-canvas/cue-canvas-context.js +5 -8
  22. package/dist/features/cue-canvas/cue-canvas-context.js.map +1 -1
  23. package/dist/features/cue-canvas/cue-canvas-core.js +47 -51
  24. package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
  25. package/dist/features/cue-canvas/cue-canvas-helpers.js +25 -31
  26. package/dist/features/cue-canvas/cue-canvas-helpers.js.map +1 -1
  27. package/dist/features/cue-canvas/cue-canvas-provider.js +12 -14
  28. package/dist/features/cue-canvas/cue-canvas-provider.js.map +1 -1
  29. package/dist/features/cue-canvas/cue-canvas.js +59 -61
  30. package/dist/features/cue-canvas/cue-canvas.js.map +1 -1
  31. package/dist/features/cue-canvas/cue-cavas-styled.js +42 -45
  32. package/dist/features/cue-canvas/cue-cavas-styled.js.map +1 -1
  33. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +46 -50
  34. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
  35. package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js +14 -18
  36. package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js.map +1 -1
  37. package/dist/features/ui/stepper/stepper.js +7 -7
  38. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js +19 -22
  39. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js.map +1 -1
  40. package/dist/index.d.ts +7 -36
  41. package/dist/index.js +357 -357
  42. package/package.json +1 -1
  43. package/dist/assets/line-icons/icons/puzzle-icon.js +0 -51
  44. package/dist/assets/line-icons/icons/puzzle-icon.js.map +0 -1
  45. package/dist/assets/line-icons/icons/share.js +0 -48
  46. package/dist/assets/line-icons/icons/share.js.map +0 -1
  47. package/dist/assets/line-icons/icons/tile.js +0 -54
  48. package/dist/assets/line-icons/icons/tile.js.map +0 -1
  49. package/dist/features/cue-canvas/bottombar/homework-controls.js +0 -73
  50. package/dist/features/cue-canvas/bottombar/homework-controls.js.map +0 -1
  51. package/dist/features/cue-canvas/hooks/use-upload-helper.js +0 -23
  52. package/dist/features/cue-canvas/hooks/use-upload-helper.js.map +0 -1
  53. package/dist/features/cue-canvas/sidebar/homework/helper.js +0 -20
  54. package/dist/features/cue-canvas/sidebar/homework/helper.js.map +0 -1
  55. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js +0 -33
  56. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js.map +0 -1
  57. package/dist/features/cue-canvas/sidebar/homework/homework-request.js +0 -61
  58. package/dist/features/cue-canvas/sidebar/homework/homework-request.js.map +0 -1
  59. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js +0 -25
  60. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js.map +0 -1
  61. package/dist/features/cue-canvas/sidebar/homework/homework.js +0 -39
  62. package/dist/features/cue-canvas/sidebar/homework/homework.js.map +0 -1
  63. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js +0 -13
  64. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js.map +0 -1
  65. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js +0 -60
  66. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js.map +0 -1
  67. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js +0 -44
  68. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js.map +0 -1
  69. package/dist/features/cue-canvas/sidebar/puzzles/filters.js +0 -107
  70. package/dist/features/cue-canvas/sidebar/puzzles/filters.js.map +0 -1
  71. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js +0 -42
  72. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js.map +0 -1
  73. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js +0 -84
  74. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js.map +0 -1
  75. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js +0 -36
  76. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js.map +0 -1
  77. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js +0 -133
  78. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js.map +0 -1
  79. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js +0 -96
  80. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js.map +0 -1
  81. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js +0 -29
  82. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js.map +0 -1
  83. package/dist/features/cue-canvas/sidebar/puzzles/utils.js +0 -120
  84. package/dist/features/cue-canvas/sidebar/puzzles/utils.js.map +0 -1
  85. package/dist/features/cue-canvas/sidebar/sidebar-styled.js +0 -32
  86. package/dist/features/cue-canvas/sidebar/sidebar-styled.js.map +0 -1
  87. package/dist/features/cue-canvas/sidebar/sidebar.js +0 -29
  88. package/dist/features/cue-canvas/sidebar/sidebar.js.map +0 -1
  89. package/dist/features/cue-canvas/sidebar/tiles/tile.js +0 -16
  90. package/dist/features/cue-canvas/sidebar/tiles/tile.js.map +0 -1
  91. package/dist/features/hooks/use-debounce.js +0 -16
  92. package/dist/features/hooks/use-debounce.js.map +0 -1
@@ -1,67 +1,69 @@
1
- import { jsxs as m, jsx as r, Fragment as S } from "react/jsx-runtime";
2
- import { memo as b, useCallback as N, useEffect as p } from "react";
3
- import { ILLUSTRATIONS as _ } from "../../../assets/illustrations/illustrations.js";
4
- import v from "../../../assets/line-icons/icons/back2.js";
5
- import { useJourney as D } from "../../journey/use-journey/use-journey.js";
6
- import E from "../../ui/buttons/button/button.js";
7
- import L from "../../ui/buttons/icon-button/icon-button.js";
8
- import P from "../../ui/layout/flex-view.js";
9
- import T from "../../ui/loader/app-loader/app-loader.js";
10
- import j from "../../ui/text/text.js";
11
- import { useGetChapterDetails as H } from "../api/chapter.js";
12
- import J from "./block-sections/block-sections.js";
13
- import F from "./chapter-banner/chapter-banner.js";
14
- import { ContentWrapper as O, BackButtonContainer as U, BackButtonWrapper as W, LoaderWrapper as X } from "./chapter-details-styled.js";
15
- const z = b((f) => {
1
+ import { jsxs as m, jsx as r, Fragment as b } from "react/jsx-runtime";
2
+ import { memo as _, useCallback as v, useEffect as c } from "react";
3
+ import { ILLUSTRATIONS as D } from "../../../assets/illustrations/illustrations.js";
4
+ import E from "../../../assets/line-icons/icons/back2.js";
5
+ import { useJourney as L } from "../../journey/use-journey/use-journey.js";
6
+ import P from "../../ui/buttons/button/button.js";
7
+ import T from "../../ui/buttons/icon-button/icon-button.js";
8
+ import U from "../../ui/layout/flex-view.js";
9
+ import j from "../../ui/loader/app-loader/app-loader.js";
10
+ import H from "../../ui/text/text.js";
11
+ import { useGetChapterDetails as J } from "../api/chapter.js";
12
+ import F from "./block-sections/block-sections.js";
13
+ import O from "./chapter-banner/chapter-banner.js";
14
+ import { ContentWrapper as W, BackButtonContainer as X, BackButtonWrapper as z, LoaderWrapper as G } from "./chapter-details-styled.js";
15
+ const V = _((f) => {
16
16
  const {
17
17
  userChapterId: n,
18
18
  studentId: i,
19
19
  userType: a,
20
20
  onBlockSkipUnskip: g,
21
21
  onNodeAttempt: u,
22
- onNodeAssignAsHomework: C,
23
- onNodeMarkAsDone: k,
22
+ onNodeAssignAsHomework: k,
23
+ onNodeMarkAsDone: C,
24
24
  onNodeReattempt: y,
25
25
  onNodeReview: A,
26
26
  onNodeView: B,
27
27
  onExit: $,
28
+ onNodeUnassign: x,
29
+ onNodeUnlock: I,
28
30
  startChapterPageJourney: s,
29
- chapterPageRef: x,
30
- bannerRef: I,
31
- coreBlocksRef: w,
32
- canStartJourney: c
33
- } = f, { isJourneyActive: l } = D(), {
34
- get: h,
31
+ chapterPageRef: N,
32
+ bannerRef: w,
33
+ coreBlocksRef: R,
34
+ canStartJourney: l
35
+ } = f, { isJourneyActive: p } = L(), {
36
+ get: d,
35
37
  data: e,
36
38
  isProcessing: t,
37
- isProcessingFailed: R,
38
- isStale: d
39
- } = H(), o = N(() => {
40
- h(n, void 0, { studentId: i });
41
- }, [h, n, i]);
42
- return p(() => {
39
+ isProcessingFailed: S,
40
+ isStale: h
41
+ } = J(), o = v(() => {
42
+ d(n, void 0, { studentId: i });
43
+ }, [d, n, i]);
44
+ return c(() => {
43
45
  o();
44
- }, [o]), p(() => {
45
- e && c && !l && s && s({
46
+ }, [o]), c(() => {
47
+ e && l && !p && s && s({
46
48
  chapterDetails: e,
47
49
  userChapterId: n,
48
50
  studentId: i,
49
51
  userType: a
50
52
  });
51
53
  }, [
52
- c,
53
- e,
54
54
  l,
55
+ e,
56
+ p,
55
57
  s,
56
58
  i,
57
59
  n,
58
60
  a
59
- ]), p(() => {
60
- !t && d && o();
61
- }, [o, t, d]), R ? /* @__PURE__ */ m(P, { $flexGapX: 1.5, $height: "100vh", $justifyContent: "center", $alignItems: "center", children: [
62
- /* @__PURE__ */ r(j, { $renderAs: "h6", children: "Oops! Something went wrong. Please try again later." }),
61
+ ]), c(() => {
62
+ !t && h && o();
63
+ }, [o, t, h]), S ? /* @__PURE__ */ m(U, { $flexGapX: 1.5, $height: "100vh", $justifyContent: "center", $alignItems: "center", children: [
64
+ /* @__PURE__ */ r(H, { $renderAs: "h6", children: "Oops! Something went wrong. Please try again later." }),
63
65
  /* @__PURE__ */ r(
64
- E,
66
+ P,
65
67
  {
66
68
  widthX: 14,
67
69
  size: "small",
@@ -71,59 +73,61 @@ const z = b((f) => {
71
73
  onClick: o
72
74
  }
73
75
  )
74
- ] }) : !e && t ? /* @__PURE__ */ r(T, { height: "80vh" }) : /* @__PURE__ */ m(
75
- O,
76
+ ] }) : !e && t ? /* @__PURE__ */ r(j, { height: "80vh" }) : /* @__PURE__ */ m(
77
+ W,
76
78
  {
77
- ref: x,
79
+ ref: N,
78
80
  $widthX: 50,
79
81
  $disablePointerEvents: t,
80
82
  $justifyContent: "center",
81
83
  $alignItems: "center",
82
84
  children: [
83
- a === "TEACHER" && /* @__PURE__ */ r(U, { $height: "100%", children: /* @__PURE__ */ r(W, { children: /* @__PURE__ */ r(
84
- L,
85
+ a === "TEACHER" && /* @__PURE__ */ r(X, { $height: "100%", children: /* @__PURE__ */ r(z, { children: /* @__PURE__ */ r(
86
+ T,
85
87
  {
86
- Icon: v,
88
+ Icon: E,
87
89
  renderAs: "secondary-gray",
88
90
  analyticsLabel: "chapter_page_exit",
89
91
  size: "xsmall",
90
92
  onClick: $
91
93
  }
92
94
  ) }) }),
93
- t && /* @__PURE__ */ r(X, { children: /* @__PURE__ */ r("img", { src: _.LOADER_1, alt: "loader" }) }),
94
- e && /* @__PURE__ */ m(S, { children: [
95
+ t && /* @__PURE__ */ r(G, { children: /* @__PURE__ */ r("img", { src: D.LOADER_1, alt: "loader" }) }),
96
+ e && /* @__PURE__ */ m(b, { children: [
95
97
  /* @__PURE__ */ r(
96
- F,
98
+ O,
97
99
  {
98
100
  title: e.name,
99
101
  imageHue: e.image_hue,
100
102
  imageUrl: e.image_url,
101
103
  progressStats: e == null ? void 0 : e.progress_stat,
102
- bannerRef: I
104
+ bannerRef: w
103
105
  }
104
106
  ),
105
107
  /* @__PURE__ */ r(
106
- J,
108
+ F,
107
109
  {
108
110
  imageHue: e.image_hue,
109
111
  userType: a,
110
112
  blocks: e.blocks,
111
113
  onBlockSkipUnskip: g,
112
114
  onNodeAttempt: u,
113
- onNodeAssignAsHomework: C,
114
- onNodeMarkAsDone: k,
115
+ onNodeAssignAsHomework: k,
116
+ onNodeMarkAsDone: C,
115
117
  onNodeReattempt: y,
116
118
  onNodeReview: A,
117
119
  onNodeView: B,
118
- coreBlocksRef: w
120
+ coreBlocksRef: R,
121
+ onNodeUnassign: x,
122
+ onNodeUnlock: I
119
123
  }
120
124
  )
121
125
  ] })
122
126
  ]
123
127
  }
124
128
  );
125
- }), ae = z;
129
+ }), me = V;
126
130
  export {
127
- ae as default
131
+ me as default
128
132
  };
129
133
  //# sourceMappingURL=chapter-details.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chapter-details.js","sources":["../../../../src/features/chapters-v2/chapter-details/chapter-details.tsx"],"sourcesContent":["import type { IChapterDetails } from './chapter-details-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\nimport Back2Icon from '../../../assets/line-icons/icons/back2';\nimport { useJourney } from '../../journey/use-journey/use-journey';\nimport Button from '../../ui/buttons/button/button';\nimport IconButton from '../../ui/buttons/icon-button/icon-button';\nimport FlexView from '../../ui/layout/flex-view';\nimport AppLoader from '../../ui/loader/app-loader/app-loader';\nimport Text from '../../ui/text/text';\nimport { useGetChapterDetails } from '../api/chapter';\nimport BlockSections from './block-sections/block-sections';\nimport ChapterBanner from './chapter-banner/chapter-banner';\nimport * as Styled from './chapter-details-styled';\n\nconst ChapterDetails: FC<IChapterDetails> = memo(props => {\n const {\n userChapterId,\n studentId,\n userType,\n onBlockSkipUnskip,\n onNodeAttempt,\n onNodeAssignAsHomework,\n onNodeMarkAsDone,\n onNodeReattempt,\n onNodeReview,\n onNodeView,\n onExit,\n startChapterPageJourney,\n chapterPageRef,\n bannerRef,\n coreBlocksRef,\n canStartJourney,\n } = props;\n const { isJourneyActive } = useJourney();\n const {\n get: getChapterDetails,\n data: chapterDetails,\n isProcessing,\n isProcessingFailed,\n isStale,\n } = useGetChapterDetails();\n\n const fetchChapterDetails = useCallback(() => {\n getChapterDetails(userChapterId, undefined, { studentId });\n }, [getChapterDetails, userChapterId, studentId]);\n\n useEffect(() => {\n fetchChapterDetails();\n }, [fetchChapterDetails]);\n\n useEffect(() => {\n if (chapterDetails && canStartJourney && !isJourneyActive && startChapterPageJourney) {\n startChapterPageJourney({\n chapterDetails: chapterDetails,\n userChapterId,\n studentId,\n userType,\n });\n }\n }, [\n canStartJourney,\n chapterDetails,\n isJourneyActive,\n startChapterPageJourney,\n studentId,\n userChapterId,\n userType,\n ]);\n\n useEffect(() => {\n if (!isProcessing && isStale) {\n fetchChapterDetails();\n }\n }, [fetchChapterDetails, isProcessing, isStale]);\n\n if (isProcessingFailed) {\n return (\n <FlexView $flexGapX={1.5} $height=\"100vh\" $justifyContent=\"center\" $alignItems=\"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={fetchChapterDetails}\n />\n </FlexView>\n );\n }\n\n if (!chapterDetails && isProcessing) {\n return <AppLoader height=\"80vh\" />;\n }\n\n return (\n <Styled.ContentWrapper\n ref={chapterPageRef}\n $widthX={50}\n $disablePointerEvents={isProcessing}\n $justifyContent=\"center\"\n $alignItems=\"center\"\n >\n {userType === 'TEACHER' && (\n <Styled.BackButtonContainer $height=\"100%\">\n <Styled.BackButtonWrapper>\n <IconButton\n Icon={Back2Icon}\n renderAs=\"secondary-gray\"\n analyticsLabel=\"chapter_page_exit\"\n size=\"xsmall\"\n onClick={onExit}\n />\n </Styled.BackButtonWrapper>\n </Styled.BackButtonContainer>\n )}\n\n {isProcessing && (\n <Styled.LoaderWrapper>\n <img src={ILLUSTRATIONS.LOADER_1} alt=\"loader\" />\n </Styled.LoaderWrapper>\n )}\n\n {chapterDetails && (\n <>\n <ChapterBanner\n title={chapterDetails.name}\n imageHue={chapterDetails.image_hue}\n imageUrl={chapterDetails.image_url}\n progressStats={chapterDetails?.progress_stat}\n bannerRef={bannerRef}\n />\n <BlockSections\n imageHue={chapterDetails.image_hue}\n userType={userType}\n blocks={chapterDetails.blocks}\n onBlockSkipUnskip={onBlockSkipUnskip}\n onNodeAttempt={onNodeAttempt}\n onNodeAssignAsHomework={onNodeAssignAsHomework}\n onNodeMarkAsDone={onNodeMarkAsDone}\n onNodeReattempt={onNodeReattempt}\n onNodeReview={onNodeReview}\n onNodeView={onNodeView}\n coreBlocksRef={coreBlocksRef}\n />\n </>\n )}\n </Styled.ContentWrapper>\n );\n});\n\nexport default ChapterDetails;\n"],"names":["ChapterDetails","memo","props","userChapterId","studentId","userType","onBlockSkipUnskip","onNodeAttempt","onNodeAssignAsHomework","onNodeMarkAsDone","onNodeReattempt","onNodeReview","onNodeView","onExit","startChapterPageJourney","chapterPageRef","bannerRef","coreBlocksRef","canStartJourney","isJourneyActive","useJourney","getChapterDetails","chapterDetails","isProcessing","isProcessingFailed","isStale","useGetChapterDetails","fetchChapterDetails","useCallback","useEffect","jsxs","FlexView","jsx","Text","Button","AppLoader","Styled.ContentWrapper","Styled.BackButtonContainer","Styled.BackButtonWrapper","IconButton","Back2Icon","Styled.LoaderWrapper","ILLUSTRATIONS","Fragment","ChapterBanner","BlockSections","ChapterDetails$1"],"mappings":"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"}
1
+ {"version":3,"file":"chapter-details.js","sources":["../../../../src/features/chapters-v2/chapter-details/chapter-details.tsx"],"sourcesContent":["import type { IChapterDetails } from './chapter-details-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\nimport Back2Icon from '../../../assets/line-icons/icons/back2';\nimport { useJourney } from '../../journey/use-journey/use-journey';\nimport Button from '../../ui/buttons/button/button';\nimport IconButton from '../../ui/buttons/icon-button/icon-button';\nimport FlexView from '../../ui/layout/flex-view';\nimport AppLoader from '../../ui/loader/app-loader/app-loader';\nimport Text from '../../ui/text/text';\nimport { useGetChapterDetails } from '../api/chapter';\nimport BlockSections from './block-sections/block-sections';\nimport ChapterBanner from './chapter-banner/chapter-banner';\nimport * as Styled from './chapter-details-styled';\n\nconst ChapterDetails: FC<IChapterDetails> = memo(props => {\n const {\n userChapterId,\n studentId,\n userType,\n onBlockSkipUnskip,\n onNodeAttempt,\n onNodeAssignAsHomework,\n onNodeMarkAsDone,\n onNodeReattempt,\n onNodeReview,\n onNodeView,\n onExit,\n onNodeUnassign,\n onNodeUnlock,\n startChapterPageJourney,\n chapterPageRef,\n bannerRef,\n coreBlocksRef,\n canStartJourney,\n } = props;\n const { isJourneyActive } = useJourney();\n const {\n get: getChapterDetails,\n data: chapterDetails,\n isProcessing,\n isProcessingFailed,\n isStale,\n } = useGetChapterDetails();\n\n const fetchChapterDetails = useCallback(() => {\n getChapterDetails(userChapterId, undefined, { studentId });\n }, [getChapterDetails, userChapterId, studentId]);\n\n useEffect(() => {\n fetchChapterDetails();\n }, [fetchChapterDetails]);\n\n useEffect(() => {\n if (chapterDetails && canStartJourney && !isJourneyActive && startChapterPageJourney) {\n startChapterPageJourney({\n chapterDetails: chapterDetails,\n userChapterId,\n studentId,\n userType,\n });\n }\n }, [\n canStartJourney,\n chapterDetails,\n isJourneyActive,\n startChapterPageJourney,\n studentId,\n userChapterId,\n userType,\n ]);\n\n useEffect(() => {\n if (!isProcessing && isStale) {\n fetchChapterDetails();\n }\n }, [fetchChapterDetails, isProcessing, isStale]);\n\n if (isProcessingFailed) {\n return (\n <FlexView $flexGapX={1.5} $height=\"100vh\" $justifyContent=\"center\" $alignItems=\"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={fetchChapterDetails}\n />\n </FlexView>\n );\n }\n\n if (!chapterDetails && isProcessing) {\n return <AppLoader height=\"80vh\" />;\n }\n\n return (\n <Styled.ContentWrapper\n ref={chapterPageRef}\n $widthX={50}\n $disablePointerEvents={isProcessing}\n $justifyContent=\"center\"\n $alignItems=\"center\"\n >\n {userType === 'TEACHER' && (\n <Styled.BackButtonContainer $height=\"100%\">\n <Styled.BackButtonWrapper>\n <IconButton\n Icon={Back2Icon}\n renderAs=\"secondary-gray\"\n analyticsLabel=\"chapter_page_exit\"\n size=\"xsmall\"\n onClick={onExit}\n />\n </Styled.BackButtonWrapper>\n </Styled.BackButtonContainer>\n )}\n\n {isProcessing && (\n <Styled.LoaderWrapper>\n <img src={ILLUSTRATIONS.LOADER_1} alt=\"loader\" />\n </Styled.LoaderWrapper>\n )}\n\n {chapterDetails && (\n <>\n <ChapterBanner\n title={chapterDetails.name}\n imageHue={chapterDetails.image_hue}\n imageUrl={chapterDetails.image_url}\n progressStats={chapterDetails?.progress_stat}\n bannerRef={bannerRef}\n />\n <BlockSections\n imageHue={chapterDetails.image_hue}\n userType={userType}\n blocks={chapterDetails.blocks}\n onBlockSkipUnskip={onBlockSkipUnskip}\n onNodeAttempt={onNodeAttempt}\n onNodeAssignAsHomework={onNodeAssignAsHomework}\n onNodeMarkAsDone={onNodeMarkAsDone}\n onNodeReattempt={onNodeReattempt}\n onNodeReview={onNodeReview}\n onNodeView={onNodeView}\n coreBlocksRef={coreBlocksRef}\n onNodeUnassign={onNodeUnassign}\n onNodeUnlock={onNodeUnlock}\n />\n </>\n )}\n </Styled.ContentWrapper>\n );\n});\n\nexport default ChapterDetails;\n"],"names":["ChapterDetails","memo","props","userChapterId","studentId","userType","onBlockSkipUnskip","onNodeAttempt","onNodeAssignAsHomework","onNodeMarkAsDone","onNodeReattempt","onNodeReview","onNodeView","onExit","onNodeUnassign","onNodeUnlock","startChapterPageJourney","chapterPageRef","bannerRef","coreBlocksRef","canStartJourney","isJourneyActive","useJourney","getChapterDetails","chapterDetails","isProcessing","isProcessingFailed","isStale","useGetChapterDetails","fetchChapterDetails","useCallback","useEffect","jsxs","FlexView","jsx","Text","Button","AppLoader","Styled.ContentWrapper","Styled.BackButtonContainer","Styled.BackButtonWrapper","IconButton","Back2Icon","Styled.LoaderWrapper","ILLUSTRATIONS","Fragment","ChapterBanner","BlockSections","ChapterDetails$1"],"mappings":"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"}
@@ -86,6 +86,7 @@ const W = t(e)(({
86
86
  overflow: hidden;
87
87
  `), k = t(e)(({ theme: o }) => `
88
88
  cursor: pointer;
89
+ padding: 4px;
89
90
 
90
91
  &:hover {
91
92
  border-radius: 50%;
@@ -1 +1 @@
1
- {"version":3,"file":"node-card-styled.js","sources":["../../../../../src/features/chapters-v2/comps/node-card/node-card-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport ImportantIcon from '../../../../assets/line-icons/icons/important';\nimport Lock2Icon from '../../../../assets/line-icons/icons/lock2';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\n\ninterface INodeCardContainer {\n $disabled: boolean;\n $isSheetLocked?: boolean;\n}\n\nconst NodeCardContainer = styled(FlexView)<INodeCardContainer>(({ theme, $disabled }) => {\n const { BLACK, BLACK_T_15, WHITE_5 } = theme.colors;\n\n return `\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n position: relative;\n border-image: linear-gradient(to right, ${BLACK_T_15} 0%, ${BLACK_T_15} 100%);\n outline: 1px solid ${WHITE_5};\n\n .node-card-border {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 2;\n width: 100%;\n height: 100%;\n pointer-events: none;\n background: transparent;\n }\n\n &:hover {\n ${\n !$disabled &&\n `\n outline: 1px solid ${BLACK};\n `\n } \n }\n `;\n});\n\nconst StyledImportantIcon = styled(ImportantIcon)(({ theme }) => {\n const { layout } = theme;\n\n return `\n width: ${layout.gutter * 0.75}px;\n height: ${layout.gutter * 0.75}px;\n position: absolute;\n top: -2.5px;\n right: -2.5px;\n `;\n});\n\ninterface INodeCardInfoWrapper {\n $bgImage: string;\n}\n\nconst NodeCardInfoWrapper = styled(FlexView)<INodeCardInfoWrapper>(({ $bgImage }) => {\n return `\n background-image: url(${$bgImage});\n\n & .context-menu {\n justify-self: flex-end;\n margin-left: auto;\n }\n `;\n});\n\nconst IconWrapper = styled(FlexView)`\n border-radius: 50%;\n`;\n\nconst NodeCardContentWrapper = styled(FlexView)(() => {\n return `\n position: relative;\n padding: 12px 8px 12px 12px;\n `;\n});\n\ninterface ISheetTagWrapper {\n $top?: number;\n $right?: number;\n}\n\nconst SheetTagWrapper = styled(FlexView)<ISheetTagWrapper>(({ $top, $right }) => {\n return `\n position: absolute;\n top: ${$top ?? 0}px;\n right: ${$right ?? 0}px;\n z-index: 3;\n`;\n});\n\nconst StyledLockIcon = styled(Lock2Icon)(({}) => {\n return `\n width: 28px;\n height: 28px;\n `;\n});\n\nconst InProgressIconWrapper = styled(FlexView)<{ $paddingRight: number; $paddingLeft: number }>(({\n theme,\n $paddingRight,\n $paddingLeft,\n}) => {\n const { BLACK_1, WHITE_1 } = theme.colors;\n\n return `\n position: absolute;\n top: -10px;\n right: -10px;\n padding: 0px;\n padding-left: ${$paddingLeft}px;\n padding-right: ${$paddingRight}px;\n background: ${BLACK_1};\n\n path {\n fill: ${WHITE_1};\n }\n `;\n});\n\nconst NodeCardTitle = 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 NodeKebabMenuWrapper = styled(FlexView)(({ theme }) => {\n return `\n cursor: pointer;\n \n &:hover {\n border-radius: 50%;\n background: ${theme.colors.WHITE_5}; \n }\n `;\n});\n\ninterface INodeOptionsMenuWrapper {\n $visible: boolean;\n}\n\nconst NodeMenuOptionsWrapper = styled(FlexView)<INodeOptionsMenuWrapper>(({ theme, $visible }) => {\n return `\n cursor: pointer;\n\n position: absolute;\n z-index: 6;\n top: calc(100% + 4px);\n left: 0;\n\n transform-origin: top;\n transform: scaleY(${$visible ? 1 : 0});\n opacity: ${$visible ? 1 : 0};\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n \n &:hover {\n border-radius: 50%;\n background: ${theme.colors.WHITE_5}; \n }\n `;\n});\n\nexport {\n NodeCardContainer,\n StyledImportantIcon,\n NodeCardInfoWrapper,\n IconWrapper,\n NodeCardContentWrapper,\n SheetTagWrapper,\n StyledLockIcon,\n InProgressIconWrapper,\n NodeCardTitle,\n NodeKebabMenuWrapper,\n NodeMenuOptionsWrapper,\n};\n"],"names":["NodeCardContainer","styled","FlexView","theme","$disabled","BLACK","BLACK_T_15","WHITE_5","StyledImportantIcon","ImportantIcon","layout","NodeCardInfoWrapper","$bgImage","IconWrapper","NodeCardContentWrapper","SheetTagWrapper","$top","$right","Lock2Icon","InProgressIconWrapper","$paddingRight","$paddingLeft","BLACK_1","WHITE_1","NodeCardTitle","Text","NodeKebabMenuWrapper","NodeMenuOptionsWrapper","$visible"],"mappings":";;;;;AAYM,MAAAA,IAAoBC,EAAOC,CAAQ,EAAsB,CAAC,EAAE,OAAAC,GAAO,WAAAC,QAAgB;AACvF,QAAM,EAAE,OAAAC,GAAO,YAAAC,GAAY,SAAAC,EAAA,IAAYJ,EAAM;AAEtC,SAAA;AAAA,cACKC,IAAY,gBAAgB,SAAS;AAAA;AAAA,8CAELE,CAAU,QAAQA,CAAU;AAAA,yBACjDC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAexB,CAACH,KACD;AAAA,+BACuBC,CAAK;AAAA,SAE9B;AAAA;AAAA;AAGN,CAAC,GAEKG,IAAsBP,EAAOQ,CAAa,EAAE,CAAC,EAAE,OAAAN,QAAY;AACzD,QAAA,EAAE,QAAAO,EAAW,IAAAP;AAEZ,SAAA;AAAA,aACIO,EAAO,SAAS,IAAI;AAAA,cACnBA,EAAO,SAAS,IAAI;AAAA;AAAA;AAAA;AAAA;AAKlC,CAAC,GAMKC,IAAsBV,EAAOC,CAAQ,EAAwB,CAAC,EAAE,UAAAU,QAC7D;AAAA,4BACmBA,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAOnC,GAEKC,IAAcZ,EAAOC,CAAQ;AAAA;AAAA,GAI7BY,IAAyBb,EAAOC,CAAQ,EAAE,MACvC;AAAA;AAAA;AAAA,GAIR,GAOKa,IAAkBd,EAAOC,CAAQ,EAAoB,CAAC,EAAE,MAAAc,GAAM,QAAAC,QAC3D;AAAA;AAAA,SAEAD,KAAQ,CAAC;AAAA,WACPC,KAAU,CAAC;AAAA;AAAA,CAGrB;AAEsBhB,EAAOiB,CAAS,EAAE,CAAC,OACjC;AAAA;AAAA;AAAA,GAIR;AAED,MAAMC,IAAwBlB,EAAOC,CAAQ,EAAmD,CAAC;AAAA,EAC/F,OAAAC;AAAA,EACA,eAAAiB;AAAA,EACA,cAAAC;AACF,MAAM;AACJ,QAAM,EAAE,SAAAC,GAAS,SAAAC,MAAYpB,EAAM;AAE5B,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKWkB,CAAY;AAAA,qBACXD,CAAa;AAAA,kBAChBE,CAAO;AAAA;AAAA;AAAA,cAGXC,CAAO;AAAA;AAAA;AAGrB,CAAC,GAEKC,IAAgBvB,EAAOwB,CAAI,EAAE,MAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAOR,GAEKC,IAAuBzB,EAAOC,CAAQ,EAAE,CAAC,EAAE,OAAAC,QACxC;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKWA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC,GAMKwB,IAAyB1B,EAAOC,CAAQ,EAA2B,CAAC,EAAE,OAAAC,GAAO,UAAAyB,QAC1E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBASeA,IAAW,IAAI,CAAC;AAAA,eACzBA,IAAW,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKXzB,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC;"}
1
+ {"version":3,"file":"node-card-styled.js","sources":["../../../../../src/features/chapters-v2/comps/node-card/node-card-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport ImportantIcon from '../../../../assets/line-icons/icons/important';\nimport Lock2Icon from '../../../../assets/line-icons/icons/lock2';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\n\ninterface INodeCardContainer {\n $disabled: boolean;\n $isSheetLocked?: boolean;\n}\n\nconst NodeCardContainer = styled(FlexView)<INodeCardContainer>(({ theme, $disabled }) => {\n const { BLACK, BLACK_T_15, WHITE_5 } = theme.colors;\n\n return `\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n position: relative;\n border-image: linear-gradient(to right, ${BLACK_T_15} 0%, ${BLACK_T_15} 100%);\n outline: 1px solid ${WHITE_5};\n\n .node-card-border {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 2;\n width: 100%;\n height: 100%;\n pointer-events: none;\n background: transparent;\n }\n\n &:hover {\n ${\n !$disabled &&\n `\n outline: 1px solid ${BLACK};\n `\n } \n }\n `;\n});\n\nconst StyledImportantIcon = styled(ImportantIcon)(({ theme }) => {\n const { layout } = theme;\n\n return `\n width: ${layout.gutter * 0.75}px;\n height: ${layout.gutter * 0.75}px;\n position: absolute;\n top: -2.5px;\n right: -2.5px;\n `;\n});\n\ninterface INodeCardInfoWrapper {\n $bgImage: string;\n}\n\nconst NodeCardInfoWrapper = styled(FlexView)<INodeCardInfoWrapper>(({ $bgImage }) => {\n return `\n background-image: url(${$bgImage});\n\n & .context-menu {\n justify-self: flex-end;\n margin-left: auto;\n }\n `;\n});\n\nconst IconWrapper = styled(FlexView)`\n border-radius: 50%;\n`;\n\nconst NodeCardContentWrapper = styled(FlexView)(() => {\n return `\n position: relative;\n padding: 12px 8px 12px 12px;\n `;\n});\n\ninterface ISheetTagWrapper {\n $top?: number;\n $right?: number;\n}\n\nconst SheetTagWrapper = styled(FlexView)<ISheetTagWrapper>(({ $top, $right }) => {\n return `\n position: absolute;\n top: ${$top ?? 0}px;\n right: ${$right ?? 0}px;\n z-index: 3;\n`;\n});\n\nconst StyledLockIcon = styled(Lock2Icon)(({}) => {\n return `\n width: 28px;\n height: 28px;\n `;\n});\n\nconst InProgressIconWrapper = styled(FlexView)<{ $paddingRight: number; $paddingLeft: number }>(({\n theme,\n $paddingRight,\n $paddingLeft,\n}) => {\n const { BLACK_1, WHITE_1 } = theme.colors;\n\n return `\n position: absolute;\n top: -10px;\n right: -10px;\n padding: 0px;\n padding-left: ${$paddingLeft}px;\n padding-right: ${$paddingRight}px;\n background: ${BLACK_1};\n\n path {\n fill: ${WHITE_1};\n }\n `;\n});\n\nconst NodeCardTitle = 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 NodeKebabMenuWrapper = styled(FlexView)(({ theme }) => {\n return `\n cursor: pointer;\n padding: 4px;\n \n &:hover {\n border-radius: 50%;\n background: ${theme.colors.WHITE_5}; \n }\n `;\n});\n\ninterface INodeOptionsMenuWrapper {\n $visible: boolean;\n}\n\nconst NodeMenuOptionsWrapper = styled(FlexView)<INodeOptionsMenuWrapper>(({ theme, $visible }) => {\n return `\n cursor: pointer;\n\n position: absolute;\n z-index: 6;\n top: calc(100% + 4px);\n left: 0;\n\n transform-origin: top;\n transform: scaleY(${$visible ? 1 : 0});\n opacity: ${$visible ? 1 : 0};\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n \n &:hover {\n border-radius: 50%;\n background: ${theme.colors.WHITE_5}; \n }\n `;\n});\n\nexport {\n NodeCardContainer,\n StyledImportantIcon,\n NodeCardInfoWrapper,\n IconWrapper,\n NodeCardContentWrapper,\n SheetTagWrapper,\n StyledLockIcon,\n InProgressIconWrapper,\n NodeCardTitle,\n NodeKebabMenuWrapper,\n NodeMenuOptionsWrapper,\n};\n"],"names":["NodeCardContainer","styled","FlexView","theme","$disabled","BLACK","BLACK_T_15","WHITE_5","StyledImportantIcon","ImportantIcon","layout","NodeCardInfoWrapper","$bgImage","IconWrapper","NodeCardContentWrapper","SheetTagWrapper","$top","$right","Lock2Icon","InProgressIconWrapper","$paddingRight","$paddingLeft","BLACK_1","WHITE_1","NodeCardTitle","Text","NodeKebabMenuWrapper","NodeMenuOptionsWrapper","$visible"],"mappings":";;;;;AAYM,MAAAA,IAAoBC,EAAOC,CAAQ,EAAsB,CAAC,EAAE,OAAAC,GAAO,WAAAC,QAAgB;AACvF,QAAM,EAAE,OAAAC,GAAO,YAAAC,GAAY,SAAAC,EAAA,IAAYJ,EAAM;AAEtC,SAAA;AAAA,cACKC,IAAY,gBAAgB,SAAS;AAAA;AAAA,8CAELE,CAAU,QAAQA,CAAU;AAAA,yBACjDC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAexB,CAACH,KACD;AAAA,+BACuBC,CAAK;AAAA,SAE9B;AAAA;AAAA;AAGN,CAAC,GAEKG,IAAsBP,EAAOQ,CAAa,EAAE,CAAC,EAAE,OAAAN,QAAY;AACzD,QAAA,EAAE,QAAAO,EAAW,IAAAP;AAEZ,SAAA;AAAA,aACIO,EAAO,SAAS,IAAI;AAAA,cACnBA,EAAO,SAAS,IAAI;AAAA;AAAA;AAAA;AAAA;AAKlC,CAAC,GAMKC,IAAsBV,EAAOC,CAAQ,EAAwB,CAAC,EAAE,UAAAU,QAC7D;AAAA,4BACmBA,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAOnC,GAEKC,IAAcZ,EAAOC,CAAQ;AAAA;AAAA,GAI7BY,IAAyBb,EAAOC,CAAQ,EAAE,MACvC;AAAA;AAAA;AAAA,GAIR,GAOKa,IAAkBd,EAAOC,CAAQ,EAAoB,CAAC,EAAE,MAAAc,GAAM,QAAAC,QAC3D;AAAA;AAAA,SAEAD,KAAQ,CAAC;AAAA,WACPC,KAAU,CAAC;AAAA;AAAA,CAGrB;AAEsBhB,EAAOiB,CAAS,EAAE,CAAC,OACjC;AAAA;AAAA;AAAA,GAIR;AAED,MAAMC,IAAwBlB,EAAOC,CAAQ,EAAmD,CAAC;AAAA,EAC/F,OAAAC;AAAA,EACA,eAAAiB;AAAA,EACA,cAAAC;AACF,MAAM;AACJ,QAAM,EAAE,SAAAC,GAAS,SAAAC,MAAYpB,EAAM;AAE5B,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKWkB,CAAY;AAAA,qBACXD,CAAa;AAAA,kBAChBE,CAAO;AAAA;AAAA;AAAA,cAGXC,CAAO;AAAA;AAAA;AAGrB,CAAC,GAEKC,IAAgBvB,EAAOwB,CAAI,EAAE,MAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAOR,GAEKC,IAAuBzB,EAAOC,CAAQ,EAAE,CAAC,EAAE,OAAAC,QACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAMWA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC,GAMKwB,IAAyB1B,EAAOC,CAAQ,EAA2B,CAAC,EAAE,OAAAC,GAAO,UAAAyB,QAC1E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBASeA,IAAW,IAAI,CAAC;AAAA,eACzBA,IAAW,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKXzB,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC;"}
@@ -1,64 +1,76 @@
1
- import { jsxs as a, jsx as r } from "react/jsx-runtime";
2
- import { memo as Q, useRef as k, useCallback as o } from "react";
3
- import Z from "../../../../../assets/line-icons/icons/check2.js";
4
- import v from "../../../../../assets/line-icons/icons/eye2.js";
5
- import R from "../../../../../assets/line-icons/icons/home2.js";
6
- import O from "../../../../../assets/line-icons/icons/more-vertical.js";
7
- import w from "../../../../../assets/line-icons/icons/redo.js";
8
- import V from "../../../../ui/arrow-tooltip/arrow-tooltip.js";
9
- import D from "../../../../ui/hooks/use-context-menu-click-handler.js";
1
+ import { jsxs as a, jsx as t } from "react/jsx-runtime";
2
+ import { memo as N, useRef as S, useCallback as m } from "react";
3
+ import rr from "../../../../../assets/line-icons/icons/check2.js";
4
+ import tr from "../../../../../assets/line-icons/icons/eye2.js";
5
+ import er from "../../../../../assets/line-icons/icons/home2.js";
6
+ import cr from "../../../../../assets/line-icons/icons/lock3.js";
7
+ import T from "../../../../../assets/line-icons/icons/more-vertical.js";
8
+ import ir from "../../../../../assets/line-icons/icons/redo.js";
9
+ import nr from "../../../../../assets/line-icons/icons/unlock2.js";
10
+ import ar from "../../../../ui/arrow-tooltip/arrow-tooltip.js";
11
+ import lr from "../../../../ui/hooks/use-context-menu-click-handler.js";
10
12
  import y from "../../../../ui/layout/flex-view.js";
11
- import N from "../../../../ui/lottie-animation/lottie-animation.js";
12
- import rr from "../../../../ui/text/text.js";
13
- import { BLOCK_TYPE as tr } from "../../../constants/block-constants.js";
14
- import { NODE_CARD_STATES as er, TEACHER_MENU_LABELS as nr } from "../../../constants/node-constants.js";
15
- import { getNodeTypeBasedBgImage as cr } from "../../../utils/index.js";
16
- import { getNodeCardBasedIcon as ir } from "../../../utils/node-card-utils.js";
17
- import { NodeCardContainer as ar, NodeCardInfoWrapper as lr, IconWrapper as sr, StyledImportantIcon as or, NodeKebabMenuWrapper as L, NodeCardContentWrapper as mr, NodeCardTitle as pr, NodeMenuOptionsWrapper as dr } from "../node-card-styled.js";
18
- import hr from "../node-card-tags.js";
19
- import fr from "../node-menu-options/node-menu-options.js";
20
- const ur = { renderer: "canvas", autoplay: !1 }, { ASSIGN_AS_HW: Cr, REVIEW: $r, VIEW: _r, MARK_AS_DONE: br, RESET: Ir } = nr, Pr = Q(
13
+ import sr from "../../../../ui/lottie-animation/lottie-animation.js";
14
+ import or from "../../../../ui/text/text.js";
15
+ import { BLOCK_TYPE as mr } from "../../../constants/block-constants.js";
16
+ import { NODE_CARD_STATES as x, TEACHER_MENU_LABELS as pr } from "../../../constants/node-constants.js";
17
+ import { getNodeTypeBasedBgImage as dr } from "../../../utils/index.js";
18
+ import { getNodeCardBasedIcon as hr } from "../../../utils/node-card-utils.js";
19
+ import { NodeCardContainer as ur, NodeCardInfoWrapper as fr, IconWrapper as Cr, StyledImportantIcon as $r, NodeKebabMenuWrapper as W, NodeCardContentWrapper as _r, NodeCardTitle as br, NodeMenuOptionsWrapper as Ir } from "../node-card-styled.js";
20
+ import kr from "../node-card-tags.js";
21
+ import Er from "../node-menu-options/node-menu-options.js";
22
+ const gr = { renderer: "canvas", autoplay: !1 }, { ASSIGN_AS_HW: Lr, REVIEW: Or, VIEW: Sr, MARK_AS_DONE: Tr, RESET: yr, LOCK: xr, UNLOCK: Wr } = pr, Dr = N(
21
23
  ({
22
- nodeData: t,
23
- imageHue: S,
24
- blockType: T,
25
- isSkipped: x,
26
- onNodeAssignAsHomework: m,
27
- onNodeMarkAsDone: p,
28
- onNodeView: n,
29
- onNodeReview: c,
30
- onNodeReattempt: d
24
+ nodeData: r,
25
+ imageHue: B,
26
+ blockType: M,
27
+ isSkipped: K,
28
+ onNodeAssignAsHomework: p,
29
+ onNodeMarkAsDone: d,
30
+ onNodeView: c,
31
+ onNodeReview: i,
32
+ onNodeReattempt: h,
33
+ onNodeUnlock: u,
34
+ onNodeUnassign: f
31
35
  }) => {
32
- const f = k(null), { menuVisible: $, onMenuClick: _ } = D(f), {
33
- accuracy: W,
34
- attempt_location: B,
35
- node_type: u,
36
- card_header: M,
37
- title: K,
36
+ const $ = S(null), { menuVisible: k, onMenuClick: E } = lr($), {
37
+ accuracy: A,
38
+ attempt_location: G,
39
+ node_type: _,
40
+ card_header: j,
41
+ title: X,
38
42
  state: b,
39
- is_optional: A,
40
- sheet_statement: I,
41
- permissions: G,
43
+ is_optional: H,
44
+ sheet_statement: g,
45
+ permissions: F,
42
46
  user_attempt_id: l
43
- } = t, { lottie: j } = ir(u), C = k(null), {
44
- can_mark_familiar: X,
47
+ } = r, { lottie: P } = hr(_), I = S(null), {
48
+ can_mark_familiar: z,
45
49
  can_review: s,
46
- can_assign_as_homework: H,
47
- can_reset: F
48
- } = G, g = T === tr.GOAL, i = b === er.LOCKED, P = B === "INCLASS", z = cr(u), h = o(
50
+ can_assign_as_homework: Y,
51
+ can_reset: q,
52
+ can_unlock: C,
53
+ can_unassign: J
54
+ } = F, L = M === mr.GOAL, n = b === x.LOCKED, Q = b === x.NOT_STARTED, Z = G === "INCLASS", v = (n || Q) && (C || J), R = dr(_), o = m(
49
55
  (e) => {
50
56
  switch (e) {
51
57
  case "node-card-view":
52
- s && l ? c == null || c(t) : n == null || n(t);
58
+ s && l ? i == null || i(r) : c == null || c(r);
53
59
  return;
54
60
  case "node-card-assign-as-hw":
55
- m == null || m(t);
61
+ p == null || p(r);
56
62
  return;
57
63
  case "node-card-mark-as-done":
58
- p == null || p(t);
64
+ d == null || d(r);
59
65
  return;
60
66
  case "node-card-reset":
61
- d == null || d(t);
67
+ h == null || h(r);
68
+ return;
69
+ case "node-card-unlock":
70
+ u == null || u(r);
71
+ return;
72
+ case "node-card-lock":
73
+ f == null || f(r);
62
74
  return;
63
75
  default:
64
76
  throw new Error(`No callback function for ${e}`);
@@ -66,90 +78,99 @@ const ur = { renderer: "canvas", autoplay: !1 }, { ASSIGN_AS_HW: Cr, REVIEW: $r,
66
78
  },
67
79
  [
68
80
  s,
69
- t,
70
- m,
81
+ r,
71
82
  p,
72
83
  d,
84
+ h,
85
+ i,
86
+ f,
87
+ u,
73
88
  c,
74
- n,
75
89
  l
76
90
  ]
77
- ), U = o(() => {
91
+ ), U = m(() => {
78
92
  var e;
79
- i || (e = C.current) == null || e.play();
80
- }, [i]), Y = o(() => {
93
+ n || (e = I.current) == null || e.play();
94
+ }, [n]), w = m(() => {
81
95
  var e;
82
- (e = C.current) == null || e.stop();
83
- }, []), q = o(() => {
84
- s && l ? c == null || c(t) : n == null || n(t);
85
- }, [s, t, c, n, l]), E = o(
96
+ (e = I.current) == null || e.stop();
97
+ }, []), V = m(() => {
98
+ s && l ? i == null || i(r) : c == null || c(r);
99
+ }, [s, r, i, c, l]), O = m(
86
100
  (e) => {
87
- e.stopPropagation(), _();
101
+ e.stopPropagation(), E();
88
102
  },
89
- [_]
90
- ), J = [
103
+ [E]
104
+ ), D = [
91
105
  {
92
106
  id: "node-card-view",
93
- label: s && l ? $r : _r,
94
- icon: v,
107
+ label: s && l ? Or : Sr,
108
+ icon: tr,
95
109
  disabled: !1,
96
- onClick: h
110
+ onClick: o
97
111
  },
98
112
  {
99
113
  id: "node-card-assign-as-hw",
100
- label: Cr,
101
- icon: R,
102
- disabled: !H,
103
- onClick: h
114
+ label: Lr,
115
+ icon: er,
116
+ disabled: !Y,
117
+ onClick: o
104
118
  },
105
119
  {
106
120
  id: "node-card-reset",
107
- label: Ir,
108
- icon: w,
109
- disabled: !F,
110
- onClick: h
121
+ label: yr,
122
+ icon: ir,
123
+ disabled: !q,
124
+ onClick: o
111
125
  },
112
126
  {
113
127
  id: "node-card-mark-as-done",
114
- label: br,
115
- icon: Z,
116
- disabled: !X,
117
- onClick: h
128
+ label: Tr,
129
+ icon: rr,
130
+ disabled: !z,
131
+ onClick: o
132
+ },
133
+ {
134
+ id: `node-card-${C ? "unlock" : "lock"}`,
135
+ label: C ? Wr : xr,
136
+ icon: C ? nr : cr,
137
+ disabled: !v,
138
+ onClick: o
118
139
  }
119
140
  ];
120
141
  return /* @__PURE__ */ a(y, { $position: "relative", children: [
121
- /* @__PURE__ */ r(
122
- ar,
142
+ /* @__PURE__ */ t(
143
+ ur,
123
144
  {
124
- $background: `${S}_2`,
125
- $disabled: !!(x || i),
126
- onClick: q,
145
+ $background: `${B}_2`,
146
+ $disabled: !!(K || n),
147
+ onClick: V,
127
148
  children: /* @__PURE__ */ a(
128
- V,
149
+ ar,
129
150
  {
130
151
  renderAs: "primary",
131
- tooltipItem: I,
152
+ tooltipItem: g,
132
153
  position: "bottom",
133
154
  zIndex: 5,
134
- hidden: $ || !I,
155
+ hidden: k || !g,
135
156
  parentWidth: "100%",
136
157
  widthX: 11.25,
137
158
  children: [
138
159
  /* @__PURE__ */ a(
139
- lr,
160
+ fr,
140
161
  {
141
162
  $flexDirection: "row",
142
163
  $alignItems: "center",
143
164
  $width: "100%",
144
165
  $heightX: 3.5,
145
- $bgImage: z,
166
+ $bgImage: R,
146
167
  $gutterX: 0.78125,
147
168
  $flexGap: 8.5,
148
169
  onMouseEnter: U,
149
- onMouseLeave: Y,
170
+ onMouseLeave: w,
150
171
  children: [
151
172
  /* @__PURE__ */ a(
152
- sr,
173
+ Cr,
153
174
  {
154
175
  $width: 31,
155
176
  $height: 31,
@@ -157,32 +178,32 @@ const ur = { renderer: "canvas", autoplay: !1 }, { ASSIGN_AS_HW: Cr, REVIEW: $r,
157
178
  $position: "relative",
158
179
  $alignItems: "center",
159
180
  $justifyContent: "center",
160
- $opacity: i ? 0.5 : 1,
181
+ $opacity: n ? 0.5 : 1,
161
182
  children: [
162
- /* @__PURE__ */ r(
163
- N,
183
+ /* @__PURE__ */ t(
184
+ sr,
164
185
  {
165
- src: j,
166
- ref: C,
167
- settings: ur
186
+ src: P,
187
+ ref: I,
188
+ settings: gr
168
189
  }
169
190
  ),
170
- !A && /* @__PURE__ */ r(or, {})
191
+ !H && /* @__PURE__ */ t($r, {})
171
192
  ]
172
193
  }
173
194
  ),
174
- /* @__PURE__ */ a(rr, { $renderAs: "ac4-black", $color: "BLACK", $opacity: i ? 0.5 : 1, children: [
175
- M,
195
+ /* @__PURE__ */ a(or, { $renderAs: "ac4-black", $color: "BLACK", $opacity: n ? 0.5 : 1, children: [
196
+ j,
176
197
  " ",
177
- P && "• CW"
198
+ Z && "• CW"
178
199
  ] }),
179
- /* @__PURE__ */ r(y, { className: "context-menu", children: g && /* @__PURE__ */ r(L, { ref: f, onClick: E, children: /* @__PURE__ */ r(O, { width: 18, height: 18 }) }) })
200
+ /* @__PURE__ */ t(y, { className: "context-menu", children: L && /* @__PURE__ */ t(W, { ref: $, onClick: O, children: /* @__PURE__ */ t(T, { width: 18, height: 18 }) }) })
180
201
  ]
181
202
  }
182
203
  ),
183
- /* @__PURE__ */ r(hr, { nodeType: u, state: b, accuracy: W }),
184
- !g && /* @__PURE__ */ a(
185
- mr,
204
+ /* @__PURE__ */ t(kr, { nodeType: _, state: b, accuracy: A }),
205
+ !L && /* @__PURE__ */ a(
206
+ _r,
186
207
  {
187
208
  $flexDirection: "row",
188
209
  $alignItems: "center",
@@ -191,16 +212,16 @@ const ur = { renderer: "canvas", autoplay: !1 }, { ASSIGN_AS_HW: Cr, REVIEW: $r,
191
212
  $heightX: 4,
192
213
  $justifyContent: "space-between",
193
214
  children: [
194
- /* @__PURE__ */ r(
195
- pr,
215
+ /* @__PURE__ */ t(
216
+ br,
196
217
  {
197
218
  $renderAs: "ab3",
198
219
  $color: "BLACK_1",
199
- $opacity: i ? 0.5 : 1,
200
- children: K
220
+ $opacity: n ? 0.5 : 1,
221
+ children: X
201
222
  }
202
223
  ),
203
- /* @__PURE__ */ r(L, { ref: f, onClick: E, children: /* @__PURE__ */ r(O, { width: 18, height: 18 }) })
224
+ /* @__PURE__ */ t(W, { ref: $, onClick: O, children: /* @__PURE__ */ t(T, { width: 18, height: 18 }) })
204
225
  ]
205
226
  }
206
227
  )
@@ -209,11 +230,11 @@ const ur = { renderer: "canvas", autoplay: !1 }, { ASSIGN_AS_HW: Cr, REVIEW: $r,
209
230
  )
210
231
  }
211
232
  ),
212
- /* @__PURE__ */ r(dr, { $visible: $, children: /* @__PURE__ */ r(fr, { options: J }) })
233
+ /* @__PURE__ */ t(Ir, { $visible: k, children: /* @__PURE__ */ t(Er, { options: D }) })
213
234
  ] });
214
235
  }
215
236
  );
216
237
  export {
217
- Pr as default
238
+ Dr as default
218
239
  };
219
240
  //# sourceMappingURL=teacher-actions.js.map