mario-teacher-student-client 2.1.102-admin → 2.1.103-admin
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/index.js
CHANGED
|
@@ -688,7 +688,7 @@ var STEP_PROFILE = {
|
|
|
688
688
|
|
|
689
689
|
var prioritizedRoles = ["Admin", "Teacher", "Assistant", "EduTeacher", "Student", "Parent"];
|
|
690
690
|
var handleUserRole = function handleUserRole(userRoles) {
|
|
691
|
-
if (userRoles.includes("Teacher") && userRoles.includes("Assistant")) {
|
|
691
|
+
if (userRoles !== null && userRoles !== void 0 && userRoles.includes("Teacher") && userRoles !== null && userRoles !== void 0 && userRoles.includes("Assistant")) {
|
|
692
692
|
var roles = userRoles.filter(function (r) {
|
|
693
693
|
return r !== "Teacher" && r !== "Assistant";
|
|
694
694
|
});
|
|
@@ -714,7 +714,7 @@ var defaultFontLarge = 20;
|
|
|
714
714
|
var LOGO = "/images/logo.svg";
|
|
715
715
|
|
|
716
716
|
var HeaderSideBar = function HeaderSideBar(_ref) {
|
|
717
|
-
var _currentUrl$split, _clsx;
|
|
717
|
+
var _user$roles, _currentUrl$split, _handleUserRole, _clsx;
|
|
718
718
|
|
|
719
719
|
var children = _ref.children,
|
|
720
720
|
navigations = _ref.navigations,
|
|
@@ -732,6 +732,7 @@ var HeaderSideBar = function HeaderSideBar(_ref) {
|
|
|
732
732
|
|
|
733
733
|
return (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
|
|
734
734
|
});
|
|
735
|
+
var isAdmin = user === null || user === void 0 ? void 0 : (_user$roles = user.roles) === null || _user$roles === void 0 ? void 0 : _user$roles.includes("Admin");
|
|
735
736
|
var userId = user === null || user === void 0 ? void 0 : user.id;
|
|
736
737
|
var defaultFont = reactRedux.useSelector(function (state) {
|
|
737
738
|
var _state$common2;
|
|
@@ -1025,7 +1026,7 @@ var HeaderSideBar = function HeaderSideBar(_ref) {
|
|
|
1025
1026
|
return React__default.createElement("div", null, React__default.createElement(AppBar, {
|
|
1026
1027
|
position: "fixed",
|
|
1027
1028
|
className: classes.header
|
|
1028
|
-
}, React__default.createElement(Toolbar, null, !isParentPage && React__default.createElement(IconButton, {
|
|
1029
|
+
}, React__default.createElement(Toolbar, null, !isParentPage && !isAdmin && React__default.createElement(IconButton, {
|
|
1029
1030
|
edge: "start",
|
|
1030
1031
|
className: classes.menuButton,
|
|
1031
1032
|
color: "inherit",
|
|
@@ -1062,7 +1063,7 @@ var HeaderSideBar = function HeaderSideBar(_ref) {
|
|
|
1062
1063
|
"aria-label": "show 17 new notifications",
|
|
1063
1064
|
color: "inherit",
|
|
1064
1065
|
onClick: handleMenu
|
|
1065
|
-
}, React__default.createElement(icons.AccountCircle, null)), React__default.createElement(IconButton, {
|
|
1066
|
+
}, React__default.createElement(icons.AccountCircle, null)), !isAdmin && React__default.createElement(IconButton, {
|
|
1066
1067
|
edge: "end",
|
|
1067
1068
|
"aria-label": "account of current user",
|
|
1068
1069
|
"aria-haspopup": "true",
|
|
@@ -1124,14 +1125,14 @@ var HeaderSideBar = function HeaderSideBar(_ref) {
|
|
|
1124
1125
|
onClose: handleClose
|
|
1125
1126
|
}, !!isTeacher && React__default.createElement(core.MenuItem, {
|
|
1126
1127
|
onClick: openProfile
|
|
1127
|
-
}, "Profile"), handleUserRole(user === null || user === void 0 ? void 0 : user.userRoles).length > 1 && React__default.createElement(core.MenuItem, {
|
|
1128
|
+
}, "Profile"), ((_handleUserRole = handleUserRole((user === null || user === void 0 ? void 0 : user.userRoles) || [])) === null || _handleUserRole === void 0 ? void 0 : _handleUserRole.length) > 1 && React__default.createElement(core.MenuItem, {
|
|
1128
1129
|
onClick: function onClick() {
|
|
1129
1130
|
onToggleModel === null || onToggleModel === void 0 ? void 0 : onToggleModel();
|
|
1130
1131
|
handleClose();
|
|
1131
1132
|
}
|
|
1132
1133
|
}, "Role change"), React__default.createElement(core.MenuItem, {
|
|
1133
1134
|
onClick: signOut
|
|
1134
|
-
}, "Logout")))), screenWidth > 600 && isOpenSideBar ? React__default.createElement("div", {
|
|
1135
|
+
}, "Logout")))), !isAdmin && React__default.createElement(React__default.Fragment, null, screenWidth > 600 && isOpenSideBar ? React__default.createElement("div", {
|
|
1135
1136
|
className: classes.positionBox
|
|
1136
1137
|
}, React__default.createElement(core.Drawer, {
|
|
1137
1138
|
id: "menu-sidebar",
|
|
@@ -1227,8 +1228,8 @@ var HeaderSideBar = function HeaderSideBar(_ref) {
|
|
|
1227
1228
|
})) === null || _ICON_NAV$find2 === void 0 ? void 0 : _ICON_NAV$find2.icon), React__default.createElement(core.ListItemText, {
|
|
1228
1229
|
primary: navigation === null || navigation === void 0 ? void 0 : navigation.name
|
|
1229
1230
|
}));
|
|
1230
|
-
}))), React__default.createElement("main", {
|
|
1231
|
-
className: clsx(classes.content, (_clsx = {}, _clsx[classes.contentShift] =
|
|
1231
|
+
})))), React__default.createElement("main", {
|
|
1232
|
+
className: clsx(classes.content, (_clsx = {}, _clsx[classes.contentShift] = isAdmin ? false : isOpenSideBar, _clsx))
|
|
1232
1233
|
}, children));
|
|
1233
1234
|
};
|
|
1234
1235
|
var useStyles = styles$O.makeStyles(function (theme) {
|
|
@@ -1593,6 +1594,8 @@ var MainLayout = function MainLayout(_ref) {
|
|
|
1593
1594
|
try {
|
|
1594
1595
|
var _temp6 = _catch(function () {
|
|
1595
1596
|
return Promise.resolve(marioCore.getInfo()).then(function (info) {
|
|
1597
|
+
var _roles, _roles2, _roles3, _roles4, _roles5, _roles6;
|
|
1598
|
+
|
|
1596
1599
|
function _temp4() {
|
|
1597
1600
|
dispatch(marioCore.setUser(_extends({}, user, userData, {
|
|
1598
1601
|
email: userData.email,
|
|
@@ -1607,9 +1610,6 @@ var MainLayout = function MainLayout(_ref) {
|
|
|
1607
1610
|
|
|
1608
1611
|
var roles = [];
|
|
1609
1612
|
var userData = info.data;
|
|
1610
|
-
console.log({
|
|
1611
|
-
userData: userData
|
|
1612
|
-
});
|
|
1613
1613
|
|
|
1614
1614
|
for (var _iterator = _createForOfIteratorHelperLoose(prioritizedRoles), _step; !(_step = _iterator()).done;) {
|
|
1615
1615
|
var _userData$roles;
|
|
@@ -1619,7 +1619,7 @@ var MainLayout = function MainLayout(_ref) {
|
|
|
1619
1619
|
if (userData !== null && userData !== void 0 && (_userData$roles = userData.roles) !== null && _userData$roles !== void 0 && _userData$roles.includes(r)) {
|
|
1620
1620
|
var _userData$roles2;
|
|
1621
1621
|
|
|
1622
|
-
if (r
|
|
1622
|
+
if (r === "Teacher" && userData !== null && userData !== void 0 && (_userData$roles2 = userData.roles) !== null && _userData$roles2 !== void 0 && _userData$roles2.includes("Assistant")) {
|
|
1623
1623
|
roles = ["Teacher", "Assistant"];
|
|
1624
1624
|
} else {
|
|
1625
1625
|
roles = [r];
|
|
@@ -1629,10 +1629,10 @@ var MainLayout = function MainLayout(_ref) {
|
|
|
1629
1629
|
}
|
|
1630
1630
|
}
|
|
1631
1631
|
|
|
1632
|
-
var isTeacher = roles.includes("Teacher") || roles.includes("Assistant");
|
|
1632
|
+
var isTeacher = ((_roles = roles) === null || _roles === void 0 ? void 0 : _roles.includes("Teacher")) || ((_roles2 = roles) === null || _roles2 === void 0 ? void 0 : _roles2.includes("Assistant"));
|
|
1633
1633
|
var isStudent = roles.includes("Student");
|
|
1634
|
-
var isAssistant = !roles.includes("Teacher") && roles.includes("Assistant");
|
|
1635
|
-
var isTeacherAssistant = roles.includes("Teacher") && roles.includes("Assistant");
|
|
1634
|
+
var isAssistant = !((_roles3 = roles) !== null && _roles3 !== void 0 && _roles3.includes("Teacher")) && ((_roles4 = roles) === null || _roles4 === void 0 ? void 0 : _roles4.includes("Assistant"));
|
|
1635
|
+
var isTeacherAssistant = ((_roles5 = roles) === null || _roles5 === void 0 ? void 0 : _roles5.includes("Teacher")) && ((_roles6 = roles) === null || _roles6 === void 0 ? void 0 : _roles6.includes("Assistant"));
|
|
1636
1636
|
|
|
1637
1637
|
var _temp3 = function () {
|
|
1638
1638
|
if (isTeacher || isStudent || isTeacherAssistant) {
|
|
@@ -17344,7 +17344,7 @@ var TabPanel$3 = function TabPanel(props) {
|
|
|
17344
17344
|
};
|
|
17345
17345
|
|
|
17346
17346
|
var StudentTabs = function StudentTabs(props) {
|
|
17347
|
-
var _useSelector, _useSelector$roles;
|
|
17347
|
+
var _user$roles, _useSelector, _useSelector$roles;
|
|
17348
17348
|
|
|
17349
17349
|
var history = reactRouterDom.useHistory();
|
|
17350
17350
|
var location = reactRouterDom.useLocation();
|
|
@@ -17365,6 +17365,7 @@ var StudentTabs = function StudentTabs(props) {
|
|
|
17365
17365
|
|
|
17366
17366
|
return (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
|
|
17367
17367
|
});
|
|
17368
|
+
var isAdmin = user === null || user === void 0 ? void 0 : (_user$roles = user.roles) === null || _user$roles === void 0 ? void 0 : _user$roles.includes("Admin");
|
|
17368
17369
|
var dispatch = reactRedux.useDispatch();
|
|
17369
17370
|
var useStyles = styles$O.makeStyles(function (theme) {
|
|
17370
17371
|
var _divDiv, _theme$breakpoints$do, _tabLabel;
|
|
@@ -17472,7 +17473,7 @@ var StudentTabs = function StudentTabs(props) {
|
|
|
17472
17473
|
className: classes.header
|
|
17473
17474
|
}, React__default.createElement(core.Typography, {
|
|
17474
17475
|
className: classes.title
|
|
17475
|
-
}, React__default.createElement(BiArrowBack, {
|
|
17476
|
+
}, !isAdmin && React__default.createElement(BiArrowBack, {
|
|
17476
17477
|
className: classes.iconArr,
|
|
17477
17478
|
onClick: function onClick() {
|
|
17478
17479
|
return goBack();
|
|
@@ -17493,7 +17494,7 @@ var StudentTabs = function StudentTabs(props) {
|
|
|
17493
17494
|
variant: "scrollable",
|
|
17494
17495
|
scrollButtons: "on"
|
|
17495
17496
|
}, tabs.map(function (tab, index) {
|
|
17496
|
-
return React__default.createElement(Tab, {
|
|
17497
|
+
return !isAdmin ? React__default.createElement(React__default.Fragment, null, React__default.createElement(Tab, {
|
|
17497
17498
|
key: index,
|
|
17498
17499
|
label: tab.title,
|
|
17499
17500
|
onClick: function onClick() {
|
|
@@ -17517,7 +17518,31 @@ var StudentTabs = function StudentTabs(props) {
|
|
|
17517
17518
|
toggle(tab.path + ("" + studentId));
|
|
17518
17519
|
},
|
|
17519
17520
|
className: classes.tabLabel + " " + (activeTab === index ? classes.tabLabelActive : "")
|
|
17520
|
-
})
|
|
17521
|
+
})) : React__default.createElement(React__default.Fragment, null, isAdmin == tab.showForAdmin && React__default.createElement(Tab, {
|
|
17522
|
+
key: index,
|
|
17523
|
+
label: tab.title,
|
|
17524
|
+
onClick: function onClick() {
|
|
17525
|
+
if (EVENT_LOG_TAB.some(function (i) {
|
|
17526
|
+
return tab.title.includes(i.tabName);
|
|
17527
|
+
})) {
|
|
17528
|
+
var _EVENT_LOG_TAB$find2;
|
|
17529
|
+
|
|
17530
|
+
dispatch(marioCore.initAmplitude({
|
|
17531
|
+
name: user.email,
|
|
17532
|
+
event: "plp: view page",
|
|
17533
|
+
student_id: studentInfo === null || studentInfo === void 0 ? void 0 : studentInfo.email,
|
|
17534
|
+
page: EVENT_LOG_TAB !== null && EVENT_LOG_TAB !== void 0 && EVENT_LOG_TAB.find(function (i) {
|
|
17535
|
+
return tab.title.includes(i.tabName);
|
|
17536
|
+
}) ? (_EVENT_LOG_TAB$find2 = EVENT_LOG_TAB.find(function (i) {
|
|
17537
|
+
return tab.title.includes(i.tabName);
|
|
17538
|
+
})) === null || _EVENT_LOG_TAB$find2 === void 0 ? void 0 : _EVENT_LOG_TAB$find2.pageName : ""
|
|
17539
|
+
}));
|
|
17540
|
+
}
|
|
17541
|
+
|
|
17542
|
+
toggle(tab.path + ("" + studentId));
|
|
17543
|
+
},
|
|
17544
|
+
className: classes.tabLabel + " " + (activeTab === index ? classes.tabLabelActive : "")
|
|
17545
|
+
}));
|
|
17521
17546
|
}))), tabs.map(function (tab, index) {
|
|
17522
17547
|
return React__default.createElement(TabPanel$3, {
|
|
17523
17548
|
value: activeTab,
|
|
@@ -17716,7 +17741,8 @@ var handleShowStatus = function handleShowStatus(status) {
|
|
|
17716
17741
|
|
|
17717
17742
|
var GoalProgress = function GoalProgress(props) {
|
|
17718
17743
|
var studentId = props.studentId,
|
|
17719
|
-
classFontSize = props.classFontSize
|
|
17744
|
+
classFontSize = props.classFontSize,
|
|
17745
|
+
isAdmin = props.isAdmin;
|
|
17720
17746
|
var history = reactRouterDom.useHistory();
|
|
17721
17747
|
|
|
17722
17748
|
var _useGoalProgress = useGoalProgress(),
|
|
@@ -17751,7 +17777,7 @@ var GoalProgress = function GoalProgress(props) {
|
|
|
17751
17777
|
className: "" + styles$8["box-header"]
|
|
17752
17778
|
}, React__default.createElement(core.Typography, {
|
|
17753
17779
|
className: "" + styles$8["box-header-title"]
|
|
17754
|
-
}, "Goal Process"), React__default.createElement(core.Grid, {
|
|
17780
|
+
}, "Goal Process"), !isAdmin && React__default.createElement(core.Grid, {
|
|
17755
17781
|
onClick: function onClick() {
|
|
17756
17782
|
return handleClickOpen();
|
|
17757
17783
|
},
|
|
@@ -18010,7 +18036,7 @@ var TabPanel$4 = function TabPanel(props) {
|
|
|
18010
18036
|
};
|
|
18011
18037
|
|
|
18012
18038
|
var OverviewLeft = function OverviewLeft(props) {
|
|
18013
|
-
var _useSelector, _useSelector$roles, _partnerData$meetingS, _partnerData$meetingS2, _partnerData$classSch, _partnerData$classSch2, _partnerData$meetingS3, _partnerData$meetingS4, _partnerData$classSch3, _partnerData$classSch4;
|
|
18039
|
+
var _useSelector, _useSelector$roles, _useSelector2, _useSelector2$roles, _partnerData$meetingS, _partnerData$meetingS2, _partnerData$classSch, _partnerData$classSch2, _partnerData$meetingS3, _partnerData$meetingS4, _partnerData$classSch3, _partnerData$classSch4;
|
|
18014
18040
|
|
|
18015
18041
|
var history = reactRouterDom.useHistory();
|
|
18016
18042
|
var partnerData = props.partnerData,
|
|
@@ -18031,6 +18057,11 @@ var OverviewLeft = function OverviewLeft(props) {
|
|
|
18031
18057
|
|
|
18032
18058
|
return (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
|
|
18033
18059
|
})) === null || _useSelector === void 0 ? void 0 : (_useSelector$roles = _useSelector.roles) === null || _useSelector$roles === void 0 ? void 0 : _useSelector$roles.includes("EduTeacher");
|
|
18060
|
+
var isAdmin = (_useSelector2 = reactRedux.useSelector(function (state) {
|
|
18061
|
+
var _state$common2;
|
|
18062
|
+
|
|
18063
|
+
return (_state$common2 = state.common) === null || _state$common2 === void 0 ? void 0 : _state$common2.user;
|
|
18064
|
+
})) === null || _useSelector2 === void 0 ? void 0 : (_useSelector2$roles = _useSelector2.roles) === null || _useSelector2$roles === void 0 ? void 0 : _useSelector2$roles.includes("Admin");
|
|
18034
18065
|
|
|
18035
18066
|
var openEdit = function openEdit() {
|
|
18036
18067
|
var url = "/student-detail/profile/" + studentId + "/update";
|
|
@@ -18082,7 +18113,7 @@ var OverviewLeft = function OverviewLeft(props) {
|
|
|
18082
18113
|
paddingRight: "15px",
|
|
18083
18114
|
textAlign: "right"
|
|
18084
18115
|
}
|
|
18085
|
-
}, !isEduTeacher && React__default.createElement(core.Button, {
|
|
18116
|
+
}, !isEduTeacher && !isAdmin && React__default.createElement(core.Button, {
|
|
18086
18117
|
variant: "contained",
|
|
18087
18118
|
color: "primary",
|
|
18088
18119
|
style: {
|
|
@@ -18230,7 +18261,8 @@ var OverviewLeft = function OverviewLeft(props) {
|
|
|
18230
18261
|
}
|
|
18231
18262
|
}, "No Schedule"))))))))), React__default.createElement(GoalProgress, {
|
|
18232
18263
|
studentId: studentId,
|
|
18233
|
-
classFontSize: classFontSize
|
|
18264
|
+
classFontSize: classFontSize,
|
|
18265
|
+
isAdmin: isAdmin
|
|
18234
18266
|
}), !isEduTeacher && React__default.createElement(MyNote, {
|
|
18235
18267
|
studentId: studentId,
|
|
18236
18268
|
classFontSize: classFontSize
|
|
@@ -18416,7 +18448,8 @@ var OverviewLeft = function OverviewLeft(props) {
|
|
|
18416
18448
|
}
|
|
18417
18449
|
}, "No Schedule"))))))))), React__default.createElement(GoalProgress, {
|
|
18418
18450
|
studentId: studentId,
|
|
18419
|
-
classFontSize: classFontSize
|
|
18451
|
+
classFontSize: classFontSize,
|
|
18452
|
+
isAdmin: isAdmin
|
|
18420
18453
|
}), !isEduTeacher && React__default.createElement(MyNote, {
|
|
18421
18454
|
studentId: studentId,
|
|
18422
18455
|
classFontSize: classFontSize
|
|
@@ -19803,6 +19836,8 @@ var defaultFontSmall$a = 12;
|
|
|
19803
19836
|
var defaultFontLarge$a = 20;
|
|
19804
19837
|
|
|
19805
19838
|
var useOverview = function useOverview(studentId) {
|
|
19839
|
+
var _useSelector, _useSelector$roles;
|
|
19840
|
+
|
|
19806
19841
|
var dispatch = reactRedux.useDispatch();
|
|
19807
19842
|
|
|
19808
19843
|
var _useRedinessToLearn = useRedinessToLearn(studentId),
|
|
@@ -19897,6 +19932,11 @@ var useOverview = function useOverview(studentId) {
|
|
|
19897
19932
|
|
|
19898
19933
|
return (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.defaultFontSize;
|
|
19899
19934
|
});
|
|
19935
|
+
var isAdmin = (_useSelector = reactRedux.useSelector(function (state) {
|
|
19936
|
+
var _state$common2;
|
|
19937
|
+
|
|
19938
|
+
return (_state$common2 = state.common) === null || _state$common2 === void 0 ? void 0 : _state$common2.user;
|
|
19939
|
+
})) === null || _useSelector === void 0 ? void 0 : (_useSelector$roles = _useSelector.roles) === null || _useSelector$roles === void 0 ? void 0 : _useSelector$roles.includes("Admin");
|
|
19900
19940
|
var classFontSize = React.useMemo(function () {
|
|
19901
19941
|
if (defaultFont == defaultFontLarge$a) {
|
|
19902
19942
|
return "font-large";
|
|
@@ -20038,6 +20078,7 @@ var useOverview = function useOverview(studentId) {
|
|
|
20038
20078
|
}
|
|
20039
20079
|
}, []);
|
|
20040
20080
|
return {
|
|
20081
|
+
isAdmin: isAdmin,
|
|
20041
20082
|
partnerData: partnerData,
|
|
20042
20083
|
informationDashboard: informationDashboard,
|
|
20043
20084
|
filters: filters,
|
|
@@ -35561,33 +35602,40 @@ var PersonalLearningGoal = function PersonalLearningGoal() {
|
|
|
35561
35602
|
var tabs$2 = [{
|
|
35562
35603
|
path: "/student-detail/overview/",
|
|
35563
35604
|
title: "Overview",
|
|
35564
|
-
component: Overview
|
|
35605
|
+
component: Overview,
|
|
35606
|
+
showForAdmin: true
|
|
35565
35607
|
}, {
|
|
35566
35608
|
path: "/personal-learning-plan/",
|
|
35567
35609
|
title: "PLP",
|
|
35568
|
-
component: PersonalLearningGoal
|
|
35610
|
+
component: PersonalLearningGoal,
|
|
35611
|
+
showForAdmin: false
|
|
35569
35612
|
}, {
|
|
35570
35613
|
path: "/student-detail/one-to-one/",
|
|
35571
35614
|
title: "1-TO-1",
|
|
35572
|
-
component: OneToOne
|
|
35615
|
+
component: OneToOne,
|
|
35616
|
+
showForAdmin: false
|
|
35573
35617
|
}, {
|
|
35574
35618
|
path: "/student-detail/conferences/",
|
|
35575
35619
|
title: "CONFERENCES",
|
|
35576
|
-
component: Conferences
|
|
35620
|
+
component: Conferences,
|
|
35621
|
+
showForAdmin: false
|
|
35577
35622
|
}, {
|
|
35578
35623
|
path: "/student-detail/class-reflections/",
|
|
35579
35624
|
title: "CLASS REFLECTIONS",
|
|
35580
|
-
component: ClassReflection
|
|
35625
|
+
component: ClassReflection,
|
|
35626
|
+
showForAdmin: false
|
|
35581
35627
|
}];
|
|
35582
35628
|
var tabIEP = {
|
|
35583
35629
|
path: "/student-detail/learning-plan/",
|
|
35584
35630
|
title: "IEP",
|
|
35585
|
-
component: LearningPlan
|
|
35631
|
+
component: LearningPlan,
|
|
35632
|
+
showForAdmin: false
|
|
35586
35633
|
};
|
|
35587
35634
|
var tabConversation = {
|
|
35588
35635
|
path: "/student-detail/one-to-one-conversation/",
|
|
35589
35636
|
title: "1-TO-1 Conversation",
|
|
35590
|
-
component: OneToOneConversation
|
|
35637
|
+
component: OneToOneConversation,
|
|
35638
|
+
showForAdmin: false
|
|
35591
35639
|
};
|
|
35592
35640
|
|
|
35593
35641
|
var StudentDetail = function StudentDetail() {
|