analytica-frontend-lib 1.2.86 → 1.2.88
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/ActivitiesHistory/index.js.map +1 -1
- package/dist/ActivitiesHistory/index.mjs.map +1 -1
- package/dist/NotificationCard/index.js +1 -1
- package/dist/NotificationCard/index.js.map +1 -1
- package/dist/NotificationCard/index.mjs +1 -1
- package/dist/NotificationCard/index.mjs.map +1 -1
- package/dist/QuestionsData/index.d.ts +26 -1
- package/dist/QuestionsData/index.d.ts.map +1 -1
- package/dist/QuestionsData/index.js.map +1 -1
- package/dist/QuestionsData/index.mjs.map +1 -1
- package/dist/RecommendedLessonsHistory/index.d.ts +1 -1
- package/dist/RecommendedLessonsHistory/index.d.ts.map +1 -1
- package/dist/RecommendedLessonsHistory/index.js +148 -142
- package/dist/RecommendedLessonsHistory/index.js.map +1 -1
- package/dist/RecommendedLessonsHistory/index.mjs +147 -141
- package/dist/RecommendedLessonsHistory/index.mjs.map +1 -1
- package/dist/StudentRanking/index.d.ts +33 -9
- package/dist/StudentRanking/index.d.ts.map +1 -1
- package/dist/StudentRanking/index.js.map +1 -1
- package/dist/StudentRanking/index.mjs.map +1 -1
- package/dist/hooks/useActivitiesHistory/index.js.map +1 -1
- package/dist/hooks/useActivitiesHistory/index.mjs.map +1 -1
- package/dist/hooks/useNotifications.d.ts +2 -2
- package/dist/hooks/useNotifications.d.ts.map +1 -1
- package/dist/hooks/useQuestionsData.d.ts +218 -0
- package/dist/hooks/useQuestionsData.d.ts.map +1 -0
- package/dist/hooks/useRecommendedClassDrafts/index.d.ts +57 -0
- package/dist/hooks/useRecommendedClassDrafts/index.d.ts.map +1 -0
- package/dist/hooks/{useGoalDrafts → useRecommendedClassDrafts}/index.js +40 -40
- package/dist/hooks/useRecommendedClassDrafts/index.js.map +1 -0
- package/dist/hooks/{useGoalDrafts → useRecommendedClassDrafts}/index.mjs +33 -33
- package/dist/hooks/useRecommendedClassDrafts/index.mjs.map +1 -0
- package/dist/hooks/useRecommendedClassDrafts.d.ts +57 -0
- package/dist/hooks/useRecommendedClassDrafts.d.ts.map +1 -0
- package/dist/hooks/{useGoalModels.d.ts → useRecommendedClassModels.d.ts} +32 -32
- package/dist/hooks/useRecommendedClassModels.d.ts.map +1 -0
- package/dist/hooks/useRecommendedLessonDetails.d.ts +44 -44
- package/dist/hooks/useRecommendedLessonDetails.d.ts.map +1 -1
- package/dist/hooks/useRecommendedLessons/index.d.ts +35 -35
- package/dist/hooks/useRecommendedLessons/index.d.ts.map +1 -1
- package/dist/hooks/useRecommendedLessons/index.js +41 -41
- package/dist/hooks/useRecommendedLessons/index.js.map +1 -1
- package/dist/hooks/useRecommendedLessons/index.mjs +37 -37
- package/dist/hooks/useRecommendedLessons/index.mjs.map +1 -1
- package/dist/hooks/useRecommendedLessons.d.ts +35 -35
- package/dist/hooks/useRecommendedLessons.d.ts.map +1 -1
- package/dist/hooks/useRecommendedLessonsPage/index.d.ts +21 -21
- package/dist/hooks/useRecommendedLessonsPage/index.d.ts.map +1 -1
- package/dist/hooks/useRecommendedLessonsPage/index.js +39 -33
- package/dist/hooks/useRecommendedLessonsPage/index.js.map +1 -1
- package/dist/hooks/useRecommendedLessonsPage/index.mjs +39 -33
- package/dist/hooks/useRecommendedLessonsPage/index.mjs.map +1 -1
- package/dist/hooks/useRecommendedLessonsPage.d.ts +21 -21
- package/dist/hooks/useRecommendedLessonsPage.d.ts.map +1 -1
- package/dist/hooks/useStudentsHighlight.d.ts +275 -0
- package/dist/hooks/useStudentsHighlight.d.ts.map +1 -0
- package/dist/index.d.ts +15 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +570 -351
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +516 -308
- package/dist/index.mjs.map +1 -1
- package/dist/store/notificationStore.d.ts.map +1 -1
- package/dist/types/activitiesHistory/index.js.map +1 -1
- package/dist/types/activitiesHistory/index.mjs.map +1 -1
- package/dist/types/common.d.ts +2 -2
- package/dist/types/notifications.d.ts +5 -5
- package/dist/types/notifications.d.ts.map +1 -1
- package/dist/types/recommendedLessons/index.d.ts +112 -112
- package/dist/types/recommendedLessons/index.d.ts.map +1 -1
- package/dist/types/recommendedLessons/index.js +25 -25
- package/dist/types/recommendedLessons/index.js.map +1 -1
- package/dist/types/recommendedLessons/index.mjs +17 -17
- package/dist/types/recommendedLessons/index.mjs.map +1 -1
- package/dist/types/recommendedLessons.d.ts +112 -112
- package/dist/types/recommendedLessons.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/hooks/useGoalDrafts/index.d.ts +0 -57
- package/dist/hooks/useGoalDrafts/index.d.ts.map +0 -1
- package/dist/hooks/useGoalDrafts/index.js.map +0 -1
- package/dist/hooks/useGoalDrafts/index.mjs.map +0 -1
- package/dist/hooks/useGoalDrafts.d.ts +0 -57
- package/dist/hooks/useGoalDrafts.d.ts.map +0 -1
- package/dist/hooks/useGoalModels.d.ts.map +0 -1
|
@@ -5636,40 +5636,40 @@ var getStatusBadgeAction = (status) => {
|
|
|
5636
5636
|
};
|
|
5637
5637
|
|
|
5638
5638
|
// src/types/recommendedLessons.ts
|
|
5639
|
-
var
|
|
5640
|
-
var
|
|
5639
|
+
var getRecommendedClassStatusBadgeAction = (status) => getStatusBadgeAction(status);
|
|
5640
|
+
var RECOMMENDED_CLASS_FILTER_STATUS_OPTIONS = [
|
|
5641
5641
|
{ id: "VENCIDA" /* VENCIDA */, name: "Vencida" },
|
|
5642
5642
|
{ id: "A_VENCER" /* A_VENCER */, name: "Ativa" }
|
|
5643
5643
|
];
|
|
5644
|
-
var
|
|
5644
|
+
var RECOMMENDED_CLASS_STATUS_OPTIONS = [
|
|
5645
5645
|
{ id: "A_VENCER" /* A_VENCER */, name: "A Vencer" },
|
|
5646
5646
|
{ id: "VENCIDA" /* VENCIDA */, name: "Vencida" },
|
|
5647
5647
|
{ id: "CONCLUIDA" /* CONCLUIDA */, name: "Conclu\xEDda" }
|
|
5648
5648
|
];
|
|
5649
|
-
var
|
|
5650
|
-
|
|
5651
|
-
|
|
5652
|
-
return
|
|
5653
|
-
})(
|
|
5649
|
+
var RecommendedClassDraftType = /* @__PURE__ */ ((RecommendedClassDraftType2) => {
|
|
5650
|
+
RecommendedClassDraftType2["MODELO"] = "MODELO";
|
|
5651
|
+
RecommendedClassDraftType2["RASCUNHO"] = "RASCUNHO";
|
|
5652
|
+
return RecommendedClassDraftType2;
|
|
5653
|
+
})(RecommendedClassDraftType || {});
|
|
5654
5654
|
|
|
5655
5655
|
// src/hooks/useRecommendedLessons.ts
|
|
5656
5656
|
import { useState as useState11, useCallback as useCallback2 } from "react";
|
|
5657
5657
|
import { z } from "zod";
|
|
5658
5658
|
import dayjs from "dayjs";
|
|
5659
|
-
var
|
|
5659
|
+
var recommendedClassSubjectSchema = z.object({
|
|
5660
5660
|
id: z.string().uuid(),
|
|
5661
5661
|
name: z.string()
|
|
5662
5662
|
}).nullable();
|
|
5663
|
-
var
|
|
5663
|
+
var recommendedClassCreatorSchema = z.object({
|
|
5664
5664
|
id: z.string().uuid(),
|
|
5665
5665
|
name: z.string()
|
|
5666
5666
|
}).nullable();
|
|
5667
|
-
var
|
|
5667
|
+
var recommendedClassStatsSchema = z.object({
|
|
5668
5668
|
totalStudents: z.number(),
|
|
5669
5669
|
completedCount: z.number(),
|
|
5670
5670
|
completionPercentage: z.number()
|
|
5671
5671
|
});
|
|
5672
|
-
var
|
|
5672
|
+
var recommendedClassBreakdownSchema = z.object({
|
|
5673
5673
|
classId: z.string().uuid(),
|
|
5674
5674
|
className: z.string(),
|
|
5675
5675
|
schoolId: z.string(),
|
|
@@ -5677,7 +5677,7 @@ var goalBreakdownSchema = z.object({
|
|
|
5677
5677
|
studentCount: z.number(),
|
|
5678
5678
|
completedCount: z.number()
|
|
5679
5679
|
});
|
|
5680
|
-
var
|
|
5680
|
+
var recommendedClassDataSchema = z.object({
|
|
5681
5681
|
id: z.string().uuid(),
|
|
5682
5682
|
title: z.string(),
|
|
5683
5683
|
startDate: z.string().nullable(),
|
|
@@ -5686,21 +5686,21 @@ var goalDataSchema = z.object({
|
|
|
5686
5686
|
progress: z.number(),
|
|
5687
5687
|
totalLessons: z.number()
|
|
5688
5688
|
});
|
|
5689
|
-
var
|
|
5690
|
-
|
|
5691
|
-
subject:
|
|
5692
|
-
creator:
|
|
5693
|
-
stats:
|
|
5694
|
-
breakdown: z.array(
|
|
5689
|
+
var recommendedClassHistoryItemSchema = z.object({
|
|
5690
|
+
recommendedClass: recommendedClassDataSchema,
|
|
5691
|
+
subject: recommendedClassSubjectSchema,
|
|
5692
|
+
creator: recommendedClassCreatorSchema,
|
|
5693
|
+
stats: recommendedClassStatsSchema,
|
|
5694
|
+
breakdown: z.array(recommendedClassBreakdownSchema)
|
|
5695
5695
|
});
|
|
5696
|
-
var
|
|
5696
|
+
var recommendedClassHistoryApiResponseSchema = z.object({
|
|
5697
5697
|
message: z.string(),
|
|
5698
5698
|
data: z.object({
|
|
5699
|
-
|
|
5699
|
+
recommendedClass: z.array(recommendedClassHistoryItemSchema),
|
|
5700
5700
|
total: z.number()
|
|
5701
5701
|
})
|
|
5702
5702
|
});
|
|
5703
|
-
var
|
|
5703
|
+
var determineRecommendedClassStatus = (finalDate, completionPercentage) => {
|
|
5704
5704
|
if (completionPercentage === 100) {
|
|
5705
5705
|
return "CONCLU\xCDDA" /* CONCLUIDA */;
|
|
5706
5706
|
}
|
|
@@ -5713,29 +5713,29 @@ var determineGoalStatus = (finalDate, completionPercentage) => {
|
|
|
5713
5713
|
}
|
|
5714
5714
|
return "ATIVA" /* ATIVA */;
|
|
5715
5715
|
};
|
|
5716
|
-
var
|
|
5716
|
+
var transformRecommendedClassToTableItem = (item) => {
|
|
5717
5717
|
const firstBreakdown = item.breakdown[0];
|
|
5718
5718
|
const schoolName = firstBreakdown?.schoolName || "-";
|
|
5719
5719
|
const className = firstBreakdown?.className || "-";
|
|
5720
5720
|
const classDisplay = item.breakdown.length > 1 ? `${item.breakdown.length} turmas` : className;
|
|
5721
5721
|
return {
|
|
5722
|
-
id: item.
|
|
5723
|
-
startDate: item.
|
|
5724
|
-
deadline: item.
|
|
5725
|
-
title: item.
|
|
5722
|
+
id: item.recommendedClass.id,
|
|
5723
|
+
startDate: item.recommendedClass.startDate ? dayjs(item.recommendedClass.startDate).format("DD/MM") : "-",
|
|
5724
|
+
deadline: item.recommendedClass.finalDate ? dayjs(item.recommendedClass.finalDate).format("DD/MM") : "-",
|
|
5725
|
+
title: item.recommendedClass.title,
|
|
5726
5726
|
school: schoolName,
|
|
5727
5727
|
year: "-",
|
|
5728
5728
|
// API doesn't provide year directly
|
|
5729
5729
|
subject: item.subject?.name || "-",
|
|
5730
5730
|
class: classDisplay,
|
|
5731
|
-
status:
|
|
5732
|
-
item.
|
|
5731
|
+
status: determineRecommendedClassStatus(
|
|
5732
|
+
item.recommendedClass.finalDate,
|
|
5733
5733
|
item.stats.completionPercentage
|
|
5734
5734
|
),
|
|
5735
5735
|
completionPercentage: item.stats.completionPercentage
|
|
5736
5736
|
};
|
|
5737
5737
|
};
|
|
5738
|
-
var
|
|
5738
|
+
var handleRecommendedClassFetchError = (error) => {
|
|
5739
5739
|
if (error instanceof z.ZodError) {
|
|
5740
5740
|
console.error("Erro ao validar dados de hist\xF3rico de aulas:", error);
|
|
5741
5741
|
return "Erro ao validar dados de hist\xF3rico de aulas";
|
|
@@ -5743,10 +5743,10 @@ var handleGoalFetchError = (error) => {
|
|
|
5743
5743
|
console.error("Erro ao carregar hist\xF3rico de aulas:", error);
|
|
5744
5744
|
return "Erro ao carregar hist\xF3rico de aulas";
|
|
5745
5745
|
};
|
|
5746
|
-
var createUseRecommendedLessonsHistory = (
|
|
5746
|
+
var createUseRecommendedLessonsHistory = (fetchRecommendedClassHistory) => {
|
|
5747
5747
|
return () => {
|
|
5748
5748
|
const [state, setState] = useState11({
|
|
5749
|
-
|
|
5749
|
+
recommendedClass: [],
|
|
5750
5750
|
loading: false,
|
|
5751
5751
|
error: null,
|
|
5752
5752
|
pagination: {
|
|
@@ -5756,21 +5756,21 @@ var createUseRecommendedLessonsHistory = (fetchGoalsHistory) => {
|
|
|
5756
5756
|
totalPages: 0
|
|
5757
5757
|
}
|
|
5758
5758
|
});
|
|
5759
|
-
const
|
|
5759
|
+
const fetchRecommendedClass = useCallback2(
|
|
5760
5760
|
async (filters) => {
|
|
5761
5761
|
setState((prev) => ({ ...prev, loading: true, error: null }));
|
|
5762
5762
|
try {
|
|
5763
|
-
const responseData = await
|
|
5764
|
-
const validatedData =
|
|
5765
|
-
const tableItems = validatedData.data.
|
|
5766
|
-
|
|
5763
|
+
const responseData = await fetchRecommendedClassHistory(filters);
|
|
5764
|
+
const validatedData = recommendedClassHistoryApiResponseSchema.parse(responseData);
|
|
5765
|
+
const tableItems = validatedData.data.recommendedClass.map(
|
|
5766
|
+
transformRecommendedClassToTableItem
|
|
5767
5767
|
);
|
|
5768
5768
|
const page = filters?.page || 1;
|
|
5769
5769
|
const limit = filters?.limit || 10;
|
|
5770
5770
|
const total = validatedData.data.total;
|
|
5771
5771
|
const totalPages = Math.ceil(total / limit);
|
|
5772
5772
|
setState({
|
|
5773
|
-
|
|
5773
|
+
recommendedClass: tableItems,
|
|
5774
5774
|
loading: false,
|
|
5775
5775
|
error: null,
|
|
5776
5776
|
pagination: {
|
|
@@ -5781,7 +5781,7 @@ var createUseRecommendedLessonsHistory = (fetchGoalsHistory) => {
|
|
|
5781
5781
|
}
|
|
5782
5782
|
});
|
|
5783
5783
|
} catch (error) {
|
|
5784
|
-
const errorMessage =
|
|
5784
|
+
const errorMessage = handleRecommendedClassFetchError(error);
|
|
5785
5785
|
setState((prev) => ({
|
|
5786
5786
|
...prev,
|
|
5787
5787
|
loading: false,
|
|
@@ -5789,16 +5789,16 @@ var createUseRecommendedLessonsHistory = (fetchGoalsHistory) => {
|
|
|
5789
5789
|
}));
|
|
5790
5790
|
}
|
|
5791
5791
|
},
|
|
5792
|
-
[
|
|
5792
|
+
[fetchRecommendedClassHistory]
|
|
5793
5793
|
);
|
|
5794
5794
|
return {
|
|
5795
5795
|
...state,
|
|
5796
|
-
|
|
5796
|
+
fetchRecommendedClass
|
|
5797
5797
|
};
|
|
5798
5798
|
};
|
|
5799
5799
|
};
|
|
5800
5800
|
|
|
5801
|
-
// src/hooks/
|
|
5801
|
+
// src/hooks/useRecommendedClassModels.ts
|
|
5802
5802
|
import { useState as useState12, useCallback as useCallback3 } from "react";
|
|
5803
5803
|
import { z as z3 } from "zod";
|
|
5804
5804
|
import dayjs2 from "dayjs";
|
|
@@ -5814,10 +5814,10 @@ var createFetchErrorHandler = (validationErrorMessage, genericErrorMessage) => (
|
|
|
5814
5814
|
return genericErrorMessage;
|
|
5815
5815
|
};
|
|
5816
5816
|
|
|
5817
|
-
// src/hooks/
|
|
5818
|
-
var
|
|
5817
|
+
// src/hooks/useRecommendedClassModels.ts
|
|
5818
|
+
var recommendedClassModelResponseSchema = z3.object({
|
|
5819
5819
|
id: z3.string().uuid(),
|
|
5820
|
-
type: z3.nativeEnum(
|
|
5820
|
+
type: z3.nativeEnum(RecommendedClassDraftType),
|
|
5821
5821
|
title: z3.string(),
|
|
5822
5822
|
description: z3.string().nullable(),
|
|
5823
5823
|
creatorUserInstitutionId: z3.string().uuid(),
|
|
@@ -5827,20 +5827,20 @@ var goalModelResponseSchema = z3.object({
|
|
|
5827
5827
|
createdAt: z3.string(),
|
|
5828
5828
|
updatedAt: z3.string()
|
|
5829
5829
|
});
|
|
5830
|
-
var
|
|
5830
|
+
var recommendedClassModelsApiResponseSchema = z3.object({
|
|
5831
5831
|
message: z3.string(),
|
|
5832
5832
|
data: z3.object({
|
|
5833
|
-
drafts: z3.array(
|
|
5833
|
+
drafts: z3.array(recommendedClassModelResponseSchema),
|
|
5834
5834
|
total: z3.number()
|
|
5835
5835
|
})
|
|
5836
5836
|
});
|
|
5837
|
-
var
|
|
5837
|
+
var DEFAULT_RECOMMENDED_CLASS_MODELS_PAGINATION = {
|
|
5838
5838
|
total: 0,
|
|
5839
5839
|
page: 1,
|
|
5840
5840
|
limit: 10,
|
|
5841
5841
|
totalPages: 0
|
|
5842
5842
|
};
|
|
5843
|
-
var
|
|
5843
|
+
var transformRecommendedClassModelToTableItem = (model, subjectsMap) => {
|
|
5844
5844
|
const subjectName = model.subjectId ? subjectsMap?.get(model.subjectId) || "" : "";
|
|
5845
5845
|
return {
|
|
5846
5846
|
id: model.id,
|
|
@@ -5850,26 +5850,26 @@ var transformGoalModelToTableItem = (model, subjectsMap) => {
|
|
|
5850
5850
|
subjectId: model.subjectId
|
|
5851
5851
|
};
|
|
5852
5852
|
};
|
|
5853
|
-
var
|
|
5853
|
+
var handleRecommendedClassModelFetchError = createFetchErrorHandler(
|
|
5854
5854
|
"Erro ao validar dados de modelos de aulas",
|
|
5855
5855
|
"Erro ao carregar modelos de aulas"
|
|
5856
5856
|
);
|
|
5857
|
-
var
|
|
5857
|
+
var createUseRecommendedClassModels = (fetchRecommendedClassModels, deleteRecommendedClassModel) => {
|
|
5858
5858
|
return () => {
|
|
5859
5859
|
const [state, setState] = useState12({
|
|
5860
5860
|
models: [],
|
|
5861
5861
|
loading: false,
|
|
5862
5862
|
error: null,
|
|
5863
|
-
pagination:
|
|
5863
|
+
pagination: DEFAULT_RECOMMENDED_CLASS_MODELS_PAGINATION
|
|
5864
5864
|
});
|
|
5865
5865
|
const fetchModels = useCallback3(
|
|
5866
5866
|
async (filters, subjectsMap) => {
|
|
5867
5867
|
setState((prev) => ({ ...prev, loading: true, error: null }));
|
|
5868
5868
|
try {
|
|
5869
|
-
const responseData = await
|
|
5870
|
-
const validatedData =
|
|
5869
|
+
const responseData = await fetchRecommendedClassModels(filters);
|
|
5870
|
+
const validatedData = recommendedClassModelsApiResponseSchema.parse(responseData);
|
|
5871
5871
|
const tableItems = validatedData.data.drafts.map(
|
|
5872
|
-
(model) =>
|
|
5872
|
+
(model) => transformRecommendedClassModelToTableItem(model, subjectsMap)
|
|
5873
5873
|
);
|
|
5874
5874
|
const limit = filters?.limit || 10;
|
|
5875
5875
|
const page = filters?.page || 1;
|
|
@@ -5887,7 +5887,7 @@ var createUseGoalModels = (fetchGoalModels, deleteGoalModel) => {
|
|
|
5887
5887
|
}
|
|
5888
5888
|
});
|
|
5889
5889
|
} catch (error) {
|
|
5890
|
-
const errorMessage =
|
|
5890
|
+
const errorMessage = handleRecommendedClassModelFetchError(error);
|
|
5891
5891
|
setState((prev) => ({
|
|
5892
5892
|
...prev,
|
|
5893
5893
|
loading: false,
|
|
@@ -5895,19 +5895,19 @@ var createUseGoalModels = (fetchGoalModels, deleteGoalModel) => {
|
|
|
5895
5895
|
}));
|
|
5896
5896
|
}
|
|
5897
5897
|
},
|
|
5898
|
-
[
|
|
5898
|
+
[fetchRecommendedClassModels]
|
|
5899
5899
|
);
|
|
5900
5900
|
const deleteModel = useCallback3(
|
|
5901
5901
|
async (id) => {
|
|
5902
5902
|
try {
|
|
5903
|
-
await
|
|
5903
|
+
await deleteRecommendedClassModel(id);
|
|
5904
5904
|
return true;
|
|
5905
5905
|
} catch (error) {
|
|
5906
5906
|
console.error("Erro ao deletar modelo:", error);
|
|
5907
5907
|
return false;
|
|
5908
5908
|
}
|
|
5909
5909
|
},
|
|
5910
|
-
[
|
|
5910
|
+
[deleteRecommendedClassModel]
|
|
5911
5911
|
);
|
|
5912
5912
|
return {
|
|
5913
5913
|
...state,
|
|
@@ -5917,34 +5917,34 @@ var createUseGoalModels = (fetchGoalModels, deleteGoalModel) => {
|
|
|
5917
5917
|
};
|
|
5918
5918
|
};
|
|
5919
5919
|
|
|
5920
|
-
// src/hooks/
|
|
5920
|
+
// src/hooks/useRecommendedClassDrafts.ts
|
|
5921
5921
|
import { useState as useState13, useCallback as useCallback4 } from "react";
|
|
5922
|
-
var
|
|
5922
|
+
var DEFAULT_RECOMMENDED_CLASS_DRAFTS_PAGINATION = {
|
|
5923
5923
|
total: 0,
|
|
5924
5924
|
page: 1,
|
|
5925
5925
|
limit: 10,
|
|
5926
5926
|
totalPages: 0
|
|
5927
5927
|
};
|
|
5928
|
-
var
|
|
5928
|
+
var handleRecommendedClassDraftFetchError = createFetchErrorHandler(
|
|
5929
5929
|
"Erro ao validar dados de rascunhos de aulas",
|
|
5930
5930
|
"Erro ao carregar rascunhos de aulas"
|
|
5931
5931
|
);
|
|
5932
|
-
var
|
|
5932
|
+
var createUseRecommendedClassDrafts = (fetchRecommendedClassDrafts, deleteRecommendedClassDraft) => {
|
|
5933
5933
|
return () => {
|
|
5934
5934
|
const [state, setState] = useState13({
|
|
5935
5935
|
models: [],
|
|
5936
5936
|
loading: false,
|
|
5937
5937
|
error: null,
|
|
5938
|
-
pagination:
|
|
5938
|
+
pagination: DEFAULT_RECOMMENDED_CLASS_DRAFTS_PAGINATION
|
|
5939
5939
|
});
|
|
5940
5940
|
const fetchModels = useCallback4(
|
|
5941
5941
|
async (filters, subjectsMap) => {
|
|
5942
5942
|
setState((prev) => ({ ...prev, loading: true, error: null }));
|
|
5943
5943
|
try {
|
|
5944
|
-
const responseData = await
|
|
5945
|
-
const validatedData =
|
|
5944
|
+
const responseData = await fetchRecommendedClassDrafts(filters);
|
|
5945
|
+
const validatedData = recommendedClassModelsApiResponseSchema.parse(responseData);
|
|
5946
5946
|
const tableItems = validatedData.data.drafts.map(
|
|
5947
|
-
(draft) =>
|
|
5947
|
+
(draft) => transformRecommendedClassModelToTableItem(draft, subjectsMap)
|
|
5948
5948
|
);
|
|
5949
5949
|
const limit = filters?.limit || 10;
|
|
5950
5950
|
const page = filters?.page || 1;
|
|
@@ -5962,7 +5962,7 @@ var createUseGoalDrafts = (fetchGoalDrafts, deleteGoalDraft) => {
|
|
|
5962
5962
|
}
|
|
5963
5963
|
});
|
|
5964
5964
|
} catch (error) {
|
|
5965
|
-
const errorMessage =
|
|
5965
|
+
const errorMessage = handleRecommendedClassDraftFetchError(error);
|
|
5966
5966
|
setState((prev) => ({
|
|
5967
5967
|
...prev,
|
|
5968
5968
|
loading: false,
|
|
@@ -5970,19 +5970,19 @@ var createUseGoalDrafts = (fetchGoalDrafts, deleteGoalDraft) => {
|
|
|
5970
5970
|
}));
|
|
5971
5971
|
}
|
|
5972
5972
|
},
|
|
5973
|
-
[
|
|
5973
|
+
[fetchRecommendedClassDrafts]
|
|
5974
5974
|
);
|
|
5975
5975
|
const deleteModel = useCallback4(
|
|
5976
5976
|
async (id) => {
|
|
5977
5977
|
try {
|
|
5978
|
-
await
|
|
5978
|
+
await deleteRecommendedClassDraft(id);
|
|
5979
5979
|
return true;
|
|
5980
5980
|
} catch (error) {
|
|
5981
5981
|
console.error("Erro ao deletar rascunho:", error);
|
|
5982
5982
|
return false;
|
|
5983
5983
|
}
|
|
5984
5984
|
},
|
|
5985
|
-
[
|
|
5985
|
+
[deleteRecommendedClassDraft]
|
|
5986
5986
|
);
|
|
5987
5987
|
return {
|
|
5988
5988
|
...state,
|
|
@@ -6187,7 +6187,7 @@ var getSubjectOptions = (data) => {
|
|
|
6187
6187
|
name: subject.name
|
|
6188
6188
|
}));
|
|
6189
6189
|
};
|
|
6190
|
-
var
|
|
6190
|
+
var createRecommendedClassDraftsFiltersConfig = (userData) => [
|
|
6191
6191
|
{
|
|
6192
6192
|
key: "content",
|
|
6193
6193
|
label: "CONTE\xDADO",
|
|
@@ -6203,7 +6203,7 @@ var createGoalDraftsFiltersConfig = (userData) => [
|
|
|
6203
6203
|
];
|
|
6204
6204
|
|
|
6205
6205
|
// src/components/RecommendedLessonsHistory/utils/filterBuilders.ts
|
|
6206
|
-
var
|
|
6206
|
+
var buildRecommendedClassModelsFiltersFromParams = (params) => {
|
|
6207
6207
|
const filters = {
|
|
6208
6208
|
page: params.page,
|
|
6209
6209
|
limit: params.limit
|
|
@@ -6219,23 +6219,23 @@ var buildGoalModelsFiltersFromParams = (params) => {
|
|
|
6219
6219
|
|
|
6220
6220
|
// src/components/RecommendedLessonsHistory/tabs/DraftsTab.tsx
|
|
6221
6221
|
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
6222
|
-
var
|
|
6222
|
+
var RECOMMENDED_CLASS_DRAFTS_CONFIG = {
|
|
6223
6223
|
entityName: "rascunho",
|
|
6224
6224
|
entityNamePlural: "rascunhos",
|
|
6225
|
-
testId: "
|
|
6225
|
+
testId: "recommendedClass-drafts-tab",
|
|
6226
6226
|
emptyStateTitle: "Voc\xEA n\xE3o tem aulas recomendadas em rascunho",
|
|
6227
6227
|
emptyStateDescription: "As aulas recomendadas que voc\xEA come\xE7ar a criar, aparecer\xE3o aqui automaticamente como rascunhos. Tudo \xE9 salvo enquanto voc\xEA cria, continue de onde parou quando quiser!",
|
|
6228
6228
|
searchPlaceholder: "Buscar rascunho"
|
|
6229
6229
|
};
|
|
6230
|
-
var
|
|
6230
|
+
var RECOMMENDED_CLASS_DRAFTS_COLUMNS_CONFIG = {
|
|
6231
6231
|
sendButtonLabel: "Enviar aula",
|
|
6232
6232
|
sendButtonAriaLabel: "Enviar rascunho",
|
|
6233
6233
|
deleteButtonAriaLabel: "Deletar rascunho",
|
|
6234
6234
|
editButtonAriaLabel: "Editar rascunho"
|
|
6235
6235
|
};
|
|
6236
|
-
var
|
|
6237
|
-
|
|
6238
|
-
|
|
6236
|
+
var RecommendedClassDraftsTab = ({
|
|
6237
|
+
fetchRecommendedClassDrafts,
|
|
6238
|
+
deleteRecommendedClassDraft,
|
|
6239
6239
|
onCreateDraft,
|
|
6240
6240
|
onSendDraft,
|
|
6241
6241
|
onEditDraft,
|
|
@@ -6247,8 +6247,8 @@ var GoalDraftsTab = ({
|
|
|
6247
6247
|
}) => /* @__PURE__ */ jsx37(
|
|
6248
6248
|
ModelsTabBase,
|
|
6249
6249
|
{
|
|
6250
|
-
fetchModels:
|
|
6251
|
-
deleteModel:
|
|
6250
|
+
fetchModels: fetchRecommendedClassDrafts,
|
|
6251
|
+
deleteModel: deleteRecommendedClassDraft,
|
|
6252
6252
|
onCreateModel: onCreateDraft,
|
|
6253
6253
|
onSend: onSendDraft,
|
|
6254
6254
|
onEditModel: onEditDraft,
|
|
@@ -6257,17 +6257,17 @@ var GoalDraftsTab = ({
|
|
|
6257
6257
|
mapSubjectNameToEnum,
|
|
6258
6258
|
userFilterData,
|
|
6259
6259
|
subjectsMap,
|
|
6260
|
-
config:
|
|
6260
|
+
config: RECOMMENDED_CLASS_DRAFTS_CONFIG,
|
|
6261
6261
|
createTableColumns: (mapSubject, send, edit, del) => createModelsTableColumnsBase(
|
|
6262
6262
|
mapSubject,
|
|
6263
6263
|
send,
|
|
6264
6264
|
edit,
|
|
6265
6265
|
del,
|
|
6266
|
-
|
|
6266
|
+
RECOMMENDED_CLASS_DRAFTS_COLUMNS_CONFIG
|
|
6267
6267
|
),
|
|
6268
|
-
createFiltersConfig:
|
|
6269
|
-
buildFiltersFromParams:
|
|
6270
|
-
createUseModels:
|
|
6268
|
+
createFiltersConfig: createRecommendedClassDraftsFiltersConfig,
|
|
6269
|
+
buildFiltersFromParams: buildRecommendedClassModelsFiltersFromParams,
|
|
6270
|
+
createUseModels: createUseRecommendedClassDrafts
|
|
6271
6271
|
}
|
|
6272
6272
|
);
|
|
6273
6273
|
|
|
@@ -7249,7 +7249,7 @@ var getSubjectOptions2 = (data) => {
|
|
|
7249
7249
|
name: subject.name
|
|
7250
7250
|
}));
|
|
7251
7251
|
};
|
|
7252
|
-
var
|
|
7252
|
+
var createRecommendedClassModelsFiltersConfig = (userData) => [
|
|
7253
7253
|
{
|
|
7254
7254
|
key: "content",
|
|
7255
7255
|
label: "CONTE\xDADO",
|
|
@@ -7266,23 +7266,23 @@ var createGoalModelsFiltersConfig = (userData) => [
|
|
|
7266
7266
|
|
|
7267
7267
|
// src/components/RecommendedLessonsHistory/tabs/ModelsTab.tsx
|
|
7268
7268
|
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
7269
|
-
var
|
|
7269
|
+
var RECOMMENDED_CLASS_MODELS_CONFIG = {
|
|
7270
7270
|
entityName: "aula",
|
|
7271
7271
|
entityNamePlural: "aulas",
|
|
7272
|
-
testId: "
|
|
7272
|
+
testId: "recommendedClass-models-tab",
|
|
7273
7273
|
emptyStateTitle: "Crie modelos para agilizar suas aulas",
|
|
7274
7274
|
emptyStateDescription: "Salve modelos de aulas recomendadas para reutilizar e enviar rapidamente para suas turmas!",
|
|
7275
7275
|
searchPlaceholder: "Buscar modelo"
|
|
7276
7276
|
};
|
|
7277
|
-
var
|
|
7277
|
+
var RECOMMENDED_CLASS_COLUMNS_CONFIG = {
|
|
7278
7278
|
sendButtonLabel: "Enviar aula",
|
|
7279
7279
|
sendButtonAriaLabel: "Enviar aula",
|
|
7280
7280
|
deleteButtonAriaLabel: "Deletar modelo",
|
|
7281
7281
|
editButtonAriaLabel: "Editar modelo"
|
|
7282
7282
|
};
|
|
7283
|
-
var
|
|
7284
|
-
|
|
7285
|
-
|
|
7283
|
+
var RecommendedClassModelsTab = ({
|
|
7284
|
+
fetchRecommendedClassModels,
|
|
7285
|
+
deleteRecommendedClassModel,
|
|
7286
7286
|
onCreateModel,
|
|
7287
7287
|
onSendLesson,
|
|
7288
7288
|
onEditModel,
|
|
@@ -7294,8 +7294,8 @@ var GoalModelsTab = ({
|
|
|
7294
7294
|
}) => /* @__PURE__ */ jsx41(
|
|
7295
7295
|
ModelsTabBase,
|
|
7296
7296
|
{
|
|
7297
|
-
fetchModels:
|
|
7298
|
-
deleteModel:
|
|
7297
|
+
fetchModels: fetchRecommendedClassModels,
|
|
7298
|
+
deleteModel: deleteRecommendedClassModel,
|
|
7299
7299
|
onCreateModel,
|
|
7300
7300
|
onSend: onSendLesson,
|
|
7301
7301
|
onEditModel,
|
|
@@ -7304,28 +7304,28 @@ var GoalModelsTab = ({
|
|
|
7304
7304
|
mapSubjectNameToEnum,
|
|
7305
7305
|
userFilterData,
|
|
7306
7306
|
subjectsMap,
|
|
7307
|
-
config:
|
|
7307
|
+
config: RECOMMENDED_CLASS_MODELS_CONFIG,
|
|
7308
7308
|
createTableColumns: (mapSubject, send, edit, del) => createModelsTableColumnsBase(
|
|
7309
7309
|
mapSubject,
|
|
7310
7310
|
send,
|
|
7311
7311
|
edit,
|
|
7312
7312
|
del,
|
|
7313
|
-
|
|
7313
|
+
RECOMMENDED_CLASS_COLUMNS_CONFIG
|
|
7314
7314
|
),
|
|
7315
|
-
createFiltersConfig:
|
|
7316
|
-
buildFiltersFromParams:
|
|
7317
|
-
createUseModels:
|
|
7315
|
+
createFiltersConfig: createRecommendedClassModelsFiltersConfig,
|
|
7316
|
+
buildFiltersFromParams: buildRecommendedClassModelsFiltersFromParams,
|
|
7317
|
+
createUseModels: createUseRecommendedClassModels
|
|
7318
7318
|
}
|
|
7319
7319
|
);
|
|
7320
7320
|
|
|
7321
7321
|
// src/components/RecommendedLessonsHistory/RecommendedLessonsHistory.tsx
|
|
7322
7322
|
import { Fragment as Fragment9, jsx as jsx42, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
7323
|
-
var
|
|
7324
|
-
|
|
7325
|
-
|
|
7326
|
-
|
|
7327
|
-
return
|
|
7328
|
-
})(
|
|
7323
|
+
var RecommendedClassPageTab = /* @__PURE__ */ ((RecommendedClassPageTab2) => {
|
|
7324
|
+
RecommendedClassPageTab2["HISTORY"] = "history";
|
|
7325
|
+
RecommendedClassPageTab2["DRAFTS"] = "drafts";
|
|
7326
|
+
RecommendedClassPageTab2["MODELS"] = "models";
|
|
7327
|
+
return RecommendedClassPageTab2;
|
|
7328
|
+
})(RecommendedClassPageTab || {});
|
|
7329
7329
|
var extractFilterValue = (param) => {
|
|
7330
7330
|
if (!Array.isArray(param) || param.length === 0) return {};
|
|
7331
7331
|
return param.length === 1 ? { single: param[0] } : { multiple: param };
|
|
@@ -7386,7 +7386,7 @@ var getClassOptions = (data) => {
|
|
|
7386
7386
|
name: cls.name
|
|
7387
7387
|
}));
|
|
7388
7388
|
};
|
|
7389
|
-
var
|
|
7389
|
+
var createRecommendedClassFiltersConfig = (userData) => [
|
|
7390
7390
|
{
|
|
7391
7391
|
key: "academic",
|
|
7392
7392
|
label: "DADOS ACAD\xCAMICOS",
|
|
@@ -7461,12 +7461,12 @@ var createGoalFiltersConfig = (userData) => [
|
|
|
7461
7461
|
key: "status",
|
|
7462
7462
|
label: "Status",
|
|
7463
7463
|
selectedIds: [],
|
|
7464
|
-
itens:
|
|
7464
|
+
itens: RECOMMENDED_CLASS_FILTER_STATUS_OPTIONS
|
|
7465
7465
|
}
|
|
7466
7466
|
]
|
|
7467
7467
|
}
|
|
7468
7468
|
];
|
|
7469
|
-
var createTableColumns = (mapSubjectNameToEnum,
|
|
7469
|
+
var createTableColumns = (mapSubjectNameToEnum, onDeleteRecommendedClass, onEditRecommendedClass) => [
|
|
7470
7470
|
{
|
|
7471
7471
|
key: "startDate",
|
|
7472
7472
|
label: "In\xEDcio",
|
|
@@ -7547,7 +7547,9 @@ var createTableColumns = (mapSubjectNameToEnum, onDeleteGoal, onEditGoal) => [
|
|
|
7547
7547
|
Badge_default,
|
|
7548
7548
|
{
|
|
7549
7549
|
variant: "solid",
|
|
7550
|
-
action:
|
|
7550
|
+
action: getRecommendedClassStatusBadgeAction(
|
|
7551
|
+
status
|
|
7552
|
+
),
|
|
7551
7553
|
size: "small",
|
|
7552
7554
|
children: status
|
|
7553
7555
|
}
|
|
@@ -7578,11 +7580,11 @@ var createTableColumns = (mapSubjectNameToEnum, onDeleteGoal, onEditGoal) => [
|
|
|
7578
7580
|
render: (_value, row) => {
|
|
7579
7581
|
const handleDelete = (e) => {
|
|
7580
7582
|
e.stopPropagation();
|
|
7581
|
-
|
|
7583
|
+
onDeleteRecommendedClass?.(row.id);
|
|
7582
7584
|
};
|
|
7583
7585
|
const handleEdit = (e) => {
|
|
7584
7586
|
e.stopPropagation();
|
|
7585
|
-
|
|
7587
|
+
onEditRecommendedClass?.(row.id);
|
|
7586
7588
|
};
|
|
7587
7589
|
return /* @__PURE__ */ jsxs28("div", { className: "flex justify-center gap-2", children: [
|
|
7588
7590
|
/* @__PURE__ */ jsx42(
|
|
@@ -7615,11 +7617,11 @@ var createTableColumns = (mapSubjectNameToEnum, onDeleteGoal, onEditGoal) => [
|
|
|
7615
7617
|
}
|
|
7616
7618
|
];
|
|
7617
7619
|
var RecommendedLessonsHistory = ({
|
|
7618
|
-
|
|
7620
|
+
fetchRecommendedClassHistory,
|
|
7619
7621
|
onCreateLesson,
|
|
7620
7622
|
onRowClick,
|
|
7621
|
-
|
|
7622
|
-
|
|
7623
|
+
onDeleteRecommendedClass,
|
|
7624
|
+
onEditRecommendedClass,
|
|
7623
7625
|
emptyStateImage,
|
|
7624
7626
|
noSearchImage,
|
|
7625
7627
|
mapSubjectNameToEnum,
|
|
@@ -7627,14 +7629,14 @@ var RecommendedLessonsHistory = ({
|
|
|
7627
7629
|
title = "Hist\xF3rico de aulas recomendadas",
|
|
7628
7630
|
createButtonText = "Criar aula",
|
|
7629
7631
|
searchPlaceholder = "Buscar aula",
|
|
7630
|
-
|
|
7631
|
-
|
|
7632
|
+
fetchRecommendedClassModels,
|
|
7633
|
+
deleteRecommendedClassModel,
|
|
7632
7634
|
onCreateModel,
|
|
7633
7635
|
onSendLesson,
|
|
7634
7636
|
onEditModel,
|
|
7635
7637
|
subjectsMap,
|
|
7636
|
-
|
|
7637
|
-
|
|
7638
|
+
fetchRecommendedClassDrafts,
|
|
7639
|
+
deleteRecommendedClassDraft,
|
|
7638
7640
|
onSendDraft,
|
|
7639
7641
|
onEditDraft,
|
|
7640
7642
|
defaultTab,
|
|
@@ -7656,35 +7658,39 @@ var RecommendedLessonsHistory = ({
|
|
|
7656
7658
|
},
|
|
7657
7659
|
[onTabChange]
|
|
7658
7660
|
);
|
|
7659
|
-
const
|
|
7660
|
-
|
|
7661
|
-
const
|
|
7661
|
+
const fetchRecommendedClassHistoryRef = useRef8(fetchRecommendedClassHistory);
|
|
7662
|
+
fetchRecommendedClassHistoryRef.current = fetchRecommendedClassHistory;
|
|
7663
|
+
const useRecommendedClassHistory = useMemo7(
|
|
7662
7664
|
() => createUseRecommendedLessonsHistory(
|
|
7663
|
-
(filters) =>
|
|
7665
|
+
(filters) => fetchRecommendedClassHistoryRef.current(filters)
|
|
7664
7666
|
),
|
|
7665
7667
|
[]
|
|
7666
7668
|
);
|
|
7667
7669
|
const {
|
|
7668
|
-
|
|
7670
|
+
recommendedClass,
|
|
7669
7671
|
loading,
|
|
7670
7672
|
error,
|
|
7671
7673
|
pagination,
|
|
7672
|
-
|
|
7673
|
-
} =
|
|
7674
|
+
fetchRecommendedClass
|
|
7675
|
+
} = useRecommendedClassHistory();
|
|
7674
7676
|
const initialFilterConfigs = useMemo7(
|
|
7675
|
-
() =>
|
|
7677
|
+
() => createRecommendedClassFiltersConfig(userFilterData),
|
|
7676
7678
|
[userFilterData]
|
|
7677
7679
|
);
|
|
7678
7680
|
const tableColumns = useMemo7(
|
|
7679
|
-
() => createTableColumns(
|
|
7680
|
-
|
|
7681
|
+
() => createTableColumns(
|
|
7682
|
+
mapSubjectNameToEnum,
|
|
7683
|
+
onDeleteRecommendedClass,
|
|
7684
|
+
onEditRecommendedClass
|
|
7685
|
+
),
|
|
7686
|
+
[mapSubjectNameToEnum, onDeleteRecommendedClass, onEditRecommendedClass]
|
|
7681
7687
|
);
|
|
7682
7688
|
const handleParamsChange = useCallback7(
|
|
7683
7689
|
(params) => {
|
|
7684
7690
|
const filters = buildFiltersFromParams(params);
|
|
7685
|
-
|
|
7691
|
+
fetchRecommendedClass(filters);
|
|
7686
7692
|
},
|
|
7687
|
-
[
|
|
7693
|
+
[fetchRecommendedClass]
|
|
7688
7694
|
);
|
|
7689
7695
|
return /* @__PURE__ */ jsxs28(
|
|
7690
7696
|
"div",
|
|
@@ -7758,7 +7764,7 @@ var RecommendedLessonsHistory = ({
|
|
|
7758
7764
|
activeTab === "history" /* HISTORY */ && /* @__PURE__ */ jsx42(Fragment9, { children: error ? /* @__PURE__ */ jsx42("div", { className: "flex items-center justify-center bg-background rounded-xl w-full min-h-[705px]", children: /* @__PURE__ */ jsx42(Text_default, { size: "lg", color: "text-error-500", children: error }) }) : /* @__PURE__ */ jsx42("div", { className: "w-full", children: /* @__PURE__ */ jsx42(
|
|
7759
7765
|
TableProvider,
|
|
7760
7766
|
{
|
|
7761
|
-
data:
|
|
7767
|
+
data: recommendedClass,
|
|
7762
7768
|
headers: tableColumns,
|
|
7763
7769
|
loading,
|
|
7764
7770
|
variant: "borderless",
|
|
@@ -7825,11 +7831,11 @@ var RecommendedLessonsHistory = ({
|
|
|
7825
7831
|
}
|
|
7826
7832
|
}
|
|
7827
7833
|
) }) }),
|
|
7828
|
-
activeTab === "drafts" /* DRAFTS */ &&
|
|
7829
|
-
|
|
7834
|
+
activeTab === "drafts" /* DRAFTS */ && fetchRecommendedClassDrafts && deleteRecommendedClassDraft && onCreateLesson && /* @__PURE__ */ jsx42(
|
|
7835
|
+
RecommendedClassDraftsTab,
|
|
7830
7836
|
{
|
|
7831
|
-
|
|
7832
|
-
|
|
7837
|
+
fetchRecommendedClassDrafts,
|
|
7838
|
+
deleteRecommendedClassDraft,
|
|
7833
7839
|
onCreateDraft: onCreateLesson,
|
|
7834
7840
|
onSendDraft,
|
|
7835
7841
|
onEditDraft,
|
|
@@ -7840,11 +7846,11 @@ var RecommendedLessonsHistory = ({
|
|
|
7840
7846
|
subjectsMap
|
|
7841
7847
|
}
|
|
7842
7848
|
),
|
|
7843
|
-
activeTab === "models" /* MODELS */ &&
|
|
7844
|
-
|
|
7849
|
+
activeTab === "models" /* MODELS */ && fetchRecommendedClassModels && deleteRecommendedClassModel && onCreateModel && /* @__PURE__ */ jsx42(
|
|
7850
|
+
RecommendedClassModelsTab,
|
|
7845
7851
|
{
|
|
7846
|
-
|
|
7847
|
-
|
|
7852
|
+
fetchRecommendedClassModels,
|
|
7853
|
+
deleteRecommendedClassModel,
|
|
7848
7854
|
onCreateModel,
|
|
7849
7855
|
onSendLesson,
|
|
7850
7856
|
onEditModel,
|
|
@@ -7863,7 +7869,7 @@ var RecommendedLessonsHistory = ({
|
|
|
7863
7869
|
};
|
|
7864
7870
|
var RecommendedLessonsHistory_default = RecommendedLessonsHistory;
|
|
7865
7871
|
export {
|
|
7866
|
-
|
|
7872
|
+
RecommendedClassPageTab,
|
|
7867
7873
|
RecommendedLessonsHistory,
|
|
7868
7874
|
RecommendedLessonsHistory_default as default
|
|
7869
7875
|
};
|