@cuemath/leap 4.0.7-beta.0 → 4.0.7-link.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 (57) hide show
  1. package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js +25 -30
  2. package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js.map +1 -1
  3. package/dist/features/chapters/chapters-list/chapters-list.js +41 -33
  4. package/dist/features/chapters/chapters-list/chapters-list.js.map +1 -1
  5. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js +76 -68
  6. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js.map +1 -1
  7. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js +32 -29
  8. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js.map +1 -1
  9. package/dist/features/chapters-v2/chapter-details/chapter-details.js +64 -61
  10. package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -1
  11. package/dist/features/journey/comps/coachmark/coachmark.js +68 -58
  12. package/dist/features/journey/comps/coachmark/coachmark.js.map +1 -1
  13. package/dist/features/journey/journey-id/journey-id-teacher.js +1 -1
  14. package/dist/features/journey/journey-id/journey-id-teacher.js.map +1 -1
  15. package/dist/features/journey/use-journey/journey-context-provider.js +89 -75
  16. package/dist/features/journey/use-journey/journey-context-provider.js.map +1 -1
  17. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +98 -94
  18. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
  19. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js +44 -43
  20. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
  21. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js +36 -34
  22. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js.map +1 -1
  23. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +80 -77
  24. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
  25. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js +57 -53
  26. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
  27. package/dist/features/milestone/milestone-list-container/milestone-list-container.js +92 -88
  28. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  29. package/dist/features/timeline/monthly-timeline/ptm-report/ptm-report-types.js.map +1 -1
  30. package/dist/features/timeline/monthly-timeline/ptm-report/ptm-report.js +98 -117
  31. package/dist/features/timeline/monthly-timeline/ptm-report/ptm-report.js.map +1 -1
  32. package/dist/features/trial-session/comps/learning-plan/index.js +194 -177
  33. package/dist/features/trial-session/comps/learning-plan/index.js.map +1 -1
  34. package/dist/features/trial-session/hooks/use-chapter-details-journey.js +115 -0
  35. package/dist/features/trial-session/hooks/use-chapter-details-journey.js.map +1 -0
  36. package/dist/features/trial-session/hooks/use-learning-plan-journey-orchestration.js +77 -0
  37. package/dist/features/trial-session/hooks/use-learning-plan-journey-orchestration.js.map +1 -0
  38. package/dist/features/trial-session/hooks/use-learning-plan-journey.js +106 -0
  39. package/dist/features/trial-session/hooks/use-learning-plan-journey.js.map +1 -0
  40. package/dist/features/trial-session/hooks/use-worksheet-preview-journey.js +74 -0
  41. package/dist/features/trial-session/hooks/use-worksheet-preview-journey.js.map +1 -0
  42. package/dist/features/trial-session/right-panel/index.js +25 -24
  43. package/dist/features/trial-session/right-panel/index.js.map +1 -1
  44. package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js +32 -23
  45. package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js.map +1 -1
  46. package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js +43 -42
  47. package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js.map +1 -1
  48. package/dist/index.d.ts +15 -4
  49. package/package.json +1 -1
  50. package/dist/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback-styled.js +0 -17
  51. package/dist/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback-styled.js.map +0 -1
  52. package/dist/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback.js +0 -62
  53. package/dist/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback.js.map +0 -1
  54. package/dist/features/timeline/monthly-timeline/ptm-report/comps/sticky-footer/sticky-footer-styled.js +0 -23
  55. package/dist/features/timeline/monthly-timeline/ptm-report/comps/sticky-footer/sticky-footer-styled.js.map +0 -1
  56. package/dist/features/timeline/monthly-timeline/ptm-report/comps/sticky-footer/sticky-footer.js +0 -33
  57. package/dist/features/timeline/monthly-timeline/ptm-report/comps/sticky-footer/sticky-footer.js.map +0 -1
@@ -1,29 +1,23 @@
1
- import { jsx as t, jsxs as _ } from "react/jsx-runtime";
2
- import { memo as x, useState as W, useRef as w, useCallback as y, useLayoutEffect as A } from "react";
1
+ import { jsx as t, jsxs as w } from "react/jsx-runtime";
2
+ import { memo as x, forwardRef as W, useState as y, useRef as A, useCallback as H, useLayoutEffect as k } from "react";
3
3
  import p from "../../../ui/arrow-tooltip/arrow-tooltip.js";
