touchstudy-core 0.1.185 → 0.1.187

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/components/Questions/configs/fns.d.ts +1 -1
  2. package/dist/containers/ExamResult/apiClients/index.d.ts +6 -0
  3. package/dist/containers/ExamResult/components/Charts/HexagonChart.d.ts +4 -0
  4. package/dist/containers/ExamResult/components/Charts/SolutionOrderChart.d.ts +11 -0
  5. package/dist/containers/ExamResult/components/Charts/TimeChart.d.ts +4 -0
  6. package/dist/containers/ExamResult/components/Charts/TimeOrderChart.d.ts +1 -0
  7. package/dist/containers/ExamResult/components/Charts/index.d.ts +2 -1
  8. package/dist/containers/ExamResult/components/CompareGrass/AnswerPopover.d.ts +8 -0
  9. package/dist/containers/ExamResult/components/CompareGrass/index.d.ts +3 -0
  10. package/dist/containers/ExamResult/components/ExamHeader.d.ts +1 -1
  11. package/dist/containers/ExamResult/components/GradesByTerritoryProblems.d.ts +9 -0
  12. package/dist/containers/ExamResult/components/MyAnswer/configs/interfaces.d.ts +2 -1
  13. package/dist/containers/ExamResult/components/MyAnswer/index.d.ts +2 -0
  14. package/dist/containers/ExamResult/components/OverallTabs/CategoriesOverallChartContainer.d.ts +13 -0
  15. package/dist/containers/ExamResult/components/OverallTabs/OverallChartContainer.d.ts +13 -0
  16. package/dist/containers/ExamResult/components/OverallTabs/OverallTab.d.ts +8 -0
  17. package/dist/containers/ExamResult/components/OverallTabs/OverallTabHeader.d.ts +6 -0
  18. package/dist/containers/ExamResult/components/OverallTabs/OverallTimeChart.d.ts +11 -0
  19. package/dist/containers/ExamResult/components/OverallTabs/OverallTimeChartContainer.d.ts +10 -0
  20. package/dist/containers/ExamResult/components/PrintSolutionOrder.d.ts +10 -0
  21. package/dist/containers/ExamResult/components/PrintSolutionOrderItem.d.ts +10 -0
  22. package/dist/containers/ExamResult/components/ProblemContainer.d.ts +12 -0
  23. package/dist/containers/ExamResult/components/ProtractedProblem/index.d.ts +0 -3
  24. package/dist/containers/ExamResult/components/ProtractedProblems.d.ts +9 -0
  25. package/dist/containers/ExamResult/components/SolutionOrder.d.ts +8 -0
  26. package/dist/containers/ExamResult/components/TrickyProblems.d.ts +9 -0
  27. package/dist/containers/ExamResult/components/Vulnerable/index.d.ts +2 -2
  28. package/dist/containers/ExamResult/components/VulnerableProblems.d.ts +10 -0
  29. package/dist/containers/ExamResult/configs/constants.d.ts +169 -0
  30. package/dist/containers/ExamResult/configs/functions.d.ts +1 -0
  31. package/dist/containers/ExamResult/configs/types.d.ts +40 -24
  32. package/dist/containers/ExamResult/hooks/useCategoriesOverallChartContainer.d.ts +9 -0
  33. package/dist/containers/ExamResult/hooks/useExamResult.d.ts +6 -0
  34. package/dist/containers/ExamResult/hooks/useOverallChartContainer.d.ts +9 -0
  35. package/dist/containers/ExamResult/hooks/useOverallTimeChartContainer.d.ts +6 -0
  36. package/dist/containers/ExamResult/hooks/usePrintExamResult.d.ts +2 -1
  37. package/dist/containers/ExamResult/index.d.ts +1 -0
  38. package/dist/containers/ExamResult/views/PrintExamResult.d.ts +7 -0
  39. package/dist/containers/Exams/hooks/useOverallChartContainer.d.ts +9 -0
  40. package/dist/index.css +15 -13
  41. package/dist/index.js +3747 -3007
  42. package/dist/index.js.map +1 -1
  43. package/dist/index.modern.js +3747 -3009
  44. package/dist/index.modern.js.map +1 -1
  45. package/dist/utils/functions/common.d.ts +0 -20
  46. package/dist/utils/types/examResults.d.ts +2 -0
  47. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { QuestionGroupRequest } from "../../../utils/types";
