@cuemath/leap 4.1.0 → 4.1.1-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +114 -98
- package/dist/features/timeline/monthly-timeline/ptm-report/ptm-report.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/package.json +1 -1
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 parent_feedback_given?: boolean;\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, teacherName: 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":"AAqdY,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
|
-
|
|
18
|
-
|
|
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
|
-
focus_area:
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
} =
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
1
|
+
import { jsx as e, jsxs as n, Fragment as S } from "react/jsx-runtime";
|
|
2
|
+
import { memo as ye, useState as Pe, useCallback as l, useEffect as _ } from "react";
|
|
3
|
+
import { usePTMReportGet as Me } from "./api/use-ptm-report-get.js";
|
|
4
|
+
import { EPTMTypes as Ne } from "./ptm-report-types.js";
|
|
5
|
+
import De from "../../../ui/loader/app-loader/app-loader.js";
|
|
6
|
+
import Oe from "./comps/student-info/student-info.js";
|
|
7
|
+
import { Container as ve } from "./ptm-report-styled.js";
|
|
8
|
+
import Ae from "./comps/key-need/key-need.js";
|
|
9
|
+
import je from "../../../ui/layout/flex-view.js";
|
|
10
|
+
import Fe from "./comps/teacher-observations/teacher-observations.js";
|
|
11
|
+
import xe from "./comps/strategies/strategies.js";
|
|
12
|
+
import Ge from "./comps/parent-support/parent-support.js";
|
|
13
|
+
import Ue from "./comps/upcoming-chapters/upcoming-chapters.js";
|
|
14
|
+
import Ee from "./comps/real-world-projects/real-world-projects.js";
|
|
15
|
+
import He from "./comps/school-support/school-support.js";
|
|
16
|
+
import We from "../../../ui/error/error.js";
|
|
17
|
+
import $e from "./comps/sticky-footer/sticky-footer.js";
|
|
18
|
+
import Xe from "../../../ui/separator/separator.js";
|
|
19
|
+
import { IS_APP_RUNNING_IN_RN as Ke } from "../../../../constants/app-config.js";
|
|
20
|
+
const Le = ({ ptmId: o, onAPIComplete: s, onFeedback: c }) => {
|
|
21
|
+
const [t, T] = Pe(null), {
|
|
22
|
+
get: u,
|
|
23
|
+
data: p,
|
|
24
|
+
isProcessing: b,
|
|
25
|
+
isProcessed: i,
|
|
26
|
+
isProcessingFailed: a
|
|
27
|
+
} = Me(o), { report: w, meta: y } = p || {}, { parent_feedback_given: P } = y || {}, { teacher_data: M } = w || {}, { name: k, gender: N } = M || {}, R = N === "female" ? "Ma'am" : "Sir", D = l((r) => {
|
|
28
|
+
T(r);
|
|
29
|
+
}, []), C = l(() => {
|
|
30
|
+
if (c && t) {
|
|
31
|
+
const r = `${k} ${R}`;
|
|
32
|
+
c(t, o, r);
|
|
33
|
+
}
|
|
34
|
+
}, [t, o, c, k, R]), m = l(() => {
|
|
35
|
+
u(o);
|
|
36
|
+
}, [u, o]);
|
|
37
|
+
if (_(() => {
|
|
38
|
+
m();
|
|
39
|
+
}, [m]), _(() => {
|
|
40
|
+
(i || a) && (s == null || s(i && !a));
|
|
41
|
+
}, [i, a, s]), _(() => {
|
|
42
|
+
t && (console.log("submitting feedback:", t), C());
|
|
43
|
+
}, [t, C]), b || !p)
|
|
44
|
+
return /* @__PURE__ */ e(De, { height: "100dvh" });
|
|
45
|
+
if (a)
|
|
46
|
+
return /* @__PURE__ */ e(We, { onTryAgain: m, height: "100dvh" });
|
|
47
|
+
const { ptm_config: O, report: v } = p || {}, { report_sections: A, student_data: j } = v || {}, { ptm_type: h, config: F } = O || {}, { ptm_report_sections: x, late_if_minutes: G } = F || {}, {
|
|
48
|
+
teacher_observation: U,
|
|
49
|
+
learning_strategy: E,
|
|
50
|
+
parent_support: H,
|
|
51
|
+
school_support: W
|
|
52
|
+
} = x || {}, { subsections: $ } = W || {}, { homework_help: X, test_help: K } = $ || {}, { options: L } = H || {}, { strategies: V } = E || {}, { subsections: q } = U || {}, {
|
|
53
|
+
focus_area: z,
|
|
54
|
+
strengths: B,
|
|
55
|
+
teacher_remarks: J
|
|
56
|
+
} = q || {}, { areas: Q = [], report_tag: Y } = z || {}, { areas: Z = [] } = B || {}, { report_tag: I } = J || {}, {
|
|
57
|
+
teacher_observation: ee,
|
|
58
|
+
parent_support: te,
|
|
59
|
+
strategies: oe,
|
|
60
|
+
real_world_project: re,
|
|
61
|
+
school_support: se,
|
|
62
|
+
upcoming_chapters: ae
|
|
63
|
+
} = A || {}, { homework_help: ne, test_help: ce } = se || {}, { upcoming_chapters: pe } = ae || {}, {
|
|
64
|
+
strengths: ie = {},
|
|
65
|
+
focus_area: me,
|
|
66
|
+
teacher_remarks: he
|
|
67
|
+
} = ee || {}, {
|
|
68
|
+
first_name: g,
|
|
69
|
+
grade: ge,
|
|
70
|
+
key_need: f,
|
|
71
|
+
attendance_data: fe,
|
|
72
|
+
homework_data: de,
|
|
73
|
+
late_class_data: le = [],
|
|
74
|
+
real_world_project: _e
|
|
75
|
+
} = j || {}, { classes_completed: ue, weeks_completed: ke } = fe || {}, { sheets_assigned: Re, sheets_not_completed: Ce } = de || {}, Se = Q.find(
|
|
76
|
+
({ area_key: r }) => r === me
|
|
77
|
+
), Te = (f == null ? void 0 : f.key_need) ?? "", d = h === Ne.ON_DEMAND, be = le.length, we = h && h.split("_").includes("UPGRADE");
|
|
78
|
+
return /* @__PURE__ */ n(ve, { children: [
|
|
79
|
+
/* @__PURE__ */ e(Oe, { name: g, grade: ge }),
|
|
80
|
+
/* @__PURE__ */ n(je, { $gutterX: 1, $gapX: 1, children: [
|
|
81
|
+
/* @__PURE__ */ e(Ae, { text: Te }),
|
|
82
|
+
(d || we) && /* @__PURE__ */ n(S, { children: [
|
|
83
|
+
/* @__PURE__ */ e(Ee, { projectReport: re, projectInfo: _e }),
|
|
72
84
|
/* @__PURE__ */ e(
|
|
73
|
-
|
|
85
|
+
He,
|
|
74
86
|
{
|
|
75
|
-
homeworkHelpReport:
|
|
76
|
-
homeworkHelpConfig:
|
|
77
|
-
testHelpReport:
|
|
78
|
-
testHelpConfig:
|
|
79
|
-
studentName:
|
|
80
|
-
isOnDemandPTM:
|
|
87
|
+
homeworkHelpReport: ne,
|
|
88
|
+
homeworkHelpConfig: X,
|
|
89
|
+
testHelpReport: ce,
|
|
90
|
+
testHelpConfig: K,
|
|
91
|
+
studentName: g,
|
|
92
|
+
isOnDemandPTM: d
|
|
81
93
|
}
|
|
82
94
|
)
|
|
83
95
|
] }),
|
|
84
96
|
/* @__PURE__ */ e(
|
|
85
|
-
|
|
97
|
+
Fe,
|
|
86
98
|
{
|
|
87
|
-
strengthAreas:
|
|
88
|
-
strengthsReport:
|
|
89
|
-
focusArea:
|
|
90
|
-
focusAreaReportTag:
|
|
91
|
-
teacherRemarks:
|
|
92
|
-
teacherRemarkTag:
|
|
99
|
+
strengthAreas: Z,
|
|
100
|
+
strengthsReport: ie,
|
|
101
|
+
focusArea: Se,
|
|
102
|
+
focusAreaReportTag: Y,
|
|
103
|
+
teacherRemarks: he,
|
|
104
|
+
teacherRemarkTag: I
|
|
93
105
|
}
|
|
94
106
|
),
|
|
95
|
-
/* @__PURE__ */ e(
|
|
107
|
+
/* @__PURE__ */ e(xe, { report: oe, strategyConfig: V }),
|
|
96
108
|
/* @__PURE__ */ e(
|
|
97
|
-
|
|
109
|
+
Ge,
|
|
98
110
|
{
|
|
99
|
-
report:
|
|
100
|
-
options:
|
|
101
|
-
classesCompleted:
|
|
102
|
-
weeksCompleted:
|
|
103
|
-
sheetsAssigned:
|
|
104
|
-
sheetsNotCompleted:
|
|
105
|
-
lateClassesCount:
|
|
106
|
-
lateIfMinutes:
|
|
111
|
+
report: te,
|
|
112
|
+
options: L,
|
|
113
|
+
classesCompleted: ue,
|
|
114
|
+
weeksCompleted: ke,
|
|
115
|
+
sheetsAssigned: Re,
|
|
116
|
+
sheetsNotCompleted: Ce,
|
|
117
|
+
lateClassesCount: be,
|
|
118
|
+
lateIfMinutes: G
|
|
107
119
|
}
|
|
108
120
|
),
|
|
109
|
-
|
|
121
|
+
d && /* @__PURE__ */ e(Ue, { chapters: pe })
|
|
122
|
+
] }),
|
|
123
|
+
!P && Ke && /* @__PURE__ */ n(S, { children: [
|
|
124
|
+
/* @__PURE__ */ e(Xe, { heightX: 11 }),
|
|
125
|
+
/* @__PURE__ */ e($e, { studentName: g, onFeedback: D })
|
|
110
126
|
] })
|
|
111
127
|
] });
|
|
112
|
-
},
|
|
128
|
+
}, ht = ye(Le);
|
|
113
129
|
export {
|
|
114
|
-
|
|
130
|
+
ht as default
|
|
115
131
|
};
|
|
116
132
|
//# sourceMappingURL=ptm-report.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ptm-report.js","sources":["../../../../../src/features/timeline/monthly-timeline/ptm-report/ptm-report.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, type FC } from 'react';\n\nimport { usePTMReportGet } from './api/use-ptm-report-get';\nimport { EPTMTypes, type IPTMReportProps } from './ptm-report-types';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport StudentInfo from './comps/student-info/student-info';\nimport * as Styled from './ptm-report-styled';\nimport KeyNeed from './comps/key-need/key-need';\nimport FlexView from '../../../ui/layout/flex-view';\nimport TeacherObservations from './comps/teacher-observations/teacher-observations';\nimport Strategies from './comps/strategies/strategies';\nimport ParentSupport from './comps/parent-support/parent-support';\nimport UpcomingChapters from './comps/upcoming-chapters/upcoming-chapters';\nimport RealWorldProjects from './comps/real-world-projects/real-world-projects';\nimport SchoolSupport from './comps/school-support/school-support';\nimport Error from '../../../ui/error/error';\n\nconst PTMReport: FC<IPTMReportProps> = ({ ptmId, onAPIComplete }) => {\n const {\n get: getPTMReport,\n data: ptmReportData,\n isProcessing,\n isProcessed,\n isProcessingFailed,\n } = usePTMReportGet(ptmId);\n\n const fetchPTMReport = useCallback(() => {\n getPTMReport(ptmId);\n }, [getPTMReport, ptmId]);\n\n useEffect(() => {\n fetchPTMReport();\n }, [fetchPTMReport]);\n\n useEffect(() => {\n if (isProcessed || isProcessingFailed) {\n onAPIComplete?.(isProcessed && !isProcessingFailed);\n }\n }, [isProcessed, isProcessingFailed, onAPIComplete]);\n\n if (isProcessing || !ptmReportData) {\n return <AppLoader height=\"100dvh\" />;\n }\n\n if (isProcessingFailed) {\n return <Error onTryAgain={fetchPTMReport} height=\"100dvh\" />;\n }\n\n const { ptm_config: ptmConfig, report } = ptmReportData;\n const { ptm_type: ptmType, config } = ptmConfig || {};\n const { ptm_report_sections: sectionsConfig, late_if_minutes: lateIfMinutes } = config || {};\n\n const {\n teacher_observation: teacherObservationConfig,\n learning_strategy: strategyConfig,\n parent_support: parentSupportConfig,\n school_support: schoolSupportConfig,\n } = sectionsConfig || {};\n\n const { subsections: schoolSubsections } = schoolSupportConfig || {};\n const { homework_help: homeworkConfig, test_help: testConfig } = schoolSubsections || {};\n\n const { options: parentOptions } = parentSupportConfig || {};\n const { strategies: strategiesConfig } = strategyConfig || {};\n const { subsections: teacherSubsections } = teacherObservationConfig || {};\n\n const {\n focus_area: focusAreaConfig,\n strengths: strengthsConfig,\n teacher_remarks: remarksConfig,\n } = teacherSubsections || {};\n\n const { areas: focusAreas = [], report_tag: focusAreaTag } = focusAreaConfig || {};\n const { areas: strengthAreas = [] } = strengthsConfig || {};\n const { report_tag: remarksTag } = remarksConfig || {};\n\n const { report_sections: reportSections, student_data: studentData } = report;\n\n const {\n teacher_observation: teacherObservationReport,\n parent_support: parentSupportReport,\n strategies: strategiesReport,\n real_world_project: realWorldReport,\n school_support: schoolSupportReport,\n upcoming_chapters: upcomingChaptersReport,\n } = reportSections || {};\n\n const { homework_help: homeworkReport, test_help: testReport } = schoolSupportReport || {};\n\n const { upcoming_chapters: upcomingChapters } = upcomingChaptersReport || {};\n\n const {\n strengths: strengthsReport = {},\n focus_area: selectedFocusAreaKey,\n teacher_remarks: teacherRemarks,\n } = teacherObservationReport || {};\n\n const {\n first_name: studentName,\n grade: studentGrade,\n key_need: keyNeedData,\n attendance_data: attendanceData,\n homework_data: homeworkData,\n late_class_data: lateClasses = [],\n real_world_project: realWorldProjectData,\n } = studentData || {};\n\n const { classes_completed: completedClasses, weeks_completed: completedWeeks } =\n attendanceData || {};\n\n const { sheets_assigned: assignedSheets, sheets_not_completed: incompleteSheets } =\n homeworkData || {};\n\n const selectedFocusArea = focusAreas.find(\n ({ area_key: areaKey }) => areaKey === selectedFocusAreaKey,\n );\n\n const keyNeedText = keyNeedData?.key_need ?? '';\n const isOnDemandPTM = ptmType === EPTMTypes.ON_DEMAND;\n const lateClassesCount = lateClasses.length;\n const isUpgradePTM = ptmType && ptmType.split('_').includes('UPGRADE');\n const isUpgradeOrOnDemandPTM = isOnDemandPTM || isUpgradePTM;\n\n return (\n <Styled.Container>\n <StudentInfo name={studentName} grade={studentGrade} />\n <FlexView $gutterX={1} $gapX={1}>\n <KeyNeed text={keyNeedText} />\n {isUpgradeOrOnDemandPTM && (\n <>\n <RealWorldProjects projectReport={realWorldReport} projectInfo={realWorldProjectData} />\n <SchoolSupport\n homeworkHelpReport={homeworkReport}\n homeworkHelpConfig={homeworkConfig}\n testHelpReport={testReport}\n testHelpConfig={testConfig}\n studentName={studentName}\n isOnDemandPTM={isOnDemandPTM}\n />\n </>\n )}\n <TeacherObservations\n strengthAreas={strengthAreas}\n strengthsReport={strengthsReport}\n focusArea={selectedFocusArea}\n focusAreaReportTag={focusAreaTag}\n teacherRemarks={teacherRemarks}\n teacherRemarkTag={remarksTag}\n />\n <Strategies report={strategiesReport} strategyConfig={strategiesConfig} />\n <ParentSupport\n report={parentSupportReport}\n options={parentOptions}\n classesCompleted={completedClasses}\n weeksCompleted={completedWeeks}\n sheetsAssigned={assignedSheets}\n sheetsNotCompleted={incompleteSheets}\n lateClassesCount={lateClassesCount}\n lateIfMinutes={lateIfMinutes}\n />\n {isOnDemandPTM && <UpcomingChapters chapters={upcomingChapters} />}\n </FlexView>\n </Styled.Container>\n );\n};\n\nexport default memo(PTMReport);\n"],"names":["PTMReport","ptmId","onAPIComplete","getPTMReport","ptmReportData","isProcessing","isProcessed","isProcessingFailed","usePTMReportGet","fetchPTMReport","useCallback","useEffect","jsx","AppLoader","Error","ptmConfig","report","ptmType","config","sectionsConfig","lateIfMinutes","teacherObservationConfig","strategyConfig","parentSupportConfig","schoolSupportConfig","schoolSubsections","homeworkConfig","testConfig","parentOptions","strategiesConfig","teacherSubsections","focusAreaConfig","strengthsConfig","remarksConfig","focusAreas","focusAreaTag","strengthAreas","remarksTag","reportSections","studentData","teacherObservationReport","parentSupportReport","strategiesReport","realWorldReport","schoolSupportReport","upcomingChaptersReport","homeworkReport","testReport","upcomingChapters","strengthsReport","selectedFocusAreaKey","teacherRemarks","studentName","studentGrade","keyNeedData","attendanceData","homeworkData","lateClasses","realWorldProjectData","completedClasses","completedWeeks","assignedSheets","incompleteSheets","selectedFocusArea","areaKey","keyNeedText","isOnDemandPTM","EPTMTypes","lateClassesCount","isUpgradePTM","jsxs","Styled.Container","StudentInfo","FlexView","KeyNeed","Fragment","RealWorldProjects","SchoolSupport","TeacherObservations","Strategies","ParentSupport","UpcomingChapters","ptmReport","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ptm-report.js","sources":["../../../../../src/features/timeline/monthly-timeline/ptm-report/ptm-report.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useState, type FC } from 'react';\n\nimport { usePTMReportGet } from './api/use-ptm-report-get';\nimport { EPTMTypes, type IPTMReportProps } from './ptm-report-types';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport StudentInfo from './comps/student-info/student-info';\nimport * as Styled from './ptm-report-styled';\nimport KeyNeed from './comps/key-need/key-need';\nimport FlexView from '../../../ui/layout/flex-view';\nimport TeacherObservations from './comps/teacher-observations/teacher-observations';\nimport Strategies from './comps/strategies/strategies';\nimport ParentSupport from './comps/parent-support/parent-support';\nimport UpcomingChapters from './comps/upcoming-chapters/upcoming-chapters';\nimport RealWorldProjects from './comps/real-world-projects/real-world-projects';\nimport SchoolSupport from './comps/school-support/school-support';\nimport Error from '../../../ui/error/error';\nimport StickyFooter from './comps/sticky-footer/sticky-footer';\nimport Separator from '../../../ui/separator/separator';\nimport { IS_APP_RUNNING_IN_RN } from '../../../../constants/app-config';\n\nconst PTMReport: FC<IPTMReportProps> = ({ ptmId, onAPIComplete, onFeedback }) => {\n const [feedback, setFeedback] = useState<'positive' | 'negative' | null>(null);\n const {\n get: getPTMReport,\n data: ptmReportData,\n isProcessing,\n isProcessed,\n isProcessingFailed,\n } = usePTMReportGet(ptmId);\n\n const { report: ptmReport, meta } = ptmReportData || {};\n\n const { parent_feedback_given: parentFeedbackGiven } = meta || {};\n const { teacher_data: teacherData } = ptmReport || {};\n const { name: teacherName, gender: teacherGender } = teacherData || {};\n\n const teacherHonorific = teacherGender === 'female' ? \"Ma'am\" : 'Sir';\n\n const handleFeedback = useCallback((type: 'positive' | 'negative') => {\n setFeedback(type);\n }, []);\n\n const handleSubmit = useCallback(() => {\n if (onFeedback && feedback) {\n const feedbackTeacherName = `${teacherName} ${teacherHonorific}`;\n\n onFeedback(feedback, ptmId, feedbackTeacherName);\n }\n }, [feedback, ptmId, onFeedback, teacherName, teacherHonorific]);\n\n const fetchPTMReport = useCallback(() => {\n getPTMReport(ptmId);\n }, [getPTMReport, ptmId]);\n\n useEffect(() => {\n fetchPTMReport();\n }, [fetchPTMReport]);\n\n useEffect(() => {\n if (isProcessed || isProcessingFailed) {\n onAPIComplete?.(isProcessed && !isProcessingFailed);\n }\n }, [isProcessed, isProcessingFailed, onAPIComplete]);\n\n useEffect(() => {\n if (feedback) {\n // eslint-disable-next-line no-console\n console.log('submitting feedback:', feedback);\n handleSubmit();\n }\n }, [feedback, handleSubmit]);\n\n if (isProcessing || !ptmReportData) {\n return <AppLoader height=\"100dvh\" />;\n }\n\n if (isProcessingFailed) {\n return <Error onTryAgain={fetchPTMReport} height=\"100dvh\" />;\n }\n\n const { ptm_config: ptmConfig, report } = ptmReportData || {};\n\n const { report_sections: reportSections, student_data: studentData } = report || {};\n\n const { ptm_type: ptmType, config } = ptmConfig || {};\n const { ptm_report_sections: sectionsConfig, late_if_minutes: lateIfMinutes } = config || {};\n\n const {\n teacher_observation: teacherObservationConfig,\n learning_strategy: strategyConfig,\n parent_support: parentSupportConfig,\n school_support: schoolSupportConfig,\n } = sectionsConfig || {};\n\n const { subsections: schoolSubsections } = schoolSupportConfig || {};\n const { homework_help: homeworkConfig, test_help: testConfig } = schoolSubsections || {};\n\n const { options: parentOptions } = parentSupportConfig || {};\n const { strategies: strategiesConfig } = strategyConfig || {};\n const { subsections: teacherSubsections } = teacherObservationConfig || {};\n\n const {\n focus_area: focusAreaConfig,\n strengths: strengthsConfig,\n teacher_remarks: remarksConfig,\n } = teacherSubsections || {};\n\n const { areas: focusAreas = [], report_tag: focusAreaTag } = focusAreaConfig || {};\n const { areas: strengthAreas = [] } = strengthsConfig || {};\n const { report_tag: remarksTag } = remarksConfig || {};\n\n const {\n teacher_observation: teacherObservationReport,\n parent_support: parentSupportReport,\n strategies: strategiesReport,\n real_world_project: realWorldReport,\n school_support: schoolSupportReport,\n upcoming_chapters: upcomingChaptersReport,\n } = reportSections || {};\n\n const { homework_help: homeworkReport, test_help: testReport } = schoolSupportReport || {};\n\n const { upcoming_chapters: upcomingChapters } = upcomingChaptersReport || {};\n\n const {\n strengths: strengthsReport = {},\n focus_area: selectedFocusAreaKey,\n teacher_remarks: teacherRemarks,\n } = teacherObservationReport || {};\n\n const {\n first_name: studentName,\n grade: studentGrade,\n key_need: keyNeedData,\n attendance_data: attendanceData,\n homework_data: homeworkData,\n late_class_data: lateClasses = [],\n real_world_project: realWorldProjectData,\n } = studentData || {};\n\n const { classes_completed: completedClasses, weeks_completed: completedWeeks } =\n attendanceData || {};\n\n const { sheets_assigned: assignedSheets, sheets_not_completed: incompleteSheets } =\n homeworkData || {};\n\n const selectedFocusArea = focusAreas.find(\n ({ area_key: areaKey }) => areaKey === selectedFocusAreaKey,\n );\n\n const keyNeedText = keyNeedData?.key_need ?? '';\n const isOnDemandPTM = ptmType === EPTMTypes.ON_DEMAND;\n const lateClassesCount = lateClasses.length;\n const isUpgradePTM = ptmType && ptmType.split('_').includes('UPGRADE');\n const isUpgradeOrOnDemandPTM = isOnDemandPTM || isUpgradePTM;\n\n return (\n <Styled.Container>\n <StudentInfo name={studentName} grade={studentGrade} />\n <FlexView $gutterX={1} $gapX={1}>\n <KeyNeed text={keyNeedText} />\n {isUpgradeOrOnDemandPTM && (\n <>\n <RealWorldProjects projectReport={realWorldReport} projectInfo={realWorldProjectData} />\n <SchoolSupport\n homeworkHelpReport={homeworkReport}\n homeworkHelpConfig={homeworkConfig}\n testHelpReport={testReport}\n testHelpConfig={testConfig}\n studentName={studentName}\n isOnDemandPTM={isOnDemandPTM}\n />\n </>\n )}\n <TeacherObservations\n strengthAreas={strengthAreas}\n strengthsReport={strengthsReport}\n focusArea={selectedFocusArea}\n focusAreaReportTag={focusAreaTag}\n teacherRemarks={teacherRemarks}\n teacherRemarkTag={remarksTag}\n />\n <Strategies report={strategiesReport} strategyConfig={strategiesConfig} />\n <ParentSupport\n report={parentSupportReport}\n options={parentOptions}\n classesCompleted={completedClasses}\n weeksCompleted={completedWeeks}\n sheetsAssigned={assignedSheets}\n sheetsNotCompleted={incompleteSheets}\n lateClassesCount={lateClassesCount}\n lateIfMinutes={lateIfMinutes}\n />\n {isOnDemandPTM && <UpcomingChapters chapters={upcomingChapters} />}\n </FlexView>\n {!parentFeedbackGiven && IS_APP_RUNNING_IN_RN && (\n <>\n <Separator heightX={11} />\n <StickyFooter studentName={studentName} onFeedback={handleFeedback} />\n </>\n )}\n </Styled.Container>\n );\n};\n\nexport default memo(PTMReport);\n"],"names":["PTMReport","ptmId","onAPIComplete","onFeedback","feedback","setFeedback","useState","getPTMReport","ptmReportData","isProcessing","isProcessed","isProcessingFailed","usePTMReportGet","ptmReport","meta","parentFeedbackGiven","teacherData","teacherName","teacherGender","teacherHonorific","handleFeedback","useCallback","type","handleSubmit","feedbackTeacherName","fetchPTMReport","useEffect","jsx","AppLoader","Error","ptmConfig","report","reportSections","studentData","ptmType","config","sectionsConfig","lateIfMinutes","teacherObservationConfig","strategyConfig","parentSupportConfig","schoolSupportConfig","schoolSubsections","homeworkConfig","testConfig","parentOptions","strategiesConfig","teacherSubsections","focusAreaConfig","strengthsConfig","remarksConfig","focusAreas","focusAreaTag","strengthAreas","remarksTag","teacherObservationReport","parentSupportReport","strategiesReport","realWorldReport","schoolSupportReport","upcomingChaptersReport","homeworkReport","testReport","upcomingChapters","strengthsReport","selectedFocusAreaKey","teacherRemarks","studentName","studentGrade","keyNeedData","attendanceData","homeworkData","lateClasses","realWorldProjectData","completedClasses","completedWeeks","assignedSheets","incompleteSheets","selectedFocusArea","areaKey","keyNeedText","isOnDemandPTM","EPTMTypes","lateClassesCount","isUpgradePTM","jsxs","Styled.Container","StudentInfo","FlexView","KeyNeed","Fragment","RealWorldProjects","SchoolSupport","TeacherObservations","Strategies","ParentSupport","UpcomingChapters","IS_APP_RUNNING_IN_RN","Separator","StickyFooter","memo"],"mappings":";;;;;;;;;;;;;;;;;;;AAoBA,MAAMA,KAAiC,CAAC,EAAE,OAAAC,GAAO,eAAAC,GAAe,YAAAC,QAAiB;AAC/E,QAAM,CAACC,GAAUC,CAAW,IAAIC,GAAyC,IAAI,GACvE;AAAA,IACJ,KAAKC;AAAA,IACL,MAAMC;AAAA,IACN,cAAAC;AAAA,IACA,aAAAC;AAAA,IACA,oBAAAC;AAAA,EAAA,IACEC,GAAgBX,CAAK,GAEnB,EAAE,QAAQY,GAAW,MAAAC,EAAK,IAAIN,KAAiB,CAAA,GAE/C,EAAE,uBAAuBO,MAAwBD,KAAQ,CAAA,GACzD,EAAE,cAAcE,MAAgBH,KAAa,CAAA,GAC7C,EAAE,MAAMI,GAAa,QAAQC,EAAc,IAAIF,KAAe,IAE9DG,IAAmBD,MAAkB,WAAW,UAAU,OAE1DE,IAAiBC,EAAY,CAACC,MAAkC;AACpE,IAAAjB,EAAYiB,CAAI;AAAA,EAClB,GAAG,CAAE,CAAA,GAECC,IAAeF,EAAY,MAAM;AACrC,QAAIlB,KAAcC,GAAU;AAC1B,YAAMoB,IAAsB,GAAGP,CAAW,IAAIE,CAAgB;AAEnD,MAAAhB,EAAAC,GAAUH,GAAOuB,CAAmB;AAAA,IACjD;AAAA,EAAA,GACC,CAACpB,GAAUH,GAAOE,GAAYc,GAAaE,CAAgB,CAAC,GAEzDM,IAAiBJ,EAAY,MAAM;AACvC,IAAAd,EAAaN,CAAK;AAAA,EAAA,GACjB,CAACM,GAAcN,CAAK,CAAC;AAoBpB,MAlBJyB,EAAU,MAAM;AACC,IAAAD;EAAA,GACd,CAACA,CAAc,CAAC,GAEnBC,EAAU,MAAM;AACd,KAAIhB,KAAeC,OACDT,KAAA,QAAAA,EAAAQ,KAAe,CAACC;AAAA,EAEjC,GAAA,CAACD,GAAaC,GAAoBT,CAAa,CAAC,GAEnDwB,EAAU,MAAM;AACd,IAAItB,MAEM,QAAA,IAAI,wBAAwBA,CAAQ,GAC/BmB;EACf,GACC,CAACnB,GAAUmB,CAAY,CAAC,GAEvBd,KAAgB,CAACD;AACZ,WAAA,gBAAAmB,EAACC,IAAU,EAAA,QAAO,SAAS,CAAA;AAGpC,MAAIjB;AACF,WAAQ,gBAAAgB,EAAAE,IAAA,EAAM,YAAYJ,GAAgB,QAAO,SAAS,CAAA;AAG5D,QAAM,EAAE,YAAYK,GAAW,QAAAC,EAAO,IAAIvB,KAAiB,CAAA,GAErD,EAAE,iBAAiBwB,GAAgB,cAAcC,EAAY,IAAIF,KAAU,IAE3E,EAAE,UAAUG,GAAS,QAAAC,EAAO,IAAIL,KAAa,CAAA,GAC7C,EAAE,qBAAqBM,GAAgB,iBAAiBC,EAAc,IAAIF,KAAU,IAEpF;AAAA,IACJ,qBAAqBG;AAAA,IACrB,mBAAmBC;AAAA,IACnB,gBAAgBC;AAAA,IAChB,gBAAgBC;AAAA,EAAA,IACdL,KAAkB,CAAA,GAEhB,EAAE,aAAaM,MAAsBD,KAAuB,CAAA,GAC5D,EAAE,eAAeE,GAAgB,WAAWC,EAAW,IAAIF,KAAqB,IAEhF,EAAE,SAASG,MAAkBL,KAAuB,CAAA,GACpD,EAAE,YAAYM,MAAqBP,KAAkB,CAAA,GACrD,EAAE,aAAaQ,MAAuBT,KAA4B,CAAA,GAElE;AAAA,IACJ,YAAYU;AAAA,IACZ,WAAWC;AAAA,IACX,iBAAiBC;AAAA,EAAA,IACfH,KAAsB,CAAA,GAEpB,EAAE,OAAOI,IAAa,IAAI,YAAYC,EAAiB,IAAAJ,KAAmB,IAC1E,EAAE,OAAOK,IAAgB,CAAG,EAAA,IAAIJ,KAAmB,CAAA,GACnD,EAAE,YAAYK,MAAeJ,KAAiB,CAAA,GAE9C;AAAA,IACJ,qBAAqBK;AAAA,IACrB,gBAAgBC;AAAA,IAChB,YAAYC;AAAA,IACZ,oBAAoBC;AAAA,IACpB,gBAAgBC;AAAA,IAChB,mBAAmBC;AAAA,EAAA,IACjB5B,KAAkB,CAAA,GAEhB,EAAE,eAAe6B,IAAgB,WAAWC,GAAW,IAAIH,MAAuB,IAElF,EAAE,mBAAmBI,OAAqBH,MAA0B,CAAA,GAEpE;AAAA,IACJ,WAAWI,KAAkB,CAAC;AAAA,IAC9B,YAAYC;AAAA,IACZ,iBAAiBC;AAAA,EAAA,IACfX,MAA4B,CAAA,GAE1B;AAAA,IACJ,YAAYY;AAAA,IACZ,OAAOC;AAAA,IACP,UAAUC;AAAA,IACV,iBAAiBC;AAAA,IACjB,eAAeC;AAAA,IACf,iBAAiBC,KAAc,CAAC;AAAA,IAChC,oBAAoBC;AAAA,EAAA,IAClBxC,KAAe,CAAA,GAEb,EAAE,mBAAmByC,IAAkB,iBAAiBC,GAAe,IAC3EL,MAAkB,IAEd,EAAE,iBAAiBM,IAAgB,sBAAsBC,GAAiB,IAC9EN,MAAgB,IAEZO,KAAoB3B,EAAW;AAAA,IACnC,CAAC,EAAE,UAAU4B,QAAcA,MAAYd;AAAA,EAAA,GAGnCe,MAAcX,KAAA,gBAAAA,EAAa,aAAY,IACvCY,IAAgB/C,MAAYgD,GAAU,WACtCC,KAAmBX,GAAY,QAC/BY,KAAelD,KAAWA,EAAQ,MAAM,GAAG,EAAE,SAAS,SAAS;AAInE,SAAA,gBAAAmD,EAACC,IAAA,EACC,UAAA;AAAA,IAAA,gBAAA3D,EAAC4D,IAAY,EAAA,MAAMpB,GAAa,OAAOC,IAAc;AAAA,IACpD,gBAAAiB,EAAAG,IAAA,EAAS,UAAU,GAAG,OAAO,GAC5B,UAAA;AAAA,MAAC,gBAAA7D,EAAA8D,IAAA,EAAQ,MAAMT,GAAa,CAAA;AAAA,OANHC,KAAiBG,OAStC,gBAAAC,EAAAK,GAAA,EAAA,UAAA;AAAA,QAAA,gBAAA/D,EAACgE,IAAkB,EAAA,eAAejC,IAAiB,aAAae,IAAsB;AAAA,QACtF,gBAAA9C;AAAA,UAACiE;AAAA,UAAA;AAAA,YACC,oBAAoB/B;AAAA,YACpB,oBAAoBlB;AAAA,YACpB,gBAAgBmB;AAAA,YAChB,gBAAgBlB;AAAA,YAChB,aAAAuB;AAAA,YACA,eAAAc;AAAA,UAAA;AAAA,QACF;AAAA,MAAA,GACF;AAAA,MAEF,gBAAAtD;AAAA,QAACkE;AAAA,QAAA;AAAA,UACC,eAAAxC;AAAA,UACA,iBAAAW;AAAA,UACA,WAAWc;AAAA,UACX,oBAAoB1B;AAAA,UACpB,gBAAAc;AAAA,UACA,kBAAkBZ;AAAA,QAAA;AAAA,MACpB;AAAA,MACC,gBAAA3B,EAAAmE,IAAA,EAAW,QAAQrC,IAAkB,gBAAgBX,GAAkB;AAAA,MACxE,gBAAAnB;AAAA,QAACoE;AAAA,QAAA;AAAA,UACC,QAAQvC;AAAA,UACR,SAASX;AAAA,UACT,kBAAkB6B;AAAA,UAClB,gBAAgBC;AAAA,UAChB,gBAAgBC;AAAA,UAChB,oBAAoBC;AAAA,UACpB,kBAAAM;AAAA,UACA,eAAA9C;AAAA,QAAA;AAAA,MACF;AAAA,MACC4C,KAAiB,gBAAAtD,EAACqE,IAAiB,EAAA,UAAUjC,GAAkB,CAAA;AAAA,IAAA,GAClE;AAAA,IACC,CAAChD,KAAuBkF,MAErB,gBAAAZ,EAAAK,GAAA,EAAA,UAAA;AAAA,MAAC,gBAAA/D,EAAAuE,IAAA,EAAU,SAAS,GAAI,CAAA;AAAA,MACvB,gBAAAvE,EAAAwE,IAAA,EAAa,aAAAhC,GAA0B,YAAY/C,EAAgB,CAAA;AAAA,IAAA,GACtE;AAAA,EAEJ,EAAA,CAAA;AAEJ,GAEeP,KAAAuF,GAAKpG,EAAS;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3725,6 +3725,8 @@ declare interface IProjects_2 {
|
|
|
3725
3725
|
declare interface IPTMReportProps {
|
|
3726
3726
|
ptmId: string;
|
|
3727
3727
|
onAPIComplete?: (success: boolean) => void;
|
|
3728
|
+
onFeedback?: (feedbackType: 'positive' | 'negative', ptmId: string, teacherName: string) => void;
|
|
3729
|
+
showFeedback?: boolean;
|
|
3728
3730
|
}
|
|
3729
3731
|
|
|
3730
3732
|
declare interface IPublishData {
|