4
- import H from "../../../ui/layout/flex-view.js";
5
- import k from "../../../ui/text/text.js";
6
- import X from "./chapter-circular-progress/chapter-circular-progress.js";
7
- import { ChapterItemWrapper as j, ChapterName as S, ChapterItemNumberWrapper as E } from "./chapter-item-styled.js";
8
- const F = x(function({
9
- milestoneId: o,
10
- chapter: i,
11
- onChapterClick: n,
12
- itemIndex: a,
13
- shouldShowItemIndex: h
14
- }) {
4
+ import X from "../../../ui/layout/flex-view.js";
5
+ import j from "../../../ui/text/text.js";
6
+ import S from "./chapter-circular-progress/chapter-circular-progress.js";
7
+ import { ChapterItemWrapper as E, ChapterName as L, ChapterItemNumberWrapper as N } from "./chapter-item-styled.js";
8
+ const P = ({ milestoneId: o, chapter: i, onChapterClick: n, itemIndex: a, shouldShowItemIndex: h }, d) => {
15
9
  const {
16
10
  name: l,
17
- image_url: d,
11
+ image_url: g,
18
12
  progress_stat: u,
19
13
  image_hue: c
20
- } = i, { mandatory: g, optional: $ } = u || {}, { completed: s = 0, total: m = 0 } = g || {}, { total: f = 0 } = $ || {}, [C, T] = W(!1), e = w(null), b = s > 0 ? Math.floor((s / m || 1) * 100) : 0, r = m + f, I = y(() => {
14
+ } = i, { mandatory: f, optional: $ } = u || {}, { completed: s = 0, total: m = 0 } = f || {}, { total: C = 0 } = $ || {}, [T, b] = y(!1), e = A(null), I = s > 0 ? Math.floor((s / m || 1) * 100) : 0, r = m + C, _ = H(() => {
21
15
  if (r === 0)
22
16
  return null;
23
17
  n(i, o);
24
18
  }, [i, o, n, r]);
25
- return A(() => {
26
- e.current && e.current.scrollHeight > e.current.clientHeight && T(!0);
19
+ return k(() => {
20
+ e.current && e.current.scrollHeight > e.current.clientHeight && b(!0);
27
21
  }, [e]), /* @__PURE__ */ t(
28
22
  p,
29
23
  {
@@ -33,41 +27,42 @@ const F = x(function({
33
27
  hidden: r > 0,
34
28
  parentWidth: "100%",
35
29
  zIndex: 5,
36
- children: /* @__PURE__ */ _(
37
- j,
30
+ children: /* @__PURE__ */ w(
31
+ E,
38
32
  {
33
+ ref: d,
39
34
  id: `milestone-chapter-${o || ""}-${a}`,
40
35
  $alignItems: "center",
41
36
  $gapX: 1,
42
37
  $gutterX: 1,
43
38
  $flexGap: 8,
44
39
  $background: "WHITE_1",
45
- onClick: I,
40
+ onClick: _,
46
41
  className: "goal-widget-chapter-item",
47
42
  $bgColor: `${c}_1`,
48
43
  shouldHideClick: r === 0,
49
44
  children: [
50
45
  /* @__PURE__ */ t(
51
- X,
46
+ S,
52
47
  {
53
- completionPercentage: b,
54
- imageUrl: d,
48
+ completionPercentage: I,
49
+ imageUrl: g,
55
50
  imageHue: c,
56
51
  imageWidth: 96,
57
52
  iconWidth: 20
58
53
  }
59
54
  ),
60
- /* @__PURE__ */ t(H, { $justifyContent: "center", $alignItems: "center", children: /* @__PURE__ */ t(
55
+ /* @__PURE__ */ t(X, { $justifyContent: "center", $alignItems: "center", children: /* @__PURE__ */ t(
61
56
  p,
62
57
  {
63
58
  renderAs: "primary",
64
59
  position: "bottom",
65
60
  tooltipItem: l,
66
- hidden: !C,
61
+ hidden: !T,
67
62
  widthX: 21.75,
68
63
  zIndex: 5,
69
64
  children: /* @__PURE__ */ t(
70
- S,
65
+ L,
71
66
  {
72
67
  ref: e,
73
68
  $renderAs: "ab2",
@@ -79,14 +74,14 @@ const F = x(function({
79
74
  }
80
75
  ) }),
81
76
  !!h && /* @__PURE__ */ t(
82
- E,
77
+ N,
83
78
  {
84
79
  $background: "WHITE_4",
85
80
  $widthX: 1.75,
86
81
  $heightX: 1.75,
87
82
  $alignItems: "center",
88
83
  $justifyContent: "center",
89
- children: /* @__PURE__ */ t(k, { $renderAs: "ab2", $color: "BLACK_1", $align: "center", children: a + 1 })
84
+ children: /* @__PURE__ */ t(j, { $renderAs: "ab2", $color: "BLACK_1", $align: "center", children: a + 1 })
90
85
  }
91
86
  )
92
87
  ]
@@ -94,8 +89,8 @@ const F = x(function({
94
89
  )
95
90
  }
96
91
  );
97
- });
92
+ }, O = x(W(P));
98
93
  export {
99
- F as default
94
+ O as default
100
95
  };
101
96
  //# sourceMappingURL=chapter-item.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chapter-item.js","sources":["../../../../../src/features/chapters/chapters-list/chapter-item/chapter-item.tsx"],"sourcesContent":["import { useCallback, useLayoutEffect, useRef, useState, memo, type FC } from 'react';\n\nimport ArrowTooltip from '../../../ui/arrow-tooltip/arrow-tooltip';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport ChapterCircularProgress from './chapter-circular-progress/chapter-circular-progress';\nimport * as Styled from './chapter-item-styled';\nimport type { IChapterItemProps } from './chapter-item-types';\n\nconst ChapterItem: FC<IChapterItemProps> = memo(function ChapterItem({\n milestoneId,\n chapter,\n onChapterClick,\n itemIndex,\n shouldShowItemIndex,\n}) {\n const {\n name,\n image_url: imageUrl,\n progress_stat: chapterProgressStat,\n image_hue: imageHue,\n } = chapter;\n const { mandatory, optional } = chapterProgressStat || {};\n const { completed = 0, total: totalMandatory = 0 } = mandatory || {};\n const { total: optionalTotal = 0 } = optional || {};\n const [showTitleTooltip, setShowTitleTooltip] = useState(false);\n const titleTextRef = useRef<HTMLDivElement>(null);\n const completionPercentage =\n completed > 0 ? Math.floor((completed / totalMandatory || 1) * 100) : 0;\n const totalSheets = totalMandatory + optionalTotal;\n const handleOnChapterClick = useCallback(() => {\n if (totalSheets === 0) {\n return null;\n }\n\n onChapterClick(chapter, milestoneId);\n }, [chapter, milestoneId, onChapterClick, totalSheets]);\n\n useLayoutEffect(() => {\n if (\n titleTextRef.current &&\n titleTextRef.current.scrollHeight > titleTextRef.current.clientHeight\n ) {\n setShowTitleTooltip(true);\n }\n }, [titleTextRef]);\n\n return (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem=\"Coming soon! We’re building this chapter\"\n hidden={totalSheets > 0}\n parentWidth=\"100%\"\n zIndex={5}\n >\n <Styled.ChapterItemWrapper\n id={`milestone-chapter-${milestoneId || ''}-${itemIndex}`}\n $alignItems=\"center\"\n $gapX={1}\n $gutterX={1}\n $flexGap={8}\n $background=\"WHITE_1\"\n onClick={handleOnChapterClick}\n className=\"goal-widget-chapter-item\"\n $bgColor={`${imageHue}_1`}\n shouldHideClick={totalSheets === 0}\n >\n <ChapterCircularProgress\n completionPercentage={completionPercentage}\n imageUrl={imageUrl}\n imageHue={imageHue}\n imageWidth={96}\n iconWidth={20}\n />\n <FlexView $justifyContent=\"center\" $alignItems=\"center\">\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={name}\n hidden={!showTitleTooltip}\n widthX={21.75}\n zIndex={5}\n >\n <Styled.ChapterName\n ref={titleTextRef}\n $renderAs=\"ab2\"\n $color=\"BLACK_T_87\"\n $align=\"center\"\n >\n {name}\n </Styled.ChapterName>\n </ArrowTooltip>\n </FlexView>\n {!!shouldShowItemIndex && (\n <Styled.ChapterItemNumberWrapper\n $background=\"WHITE_4\"\n $widthX={1.75}\n $heightX={1.75}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n <Text $renderAs=\"ab2\" $color=\"BLACK_1\" $align=\"center\">\n {itemIndex + 1}\n </Text>\n </Styled.ChapterItemNumberWrapper>\n )}\n </Styled.ChapterItemWrapper>\n </ArrowTooltip>\n );\n});\n\nexport default ChapterItem;\n"],"names":["ChapterItem","memo","milestoneId","chapter","onChapterClick","itemIndex","shouldShowItemIndex","name","imageUrl","chapterProgressStat","imageHue","mandatory","optional","completed","totalMandatory","optionalTotal","showTitleTooltip","setShowTitleTooltip","useState","titleTextRef","useRef","completionPercentage","totalSheets","handleOnChapterClick","useCallback","useLayoutEffect","jsx","ArrowTooltip","jsxs","Styled.ChapterItemWrapper","ChapterCircularProgress","FlexView","Styled.ChapterName","Styled.ChapterItemNumberWrapper","Text"],"mappings":";;;;;;;AASM,MAAAA,IAAqCC,EAAK,SAAqB;AAAA,EACnE,aAAAC;AAAA,EACA,SAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,qBAAAC;AACF,GAAG;AACK,QAAA;AAAA,IACJ,MAAAC;AAAA,IACA,WAAWC;AAAA,IACX,eAAeC;AAAA,IACf,WAAWC;AAAA,EACT,IAAAP,GACE,EAAE,WAAAQ,GAAW,UAAAC,MAAaH,KAAuB,CAAA,GACjD,EAAE,WAAAI,IAAY,GAAG,OAAOC,IAAiB,EAAE,IAAIH,KAAa,IAC5D,EAAE,OAAOI,IAAgB,EAAE,IAAIH,KAAY,CAAA,GAC3C,CAACI,GAAkBC,CAAmB,IAAIC,EAAS,EAAK,GACxDC,IAAeC,EAAuB,IAAI,GAC1CC,IACJR,IAAY,IAAI,KAAK,OAAOA,IAAYC,KAAkB,KAAK,GAAG,IAAI,GAClEQ,IAAcR,IAAiBC,GAC/BQ,IAAuBC,EAAY,MAAM;AAC7C,QAAIF,MAAgB;AACX,aAAA;AAGT,IAAAlB,EAAeD,GAASD,CAAW;AAAA,KAClC,CAACC,GAASD,GAAaE,GAAgBkB,CAAW,CAAC;AAEtD,SAAAG,EAAgB,MAAM;AACpB,IACEN,EAAa,WACbA,EAAa,QAAQ,eAAeA,EAAa,QAAQ,gBAEzDF,EAAoB,EAAI;AAAA,EAC1B,GACC,CAACE,CAAY,CAAC,GAGf,gBAAAO;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,UAAS;AAAA,MACT,UAAS;AAAA,MACT,aAAY;AAAA,MACZ,QAAQL,IAAc;AAAA,MACtB,aAAY;AAAA,MACZ,QAAQ;AAAA,MAER,UAAA,gBAAAM;AAAA,QAACC;AAAAA,QAAA;AAAA,UACC,IAAI,qBAAqB3B,KAAe,EAAE,IAAIG,CAAS;AAAA,UACvD,aAAY;AAAA,UACZ,OAAO;AAAA,UACP,UAAU;AAAA,UACV,UAAU;AAAA,UACV,aAAY;AAAA,UACZ,SAASkB;AAAA,UACT,WAAU;AAAA,UACV,UAAU,GAAGb,CAAQ;AAAA,UACrB,iBAAiBY,MAAgB;AAAA,UAEjC,UAAA;AAAA,YAAA,gBAAAI;AAAA,cAACI;AAAA,cAAA;AAAA,gBACC,sBAAAT;AAAA,gBACA,UAAAb;AAAA,gBACA,UAAAE;AAAA,gBACA,YAAY;AAAA,gBACZ,WAAW;AAAA,cAAA;AAAA,YACb;AAAA,YACC,gBAAAgB,EAAAK,GAAA,EAAS,iBAAgB,UAAS,aAAY,UAC7C,UAAA,gBAAAL;AAAA,cAACC;AAAA,cAAA;AAAA,gBACC,UAAS;AAAA,gBACT,UAAS;AAAA,gBACT,aAAapB;AAAA,gBACb,QAAQ,CAACS;AAAA,gBACT,QAAQ;AAAA,gBACR,QAAQ;AAAA,gBAER,UAAA,gBAAAU;AAAA,kBAACM;AAAAA,kBAAA;AAAA,oBACC,KAAKb;AAAA,oBACL,WAAU;AAAA,oBACV,QAAO;AAAA,oBACP,QAAO;AAAA,oBAEN,UAAAZ;AAAA,kBAAA;AAAA,gBACH;AAAA,cAAA;AAAA,YAAA,GAEJ;AAAA,YACC,CAAC,CAACD,KACD,gBAAAoB;AAAA,cAACO;AAAAA,cAAA;AAAA,gBACC,aAAY;AAAA,gBACZ,SAAS;AAAA,gBACT,UAAU;AAAA,gBACV,aAAY;AAAA,gBACZ,iBAAgB;AAAA,gBAEhB,UAAA,gBAAAP,EAACQ,KAAK,WAAU,OAAM,QAAO,WAAU,QAAO,UAC3C,UAAA7B,IAAY,EACf,CAAA;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA;AAAA,MAEJ;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;"}
1
+ {"version":3,"file":"chapter-item.js","sources":["../../../../../src/features/chapters/chapters-list/chapter-item/chapter-item.tsx"],"sourcesContent":["import {\n forwardRef,\n memo,\n useCallback,\n useLayoutEffect,\n useRef,\n useState,\n type ForwardRefRenderFunction,\n} from 'react';\n\nimport ArrowTooltip from '../../../ui/arrow-tooltip/arrow-tooltip';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport ChapterCircularProgress from './chapter-circular-progress/chapter-circular-progress';\nimport * as Styled from './chapter-item-styled';\nimport type { IChapterItemProps } from './chapter-item-types';\n\nconst ChapterItemComp: ForwardRefRenderFunction<HTMLDivElement, IChapterItemProps> = (\n { milestoneId, chapter, onChapterClick, itemIndex, shouldShowItemIndex },\n ref,\n) => {\n const {\n name,\n image_url: imageUrl,\n progress_stat: chapterProgressStat,\n image_hue: imageHue,\n } = chapter;\n const { mandatory, optional } = chapterProgressStat || {};\n const { completed = 0, total: totalMandatory = 0 } = mandatory || {};\n const { total: optionalTotal = 0 } = optional || {};\n const [showTitleTooltip, setShowTitleTooltip] = useState(false);\n const titleTextRef = useRef<HTMLDivElement>(null);\n const completionPercentage =\n completed > 0 ? Math.floor((completed / totalMandatory || 1) * 100) : 0;\n const totalSheets = totalMandatory + optionalTotal;\n const handleOnChapterClick = useCallback(() => {\n if (totalSheets === 0) {\n return null;\n }\n\n onChapterClick(chapter, milestoneId);\n }, [chapter, milestoneId, onChapterClick, totalSheets]);\n\n useLayoutEffect(() => {\n if (\n titleTextRef.current &&\n titleTextRef.current.scrollHeight > titleTextRef.current.clientHeight\n ) {\n setShowTitleTooltip(true);\n }\n }, [titleTextRef]);\n\n return (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem=\"Coming soon! We’re building this chapter\"\n hidden={totalSheets > 0}\n parentWidth=\"100%\"\n zIndex={5}\n >\n <Styled.ChapterItemWrapper\n ref={ref}\n id={`milestone-chapter-${milestoneId || ''}-${itemIndex}`}\n $alignItems=\"center\"\n $gapX={1}\n $gutterX={1}\n $flexGap={8}\n $background=\"WHITE_1\"\n onClick={handleOnChapterClick}\n className=\"goal-widget-chapter-item\"\n $bgColor={`${imageHue}_1`}\n shouldHideClick={totalSheets === 0}\n >\n <ChapterCircularProgress\n completionPercentage={completionPercentage}\n imageUrl={imageUrl}\n imageHue={imageHue}\n imageWidth={96}\n iconWidth={20}\n />\n <FlexView $justifyContent=\"center\" $alignItems=\"center\">\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={name}\n hidden={!showTitleTooltip}\n widthX={21.75}\n zIndex={5}\n >\n <Styled.ChapterName\n ref={titleTextRef}\n $renderAs=\"ab2\"\n $color=\"BLACK_T_87\"\n $align=\"center\"\n >\n {name}\n </Styled.ChapterName>\n </ArrowTooltip>\n </FlexView>\n {!!shouldShowItemIndex && (\n <Styled.ChapterItemNumberWrapper\n $background=\"WHITE_4\"\n $widthX={1.75}\n $heightX={1.75}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n <Text $renderAs=\"ab2\" $color=\"BLACK_1\" $align=\"center\">\n {itemIndex + 1}\n </Text>\n </Styled.ChapterItemNumberWrapper>\n )}\n </Styled.ChapterItemWrapper>\n </ArrowTooltip>\n );\n};\n\nconst ChapterItem = memo(forwardRef(ChapterItemComp));\n\nexport default ChapterItem;\n"],"names":["ChapterItemComp","milestoneId","chapter","onChapterClick","itemIndex","shouldShowItemIndex","ref","name","imageUrl","chapterProgressStat","imageHue","mandatory","optional","completed","totalMandatory","optionalTotal","showTitleTooltip","setShowTitleTooltip","useState","titleTextRef","useRef","completionPercentage","totalSheets","handleOnChapterClick","useCallback","useLayoutEffect","jsx","ArrowTooltip","jsxs","Styled.ChapterItemWrapper","ChapterCircularProgress","FlexView","Styled.ChapterName","Styled.ChapterItemNumberWrapper","Text","ChapterItem","memo","forwardRef"],"mappings":";;;;;;;AAiBA,MAAMA,IAA+E,CACnF,EAAE,aAAAC,GAAa,SAAAC,GAAS,gBAAAC,GAAgB,WAAAC,GAAW,qBAAAC,EAAoB,GACvEC,MACG;AACG,QAAA;AAAA,IACJ,MAAAC;AAAA,IACA,WAAWC;AAAA,IACX,eAAeC;AAAA,IACf,WAAWC;AAAA,EACT,IAAAR,GACE,EAAE,WAAAS,GAAW,UAAAC,MAAaH,KAAuB,CAAA,GACjD,EAAE,WAAAI,IAAY,GAAG,OAAOC,IAAiB,EAAE,IAAIH,KAAa,IAC5D,EAAE,OAAOI,IAAgB,EAAE,IAAIH,KAAY,CAAA,GAC3C,CAACI,GAAkBC,CAAmB,IAAIC,EAAS,EAAK,GACxDC,IAAeC,EAAuB,IAAI,GAC1CC,IACJR,IAAY,IAAI,KAAK,OAAOA,IAAYC,KAAkB,KAAK,GAAG,IAAI,GAClEQ,IAAcR,IAAiBC,GAC/BQ,IAAuBC,EAAY,MAAM;AAC7C,QAAIF,MAAgB;AACX,aAAA;AAGT,IAAAnB,EAAeD,GAASD,CAAW;AAAA,KAClC,CAACC,GAASD,GAAaE,GAAgBmB,CAAW,CAAC;AAEtD,SAAAG,EAAgB,MAAM;AACpB,IACEN,EAAa,WACbA,EAAa,QAAQ,eAAeA,EAAa,QAAQ,gBAEzDF,EAAoB,EAAI;AAAA,EAC1B,GACC,CAACE,CAAY,CAAC,GAGf,gBAAAO;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,UAAS;AAAA,MACT,UAAS;AAAA,MACT,aAAY;AAAA,MACZ,QAAQL,IAAc;AAAA,MACtB,aAAY;AAAA,MACZ,QAAQ;AAAA,MAER,UAAA,gBAAAM;AAAA,QAACC;AAAAA,QAAA;AAAA,UACC,KAAAvB;AAAA,UACA,IAAI,qBAAqBL,KAAe,EAAE,IAAIG,CAAS;AAAA,UACvD,aAAY;AAAA,UACZ,OAAO;AAAA,UACP,UAAU;AAAA,UACV,UAAU;AAAA,UACV,aAAY;AAAA,UACZ,SAASmB;AAAA,UACT,WAAU;AAAA,UACV,UAAU,GAAGb,CAAQ;AAAA,UACrB,iBAAiBY,MAAgB;AAAA,UAEjC,UAAA;AAAA,YAAA,gBAAAI;AAAA,cAACI;AAAA,cAAA;AAAA,gBACC,sBAAAT;AAAA,gBACA,UAAAb;AAAA,gBACA,UAAAE;AAAA,gBACA,YAAY;AAAA,gBACZ,WAAW;AAAA,cAAA;AAAA,YACb;AAAA,YACC,gBAAAgB,EAAAK,GAAA,EAAS,iBAAgB,UAAS,aAAY,UAC7C,UAAA,gBAAAL;AAAA,cAACC;AAAA,cAAA;AAAA,gBACC,UAAS;AAAA,gBACT,UAAS;AAAA,gBACT,aAAapB;AAAA,gBACb,QAAQ,CAACS;AAAA,gBACT,QAAQ;AAAA,gBACR,QAAQ;AAAA,gBAER,UAAA,gBAAAU;AAAA,kBAACM;AAAAA,kBAAA;AAAA,oBACC,KAAKb;AAAA,oBACL,WAAU;AAAA,oBACV,QAAO;AAAA,oBACP,QAAO;AAAA,oBAEN,UAAAZ;AAAA,kBAAA;AAAA,gBACH;AAAA,cAAA;AAAA,YAAA,GAEJ;AAAA,YACC,CAAC,CAACF,KACD,gBAAAqB;AAAA,cAACO;AAAAA,cAAA;AAAA,gBACC,aAAY;AAAA,gBACZ,SAAS;AAAA,gBACT,UAAU;AAAA,gBACV,aAAY;AAAA,gBACZ,iBAAgB;AAAA,gBAEhB,UAAA,gBAAAP,EAACQ,KAAK,WAAU,OAAM,QAAO,WAAU,QAAO,UAC3C,UAAA9B,IAAY,EACf,CAAA;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA;AAAA,MAEJ;AAAA,IAAA;AAAA,EAAA;AAGN,GAEM+B,IAAcC,EAAKC,EAAWrC,CAAe,CAAC;"}
@@ -1,68 +1,76 @@
1
- import { jsxs as p, jsx as t, Fragment as A } from "react/jsx-runtime";
2
- import { memo as T, useCallback as b } from "react";
3
- import { IMAGES as g } from "../../../assets/images/images.js";
1
+ import { jsxs as m, jsx as t, Fragment as T } from "react/jsx-runtime";
2
+ import { memo as b, useCallback as g } from "react";
3
+ import { IMAGES as k } from "../../../assets/images/images.js";
4
4
  import x from "../../ui/arrow-tooltip/arrow-tooltip.js";
5
- import k from "../../ui/buttons/button/button.js";
6
- import { useUIContext as $ } from "../../ui/context/context.js";
7
- import m from "../../ui/separator/separator.js";
8
- import y from "../../ui/text/text.js";
9
- import E from "./chapter-item/chapter-item.js";
10
- import { ChaptersListContainer as l, ChaptersWrapper as I } from "./chapters-list-styled.js";
11
- const L = T(function({
5
+ import $ from "../../ui/buttons/button/button.js";
6
+ import { useUIContext as y } from "../../ui/context/context.js";
7
+ import l from "../../ui/separator/separator.js";
8
+ import E from "../../ui/text/text.js";
9
+ import I from "./chapter-item/chapter-item.js";
10
+ import { ChaptersListContainer as c, ChaptersWrapper as L } from "./chapters-list-styled.js";
11
+ const S = b(function({
12
12
  milestoneId: r,
13
- canUpdatePlan: c,
13
+ canUpdatePlan: h,
14
14
  chapters: o,
15
15
  ...d
16
16
  }) {
17
- const { isGoalCreation: i, userType: h, onChapterClick: C, onAddChapter: e, isMilestoneActive: n } = d, { onClick: a } = $(), f = b(() => {
18
- a({
17
+ const {
18
+ isGoalCreation: i,
19
+ userType: C,
20
+ onChapterClick: f,
21
+ onAddChapter: e,
22
+ isMilestoneActive: a,
23
+ firstChapterRef: u
24
+ } = d, { onClick: n } = y(), _ = g(() => {
25
+ n({
19
26
  label: "add_chapter_icon",
20
27
  props: {
21
28
  milestone_id: r
22
29
  }
23
30
  }), e == null || e({ milestoneId: r, isGoalCreation: i });
24
- }, [r, i, e, a]);
25
- return o.length ? /* @__PURE__ */ t(l, { children: /* @__PURE__ */ t(I, { children: o.map((s, u) => {
26
- const { id: _ } = s;
31
+ }, [r, i, e, n]);
32
+ return o.length ? /* @__PURE__ */ t(c, { children: /* @__PURE__ */ t(L, { children: o.map((s, p) => {
33
+ const { id: A } = s;
27
34
  return /* @__PURE__ */ t(
28
- E,
35
+ I,
29
36
  {
37
+ ref: p === 0 ? u : void 0,
30
38
  milestoneId: r,
31
39
  chapter: s,
32
- onChapterClick: C,
33
- itemIndex: u,
40
+ onChapterClick: f,
41
+ itemIndex: p,
34
42
  shouldShowItemIndex: !0
35
43
  },
36
- _
44
+ A
37
45
  );
38
- }) }) }) : /* @__PURE__ */ p(
39
- l,
46
+ }) }) }) : /* @__PURE__ */ m(
47
+ c,
40
48
  {
41
49
  $gapX: 6.75,
42
50
  $alignItems: "center",
43
51
  $justifyContent: "center",
44
52
  $background: "WHITE",
45
53
  children: [
46
- /* @__PURE__ */ t("img", { src: g.EMPTY_MIX_TESTS, alt: "empty_mix_tests" }),
47
- /* @__PURE__ */ t(m, { heightX: 2 }),
48
- h === "TEACHER" ? /* @__PURE__ */ p(A, { children: [
54
+ /* @__PURE__ */ t("img", { src: k.EMPTY_MIX_TESTS, alt: "empty_mix_tests" }),
55
+ /* @__PURE__ */ t(l, { heightX: 2 }),
56
+ C === "TEACHER" ? /* @__PURE__ */ m(T, { children: [
49
57
  /* @__PURE__ */ t(
50
58
  x,
51
59
  {
52
60
  renderAs: "primary",
53
61
  position: "bottom",
54
- hidden: n,
62
+ hidden: a,
55
63
  tooltipItem: "Plan is completed",
56
64
  children: /* @__PURE__ */ t(
57
- k,
65
+ $,
58
66
  {
59
67
  widthX: 10,
60
68
  renderAs: "primary",
61
69
  shape: "square",
62
70
  size: "small",
63
71
  label: "Add chapter",
64
- onClick: f,
65
- disabled: !n || !c,
72
+ onClick: _,
73
+ disabled: !a || !h,
66
74
  analyticsProps: {
67
75
  milestone_id: r
68
76
  }
@@ -70,13 +78,13 @@ const L = T(function({
70
78
  )
71
79
  }
72
80
  ),
73
- /* @__PURE__ */ t(m, { heightX: 2 })
74
- ] }) : /* @__PURE__ */ t(y, { $renderAs: "ab2-bold", $color: "BLACK_T_87", children: "Wait for the teacher to add a chapter" })
81
+ /* @__PURE__ */ t(l, { heightX: 2 })
82
+ ] }) : /* @__PURE__ */ t(E, { $renderAs: "ab2-bold", $color: "BLACK_T_87", children: "Wait for the teacher to add a chapter" })
75
83
  ]
76
84
  }
77
85
  );
78
- }), q = L;
86
+ }), R = S;
79
87
  export {
80
- q as default
88
+ R as default
81
89
  };
82
90
  //# sourceMappingURL=chapters-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chapters-list.js","sources":["../../../../src/features/chapters/chapters-list/chapters-list.tsx"],"sourcesContent":["import { memo, useCallback, 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 { useUIContext } from '../../ui/context/context';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport ChapterItem from './chapter-item/chapter-item';\nimport * as Styled from './chapters-list-styled';\nimport type { IChaptersListProps } from './chapters-list-types';\n\nconst ChaptersList: FC<IChaptersListProps> = memo(function ChaptersList({\n milestoneId,\n canUpdatePlan,\n chapters,\n ...restChaptersList\n}) {\n const { isGoalCreation, userType, onChapterClick, onAddChapter, isMilestoneActive } =\n restChaptersList;\n\n const { onClick: trackOnClick } = useUIContext();\n\n const handleOnAddChapter = useCallback(() => {\n trackOnClick({\n label: 'add_chapter_icon',\n props: {\n milestone_id: milestoneId,\n },\n });\n onAddChapter?.({ milestoneId, isGoalCreation });\n }, [milestoneId, isGoalCreation, onAddChapter, trackOnClick]);\n\n if (!chapters.length) {\n return (\n <Styled.ChaptersListContainer\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={isMilestoneActive}\n tooltipItem=\"Plan is completed\"\n >\n <Button\n widthX={10}\n renderAs=\"primary\"\n shape=\"square\"\n size=\"small\"\n label=\"Add chapter\"\n onClick={handleOnAddChapter}\n disabled={!isMilestoneActive || !canUpdatePlan}\n analyticsProps={{\n milestone_id: milestoneId,\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 add a chapter\n </Text>\n )}\n </Styled.ChaptersListContainer>\n );\n }\n\n return (\n <Styled.ChaptersListContainer>\n <Styled.ChaptersWrapper>\n {chapters.map((chapter, idx) => {\n const { id } = chapter;\n\n return (\n <ChapterItem\n key={id}\n milestoneId={milestoneId}\n chapter={chapter}\n onChapterClick={onChapterClick}\n itemIndex={idx}\n shouldShowItemIndex\n />\n );\n })}\n </Styled.ChaptersWrapper>\n </Styled.ChaptersListContainer>\n );\n});\n\nexport default ChaptersList;\n"],"names":["ChaptersList","memo","milestoneId","canUpdatePlan","chapters","restChaptersList","isGoalCreation","userType","onChapterClick","onAddChapter","isMilestoneActive","trackOnClick","useUIContext","handleOnAddChapter","useCallback","jsx","Styled.ChaptersListContainer","Styled.ChaptersWrapper","chapter","idx","id","ChapterItem","jsxs","IMAGES","Separator","Fragment","ArrowTooltip","Button","Text","ChaptersList$1"],"mappings":";;;;;;;;;;AAYA,MAAMA,IAAuCC,EAAK,SAAsB;AAAA,EACtE,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GAAG;AACD,QAAM,EAAE,gBAAAC,GAAgB,UAAAC,GAAU,gBAAAC,GAAgB,cAAAC,GAAc,mBAAAC,EAC9D,IAAAL,GAEI,EAAE,SAASM,EAAa,IAAIC,EAAa,GAEzCC,IAAqBC,EAAY,MAAM;AAC9B,IAAAH,EAAA;AAAA,MACX,OAAO;AAAA,MACP,OAAO;AAAA,QACL,cAAcT;AAAA,MAChB;AAAA,IAAA,CACD,GACcO,KAAA,QAAAA,EAAA,EAAE,aAAAP,GAAa,gBAAAI,EAAA;AAAA,KAC7B,CAACJ,GAAaI,GAAgBG,GAAcE,CAAY,CAAC;AAExD,SAACP,EAAS,SA2CX,gBAAAW,EAAAC,GAAA,EACC,UAAC,gBAAAD,EAAAE,GAAA,EACE,UAASb,EAAA,IAAI,CAACc,GAASC,MAAQ;AACxB,UAAA,EAAE,IAAAC,EAAO,IAAAF;AAGb,WAAA,gBAAAH;AAAA,MAACM;AAAA,MAAA;AAAA,QAEC,aAAAnB;AAAA,QACA,SAAAgB;AAAA,QACA,gBAAAV;AAAA,QACA,WAAWW;AAAA,QACX,qBAAmB;AAAA,MAAA;AAAA,MALdC;AAAA,IAAA;AAAA,EAMP,CAEH,GACH,EACF,CAAA,IA1DE,gBAAAE;AAAA,IAACN;AAAAA,IAAA;AAAA,MACC,OAAO;AAAA,MACP,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAChB,aAAY;AAAA,MAEZ,UAAA;AAAA,QAAA,gBAAAD,EAAC,OAAI,EAAA,KAAKQ,EAAO,iBAAiB,KAAI,mBAAkB;AAAA,QACxD,gBAAAR,EAACS,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,QACtBjB,MAAa,YAEV,gBAAAe,EAAAG,GAAA,EAAA,UAAA;AAAA,UAAA,gBAAAV;AAAA,YAACW;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,UAAS;AAAA,cACT,QAAQhB;AAAA,cACR,aAAY;AAAA,cAEZ,UAAA,gBAAAK;AAAA,gBAACY;AAAA,gBAAA;AAAA,kBACC,QAAQ;AAAA,kBACR,UAAS;AAAA,kBACT,OAAM;AAAA,kBACN,MAAK;AAAA,kBACL,OAAM;AAAA,kBACN,SAASd;AAAA,kBACT,UAAU,CAACH,KAAqB,CAACP;AAAA,kBACjC,gBAAgB;AAAA,oBACd,cAAcD;AAAA,kBAChB;AAAA,gBAAA;AAAA,cACF;AAAA,YAAA;AAAA,UACF;AAAA,UACA,gBAAAa,EAACS,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,QAAA,EAAA,CACzB,IAEC,gBAAAT,EAAAa,GAAA,EAAK,WAAU,YAAW,QAAO,cAAa,UAE/C,yCAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AA0BV,CAAC,GAEDC,IAAe7B;"}
1
+ {"version":3,"file":"chapters-list.js","sources":["../../../../src/features/chapters/chapters-list/chapters-list.tsx"],"sourcesContent":["import { memo, useCallback, 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 { useUIContext } from '../../ui/context/context';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport ChapterItem from './chapter-item/chapter-item';\nimport * as Styled from './chapters-list-styled';\nimport type { IChaptersListProps } from './chapters-list-types';\n\nconst ChaptersList: FC<IChaptersListProps> = memo(function ChaptersList({\n milestoneId,\n canUpdatePlan,\n chapters,\n ...restChaptersList\n}) {\n const {\n isGoalCreation,\n userType,\n onChapterClick,\n onAddChapter,\n isMilestoneActive,\n firstChapterRef,\n } = restChaptersList;\n\n const { onClick: trackOnClick } = useUIContext();\n\n const handleOnAddChapter = useCallback(() => {\n trackOnClick({\n label: 'add_chapter_icon',\n props: {\n milestone_id: milestoneId,\n },\n });\n onAddChapter?.({ milestoneId, isGoalCreation });\n }, [milestoneId, isGoalCreation, onAddChapter, trackOnClick]);\n\n if (!chapters.length) {\n return (\n <Styled.ChaptersListContainer\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={isMilestoneActive}\n tooltipItem=\"Plan is completed\"\n >\n <Button\n widthX={10}\n renderAs=\"primary\"\n shape=\"square\"\n size=\"small\"\n label=\"Add chapter\"\n onClick={handleOnAddChapter}\n disabled={!isMilestoneActive || !canUpdatePlan}\n analyticsProps={{\n milestone_id: milestoneId,\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 add a chapter\n </Text>\n )}\n </Styled.ChaptersListContainer>\n );\n }\n\n return (\n <Styled.ChaptersListContainer>\n <Styled.ChaptersWrapper>\n {chapters.map((chapter, idx) => {\n const { id } = chapter;\n\n return (\n <ChapterItem\n key={id}\n ref={idx === 0 ? firstChapterRef : undefined}\n milestoneId={milestoneId}\n chapter={chapter}\n onChapterClick={onChapterClick}\n itemIndex={idx}\n shouldShowItemIndex\n />\n );\n })}\n </Styled.ChaptersWrapper>\n </Styled.ChaptersListContainer>\n );\n});\n\nexport default ChaptersList;\n"],"names":["ChaptersList","memo","milestoneId","canUpdatePlan","chapters","restChaptersList","isGoalCreation","userType","onChapterClick","onAddChapter","isMilestoneActive","firstChapterRef","trackOnClick","useUIContext","handleOnAddChapter","useCallback","jsx","Styled.ChaptersListContainer","Styled.ChaptersWrapper","chapter","idx","id","ChapterItem","jsxs","IMAGES","Separator","Fragment","ArrowTooltip","Button","Text","ChaptersList$1"],"mappings":";;;;;;;;;;AAYA,MAAMA,IAAuCC,EAAK,SAAsB;AAAA,EACtE,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GAAG;AACK,QAAA;AAAA,IACJ,gBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,iBAAAC;AAAA,EACE,IAAAN,GAEE,EAAE,SAASO,EAAa,IAAIC,EAAa,GAEzCC,IAAqBC,EAAY,MAAM;AAC9B,IAAAH,EAAA;AAAA,MACX,OAAO;AAAA,MACP,OAAO;AAAA,QACL,cAAcV;AAAA,MAChB;AAAA,IAAA,CACD,GACcO,KAAA,QAAAA,EAAA,EAAE,aAAAP,GAAa,gBAAAI,EAAA;AAAA,KAC7B,CAACJ,GAAaI,GAAgBG,GAAcG,CAAY,CAAC;AAExD,SAACR,EAAS,SA2CX,gBAAAY,EAAAC,GAAA,EACC,UAAC,gBAAAD,EAAAE,GAAA,EACE,UAASd,EAAA,IAAI,CAACe,GAASC,MAAQ;AACxB,UAAA,EAAE,IAAAC,EAAO,IAAAF;AAGb,WAAA,gBAAAH;AAAA,MAACM;AAAA,MAAA;AAAA,QAEC,KAAKF,MAAQ,IAAIT,IAAkB;AAAA,QACnC,aAAAT;AAAA,QACA,SAAAiB;AAAA,QACA,gBAAAX;AAAA,QACA,WAAWY;AAAA,QACX,qBAAmB;AAAA,MAAA;AAAA,MANdC;AAAA,IAAA;AAAA,EAOP,CAEH,GACH,EACF,CAAA,IA3DE,gBAAAE;AAAA,IAACN;AAAAA,IAAA;AAAA,MACC,OAAO;AAAA,MACP,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAChB,aAAY;AAAA,MAEZ,UAAA;AAAA,QAAA,gBAAAD,EAAC,OAAI,EAAA,KAAKQ,EAAO,iBAAiB,KAAI,mBAAkB;AAAA,QACxD,gBAAAR,EAACS,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,QACtBlB,MAAa,YAEV,gBAAAgB,EAAAG,GAAA,EAAA,UAAA;AAAA,UAAA,gBAAAV;AAAA,YAACW;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,UAAS;AAAA,cACT,QAAQjB;AAAA,cACR,aAAY;AAAA,cAEZ,UAAA,gBAAAM;AAAA,gBAACY;AAAA,gBAAA;AAAA,kBACC,QAAQ;AAAA,kBACR,UAAS;AAAA,kBACT,OAAM;AAAA,kBACN,MAAK;AAAA,kBACL,OAAM;AAAA,kBACN,SAASd;AAAA,kBACT,UAAU,CAACJ,KAAqB,CAACP;AAAA,kBACjC,gBAAgB;AAAA,oBACd,cAAcD;AAAA,kBAChB;AAAA,gBAAA;AAAA,cACF;AAAA,YAAA;AAAA,UACF;AAAA,UACA,gBAAAc,EAACS,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,QAAA,EAAA,CACzB,IAEC,gBAAAT,EAAAa,GAAA,EAAK,WAAU,YAAW,QAAO,cAAa,UAE/C,yCAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AA2BV,CAAC,GAEDC,IAAe9B;"}
@@ -1,20 +1,20 @@
1
- import { jsx as e, jsxs as a, Fragment as X } from "react/jsx-runtime";
2
- import { memo as Y, useCallback as f } from "react";
3
- import Z from "../../../../assets/line-icons/icons/eye2.js";
4
- import q from "../../../../assets/line-icons/icons/more-vertical.js";
5
- import G from "../../../../assets/line-icons/icons/redo.js";
6
- import J from "../../../../assets/line-icons/icons/skip.js";
7
- import N from "../../../ui/context-menu/context-menu.js";
1
+ import { jsx as e, jsxs as a, Fragment as q } from "react/jsx-runtime";
2
+ import { memo as G, useCallback as f } from "react";
3
+ import J from "../../../../assets/line-icons/icons/eye2.js";
4
+ import N from "../../../../assets/line-icons/icons/more-vertical.js";
5
+ import Q from "../../../../assets/line-icons/icons/redo.js";
6
+ import U from "../../../../assets/line-icons/icons/skip.js";
7
+ import D from "../../../ui/context-menu/context-menu.js";
8
8
  import S from "../../../ui/layout/flex-view.js";
9
9
  import E from "../../../ui/text/text.js";
10
- import Q from "../../comps/node-card/node-card.js";
11
- import U from "../../comps/node-card/node-menu-options/node-menu-options.js";
12
- import D from "../../comps/sat-mock-test/sat-mock-test.js";
13
- import { BLOCK_TYPE as R, BLOCK_NAME as ee } from "../../constants/block-constants.js";
14
- import { getSheetNLessonCount as te } from "../../utils/index.js";
15
- import { getNextAccessibleSATSheet as ne } from "../../utils/sat-sheet-utils.js";
16
- import { BlockSectionWrapper as re, BlockOptionsWrapper as ie, BlockSheetContainer as oe } from "./block-sections-styled.js";
17
- const ce = ({
10
+ import R from "../../comps/node-card/node-card.js";
11
+ import ee from "../../comps/node-card/node-menu-options/node-menu-options.js";
12
+ import te from "../../comps/sat-mock-test/sat-mock-test.js";
13
+ import { BLOCK_TYPE as ne, BLOCK_NAME as re } from "../../constants/block-constants.js";
14
+ import { getSheetNLessonCount as ie } from "../../utils/index.js";
15
+ import { getNextAccessibleSATSheet as oe } from "../../utils/sat-sheet-utils.js";
16
+ import { BlockSectionWrapper as ce, BlockOptionsWrapper as se, BlockSheetContainer as le } from "./block-sections-styled.js";
17
+ const me = ({
18
18
  userType: s,
19
19
  imageHue: u,
20
20
  blockData: r,
@@ -22,16 +22,18 @@ const ce = ({
22
22
  isLastBlock: x,
23
23
  isGoalBlock: d,
24
24
  blockSectionRef: k,
25
+ firstNodeCardRef: L,
26
+ isFirstBlock: I,
25
27
  onNodeAttempt: b,
26
- onNodeAssignAsHomework: L,
27
- onNodeMarkAsDone: I,
28
- onNodeReattempt: M,
28
+ onNodeAssignAsHomework: M,
29
+ onNodeMarkAsDone: O,
30
+ onNodeReattempt: w,
29
31
  onNodeReview: n,
30
- onNodeView: O,
32
+ onNodeView: K,
31
33
  onBlockSkipUnskip: l,
32
- onNodeUnassign: w,
33
- onNodeUnlock: K,
34
- onNodeSkipUnSkip: j,
34
+ onNodeUnassign: j,
35
+ onNodeUnlock: v,
36
+ onNodeSkipUnSkip: H,
35
37
  onBlockReset: m
36
38
  }) => {
37
39
  const {
@@ -39,54 +41,54 @@ const ce = ({
39
41
  name: _,
40
42
  sheets: i,
41
43
  permissions: C,
42
- block_stats: H,
43
- state: V,
44
- block_statement: W
45
- } = r, o = h === R.SAT_MOCK_TEST, {
44
+ block_stats: V,
45
+ state: W,
46
+ block_statement: y
47
+ } = r, o = h === ne.SAT_MOCK_TEST, {
46
48
  can_skip: p,
47
49
  can_un_skip: t,
48
50
  can_reset: g,
49
51
  can_review: T
50
- } = C, A = ee[h], y = te({
52
+ } = C, A = re[h], B = ie({
51
53
  isSkipped: t,
52
54
  sheetsLength: i.length,
53
55
  isGoalBlock: d,
54
56
  lessonIdx: $,
55
57
  isSatMockTestBlock: o
56
- }), B = o && (g || T) || s === "TEACHER" && (p || t), P = f(() => {
57
- const c = ne(i);
58
+ }), P = o && (g || T) || s === "TEACHER" && (p || t), z = f(() => {
59
+ const c = oe(i);
58
60
  if (!c)
59
61
  throw new Error("Active SAT sheet is not available");
60
62
  n == null || n(c);
61
- }, [n, i]), v = f(() => {
63
+ }, [n, i]), F = f(() => {
62
64
  l == null || l(r, p);
63
- }, [r, p, l]), z = f(() => {
65
+ }, [r, p, l]), X = f(() => {
64
66
  m == null || m(r);
65
- }, [r, m]), F = [
67
+ }, [r, m]), Y = [
66
68
  {
67
69
  id: "node-card-skip",
68
70
  label: t ? "Revert 'Skip'" : "Skip All",
69
- icon: J,
71
+ icon: U,
70
72
  disabled: o,
71
- onClick: v
73
+ onClick: F
72
74
  },
73
75
  {
74
76
  id: "sat-node-card-review",
75
77
  label: "Review",
76
- icon: Z,
78
+ icon: J,
77
79
  disabled: !T,
78
- onClick: P
80
+ onClick: z
79
81
  },
80
82
  {
81
83
  id: "sat-node-card-reset",
82
84
  label: "Reset",
83
- icon: G,
85
+ icon: Q,
84
86
  disabled: !g,
85
- onClick: z
87
+ onClick: X
86
88
  }
87
89
  ];
88
90
  return s === "STUDENT" && t ? null : /* @__PURE__ */ e("div", { ref: k, children: /* @__PURE__ */ e(
89
- re,
91
+ ce,
90
92
  {
91
93
  $background: d ? "WHITE_1" : "WHITE_3",
92
94
  $gutterX: 1,
@@ -104,7 +106,7 @@ const ce = ({
104
106
  children: [
105
107
  A === "Puzzles" ? _ : A,
106
108
  " ",
107
- y
109
+ B
108
110
  ]
109
111
  }
110
112
  ),
@@ -118,63 +120,69 @@ const ce = ({
118
120
  }
119
121
  )
120
122
  ] }),
121
- B && /* @__PURE__ */ e(
122
- N,
123
+ P && /* @__PURE__ */ e(
124
+ D,
123
125
  {
124
126
  targetElement: /* @__PURE__ */ e(
125
- ie,
127
+ se,
126
128
  {
127
129
  $width: 20,
128
130
  $height: 20,
129
131
  $justifyContent: "center",
130
132
  $alignItems: "center",
131
- children: /* @__PURE__ */ e(q, { width: 18, height: 18 })
133
+ children: /* @__PURE__ */ e(N, { width: 18, height: 18 })
132
134
  }
133
135
  ),
134
- menuElement: /* @__PURE__ */ e(U, { options: F }),
136
+ menuElement: /* @__PURE__ */ e(ee, { options: Y }),
135
137
  menuOffset: 5,
136
138
  menuZIndex: 4
137
139
  }
138
140
  )
139
141
  ] }),
140
- /* @__PURE__ */ e(X, { children: o ? /* @__PURE__ */ e(
141
- D,
142
+ /* @__PURE__ */ e(q, { children: o ? /* @__PURE__ */ e(
143
+ te,
142
144
  {
143
145
  userType: s,
144
146
  imageHue: u || "BLUE",
145
147
  sheets: i,
146
- blockStats: H,
147
- blockState: V,
148
- blockStatement: W,
148
+ blockStats: V,
149
+ blockState: W,
150
+ blockStatement: y,
149
151
  onNodeAttempt: b,
150
152
  onNodeReview: n,
151
153
  blockPermissions: C
152
154
  }
153
- ) : /* @__PURE__ */ e(oe, { children: i.map((c) => /* @__PURE__ */ e(
154
- Q,
155
+ ) : /* @__PURE__ */ e(le, { children: i.map((c, Z) => /* @__PURE__ */ e(
156
+ "div",
155
157
  {
156
- imageHue: u || "BLUE",
157
- userType: s,
158
- nodeData: c,
159
- blockType: h,
160
- isSkipped: t,
161
- onNodeAttempt: b,
162
- onNodeAssignAsHomework: L,
163
- onNodeMarkAsDone: I,
164
- onNodeReattempt: M,
165
- onNodeReview: n,
166
- onNodeView: O,
167
- onNodeUnassign: w,
168
- onNodeUnlock: K,
169
- onNodeSkipUnSkip: j
158
+ ref: I && Z === 0 ? L : void 0,
159
+ children: /* @__PURE__ */ e(
160
+ R,
161
+ {
162
+ imageHue: u || "BLUE",
163
+ userType: s,
164
+ nodeData: c,
165
+ blockType: h,
166
+ isSkipped: t,
167
+ onNodeAttempt: b,
168
+ onNodeAssignAsHomework: M,
169
+ onNodeMarkAsDone: O,
170
+ onNodeReattempt: w,
171
+ onNodeReview: n,
172
+ onNodeView: K,
173
+ onNodeUnassign: j,
174
+ onNodeUnlock: v,
175
+ onNodeSkipUnSkip: H
176
+ }
177
+ )
170
178
  },
171
179
  c.node_id
172
180
  )) }) })
173
181
  ] })
174
182
  }
175
183
  ) });
176
- }, Ae = Y(ce);
184
+ }, ke = G(me);
177
185
  export {
178
- Ae as default
186
+ ke as default
179
187
  };
180
188
  //# sourceMappingURL=block-section-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"block-section-view.js","sources":["../../../../../src/features/chapters-v2/chapter-details/block-sections/block-section-view.tsx"],"sourcesContent":["import { memo, useCallback, type FC } from 'react';\n\nimport Eye2Icon from '../../../../assets/line-icons/icons/eye2';\nimport MoreVerticalIcon from '../../../../assets/line-icons/icons/more-vertical';\nimport RedoIcon from '../../../../assets/line-icons/icons/redo';\nimport SkipIcon from '../../../../assets/line-icons/icons/skip';\nimport ContextMenu from '../../../ui/context-menu/context-menu';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport NodeCard from '../../comps/node-card/node-card';\nimport NodeMenuOptions from '../../comps/node-card/node-menu-options/node-menu-options';\nimport type { INodeMenuOption } from '../../comps/node-card/node-menu-options/node-menu-options-types';\nimport SatMockTest from '../../comps/sat-mock-test/sat-mock-test';\nimport { BLOCK_NAME, BLOCK_TYPE } from '../../constants/block-constants';\nimport { getSheetNLessonCount } from '../../utils';\nimport { getNextAccessibleSATSheet } from '../../utils/sat-sheet-utils';\nimport * as Styled from './block-sections-styled';\nimport type { IBlockSectionProps } from './block-sections-types';\n\nconst BlockSectionView: FC<IBlockSectionProps> = ({\n userType,\n imageHue,\n blockData,\n lessonIdx,\n isLastBlock,\n isGoalBlock,\n blockSectionRef,\n onNodeAttempt,\n onNodeAssignAsHomework,\n onNodeMarkAsDone,\n onNodeReattempt,\n onNodeReview,\n onNodeView,\n onBlockSkipUnskip,\n onNodeUnassign,\n onNodeUnlock,\n onNodeSkipUnSkip,\n onBlockReset,\n}) => {\n const {\n block_type: blockType,\n name,\n sheets,\n permissions,\n block_stats: blockStats,\n state,\n block_statement: blockStatement,\n } = blockData;\n\n const isSatMockTestBlock = blockType === BLOCK_TYPE.SAT_MOCK_TEST;\n\n const {\n can_skip: canSkip,\n can_un_skip: canUnskip,\n can_reset: canReset,\n can_review: canReview,\n } = permissions;\n const blockName = BLOCK_NAME[blockType];\n\n const sheetNLessonCount = getSheetNLessonCount({\n isSkipped: canUnskip,\n sheetsLength: sheets.length,\n isGoalBlock,\n lessonIdx,\n isSatMockTestBlock,\n });\n\n const canRenderMenuOptions =\n (isSatMockTestBlock && (canReset || canReview)) ||\n (userType === 'TEACHER' && (canSkip || canUnskip));\n\n const handleSATSheetReview = useCallback(() => {\n const nextAccessibleSATSheet = getNextAccessibleSATSheet(sheets);\n\n if (!nextAccessibleSATSheet) {\n throw new Error('Active SAT sheet is not available');\n }\n\n onNodeReview?.(nextAccessibleSATSheet);\n }, [onNodeReview, sheets]);\n\n const handleBlockSkipUnskip = useCallback(() => {\n onBlockSkipUnskip?.(blockData, canSkip);\n }, [blockData, canSkip, onBlockSkipUnskip]);\n\n const handleBlockReset = useCallback(() => {\n onBlockReset?.(blockData);\n }, [blockData, onBlockReset]);\n\n const menuOptions: INodeMenuOption[] = [\n {\n id: 'node-card-skip',\n label: canUnskip ? `Revert 'Skip'` : 'Skip All',\n icon: SkipIcon,\n disabled: isSatMockTestBlock,\n onClick: handleBlockSkipUnskip,\n },\n {\n id: 'sat-node-card-review',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleSATSheetReview,\n },\n {\n id: 'sat-node-card-reset',\n label: 'Reset',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleBlockReset,\n },\n ];\n\n if (userType === 'STUDENT' && canUnskip) return null;\n\n return (\n <div ref={blockSectionRef}>\n <Styled.BlockSectionWrapper\n $background={isGoalBlock ? `WHITE_1` : 'WHITE_3'}\n $gutterX={1}\n $lastBlock={isLastBlock}\n $flexGap={12}\n >\n <FlexView $flexGap={12}>\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"space-between\">\n <FlexView $opacity={canUnskip ? 0.5 : 1}>\n <Text\n $renderAs=\"ac4\"\n $color=\"BLACK_T_60\"\n $textDecoration={canUnskip ? 'line-through' : 'none'}\n >\n {blockName === 'Puzzles' ? name : blockName} {sheetNLessonCount}\n </Text>\n\n {!!isGoalBlock && !!lessonIdx && !isSatMockTestBlock && (\n <Text\n $renderAs=\"ab2-bold\"\n $color=\"BLACK_1\"\n $textDecoration={canUnskip ? 'line-through' : 'none'}\n >\n {name}\n </Text>\n )}\n </FlexView>\n\n {canRenderMenuOptions && (\n <ContextMenu\n targetElement={\n <Styled.BlockOptionsWrapper\n $width={20}\n $height={20}\n $justifyContent=\"center\"\n $alignItems=\"center\"\n >\n <MoreVerticalIcon width={18} height={18} />\n </Styled.BlockOptionsWrapper>\n }\n menuElement={<NodeMenuOptions options={menuOptions} />}\n menuOffset={5}\n menuZIndex={4}\n />\n )}\n </FlexView>\n\n <>\n {isSatMockTestBlock ? (\n <SatMockTest\n userType={userType}\n imageHue={imageHue || 'BLUE'}\n sheets={sheets}\n blockStats={blockStats}\n blockState={state}\n blockStatement={blockStatement}\n onNodeAttempt={onNodeAttempt}\n onNodeReview={onNodeReview}\n blockPermissions={permissions}\n />\n ) : (\n <Styled.BlockSheetContainer>\n {sheets.map(nodeData => (\n <NodeCard\n key={nodeData.node_id}\n imageHue={imageHue || 'BLUE'}\n userType={userType}\n nodeData={nodeData}\n blockType={blockType}\n isSkipped={canUnskip}\n onNodeAttempt={onNodeAttempt}\n onNodeAssignAsHomework={onNodeAssignAsHomework}\n onNodeMarkAsDone={onNodeMarkAsDone}\n onNodeReattempt={onNodeReattempt}\n onNodeReview={onNodeReview}\n onNodeView={onNodeView}\n onNodeUnassign={onNodeUnassign}\n onNodeUnlock={onNodeUnlock}\n onNodeSkipUnSkip={onNodeSkipUnSkip}\n />\n ))}\n </Styled.BlockSheetContainer>\n )}\n </>\n </FlexView>\n </Styled.BlockSectionWrapper>\n </div>\n );\n};\n\nexport default memo(BlockSectionView);\n"],"names":["BlockSectionView","userType","imageHue","blockData","lessonIdx","isLastBlock","isGoalBlock","blockSectionRef","onNodeAttempt","onNodeAssignAsHomework","onNodeMarkAsDone","onNodeReattempt","onNodeReview","onNodeView","onBlockSkipUnskip","onNodeUnassign","onNodeUnlock","onNodeSkipUnSkip","onBlockReset","blockType","name","sheets","permissions","blockStats","state","blockStatement","isSatMockTestBlock","BLOCK_TYPE","canSkip","canUnskip","canReset","canReview","blockName","BLOCK_NAME","sheetNLessonCount","getSheetNLessonCount","canRenderMenuOptions","handleSATSheetReview","useCallback","nextAccessibleSATSheet","getNextAccessibleSATSheet","handleBlockSkipUnskip","handleBlockReset","menuOptions","SkipIcon","Eye2Icon","RedoIcon","jsx","Styled.BlockSectionWrapper","jsxs","FlexView","Text","ContextMenu","Styled.BlockOptionsWrapper","MoreVerticalIcon","NodeMenuOptions","SatMockTest","Styled.BlockSheetContainer","nodeData","NodeCard","BlockSectionView$1","memo"],"mappings":"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"}
1
+ {"version":3,"file":"block-section-view.js","sources":["../../../../../src/features/chapters-v2/chapter-details/block-sections/block-section-view.tsx"],"sourcesContent":["import { memo, useCallback, type FC } from 'react';\n\nimport Eye2Icon from '../../../../assets/line-icons/icons/eye2';\nimport MoreVerticalIcon from '../../../../assets/line-icons/icons/more-vertical';\nimport RedoIcon from '../../../../assets/line-icons/icons/redo';\nimport SkipIcon from '../../../../assets/line-icons/icons/skip';\nimport ContextMenu from '../../../ui/context-menu/context-menu';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport NodeCard from '../../comps/node-card/node-card';\nimport NodeMenuOptions from '../../comps/node-card/node-menu-options/node-menu-options';\nimport type { INodeMenuOption } from '../../comps/node-card/node-menu-options/node-menu-options-types';\nimport SatMockTest from '../../comps/sat-mock-test/sat-mock-test';\nimport { BLOCK_NAME, BLOCK_TYPE } from '../../constants/block-constants';\nimport { getSheetNLessonCount } from '../../utils';\nimport { getNextAccessibleSATSheet } from '../../utils/sat-sheet-utils';\nimport * as Styled from './block-sections-styled';\nimport type { IBlockSectionProps } from './block-sections-types';\n\nconst BlockSectionView: FC<IBlockSectionProps> = ({\n userType,\n imageHue,\n blockData,\n lessonIdx,\n isLastBlock,\n isGoalBlock,\n blockSectionRef,\n firstNodeCardRef,\n isFirstBlock,\n onNodeAttempt,\n onNodeAssignAsHomework,\n onNodeMarkAsDone,\n onNodeReattempt,\n onNodeReview,\n onNodeView,\n onBlockSkipUnskip,\n onNodeUnassign,\n onNodeUnlock,\n onNodeSkipUnSkip,\n onBlockReset,\n}) => {\n const {\n block_type: blockType,\n name,\n sheets,\n permissions,\n block_stats: blockStats,\n state,\n block_statement: blockStatement,\n } = blockData;\n\n const isSatMockTestBlock = blockType === BLOCK_TYPE.SAT_MOCK_TEST;\n\n const {\n can_skip: canSkip,\n can_un_skip: canUnskip,\n can_reset: canReset,\n can_review: canReview,\n } = permissions;\n const blockName = BLOCK_NAME[blockType];\n\n const sheetNLessonCount = getSheetNLessonCount({\n isSkipped: canUnskip,\n sheetsLength: sheets.length,\n isGoalBlock,\n lessonIdx,\n isSatMockTestBlock,\n });\n\n const canRenderMenuOptions =\n (isSatMockTestBlock && (canReset || canReview)) ||\n (userType === 'TEACHER' && (canSkip || canUnskip));\n\n const handleSATSheetReview = useCallback(() => {\n const nextAccessibleSATSheet = getNextAccessibleSATSheet(sheets);\n\n if (!nextAccessibleSATSheet) {\n throw new Error('Active SAT sheet is not available');\n }\n\n onNodeReview?.(nextAccessibleSATSheet);\n }, [onNodeReview, sheets]);\n\n const handleBlockSkipUnskip = useCallback(() => {\n onBlockSkipUnskip?.(blockData, canSkip);\n }, [blockData, canSkip, onBlockSkipUnskip]);\n\n const handleBlockReset = useCallback(() => {\n onBlockReset?.(blockData);\n }, [blockData, onBlockReset]);\n\n const menuOptions: INodeMenuOption[] = [\n {\n id: 'node-card-skip',\n label: canUnskip ? `Revert 'Skip'` : 'Skip All',\n icon: SkipIcon,\n disabled: isSatMockTestBlock,\n onClick: handleBlockSkipUnskip,\n },\n {\n id: 'sat-node-card-review',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleSATSheetReview,\n },\n {\n id: 'sat-node-card-reset',\n label: 'Reset',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleBlockReset,\n },\n ];\n\n if (userType === 'STUDENT' && canUnskip) return null;\n\n return (\n <div ref={blockSectionRef}>\n <Styled.BlockSectionWrapper\n $background={isGoalBlock ? `WHITE_1` : 'WHITE_3'}\n $gutterX={1}\n $lastBlock={isLastBlock}\n $flexGap={12}\n >\n <FlexView $flexGap={12}>\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"space-between\">\n <FlexView $opacity={canUnskip ? 0.5 : 1}>\n <Text\n $renderAs=\"ac4\"\n $color=\"BLACK_T_60\"\n $textDecoration={canUnskip ? 'line-through' : 'none'}\n >\n {blockName === 'Puzzles' ? name : blockName} {sheetNLessonCount}\n </Text>\n\n {!!isGoalBlock && !!lessonIdx && !isSatMockTestBlock && (\n <Text\n $renderAs=\"ab2-bold\"\n $color=\"BLACK_1\"\n $textDecoration={canUnskip ? 'line-through' : 'none'}\n >\n {name}\n </Text>\n )}\n </FlexView>\n\n {canRenderMenuOptions && (\n <ContextMenu\n targetElement={\n <Styled.BlockOptionsWrapper\n $width={20}\n $height={20}\n $justifyContent=\"center\"\n $alignItems=\"center\"\n >\n <MoreVerticalIcon width={18} height={18} />\n </Styled.BlockOptionsWrapper>\n }\n menuElement={<NodeMenuOptions options={menuOptions} />}\n menuOffset={5}\n menuZIndex={4}\n />\n )}\n </FlexView>\n\n <>\n {isSatMockTestBlock ? (\n <SatMockTest\n userType={userType}\n imageHue={imageHue || 'BLUE'}\n sheets={sheets}\n blockStats={blockStats}\n blockState={state}\n blockStatement={blockStatement}\n onNodeAttempt={onNodeAttempt}\n onNodeReview={onNodeReview}\n blockPermissions={permissions}\n />\n ) : (\n <Styled.BlockSheetContainer>\n {sheets.map((nodeData, nodeIdx) => (\n <div\n key={nodeData.node_id}\n ref={isFirstBlock && nodeIdx === 0 ? firstNodeCardRef : undefined}\n >\n <NodeCard\n imageHue={imageHue || 'BLUE'}\n userType={userType}\n nodeData={nodeData}\n blockType={blockType}\n isSkipped={canUnskip}\n onNodeAttempt={onNodeAttempt}\n onNodeAssignAsHomework={onNodeAssignAsHomework}\n onNodeMarkAsDone={onNodeMarkAsDone}\n onNodeReattempt={onNodeReattempt}\n onNodeReview={onNodeReview}\n onNodeView={onNodeView}\n onNodeUnassign={onNodeUnassign}\n onNodeUnlock={onNodeUnlock}\n onNodeSkipUnSkip={onNodeSkipUnSkip}\n />\n </div>\n ))}\n </Styled.BlockSheetContainer>\n )}\n </>\n </FlexView>\n </Styled.BlockSectionWrapper>\n </div>\n );\n};\n\nexport default memo(BlockSectionView);\n"],"names":["BlockSectionView","userType","imageHue","blockData","lessonIdx","isLastBlock","isGoalBlock","blockSectionRef","firstNodeCardRef","isFirstBlock","onNodeAttempt","onNodeAssignAsHomework","onNodeMarkAsDone","onNodeReattempt","onNodeReview","onNodeView","onBlockSkipUnskip","onNodeUnassign","onNodeUnlock","onNodeSkipUnSkip","onBlockReset","blockType","name","sheets","permissions","blockStats","state","blockStatement","isSatMockTestBlock","BLOCK_TYPE","canSkip","canUnskip","canReset","canReview","blockName","BLOCK_NAME","sheetNLessonCount","getSheetNLessonCount","canRenderMenuOptions","handleSATSheetReview","useCallback","nextAccessibleSATSheet","getNextAccessibleSATSheet","handleBlockSkipUnskip","handleBlockReset","menuOptions","SkipIcon","Eye2Icon","RedoIcon","jsx","Styled.BlockSectionWrapper","jsxs","FlexView","Text","ContextMenu","Styled.BlockOptionsWrapper","MoreVerticalIcon","NodeMenuOptions","SatMockTest","Styled.BlockSheetContainer","nodeData","nodeIdx","NodeCard","BlockSectionView$1","memo"],"mappings":"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"}