2
2
  export declare const isSequentialQuestionGroups: (questionGroups: QuestionGroupRequest[]) => boolean;
3
- export declare const getQuestionGroupsAfterQuestionCountChanged: (questionGroups: QuestionGroupRequest[], questionCount: number, index: number, checkSequential?: boolean | undefined) => QuestionGroupRequest[] | undefined;
3
+ export declare const getQuestionGroupsAfterQuestionCountChanged: (questionGroups: QuestionGroupRequest[], questionCount: number, index: number, checkSequential?: boolean | undefined) => QuestionGroupRequest[];
4
4
  export declare const getPreviousQuestinGroupCategory: (values: any, key: string, paths: number[]) => any;
5
5
  export declare const generateNewQuestionGroup: (questionGroups: QuestionGroupRequest[], isMath: boolean) => QuestionGroupRequest;
6
6
  export declare const reduceToMathArticles: (data: any, isMath?: number | undefined) => any;
@@ -14,3 +14,9 @@ export declare const getResultsEffectSizeTeacher: (id: number, studentId: number
14
14
  export declare const getResultsTimeOrderQuestionTeacher: (id: number, studentId: number) => Promise<import("axios").AxiosResponse<any, any>>;
15
15
  export declare const getResultsCategoriesTeacher: (id: number, studentId: number) => Promise<import("axios").AxiosResponse<any, any>>;
16
16
  export declare const createConversationApi: (data: any) => Promise<import("axios").AxiosResponse<any, any>>;
17
+ export declare const getOverallResultsApi: (code: string) => Promise<import("axios").AxiosResponse<any, any>>;
18
+ export declare const getOverallResultsTeacherApi: (id: number, studentId: number) => Promise<import("axios").AxiosResponse<any, any>>;
19
+ export declare const getOverallCategoriesResultsApi: (code: string) => Promise<import("axios").AxiosResponse<any, any>>;
20
+ export declare const getOverallCategoriesResultsTeacherApi: (id: number, studentId: number) => Promise<import("axios").AxiosResponse<any, any>>;
21
+ export declare const getQuestionTimeCategoriesResultsApi: (code: string) => Promise<import("axios").AxiosResponse<any, any>>;
22
+ export declare const getQuestionTimeCategoriesResultsTeacherApi: (id: number, studentId: number) => Promise<import("axios").AxiosResponse<any, any>>;
@@ -5,6 +5,10 @@ interface Props {
5
5
  avgData: number[];
6
6
  categories: string[];
7
7
  height?: number;
8
+ isPrint?: boolean;
9
+ customTooltip?: (val: any) => string;
10
+ xAxisLabelFormatter?: (val: string, option: any) => string;
11
+ onRendered?: () => void;
8
12
  }
9
13
  declare const HexagonChart: FC<Props>;
10
14
  export default HexagonChart;
@@ -0,0 +1,11 @@
1
+ import { FC } from 'react';
2
+ export interface SolutionOrderChartProps {
3
+ series: any;
4
+ chartOptions: any;
5
+ dataChartIndex: number;
6
+ totalCharts: number;
7
+ onPrevChartClick: () => void;
8
+ onNextChartClick: () => void;
9
+ }
10
+ declare const SolutionOrderChart: FC<SolutionOrderChartProps>;
11
+ export default SolutionOrderChart;
@@ -4,6 +4,10 @@ interface Props {
4
4
  avgTimes: number[];
5
5
  categories: number[];
6
6
  height?: number;
7
+ isPrint?: boolean;
8
+ xTooltipLabelFormatter?: (val: string, option: any) => string;
9
+ yTooltipLabelFormatter?: (val: string, option: any) => string;
10
+ onRendered?: () => void;
7
11
  }
8
12
  declare const TimeChart: FC<Props>;
9
13
  export default TimeChart;
@@ -4,6 +4,7 @@ interface Props {
4
4
  timelyOrderQuestion: TimelyOrderQuestion;
5
5
  options: any;
6
6
  series: any;
7
+ shink: boolean;
7
8
  setIsRendered: (questionGroupIndex: number) => void;
8
9
  }
9
10
  declare const TimeOrderChart: FC<Props>;
@@ -1,4 +1,5 @@
1
1
  import HexagonChart from "./HexagonChart";
2
+ import SolutionOrderChart from "./SolutionOrderChart";
2
3
  import TimeChart from "./TimeChart";
3
4
  import TimeOrderChart from "./TimeOrderChart";
4
- export { HexagonChart, TimeChart, TimeOrderChart };
5
+ export { HexagonChart, TimeChart, TimeOrderChart, SolutionOrderChart };
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ interface AnswerPopoverProps {
3
+ anchorEl: HTMLElement | null;
4
+ onClose: () => void;
5
+ open: boolean;
6
+ }
7
+ declare const AnswerPopover: React.FC<AnswerPopoverProps>;
8
+ export default AnswerPopover;
@@ -1,7 +1,10 @@
1
1
  import { FC } from "react";
2
2
  import { EffectSize } from "../../configs/types";
3
+ import { ExamResult } from "../../../../utils";
3
4
  interface Props {
4
5
  effectSize: EffectSize[];
6
+ data?: ExamResult;
7
+ isPrint?: boolean;
5
8
  }
6
9
  declare const CompareGrass: FC<Props>;
7
10
  export default CompareGrass;
@@ -7,7 +7,7 @@ interface Props {
7
7
  courses?: string;
8
8
  onCreateQA?: (e: MouseEvent<HTMLButtonElement>) => void;
9
9
  onViewQA?: () => void;
10
- onPrint: () => void;
10
+ onPrint?: () => void;
11
11
  }
12
12
  declare const ExamHeader: FC<Props>;
13
13
  export default ExamHeader;
@@ -0,0 +1,9 @@
1
+ import { FC } from "react";
2
+ import { ProblemContainerProps } from "./ProblemContainer";
3
+ import { CategoryResponse } from "../../../utils";
4
+ interface Props extends Omit<ProblemContainerProps, "title" | "keyOpen"> {
5
+ data: CategoryResponse[];
6
+ isPrint?: boolean;
7
+ }
8
+ declare const GradesByTerritoryProblems: FC<Props>;
9
+ export default GradesByTerritoryProblems;
@@ -1,12 +1,13 @@
1
1
  import { Action } from "../../../../../components/Tooltips/configs/types";
2
2
  import { Question } from "../../../../../utils";
3
- import { StudentQuestionResult } from "../../../configs/types";
3
+ import { EffectSize, StudentQuestionResult } from "../../../configs/types";
4
4
  export interface AnswerItemProps extends AnswerItemBaseProps {
5
5
  data: Question;
6
6
  openContextMenu: boolean;
7
7
  nextData?: Question;
8
8
  isLast?: boolean;
9
9
  isFirst?: boolean;
10
+ effectSize?: EffectSize;
10
11
  }
11
12
  export interface TextbookAnswerItemProps extends TextbookAnswerItemBaseProps {
12
13
  data: StudentQuestionResult;
@@ -1,12 +1,14 @@
1
1
  import { FC } from "react";
2
2
  import { CategoryResponse, ExamResult } from "../../../../utils/types/examResults";
3
3
  import { AnswerItemBaseProps } from "./configs/interfaces";
4
+ import { EffectSize } from "../../configs/types";
4
5
  interface Props {
5
6
  data: ExamResult;
6
7
  questionIdContextMenu?: number;
7
8
  categories: CategoryResponse[];
8
9
  itemProps?: AnswerItemBaseProps;
9
10
  isStudent: boolean;
11
+ effectSize: EffectSize[];
10
12
  }
11
13
  declare const MyAnswer: FC<Props>;
12
14
  export default MyAnswer;
@@ -0,0 +1,13 @@
1
+ import { FC } from "react";
2
+ export interface CategoriesOverallChartContainerProps {
3
+ isLoading: boolean;
4
+ myData: number[];
5
+ avgData: number[];
6
+ shortCategories: string[];
7
+ isPrint?: boolean;
8
+ formatTooltip: (val: any) => string;
9
+ xAxisLabelFormatter: (val: string, option: any) => string;
10
+ onRendered?: () => void;
11
+ }
12
+ declare const CategoriesOverallChartContainer: FC<CategoriesOverallChartContainerProps>;
13
+ export default CategoriesOverallChartContainer;
@@ -0,0 +1,13 @@
1
+ import { FC } from "react";
2
+ export interface OverallChartContainerProps {
3
+ isLoading: boolean;
4
+ myData: number[];
5
+ avgData: number[];
6
+ shortCategories: string[];
7
+ isPrint?: boolean;
8
+ formatTooltip: (val: any) => string;
9
+ xAxisLabelFormatter: (val: string, option: any) => string;
10
+ onRendered?: () => void;
11
+ }
12
+ declare const OverallChartContainer: FC<OverallChartContainerProps>;
13
+ export default OverallChartContainer;
@@ -1,5 +1,13 @@
1
1
  import { FC } from "react";
2
+ import { OverallChartContainerProps } from "./OverallChartContainer";
3
+ import { CategoriesOverallChartContainerProps } from "./CategoriesOverallChartContainer";
4
+ import { OverallTimeChartContainerProps } from "./OverallTimeChartContainer";
2
5
  interface Props {
6
+ overallChartContainerProps: OverallChartContainerProps;
7
+ categoriesOverallChartContainerProps: CategoriesOverallChartContainerProps;
8
+ overallTimeChartContainerProps: OverallTimeChartContainerProps;
9
+ isPrint?: boolean;
10
+ onRendered?: () => void;
3
11
  }
4
12
  declare const OverallTab: FC<Props>;
5
13
  export default OverallTab;
@@ -0,0 +1,6 @@
1
+ import { FC } from "react";
2
+ interface Props {
3
+ title: string;
4
+ }
5
+ declare const OverallTabHeader: FC<Props>;
6
+ export default OverallTabHeader;
@@ -0,0 +1,11 @@
1
+ import { FC } from "react";
2
+ import { QuestionTimeCategoryData } from "../../configs/types";
3
+ interface Props {
4
+ data: QuestionTimeCategoryData;
5
+ total: number;
6
+ index: number;
7
+ isPrint?: boolean;
8
+ onRendered?: (index: number) => void;
9
+ }
10
+ declare const OverallTimeChart: FC<Props>;
11
+ export default OverallTimeChart;
@@ -0,0 +1,10 @@
1
+ import { FC } from "react";
2
+ import { QuestionTimeCategoryData } from "../../configs/types";
3
+ export interface OverallTimeChartContainerProps {
4
+ isLoading: boolean;
5
+ categories: QuestionTimeCategoryData[];
6
+ isPrint?: boolean;
7
+ onRendered?: () => void;
8
+ }
9
+ declare const OverallTimeChartContainer: FC<OverallTimeChartContainerProps>;
10
+ export default OverallTimeChartContainer;
@@ -0,0 +1,10 @@
1
+ import { FC } from "react";
2
+ import { TimelyOrderQuestion } from "../configs/types";
3
+ interface Props {
4
+ timelyOrderQuestions: TimelyOrderQuestion[];
5
+ allChartOptions: any;
6
+ allSeries: any;
7
+ setIsRendered: (questionGroupIndex: number) => void;
8
+ }
9
+ declare const PrintSolutionOrder: FC<Props>;
10
+ export default PrintSolutionOrder;
@@ -0,0 +1,10 @@
1
+ import { FC } from "react";
2
+ import { TimelyOrderQuestion } from "../configs/types";
3
+ interface Props {
4
+ timelyOrderQuestion: TimelyOrderQuestion;
5
+ options: any;
6
+ series: any;
7
+ setIsRendered: (questionGroupIndex: number) => void;
8
+ }
9
+ declare const PrintSolutionOrderItem: FC<Props>;
10
+ export default PrintSolutionOrderItem;
@@ -0,0 +1,12 @@
1
+ import { FC, PropsWithChildren } from "react";
2
+ import { ProblemKey } from "../configs/types";
3
+ export interface ProblemContainerProps extends PropsWithChildren {
4
+ title: string;
5
+ detail?: string;
6
+ keyOpen: ProblemKey;
7
+ openProblem?: ProblemKey;
8
+ isPrint?: boolean;
9
+ changeOpen?: (key?: ProblemKey) => void;
10
+ }
11
+ declare const ProblemContainer: FC<ProblemContainerProps>;
12
+ export default ProblemContainer;
@@ -1,13 +1,10 @@
1
1
  import { FC } from "react";
2
2
  import { LongTimeSpendQuestion, ProblemKey } from "../../configs/types";
3
- import { ExamResult } from "../../../../utils";
4
3
  interface Props {
5
4
  data: LongTimeSpendQuestion[];
6
5
  keyOpen: ProblemKey;
7
- examResult?: ExamResult;
8
6
  openProblem?: ProblemKey;
9
7
  changeOpen?: (key?: ProblemKey) => void;
10
- isMyStoryStudent?: boolean;
11
8
  }
12
9
  declare const ProtractedProblem: FC<Props>;
13
10
  export default ProtractedProblem;
@@ -0,0 +1,9 @@
1
+ import { FC } from "react";
2
+ import { ProblemContainerProps } from "./ProblemContainer";
3
+ import { LongTimeSpendQuestion } from "../configs/types";
4
+ interface Props extends Omit<ProblemContainerProps, "title" | "keyOpen"> {
5
+ data: LongTimeSpendQuestion[];
6
+ isPrint?: boolean;
7
+ }
8
+ declare const ProtractedProblems: FC<Props>;
9
+ export default ProtractedProblems;
@@ -0,0 +1,8 @@
1
+ import { FC } from "react";
2
+ import { SolutionOrderChartProps } from "./Charts/SolutionOrderChart";
3
+ import { ProblemContainerProps } from "./ProblemContainer";
4
+ interface Props extends SolutionOrderChartProps, Omit<ProblemContainerProps, "title" | "keyOpen"> {
5
+ isPrint?: boolean;
6
+ }
7
+ declare const SolutionOrder: FC<Props>;
8
+ export default SolutionOrder;
@@ -0,0 +1,9 @@
1
+ import { FC } from "react";
2
+ import { ProblemContainerProps } from "./ProblemContainer";
3
+ import { Question } from "../../../utils/types/examResults";
4
+ interface Props extends Omit<ProblemContainerProps, "title" | "keyOpen"> {
5
+ data: Question[];
6
+ isPrint?: boolean;
7
+ }
8
+ declare const TrickyProblems: FC<Props>;
9
+ export default TrickyProblems;
@@ -1,12 +1,12 @@
1
1
  import { FC } from "react";
2
2
  import { ProblemKey } from "../../configs/types";
3
- import { ExamResult } from "../../../../utils/types/examResults";
3
+ import { CategoryResponse, ExamResult } from "../../../../utils/types/examResults";
4
4
  interface Props {
5
5
  keyOpen: ProblemKey;
6
6
  data: ExamResult;
7
7
  openProblem?: ProblemKey;
8
+ categories: CategoryResponse[];
8
9
  changeOpen?: (key?: ProblemKey) => void;
9
- isMyStoryStudent?: boolean;
10
10
  }
11
11
  declare const Vulnerable: FC<Props>;
12
12
  export default Vulnerable;
@@ -0,0 +1,10 @@
1
+ import { FC } from "react";
2
+ import { ProblemContainerProps } from "./ProblemContainer";
3
+ import { CategoryResponse, Question } from "../../../utils/types/examResults";
4
+ interface Props extends Omit<ProblemContainerProps, "title" | "keyOpen"> {
5
+ data: Question[];
6
+ categories: CategoryResponse[];
7
+ isPrint?: boolean;
8
+ }
9
+ declare const VulnerableProblems: FC<Props>;
10
+ export default VulnerableProblems;
@@ -5,6 +5,10 @@ export declare const TabList: {
5
5
  label: string;
6
6
  value: number;
7
7
  }[];
8
+ export declare const TextbookTabList: {
9
+ label: string;
10
+ value: number;
11
+ }[];
8
12
  export declare enum Roles {
9
13
  Student = "Student",
10
14
  Teacher = "Teacher",
@@ -85,3 +89,168 @@ export declare const defaultSeries: (t: any) => {
85
89
  name: any;
86
90
  data: never[];
87
91
  }[];
92
+ export declare const DEFAULT_HEXAGON_OPTIONS: {
93
+ chart: {
94
+ height: number;
95
+ type: string;
96
+ toolbar: {
97
+ show: boolean;
98
+ };
99
+ dropShadow: {
100
+ enabled: boolean;
101
+ blur: number;
102
+ left: number;
103
+ top: number;
104
+ };
105
+ };
106
+ tooltip: {
107
+ enable: boolean;
108
+ custom: ({ series, seriesIndex, dataPointIndex, w }: any) => string;
109
+ };
110
+ plotOptions: {
111
+ radar: {
112
+ polygons: {
113
+ strokeWidth: number;
114
+ strokeColors: string;
115
+ connectorColors: string;
116
+ };
117
+ };
118
+ };
119
+ title: {
120
+ show: boolean;
121
+ };
122
+ stroke: {
123
+ width: number;
124
+ };
125
+ fill: {
126
+ opacity: number;
127
+ };
128
+ markers: {
129
+ size: number;
130
+ hover: {
131
+ size: number;
132
+ };
133
+ strokeColors: string;
134
+ };
135
+ yaxis: {
136
+ show: boolean;
137
+ min: number;
138
+ max: number;
139
+ tickAmount: number;
140
+ };
141
+ xaxis: {
142
+ categories: never[];
143
+ labels: {
144
+ style: {
145
+ fontSize: string;
146
+ fontFamily: string;
147
+ colors: string[];
148
+ };
149
+ formatter: (val: string) => string;
150
+ };
151
+ };
152
+ colors: string[];
153
+ legend: {
154
+ show: boolean;
155
+ markers: {
156
+ width: number;
157
+ height: number;
158
+ radius: number;
159
+ customHTML: undefined;
160
+ };
161
+ labels: {
162
+ useSeriesColors: boolean;
163
+ fontSize: string;
164
+ fontWeight: number;
165
+ };
166
+ };
167
+ };
168
+ export declare const DEFAULT_TIME_CHART_OPTIONS: {
169
+ chart: {
170
+ height: number;
171
+ type: string;
172
+ toolbar: {
173
+ show: boolean;
174
+ };
175
+ zoom: {
176
+ enabled: boolean;
177
+ };
178
+ };
179
+ grid: {
180
+ show: boolean;
181
+ };
182
+ stroke: {
183
+ width: number;
184
+ };
185
+ markers: {
186
+ size: number[];
187
+ colors: string;
188
+ strokeWidth: number;
189
+ strokeColors: string[];
190
+ hover: {
191
+ size: number;
192
+ };
193
+ };
194
+ colors: string[];
195
+ legend: {
196
+ show: boolean;
197
+ itemMargin: {
198
+ vertical: string;
199
+ };
200
+ markers: {
201
+ width: number;
202
+ height: number;
203
+ radius: number;
204
+ customHTML: undefined;
205
+ };
206
+ labels: {
207
+ useSeriesColors: boolean;
208
+ colors: string[];
209
+ fontSize: string;
210
+ fontWeight: number;
211
+ };
212
+ };
213
+ xaxis: {
214
+ categories: never[];
215
+ axisBorder: {
216
+ show: boolean;
217
+ color: string;
218
+ };
219
+ axisTicks: {
220
+ show: boolean;
221
+ color: string;
222
+ height: number;
223
+ };
224
+ };
225
+ yaxis: {
226
+ max: number;
227
+ min: number;
228
+ tickAmount: number;
229
+ forceNiceScale: boolean;
230
+ axisBorder: {
231
+ show: boolean;
232
+ color: string;
233
+ width: number;
234
+ offsetX: number;
235
+ };
236
+ axisTicks: {
237
+ show: boolean;
238
+ color: string;
239
+ width: number;
240
+ offsetX: number;
241
+ };
242
+ labels: {
243
+ formatter: (value: any) => any;
244
+ };
245
+ };
246
+ tooltip: {
247
+ shared: boolean;
248
+ intersect: boolean;
249
+ y: {
250
+ formatter: (y: any) => any;
251
+ };
252
+ x: {
253
+ formatter: (x: any) => any;
254
+ };
255
+ };
256
+ };
@@ -3,3 +3,4 @@ export declare const toNumberOrder: (value: number) => string;
3
3
  export declare const formatDuration: (t: any, duration: number) => any;
4
4
  export declare const formatQuestionOrder: (index: number, t: any, language?: string | undefined) => any;
5
5
  export declare const groupMonth: (exams: ExamSessionResponse[]) => {} | undefined;
6
+ export declare const normalizeArray: <T>(arr: T[], length: number, replacement: any) => (T | null)[];
@@ -1,5 +1,5 @@
1
1
  import { QuestionAnswerType } from './../../../utils/enums/examStatus';
2
- import { CategoryResponse } from "../../../utils/types/examResults";
2
+ import { CategoryResponse, Question } from "../../../utils/types/examResults";
3
3
  import { Role } from '../../../utils';
4
4
  export interface CategoryFormat extends CategoryResponse {
5
5
  totalSolveTime: number;
@@ -36,10 +36,11 @@ export declare type LongTimeSpendQuestion = {
36
36
  topDuration?: any;
37
37
  };
38
38
  export declare enum ProblemKey {
39
- TrickyProblem = 0,
40
- ProtractedProblem = 1,
41
- GradesByTerritory = 2,
42
- Vulnerable = 3
39
+ SolutionOrder = 0,
40
+ TrickyProblem = 1,
41
+ ProtractedProblem = 2,
42
+ GradesByTerritory = 3,
43
+ Vulnerable = 4
43
44
  }
44
45
  export declare type TextbookResult = {
45
46
  id: number;
@@ -53,26 +54,9 @@ export declare type TextbookResult = {
53
54
  studentTextbookSessionId: number;
54
55
  studentQuestionResults: StudentQuestionResult[];
55
56
  };
56
- export declare type StudentQuestionResult = {
57
- id: number;
58
- questionGroupId: number;
59
- selectedAnswers?: number[] | string;
60
- correctAnswers?: number[] | string;
61
- textualAnswers?: string[];
62
- correctTextualAnswers?: string[];
63
- isStar: boolean;
64
- duration: number;
65
- classAverageTime: number;
66
- topDuration: number | null;
67
- answerResponseSignal: number;
68
- isCorrect: boolean;
69
- answerTime: string;
70
- questionGroupIndex: number;
71
- score: number;
72
- questionAnswerType: QuestionAnswerType;
57
+ export declare type StudentQuestionResult = Question & {
73
58
  categories: Category[];
74
- overallCorrectRate: number;
75
- questionOrder: number;
59
+ questionGroupId: number;
76
60
  };
77
61
  export declare type Category = {
78
62
  parentCategoryId: number | null;
@@ -124,3 +108,35 @@ export declare type ExamSessionResponse = {
124
108
  export declare type GroupedExamSession = {
125
109
  [key: string]: ExamSessionResponse[];
126
110
  };
111
+ export declare type OverallExamResultResponse = {
112
+ data: OverallExamResultData[];
113
+ maxData: OverallExamResultData;
114
+ };
115
+ export declare type OverallExamResultData = {
116
+ correctRate: number;
117
+ highLevelQuestions: number;
118
+ lowLevelQuestions: number;
119
+ totalAsteriskQuestions: number;
120
+ problemSolvingTime: number;
121
+ questionLongestTime: number;
122
+ };
123
+ export declare type OverallCategoryData = {
124
+ categoryId: number;
125
+ categoryName: string;
126
+ path: string;
127
+ totalCorrectQuestions: number;
128
+ avgCorrectQuestions: number;
129
+ totalQuestions: number;
130
+ };
131
+ export declare type QuestionTimeCategoryData = {
132
+ categoryId: number;
133
+ categoryName: string;
134
+ path: string;
135
+ questions: QuestionTime[];
136
+ };
137
+ export declare type QuestionTime = {
138
+ questionId: number;
139
+ questionOrder: number;
140
+ time: number;
141
+ avgTime: number;
142
+ };
@@ -0,0 +1,9 @@
1
+ declare const useCategoriesOverallChartContainer: (isStudent: boolean, examCode: string, code: string, examSessionId: number, chapterId: number, studentId: number) => {
2
+ isLoading: boolean;
3
+ myData: number[];
4
+ avgData: number[];
5
+ shortCategories: string[];
6
+ xAxisLabelFormatter: (_: string, { dataPointIndex }: any) => string;
7
+ formatTooltip: ({ dataPointIndex, w }: any) => string;
8
+ };
9
+ export default useCategoriesOverallChartContainer;
@@ -4,6 +4,11 @@ import { MouseEvent } from "react";
4
4
  import { NoteResponse } from "../../../utils/types/note";
5
5
  declare const useExamResult: (props: ExamResultV2Props) => {
6
6
  t: any;
7
+ code: string | undefined;
8
+ examCode: string;
9
+ studentId: number;
10
+ examSessionId: number;
11
+ chapterId: number | undefined;
7
12
  fileName: string;
8
13
  selected: number;
9
14
  isStudent: any;
@@ -14,6 +19,7 @@ declare const useExamResult: (props: ExamResultV2Props) => {
14
19
  setRenderedChart: (chart: number) => void;
15
20
  handlePrintPdf: () => void;
16
21
  reset: () => void;
22
+ handleOverallChartsRendered: () => void;
17
23
  };
18
24
  examResultNotes: {
19
25
  selectedNote: NoteResponse | undefined;
@@ -0,0 +1,9 @@
1
+ declare const useOverallChartContainer: (isStudent: boolean, examCode: string, code: string, examSessionId: number, chapterId: number, studentId: number) => {
2
+ isLoading: boolean;
3
+ myData: number[];
4
+ avgData: number[];
5
+ shortCategories: string[];
6
+ xAxisLabelFormatter: (_: string, { dataPointIndex }: any) => any;
7
+ formatTooltip: ({ dataPointIndex, w }: any) => string;
8
+ };
9
+ export default useOverallChartContainer;
@@ -0,0 +1,6 @@
1
+ import { QuestionTimeCategoryData } from "../configs/types";
2
+ declare const useOverallTimeChartContainer: (isStudent: boolean, examCode: string, code: string, examSessionId: number, chapterId: number, studentId: number) => {
3
+ isLoading: boolean;
4
+ categories: QuestionTimeCategoryData[];
5
+ };
6
+ export default useOverallTimeChartContainer;