@cuemath/leap 2.8.50 → 2.8.51-beta-0.2
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.
- package/dist/assets/illustrations/illustrations.js +10 -0
- package/dist/assets/illustrations/illustrations.js.map +1 -1
- package/dist/assets/line-icons/icons/alarm.js +41 -0
- package/dist/assets/line-icons/icons/alarm.js.map +1 -0
- package/dist/assets/line-icons/icons/clear-all.js +53 -0
- package/dist/assets/line-icons/icons/clear-all.js.map +1 -0
- package/dist/assets/line-icons/icons/dart.js +23 -0
- package/dist/assets/line-icons/icons/dart.js.map +1 -0
- package/dist/assets/line-icons/icons/download.js +48 -0
- package/dist/assets/line-icons/icons/download.js.map +1 -0
- package/dist/assets/line-icons/icons/equation.js +48 -0
- package/dist/assets/line-icons/icons/equation.js.map +1 -0
- package/dist/assets/line-icons/icons/exclamation.js +26 -0
- package/dist/assets/line-icons/icons/exclamation.js.map +1 -0
- package/dist/assets/line-icons/icons/grid-icon.js +42 -0
- package/dist/assets/line-icons/icons/grid-icon.js.map +1 -0
- package/dist/assets/line-icons/icons/home2.js +25 -0
- package/dist/assets/line-icons/icons/home2.js.map +1 -0
- package/dist/assets/line-icons/icons/important.js +23 -0
- package/dist/assets/line-icons/icons/important.js.map +1 -0
- package/dist/assets/line-icons/icons/pan.js +98 -0
- package/dist/assets/line-icons/icons/pan.js.map +1 -0
- package/dist/assets/line-icons/icons/puzzle.js +25 -0
- package/dist/assets/line-icons/icons/puzzle.js.map +1 -0
- package/dist/assets/line-icons/icons/recap.js +32 -0
- package/dist/assets/line-icons/icons/recap.js.map +1 -0
- package/dist/assets/line-icons/icons/square-checked-grid.js +25 -0
- package/dist/assets/line-icons/icons/square-checked-grid.js.map +1 -0
- package/dist/assets/line-icons/icons/square-dots.js +32 -0
- package/dist/assets/line-icons/icons/square-dots.js.map +1 -0
- package/dist/assets/line-icons/icons/square-grid.js +17 -0
- package/dist/assets/line-icons/icons/square-grid.js.map +1 -0
- package/dist/assets/line-icons/icons/square2-grid.js +13 -0
- package/dist/assets/line-icons/icons/square2-grid.js.map +1 -0
- package/dist/assets/line-icons/icons/status.js +41 -0
- package/dist/assets/line-icons/icons/status.js.map +1 -0
- package/dist/assets/line-icons/icons/testtube.js +33 -0
- package/dist/assets/line-icons/icons/testtube.js.map +1 -0
- package/dist/assets/line-icons/icons/text-icon.js +48 -0
- package/dist/assets/line-icons/icons/text-icon.js.map +1 -0
- package/dist/assets/line-icons/icons/tri-dots.js +27 -0
- package/dist/assets/line-icons/icons/tri-dots.js.map +1 -0
- package/dist/assets/line-icons/icons/tri-grid.js +27 -0
- package/dist/assets/line-icons/icons/tri-grid.js.map +1 -0
- package/dist/assets/line-icons/icons/tri2-dots.js +27 -0
- package/dist/assets/line-icons/icons/tri2-dots.js.map +1 -0
- package/dist/assets/line-icons/icons/tri2-grid.js +27 -0
- package/dist/assets/line-icons/icons/tri2-grid.js.map +1 -0
- package/dist/assets/line-icons/icons/upload.js +48 -0
- package/dist/assets/line-icons/icons/upload.js.map +1 -0
- package/dist/assets/line-icons/icons/zoom-in.js +58 -0
- package/dist/assets/line-icons/icons/zoom-in.js.map +1 -0
- package/dist/assets/line-icons/icons/zoom-out.js +48 -0
- package/dist/assets/line-icons/icons/zoom-out.js.map +1 -0
- package/dist/features/chapters-v2/api/chapter.js +10 -0
- package/dist/features/chapters-v2/api/chapter.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js +116 -0
- package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections-styled.js +26 -0
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections-styled.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js +68 -0
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner-styled.js +90 -0
- package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner-styled.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js +95 -0
- package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/chapter-details-styled.js +38 -0
- package/dist/features/chapters-v2/chapter-details/chapter-details-styled.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/chapter-details.js +89 -0
- package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/border-path-animation.js +13 -0
- package/dist/features/chapters-v2/comps/node-card/border-path-animation.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/node-card-styled.js +134 -0
- package/dist/features/chapters-v2/comps/node-card/node-card-styled.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/node-card-tags.js +12 -0
- package/dist/features/chapters-v2/comps/node-card/node-card-tags.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/node-card.js +12 -0
- package/dist/features/chapters-v2/comps/node-card/node-card.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options-styled.js +32 -0
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options-styled.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js +31 -0
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js +154 -0
- package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js +178 -0
- package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js.map +1 -0
- package/dist/features/chapters-v2/comps/tag/tag-styled.js +13 -0
- package/dist/features/chapters-v2/comps/tag/tag-styled.js.map +1 -0
- package/dist/features/chapters-v2/comps/tag/tag.js +28 -0
- package/dist/features/chapters-v2/comps/tag/tag.js.map +1 -0
- package/dist/features/chapters-v2/constants/block-constants.js +18 -0
- package/dist/features/chapters-v2/constants/block-constants.js.map +1 -0
- package/dist/features/chapters-v2/utils/index.js +11 -0
- package/dist/features/chapters-v2/utils/index.js.map +1 -0
- package/dist/features/chapters-v2/utils/node-card-utils.js +72 -0
- package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -0
- package/dist/features/cue-canvas/cue-canvas-core.js +138 -49
- package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
- package/dist/features/cue-canvas/cue-canvas-helpers.js +88 -29
- package/dist/features/cue-canvas/cue-canvas-helpers.js.map +1 -1
- package/dist/features/cue-canvas/cue-canvas.js +57 -49
- package/dist/features/cue-canvas/cue-canvas.js.map +1 -1
- package/dist/features/cue-canvas/cue-cavas-styled.js +127 -92
- package/dist/features/cue-canvas/cue-cavas-styled.js.map +1 -1
- package/dist/features/cue-canvas/toolbar/color-palette.js +49 -0
- package/dist/features/cue-canvas/toolbar/color-palette.js.map +1 -0
- package/dist/features/cue-canvas/toolbar/color-picker-menu.js +62 -0
- package/dist/features/cue-canvas/toolbar/color-picker-menu.js.map +1 -0
- package/dist/features/cue-canvas/toolbar/grid-menu.js +62 -0
- package/dist/features/cue-canvas/toolbar/grid-menu.js.map +1 -0
- package/dist/features/cue-canvas/toolbar/icon-map.js +58 -0
- package/dist/features/cue-canvas/toolbar/icon-map.js.map +1 -0
- package/dist/features/cue-canvas/toolbar/pen-tool-menu.js +56 -0
- package/dist/features/cue-canvas/toolbar/pen-tool-menu.js.map +1 -0
- package/dist/features/cue-canvas/toolbar/tool.js +34 -0
- package/dist/features/cue-canvas/toolbar/tool.js.map +1 -0
- package/dist/features/cue-canvas/toolbar/toolbar.js +18 -87
- package/dist/features/cue-canvas/toolbar/toolbar.js.map +1 -1
- package/dist/features/cue-canvas/toolbar/whiteboard-toolbar.js +16 -0
- package/dist/features/cue-canvas/toolbar/whiteboard-toolbar.js.map +1 -0
- package/dist/features/ui/arrow-tooltip/arrow-tooltip.js +30 -29
- package/dist/features/ui/arrow-tooltip/arrow-tooltip.js.map +1 -1
- package/dist/features/ui/context-menu/context-menu-styled.js +28 -14
- package/dist/features/ui/context-menu/context-menu-styled.js.map +1 -1
- package/dist/features/ui/context-menu/context-menu.js +30 -15
- package/dist/features/ui/context-menu/context-menu.js.map +1 -1
- package/dist/features/ui/theme/button.js +17 -102
- package/dist/features/ui/theme/button.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js +7 -7
- package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/scribble-switch.js.map +1 -1
- package/dist/index.d.ts +177 -3
- package/dist/index.js +485 -471
- package/dist/index.js.map +1 -1
- package/dist/static/chapter-header-bg-2.c8d96894.svg +1 -0
- package/dist/static/chapter-header-bg.4ed173c2.svg +1 -0
- package/dist/static/node-custom-test-bg.d3b757be.svg +1 -0
- package/dist/static/node-learn-bg.b61f815c.svg +1 -0
- package/dist/static/node-practice-bg.16cbaf2a.svg +1 -0
- package/dist/static/node-project-bg.e6a33e28.svg +1 -0
- package/dist/static/node-puzzle-bg.3422135c.svg +1 -0
- package/dist/static/node-recap-bg.546154e4.svg +1 -0
- package/dist/static/node-test-prep-bg.42c0b9c4.svg +1 -0
- package/dist/static/node-video-bg.3df3f73a.svg +1 -0
- package/package.json +3 -2
- package/dist/features/cue-canvas/toolbar/color-pallete.js +0 -49
- package/dist/features/cue-canvas/toolbar/color-pallete.js.map +0 -1
@@ -0,0 +1,58 @@
|
|
1
|
+
import { jsxs as t, jsx as o } from "react/jsx-runtime";
|
2
|
+
const s = (e) => /* @__PURE__ */ t(
|
3
|
+
"svg",
|
4
|
+
{
|
5
|
+
width: "20",
|
6
|
+
height: "20",
|
7
|
+
viewBox: "0 0 20 20",
|
8
|
+
fill: "none",
|
9
|
+
xmlns: "http://www.w3.org/2000/svg",
|
10
|
+
...e,
|
11
|
+
children: [
|
12
|
+
/* @__PURE__ */ o(
|
13
|
+
"path",
|
14
|
+
{
|
15
|
+
d: "M9.72221 15.2771C12.7905 15.2771 15.2778 12.7898 15.2778 9.72157C15.2778 6.65332 12.7905 4.16602 9.72221 4.16602C6.65396 4.16602 4.16666 6.65332 4.16666 9.72157C4.16666 12.7898 6.65396 15.2771 9.72221 15.2771Z",
|
16
|
+
stroke: "#2B2B2B",
|
17
|
+
strokeWidth: "1.38889",
|
18
|
+
strokeLinecap: "round",
|
19
|
+
strokeLinejoin: "round"
|
20
|
+
}
|
21
|
+
),
|
22
|
+
/* @__PURE__ */ o(
|
23
|
+
"path",
|
24
|
+
{
|
25
|
+
d: "M16.6667 16.6663L13.6458 13.6455",
|
26
|
+
stroke: "#2B2B2B",
|
27
|
+
strokeWidth: "1.38889",
|
28
|
+
strokeLinecap: "square",
|
29
|
+
strokeLinejoin: "round"
|
30
|
+
}
|
31
|
+
),
|
32
|
+
/* @__PURE__ */ o(
|
33
|
+
"path",
|
34
|
+
{
|
35
|
+
d: "M9.72166 7.63867V11.8053",
|
36
|
+
stroke: "#2B2B2B",
|
37
|
+
strokeWidth: "1.38889",
|
38
|
+
strokeLinecap: "square",
|
39
|
+
strokeLinejoin: "round"
|
40
|
+
}
|
41
|
+
),
|
42
|
+
/* @__PURE__ */ o(
|
43
|
+
"path",
|
44
|
+
{
|
45
|
+
d: "M7.63834 9.72168H11.805",
|
46
|
+
stroke: "#2B2B2B",
|
47
|
+
strokeWidth: "1.38889",
|
48
|
+
strokeLinecap: "square",
|
49
|
+
strokeLinejoin: "round"
|
50
|
+
}
|
51
|
+
)
|
52
|
+
]
|
53
|
+
}
|
54
|
+
);
|
55
|
+
export {
|
56
|
+
s as default
|
57
|
+
};
|
58
|
+
//# sourceMappingURL=zoom-in.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"zoom-in.js","sources":["../../../../src/assets/line-icons/icons/zoom-in.tsx"],"sourcesContent":["const ZoomInIcon: React.FC<React.SVGProps<SVGSVGElement>> = props => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M9.72221 15.2771C12.7905 15.2771 15.2778 12.7898 15.2778 9.72157C15.2778 6.65332 12.7905 4.16602 9.72221 4.16602C6.65396 4.16602 4.16666 6.65332 4.16666 9.72157C4.16666 12.7898 6.65396 15.2771 9.72221 15.2771Z\"\n stroke=\"#2B2B2B\"\n strokeWidth=\"1.38889\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M16.6667 16.6663L13.6458 13.6455\"\n stroke=\"#2B2B2B\"\n strokeWidth=\"1.38889\"\n strokeLinecap=\"square\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M9.72166 7.63867V11.8053\"\n stroke=\"#2B2B2B\"\n strokeWidth=\"1.38889\"\n strokeLinecap=\"square\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M7.63834 9.72168H11.805\"\n stroke=\"#2B2B2B\"\n strokeWidth=\"1.38889\"\n strokeLinecap=\"square\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport default ZoomInIcon;\n"],"names":["ZoomInIcon","props","jsxs","jsx"],"mappings":";AAAA,MAAMA,IAAsD,CAC1DC,MAAA,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IACL,GAAGD;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MACjB;AAAA,IAAA;AAAA,EAAA;AACF;"}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
import { jsxs as e, jsx as o } from "react/jsx-runtime";
|
2
|
+
const s = (t) => /* @__PURE__ */ e(
|
3
|
+
"svg",
|
4
|
+
{
|
5
|
+
width: "20",
|
6
|
+
height: "20",
|
7
|
+
viewBox: "0 0 20 20",
|
8
|
+
fill: "none",
|
9
|
+
xmlns: "http://www.w3.org/2000/svg",
|
10
|
+
...t,
|
11
|
+
children: [
|
12
|
+
/* @__PURE__ */ o(
|
13
|
+
"path",
|
14
|
+
{
|
15
|
+
d: "M9.7222 15.2771C12.7905 15.2771 15.2778 12.7898 15.2778 9.72157C15.2778 6.65332 12.7905 4.16602 9.7222 4.16602C6.65396 4.16602 4.16665 6.65332 4.16665 9.72157C4.16665 12.7898 6.65396 15.2771 9.7222 15.2771Z",
|
16
|
+
stroke: "#2B2B2B",
|
17
|
+
strokeWidth: "1.38889",
|
18
|
+
strokeLinecap: "round",
|
19
|
+
strokeLinejoin: "round"
|
20
|
+
}
|
21
|
+
),
|
22
|
+
/* @__PURE__ */ o(
|
23
|
+
"path",
|
24
|
+
{
|
25
|
+
d: "M16.6666 16.6663L13.6458 13.6455",
|
26
|
+
stroke: "#2B2B2B",
|
27
|
+
strokeWidth: "1.38889",
|
28
|
+
strokeLinecap: "square",
|
29
|
+
strokeLinejoin: "round"
|
30
|
+
}
|
31
|
+
),
|
32
|
+
/* @__PURE__ */ o(
|
33
|
+
"path",
|
34
|
+
{
|
35
|
+
d: "M7.63833 9.72168H11.805",
|
36
|
+
stroke: "#2B2B2B",
|
37
|
+
strokeWidth: "1.38889",
|
38
|
+
strokeLinecap: "square",
|
39
|
+
strokeLinejoin: "round"
|
40
|
+
}
|
41
|
+
)
|
42
|
+
]
|
43
|
+
}
|
44
|
+
);
|
45
|
+
export {
|
46
|
+
s as default
|
47
|
+
};
|
48
|
+
//# sourceMappingURL=zoom-out.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"zoom-out.js","sources":["../../../../src/assets/line-icons/icons/zoom-out.tsx"],"sourcesContent":["const ZoomOutIcon: React.FC<React.SVGProps<SVGSVGElement>> = props => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M9.7222 15.2771C12.7905 15.2771 15.2778 12.7898 15.2778 9.72157C15.2778 6.65332 12.7905 4.16602 9.7222 4.16602C6.65396 4.16602 4.16665 6.65332 4.16665 9.72157C4.16665 12.7898 6.65396 15.2771 9.7222 15.2771Z\"\n stroke=\"#2B2B2B\"\n strokeWidth=\"1.38889\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M16.6666 16.6663L13.6458 13.6455\"\n stroke=\"#2B2B2B\"\n strokeWidth=\"1.38889\"\n strokeLinecap=\"square\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M7.63833 9.72168H11.805\"\n stroke=\"#2B2B2B\"\n strokeWidth=\"1.38889\"\n strokeLinecap=\"square\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport default ZoomOutIcon;\n"],"names":["ZoomOutIcon","props","jsxs","jsx"],"mappings":";AAAA,MAAMA,IAAuD,CAC3DC,MAAA,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IACL,GAAGD;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MACjB;AAAA,IAAA;AAAA,EAAA;AACF;"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { createGetAPI as r } from "@cuemath/rest-api";
|
2
|
+
import { BASE_URL_V3_1 as a } from "../../../constants/api.js";
|
3
|
+
const { useGet: p, invalidate: l } = r({
|
4
|
+
getURL: (e, s, { studentId: t }) => `${a}/users/${t}/user-chapters/${e} `
|
5
|
+
});
|
6
|
+
export {
|
7
|
+
l as invalidateGetChapterDetails,
|
8
|
+
p as useGetChapterDetails
|
9
|
+
};
|
10
|
+
//# sourceMappingURL=chapter.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"chapter.js","sources":["../../../../src/features/chapters-v2/api/chapter.ts"],"sourcesContent":["import type { IUserChapterData } from '../chapter-details/chapter-details-types';\n\nimport { createGetAPI } from '@cuemath/rest-api';\n\nimport { BASE_URL_V3_1 } from '../../../constants/api';\n\nconst { useGet: useGetChapterDetails, invalidate: invalidateGetChapterDetails } = createGetAPI<\n IUserChapterData,\n void,\n { studentId: string }\n>({\n getURL: (userChapterId: string, _, { studentId }) =>\n `${BASE_URL_V3_1}/users/${studentId}/user-chapters/${userChapterId} `,\n});\n\nexport { useGetChapterDetails, invalidateGetChapterDetails };\n"],"names":["useGetChapterDetails","invalidateGetChapterDetails","createGetAPI","userChapterId","_","studentId","BASE_URL_V3_1"],"mappings":";;AAMA,MAAM,EAAE,QAAQA,GAAsB,YAAYC,EAAA,IAAgCC,EAIhF;AAAA,EACA,QAAQ,CAACC,GAAuBC,GAAG,EAAE,WAAAC,EAAA,MACnC,GAAGC,CAAa,UAAUD,CAAS,kBAAkBF,CAAa;AACtE,CAAC;"}
|
@@ -0,0 +1,116 @@
|
|
1
|
+
import { jsx as t, jsxs as o } from "react/jsx-runtime";
|
2
|
+
import w from "../../../../assets/line-icons/icons/more-vertical.js";
|
3
|
+
import A from "../../../../assets/line-icons/icons/skip.js";
|
4
|
+
import B from "../../../ui/context-menu/context-menu.js";
|
5
|
+
import l from "../../../ui/layout/flex-view.js";
|
6
|
+
import a from "../../../ui/text/text.js";
|
7
|
+
import I from "../../comps/node-card/node-card.js";
|
8
|
+
import N from "../../comps/node-card/node-menu-options/node-menu-options.js";
|
9
|
+
import { BLOCK_NAME as O } from "../../constants/block-constants.js";
|
10
|
+
import { BlockSectionWrapper as T, BlockOptionsWrapper as j, BlockSheetContainer as y } from "./block-sections-styled.js";
|
11
|
+
const F = ({
|
12
|
+
userType: r,
|
13
|
+
imageHue: n,
|
14
|
+
blockData: p,
|
15
|
+
lessonIdx: i,
|
16
|
+
isLastBlock: $,
|
17
|
+
onNodeAttempt: f,
|
18
|
+
onNodeAttemptLocationChange: h,
|
19
|
+
onNodeMarkAsDone: s,
|
20
|
+
onNodeReattempt: u,
|
21
|
+
onNodeReview: b,
|
22
|
+
onNodeView: x,
|
23
|
+
onBlockSkipUnskip: c
|
24
|
+
}) => {
|
25
|
+
const {
|
26
|
+
block_type: m,
|
27
|
+
name: C,
|
28
|
+
block_id: _,
|
29
|
+
sheets: g,
|
30
|
+
is_skipped: e
|
31
|
+
} = p, E = O[m], k = [
|
32
|
+
{
|
33
|
+
id: "node-card-skip",
|
34
|
+
label: e ? "Revert 'Skip'" : "Skip",
|
35
|
+
icon: A,
|
36
|
+
disabled: !1,
|
37
|
+
onClick: () => c == null ? void 0 : c(_, !e)
|
38
|
+
}
|
39
|
+
];
|
40
|
+
return r === "STUDENT" && e ? null : /* @__PURE__ */ t(
|
41
|
+
T,
|
42
|
+
{
|
43
|
+
$background: n ? `${n}_1` : "WHITE_1",
|
44
|
+
$gutterX: 1,
|
45
|
+
$lastBlock: $,
|
46
|
+
$flexGap: 12,
|
47
|
+
children: /* @__PURE__ */ o(l, { $flexGap: 12, children: [
|
48
|
+
/* @__PURE__ */ o(l, { $flexDirection: "row", $alignItems: "center", $justifyContent: "space-between", children: [
|
49
|
+
/* @__PURE__ */ o(l, { $opacity: e ? 0.5 : 1, children: [
|
50
|
+
/* @__PURE__ */ o(
|
51
|
+
a,
|
52
|
+
{
|
53
|
+
$renderAs: "ac4",
|
54
|
+
$color: "BLACK_T_60",
|
55
|
+
$textDecoration: e ? "line-through" : "none",
|
56
|
+
children: [
|
57
|
+
E,
|
58
|
+
" ",
|
59
|
+
i > 0 && !e && i
|
60
|
+
]
|
61
|
+
}
|
62
|
+
),
|
63
|
+
i > 0 && /* @__PURE__ */ t(
|
64
|
+
a,
|
65
|
+
{
|
66
|
+
$renderAs: "ab2-bold",
|
67
|
+
$color: "BLACK_1",
|
68
|
+
$textDecoration: e ? "line-through" : "none",
|
69
|
+
children: C
|
70
|
+
}
|
71
|
+
)
|
72
|
+
] }),
|
73
|
+
r === "TEACHER" && /* @__PURE__ */ t(
|
74
|
+
B,
|
75
|
+
{
|
76
|
+
targetElement: /* @__PURE__ */ t(
|
77
|
+
j,
|
78
|
+
{
|
79
|
+
$width: 20,
|
80
|
+
$height: 20,
|
81
|
+
$justifyContent: "center",
|
82
|
+
$alignItems: "center",
|
83
|
+
children: /* @__PURE__ */ t(w, { width: 16, height: 16 })
|
84
|
+
}
|
85
|
+
),
|
86
|
+
menuElement: /* @__PURE__ */ t(N, { options: k }),
|
87
|
+
menuOffset: 5,
|
88
|
+
menuZIndex: 4
|
89
|
+
}
|
90
|
+
)
|
91
|
+
] }),
|
92
|
+
/* @__PURE__ */ t(y, { $opacity: e ? 0.5 : 1, children: g.map((d) => /* @__PURE__ */ t(
|
93
|
+
I,
|
94
|
+
{
|
95
|
+
imageHue: n || "BLUE",
|
96
|
+
userType: r,
|
97
|
+
nodeData: d,
|
98
|
+
blockType: m,
|
99
|
+
isSkipped: e,
|
100
|
+
onNodeAttempt: f,
|
101
|
+
onNodeAttemptLocationChange: h,
|
102
|
+
onNodeMarkAsDone: s,
|
103
|
+
onNodeReattempt: u,
|
104
|
+
onNodeReview: b,
|
105
|
+
onNodeView: x
|
106
|
+
},
|
107
|
+
d.node_id
|
108
|
+
)) })
|
109
|
+
] })
|
110
|
+
}
|
111
|
+
);
|
112
|
+
};
|
113
|
+
export {
|
114
|
+
F as default
|
115
|
+
};
|
116
|
+
//# sourceMappingURL=block-section-view.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"block-section-view.js","sources":["../../../../../src/features/chapters-v2/chapter-details/block-sections/block-section-view.tsx"],"sourcesContent":["import type { INodeMenuOption } from '../../comps/node-card/node-menu-options/node-menu-options-types';\nimport type { IBlockSectionProps } from './block-sections-types';\nimport type { FC } from 'react';\n\nimport MoreVerticalIcon from '../../../../assets/line-icons/icons/more-vertical';\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 { BLOCK_NAME } from '../../constants/block-constants';\nimport * as Styled from './block-sections-styled';\n\nconst BlockSectionView: FC<IBlockSectionProps> = ({\n userType,\n imageHue,\n blockData,\n lessonIdx,\n isLastBlock,\n onNodeAttempt,\n onNodeAttemptLocationChange,\n onNodeMarkAsDone,\n onNodeReattempt,\n onNodeReview,\n onNodeView,\n onBlockSkipUnskip,\n}) => {\n const {\n block_type: blockType,\n name,\n block_id: blockId,\n sheets,\n is_skipped: isSkipped,\n } = blockData;\n\n const blockName = BLOCK_NAME[blockType];\n\n const menuOptions: INodeMenuOption[] = [\n {\n id: 'node-card-skip',\n label: isSkipped ? `Revert 'Skip'` : 'Skip',\n icon: SkipIcon,\n disabled: false,\n onClick: () => onBlockSkipUnskip?.(blockId, !isSkipped),\n },\n ];\n\n if (userType === 'STUDENT' && isSkipped) return null;\n\n return (\n <Styled.BlockSectionWrapper\n $background={imageHue ? `${imageHue}_1` : 'WHITE_1'}\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={isSkipped ? 0.5 : 1}>\n <Text\n $renderAs=\"ac4\"\n $color=\"BLACK_T_60\"\n $textDecoration={isSkipped ? 'line-through' : 'none'}\n >\n {blockName} {lessonIdx > 0 && !isSkipped && lessonIdx}\n </Text>\n {lessonIdx > 0 && (\n <Text\n $renderAs=\"ab2-bold\"\n $color=\"BLACK_1\"\n $textDecoration={isSkipped ? 'line-through' : 'none'}\n >\n {name}\n </Text>\n )}\n </FlexView>\n\n {userType === 'TEACHER' && (\n <ContextMenu\n targetElement={\n <Styled.BlockOptionsWrapper\n $width={20}\n $height={20}\n $justifyContent=\"center\"\n $alignItems=\"center\"\n >\n <MoreVerticalIcon width={16} height={16} />\n </Styled.BlockOptionsWrapper>\n }\n menuElement={<NodeMenuOptions options={menuOptions} />}\n menuOffset={5}\n menuZIndex={4}\n />\n )}\n </FlexView>\n\n <Styled.BlockSheetContainer $opacity={isSkipped ? 0.5 : 1}>\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={isSkipped}\n onNodeAttempt={onNodeAttempt}\n onNodeAttemptLocationChange={onNodeAttemptLocationChange}\n onNodeMarkAsDone={onNodeMarkAsDone}\n onNodeReattempt={onNodeReattempt}\n onNodeReview={onNodeReview}\n onNodeView={onNodeView}\n />\n ))}\n </Styled.BlockSheetContainer>\n </FlexView>\n </Styled.BlockSectionWrapper>\n );\n};\n\nexport default BlockSectionView;\n"],"names":["BlockSectionView","userType","imageHue","blockData","lessonIdx","isLastBlock","onNodeAttempt","onNodeAttemptLocationChange","onNodeMarkAsDone","onNodeReattempt","onNodeReview","onNodeView","onBlockSkipUnskip","blockType","name","blockId","sheets","isSkipped","blockName","BLOCK_NAME","menuOptions","SkipIcon","jsx","Styled.BlockSectionWrapper","jsxs","FlexView","Text","ContextMenu","Styled.BlockOptionsWrapper","MoreVerticalIcon","NodeMenuOptions","Styled.BlockSheetContainer","nodeData","NodeCard"],"mappings":";;;;;;;;;;AAcA,MAAMA,IAA2C,CAAC;AAAA,EAChD,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,6BAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,mBAAAC;AACF,MAAM;AACE,QAAA;AAAA,IACJ,YAAYC;AAAA,IACZ,MAAAC;AAAA,IACA,UAAUC;AAAA,IACV,QAAAC;AAAA,IACA,YAAYC;AAAA,EACV,IAAAd,GAEEe,IAAYC,EAAWN,CAAS,GAEhCO,IAAiC;AAAA,IACrC;AAAA,MACE,IAAI;AAAA,MACJ,OAAOH,IAAY,kBAAkB;AAAA,MACrC,MAAMI;AAAA,MACN,UAAU;AAAA,MACV,SAAS,MAAMT,KAAA,gBAAAA,EAAoBG,GAAS,CAACE;AAAA,IAC/C;AAAA,EAAA;AAGE,SAAAhB,MAAa,aAAagB,IAAkB,OAG9C,gBAAAK;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,aAAarB,IAAW,GAAGA,CAAQ,OAAO;AAAA,MAC1C,UAAU;AAAA,MACV,YAAYG;AAAA,MACZ,UAAU;AAAA,MAEV,UAAA,gBAAAmB,EAACC,GAAS,EAAA,UAAU,IAClB,UAAA;AAAA,QAAA,gBAAAD,EAACC,KAAS,gBAAe,OAAM,aAAY,UAAS,iBAAgB,iBAClE,UAAA;AAAA,UAAA,gBAAAD,EAACC,GAAS,EAAA,UAAUR,IAAY,MAAM,GACpC,UAAA;AAAA,YAAA,gBAAAO;AAAA,cAACE;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,QAAO;AAAA,gBACP,iBAAiBT,IAAY,iBAAiB;AAAA,gBAE7C,UAAA;AAAA,kBAAAC;AAAA,kBAAU;AAAA,kBAAEd,IAAY,KAAK,CAACa,KAAab;AAAA,gBAAA;AAAA,cAAA;AAAA,YAC9C;AAAA,YACCA,IAAY,KACX,gBAAAkB;AAAA,cAACI;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,QAAO;AAAA,gBACP,iBAAiBT,IAAY,iBAAiB;AAAA,gBAE7C,UAAAH;AAAA,cAAA;AAAA,YACH;AAAA,UAAA,GAEJ;AAAA,UAECb,MAAa,aACZ,gBAAAqB;AAAA,YAACK;AAAA,YAAA;AAAA,cACC,eACE,gBAAAL;AAAA,gBAACM;AAAAA,gBAAA;AAAA,kBACC,QAAQ;AAAA,kBACR,SAAS;AAAA,kBACT,iBAAgB;AAAA,kBAChB,aAAY;AAAA,kBAEZ,UAAC,gBAAAN,EAAAO,GAAA,EAAiB,OAAO,IAAI,QAAQ,IAAI;AAAA,gBAAA;AAAA,cAC3C;AAAA,cAEF,aAAa,gBAAAP,EAACQ,GAAgB,EAAA,SAASV,EAAa,CAAA;AAAA,cACpD,YAAY;AAAA,cACZ,YAAY;AAAA,YAAA;AAAA,UACd;AAAA,QAAA,GAEJ;AAAA,QAEA,gBAAAE,EAACS,GAAA,EAA2B,UAAUd,IAAY,MAAM,GACrD,UAAOD,EAAA,IAAI,CACVgB,MAAA,gBAAAV;AAAA,UAACW;AAAA,UAAA;AAAA,YAEC,UAAU/B,KAAY;AAAA,YACtB,UAAAD;AAAA,YACA,UAAA+B;AAAA,YACA,WAAAnB;AAAA,YACA,WAAAI;AAAA,YACA,eAAAX;AAAA,YACA,6BAAAC;AAAA,YACA,kBAAAC;AAAA,YACA,iBAAAC;AAAA,YACA,cAAAC;AAAA,YACA,YAAAC;AAAA,UAAA;AAAA,UAXKqB,EAAS;AAAA,QAajB,CAAA,GACH;AAAA,MAAA,GACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import o from "styled-components";
|
2
|
+
import p from "../../../ui/layout/flex-view.js";
|
3
|
+
const i = o(p)(({ $lastBlock: r }) => `
|
4
|
+
padding-top: 32px;
|
5
|
+
${r ? "padding-bottom: 32px;" : "padding-bottom: 0px;"}
|
6
|
+
`), n = o.div(({ $opacity: r }) => `
|
7
|
+
display: grid;
|
8
|
+
grid-template-columns: repeat(4, 1fr);
|
9
|
+
grid-row-gap: 12px;
|
10
|
+
grid-column-gap: 16px;
|
11
|
+
opacity: ${r ?? 1};
|
12
|
+
|
13
|
+
`), d = o(p)(({ theme: r }) => `
|
14
|
+
cursor: pointer;
|
15
|
+
|
16
|
+
&:hover {
|
17
|
+
border-radius: 50%;
|
18
|
+
background: ${r.colors.WHITE_4};
|
19
|
+
}
|
20
|
+
`);
|
21
|
+
export {
|
22
|
+
d as BlockOptionsWrapper,
|
23
|
+
i as BlockSectionWrapper,
|
24
|
+
n as BlockSheetContainer
|
25
|
+
};
|
26
|
+
//# sourceMappingURL=block-sections-styled.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"block-sections-styled.js","sources":["../../../../../src/features/chapters-v2/chapter-details/block-sections/block-sections-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../ui/layout/flex-view';\n\ninterface IBlockSectionWrapper {\n $lastBlock?: boolean;\n}\n\nconst BlockSectionWrapper = styled(FlexView)<IBlockSectionWrapper>(({ $lastBlock }) => {\n return `\n padding-top: 32px;\n ${$lastBlock ? 'padding-bottom: 32px;' : 'padding-bottom: 0px;'}\n `;\n});\n\ninterface IBlockSheetContainer {\n $opacity?: number;\n}\n\nconst BlockSheetContainer = styled.div<IBlockSheetContainer>(({ $opacity }) => {\n return `\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n grid-row-gap: 12px;\n grid-column-gap: 16px;\n opacity: ${$opacity ?? 1};\n\n `;\n});\n\nconst BlockOptionsWrapper = styled(FlexView)(({ theme }) => {\n return `\n cursor: pointer;\n \n &:hover {\n border-radius: 50%;\n background: ${theme.colors.WHITE_4}; \n }\n `;\n});\n\nexport { BlockSectionWrapper, BlockSheetContainer, BlockOptionsWrapper };\n"],"names":["BlockSectionWrapper","styled","FlexView","$lastBlock","BlockSheetContainer","$opacity","BlockOptionsWrapper","theme"],"mappings":";;AAQA,MAAMA,IAAsBC,EAAOC,CAAQ,EAAwB,CAAC,EAAE,YAAAC,QAC7D;AAAA;AAAA,MAEHA,IAAa,0BAA0B,sBAAsB;AAAA,GAElE,GAMKC,IAAsBH,EAAO,IAA0B,CAAC,EAAE,UAAAI,QACvD;AAAA;AAAA;AAAA;AAAA;AAAA,eAKMA,KAAY,CAAC;AAAA;AAAA,GAG3B,GAEKC,IAAsBL,EAAOC,CAAQ,EAAE,CAAC,EAAE,OAAAK,QACvC;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKWA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC;"}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
import { jsxs as L, jsx as a } from "react/jsx-runtime";
|
2
|
+
import { memo as g } from "react";
|
3
|
+
import w from "../../../ui/layout/flex-view.js";
|
4
|
+
import u from "./block-section-view.js";
|
5
|
+
const O = g((x) => {
|
6
|
+
const {
|
7
|
+
blocks: t,
|
8
|
+
imageHue: A,
|
9
|
+
userType: n,
|
10
|
+
onNodeAttempt: s,
|
11
|
+
onNodeAttemptLocationChange: i,
|
12
|
+
onNodeMarkAsDone: c,
|
13
|
+
onNodeReattempt: l,
|
14
|
+
onNodeReview: r,
|
15
|
+
onNodeView: p,
|
16
|
+
onBlockSkipUnskip: d
|
17
|
+
} = x;
|
18
|
+
let k = 0;
|
19
|
+
const m = t.filter((o) => o.section_code === "GOALS"), B = t.filter((o) => o.section_code !== "GOALS");
|
20
|
+
return /* @__PURE__ */ L(w, { children: [
|
21
|
+
m.map((o, e) => {
|
22
|
+
const { block_type: N, block_id: S, is_skipped: _ } = o;
|
23
|
+
let f = 0;
|
24
|
+
const b = e === m.length - 1;
|
25
|
+
return N === "GOAL" && (_ || (k += 1), f = k), /* @__PURE__ */ a(
|
26
|
+
u,
|
27
|
+
{
|
28
|
+
blockData: o,
|
29
|
+
userType: n,
|
30
|
+
isLastBlock: b,
|
31
|
+
lessonIdx: f,
|
32
|
+
imageHue: A,
|
33
|
+
onNodeAttempt: s,
|
34
|
+
onNodeAttemptLocationChange: i,
|
35
|
+
onNodeMarkAsDone: c,
|
36
|
+
onNodeReattempt: l,
|
37
|
+
onNodeReview: r,
|
38
|
+
onNodeView: p,
|
39
|
+
onBlockSkipUnskip: d
|
40
|
+
},
|
41
|
+
S
|
42
|
+
);
|
43
|
+
}),
|
44
|
+
B.map((o) => {
|
45
|
+
const { block_id: e } = o;
|
46
|
+
return /* @__PURE__ */ a(
|
47
|
+
u,
|
48
|
+
{
|
49
|
+
blockData: o,
|
50
|
+
userType: n,
|
51
|
+
lessonIdx: 0,
|
52
|
+
onNodeAttempt: s,
|
53
|
+
onNodeAttemptLocationChange: i,
|
54
|
+
onNodeMarkAsDone: c,
|
55
|
+
onNodeReattempt: l,
|
56
|
+
onNodeReview: r,
|
57
|
+
onNodeView: p,
|
58
|
+
onBlockSkipUnskip: d
|
59
|
+
},
|
60
|
+
e
|
61
|
+
);
|
62
|
+
})
|
63
|
+
] });
|
64
|
+
});
|
65
|
+
export {
|
66
|
+
O as default
|
67
|
+
};
|
68
|
+
//# sourceMappingURL=block-sections.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"block-sections.js","sources":["../../../../../src/features/chapters-v2/chapter-details/block-sections/block-sections.tsx"],"sourcesContent":["import type { IBlockSectionsProps } from './block-sections-types';\nimport type { FC } from 'react';\n\nimport { memo } from 'react';\n\nimport FlexView from '../../../ui/layout/flex-view';\nimport BlockSectionView from './block-section-view';\n\nconst BlockSections: FC<IBlockSectionsProps> = memo(props => {\n const {\n blocks,\n imageHue,\n userType,\n onNodeAttempt,\n onNodeAttemptLocationChange,\n onNodeMarkAsDone,\n onNodeReattempt,\n onNodeReview,\n onNodeView,\n onBlockSkipUnskip,\n } = props;\n\n let lessonCount = 0;\n\n const goalBlocks = blocks.filter(block => block.section_code === 'GOALS');\n const nonGoalBlocks = blocks.filter(block => block.section_code !== 'GOALS');\n\n return (\n <FlexView>\n {goalBlocks.map((blockData, idx) => {\n const { block_type: blockType, block_id: blockId, is_skipped: isSkipped } = blockData;\n let lessonIdx = 0;\n\n const isLastBlock = idx === goalBlocks.length - 1;\n\n if (blockType === 'GOAL') {\n if (!isSkipped) {\n lessonCount += 1;\n }\n\n lessonIdx = lessonCount;\n }\n\n return (\n <BlockSectionView\n blockData={blockData}\n userType={userType}\n isLastBlock={isLastBlock}\n key={blockId}\n lessonIdx={lessonIdx}\n imageHue={imageHue}\n onNodeAttempt={onNodeAttempt}\n onNodeAttemptLocationChange={onNodeAttemptLocationChange}\n onNodeMarkAsDone={onNodeMarkAsDone}\n onNodeReattempt={onNodeReattempt}\n onNodeReview={onNodeReview}\n onNodeView={onNodeView}\n onBlockSkipUnskip={onBlockSkipUnskip}\n />\n );\n })}\n\n {nonGoalBlocks.map(blockData => {\n const { block_id: blockId } = blockData;\n\n return (\n <BlockSectionView\n key={blockId}\n blockData={blockData}\n userType={userType}\n lessonIdx={0}\n onNodeAttempt={onNodeAttempt}\n onNodeAttemptLocationChange={onNodeAttemptLocationChange}\n onNodeMarkAsDone={onNodeMarkAsDone}\n onNodeReattempt={onNodeReattempt}\n onNodeReview={onNodeReview}\n onNodeView={onNodeView}\n onBlockSkipUnskip={onBlockSkipUnskip}\n />\n );\n })}\n </FlexView>\n );\n});\n\nexport default BlockSections;\n"],"names":["BlockSections","memo","props","blocks","imageHue","userType","onNodeAttempt","onNodeAttemptLocationChange","onNodeMarkAsDone","onNodeReattempt","onNodeReview","onNodeView","onBlockSkipUnskip","lessonCount","goalBlocks","block","nonGoalBlocks","FlexView","blockData","idx","blockType","blockId","isSkipped","lessonIdx","isLastBlock","jsx","BlockSectionView"],"mappings":";;;;AAQM,MAAAA,IAAyCC,EAAK,CAASC,MAAA;AACrD,QAAA;AAAA,IACJ,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,eAAAC;AAAA,IACA,6BAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,mBAAAC;AAAA,EACE,IAAAV;AAEJ,MAAIW,IAAc;AAElB,QAAMC,IAAaX,EAAO,OAAO,CAASY,MAAAA,EAAM,iBAAiB,OAAO,GAClEC,IAAgBb,EAAO,OAAO,CAASY,MAAAA,EAAM,iBAAiB,OAAO;AAE3E,2BACGE,GACE,EAAA,UAAA;AAAA,IAAWH,EAAA,IAAI,CAACI,GAAWC,MAAQ;AAClC,YAAM,EAAE,YAAYC,GAAW,UAAUC,GAAS,YAAYC,EAAc,IAAAJ;AAC5E,UAAIK,IAAY;AAEV,YAAAC,IAAcL,MAAQL,EAAW,SAAS;AAEhD,aAAIM,MAAc,WACXE,MACYT,KAAA,IAGLU,IAAAV,IAIZ,gBAAAY;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,WAAAR;AAAA,UACA,UAAAb;AAAA,UACA,aAAAmB;AAAA,UAEA,WAAAD;AAAA,UACA,UAAAnB;AAAA,UACA,eAAAE;AAAA,UACA,6BAAAC;AAAA,UACA,kBAAAC;AAAA,UACA,iBAAAC;AAAA,UACA,cAAAC;AAAA,UACA,YAAAC;AAAA,UACA,mBAAAC;AAAA,QAAA;AAAA,QATKS;AAAA,MAAA;AAAA,IAUP,CAEH;AAAA,IAEAL,EAAc,IAAI,CAAaE,MAAA;AACxB,YAAA,EAAE,UAAUG,EAAY,IAAAH;AAG5B,aAAA,gBAAAO;AAAA,QAACC;AAAA,QAAA;AAAA,UAEC,WAAAR;AAAA,UACA,UAAAb;AAAA,UACA,WAAW;AAAA,UACX,eAAAC;AAAA,UACA,6BAAAC;AAAA,UACA,kBAAAC;AAAA,UACA,iBAAAC;AAAA,UACA,cAAAC;AAAA,UACA,YAAAC;AAAA,UACA,mBAAAC;AAAA,QAAA;AAAA,QAVKS;AAAA,MAAA;AAAA,IAWP,CAEH;AAAA,EACH,EAAA,CAAA;AAEJ,CAAC;"}
|
@@ -0,0 +1,90 @@
|
|
1
|
+
import o from "styled-components";
|
2
|
+
import x from "../../../../assets/line-icons/icons/important.js";
|
3
|
+
import i from "../../../ui/layout/flex-view.js";
|
4
|
+
const f = o(i)(() => `
|
5
|
+
position: relative;
|
6
|
+
height: 168px;
|
7
|
+
`);
|
8
|
+
o.div`
|
9
|
+
width: 760px;
|
10
|
+
height: 100%;
|
11
|
+
position: relative;
|
12
|
+
`;
|
13
|
+
const m = o(i)`
|
14
|
+
position: absolute;
|
15
|
+
left: 73px;
|
16
|
+
top: 32px;
|
17
|
+
`, $ = o.img(({ theme: e }) => {
|
18
|
+
const { gutter: t } = e.layout;
|
19
|
+
return `
|
20
|
+
width: ${t * 6.625}px;
|
21
|
+
height: ${t * 6.625}px;
|
22
|
+
border-radius: 50%;
|
23
|
+
z-index: 1;
|
24
|
+
`;
|
25
|
+
}), y = o.svg(() => `
|
26
|
+
position: absolute;
|
27
|
+
inset: 50%;
|
28
|
+
transform: translate(-50%, -50%) rotate(-90deg);
|
29
|
+
z-index: 2;
|
30
|
+
`), I = o.circle(
|
31
|
+
({ theme: e, $progressCircle: t, $progress: n, $progressBackground: s }) => {
|
32
|
+
const { colors: r, layout: l } = e, { WHITE_1: h } = r, { gutter: a } = l, p = a * 21, u = t ? p - n : n;
|
33
|
+
return `
|
34
|
+
stroke-dasharray: ${p};
|
35
|
+
stroke-dashoffset: ${u};
|
36
|
+
stroke: ${t ? r[s || "BLACK"] : h};
|
37
|
+
|
38
|
+
stroke-width: ${a * 0.1875}px;
|
39
|
+
fill: none;
|
40
|
+
`;
|
41
|
+
}
|
42
|
+
), b = o(i)(({ theme: e }) => `
|
43
|
+
position: absolute;
|
44
|
+
top: 50%;
|
45
|
+
left: ${e.layout.gutter * 13.75}px;
|
46
|
+
transform: translateY(-50%);
|
47
|
+
z-index: 1;
|
48
|
+
`), k = o(x)(({
|
49
|
+
theme: e,
|
50
|
+
$progress: t,
|
51
|
+
$top: n,
|
52
|
+
$left: s
|
53
|
+
}) => {
|
54
|
+
const { gutter: r } = e.layout;
|
55
|
+
return t ? `
|
56
|
+
width: ${r * 1.25}px;
|
57
|
+
height: ${r * 1.25}px;
|
58
|
+
position: absolute;
|
59
|
+
top: ${n ?? 0}px;
|
60
|
+
left: ${s ?? 0}px;
|
61
|
+
transform: translate(-50%, -50%);
|
62
|
+
z-index: 2;
|
63
|
+
` : `
|
64
|
+
width: ${r * 0.75}px;
|
65
|
+
height: ${r * 0.75}px;
|
66
|
+
`;
|
67
|
+
}), w = o.div(({ theme: e }) => {
|
68
|
+
const { layout: t } = e;
|
69
|
+
return `
|
70
|
+
position: absolute;
|
71
|
+
top: 6px;
|
72
|
+
right: 8px;
|
73
|
+
z-index: 2;
|
74
|
+
|
75
|
+
width: ${t.gutter * 1.25}px;
|
76
|
+
height: ${t.gutter * 1.25}px;
|
77
|
+
border-radius: 50%;
|
78
|
+
`;
|
79
|
+
});
|
80
|
+
export {
|
81
|
+
f as BannerContainer,
|
82
|
+
$ as BannerImage,
|
83
|
+
m as BannerImageWrapper,
|
84
|
+
b as BannerTitleWrapper,
|
85
|
+
y as ChapterProgressSVG,
|
86
|
+
I as ChapterProgressSVGCircle,
|
87
|
+
w as StyledCheckIcon,
|
88
|
+
k as StyledImportantIcon
|
89
|
+
};
|
90
|
+
//# sourceMappingURL=chapter-banner-styled.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"chapter-banner-styled.js","sources":["../../../../../src/features/chapters-v2/chapter-details/chapter-banner/chapter-banner-styled.tsx"],"sourcesContent":["import type { TColorNames } from '../../../ui/types';\n\nimport styled from 'styled-components';\n\nimport ImportantIcon from '../../../../assets/line-icons/icons/important';\nimport FlexView from '../../../ui/layout/flex-view';\n\nconst BannerContainer = styled(FlexView)(() => {\n return `\n position: relative;\n height: 168px;\n `;\n});\n\nconst BannerContainerBg = styled.div`\n width: 760px;\n height: 100%;\n position: relative;\n`;\n\nconst BannerImageWrapper = styled(FlexView)`\n position: absolute;\n left: 73px;\n top: 32px;\n`;\n\nconst BannerImage = styled.img(({ theme }) => {\n const { gutter } = theme.layout;\n\n return `\n width: ${gutter * 6.625}px;\n height: ${gutter * 6.625}px;\n border-radius: 50%;\n z-index: 1;\n `;\n});\n\nconst ChapterProgressSVG = styled.svg(() => {\n return `\n position: absolute;\n inset: 50%;\n transform: translate(-50%, -50%) rotate(-90deg);\n z-index: 2;\n `;\n});\n\ninterface IChapterProgressSVGCircleProps {\n $progressCircle?: boolean;\n $progress: number;\n $progressBackground?: TColorNames;\n}\n\nconst ChapterProgressSVGCircle = styled.circle<IChapterProgressSVGCircleProps>(\n ({ theme, $progressCircle, $progress, $progressBackground }) => {\n const { colors, layout } = theme;\n const { WHITE_1 } = colors;\n const { gutter } = layout;\n\n const strokeDashArray = gutter * 21;\n const strokeDashOffset = $progressCircle ? strokeDashArray - $progress : $progress;\n\n return `\n stroke-dasharray: ${strokeDashArray};\n stroke-dashoffset: ${strokeDashOffset};\n stroke: ${$progressCircle ? colors[$progressBackground || 'BLACK'] : WHITE_1};\n\n stroke-width: ${gutter * 0.1875}px;\n fill: none;\n `;\n },\n);\n\nconst BannerTitleWrapper = styled(FlexView)(({ theme }) => {\n return `\n position: absolute;\n top: 50%;\n left: ${theme.layout.gutter * 13.75}px;\n transform: translateY(-50%);\n z-index: 1;\n `;\n});\n\ninterface IStyledImportantIconProps {\n $left?: number;\n $top?: number;\n $progress?: boolean;\n}\n\nconst StyledImportantIcon = styled(ImportantIcon)<IStyledImportantIconProps>(({\n theme,\n $progress,\n $top,\n $left,\n}) => {\n const { gutter } = theme.layout;\n\n if ($progress) {\n return `\n width: ${gutter * 1.25}px;\n height: ${gutter * 1.25}px;\n position: absolute;\n top: ${$top ?? 0}px;\n left: ${$left ?? 0}px;\n transform: translate(-50%, -50%);\n z-index: 2;\n `;\n }\n\n return `\n width: ${gutter * 0.75}px;\n height: ${gutter * 0.75}px;\n `;\n});\n\nconst StyledCheckIcon = styled.div(({ theme }) => {\n const { layout } = theme;\n\n return `\n position: absolute;\n top: 6px;\n right: 8px;\n z-index: 2;\n\n width: ${layout.gutter * 1.25}px;\n height: ${layout.gutter * 1.25}px;\n border-radius: 50%;\n `;\n});\n\nexport {\n BannerContainer,\n BannerContainerBg,\n BannerImageWrapper,\n BannerImage,\n ChapterProgressSVG,\n ChapterProgressSVGCircle,\n BannerTitleWrapper,\n StyledImportantIcon,\n StyledCheckIcon,\n};\n"],"names":["BannerContainer","styled","FlexView","BannerImageWrapper","BannerImage","theme","gutter","ChapterProgressSVG","ChapterProgressSVGCircle","$progressCircle","$progress","$progressBackground","colors","layout","WHITE_1","strokeDashArray","strokeDashOffset","BannerTitleWrapper","StyledImportantIcon","ImportantIcon","$top","$left","StyledCheckIcon"],"mappings":";;;AAOA,MAAMA,IAAkBC,EAAOC,CAAQ,EAAE,MAChC;AAAA;AAAA;AAAA,GAIR;AAEyBD,EAAO;AAAA;AAAA;AAAA;AAAA;AAM3B,MAAAE,IAAqBF,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,GAMpCE,IAAcH,EAAO,IAAI,CAAC,EAAE,OAAAI,QAAY;AACtC,QAAA,EAAE,QAAAC,EAAO,IAAID,EAAM;AAElB,SAAA;AAAA,aACIC,IAAS,KAAK;AAAA,cACbA,IAAS,KAAK;AAAA;AAAA;AAAA;AAI5B,CAAC,GAEKC,IAAqBN,EAAO,IAAI,MAC7B;AAAA;AAAA;AAAA;AAAA;AAAA,GAMR,GAQKO,IAA2BP,EAAO;AAAA,EACtC,CAAC,EAAE,OAAAI,GAAO,iBAAAI,GAAiB,WAAAC,GAAW,qBAAAC,QAA0B;AACxD,UAAA,EAAE,QAAAC,GAAQ,QAAAC,EAAW,IAAAR,GACrB,EAAE,SAAAS,EAAY,IAAAF,GACd,EAAE,QAAAN,EAAW,IAAAO,GAEbE,IAAkBT,IAAS,IAC3BU,IAAmBP,IAAkBM,IAAkBL,IAAYA;AAElE,WAAA;AAAA,0BACeK,CAAe;AAAA,2BACdC,CAAgB;AAAA,gBAC3BP,IAAkBG,EAAOD,KAAuB,OAAO,IAAIG,CAAO;AAAA;AAAA,sBAE5DR,IAAS,MAAM;AAAA;AAAA;AAAA,EAGnC;AACF,GAEMW,IAAqBhB,EAAOC,CAAQ,EAAE,CAAC,EAAE,OAAAG,QACtC;AAAA;AAAA;AAAA,YAGGA,EAAM,OAAO,SAAS,KAAK;AAAA;AAAA;AAAA,GAItC,GAQKa,IAAsBjB,EAAOkB,CAAa,EAA6B,CAAC;AAAA,EAC5E,OAAAd;AAAA,EACA,WAAAK;AAAA,EACA,MAAAU;AAAA,EACA,OAAAC;AACF,MAAM;AACE,QAAA,EAAE,QAAAf,EAAO,IAAID,EAAM;AAEzB,SAAIK,IACK;AAAA,eACIJ,IAAS,IAAI;AAAA,gBACZA,IAAS,IAAI;AAAA;AAAA,aAEhBc,KAAQ,CAAC;AAAA,cACRC,KAAS,CAAC;AAAA;AAAA;AAAA,QAMf;AAAA,aACIf,IAAS,IAAI;AAAA,cACZA,IAAS,IAAI;AAAA;AAE3B,CAAC,GAEKgB,IAAkBrB,EAAO,IAAI,CAAC,EAAE,OAAAI,QAAY;AAC1C,QAAA,EAAE,QAAAQ,EAAW,IAAAR;AAEZ,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAMIQ,EAAO,SAAS,IAAI;AAAA,cACnBA,EAAO,SAAS,IAAI;AAAA;AAAA;AAGlC,CAAC;"}
|
@@ -0,0 +1,95 @@
|
|
1
|
+
import { jsx as e, jsxs as t } from "react/jsx-runtime";
|
2
|
+
import { memo as B, useMemo as h } from "react";
|
3
|
+
import { ILLUSTRATIONS as D } from "../../../../assets/illustrations/illustrations.js";
|
4
|
+
import d from "../../../../assets/line-icons/icons/check2.js";
|
5
|
+
import V from "../../../ui/image/image.js";
|
6
|
+
import o from "../../../ui/layout/flex-view.js";
|
7
|
+
import i from "../../../ui/text/text.js";
|
8
|
+
import g from "../../comps/tag/tag.js";
|
9
|
+
import { getChapterCompletionPercentage as W } from "../../utils/index.js";
|
10
|
+
import { BannerContainer as b, BannerImageWrapper as M, BannerImage as O, ChapterProgressSVG as X, ChapterProgressSVGCircle as C, StyledImportantIcon as $, StyledCheckIcon as j, BannerTitleWrapper as H } from "./chapter-banner-styled.js";
|
11
|
+
const n = 52, c = 54, s = 54, ee = B((f) => {
|
12
|
+
const { progressStats: a, imageHue: I, title: S, imageUrl: x } = f, { mandatory: R, optional: u, class_work: E } = a || {}, { completed: _ = 0, total: w = 0 } = R || {}, { completed: T = 0, total: l = 0 } = u || {}, { completed: k = 0, total: p = 0 } = E || {}, y = p > 0 && k === p, r = h(() => W(a), [a]), { iconTopVal: G, iconLeftVal: L } = h(() => {
|
13
|
+
const m = (-(r === 100 ? 60 : r) * 3.6 - 180) * Math.PI / 180, P = s + n * Math.sin(m), A = c + n * Math.cos(m);
|
14
|
+
return {
|
15
|
+
iconLeftVal: P,
|
16
|
+
iconTopVal: A
|
17
|
+
};
|
18
|
+
}, [r]);
|
19
|
+
return /* @__PURE__ */ e(
|
20
|
+
b,
|
21
|
+
{
|
22
|
+
$flexDirection: "row",
|
23
|
+
$justifyContent: "center",
|
24
|
+
$alignItems: "center",
|
25
|
+
$widthX: 50,
|
26
|
+
$background: `${I}_4`,
|
27
|
+
children: /* @__PURE__ */ t(o, { $height: 168, $position: "relative", children: [
|
28
|
+
/* @__PURE__ */ e(
|
29
|
+
V,
|
30
|
+
{
|
31
|
+
width: "100%",
|
32
|
+
height: "168px",
|
33
|
+
src: D.CHAPTER_HEADER_BG,
|
34
|
+
alt: "Chapter header background",
|
35
|
+
withLoader: !0
|
36
|
+
}
|
37
|
+
),
|
38
|
+
/* @__PURE__ */ t(M, { children: [
|
39
|
+
/* @__PURE__ */ e(O, { src: x, alt: "Chapter image" }),
|
40
|
+
/* @__PURE__ */ t(X, { width: "108px", height: "108px", children: [
|
41
|
+
/* @__PURE__ */ e(
|
42
|
+
C,
|
43
|
+
{
|
44
|
+
$progress: 0,
|
45
|
+
r: n,
|
46
|
+
cx: c,
|
47
|
+
cy: s
|
48
|
+
}
|
49
|
+
),
|
50
|
+
/* @__PURE__ */ e(
|
51
|
+
C,
|
52
|
+
{
|
53
|
+
$progressCircle: !0,
|
54
|
+
$progressBackground: "BLACK",
|
55
|
+
$progress: 3.3 * r,
|
56
|
+
r: n,
|
57
|
+
cx: c,
|
58
|
+
cy: s
|
59
|
+
}
|
60
|
+
)
|
61
|
+
] }),
|
62
|
+
r > 0 && /* @__PURE__ */ e($, { $progress: !0, $top: G, $left: L }),
|
63
|
+
r === 100 && /* @__PURE__ */ e(j, { children: /* @__PURE__ */ e(g, { Icon: d }) })
|
64
|
+
] }),
|
65
|
+
/* @__PURE__ */ t(H, { $flexGap: 4, children: [
|
66
|
+
/* @__PURE__ */ e(i, { $renderAs: "ah4-bold", children: S }),
|
67
|
+
/* @__PURE__ */ t(o, { $flexDirection: "row", $alignItems: "center", $flexGapX: 2.75, children: [
|
68
|
+
/* @__PURE__ */ t(o, { $position: "relative", $flexDirection: "row", children: [
|
69
|
+
/* @__PURE__ */ e($, {}),
|
70
|
+
/* @__PURE__ */ t(o, { $flexDirection: "row", $alignItems: "center", $flexGap: 4, children: [
|
71
|
+
/* @__PURE__ */ t(i, { $renderAs: "ab2", children: [
|
72
|
+
"Core - ",
|
73
|
+
_,
|
74
|
+
"/",
|
75
|
+
w
|
76
|
+
] }),
|
77
|
+
y && /* @__PURE__ */ e(g, { Icon: d, label: "CW" })
|
78
|
+
] })
|
79
|
+
] }),
|
80
|
+
l && /* @__PURE__ */ t(i, { $renderAs: "ab2", children: [
|
81
|
+
"Supplementary - ",
|
82
|
+
T,
|
83
|
+
"/",
|
84
|
+
l
|
85
|
+
] })
|
86
|
+
] })
|
87
|
+
] })
|
88
|
+
] })
|
89
|
+
}
|
90
|
+
);
|
91
|
+
});
|
92
|
+
export {
|
93
|
+
ee as default
|
94
|
+
};
|
95
|
+
//# sourceMappingURL=chapter-banner.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"chapter-banner.js","sources":["../../../../../src/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.tsx"],"sourcesContent":["import type { IChapterBannerProps } from './chapter-banner-types';\nimport type { FC } from 'react';\n\nimport { memo, useMemo } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport Check2Icon from '../../../../assets/line-icons/icons/check2';\nimport Image from '../../../ui/image/image';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport Tag from '../../comps/tag/tag';\nimport { getChapterCompletionPercentage } from '../../utils';\nimport * as Styled from './chapter-banner-styled';\n\nconst PROGRESS_CIRCLE_RADIUS = 52;\nconst PROGRESS_CIRCLE_CENTER_X = 54;\nconst PROGRESS_CIRCLE_CENTER_Y = 54;\n\n// This component renders a banner for a chapter, displaying its title, progress, and associated tags.\n// It includes an image, progress visualization, and details about the chapter's core and supplementary sheets.\n// It calculates the completion percentage and dynamically positions an icon based on progress.\nconst ChapterBanner: FC<IChapterBannerProps> = memo(props => {\n const { progressStats, imageHue, title, imageUrl } = props;\n\n const { mandatory, optional, class_work: classWork } = progressStats || {};\n const { completed: completedMandatorySheets = 0, total: totalMandatorySheets = 0 } =\n mandatory || {};\n const { completed: completedOptionalSheets = 0, total: totalOptionalSheets = 0 } = optional || {};\n const { completed: completedClassWorkSheets = 0, total: totalClassWorkSheets = 0 } =\n classWork || {};\n\n const showClassWorkTag =\n totalClassWorkSheets > 0 && completedClassWorkSheets === totalClassWorkSheets;\n\n const completionPercentage = useMemo(() => {\n return getChapterCompletionPercentage(progressStats);\n }, [progressStats]);\n\n const { iconTopVal, iconLeftVal } = useMemo(() => {\n //* Calculate the position of the important icon based on the completion percentage\n //* Convert degrees to radians\n const angleInDegree = completionPercentage === 100 ? 60 : completionPercentage;\n\n const angleInRadian = ((-angleInDegree * 3.6 - 180) * Math.PI) / 180;\n const positionX = PROGRESS_CIRCLE_CENTER_Y + PROGRESS_CIRCLE_RADIUS * Math.sin(angleInRadian);\n const positionY = PROGRESS_CIRCLE_CENTER_X + PROGRESS_CIRCLE_RADIUS * Math.cos(angleInRadian);\n\n return {\n iconLeftVal: positionX,\n iconTopVal: positionY,\n };\n }, [completionPercentage]);\n\n return (\n <Styled.BannerContainer\n $flexDirection=\"row\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $widthX={50}\n $background={`${imageHue}_4`}\n >\n <FlexView $height={168} $position=\"relative\">\n <Image\n width=\"100%\"\n height=\"168px\"\n src={ILLUSTRATIONS.CHAPTER_HEADER_BG}\n alt=\"Chapter header background\"\n withLoader\n />\n\n <Styled.BannerImageWrapper>\n <Styled.BannerImage src={imageUrl} alt=\"Chapter image\" />\n\n <Styled.ChapterProgressSVG width=\"108px\" height=\"108px\">\n <Styled.ChapterProgressSVGCircle\n $progress={0}\n r={PROGRESS_CIRCLE_RADIUS}\n cx={PROGRESS_CIRCLE_CENTER_X}\n cy={PROGRESS_CIRCLE_CENTER_Y}\n />\n <Styled.ChapterProgressSVGCircle\n $progressCircle\n $progressBackground={'BLACK'}\n $progress={3.3 * completionPercentage}\n r={PROGRESS_CIRCLE_RADIUS}\n cx={PROGRESS_CIRCLE_CENTER_X}\n cy={PROGRESS_CIRCLE_CENTER_Y}\n />\n </Styled.ChapterProgressSVG>\n\n {completionPercentage > 0 && (\n <Styled.StyledImportantIcon $progress $top={iconTopVal} $left={iconLeftVal} />\n )}\n\n {completionPercentage === 100 && (\n <Styled.StyledCheckIcon>\n <Tag Icon={Check2Icon} />\n </Styled.StyledCheckIcon>\n )}\n </Styled.BannerImageWrapper>\n\n <Styled.BannerTitleWrapper $flexGap={4}>\n <Text $renderAs=\"ah4-bold\">{title}</Text>\n\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $flexGapX={2.75}>\n <FlexView $position=\"relative\" $flexDirection=\"row\">\n <Styled.StyledImportantIcon />\n\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $flexGap={4}>\n <Text $renderAs=\"ab2\">\n Core - {completedMandatorySheets}/{totalMandatorySheets}\n </Text>\n\n {showClassWorkTag && <Tag Icon={Check2Icon} label=\"CW\" />}\n </FlexView>\n </FlexView>\n\n {totalOptionalSheets && (\n <Text $renderAs=\"ab2\">\n Supplementary - {completedOptionalSheets}/{totalOptionalSheets}\n </Text>\n )}\n </FlexView>\n </Styled.BannerTitleWrapper>\n </FlexView>\n </Styled.BannerContainer>\n );\n});\n\nexport default ChapterBanner;\n"],"names":["PROGRESS_CIRCLE_RADIUS","PROGRESS_CIRCLE_CENTER_X","PROGRESS_CIRCLE_CENTER_Y","ChapterBanner","memo","props","progressStats","imageHue","title","imageUrl","mandatory","optional","classWork","completedMandatorySheets","totalMandatorySheets","completedOptionalSheets","totalOptionalSheets","completedClassWorkSheets","totalClassWorkSheets","showClassWorkTag","completionPercentage","useMemo","getChapterCompletionPercentage","iconTopVal","iconLeftVal","angleInRadian","positionX","positionY","jsx","Styled.BannerContainer","jsxs","FlexView","Image","ILLUSTRATIONS","Styled.BannerImageWrapper","Styled.BannerImage","Styled.ChapterProgressSVG","Styled.ChapterProgressSVGCircle","Styled.StyledImportantIcon","Styled.StyledCheckIcon","Tag","Check2Icon","Styled.BannerTitleWrapper","Text"],"mappings":"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"}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import o from "styled-components";
|
2
|
+
import r from "../../ui/layout/flex-view.js";
|
3
|
+
const p = o.div(({ theme: t }) => `
|
4
|
+
position: absolute;
|
5
|
+
left: 0;
|
6
|
+
right: 0;
|
7
|
+
top: 0;
|
8
|
+
bottom: 0;
|
9
|
+
background: rgba(204, 204, 204, 0.25);
|
10
|
+
z-index: 2;
|
11
|
+
|
12
|
+
& * {
|
13
|
+
pointer-events: none;
|
14
|
+
}
|
15
|
+
|
16
|
+
& img {
|
17
|
+
top: 50%;
|
18
|
+
position: absolute;
|
19
|
+
left: 50%;
|
20
|
+
transform: translate(-50%, -50%);
|
21
|
+
width: ${t.layout.gutter * 5}px;
|
22
|
+
height: ${t.layout.gutter * 5}px;
|
23
|
+
filter: brightness(0);
|
24
|
+
}
|
25
|
+
`), a = o(r)(
|
26
|
+
({ $disablePointerEvents: t, theme: e }) => `
|
27
|
+
position: relative;
|
28
|
+
margin: 0 auto;
|
29
|
+
pointer-events: ${t ? "none" : "auto"};
|
30
|
+
border: 1px solid ${e.colors.WHITE_5};
|
31
|
+
border-top: none;
|
32
|
+
`
|
33
|
+
);
|
34
|
+
export {
|
35
|
+
a as ContentWrapper,
|
36
|
+
p as LoaderWrapper
|
37
|
+
};
|
38
|
+
//# sourceMappingURL=chapter-details-styled.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"chapter-details-styled.js","sources":["../../../../src/features/chapters-v2/chapter-details/chapter-details-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\n\nconst LoaderWrapper = styled.div(({ theme }) => {\n return `\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(204, 204, 204, 0.25);\n z-index: 2;\n\n & * {\n pointer-events: none;\n }\n\n & img {\n top: 50%;\n position: absolute;\n left: 50%;\n transform: translate(-50%, -50%);\n width: ${theme.layout.gutter * 5}px;\n height: ${theme.layout.gutter * 5}px;\n filter: brightness(0);\n }\n `;\n});\n\nconst ContentWrapper = styled(FlexView)<{ $disablePointerEvents: boolean }>(\n ({ $disablePointerEvents, theme }) => `\n position: relative;\n margin: 0 auto;\n pointer-events: ${$disablePointerEvents ? 'none' : 'auto'};\n border: 1px solid ${theme.colors.WHITE_5};\n border-top: none;\n `,\n);\n\nexport { ContentWrapper, LoaderWrapper };\n"],"names":["LoaderWrapper","styled","theme","ContentWrapper","FlexView","$disablePointerEvents"],"mappings":";;AAIA,MAAMA,IAAgBC,EAAO,IAAI,CAAC,EAAE,OAAAC,QAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAkBMA,EAAM,OAAO,SAAS,CAAC;AAAA,gBACtBA,EAAM,OAAO,SAAS,CAAC;AAAA;AAAA;AAAA,GAItC,GAEKC,IAAiBF,EAAOG,CAAQ;AAAA,EACpC,CAAC,EAAE,uBAAAC,GAAuB,OAAAH,EAAA,MAAY;AAAA;AAAA;AAAA,wBAGhBG,IAAwB,SAAS,MAAM;AAAA,0BACrCH,EAAM,OAAO,OAAO;AAAA;AAAA;AAG9C;"}
|