@cuemath/leap 4.0.9-as1 → 4.1.1-beta.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.
- package/dist/features/math-fit/math-fit-report/comps/score-section/score-section.js +35 -34
- package/dist/features/math-fit/math-fit-report/comps/score-section/score-section.js.map +1 -1
- package/dist/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback-styled.js +16 -0
- package/dist/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback-styled.js.map +1 -0
- package/dist/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback.js +56 -0
- package/dist/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback.js.map +1 -0
- package/dist/features/timeline/monthly-timeline/ptm-report/comps/sticky-footer/sticky-footer-styled.js +22 -0
- package/dist/features/timeline/monthly-timeline/ptm-report/comps/sticky-footer/sticky-footer-styled.js.map +1 -0
- package/dist/features/timeline/monthly-timeline/ptm-report/comps/sticky-footer/sticky-footer.js +14 -0
- package/dist/features/timeline/monthly-timeline/ptm-report/comps/sticky-footer/sticky-footer.js.map +1 -0
- package/dist/features/timeline/monthly-timeline/ptm-report/ptm-report-types.js.map +1 -1
- package/dist/features/timeline/monthly-timeline/ptm-report/ptm-report.js +113 -97
- package/dist/features/timeline/monthly-timeline/ptm-report/ptm-report.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-helpers.js +47 -55
- package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js +69 -64
- package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/package.json +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsxs as r, jsx as e } from "react/jsx-runtime";
|
|
2
2
|
import { memo as X, useCallback as _, Fragment as w } from "react";
|
|
3
|
-
import { useTheme as
|
|
4
|
-
import
|
|
3
|
+
import { useTheme as y } from "styled-components";
|
|
4
|
+
import G from "../../../../ui/buttons/button/button.js";
|
|
5
5
|
import o from "../../../../ui/layout/flex-view.js";
|
|
6
|
-
import
|
|
7
|
-
import
|
|
6
|
+
import d from "../../../../ui/text/text.js";
|
|
7
|
+
import L from "../score-badge/score-badge.js";
|
|
8
8
|
import { Divider as K } from "./score-section-styled.js";
|
|
9
9
|
import g from "../../../../ui/separator/separator.js";
|
|
10
10
|
import { getQuestionStatusBgColor as j } from "../../math-fit-report-helpers.js";
|
|
@@ -12,33 +12,33 @@ import { EQuestionState as u } from "../../../math-fit-overview/math-fit-overvie
|
|
|
12
12
|
import { EDeviceType as k } from "../../../../ui/theme/constants.js";
|
|
13
13
|
import M from "../../../../ui/tag/tag.js";
|
|
14
14
|
const V = X(function({
|
|
15
|
-
onReviewSection:
|
|
16
|
-
section:
|
|
17
|
-
sheet:
|
|
18
|
-
compactView:
|
|
15
|
+
onReviewSection: l,
|
|
16
|
+
section: m,
|
|
17
|
+
sheet: f,
|
|
18
|
+
compactView: s = !1,
|
|
19
19
|
showReviewButton: x = !0
|
|
20
20
|
}) {
|
|
21
21
|
const {
|
|
22
|
-
title:
|
|
23
|
-
score:
|
|
24
|
-
scoreChange:
|
|
25
|
-
sessionId:
|
|
26
|
-
isIncomplete:
|
|
27
|
-
sectionNumber:
|
|
22
|
+
title: b,
|
|
23
|
+
score: p,
|
|
24
|
+
scoreChange: C,
|
|
25
|
+
sessionId: $,
|
|
26
|
+
isIncomplete: t = !1,
|
|
27
|
+
sectionNumber: T,
|
|
28
28
|
topics: I
|
|
29
|
-
} =
|
|
30
|
-
|
|
31
|
-
}, [
|
|
29
|
+
} = m, { device: A } = y(), c = A <= k.MOBILE, h = [...I ?? []].sort((i, a) => i.miniGoal.order - a.miniGoal.order), E = c || s ? "column" : "row", S = c || s ? "" : "center", B = c || s ? 0.5 : 0, D = _(() => {
|
|
30
|
+
!t && m.sheet && l && l(f, $);
|
|
31
|
+
}, [t, l, m.sheet, f, $]);
|
|
32
32
|
return /* @__PURE__ */ r(o, { children: [
|
|
33
33
|
/* @__PURE__ */ r(o, { $flexDirection: "row", $alignItems: "center", children: [
|
|
34
|
-
/* @__PURE__ */ r(
|
|
35
|
-
|
|
34
|
+
/* @__PURE__ */ r(d, { $renderAs: "ab2-bold", $color: "BLACK_1", children: [
|
|
35
|
+
b,
|
|
36
36
|
":"
|
|
37
37
|
] }),
|
|
38
38
|
/* @__PURE__ */ e(g, { width: 4 }),
|
|
39
|
-
|
|
39
|
+
t ? /* @__PURE__ */ e(M, { text: "INCOMPLETE", size: "8px" }) : p && /* @__PURE__ */ e(L, { score: p, maxScore: 10, scoreChange: C })
|
|
40
40
|
] }),
|
|
41
|
-
/* @__PURE__ */ e(o, { $flexRowGapX: 0.5, $gapX: 0.75, children: h.map((
|
|
41
|
+
/* @__PURE__ */ e(o, { $flexRowGapX: 0.5, $gapX: 0.75, children: h.map((i, a) => /* @__PURE__ */ r(w, { children: [
|
|
42
42
|
/* @__PURE__ */ r(
|
|
43
43
|
o,
|
|
44
44
|
{
|
|
@@ -47,8 +47,8 @@ const V = X(function({
|
|
|
47
47
|
$alignItems: S,
|
|
48
48
|
$flexRowGapX: B,
|
|
49
49
|
children: [
|
|
50
|
-
/* @__PURE__ */ e(
|
|
51
|
-
/* @__PURE__ */ e(o, { $flexGapX: 0.5, $flexDirection: "row", $flexWrap: !0, children:
|
|
50
|
+
/* @__PURE__ */ e(d, { $renderAs: "ub2", $color: t ? "BLACK_T_38" : "BLACK_1", children: i.name }),
|
|
51
|
+
/* @__PURE__ */ e(o, { $flexGapX: 0.5, $flexDirection: "row", $flexWrap: !0, children: i.miniGoal.items.map((n) => /* @__PURE__ */ e(
|
|
52
52
|
o,
|
|
53
53
|
{
|
|
54
54
|
$heightX: 1.25,
|
|
@@ -56,35 +56,36 @@ const V = X(function({
|
|
|
56
56
|
$alignItems: "center",
|
|
57
57
|
$justifyContent: "center",
|
|
58
58
|
$borderRadiusX: 1,
|
|
59
|
-
$background: j(
|
|
59
|
+
$background: j(n.state),
|
|
60
60
|
children: /* @__PURE__ */ r(
|
|
61
|
-
|
|
61
|
+
d,
|
|
62
62
|
{
|
|
63
63
|
$renderAs: "ub4",
|
|
64
|
-
$color:
|
|
64
|
+
$color: n.state === u.SKIPPED || n.state === u.UNATTEMPTED ? "BLACK_T_38" : "WHITE",
|
|
65
65
|
children: [
|
|
66
66
|
"Q",
|
|
67
|
-
|
|
67
|
+
n.order
|
|
68
68
|
]
|
|
69
69
|
}
|
|
70
70
|
)
|
|
71
71
|
},
|
|
72
|
-
|
|
72
|
+
n.item_reference
|
|
73
73
|
)) })
|
|
74
74
|
]
|
|
75
75
|
}
|
|
76
76
|
),
|
|
77
|
-
|
|
78
|
-
] },
|
|
77
|
+
a !== h.length - 1 && /* @__PURE__ */ e(K, {})
|
|
78
|
+
] }, i.name)) }),
|
|
79
79
|
x && /* @__PURE__ */ r(o, { $alignItems: "center", children: [
|
|
80
80
|
/* @__PURE__ */ e(g, { heightX: 0.75 }),
|
|
81
81
|
/* @__PURE__ */ e(
|
|
82
|
-
|
|
82
|
+
G,
|
|
83
83
|
{
|
|
84
|
-
label: `Review Section ${
|
|
85
|
-
renderAs: "primary",
|
|
84
|
+
label: `Review Section ${T}`,
|
|
85
|
+
renderAs: t ? "secondary" : "primary",
|
|
86
86
|
size: "small",
|
|
87
|
-
onClick: D
|
|
87
|
+
onClick: D,
|
|
88
|
+
disabled: t
|
|
88
89
|
}
|
|
89
90
|
)
|
|
90
91
|
] })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"score-section.js","sources":["../../../../../../src/features/math-fit/math-fit-report/comps/score-section/score-section.tsx"],"sourcesContent":["import { Fragment, memo, useCallback, type FC } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport Button from '../../../../ui/buttons/button/button';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport ScoreBadge from '../score-badge/score-badge';\nimport type { IScoreSectionProps } from './score-section-types';\nimport * as Styled from './score-section-styled';\nimport Separator from '../../../../ui/separator/separator';\nimport { getQuestionStatusBgColor } from '../../math-fit-report-helpers';\nimport { EQuestionState } from '../../../math-fit-overview/math-fit-overview-types';\nimport { EDeviceType } from '../../../../ui/theme/constants';\nimport Tag from '../../../../ui/tag/tag';\n\nconst ScoreSection: FC<IScoreSectionProps> = memo(function ScoreSection({\n onReviewSection,\n section,\n sheet,\n compactView = false,\n showReviewButton = true,\n}) {\n const {\n title,\n score,\n scoreChange,\n sessionId,\n isIncomplete = false,\n sectionNumber,\n topics,\n } = section;\n\n const { device } = useTheme();\n const isMobile = device <= EDeviceType.MOBILE;\n\n const sortedTopics = [...(topics ?? [])].sort((a, b) => a.miniGoal.order - b.miniGoal.order);\n const layoutDirection = isMobile || compactView ? 'column' : 'row';\n const alignment = isMobile || compactView ? '' : 'center';\n const gap = isMobile || compactView ? 0.5 : 0;\n\n const onClickReview = useCallback(() => {\n if (section.sheet && onReviewSection) {\n onReviewSection(sheet, sessionId);\n }\n }, [onReviewSection, section.sheet, sheet, sessionId]);\n\n return (\n <FlexView>\n <FlexView $flexDirection=\"row\" $alignItems=\"center\">\n <Text $renderAs=\"ab2-bold\" $color=\"BLACK_1\">\n {title}:\n </Text>\n <Separator width={4} />\n {isIncomplete ? (\n <Tag text=\"INCOMPLETE\" size=\"8px\" />\n ) : (\n score && <ScoreBadge score={score} maxScore={10} scoreChange={scoreChange} />\n )}\n </FlexView>\n <FlexView $flexRowGapX={0.5} $gapX={0.75}>\n {sortedTopics.map((topic, index) => (\n <Fragment key={topic.name}>\n <FlexView\n $flexDirection={layoutDirection}\n $justifyContent=\"space-between\"\n $alignItems={alignment}\n $flexRowGapX={gap}\n >\n <Text $renderAs=\"ub2\" $color={isIncomplete ? 'BLACK_T_38' : 'BLACK_1'}>\n {topic.name}\n </Text>\n <FlexView $flexGapX={0.5} $flexDirection=\"row\" $flexWrap>\n {topic.miniGoal.items.map(question => (\n <FlexView\n key={question.item_reference}\n $heightX={1.25}\n $gutterX={0.5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadiusX={1}\n $background={getQuestionStatusBgColor(question.state)}\n >\n <Text\n $renderAs=\"ub4\"\n $color={\n question.state === EQuestionState.SKIPPED ||\n question.state === EQuestionState.UNATTEMPTED\n ? 'BLACK_T_38'\n : 'WHITE'\n }\n >\n Q{question.order}\n </Text>\n </FlexView>\n ))}\n </FlexView>\n </FlexView>\n {index !== sortedTopics.length - 1 && <Styled.Divider />}\n </Fragment>\n ))}\n </FlexView>\n {showReviewButton && (\n <FlexView $alignItems=\"center\">\n <Separator heightX={0.75} />\n <Button\n label={`Review Section ${sectionNumber}`}\n renderAs
|
|
1
|
+
{"version":3,"file":"score-section.js","sources":["../../../../../../src/features/math-fit/math-fit-report/comps/score-section/score-section.tsx"],"sourcesContent":["import { Fragment, memo, useCallback, type FC } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport Button from '../../../../ui/buttons/button/button';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport ScoreBadge from '../score-badge/score-badge';\nimport type { IScoreSectionProps } from './score-section-types';\nimport * as Styled from './score-section-styled';\nimport Separator from '../../../../ui/separator/separator';\nimport { getQuestionStatusBgColor } from '../../math-fit-report-helpers';\nimport { EQuestionState } from '../../../math-fit-overview/math-fit-overview-types';\nimport { EDeviceType } from '../../../../ui/theme/constants';\nimport Tag from '../../../../ui/tag/tag';\n\nconst ScoreSection: FC<IScoreSectionProps> = memo(function ScoreSection({\n onReviewSection,\n section,\n sheet,\n compactView = false,\n showReviewButton = true,\n}) {\n const {\n title,\n score,\n scoreChange,\n sessionId,\n isIncomplete = false,\n sectionNumber,\n topics,\n } = section;\n\n const { device } = useTheme();\n const isMobile = device <= EDeviceType.MOBILE;\n\n const sortedTopics = [...(topics ?? [])].sort((a, b) => a.miniGoal.order - b.miniGoal.order);\n const layoutDirection = isMobile || compactView ? 'column' : 'row';\n const alignment = isMobile || compactView ? '' : 'center';\n const gap = isMobile || compactView ? 0.5 : 0;\n\n const onClickReview = useCallback(() => {\n if (!isIncomplete && section.sheet && onReviewSection) {\n onReviewSection(sheet, sessionId);\n }\n }, [isIncomplete, onReviewSection, section.sheet, sheet, sessionId]);\n\n return (\n <FlexView>\n <FlexView $flexDirection=\"row\" $alignItems=\"center\">\n <Text $renderAs=\"ab2-bold\" $color=\"BLACK_1\">\n {title}:\n </Text>\n <Separator width={4} />\n {isIncomplete ? (\n <Tag text=\"INCOMPLETE\" size=\"8px\" />\n ) : (\n score && <ScoreBadge score={score} maxScore={10} scoreChange={scoreChange} />\n )}\n </FlexView>\n <FlexView $flexRowGapX={0.5} $gapX={0.75}>\n {sortedTopics.map((topic, index) => (\n <Fragment key={topic.name}>\n <FlexView\n $flexDirection={layoutDirection}\n $justifyContent=\"space-between\"\n $alignItems={alignment}\n $flexRowGapX={gap}\n >\n <Text $renderAs=\"ub2\" $color={isIncomplete ? 'BLACK_T_38' : 'BLACK_1'}>\n {topic.name}\n </Text>\n <FlexView $flexGapX={0.5} $flexDirection=\"row\" $flexWrap>\n {topic.miniGoal.items.map(question => (\n <FlexView\n key={question.item_reference}\n $heightX={1.25}\n $gutterX={0.5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadiusX={1}\n $background={getQuestionStatusBgColor(question.state)}\n >\n <Text\n $renderAs=\"ub4\"\n $color={\n question.state === EQuestionState.SKIPPED ||\n question.state === EQuestionState.UNATTEMPTED\n ? 'BLACK_T_38'\n : 'WHITE'\n }\n >\n Q{question.order}\n </Text>\n </FlexView>\n ))}\n </FlexView>\n </FlexView>\n {index !== sortedTopics.length - 1 && <Styled.Divider />}\n </Fragment>\n ))}\n </FlexView>\n {showReviewButton && (\n <FlexView $alignItems=\"center\">\n <Separator heightX={0.75} />\n <Button\n label={`Review Section ${sectionNumber}`}\n renderAs={isIncomplete ? 'secondary' : 'primary'}\n size=\"small\"\n onClick={onClickReview}\n disabled={isIncomplete}\n />\n </FlexView>\n )}\n </FlexView>\n );\n});\n\nexport default ScoreSection;\n"],"names":["ScoreSection","memo","onReviewSection","section","sheet","compactView","showReviewButton","title","score","scoreChange","sessionId","isIncomplete","sectionNumber","topics","device","useTheme","isMobile","EDeviceType","sortedTopics","a","b","layoutDirection","alignment","gap","onClickReview","useCallback","FlexView","jsxs","Text","jsx","Separator","Tag","ScoreBadge","topic","index","Fragment","question","getQuestionStatusBgColor","EQuestionState","Styled.Divider","Button"],"mappings":"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"}
|
package/dist/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback-styled.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import o from "styled-components";
|
|
2
|
+
import t from "../../../../../ui/layout/flex-view.js";
|
|
3
|
+
const p = o(t)`
|
|
4
|
+
width: 100%;
|
|
5
|
+
`, d = o(t)`
|
|
6
|
+
${({ theme: r }) => `
|
|
7
|
+
width: 64px;
|
|
8
|
+
height: 64px;
|
|
9
|
+
border: 1px solid ${r.colors.BLACK_1};
|
|
10
|
+
`}
|
|
11
|
+
`;
|
|
12
|
+
export {
|
|
13
|
+
p as Container,
|
|
14
|
+
d as ThumbButton
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=ptm-feedback-styled.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ptm-feedback-styled.js","sources":["../../../../../../../src/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../../../ui/layout/flex-view';\n\nexport const Container = styled(FlexView)`\n width: 100%;\n`;\n\nexport const ThumbButton = styled(FlexView)<{ selected?: boolean }>`\n ${({ theme }: { theme: any }) => `\n width: 64px;\n height: 64px;\n border: 1px solid ${theme.colors.BLACK_1};\n`}\n`;\n"],"names":["Container","styled","FlexView","ThumbButton","theme"],"mappings":";;AAIa,MAAAA,IAAYC,EAAOC,CAAQ;AAAA;AAAA,GAI3BC,IAAcF,EAAOC,CAAQ;AAAA,IACtC,CAAC,EAAE,OAAAE,EAAA,MAA4B;AAAA;AAAA;AAAA,sBAGbA,EAAM,OAAO,OAAO;AAAA,CACzC;AAAA;"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsxs as r, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { memo as d, useCallback as i } from "react";
|
|
3
|
+
import { ILLUSTRATIONS as o } from "../../../../../../assets/illustrations/illustrations.js";
|
|
4
|
+
import n from "../../../../../ui/layout/flex-view.js";
|
|
5
|
+
import h from "../../../../../ui/image/image.js";
|
|
6
|
+
import a from "../../../../../ui/separator/separator.js";
|
|
7
|
+
import $ from "../../../../../ui/text/text.js";
|
|
8
|
+
import { Container as u, ThumbButton as c } from "./ptm-feedback-styled.js";
|
|
9
|
+
const I = d(function({ studentName: l, onFeedback: t }) {
|
|
10
|
+
const m = i(() => {
|
|
11
|
+
t("positive");
|
|
12
|
+
}, [t]), s = i(() => {
|
|
13
|
+
t("negative");
|
|
14
|
+
}, [t]);
|
|
15
|
+
return /* @__PURE__ */ r(u, { $gapX: 1.25, $background: "WHITE_1", $gutterX: 2, children: [
|
|
16
|
+
/* @__PURE__ */ e(n, { $gutterX: 1, children: /* @__PURE__ */ r($, { $renderAs: "ab2-black", $color: "BLACK_1", $align: "center", children: [
|
|
17
|
+
"Are you happy with ",
|
|
18
|
+
l,
|
|
19
|
+
"'s PTM?"
|
|
20
|
+
] }) }),
|
|
21
|
+
/* @__PURE__ */ e(a, { heightX: 1.5 }),
|
|
22
|
+
/* @__PURE__ */ r(n, { $flexDirection: "row", $flexGapX: 3, $alignItems: "center", $justifyContent: "center", children: [
|
|
23
|
+
/* @__PURE__ */ e(
|
|
24
|
+
c,
|
|
25
|
+
{
|
|
26
|
+
$widthX: 5,
|
|
27
|
+
$heightX: 5,
|
|
28
|
+
$alignItems: "center",
|
|
29
|
+
$justifyContent: "center",
|
|
30
|
+
$borderRadiusX: 2.5,
|
|
31
|
+
$borderColor: "BLACK_1",
|
|
32
|
+
onClick: m,
|
|
33
|
+
children: /* @__PURE__ */ e(h, { src: o.THUMPS_UP, alt: "Thumbs up", width: 32, height: 32 })
|
|
34
|
+
}
|
|
35
|
+
),
|
|
36
|
+
/* @__PURE__ */ e(
|
|
37
|
+
c,
|
|
38
|
+
{
|
|
39
|
+
$widthX: 5,
|
|
40
|
+
$heightX: 5,
|
|
41
|
+
$alignItems: "center",
|
|
42
|
+
$justifyContent: "center",
|
|
43
|
+
$borderColor: "BLACK_1",
|
|
44
|
+
$borderRadiusX: 2.5,
|
|
45
|
+
onClick: s,
|
|
46
|
+
children: /* @__PURE__ */ e(h, { src: o.THUMPS_DOWN, alt: "Thumbs down", width: 32, height: 32 })
|
|
47
|
+
}
|
|
48
|
+
)
|
|
49
|
+
] }),
|
|
50
|
+
/* @__PURE__ */ e(a, { heightX: 1.5 })
|
|
51
|
+
] });
|
|
52
|
+
});
|
|
53
|
+
export {
|
|
54
|
+
I as default
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=ptm-feedback.js.map
|
package/dist/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ptm-feedback.js","sources":["../../../../../../../src/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback.tsx"],"sourcesContent":["import { memo, useCallback, type FC } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../../../assets/illustrations/illustrations';\nimport FlexView from '../../../../../ui/layout/flex-view';\nimport Image from '../../../../../ui/image/image';\nimport Separator from '../../../../../ui/separator/separator';\nimport Text from '../../../../../ui/text/text';\nimport type { IPTMFeedbackProps } from './ptm-feedback-types';\nimport * as Styled from './ptm-feedback-styled';\n\nconst PTMFeedback: FC<IPTMFeedbackProps> = memo(function PTMFeedback({ studentName, onFeedback }) {\n const handlePositiveFeedback = useCallback(() => {\n onFeedback('positive');\n }, [onFeedback]);\n\n const handleNegativeFeedback = useCallback(() => {\n onFeedback('negative');\n }, [onFeedback]);\n\n return (\n <Styled.Container $gapX={1.25} $background=\"WHITE_1\" $gutterX={2}>\n <FlexView $gutterX={1}>\n <Text $renderAs=\"ab2-black\" $color=\"BLACK_1\" $align=\"center\">\n Are you happy with {studentName}'s PTM?\n </Text>\n </FlexView>\n <Separator heightX={1.5} />\n <FlexView $flexDirection=\"row\" $flexGapX={3} $alignItems=\"center\" $justifyContent=\"center\">\n <Styled.ThumbButton\n $widthX={5}\n $heightX={5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadiusX={2.5}\n $borderColor=\"BLACK_1\"\n onClick={handlePositiveFeedback}\n >\n <Image src={ILLUSTRATIONS.THUMPS_UP} alt=\"Thumbs up\" width={32} height={32} />\n </Styled.ThumbButton>\n <Styled.ThumbButton\n $widthX={5}\n $heightX={5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderColor=\"BLACK_1\"\n $borderRadiusX={2.5}\n onClick={handleNegativeFeedback}\n >\n <Image src={ILLUSTRATIONS.THUMPS_DOWN} alt=\"Thumbs down\" width={32} height={32} />\n </Styled.ThumbButton>\n </FlexView>\n <Separator heightX={1.5} />\n </Styled.Container>\n );\n});\n\nexport default PTMFeedback;\n"],"names":["PTMFeedback","memo","studentName","onFeedback","handlePositiveFeedback","useCallback","handleNegativeFeedback","jsxs","Styled.Container","jsx","FlexView","Text","Separator","Styled.ThumbButton","Image","ILLUSTRATIONS"],"mappings":";;;;;;;;AAUA,MAAMA,IAAqCC,EAAK,SAAqB,EAAE,aAAAC,GAAa,YAAAC,KAAc;AAC1F,QAAAC,IAAyBC,EAAY,MAAM;AAC/C,IAAAF,EAAW,UAAU;AAAA,EAAA,GACpB,CAACA,CAAU,CAAC,GAETG,IAAyBD,EAAY,MAAM;AAC/C,IAAAF,EAAW,UAAU;AAAA,EAAA,GACpB,CAACA,CAAU,CAAC;AAGb,SAAA,gBAAAI,EAACC,GAAA,EAAiB,OAAO,MAAM,aAAY,WAAU,UAAU,GAC7D,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAS,UAAU,GAClB,UAAC,gBAAAH,EAAAI,GAAA,EAAK,WAAU,aAAY,QAAO,WAAU,QAAO,UAAS,UAAA;AAAA,MAAA;AAAA,MACvCT;AAAA,MAAY;AAAA,IAAA,EAAA,CAClC,EACF,CAAA;AAAA,IACA,gBAAAO,EAACG,GAAU,EAAA,SAAS,IAAK,CAAA;AAAA,IACzB,gBAAAL,EAACG,KAAS,gBAAe,OAAM,WAAW,GAAG,aAAY,UAAS,iBAAgB,UAChF,UAAA;AAAA,MAAA,gBAAAD;AAAA,QAACI;AAAAA,QAAA;AAAA,UACC,SAAS;AAAA,UACT,UAAU;AAAA,UACV,aAAY;AAAA,UACZ,iBAAgB;AAAA,UAChB,gBAAgB;AAAA,UAChB,cAAa;AAAA,UACb,SAAST;AAAA,UAET,UAAA,gBAAAK,EAACK,GAAM,EAAA,KAAKC,EAAc,WAAW,KAAI,aAAY,OAAO,IAAI,QAAQ,GAAI,CAAA;AAAA,QAAA;AAAA,MAC9E;AAAA,MACA,gBAAAN;AAAA,QAACI;AAAAA,QAAA;AAAA,UACC,SAAS;AAAA,UACT,UAAU;AAAA,UACV,aAAY;AAAA,UACZ,iBAAgB;AAAA,UAChB,cAAa;AAAA,UACb,gBAAgB;AAAA,UAChB,SAASP;AAAA,UAET,UAAA,gBAAAG,EAACK,GAAM,EAAA,KAAKC,EAAc,aAAa,KAAI,eAAc,OAAO,IAAI,QAAQ,GAAI,CAAA;AAAA,QAAA;AAAA,MAClF;AAAA,IAAA,GACF;AAAA,IACA,gBAAAN,EAACG,GAAU,EAAA,SAAS,IAAK,CAAA;AAAA,EAC3B,EAAA,CAAA;AAEJ,CAAC;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import t from "styled-components";
|
|
2
|
+
import r from "../../../../../ui/layout/flex-view.js";
|
|
3
|
+
const x = t(r)(
|
|
4
|
+
({ theme: o }) => `
|
|
5
|
+
position: fixed;
|
|
6
|
+
bottom: 0;
|
|
7
|
+
width: 100%;
|
|
8
|
+
background-color: ${o.colors.WHITE_3};
|
|
9
|
+
border: 1px solid ${o.colors.BLACK_5};
|
|
10
|
+
box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.1);
|
|
11
|
+
z-index: 100;
|
|
12
|
+
max-width: 480px;
|
|
13
|
+
`
|
|
14
|
+
), p = t(r)`
|
|
15
|
+
width: 100%;
|
|
16
|
+
max-width: 100%;
|
|
17
|
+
`;
|
|
18
|
+
export {
|
|
19
|
+
p as ContentWrapper,
|
|
20
|
+
x as StickyContainer
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=sticky-footer-styled.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sticky-footer-styled.js","sources":["../../../../../../../src/features/timeline/monthly-timeline/ptm-report/comps/sticky-footer/sticky-footer-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../../../ui/layout/flex-view';\n\nexport const StickyContainer = styled(FlexView)(\n ({ theme }) => `\n position: fixed;\n bottom: 0;\n width: 100%;\n background-color: ${theme.colors.WHITE_3};\n border: 1px solid ${theme.colors.BLACK_5};\n box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.1);\n z-index: 100;\n max-width: 480px;\n `,\n);\n\nexport const ContentWrapper = styled(FlexView)`\n width: 100%;\n max-width: 100%;\n`;\n"],"names":["StickyContainer","styled","FlexView","theme","ContentWrapper"],"mappings":";;AAIa,MAAAA,IAAkBC,EAAOC,CAAQ;AAAA,EAC5C,CAAC,EAAE,OAAAC,EAAA,MAAY;AAAA;AAAA;AAAA;AAAA,wBAIOA,EAAM,OAAO,OAAO;AAAA,wBACpBA,EAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAK5C,GAEaC,IAAiBH,EAAOC,CAAQ;AAAA;AAAA;AAAA;"}
|
package/dist/features/timeline/monthly-timeline/ptm-report/comps/sticky-footer/sticky-footer.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { memo as e } from "react";
|
|
3
|
+
import i from "../ptm-feedback/ptm-feedback.js";
|
|
4
|
+
import { StickyContainer as m, ContentWrapper as n } from "./sticky-footer-styled.js";
|
|
5
|
+
const k = e(function({
|
|
6
|
+
studentName: r,
|
|
7
|
+
onFeedback: t
|
|
8
|
+
}) {
|
|
9
|
+
return /* @__PURE__ */ o(m, { children: /* @__PURE__ */ o(n, { children: /* @__PURE__ */ o(i, { studentName: r, onFeedback: t }) }) });
|
|
10
|
+
});
|
|
11
|
+
export {
|
|
12
|
+
k as default
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=sticky-footer.js.map
|
package/dist/features/timeline/monthly-timeline/ptm-report/comps/sticky-footer/sticky-footer.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sticky-footer.js","sources":["../../../../../../../src/features/timeline/monthly-timeline/ptm-report/comps/sticky-footer/sticky-footer.tsx"],"sourcesContent":["import { memo, type FC } from 'react';\n\nimport PTMFeedback from '../ptm-feedback/ptm-feedback';\nimport type { IStickyFooterProps } from './sticky-footer-types';\nimport * as Styled from './sticky-footer-styled';\n\nconst StickyFooter: FC<IStickyFooterProps> = memo(function StickyFooter({\n studentName,\n onFeedback,\n}) {\n return (\n <Styled.StickyContainer>\n <Styled.ContentWrapper>\n <PTMFeedback studentName={studentName} onFeedback={onFeedback} />\n </Styled.ContentWrapper>\n </Styled.StickyContainer>\n );\n});\n\nexport default StickyFooter;\n"],"names":["StickyFooter","memo","studentName","onFeedback","jsx","Styled.StickyContainer","Styled.ContentWrapper","PTMFeedback"],"mappings":";;;;AAMM,MAAAA,IAAuCC,EAAK,SAAsB;AAAA,EACtE,aAAAC;AAAA,EACA,YAAAC;AACF,GAAG;AACD,SACG,gBAAAC,EAAAC,GAAA,EACC,UAAC,gBAAAD,EAAAE,GAAA,EACC,UAAC,gBAAAF,EAAAG,GAAA,EAAY,aAAAL,GAA0B,YAAAC,EAAA,CAAwB,GACjE,EACF,CAAA;AAEJ,CAAC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ptm-report-types.js","sources":["../../../../../src/features/timeline/monthly-timeline/ptm-report/ptm-report-types.ts"],"sourcesContent":["// ============================\n// SHARED INTERFACES\n// ============================\n\nexport interface IIntroSlide {\n color: string;\n content: string;\n section_name: string;\n type: string;\n}\n\nexport interface IStrategyOption {\n option_info: string;\n option_label: string;\n}\n\nexport interface IStrategyCategory {\n category_label: string;\n icon: string;\n options: IStrategyOption[];\n}\n\n// ============================\n// CONFIG INTERFACES\n// ============================\n\nexport interface ILearningStrategyConfig {\n intro_slide: IIntroSlide;\n learning_strategy_cta: string;\n max: number;\n min: number;\n page_heading: string;\n page_subheading: string;\n show_key_need?: boolean;\n step_no: number;\n steps_info: string;\n steps_label: string;\n strategies: {\n advanced_math: IStrategyCategory;\n learning_gaps: IStrategyCategory;\n math_anxiety: IStrategyCategory;\n math_foundation: IStrategyCategory;\n mental_math: IStrategyCategory;\n more_practice: IStrategyCategory;\n };\n}\n\nexport interface IParentSupportOptionConfig {\n icon: string;\n option_cta: string | null;\n option_info: string;\n option_key: string;\n option_label: string;\n report_statement: string;\n slides_ratio: string;\n slides_tag: string;\n}\n\nexport interface IParentSupportConfig {\n intro_slide: IIntroSlide;\n options: IParentSupportOptionConfig[];\n page_heading: string;\n page_subheading: string;\n step_no: number;\n steps_info: string;\n steps_label: string;\n}\n\nexport interface IRealWorldProjectConfig {\n intro_slide: IIntroSlide;\n max: number;\n page_heading: string;\n ptm_report_color?: {\n images: string[];\n objective: string;\n remarks: string;\n };\n remarks_heading: string;\n remarks_placeholder: string;\n step_no: number;\n steps_info: string;\n steps_label: string;\n tag: string;\n}\n\nexport interface ISchoolSupportArea {\n area_label?: string;\n optional: boolean;\n options?: string[];\n placeholder?: string;\n question: string;\n report_statement: string | string[];\n report_statement_with_performance?: string[];\n report_statement_with_previous_performance?: string[];\n type: string;\n}\n\nexport interface ISchoolSupportHomeworkHelpConfig {\n area_name: string;\n areas: ISchoolSupportArea[];\n color: string;\n optional: boolean;\n page_heading: string;\n}\n\nexport interface ISchoolSupportTestHelpConfig {\n area_name: string;\n areas: ISchoolSupportArea[];\n color: string;\n optional: boolean;\n page_heading: string;\n}\n\nexport interface ISchoolSupportSubsectionsConfig {\n homework_help: ISchoolSupportHomeworkHelpConfig;\n test_help: ISchoolSupportTestHelpConfig;\n}\n\nexport interface ISchoolSupportConfig {\n intro_slide: IIntroSlide;\n step_no: number;\n steps_info: string;\n steps_label: string;\n subsections: ISchoolSupportSubsectionsConfig;\n}\n\nexport interface IObservationAreaConfig {\n area_key: string;\n area_label: string;\n icon: string;\n report_statement: string;\n}\n\nexport interface IFocusAreaConfig {\n areas: IObservationAreaConfig[];\n max: number;\n page_heading: string;\n page_subheading: string;\n report_tag: string;\n}\n\nexport interface IStrengthOptionConfig {\n option_label: string;\n report_statement: string;\n report_tag: string;\n}\n\nexport interface IStrengthAreaConfig extends IObservationAreaConfig {\n options: IStrengthOptionConfig[];\n}\n\nexport interface IStrengthsConfig {\n areas: IStrengthAreaConfig[];\n max: number;\n page_heading: string;\n page_subheading: string;\n}\n\nexport interface ITeacherRemarksConfig {\n area_label: string;\n page_heading: string;\n page_subheading: string;\n placeholder: string;\n report_tag: string;\n}\n\nexport interface ITeacherObservationSubsectionsConfig {\n focus_area: IFocusAreaConfig;\n strengths: IStrengthsConfig;\n teacher_remarks: ITeacherRemarksConfig;\n}\n\nexport interface ITeacherObservationConfig {\n intro_slide: IIntroSlide;\n step_no: number;\n steps_info: string;\n steps_label: string;\n subsections: ITeacherObservationSubsectionsConfig;\n}\n\nexport interface IUpcomingChaptersConfig {\n area_label: string;\n intro_slide: IIntroSlide;\n page_heading: string;\n page_subheading: string;\n placeholder: string;\n step_no: number;\n steps_info: string;\n steps_label: string;\n}\n\nexport interface IPTMReportSectionsConfig {\n learning_strategy: ILearningStrategyConfig;\n parent_support: IParentSupportConfig;\n real_world_project?: IRealWorldProjectConfig;\n school_support?: ISchoolSupportConfig;\n teacher_observation: ITeacherObservationConfig;\n upcoming_chapters?: IUpcomingChaptersConfig;\n}\n\n// ============================\n// REPORT INTERFACES (actual report data)\n// ============================\n\nexport interface IReportStrategies {\n advanced_math?: number[];\n learning_gaps?: number[];\n math_anxiety?: number[];\n math_foundation?: number[];\n mental_math?: number[];\n more_practice?: number[];\n}\n\nexport interface IReportTeacherObservation {\n focus_area: string;\n strengths: Record<string, number>;\n teacher_remarks: string;\n}\n\nexport interface IRealWorldProjectReport {\n images?: number[];\n observation: string;\n}\n\nexport interface IUpcomingChaptersReport {\n upcoming_chapters: string;\n}\n\nexport interface ISchoolSupportHomeworkHelpReport {\n is_hw_help_provided: number;\n selected: number[];\n topics: string;\n}\n\nexport interface ISchoolSupportTestHelpReport {\n performance: {\n scored: string;\n total: string;\n grade: string;\n };\n previous_performance: {\n scored: string;\n total: string;\n grade: string;\n };\n selected: number[];\n}\n\nexport interface ISchoolSupportReport {\n homework_help: ISchoolSupportHomeworkHelpReport;\n test_help: ISchoolSupportTestHelpReport;\n}\n\nexport interface IReportSections {\n parent_support: number[];\n strategies: IReportStrategies;\n teacher_observation: IReportTeacherObservation;\n real_world_project?: IRealWorldProjectReport;\n upcoming_chapters?: IUpcomingChaptersReport;\n school_support?: ISchoolSupportReport;\n}\n\n// ============================\n// STUDENT & TEACHER DATA\n// ============================\n\nexport interface IAttendanceData {\n classes_completed: number;\n weeks_completed: number;\n}\n\nexport interface IHomeworkData {\n incomplete_sheets: number | null;\n sheets_assigned: number;\n sheets_not_completed: number;\n}\n\nexport interface IKeyNeed {\n created_by_id?: string;\n evidence_of_key_need?: string;\n is_published?: boolean;\n is_seen_by_teacher?: boolean;\n key_need: string;\n last_modified_by?: string;\n measure_of_success: string;\n strategies?: any[];\n timestamp?: number;\n}\n\nexport interface ILateClassData {\n break_time: number;\n date: number;\n enter_datetime: number;\n id: string;\n is_invalid: boolean;\n is_skipped: boolean;\n perfect_hit: number;\n scheduled_duration_minutes: number;\n scheduled_end_time: number;\n scheduled_start_datetime: number;\n scheduled_start_time: number;\n status: string;\n student_course_id: string;\n student_id: string;\n tag: string;\n teacher_classroom_id: string;\n was_late: boolean;\n}\n\nexport interface IRealWorldProjectInfo {\n activity: string;\n attempt_id?: string;\n objective: string;\n image_upload_urls?: string[];\n}\n\nexport interface IStudentData {\n attendance_data: IAttendanceData;\n key_need: IKeyNeed;\n country: string;\n country_code: string;\n first_name: string;\n gender: string;\n grade: string;\n homework_data: IHomeworkData;\n last_name: string;\n name: string;\n parent_name: string;\n phone: string;\n plus_class_streak: number;\n real_world_project?: IRealWorldProjectInfo;\n late_class_data: ILateClassData[];\n student_service_id: string;\n}\n\nexport interface ITeacherData {\n email: string;\n first_name: string;\n gender: string;\n last_name: string;\n name: string;\n phone: string;\n}\n\nexport interface IPTMReport {\n report_sections: IReportSections;\n state: string;\n student_data: IStudentData;\n teacher_data: ITeacherData;\n}\n\n// ============================\n// PTM CONFIG INTERFACES\n// ============================\n\nexport interface IDefaultKeyNeed {\n key_need: string;\n measure_of_success: string;\n}\n\nexport interface IFeedbackConfig {\n questions: string[];\n}\n\nexport interface IPTMSchedulingConfig {\n colatteral_image_link: string;\n colatteral_text: string;\n cta_label: string;\n cta_label_share_report?: string;\n cta_text: string;\n cta_text_share_report?: string;\n optional?: boolean;\n step_no: number;\n steps_info: string;\n steps_label: string;\n}\n\nexport interface ISlidesConfigBullet {\n content: string;\n title?: string;\n}\n\nexport interface ISlidesConfig {\n qna?: {\n content: string;\n header: string;\n type: string;\n };\n thankyou: {\n bullets?: ISlidesConfigBullet[];\n content?: string;\n header: string;\n subheader?: string;\n type: string;\n };\n welcome: {\n bullets: ISlidesConfigBullet[];\n header: string;\n type: string;\n };\n}\n\nexport interface IPTMConfigDetails {\n default_key_need: IDefaultKeyNeed;\n feedback_config: IFeedbackConfig;\n late_if_minutes: number;\n late_if_seconds: number;\n ptm_expiry_days: number;\n ptm_report_sections: IPTMReportSectionsConfig;\n ptm_scheduling: IPTMSchedulingConfig;\n report_color_config: Record<string, string>;\n slides_config: ISlidesConfig;\n}\n\nexport interface IPTMConfig {\n config: IPTMConfigDetails;\n created_on_ts: number;\n id: string;\n is_active: boolean;\n meta: null;\n ptm_type: string;\n updated_on_ts: number;\n version: number;\n}\n\n// ============================\n// MAIN PTM RESPONSE INTERFACE\n// ============================\n\nexport interface IPTMReportResponse {\n created_on_ts: number;\n due_date: number;\n id: string;\n is_moment_ptm: boolean;\n meta: {\n student_classroom_id: string;\n student_course_id: string;\n };\n opportunity_action_id: string | null;\n ptm_config: IPTMConfig;\n ptm_config_id: string;\n ptm_id: string;\n ptm_platform: string | null;\n ptm_state: string;\n ptm_type: string;\n report: IPTMReport;\n reschedule_reason: string | null;\n scheduled_on: number;\n student_classroom_id: string;\n student_course_id: string;\n student_id: string;\n teacher_classroom_id: string;\n teacher_id: string;\n updated_on_ts: number;\n}\n\n// ============================\n// UTILITY INTERFACES & ENUMS\n// ============================\n\nexport interface IPTMReportProps {\n ptmId: string;\n onAPIComplete?: (success: boolean) => void;\n}\n\nexport enum EPTMTypes {\n ON_DEMAND = 'ON_DEMAND',\n PLUS_CLASS_7 = 'PLUS_CLASS_7',\n}\n"],"names":["EPTMTypes"],"mappings":"AAidY,IAAAA,sBAAAA,OACVA,EAAA,YAAY,aACZA,EAAA,eAAe,gBAFLA,IAAAA,KAAA,CAAA,CAAA;"}
|
|
1
|
+
{"version":3,"file":"ptm-report-types.js","sources":["../../../../../src/features/timeline/monthly-timeline/ptm-report/ptm-report-types.ts"],"sourcesContent":["// ============================\n// SHARED INTERFACES\n// ============================\n\nexport interface IIntroSlide {\n color: string;\n content: string;\n section_name: string;\n type: string;\n}\n\nexport interface IStrategyOption {\n option_info: string;\n option_label: string;\n}\n\nexport interface IStrategyCategory {\n category_label: string;\n icon: string;\n options: IStrategyOption[];\n}\n\n// ============================\n// CONFIG INTERFACES\n// ============================\n\nexport interface ILearningStrategyConfig {\n intro_slide: IIntroSlide;\n learning_strategy_cta: string;\n max: number;\n min: number;\n page_heading: string;\n page_subheading: string;\n show_key_need?: boolean;\n step_no: number;\n steps_info: string;\n steps_label: string;\n strategies: {\n advanced_math: IStrategyCategory;\n learning_gaps: IStrategyCategory;\n math_anxiety: IStrategyCategory;\n math_foundation: IStrategyCategory;\n mental_math: IStrategyCategory;\n more_practice: IStrategyCategory;\n };\n}\n\nexport interface IParentSupportOptionConfig {\n icon: string;\n option_cta: string | null;\n option_info: string;\n option_key: string;\n option_label: string;\n report_statement: string;\n slides_ratio: string;\n slides_tag: string;\n}\n\nexport interface IParentSupportConfig {\n intro_slide: IIntroSlide;\n options: IParentSupportOptionConfig[];\n page_heading: string;\n page_subheading: string;\n step_no: number;\n steps_info: string;\n steps_label: string;\n}\n\nexport interface IRealWorldProjectConfig {\n intro_slide: IIntroSlide;\n max: number;\n page_heading: string;\n ptm_report_color?: {\n images: string[];\n objective: string;\n remarks: string;\n };\n remarks_heading: string;\n remarks_placeholder: string;\n step_no: number;\n steps_info: string;\n steps_label: string;\n tag: string;\n}\n\nexport interface ISchoolSupportArea {\n area_label?: string;\n optional: boolean;\n options?: string[];\n placeholder?: string;\n question: string;\n report_statement: string | string[];\n report_statement_with_performance?: string[];\n report_statement_with_previous_performance?: string[];\n type: string;\n}\n\nexport interface ISchoolSupportHomeworkHelpConfig {\n area_name: string;\n areas: ISchoolSupportArea[];\n color: string;\n optional: boolean;\n page_heading: string;\n}\n\nexport interface ISchoolSupportTestHelpConfig {\n area_name: string;\n areas: ISchoolSupportArea[];\n color: string;\n optional: boolean;\n page_heading: string;\n}\n\nexport interface ISchoolSupportSubsectionsConfig {\n homework_help: ISchoolSupportHomeworkHelpConfig;\n test_help: ISchoolSupportTestHelpConfig;\n}\n\nexport interface ISchoolSupportConfig {\n intro_slide: IIntroSlide;\n step_no: number;\n steps_info: string;\n steps_label: string;\n subsections: ISchoolSupportSubsectionsConfig;\n}\n\nexport interface IObservationAreaConfig {\n area_key: string;\n area_label: string;\n icon: string;\n report_statement: string;\n}\n\nexport interface IFocusAreaConfig {\n areas: IObservationAreaConfig[];\n max: number;\n page_heading: string;\n page_subheading: string;\n report_tag: string;\n}\n\nexport interface IStrengthOptionConfig {\n option_label: string;\n report_statement: string;\n report_tag: string;\n}\n\nexport interface IStrengthAreaConfig extends IObservationAreaConfig {\n options: IStrengthOptionConfig[];\n}\n\nexport interface IStrengthsConfig {\n areas: IStrengthAreaConfig[];\n max: number;\n page_heading: string;\n page_subheading: string;\n}\n\nexport interface ITeacherRemarksConfig {\n area_label: string;\n page_heading: string;\n page_subheading: string;\n placeholder: string;\n report_tag: string;\n}\n\nexport interface ITeacherObservationSubsectionsConfig {\n focus_area: IFocusAreaConfig;\n strengths: IStrengthsConfig;\n teacher_remarks: ITeacherRemarksConfig;\n}\n\nexport interface ITeacherObservationConfig {\n intro_slide: IIntroSlide;\n step_no: number;\n steps_info: string;\n steps_label: string;\n subsections: ITeacherObservationSubsectionsConfig;\n}\n\nexport interface IUpcomingChaptersConfig {\n area_label: string;\n intro_slide: IIntroSlide;\n page_heading: string;\n page_subheading: string;\n placeholder: string;\n step_no: number;\n steps_info: string;\n steps_label: string;\n}\n\nexport interface IPTMReportSectionsConfig {\n learning_strategy: ILearningStrategyConfig;\n parent_support: IParentSupportConfig;\n real_world_project?: IRealWorldProjectConfig;\n school_support?: ISchoolSupportConfig;\n teacher_observation: ITeacherObservationConfig;\n upcoming_chapters?: IUpcomingChaptersConfig;\n}\n\n// ============================\n// REPORT INTERFACES (actual report data)\n// ============================\n\nexport interface IReportStrategies {\n advanced_math?: number[];\n learning_gaps?: number[];\n math_anxiety?: number[];\n math_foundation?: number[];\n mental_math?: number[];\n more_practice?: number[];\n}\n\nexport interface IReportTeacherObservation {\n focus_area: string;\n strengths: Record<string, number>;\n teacher_remarks: string;\n}\n\nexport interface IRealWorldProjectReport {\n images?: number[];\n observation: string;\n}\n\nexport interface IUpcomingChaptersReport {\n upcoming_chapters: string;\n}\n\nexport interface ISchoolSupportHomeworkHelpReport {\n is_hw_help_provided: number;\n selected: number[];\n topics: string;\n}\n\nexport interface ISchoolSupportTestHelpReport {\n performance: {\n scored: string;\n total: string;\n grade: string;\n };\n previous_performance: {\n scored: string;\n total: string;\n grade: string;\n };\n selected: number[];\n}\n\nexport interface ISchoolSupportReport {\n homework_help: ISchoolSupportHomeworkHelpReport;\n test_help: ISchoolSupportTestHelpReport;\n}\n\nexport interface IReportSections {\n parent_support: number[];\n strategies: IReportStrategies;\n teacher_observation: IReportTeacherObservation;\n real_world_project?: IRealWorldProjectReport;\n upcoming_chapters?: IUpcomingChaptersReport;\n school_support?: ISchoolSupportReport;\n}\n\n// ============================\n// STUDENT & TEACHER DATA\n// ============================\n\nexport interface IAttendanceData {\n classes_completed: number;\n weeks_completed: number;\n}\n\nexport interface IHomeworkData {\n incomplete_sheets: number | null;\n sheets_assigned: number;\n sheets_not_completed: number;\n}\n\nexport interface IKeyNeed {\n created_by_id?: string;\n evidence_of_key_need?: string;\n is_published?: boolean;\n is_seen_by_teacher?: boolean;\n key_need: string;\n last_modified_by?: string;\n measure_of_success: string;\n strategies?: any[];\n timestamp?: number;\n}\n\nexport interface ILateClassData {\n break_time: number;\n date: number;\n enter_datetime: number;\n id: string;\n is_invalid: boolean;\n is_skipped: boolean;\n perfect_hit: number;\n scheduled_duration_minutes: number;\n scheduled_end_time: number;\n scheduled_start_datetime: number;\n scheduled_start_time: number;\n status: string;\n student_course_id: string;\n student_id: string;\n tag: string;\n teacher_classroom_id: string;\n was_late: boolean;\n}\n\nexport interface IRealWorldProjectInfo {\n activity: string;\n attempt_id?: string;\n objective: string;\n image_upload_urls?: string[];\n}\n\nexport interface IStudentData {\n attendance_data: IAttendanceData;\n key_need: IKeyNeed;\n country: string;\n country_code: string;\n first_name: string;\n gender: string;\n grade: string;\n homework_data: IHomeworkData;\n last_name: string;\n name: string;\n parent_name: string;\n phone: string;\n plus_class_streak: number;\n real_world_project?: IRealWorldProjectInfo;\n late_class_data: ILateClassData[];\n student_service_id: string;\n}\n\nexport interface ITeacherData {\n email: string;\n first_name: string;\n gender: string;\n last_name: string;\n name: string;\n phone: string;\n}\n\nexport interface IPTMReport {\n report_sections: IReportSections;\n state: string;\n student_data: IStudentData;\n teacher_data: ITeacherData;\n}\n\n// ============================\n// PTM CONFIG INTERFACES\n// ============================\n\nexport interface IDefaultKeyNeed {\n key_need: string;\n measure_of_success: string;\n}\n\nexport interface IFeedbackConfig {\n questions: string[];\n}\n\nexport interface IPTMSchedulingConfig {\n colatteral_image_link: string;\n colatteral_text: string;\n cta_label: string;\n cta_label_share_report?: string;\n cta_text: string;\n cta_text_share_report?: string;\n optional?: boolean;\n step_no: number;\n steps_info: string;\n steps_label: string;\n}\n\nexport interface ISlidesConfigBullet {\n content: string;\n title?: string;\n}\n\nexport interface ISlidesConfig {\n qna?: {\n content: string;\n header: string;\n type: string;\n };\n thankyou: {\n bullets?: ISlidesConfigBullet[];\n content?: string;\n header: string;\n subheader?: string;\n type: string;\n };\n welcome: {\n bullets: ISlidesConfigBullet[];\n header: string;\n type: string;\n };\n}\n\nexport interface IPTMConfigDetails {\n default_key_need: IDefaultKeyNeed;\n feedback_config: IFeedbackConfig;\n late_if_minutes: number;\n late_if_seconds: number;\n ptm_expiry_days: number;\n ptm_report_sections: IPTMReportSectionsConfig;\n ptm_scheduling: IPTMSchedulingConfig;\n report_color_config: Record<string, string>;\n slides_config: ISlidesConfig;\n}\n\nexport interface IPTMConfig {\n config: IPTMConfigDetails;\n created_on_ts: number;\n id: string;\n is_active: boolean;\n meta: null;\n ptm_type: string;\n updated_on_ts: number;\n version: number;\n}\n\n// ============================\n// MAIN PTM RESPONSE INTERFACE\n// ============================\n\nexport interface IPTMReportResponse {\n created_on_ts: number;\n due_date: number;\n id: string;\n is_moment_ptm: boolean;\n meta: {\n student_classroom_id: string;\n student_course_id: string;\n };\n opportunity_action_id: string | null;\n ptm_config: IPTMConfig;\n ptm_config_id: string;\n ptm_id: string;\n ptm_platform: string | null;\n ptm_state: string;\n ptm_type: string;\n report: IPTMReport;\n reschedule_reason: string | null;\n scheduled_on: number;\n student_classroom_id: string;\n student_course_id: string;\n student_id: string;\n teacher_classroom_id: string;\n teacher_id: string;\n updated_on_ts: number;\n is_feedback_submitted?: boolean;\n}\n\n// ============================\n// UTILITY INTERFACES & ENUMS\n// ============================\n\nexport interface IPTMReportProps {\n ptmId: string;\n onAPIComplete?: (success: boolean) => void;\n onFeedback?: (feedbackType: 'positive' | 'negative', ptmId: string) => void;\n showFeedback?: boolean;\n}\n\nexport enum EPTMTypes {\n ON_DEMAND = 'ON_DEMAND',\n PLUS_CLASS_7 = 'PLUS_CLASS_7',\n}\n"],"names":["EPTMTypes"],"mappings":"AAodY,IAAAA,sBAAAA,OACVA,EAAA,YAAY,aACZA,EAAA,eAAe,gBAFLA,IAAAA,KAAA,CAAA,CAAA;"}
|
|
@@ -1,116 +1,132 @@
|
|
|
1
|
-
import { jsx as e, jsxs as
|
|
2
|
-
import { memo as
|
|
3
|
-
import { usePTMReportGet as
|
|
4
|
-
import { EPTMTypes as
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import { Container as
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
|
|
1
|
+
import { jsx as e, jsxs as a, Fragment as R } from "react/jsx-runtime";
|
|
2
|
+
import { memo as ke, useState as Re, useCallback as f, useEffect as d } from "react";
|
|
3
|
+
import { usePTMReportGet as Ce } from "./api/use-ptm-report-get.js";
|
|
4
|
+
import { EPTMTypes as Se } from "./ptm-report-types.js";
|
|
5
|
+
import Te from "../../../ui/loader/app-loader/app-loader.js";
|
|
6
|
+
import be from "./comps/student-info/student-info.js";
|
|
7
|
+
import { Container as we } from "./ptm-report-styled.js";
|
|
8
|
+
import ye from "./comps/key-need/key-need.js";
|
|
9
|
+
import Me from "../../../ui/layout/flex-view.js";
|
|
10
|
+
import Pe from "./comps/teacher-observations/teacher-observations.js";
|
|
11
|
+
import De from "./comps/strategies/strategies.js";
|
|
12
|
+
import Oe from "./comps/parent-support/parent-support.js";
|
|
13
|
+
import je from "./comps/upcoming-chapters/upcoming-chapters.js";
|
|
14
|
+
import Ae from "./comps/real-world-projects/real-world-projects.js";
|
|
15
|
+
import ve from "./comps/school-support/school-support.js";
|
|
16
|
+
import Fe from "../../../ui/error/error.js";
|
|
17
|
+
import xe from "./comps/sticky-footer/sticky-footer.js";
|
|
18
|
+
import Ee from "../../../ui/separator/separator.js";
|
|
19
|
+
const Ne = ({ ptmId: o, onAPIComplete: r, onFeedback: n }) => {
|
|
20
|
+
const [t, C] = Re(null), {
|
|
21
|
+
get: u,
|
|
22
|
+
data: _,
|
|
23
|
+
isProcessing: S,
|
|
24
|
+
isProcessed: p,
|
|
25
|
+
isProcessingFailed: s
|
|
26
|
+
} = Ce(o), T = f((l) => {
|
|
27
|
+
C(l);
|
|
28
|
+
}, []), k = f(() => {
|
|
29
|
+
n && t && n(t, o);
|
|
30
|
+
}, [t, o, n]), c = f(() => {
|
|
31
|
+
u(o);
|
|
32
|
+
}, [u, o]);
|
|
33
|
+
if (d(() => {
|
|
34
|
+
c();
|
|
35
|
+
}, [c]), d(() => {
|
|
36
|
+
(p || s) && (r == null || r(p && !s));
|
|
37
|
+
}, [p, s, r]), d(() => {
|
|
38
|
+
t && (console.log("submitting feedback:", t), k());
|
|
39
|
+
}, [t, k]), S || !_)
|
|
40
|
+
return /* @__PURE__ */ e(Te, { height: "100dvh" });
|
|
41
|
+
if (s)
|
|
42
|
+
return /* @__PURE__ */ e(Fe, { onTryAgain: c, height: "100dvh" });
|
|
18
43
|
const {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}, [
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
attendance_data: Z,
|
|
60
|
-
homework_data: I,
|
|
61
|
-
late_class_data: ee = [],
|
|
62
|
-
real_world_project: te
|
|
63
|
-
} = H || {}, { classes_completed: oe, weeks_completed: re } = Z || {}, { sheets_assigned: se, sheets_not_completed: ae } = I || {}, ne = x.find(
|
|
64
|
-
({ area_key: me }) => me === J
|
|
65
|
-
), pe = (p == null ? void 0 : p.key_need) ?? "", c = n === de.ON_DEMAND, ce = ee.length, ie = n && n.split("_").includes("UPGRADE");
|
|
66
|
-
return /* @__PURE__ */ i(Re, { children: [
|
|
67
|
-
/* @__PURE__ */ e(ue, { name: h, grade: Y }),
|
|
68
|
-
/* @__PURE__ */ i(ke, { $gutterX: 1, $gapX: 1, children: [
|
|
69
|
-
/* @__PURE__ */ e(Ce, { text: pe }),
|
|
70
|
-
(c || ie) && /* @__PURE__ */ i(ge, { children: [
|
|
71
|
-
/* @__PURE__ */ e(Me, { projectReport: X, projectInfo: te }),
|
|
44
|
+
ptm_config: b,
|
|
45
|
+
report: w
|
|
46
|
+
// is_feedback_submitted: isFeedbackSubmitted = true,
|
|
47
|
+
} = _, { ptm_type: i, config: y } = b || {}, { ptm_report_sections: M, late_if_minutes: P } = y || {}, {
|
|
48
|
+
teacher_observation: D,
|
|
49
|
+
learning_strategy: O,
|
|
50
|
+
parent_support: j,
|
|
51
|
+
school_support: A
|
|
52
|
+
} = M || {}, { subsections: v } = A || {}, { homework_help: F, test_help: x } = v || {}, { options: E } = j || {}, { strategies: N } = O || {}, { subsections: U } = D || {}, {
|
|
53
|
+
focus_area: H,
|
|
54
|
+
strengths: W,
|
|
55
|
+
teacher_remarks: G
|
|
56
|
+
} = U || {}, { areas: X = [], report_tag: K } = H || {}, { areas: $ = [] } = W || {}, { report_tag: L } = G || {}, { report_sections: V, student_data: q } = w, {
|
|
57
|
+
teacher_observation: z,
|
|
58
|
+
parent_support: B,
|
|
59
|
+
strategies: J,
|
|
60
|
+
real_world_project: Q,
|
|
61
|
+
school_support: Y,
|
|
62
|
+
upcoming_chapters: Z
|
|
63
|
+
} = V || {}, { homework_help: I, test_help: ee } = Y || {}, { upcoming_chapters: te } = Z || {}, {
|
|
64
|
+
strengths: oe = {},
|
|
65
|
+
focus_area: re,
|
|
66
|
+
teacher_remarks: se
|
|
67
|
+
} = z || {}, {
|
|
68
|
+
first_name: m,
|
|
69
|
+
grade: ae,
|
|
70
|
+
key_need: g,
|
|
71
|
+
attendance_data: ne,
|
|
72
|
+
homework_data: pe,
|
|
73
|
+
late_class_data: ce = [],
|
|
74
|
+
real_world_project: ie
|
|
75
|
+
} = q || {}, { classes_completed: me, weeks_completed: ge } = ne || {}, { sheets_assigned: he, sheets_not_completed: le } = pe || {}, fe = X.find(
|
|
76
|
+
({ area_key: l }) => l === re
|
|
77
|
+
), de = (g == null ? void 0 : g.key_need) ?? "", h = i === Se.ON_DEMAND, ue = ce.length, _e = i && i.split("_").includes("UPGRADE");
|
|
78
|
+
return /* @__PURE__ */ a(we, { children: [
|
|
79
|
+
/* @__PURE__ */ e(be, { name: m, grade: ae }),
|
|
80
|
+
/* @__PURE__ */ a(Me, { $gutterX: 1, $gapX: 1, children: [
|
|
81
|
+
/* @__PURE__ */ e(ye, { text: de }),
|
|
82
|
+
(h || _e) && /* @__PURE__ */ a(R, { children: [
|
|
83
|
+
/* @__PURE__ */ e(Ae, { projectReport: Q, projectInfo: ie }),
|
|
72
84
|
/* @__PURE__ */ e(
|
|
73
|
-
|
|
85
|
+
ve,
|
|
74
86
|
{
|
|
75
|
-
homeworkHelpReport:
|
|
76
|
-
homeworkHelpConfig:
|
|
77
|
-
testHelpReport:
|
|
78
|
-
testHelpConfig:
|
|
79
|
-
studentName:
|
|
80
|
-
isOnDemandPTM:
|
|
87
|
+
homeworkHelpReport: I,
|
|
88
|
+
homeworkHelpConfig: F,
|
|
89
|
+
testHelpReport: ee,
|
|
90
|
+
testHelpConfig: x,
|
|
91
|
+
studentName: m,
|
|
92
|
+
isOnDemandPTM: h
|
|
81
93
|
}
|
|
82
94
|
)
|
|
83
95
|
] }),
|
|
84
96
|
/* @__PURE__ */ e(
|
|
85
|
-
|
|
97
|
+
Pe,
|
|
86
98
|
{
|
|
87
|
-
strengthAreas:
|
|
88
|
-
strengthsReport:
|
|
89
|
-
focusArea:
|
|
90
|
-
focusAreaReportTag:
|
|
91
|
-
teacherRemarks:
|
|
92
|
-
teacherRemarkTag:
|
|
99
|
+
strengthAreas: $,
|
|
100
|
+
strengthsReport: oe,
|
|
101
|
+
focusArea: fe,
|
|
102
|
+
focusAreaReportTag: K,
|
|
103
|
+
teacherRemarks: se,
|
|
104
|
+
teacherRemarkTag: L
|
|
93
105
|
}
|
|
94
106
|
),
|
|
95
|
-
/* @__PURE__ */ e(
|
|
107
|
+
/* @__PURE__ */ e(De, { report: J, strategyConfig: N }),
|
|
96
108
|
/* @__PURE__ */ e(
|
|
97
|
-
|
|
109
|
+
Oe,
|
|
98
110
|
{
|
|
99
|
-
report:
|
|
100
|
-
options:
|
|
101
|
-
classesCompleted:
|
|
102
|
-
weeksCompleted:
|
|
103
|
-
sheetsAssigned:
|
|
104
|
-
sheetsNotCompleted:
|
|
105
|
-
lateClassesCount:
|
|
106
|
-
lateIfMinutes:
|
|
111
|
+
report: B,
|
|
112
|
+
options: E,
|
|
113
|
+
classesCompleted: me,
|
|
114
|
+
weeksCompleted: ge,
|
|
115
|
+
sheetsAssigned: he,
|
|
116
|
+
sheetsNotCompleted: le,
|
|
117
|
+
lateClassesCount: ue,
|
|
118
|
+
lateIfMinutes: P
|
|
107
119
|
}
|
|
108
120
|
),
|
|
109
|
-
|
|
121
|
+
h && /* @__PURE__ */ e(je, { chapters: te })
|
|
122
|
+
] }),
|
|
123
|
+
/* @__PURE__ */ a(R, { children: [
|
|
124
|
+
/* @__PURE__ */ e(Ee, { heightX: 11 }),
|
|
125
|
+
/* @__PURE__ */ e(xe, { studentName: m, onFeedback: T })
|
|
110
126
|
] })
|
|
111
127
|
] });
|
|
112
|
-
},
|
|
128
|
+
}, ot = ke(Ne);
|
|
113
129
|
export {
|
|
114
|
-
|
|
130
|
+
ot as default
|
|
115
131
|
};
|
|
116
132
|
//# sourceMappingURL=ptm-report.js.map
|