mario-education 2.4.3 → 2.4.4-beta

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 (26) hide show
  1. package/dist/MarioFramework.Education/ClientApp/src/containers/Dashboard/components/CustomBarChart.d.ts +3 -0
  2. package/dist/MarioFramework.Education/ClientApp/src/containers/Dashboard/components/CustomLineChart.d.ts +3 -0
  3. package/dist/MarioFramework.Education/ClientApp/src/containers/Dashboard/components/ReadinessToLearn.d.ts +7 -0
  4. package/dist/MarioFramework.Education/ClientApp/src/containers/Dashboard/components/StudentByAge.d.ts +3 -0
  5. package/dist/MarioFramework.Education/ClientApp/src/containers/Dashboard/components/StudentByGender.d.ts +3 -0
  6. package/dist/MarioFramework.Education/ClientApp/src/containers/Dashboard/components/StudentByGrade.d.ts +3 -0
  7. package/dist/MarioFramework.Education/ClientApp/src/containers/Dashboard/components/StudentWithSpecialNeeds.d.ts +3 -0
  8. package/dist/MarioFramework.Education/ClientApp/src/containers/Dashboard/components/TopLearningStrategy.d.ts +3 -0
  9. package/dist/MarioFramework.Education/ClientApp/src/containers/Dashboard/components/TopSkill.d.ts +3 -0
  10. package/dist/MarioFramework.Education/ClientApp/src/containers/Dashboard/components/TotalCard.d.ts +4 -0
  11. package/dist/MarioFramework.Education/ClientApp/src/containers/Dashboard/configs/types.d.ts +13 -0
  12. package/dist/MarioFramework.Education/ClientApp/src/containers/Dashboard/hooks/useDashboard.d.ts +12 -7
  13. package/dist/MarioFramework.Education/ClientApp/src/containers/SwitchAssistant/components/SwitchAssistantModal.d.ts +4 -0
  14. package/dist/MarioFramework.Education/ClientApp/src/containers/SwitchAssistant/hooks/useSwitchAssistant.d.ts +17 -0
  15. package/dist/MarioFramework.Education/ClientApp/src/containers/SwitchAssistant/utils/constants.d.ts +8 -0
  16. package/dist/MarioFramework.Education/ClientApp/src/containers/SwitchAssistant/utils/type.interface.d.ts +36 -0
  17. package/dist/MarioFramework.Education/ClientApp/src/containers/SwitchAssistant/views/SwitchAssistantList.d.ts +3 -0
  18. package/dist/MarioFramework.Education/ClientApp/src/services/dashboardService.d.ts +5 -0
  19. package/dist/MarioFramework.Education/ClientApp/src/services/userService.d.ts +5 -0
  20. package/dist/MarioFramework.Education/ClientApp/src/utils/serviceType.interface.d.ts +8 -0
  21. package/dist/index.css +106 -0
  22. package/dist/index.js +1131 -336
  23. package/dist/index.js.map +1 -1
  24. package/dist/index.modern.js +1134 -339
  25. package/dist/index.modern.js.map +1 -1
  26. package/package.json +2 -2
@@ -1,22 +1,26 @@
1
- import { api, BASE_URL, setAlert, CustomSelector, LinkEditButton, DeleteButtonIcon, EmptyDataAlert, CommonModal, RequiredLabel, ErrorHandler, useFilters, setLoading, setClassList, setModal, QuitPrompt, AddButton, CustomPagination, setConferenceRubricList, SearchBoxContainer, getTextFromHTML, generateRandomString, QuestionCategorySelector, DetailActionButtons, SuggestionCategorySelector, CreatableSelector, setSuggestionList, setStrategyList, UploadFileButton, systemStudentBadge, setBadgeList, getFileUrl, setGoalExampleList, setSubjectList, setLearningSupportCategoryList, apiUpload, utcToLocalTime, DATE_FORMAT, setSemesterList, setBandScoreList, EditButtonIcon, setSchoolBlankDayList, SearchBox, CustomTab, SkillList, QUESTION_TYPES, EMOTIONS, QUESTION_TYPES_OPTIONS, setQuestionList, setQuestionByCategory, setSelectQuestion, setResetQuestionList, setMoveItemQuestion, setEditItemQuesion, DEFAULT_FILTER, setReflectionList, setReflectionResultList, DATE_RESULT, StarRatingSelector, editorConfig, TINY_MCE_API_KEY, QuestionTypeSelector, setAssessmentList, FULL_DATE_RESULT, setFeedbackList, setTutorialScreenList, setQuestionCateList, setAssignmentList, setSessionTemplateList, setSessionTemplateGeneralClassList, setCustomAlertList, systemCertificateUpload, setCertificateList, LICENSE_AGGRID } from 'mario-core';
1
+ import { api, BASE_URL, setAlert, CustomSelector, LinkEditButton, DeleteButtonIcon, EmptyDataAlert, CommonModal, RequiredLabel, ErrorHandler, useFilters, setLoading, setClassList, setModal, QuitPrompt, AddButton, CustomPagination, setConferenceRubricList, SearchBoxContainer, getTextFromHTML, generateRandomString, QuestionCategorySelector, DetailActionButtons, SuggestionCategorySelector, CreatableSelector, setSuggestionList, setStrategyList, UploadFileButton, systemStudentBadge, setBadgeList, getFileUrl, setGoalExampleList, setSubjectList, setLearningSupportCategoryList, apiUpload, utcToLocalTime, DATE_FORMAT, setSemesterList, setBandScoreList, EditButtonIcon, setSchoolBlankDayList, SearchBox, CustomTab, SkillList, QUESTION_TYPES, EMOTIONS, QUESTION_TYPES_OPTIONS, setQuestionList, setQuestionByCategory, setSelectQuestion, setResetQuestionList, setMoveItemQuestion, setEditItemQuesion, DEFAULT_FILTER, setReflectionList, setReflectionResultList, DATE_RESULT, StarRatingSelector, editorConfig, TINY_MCE_API_KEY, QuestionTypeSelector, setAssessmentList, FULL_DATE_RESULT, setFeedbackList, setTutorialScreenList, setQuestionCateList, setAssignmentList, setSessionTemplateList, setSessionTemplateGeneralClassList, setCustomAlertList, systemCertificateUpload, setCertificateList, Loading as Loading$1, LICENSE_AGGRID } from 'mario-core';
2
2
  import { LicenseManager } from '@ag-grid-enterprise/core';
3
3
  import React, { useState, useRef, useCallback, useEffect, forwardRef, useMemo, Fragment, memo } from 'react';
4
4
  import { useDispatch, useSelector } from 'react-redux';
5
- import { Table, Row, Col, Input, Label, Button, CustomInput, Card, CardBody, CardTitle, FormGroup, Alert, Progress } from 'reactstrap';
5
+ import { Table, Row, Col, Input, Label, Button, CustomInput, Card, CardBody, CardTitle, FormGroup, Alert, Progress, UncontrolledCollapse } from 'reactstrap';
6
6
  import { Formik } from 'formik';
7
7
  import { object, string, array, number, boolean } from 'yup';
8
8
  import { useHistory, useParams } from 'react-router-dom';
9
9
  import DatePicker from 'react-datepicker';
10
10
  import { format } from 'date-fns';
11
11
  import toDate from 'date-fns/toDate';
12
- import { AiOutlineSend } from 'react-icons/ai';
12
+ import { AiOutlineSend, AiOutlineArrowUp, AiOutlineArrowDown, AiOutlineFileDone } from 'react-icons/ai';
13
13
  import format$1 from 'date-fns/format';
14
14
  import { AgGridReact } from '@ag-grid-community/react';
15
15
  import { MasterDetailModule } from '@ag-grid-enterprise/master-detail';
16
16
  import { ClientSideRowModelModule } from '@ag-grid-community/client-side-row-model';
17
17
  import { FaCheck, FaTimes, FaRegEdit } from 'react-icons/fa';
18
18
  import { Editor } from '@tinymce/tinymce-react';
19
+ import { FiMoreVertical, FiFilter } from 'react-icons/fi';
19
20
  import ReactApexChart from 'react-apexcharts';
21
+ import { IoMdStopwatch } from 'react-icons/io';
22
+ import { BiMessageRoundedDetail } from 'react-icons/bi';
23
+ import { MdScreenShare } from 'react-icons/md';
20
24
 
21
25
  // A type of promise-like that resolves synchronously and supports only one observer
22
26
 
@@ -8368,6 +8372,353 @@ var SwitchTeacherList = function SwitchTeacherList() {
8368
8372
  }));
8369
8373
  };
8370
8374
 
8375
+ var USER_URL$1 = BASE_URL + "/api/User";
8376
+ var getStudentAssistant = function getStudentAssistant(data) {
8377
+ return api.get(USER_URL$1 + "/studentAssistant/", {
8378
+ params: data
8379
+ });
8380
+ };
8381
+ var getAssistant = function getAssistant() {
8382
+ return api.get(USER_URL$1 + "/assistants");
8383
+ };
8384
+ var changeAssistantOfStudent = function changeAssistantOfStudent(id, assistantUserId) {
8385
+ return api.put(USER_URL$1 + "/change-assistant/" + id, {
8386
+ assistantUserId: assistantUserId
8387
+ });
8388
+ };
8389
+
8390
+ var INITIAL_USER_CHOICE = {
8391
+ id: 0,
8392
+ emailStudent: "",
8393
+ studentName: "",
8394
+ assistantId: "",
8395
+ emailAssistant: "",
8396
+ assistantName: ""
8397
+ };
8398
+
8399
+ var TITLE$d = "Switch assistant list";
8400
+
8401
+ var useSwitchAssistant = function useSwitchAssistant() {
8402
+ var modal = useRef();
8403
+ var dispatch = useDispatch();
8404
+
8405
+ var _useState = useState([]),
8406
+ assistantList = _useState[0],
8407
+ setAssistantList = _useState[1];
8408
+
8409
+ var _useState2 = useState([]),
8410
+ userList = _useState2[0],
8411
+ setUserList = _useState2[1];
8412
+
8413
+ var _useState3 = useState(0),
8414
+ totalItems = _useState3[0],
8415
+ setTotalItems = _useState3[1];
8416
+
8417
+ var _useFilters = useFilters(),
8418
+ filters = _useFilters.filters,
8419
+ changeFilters = _useFilters.changeFilters;
8420
+
8421
+ var _useState4 = useState(INITIAL_USER_CHOICE),
8422
+ userChoiced = _useState4[0],
8423
+ setUserChoiced = _useState4[1];
8424
+
8425
+ var _useState5 = useState(""),
8426
+ assistantChangeId = _useState5[0],
8427
+ setAssistantChangeId = _useState5[1];
8428
+
8429
+ var getStudentAssistantData = useCallback(function () {
8430
+ try {
8431
+ var _temp3 = function _temp3() {
8432
+ dispatch(setLoading(false));
8433
+ };
8434
+
8435
+ dispatch(setLoading(true));
8436
+ console.log(filters);
8437
+
8438
+ var _temp4 = _catch(function () {
8439
+ return Promise.resolve(getStudentAssistant(filters)).then(function (res) {
8440
+ var _res$data = res.data,
8441
+ items = _res$data.items,
8442
+ totalItems = _res$data.totalItems;
8443
+ setUserList(items);
8444
+ setTotalItems(totalItems);
8445
+ });
8446
+ }, function (err) {
8447
+ var _err$response, _err$response$data;
8448
+
8449
+ dispatch(setAlert({
8450
+ type: "danger",
8451
+ message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message
8452
+ }));
8453
+ });
8454
+
8455
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
8456
+ } catch (e) {
8457
+ return Promise.reject(e);
8458
+ }
8459
+ }, [dispatch, filters]);
8460
+
8461
+ var getAllAssistant = function getAllAssistant() {
8462
+ try {
8463
+ var _temp6 = _catch(function () {
8464
+ return Promise.resolve(getAssistant()).then(function (res) {
8465
+ setAssistantList(res.data);
8466
+ });
8467
+ }, function (err) {
8468
+ var _err$response2, _err$response2$data;
8469
+
8470
+ dispatch(setAlert({
8471
+ type: "danger",
8472
+ message: ((_err$response2 = err.response) === null || _err$response2 === void 0 ? void 0 : (_err$response2$data = _err$response2.data) === null || _err$response2$data === void 0 ? void 0 : _err$response2$data.title) || err.message
8473
+ }));
8474
+ });
8475
+
8476
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
8477
+ } catch (e) {
8478
+ return Promise.reject(e);
8479
+ }
8480
+ };
8481
+
8482
+ var options = useMemo(function () {
8483
+ return assistantList.map(function (record) {
8484
+ return {
8485
+ label: record.name + " - " + record.email,
8486
+ value: record.id
8487
+ };
8488
+ });
8489
+ }, [assistantList]);
8490
+
8491
+ var openModal = function openModal() {
8492
+ modal && modal.current && modal.current.toggle();
8493
+ };
8494
+
8495
+ var resetData = function resetData() {
8496
+ setAssistantChangeId("");
8497
+ setUserChoiced(INITIAL_USER_CHOICE);
8498
+ };
8499
+
8500
+ var choiceUser = function choiceUser(userChoiced) {
8501
+ !!userChoiced && setUserChoiced(userChoiced);
8502
+ setAssistantChangeId(userChoiced.assistantId);
8503
+ openModal();
8504
+ };
8505
+
8506
+ var removeData = function removeData(teacherUserId, studentId) {
8507
+ try {
8508
+ dispatch(setModal({
8509
+ isOpen: true,
8510
+ type: "warning",
8511
+ message: "Do you want to change assistant?",
8512
+ onConfirm: function () {
8513
+ try {
8514
+ var _temp9 = function _temp9() {
8515
+ dispatch(setLoading(false));
8516
+ };
8517
+
8518
+ dispatch(setLoading(true));
8519
+
8520
+ var _temp10 = _catch(function () {
8521
+ return Promise.resolve(changeAssistantOfStudent(studentId, teacherUserId)).then(function () {
8522
+ dispatch(setAlert({
8523
+ type: "success",
8524
+ message: "Change assistant successfully"
8525
+ }));
8526
+ openModal();
8527
+ resetData();
8528
+ changeFilters({
8529
+ currentPage: 1
8530
+ });
8531
+ });
8532
+ }, function (err) {
8533
+ var _err$response3, _err$response3$data;
8534
+
8535
+ dispatch(setAlert({
8536
+ type: "danger",
8537
+ message: ((_err$response3 = err.response) === null || _err$response3 === void 0 ? void 0 : (_err$response3$data = _err$response3.data) === null || _err$response3$data === void 0 ? void 0 : _err$response3$data.title) || err.message
8538
+ }));
8539
+ });
8540
+
8541
+ return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(_temp9) : _temp9(_temp10));
8542
+ } catch (e) {
8543
+ return Promise.reject(e);
8544
+ }
8545
+ }
8546
+ }));
8547
+ return Promise.resolve();
8548
+ } catch (e) {
8549
+ return Promise.reject(e);
8550
+ }
8551
+ };
8552
+
8553
+ useEffect(function () {
8554
+ document.title = TITLE$d;
8555
+ }, []);
8556
+ useEffect(function () {
8557
+ getAllAssistant();
8558
+ }, [modal]);
8559
+ useEffect(function () {
8560
+ getStudentAssistantData();
8561
+ }, [filters]);
8562
+ return {
8563
+ userList: userList,
8564
+ totalItems: totalItems,
8565
+ filters: filters,
8566
+ changeFilters: changeFilters,
8567
+ modal: modal,
8568
+ userChoiced: userChoiced,
8569
+ options: options,
8570
+ setAssistantChangeId: setAssistantChangeId,
8571
+ assistantChangeId: assistantChangeId,
8572
+ removeData: removeData,
8573
+ resetData: resetData,
8574
+ choiceUser: choiceUser
8575
+ };
8576
+ };
8577
+
8578
+ var SwitchAssistantModal = function SwitchAssistantModal(_ref, ref) {
8579
+ var header = _ref.header,
8580
+ removeData = _ref.removeData,
8581
+ resetData = _ref.resetData,
8582
+ userChoiced = _ref.userChoiced,
8583
+ options = _ref.options,
8584
+ assistantChangeId = _ref.assistantChangeId,
8585
+ setAssistantChangeId = _ref.setAssistantChangeId;
8586
+ var valueDefault = options === null || options === void 0 ? void 0 : options.find(function (item) {
8587
+ return item.value == assistantChangeId;
8588
+ });
8589
+ return React.createElement(CommonModal, {
8590
+ header: header,
8591
+ ref: ref,
8592
+ confirmText: "Change Save",
8593
+ onConfirm: function onConfirm() {
8594
+ return removeData(assistantChangeId, userChoiced.id);
8595
+ },
8596
+ onCancel: function onCancel() {
8597
+ resetData();
8598
+ }
8599
+ }, React.createElement(Row, null, React.createElement(Col, {
8600
+ md: 12,
8601
+ className: "mb-2"
8602
+ }, React.createElement("p", {
8603
+ className: "font-weight-bold"
8604
+ }, "Student Name"), React.createElement("p", null, userChoiced.studentName, " "), React.createElement("p", {
8605
+ className: "font-weight-bold"
8606
+ }, "Student Email"), React.createElement("p", null, userChoiced.emailStudent), React.createElement("p", {
8607
+ className: "font-weight-bold"
8608
+ }, "Current Assistant Name"), React.createElement("p", null, userChoiced.assistantName), React.createElement("p", {
8609
+ className: "font-weight-bold"
8610
+ }, "Current Assistant Email"), React.createElement("p", null, userChoiced.emailAssistant), !!userChoiced && React.createElement(CustomSelector, {
8611
+ options: options,
8612
+ value: valueDefault,
8613
+ placeholder: "Select Assistant change",
8614
+ onChange: function onChange(e) {
8615
+ return setAssistantChangeId(e.value);
8616
+ }
8617
+ }))));
8618
+ };
8619
+
8620
+ var SwitchAssistantModal$1 = forwardRef(SwitchAssistantModal);
8621
+
8622
+ var header$5 = "List Students";
8623
+
8624
+ var SwitchAssistantList = function SwitchAssistantList() {
8625
+ var _useSwitchTeacher = useSwitchAssistant(),
8626
+ userList = _useSwitchTeacher.userList,
8627
+ totalItems = _useSwitchTeacher.totalItems,
8628
+ filters = _useSwitchTeacher.filters,
8629
+ changeFilters = _useSwitchTeacher.changeFilters,
8630
+ modal = _useSwitchTeacher.modal,
8631
+ userChoiced = _useSwitchTeacher.userChoiced,
8632
+ options = _useSwitchTeacher.options,
8633
+ setAssistantChangeId = _useSwitchTeacher.setAssistantChangeId,
8634
+ assistantChangeId = _useSwitchTeacher.assistantChangeId,
8635
+ removeData = _useSwitchTeacher.removeData,
8636
+ resetData = _useSwitchTeacher.resetData,
8637
+ choiceUser = _useSwitchTeacher.choiceUser;
8638
+
8639
+ return React.createElement("div", {
8640
+ className: "fadeIn animated"
8641
+ }, React.createElement("h5", {
8642
+ className: "mt-4 mb-2"
8643
+ }, header$5), React.createElement(Row, {
8644
+ className: "my-2"
8645
+ }, React.createElement(Col, {
8646
+ md: 8
8647
+ }, React.createElement(SearchBox, {
8648
+ initValue: filters.searchString,
8649
+ onSearch: function onSearch(searchString) {
8650
+ return changeFilters({
8651
+ searchString: searchString
8652
+ });
8653
+ },
8654
+ placeholder: "Type something to search reflection result"
8655
+ })), React.createElement(Col, {
8656
+ md: 4,
8657
+ className: "d-flex justify-content-end align-items-center"
8658
+ }, "Total of users: ", totalItems)), React.createElement(Row, {
8659
+ className: "mb-2"
8660
+ }, React.createElement(Col, {
8661
+ md: 12
8662
+ }, userList && userList.length > 0 ? React.createElement("div", null, React.createElement(Table, {
8663
+ bordered: true,
8664
+ hover: true,
8665
+ striped: true,
8666
+ responsive: true,
8667
+ size: "sm"
8668
+ }, React.createElement("thead", null, React.createElement("tr", null, React.createElement("th", {
8669
+ className: "align-top"
8670
+ }, "Student Name"), React.createElement("th", {
8671
+ className: "align-top"
8672
+ }, "Student Email"), React.createElement("th", {
8673
+ className: "align-top"
8674
+ }, "Current Assistant Name"), React.createElement("th", {
8675
+ className: "align-top"
8676
+ }, "Current Assistant Email"))), React.createElement("tbody", null, !!userList && userList.length > 0 && userList.map(function (record) {
8677
+ return React.createElement("tr", {
8678
+ key: record.id
8679
+ }, React.createElement("td", {
8680
+ className: "align-middle"
8681
+ }, React.createElement(LinkEditButton, {
8682
+ label: "" + record.studentName,
8683
+ onClick: function onClick() {
8684
+ return choiceUser(record);
8685
+ }
8686
+ })), React.createElement("td", {
8687
+ className: "align-middle"
8688
+ }, record.emailStudent), React.createElement("td", {
8689
+ className: "align-middle"
8690
+ }, record.assistantName), React.createElement("td", {
8691
+ className: "align-middle"
8692
+ }, record.emailAssistant));
8693
+ })))) : React.createElement(EmptyDataAlert, {
8694
+ label: "user"
8695
+ })), React.createElement(Col, {
8696
+ md: 12
8697
+ }, React.createElement(CustomPagination, {
8698
+ filters: filters,
8699
+ totalRecordCount: totalItems,
8700
+ changePageSize: function changePageSize(pageSize) {
8701
+ return changeFilters({
8702
+ pageSize: pageSize
8703
+ });
8704
+ },
8705
+ changePage: function changePage(currentPage) {
8706
+ return changeFilters({
8707
+ currentPage: currentPage
8708
+ });
8709
+ }
8710
+ }))), React.createElement(SwitchAssistantModal$1, {
8711
+ ref: modal,
8712
+ header: "Switch Assistant",
8713
+ userChoiced: userChoiced,
8714
+ removeData: removeData,
8715
+ options: options,
8716
+ assistantChangeId: assistantChangeId,
8717
+ setAssistantChangeId: setAssistantChangeId,
8718
+ resetData: resetData
8719
+ }));
8720
+ };
8721
+
8371
8722
  var tabs = [{
8372
8723
  path: "/admin/set-up/skill",
8373
8724
  title: "Skills",
@@ -8420,6 +8771,10 @@ var tabs = [{
8420
8771
  path: "/admin/set-up/switch-teacher",
8421
8772
  title: "Switch Teacher",
8422
8773
  component: SwitchTeacherList
8774
+ }, {
8775
+ path: "/admin/set-up/switch-assistant",
8776
+ title: "Switch assistant",
8777
+ component: SwitchAssistantList
8423
8778
  }];
8424
8779
  var title$1 = "Set up";
8425
8780
 
@@ -8613,7 +8968,7 @@ var renderType = function renderType(params) {
8613
8968
 
8614
8969
  var QUESTION_URL$1 = "/admin/question-bank";
8615
8970
  var CREATE_QUESTION_URL = "/admin/create-question";
8616
- var TITLE$d = "Question list";
8971
+ var TITLE$e = "Question list";
8617
8972
 
8618
8973
  var useQuestionList = function useQuestionList(isDefaultQuestion, isDefaultQuestionGeneralClass) {
8619
8974
  var history = useHistory();
@@ -8768,7 +9123,7 @@ var useQuestionList = function useQuestionList(isDefaultQuestion, isDefaultQuest
8768
9123
  history.push(url);
8769
9124
  }, []);
8770
9125
  useEffect(function () {
8771
- document.title = TITLE$d;
9126
+ document.title = TITLE$e;
8772
9127
  }, []);
8773
9128
  useEffect(function () {
8774
9129
  getData();
@@ -9400,7 +9755,7 @@ var useReflectionFormDetail = function useReflectionFormDetail() {
9400
9755
  };
9401
9756
  };
9402
9757
 
9403
- var TITLE$e = "Reflection form list";
9758
+ var TITLE$f = "Reflection form list";
9404
9759
 
9405
9760
  var useReflectionFormList = function useReflectionFormList() {
9406
9761
  var reflectionList = useSelector(function (state) {
@@ -9490,7 +9845,7 @@ var useReflectionFormList = function useReflectionFormList() {
9490
9845
  }
9491
9846
  }, [dispatch]);
9492
9847
  useEffect(function () {
9493
- document.title = TITLE$e;
9848
+ document.title = TITLE$f;
9494
9849
  }, []);
9495
9850
  useEffect(function () {
9496
9851
  getData();
@@ -10553,7 +10908,7 @@ var initValue$e = {
10553
10908
  isMandatory: false,
10554
10909
  isBeforeSession: false
10555
10910
  };
10556
- var TITLE$f = "Question detail";
10911
+ var TITLE$g = "Question detail";
10557
10912
 
10558
10913
  var useQuestionDetail = function useQuestionDetail(id) {
10559
10914
  var editorRef;
@@ -10579,7 +10934,7 @@ var useQuestionDetail = function useQuestionDetail(id) {
10579
10934
  };
10580
10935
 
10581
10936
  useEffect(function () {
10582
- document.title = TITLE$f;
10937
+ document.title = TITLE$g;
10583
10938
  setEdited(false);
10584
10939
  if (!!localStorage.getItem(window.location.href)) localStorage.removeItem(window.location.href);
10585
10940
  }, []);
@@ -11243,7 +11598,7 @@ var useAssessmentDetail = function useAssessmentDetail() {
11243
11598
  };
11244
11599
  };
11245
11600
 
11246
- var TITLE$g = "Assessment list";
11601
+ var TITLE$h = "Assessment list";
11247
11602
 
11248
11603
  var useAssessmentList = function useAssessmentList() {
11249
11604
  var assessmentList = useSelector(function (state) {
@@ -11326,7 +11681,7 @@ var useAssessmentList = function useAssessmentList() {
11326
11681
  dispatch(setLoading(false));
11327
11682
  }, [filters]);
11328
11683
  useEffect(function () {
11329
- document.title = TITLE$g;
11684
+ document.title = TITLE$h;
11330
11685
  }, []);
11331
11686
  useEffect(function () {
11332
11687
  getData();
@@ -11778,7 +12133,7 @@ var useFeedbackDetail = function useFeedbackDetail() {
11778
12133
  };
11779
12134
  };
11780
12135
 
11781
- var TITLE$h = "Feedback list";
12136
+ var TITLE$i = "Feedback list";
11782
12137
 
11783
12138
  var useFeedbackList = function useFeedbackList() {
11784
12139
  var feedbackList = useSelector(function (state) {
@@ -11830,7 +12185,7 @@ var useFeedbackList = function useFeedbackList() {
11830
12185
  }
11831
12186
  }, [dispatch, filters]);
11832
12187
  useEffect(function () {
11833
- document.title = TITLE$h;
12188
+ document.title = TITLE$i;
11834
12189
  }, []);
11835
12190
  useEffect(function () {
11836
12191
  getData();
@@ -11844,7 +12199,7 @@ var useFeedbackList = function useFeedbackList() {
11844
12199
  };
11845
12200
  };
11846
12201
 
11847
- var header$5 = "Feedback";
12202
+ var header$6 = "Feedback";
11848
12203
 
11849
12204
  var FeedbackList = function FeedbackList() {
11850
12205
  var history = useHistory();
@@ -11873,7 +12228,7 @@ var FeedbackList = function FeedbackList() {
11873
12228
  feedbackDetail: feedbackDetail
11874
12229
  }), React.createElement("h5", {
11875
12230
  className: "mb-2"
11876
- }, header$5), React.createElement(Row, {
12231
+ }, header$6), React.createElement(Row, {
11877
12232
  className: "my-2"
11878
12233
  }, React.createElement(Col, {
11879
12234
  md: 8,
@@ -12171,7 +12526,7 @@ var useTutorialScreenDetail = function useTutorialScreenDetail(typeRole) {
12171
12526
  };
12172
12527
  };
12173
12528
 
12174
- var TITLE$i = "Tutorial screen list";
12529
+ var TITLE$j = "Tutorial screen list";
12175
12530
 
12176
12531
  var useTutorialScreenList = function useTutorialScreenList(typeRole) {
12177
12532
  var tutorialScreenList = useSelector(function (state) {
@@ -12256,7 +12611,7 @@ var useTutorialScreenList = function useTutorialScreenList(typeRole) {
12256
12611
  dispatch(setLoading(false));
12257
12612
  }, [filters]);
12258
12613
  useEffect(function () {
12259
- document.title = TITLE$i;
12614
+ document.title = TITLE$j;
12260
12615
  }, []);
12261
12616
  useEffect(function () {
12262
12617
  getData();
@@ -12632,7 +12987,7 @@ var useQuestionCateDetail = function useQuestionCateDetail() {
12632
12987
  };
12633
12988
  };
12634
12989
 
12635
- var TITLE$j = "Question category list";
12990
+ var TITLE$k = "Question category list";
12636
12991
 
12637
12992
  var useQuestionCateList = function useQuestionCateList() {
12638
12993
  var questionCateList = useSelector(function (state) {
@@ -12715,7 +13070,7 @@ var useQuestionCateList = function useQuestionCateList() {
12715
13070
  dispatch(setLoading(false));
12716
13071
  }, [filters]);
12717
13072
  useEffect(function () {
12718
- document.title = TITLE$j;
13073
+ document.title = TITLE$k;
12719
13074
  }, []);
12720
13075
  useEffect(function () {
12721
13076
  getData();
@@ -12859,6 +13214,24 @@ var tabs$3 = [{
12859
13214
  path: "/admin/question/question-list",
12860
13215
  title: "Question list",
12861
13216
  component: QuestionBankList
13217
+ }, {
13218
+ path: "/admin/question/default-question-list",
13219
+ title: "Default question list",
13220
+ component: function component() {
13221
+ return React.createElement(QuestionBankList, {
13222
+ isDefaultQuestion: true,
13223
+ isDefaultQuestionGeneral: false
13224
+ });
13225
+ }
13226
+ }, {
13227
+ path: "/admin/question/default-question-general-list",
13228
+ title: "Default question general class list",
13229
+ component: function component() {
13230
+ return React.createElement(QuestionBankList, {
13231
+ isDefaultQuestion: false,
13232
+ isDefaultQuestionGeneral: true
13233
+ });
13234
+ }
12862
13235
  }, {
12863
13236
  path: "/admin/question/question-category",
12864
13237
  title: "Question category",
@@ -13466,7 +13839,7 @@ var useAssignmentDetail = function useAssignmentDetail() {
13466
13839
  };
13467
13840
  };
13468
13841
 
13469
- var TITLE$k = "Assignment list";
13842
+ var TITLE$l = "Assignment list";
13470
13843
 
13471
13844
  var useAssignmentList = function useAssignmentList() {
13472
13845
  var assignmentList = useSelector(function (state) {
@@ -13563,7 +13936,7 @@ var useAssignmentList = function useAssignmentList() {
13563
13936
  dispatch(setLoading(false));
13564
13937
  }, [filters]);
13565
13938
  useEffect(function () {
13566
- document.title = TITLE$k;
13939
+ document.title = TITLE$l;
13567
13940
  }, []);
13568
13941
  useEffect(function () {
13569
13942
  getData();
@@ -14013,7 +14386,7 @@ var getRandomQuestion = function getRandomQuestion(data) {
14013
14386
  return api.post(QUESTION_URL$2 + "/random", data);
14014
14387
  };
14015
14388
 
14016
- var TITLE$l = "Session template list";
14389
+ var TITLE$m = "Session template list";
14017
14390
  var SESSION_TEMPLATE_URL$1 = "/admin/session-template-learning-support";
14018
14391
  var CREATE_TEMPLATE_URL = "/admin/create-session-template-learning-support";
14019
14392
 
@@ -14117,7 +14490,7 @@ var useSessionTemplateList = function useSessionTemplateList() {
14117
14490
  history.push(url);
14118
14491
  }, []);
14119
14492
  useEffect(function () {
14120
- document.title = TITLE$l;
14493
+ document.title = TITLE$m;
14121
14494
  }, []);
14122
14495
  useEffect(function () {
14123
14496
  getData();
@@ -14264,7 +14637,7 @@ var remove$j = function remove(id) {
14264
14637
  return api["delete"](SESSION_TEMPLATE_GENERAL_CLASS_URL + "/" + id);
14265
14638
  };
14266
14639
 
14267
- var TITLE$m = "Session template general class list";
14640
+ var TITLE$n = "Session template general class list";
14268
14641
  var SESSION_TEMPLATE_GENERAL_CLASS_URL$1 = "/admin/session-template/general-class";
14269
14642
  var CREATE_TEMPLATE_GENERAL_CLASS_URL = "/admin/create-session-template-general-class";
14270
14643
 
@@ -14354,7 +14727,7 @@ var useSessionTemplateGeneralClassList = function useSessionTemplateGeneralClass
14354
14727
  history.push(url);
14355
14728
  }, []);
14356
14729
  useEffect(function () {
14357
- document.title = TITLE$m;
14730
+ document.title = TITLE$n;
14358
14731
  }, []);
14359
14732
  useEffect(function () {
14360
14733
  getData();
@@ -16343,7 +16716,7 @@ var useCustomAlertDetail = function useCustomAlertDetail() {
16343
16716
  };
16344
16717
  };
16345
16718
 
16346
- var TITLE$n = "Custom alert list";
16719
+ var TITLE$o = "Custom alert list";
16347
16720
 
16348
16721
  var useCustomAlertList = function useCustomAlertList() {
16349
16722
  var customAlertList = useSelector(function (state) {
@@ -16431,7 +16804,7 @@ var useCustomAlertList = function useCustomAlertList() {
16431
16804
  dispatch(setLoading(false));
16432
16805
  }, [filters]);
16433
16806
  useEffect(function () {
16434
- document.title = TITLE$n;
16807
+ document.title = TITLE$o;
16435
16808
  }, []);
16436
16809
  useEffect(function () {
16437
16810
  getData();
@@ -16446,7 +16819,7 @@ var useCustomAlertList = function useCustomAlertList() {
16446
16819
  };
16447
16820
  };
16448
16821
 
16449
- var header$6 = "Custom alert";
16822
+ var header$7 = "Custom alert";
16450
16823
 
16451
16824
  var CustomAlertList = function CustomAlertList() {
16452
16825
  var modal = useRef();
@@ -16514,7 +16887,7 @@ var CustomAlertList = function CustomAlertList() {
16514
16887
  when: edited
16515
16888
  }), React.createElement("h5", {
16516
16889
  className: "mb-2"
16517
- }, header$6), React.createElement(Row, {
16890
+ }, header$7), React.createElement(Row, {
16518
16891
  className: "my-2"
16519
16892
  }, React.createElement(Col, {
16520
16893
  md: 4
@@ -17073,7 +17446,7 @@ var useCertificateDetail = function useCertificateDetail() {
17073
17446
  };
17074
17447
  };
17075
17448
 
17076
- var TITLE$o = "Certificate list";
17449
+ var TITLE$p = "Certificate list";
17077
17450
 
17078
17451
  var useCertificateList = function useCertificateList() {
17079
17452
  var certificateList = useSelector(function (state) {
@@ -17156,7 +17529,7 @@ var useCertificateList = function useCertificateList() {
17156
17529
  dispatch(setLoading(false));
17157
17530
  }, [filters]);
17158
17531
  useEffect(function () {
17159
- document.title = TITLE$o;
17532
+ document.title = TITLE$p;
17160
17533
  }, []);
17161
17534
  useEffect(function () {
17162
17535
  getData();
@@ -17171,7 +17544,7 @@ var useCertificateList = function useCertificateList() {
17171
17544
  };
17172
17545
  };
17173
17546
 
17174
- var header$7 = "Certificate";
17547
+ var header$8 = "Certificate";
17175
17548
 
17176
17549
  var CertificateList = function CertificateList() {
17177
17550
  var modal = useRef();
@@ -17230,7 +17603,7 @@ var CertificateList = function CertificateList() {
17230
17603
  when: edited
17231
17604
  }), React.createElement("h5", {
17232
17605
  className: "mb-2"
17233
- }, header$7), React.createElement(Row, {
17606
+ }, header$8), React.createElement(Row, {
17234
17607
  className: "my-2"
17235
17608
  }, React.createElement(Col, {
17236
17609
  md: 4
@@ -17304,7 +17677,7 @@ var CertificateList = function CertificateList() {
17304
17677
  }))));
17305
17678
  };
17306
17679
 
17307
- var TITLE$p = "Certificate list";
17680
+ var TITLE$q = "Certificate list";
17308
17681
 
17309
17682
  var useCertificateList$1 = function useCertificateList() {
17310
17683
  var dispatch = useDispatch();
@@ -17392,7 +17765,7 @@ var useCertificateList$1 = function useCertificateList() {
17392
17765
  }
17393
17766
  }, [listWaiting]);
17394
17767
  useEffect(function () {
17395
- document.title = TITLE$p;
17768
+ document.title = TITLE$q;
17396
17769
  getListWaiting();
17397
17770
  getListApproved();
17398
17771
  }, []);
@@ -17738,58 +18111,84 @@ var CompareTeacher = function CompareTeacher() {
17738
18111
  };
17739
18112
 
17740
18113
  var REPORT_URL = BASE_URL + "/api/report";
17741
- var getQuantityReport = function getQuantityReport() {
17742
- return api.get(REPORT_URL + "/quantity");
17743
- };
17744
- var getLoginCountingReport = function getLoginCountingReport() {
17745
- return api.get(REPORT_URL + "/logincouting");
18114
+ var getAllTotalTime = function getAllTotalTime(filter) {
18115
+ return api.get(REPORT_URL + "/dashboard-total-student", {
18116
+ params: filter
18117
+ });
17746
18118
  };
17747
- var getGoalProgressReport = function getGoalProgressReport() {
17748
- return api.get(REPORT_URL + "/goalprogress");
18119
+ var getReadinessToLearning = function getReadinessToLearning(filter) {
18120
+ return api.get(REPORT_URL + "/top-readiness-learn", {
18121
+ params: filter
18122
+ });
17749
18123
  };
17750
- var getHighImpactLearningStrategyReport = function getHighImpactLearningStrategyReport() {
17751
- return api.get(REPORT_URL + "/highimpactlearningstrategy");
18124
+ var getTopLearningStrategies = function getTopLearningStrategies(filter) {
18125
+ return api.get(REPORT_URL + "/top-learning-strategies", {
18126
+ params: filter
18127
+ });
17752
18128
  };
17753
- var getPerceivedImpactReport = function getPerceivedImpactReport() {
17754
- return api.get(REPORT_URL + "/perceivedimpact");
18129
+ var getStudentByGrade = function getStudentByGrade(filter) {
18130
+ return api.get(REPORT_URL + "/student-by-grade", {
18131
+ params: filter
18132
+ });
17755
18133
  };
17756
- var getGradeReport = function getGradeReport() {
17757
- return api.get(REPORT_URL + "/grade");
18134
+ var getOverviewQuestionChart = function getOverviewQuestionChart(filter) {
18135
+ return api.get(REPORT_URL + "/overview-chart", {
18136
+ params: filter
18137
+ });
17758
18138
  };
17759
18139
 
17760
- var TITLE$q = "Dashboard";
18140
+ var TITLE$r = "Dashboard";
17761
18141
 
17762
18142
  var useDashboard = function useDashboard() {
17763
18143
  var dispatch = useDispatch();
18144
+ var now = new Date();
17764
18145
 
17765
- var _useState = useState(null),
17766
- loginCounting = _useState[0],
17767
- setLoginCounting = _useState[1];
18146
+ var _useState = useState({
18147
+ startDate: new Date(now.getFullYear(), now.getMonth(), 1).getTime(),
18148
+ endDate: new Date(now.getFullYear(), now.getMonth() + 1, 0).getTime(),
18149
+ studentIds: []
18150
+ }),
18151
+ filter = _useState[0],
18152
+ setFilter = _useState[1];
17768
18153
 
17769
- var _useState2 = useState(null),
17770
- quantity = _useState2[0],
17771
- setQuantity = _useState2[1];
18154
+ var _useState2 = useState(),
18155
+ listTotalTime = _useState2[0],
18156
+ setListTotalTime = _useState2[1];
17772
18157
 
17773
- var _useState3 = useState(null),
17774
- goalProgress = _useState3[0],
17775
- setGoalProgress = _useState3[1];
18158
+ var _useState3 = useState(),
18159
+ readinessToLearning = _useState3[0],
18160
+ setReadinessToLearning = _useState3[1];
17776
18161
 
17777
- var _useState4 = useState(null),
17778
- highImpact = _useState4[0],
17779
- setHighImpact = _useState4[1];
18162
+ var _useState4 = useState(),
18163
+ topLearningStrategies = _useState4[0],
18164
+ setTopLearningStrategies = _useState4[1];
17780
18165
 
17781
- var _useState5 = useState(null),
17782
- perceivedImpact = _useState5[0],
17783
- setPerceivedImpact = _useState5[1];
18166
+ var _useState5 = useState(),
18167
+ studentByGrade = _useState5[0],
18168
+ setStudentByGrade = _useState5[1];
18169
+
18170
+ var _useState6 = useState(),
18171
+ chartOneToOneData = _useState6[0],
18172
+ setChartOneToOneData = _useState6[1];
17784
18173
 
17785
- var _useState6 = useState(null),
17786
- grade = _useState6[0],
17787
- setGrade = _useState6[1];
18174
+ var _useState7 = useState(),
18175
+ chartClassReflection = _useState7[0],
18176
+ setChartClassReflection = _useState7[1];
17788
18177
 
17789
- var callApi = useCallback(function (apiCaller, setData, defaultData) {
18178
+ var _useState8 = useState(),
18179
+ chartConference = _useState8[0],
18180
+ setChartConference = _useState8[1];
18181
+
18182
+ var _useState9 = useState(),
18183
+ learningProgress = _useState9[0],
18184
+ setLearningProgress = _useState9[1];
18185
+
18186
+ var callApi = useCallback(function (apiCaller, setData, defaultData, type) {
17790
18187
  try {
17791
18188
  var _temp2 = _catch(function () {
17792
- return Promise.resolve(apiCaller()).then(function (res) {
18189
+ return Promise.resolve(type ? apiCaller(_extends({}, filter, {
18190
+ type: type
18191
+ })) : apiCaller(filter)).then(function (res) {
17793
18192
  setData(res.data);
17794
18193
  });
17795
18194
  }, function (err) {
@@ -17806,45 +18205,130 @@ var useDashboard = function useDashboard() {
17806
18205
  } catch (e) {
17807
18206
  return Promise.reject(e);
17808
18207
  }
17809
- }, []);
18208
+ }, [filter]);
17810
18209
  var getData = useCallback(function () {
17811
18210
  try {
17812
- document.title = TITLE$q;
18211
+ document.title = TITLE$r;
17813
18212
  dispatch(setLoading(true));
17814
- return Promise.resolve(Promise.any([callApi(getLoginCountingReport, setLoginCounting, []), callApi(getQuantityReport, setQuantity, {}), callApi(getGoalProgressReport, setGoalProgress, []), callApi(getHighImpactLearningStrategyReport, setHighImpact, {}), callApi(getPerceivedImpactReport, setPerceivedImpact, []), callApi(getGradeReport, setGrade, {})])).then(function () {
18213
+ return Promise.resolve(Promise.any([callApi(getAllTotalTime, setListTotalTime, []), callApi(getReadinessToLearning, setReadinessToLearning, []), callApi(getTopLearningStrategies, setTopLearningStrategies, []), callApi(getStudentByGrade, setStudentByGrade, []), callApi(getOverviewQuestionChart, setChartOneToOneData, [], "OneToOne"), callApi(getOverviewQuestionChart, setChartClassReflection, [], "ClassReflection"), callApi(getOverviewQuestionChart, setChartConference, [], "Conference"), callApi(getOverviewQuestionChart, setLearningProgress, [], "LearningProgress")])).then(function () {
17815
18214
  dispatch(setLoading(false));
17816
18215
  });
17817
18216
  } catch (e) {
17818
18217
  return Promise.reject(e);
17819
18218
  }
17820
- }, []);
18219
+ }, [filter]);
17821
18220
  useEffect(function () {
17822
18221
  getData();
17823
- }, []);
18222
+ }, [filter]);
17824
18223
  return {
17825
- loginCounting: loginCounting,
17826
- quantity: quantity,
17827
- goalProgress: goalProgress,
17828
- highImpact: highImpact,
17829
- perceivedImpact: perceivedImpact,
17830
- grade: grade
18224
+ setFilter: setFilter,
18225
+ filter: filter,
18226
+ listTotalTime: listTotalTime,
18227
+ readinessToLearning: readinessToLearning,
18228
+ topLearningStrategies: topLearningStrategies,
18229
+ studentByGrade: studentByGrade,
18230
+ chartOneToOneData: chartOneToOneData,
18231
+ chartClassReflection: chartClassReflection,
18232
+ chartConference: chartConference,
18233
+ learningProgress: learningProgress
17831
18234
  };
17832
18235
  };
17833
18236
 
17834
- var styles$1 = {"dashboard-card":"_1Jgr2","quantity-table":"_3Thdy"};
18237
+ var styles$1 = {"dashboard-card":"_1Jgr2","quantity-table":"_3Thdy","size-icon":"_1WLBo","block-dashboard":"_10Pgm","size-arrow":"_3jPb_","color-down":"_1c43y","color-up":"_F1afY","box-filter":"_1kqUQ","title-card":"_10hbz","value-card":"_2rmw_","deviant-card":"_1tdQu","filter-card":"_2BvFN","box-skill-item":"_2TBTW","numerical-order":"_3XXJp","backoround-top-skill":"_LCuWQ","color-filter":"_3x9D7","btn-filter":"_2In63","block-collapse":"_1Vhg_","form-date-picker":"_6yLxd","bock-filter-left":"_h74SO","bock-filter-right":"_3e2pi"};
17835
18238
 
17836
18239
  var DashboardCard = function DashboardCard(_ref) {
17837
18240
  var label = _ref.label,
17838
18241
  children = _ref.children;
17839
18242
  return React.createElement("div", {
17840
18243
  className: styles$1["dashboard-card"]
18244
+ }, React.createElement("div", {
18245
+ className: "d-flex align-items-center justify-content-between"
17841
18246
  }, React.createElement("h5", {
17842
18247
  className: "mb-2"
17843
- }, label), React.createElement("div", {
18248
+ }, label), React.createElement(FiMoreVertical, {
18249
+ className: "cursor-pointer"
18250
+ })), React.createElement("div", {
17844
18251
  className: "flex-grow-1 d-flex flex-column justify-content-center"
17845
18252
  }, children));
17846
18253
  };
17847
18254
 
18255
+ var ReadinessToLearn = function ReadinessToLearn(_ref) {
18256
+ var data = _ref.data;
18257
+ var categories = useMemo(function () {
18258
+ if (!data) return [];
18259
+
18260
+ try {
18261
+ return data.map(function (item) {
18262
+ return item.createdAt;
18263
+ });
18264
+ } catch (_unused) {
18265
+ return [];
18266
+ }
18267
+ }, [data]);
18268
+ if (!data) return React.createElement(Loading$1, null);
18269
+ var options = {
18270
+ chart: {
18271
+ type: "radialBar",
18272
+ height: 350,
18273
+ stacked: true,
18274
+ stackType: "100%",
18275
+ toolbar: {
18276
+ show: false
18277
+ }
18278
+ },
18279
+ noData: {
18280
+ text: "NO DATA",
18281
+ align: "center",
18282
+ verticalAlign: "middle",
18283
+ offsetX: 0,
18284
+ offsetY: 0,
18285
+ style: {
18286
+ color: undefined,
18287
+ fontSize: "14px",
18288
+ fontFamily: undefined
18289
+ }
18290
+ },
18291
+ plotOptions: {
18292
+ bar: {
18293
+ horizontal: false,
18294
+ columnWidth: "80%"
18295
+ }
18296
+ },
18297
+ colors: ["#FFB04F", "#78B6E2", "#F08281", "#40D2CC"],
18298
+ stroke: {
18299
+ lineCap: "round"
18300
+ },
18301
+ labels: (data === null || data === void 0 ? void 0 : data.map(function (i) {
18302
+ return i.questionText;
18303
+ })) || [],
18304
+ xaxis: {
18305
+ categories: categories
18306
+ },
18307
+ fill: {
18308
+ opacity: 1
18309
+ },
18310
+ legend: {
18311
+ position: "bottom",
18312
+ show: true,
18313
+ fontSize: "16px",
18314
+ onItemClick: {
18315
+ toggleDataSeries: true
18316
+ },
18317
+ onItemHover: {
18318
+ highlightDataSeries: false
18319
+ }
18320
+ }
18321
+ };
18322
+ return React.createElement("div", null, React.createElement(ReactApexChart, {
18323
+ options: options,
18324
+ series: (data === null || data === void 0 ? void 0 : data.map(function (i) {
18325
+ return i.percentQuestion.toFixed(2);
18326
+ })) || [],
18327
+ type: "radialBar",
18328
+ height: 350
18329
+ }));
18330
+ };
18331
+
17848
18332
  var Loading = function Loading() {
17849
18333
  return React.createElement("div", {
17850
18334
  className: "d-flex align-items-center justify-content-center"
@@ -17866,355 +18350,666 @@ var Loading = function Loading() {
17866
18350
  }, "Loading...")));
17867
18351
  };
17868
18352
 
17869
- var colors = ["rgba(129, 236, 236, 0.8)", "rgba(116, 185, 255, 0.8)", "rgba(250, 177, 160, 0.8)", "rgba(255, 234, 167, 0.8)", "rgba(178, 190, 195, 0.8)", "rgba(85, 239, 196, 0.8)", "rgba(120, 111, 166, 0.8)", "rgba(243, 166, 131, 0.8)"];
17870
-
17871
- var getColors = function getColors(length) {
17872
- if (colors.length >= length) return colors;
17873
- var newColors = [].concat(colors);
18353
+ var colors = ["#40D2CC", "#1D74C5", "#78B6E2", "#FFC783", "#0D9994"];
17874
18354
 
17875
- while (newColors.length < length) {
17876
- newColors = [].concat(newColors, colors);
17877
- }
18355
+ var TopLearningStrategy = function TopLearningStrategy(_ref) {
18356
+ var _data$learningStrateg, _data$learningStrateg2;
17878
18357
 
17879
- return newColors;
17880
- };
17881
-
17882
- var HighImpact = function HighImpact(_ref) {
17883
18358
  var data = _ref.data;
17884
- var colors = useMemo(function () {
17885
- var _Object$keys;
17886
-
17887
- if (!data) return [];
17888
- return getColors(((_Object$keys = Object.keys(data)) === null || _Object$keys === void 0 ? void 0 : _Object$keys.length) || 0);
17889
- }, [data]);
17890
- var ratings = useMemo(function () {
17891
- if (!data) return [];
17892
- return Object.values(data);
17893
- }, [data]);
17894
- var learningStrategies = useMemo(function () {
17895
- if (!data) return [];
17896
-
17897
- try {
17898
- var results = Object.keys(data).map(function (key, index) {
17899
- return {
17900
- name: key,
17901
- color: colors[index]
17902
- };
17903
- });
17904
- return results;
17905
- } catch (_unused) {
17906
- return [];
17907
- }
17908
- }, [data]);
17909
18359
  if (!data) return React.createElement(Loading, null);
17910
- var series = [{
17911
- name: "",
17912
- data: ratings
17913
- }];
17914
18360
  var options = {
17915
18361
  chart: {
17916
- height: 350,
17917
- type: "bar",
17918
- toolbar: {
17919
- show: false
17920
- }
17921
- },
17922
- colors: colors,
17923
- plotOptions: {
17924
- bar: {
17925
- columnWidth: "45%",
17926
- distributed: true
17927
- }
17928
- },
17929
- dataLabels: {
17930
- enabled: false
17931
- },
17932
- legend: {
17933
- show: false
17934
- },
17935
- xaxis: {
17936
- categories: learningStrategies.map(function (item) {
17937
- return item.name.substring(0, 15) + "...";
17938
- })
18362
+ width: 350,
18363
+ type: "pie"
17939
18364
  },
17940
- yaxis: {
17941
- labels: {
17942
- formatter: function formatter(val) {
17943
- return "" + val.toFixed(0);
17944
- }
18365
+ noData: {
18366
+ text: "NO DATA",
18367
+ align: "center",
18368
+ verticalAlign: "middle",
18369
+ offsetX: 0,
18370
+ offsetY: 0,
18371
+ style: {
18372
+ color: undefined,
18373
+ fontSize: "14px",
18374
+ fontFamily: undefined
17945
18375
  }
18376
+ },
18377
+ labels: (data === null || data === void 0 ? void 0 : (_data$learningStrateg = data.learningStrategies) === null || _data$learningStrateg === void 0 ? void 0 : _data$learningStrateg.map(function (i) {
18378
+ return i.learningStrategyName;
18379
+ })) || [],
18380
+ colors: colors,
18381
+ legend: {
18382
+ show: true,
18383
+ position: "bottom"
17946
18384
  }
17947
18385
  };
17948
- return React.createElement("div", null, React.createElement("div", null, React.createElement(ReactApexChart, {
18386
+ return React.createElement("div", {
18387
+ className: "d-flex h-100"
18388
+ }, React.createElement("div", {
18389
+ className: "d-flex align-items-end"
18390
+ }, React.createElement(ReactApexChart, {
17949
18391
  options: options,
17950
- series: series,
17951
- type: "bar",
18392
+ series: (data === null || data === void 0 ? void 0 : (_data$learningStrateg2 = data.learningStrategies) === null || _data$learningStrateg2 === void 0 ? void 0 : _data$learningStrateg2.map(function (i) {
18393
+ return i.usageCount;
18394
+ })) || [],
18395
+ type: "pie",
17952
18396
  height: 350
17953
- })), React.createElement("div", {
17954
- className: "d-flex flex-wrap"
17955
- }, learningStrategies.map(function (item) {
17956
- return React.createElement("div", {
17957
- key: item.name,
17958
- className: "d-flex align-items-center mb-2 mr-3"
17959
- }, React.createElement("span", {
17960
- className: "plain-color-square mr-2",
17961
- style: {
17962
- backgroundColor: item.color
17963
- }
17964
- }), React.createElement("span", null, item.name));
17965
18397
  })));
17966
18398
  };
17967
18399
 
17968
- var colors$1 = ["#1abc9c", "#c0392b"];
17969
-
17970
- var LoginCouting = function LoginCouting(_ref) {
18400
+ var TotalCard = function TotalCard(_ref) {
18401
+ var icon = _ref.icon,
18402
+ title = _ref.title,
18403
+ value = _ref.value,
18404
+ isUp = _ref.isUp,
18405
+ deviant = _ref.deviant,
18406
+ filter = _ref.filter;
18407
+ return React.createElement("div", {
18408
+ className: "border p-3 rounded mr-3 mb-3"
18409
+ }, React.createElement("div", {
18410
+ className: "d-flex align-items-center"
18411
+ }, icon, React.createElement("p", {
18412
+ className: styles$1["title-card"] + " m-0 mx-2"
18413
+ }, title)), React.createElement("div", {
18414
+ className: "d-flex align-items-center justify-content-center mt-3"
18415
+ }, React.createElement("p", {
18416
+ className: "" + styles$1["value-card"]
18417
+ }, value), React.createElement("div", {
18418
+ className: styles$1["box-filter"] + " mx-2 d-flex align-items-center p-2 rounded"
18419
+ }, isUp ? React.createElement(AiOutlineArrowUp, {
18420
+ className: styles$1["size-arrow"] + " " + styles$1["color-up"]
18421
+ }) : React.createElement(AiOutlineArrowDown, {
18422
+ className: styles$1["size-arrow"] + " " + styles$1["color-down"]
18423
+ }), React.createElement("div", null, React.createElement("p", {
18424
+ className: styles$1[isUp ? "color-up" : "color-down"] + " " + styles$1["deviant-card"] + " m-0 h6"
18425
+ }, deviant), React.createElement("p", {
18426
+ className: styles$1["filter-card"] + " my-0"
18427
+ }, filter)))));
18428
+ };
18429
+
18430
+ var CustomBarChart = function CustomBarChart(_ref) {
17971
18431
  var data = _ref.data;
17972
- if (!data) return React.createElement(Loading, null);
17973
- var categories = data.map(function (item) {
17974
- return format$1(new Date(item.date), DATE_FORMAT);
17975
- });
17976
- var teacherCount = data.map(function (item) {
17977
- return item.teacherLoginCount;
17978
- });
17979
- var studentCount = data.map(function (item) {
17980
- return item.studentLoginCount;
17981
- });
17982
- var series = [{
17983
- name: "Teacher",
17984
- data: teacherCount,
17985
- color: colors$1[0]
17986
- }, {
17987
- name: "Student",
17988
- data: studentCount,
17989
- color: colors$1[1]
17990
- }];
17991
- var options = {
18432
+
18433
+ var _useState = useState(600),
18434
+ widthChartOne = _useState[0],
18435
+ setWidthChart = _useState[1];
18436
+
18437
+ var _useState2 = useState(400),
18438
+ heightChartOne = _useState2[0],
18439
+ setHeightChart = _useState2[1];
18440
+
18441
+ var wellbeing = [];
18442
+ var growth = [];
18443
+ var relations = [];
18444
+ var productiviy = [];
18445
+ var academic = [];
18446
+ var selfEfficacy = [];
18447
+ var focus = [];
18448
+ var energy = [];
18449
+ var hapiness = [];
18450
+ var mood = [];
18451
+ var learningProgress = [];
18452
+ var chatMonth = [];
18453
+
18454
+ var _useState3 = useState({
17992
18455
  chart: {
17993
- height: 350,
17994
- type: "area",
18456
+ type: "line",
17995
18457
  toolbar: {
17996
18458
  show: false
18459
+ },
18460
+ height: heightChartOne,
18461
+ zoom: {
18462
+ enabled: false
17997
18463
  }
17998
18464
  },
17999
- stroke: {
18000
- width: 2,
18001
- curve: "straight"
18465
+ dataLabels: {
18466
+ enabled: false
18002
18467
  },
18003
- markers: {
18004
- size: 4,
18005
- colors: ["#fff"],
18006
- strokeColors: colors$1,
18007
- strokeWidth: 2,
18008
- strokeOpacity: 0.9,
18009
- strokeDashArray: 0,
18010
- fillOpacity: 1,
18011
- shape: "circle",
18012
- radius: 2,
18013
- offsetX: 0,
18014
- offsetY: 0,
18015
- onClick: undefined,
18016
- onDblClick: undefined,
18017
- showNullDataPoints: true,
18018
- hover: {
18019
- size: undefined,
18020
- sizeOffset: 3
18468
+ legend: {
18469
+ position: "top",
18470
+ horizontalAlign: "center",
18471
+ width: 3 * widthChartOne / 5,
18472
+ offsetX: 170,
18473
+ markers: {
18474
+ width: 12,
18475
+ radius: 0
18021
18476
  }
18022
18477
  },
18023
- legend: {
18024
- show: false
18478
+ stroke: {
18479
+ width: 2
18480
+ },
18481
+ markers: {
18482
+ size: 5
18025
18483
  },
18484
+ colors: ["#082FA2", "#1A55AE", "#3C65E0", "#6D88E8", "#1E80B9", "#1C77AC", "#4992BD", "#77ADCD", "#3DCBCB", "#1DBAB4", "#61CBCB"],
18026
18485
  xaxis: {
18027
- categories: categories
18486
+ categories: chatMonth
18487
+ },
18488
+ yaxis: {
18489
+ title: {
18490
+ text: "High",
18491
+ rotate: 0,
18492
+ offsetX: -20,
18493
+ offsetY: -265
18494
+ },
18495
+ labels: {
18496
+ offsetX: 10,
18497
+ show: false
18498
+ }
18499
+ }
18500
+ }),
18501
+ optionsOne = _useState3[0],
18502
+ setOptions = _useState3[1];
18503
+
18504
+ var _useState4 = useState([{
18505
+ name: "Wellbeing",
18506
+ data: [0]
18507
+ }, {
18508
+ name: "Growth",
18509
+ data: [0]
18510
+ }, {
18511
+ name: "Relations",
18512
+ data: [0]
18513
+ }, {
18514
+ name: "Productivity",
18515
+ data: [0]
18516
+ }, {
18517
+ name: "Academic",
18518
+ data: [0]
18519
+ }, {
18520
+ name: "Self-Efficacy",
18521
+ data: [0]
18522
+ }, {
18523
+ name: "Focus",
18524
+ data: [0]
18525
+ }, {
18526
+ name: "Energy",
18527
+ data: [0]
18528
+ }, {
18529
+ name: "Hapiness",
18530
+ data: [0]
18531
+ }, {
18532
+ name: "Mood",
18533
+ data: [0]
18534
+ }, {
18535
+ name: "Learning Progress",
18536
+ data: [0]
18537
+ }]),
18538
+ series = _useState4[0],
18539
+ setSeries = _useState4[1];
18540
+
18541
+ var screenWidthMe = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
18542
+ useEffect(function () {
18543
+ if (screenWidthMe > 1400) {
18544
+ setWidthChart(932);
18545
+ setHeightChart(680);
18546
+ }
18547
+ }, []);
18548
+
18549
+ var getData = function getData() {
18550
+ try {
18551
+ !!data && data.overviewQuestionChoice.map(function (element) {
18552
+ chatMonth.push(element.month);
18553
+ element.resultQuestion.map(function (data, index) {
18554
+ if (data.questionText == "") {
18555
+ mood.push(null);
18556
+ learningProgress.push(null);
18557
+ wellbeing.push(null);
18558
+ growth.push(null);
18559
+ academic.push(null);
18560
+ selfEfficacy.push(null);
18561
+ energy.push(null);
18562
+ focus.push(null), hapiness.push(null);
18563
+ relations.push(null);
18564
+ productiviy.push(null);
18565
+ return;
18566
+ } else {
18567
+ var result = data.avgOfStudentChoice.toFixed(2);
18568
+
18569
+ if (index == 0) {
18570
+ wellbeing.push(result);
18571
+ mood.push(0);
18572
+ learningProgress.push(0);
18573
+ } else if (index == 1) {
18574
+ growth.push(result);
18575
+ } else if (index == 2) {
18576
+ relations.push(result);
18577
+ } else if (index == 3) {
18578
+ productiviy.push(result);
18579
+ } else if (index == 4) {
18580
+ academic.push(result);
18581
+ } else if (index == 5) {
18582
+ selfEfficacy.push(result);
18583
+ } else if (index == 6) {
18584
+ energy.push(result);
18585
+ } else if (index == 7) {
18586
+ focus.push(result);
18587
+ } else if (index == 8) {
18588
+ hapiness.push(result);
18589
+ }
18590
+ }
18591
+ });
18592
+ });
18593
+ setOptions({
18594
+ chart: {
18595
+ type: "line",
18596
+ toolbar: {
18597
+ show: false
18598
+ },
18599
+ height: heightChartOne,
18600
+ zoom: {
18601
+ enabled: false
18602
+ }
18603
+ },
18604
+ dataLabels: {
18605
+ enabled: false
18606
+ },
18607
+ legend: {
18608
+ position: "top",
18609
+ horizontalAlign: "center",
18610
+ width: 4 * widthChartOne / 5,
18611
+ offsetX: 100,
18612
+ markers: {
18613
+ width: 12,
18614
+ radius: 0
18615
+ }
18616
+ },
18617
+ markers: {
18618
+ size: 5
18619
+ },
18620
+ colors: ["#082FA2", "#1A55AE", "#3C65E0", "#6D88E8", "#1E80B9", "#1C77AC", "#4992BD", "#77ADCD", "#3DCBCB", "#1DBAB4", "#61CBCB"],
18621
+ xaxis: {
18622
+ categories: chatMonth
18623
+ },
18624
+ yaxis: {
18625
+ labels: {
18626
+ offsetX: 0,
18627
+ show: false
18628
+ }
18629
+ }
18630
+ });
18631
+ setSeries([{
18632
+ name: "Wellbeing",
18633
+ data: wellbeing
18634
+ }, {
18635
+ name: "Growth",
18636
+ data: growth
18637
+ }, {
18638
+ name: "Relations",
18639
+ data: relations
18640
+ }, {
18641
+ name: "Productivity",
18642
+ data: productiviy
18643
+ }, {
18644
+ name: "Academic",
18645
+ data: academic
18646
+ }, {
18647
+ name: "Self-Efficacy",
18648
+ data: selfEfficacy
18649
+ }, {
18650
+ name: "Focus",
18651
+ data: focus
18652
+ }, {
18653
+ name: "Energy",
18654
+ data: energy
18655
+ }, {
18656
+ name: "Hapiness",
18657
+ data: hapiness
18658
+ }, {
18659
+ name: "Mood",
18660
+ data: mood
18661
+ }, {
18662
+ name: "Learning Progress",
18663
+ data: learningProgress
18664
+ }]);
18665
+ return Promise.resolve();
18666
+ } catch (e) {
18667
+ return Promise.reject(e);
18028
18668
  }
18029
18669
  };
18670
+
18671
+ useEffect(function () {
18672
+ getData();
18673
+ }, [data]);
18674
+ var optionOneToOne = optionsOne;
18030
18675
  return React.createElement("div", null, React.createElement(ReactApexChart, {
18031
- options: options,
18676
+ options: optionOneToOne,
18032
18677
  series: series,
18033
18678
  type: "line",
18679
+ width: "100%",
18034
18680
  height: 350
18035
18681
  }));
18036
18682
  };
18037
18683
 
18038
- var colors$2 = ["#00cec9", "#00b894"];
18039
-
18040
- var PerceivedImpact = function PerceivedImpact(_ref) {
18684
+ var StudentByGrade = function StudentByGrade(_ref) {
18041
18685
  var data = _ref.data;
18042
- if (!data) return React.createElement(Loading, null);
18043
- var series = [{
18044
- name: "Student",
18045
- data: data.map(function (item) {
18046
- return item.studentRating;
18047
- })
18048
- }];
18049
- var categories = data.map(function (item) {
18050
- return item.learningStrategyName.substring(0, 15) + "...";
18051
- });
18052
18686
  var options = {
18053
18687
  chart: {
18054
- type: "bar",
18055
- height: 350,
18056
- toolbar: {
18057
- show: false
18058
- }
18688
+ height: 350
18059
18689
  },
18060
- colors: colors$2,
18061
18690
  plotOptions: {
18062
18691
  bar: {
18063
- horizontal: false,
18064
- columnWidth: "55%"
18692
+ borderRadius: 4,
18693
+ horizontal: true
18065
18694
  }
18066
18695
  },
18067
18696
  dataLabels: {
18068
18697
  enabled: false
18069
- },
18070
- stroke: {
18071
- show: true,
18072
- width: 2,
18073
- colors: ["transparent"]
18074
- },
18075
- xaxis: {
18076
- categories: categories
18077
- },
18078
- fill: {
18079
- opacity: 1
18080
- },
18081
- legend: {
18082
- onItemClick: {
18083
- toggleDataSeries: false
18084
- },
18085
- onItemHover: {
18086
- highlightDataSeries: false
18087
- }
18088
18698
  }
18089
18699
  };
18700
+ var series = [{
18701
+ data: (data === null || data === void 0 ? void 0 : data.map(function (i) {
18702
+ return i.quantity;
18703
+ })) || []
18704
+ }];
18090
18705
  return React.createElement("div", null, React.createElement(ReactApexChart, {
18091
18706
  options: options,
18092
18707
  series: series,
18093
18708
  type: "bar",
18709
+ width: "100%",
18094
18710
  height: 350
18095
18711
  }));
18096
18712
  };
18097
18713
 
18098
- var colors$3 = ["#00b894", "#00cec9", "#0984e3"];
18099
-
18100
- var Quantity = function Quantity(_ref) {
18101
- var data = _ref.data;
18102
- if (!data) return React.createElement(Loading, null);
18103
- var teacherPercentage = data.teacherPercentage,
18104
- studentPercentage = data.studentPercentage,
18105
- assistantPercentage = data.assistantPercentage,
18106
- numberOfTeachers = data.numberOfTeachers,
18107
- numberOfStudents = data.numberOfStudents,
18108
- numberOfAssistants = data.numberOfAssistants;
18109
- var series = [teacherPercentage, studentPercentage, assistantPercentage].map(function (number) {
18110
- return Number(number.toFixed(2));
18111
- });
18714
+ var StudentByGender = function StudentByGender() {
18715
+ var series = [45, 55];
18112
18716
  var options = {
18113
- chart: {
18114
- width: 380,
18115
- type: "pie"
18116
- },
18117
- labels: ["Teachers", "Students", "Assistants"],
18118
- colors: colors$3,
18717
+ labels: ["Female", "Male"],
18718
+ colors: ["#A4D1F0", "#40D2CC"],
18119
18719
  legend: {
18120
18720
  show: false
18121
- },
18122
- responsive: [{
18123
- breakpoint: 480,
18124
- options: {
18125
- chart: {
18126
- width: 200
18127
- }
18128
- }
18129
- }]
18721
+ }
18130
18722
  };
18131
- var details = [{
18132
- label: "Teachers",
18133
- color: colors$3[0],
18134
- value: numberOfTeachers
18135
- }, {
18136
- label: "Students",
18137
- color: colors$3[1],
18138
- value: numberOfStudents
18139
- }, {
18140
- label: "Assistants",
18141
- color: colors$3[2],
18142
- value: numberOfAssistants
18143
- }];
18144
18723
  return React.createElement("div", {
18145
18724
  className: "d-flex h-100"
18146
18725
  }, React.createElement("div", {
18147
- className: "d-flex justify-content-center align-items-end flex-grow-1"
18148
- }, React.createElement("div", {
18149
- className: styles$1["quantity-table"]
18150
- }, React.createElement(Table, {
18151
- responsive: true,
18152
- hover: true,
18153
- bordered: true,
18154
- size: "sm"
18155
- }, React.createElement("tbody", null, details.map(function (item) {
18156
- return React.createElement("tr", {
18157
- key: item.label
18158
- }, React.createElement("td", null, item.label), React.createElement("td", {
18159
- className: "text-center"
18160
- }, React.createElement("div", {
18161
- className: "custom-checkbox-square",
18162
- style: {
18163
- backgroundColor: item.color
18164
- }
18165
- })), React.createElement("td", null, item.value));
18166
- }))), React.createElement("p", null, "The number of user for each role"))), React.createElement("div", {
18167
18726
  className: "d-flex align-items-end"
18168
18727
  }, React.createElement(ReactApexChart, {
18169
18728
  options: options,
18170
18729
  series: series,
18171
18730
  type: "pie",
18172
- width: 380
18731
+ height: 350,
18732
+ width: "100%"
18173
18733
  })));
18174
18734
  };
18175
18735
 
18736
+ var StudentWithSpecialNeeds = function StudentWithSpecialNeeds() {
18737
+ var options = {
18738
+ colors: ["#CEF7F5", "#0D9994", "#1CB7B1", "#40D2CC", "#80E7E2"],
18739
+ legend: {
18740
+ show: false
18741
+ }
18742
+ };
18743
+ var series = [44, 55, 41, 17, 15];
18744
+ return React.createElement("div", null, React.createElement(ReactApexChart, {
18745
+ options: options,
18746
+ series: series,
18747
+ type: "donut",
18748
+ width: "100%",
18749
+ height: 350
18750
+ }));
18751
+ };
18752
+
18753
+ var StudentByAge = function StudentByAge() {
18754
+ var options = {
18755
+ chart: {
18756
+ height: 350
18757
+ },
18758
+ plotOptions: {
18759
+ bar: {
18760
+ columnWidth: "45%",
18761
+ distributed: true
18762
+ }
18763
+ },
18764
+ dataLabels: {
18765
+ enabled: false
18766
+ },
18767
+ legend: {
18768
+ show: false
18769
+ },
18770
+ noData: {
18771
+ text: "NO DATA",
18772
+ offsetX: 0,
18773
+ offsetY: 0
18774
+ }
18775
+ };
18776
+ var series = [{
18777
+ data: []
18778
+ }];
18779
+ return React.createElement("div", null, React.createElement(ReactApexChart, {
18780
+ options: options,
18781
+ series: series,
18782
+ type: "bar",
18783
+ width: "100%",
18784
+ height: 350
18785
+ }));
18786
+ };
18787
+
18176
18788
  var Dashboard = function Dashboard() {
18177
18789
  var _useDashboard = useDashboard(),
18178
- loginCounting = _useDashboard.loginCounting,
18179
- quantity = _useDashboard.quantity,
18180
- highImpact = _useDashboard.highImpact,
18181
- perceivedImpact = _useDashboard.perceivedImpact;
18790
+ listTotalTime = _useDashboard.listTotalTime,
18791
+ readinessToLearning = _useDashboard.readinessToLearning,
18792
+ topLearningStrategies = _useDashboard.topLearningStrategies,
18793
+ setFilter = _useDashboard.setFilter,
18794
+ filter = _useDashboard.filter,
18795
+ studentByGrade = _useDashboard.studentByGrade,
18796
+ chartOneToOneData = _useDashboard.chartOneToOneData,
18797
+ chartClassReflection = _useDashboard.chartClassReflection,
18798
+ chartConference = _useDashboard.chartConference,
18799
+ learningProgress = _useDashboard.learningProgress;
18182
18800
 
18801
+ var user = useSelector(function (state) {
18802
+ return state.common.user;
18803
+ });
18183
18804
  var cards = [{
18184
- label: "High-impact learning strategies of current school year",
18185
- children: React.createElement(HighImpact, {
18186
- data: highImpact
18805
+ label: "Top learning strategies",
18806
+ children: React.createElement(TopLearningStrategy, {
18807
+ data: topLearningStrategies
18187
18808
  })
18188
18809
  }, {
18189
- label: "Learning strategies perceived impact",
18190
- children: React.createElement(PerceivedImpact, {
18191
- data: perceivedImpact
18810
+ label: "Readiness to learn",
18811
+ children: React.createElement(ReadinessToLearn, {
18812
+ data: readinessToLearning
18813
+ })
18814
+ }];
18815
+ var listChartLeft = [{
18816
+ label: "1-to-1",
18817
+ children: React.createElement(CustomBarChart, {
18818
+ data: chartOneToOneData
18819
+ })
18820
+ }, {
18821
+ label: "Class Reflection",
18822
+ children: React.createElement(CustomBarChart, {
18823
+ data: chartClassReflection
18192
18824
  })
18193
18825
  }, {
18194
- label: "Students & teachers logins per day",
18195
- children: React.createElement(LoginCouting, {
18196
- data: loginCounting
18826
+ label: "Conferences",
18827
+ children: React.createElement(CustomBarChart, {
18828
+ data: chartConference
18197
18829
  })
18198
18830
  }, {
18199
- label: "Number of students, teachers, assistants",
18200
- children: React.createElement(Quantity, {
18201
- data: quantity
18831
+ label: "Learning Progress",
18832
+ children: React.createElement(CustomBarChart, {
18833
+ data: learningProgress
18834
+ })
18835
+ }];
18836
+ var listChartRight = [{
18837
+ label: "Students by Gender",
18838
+ children: React.createElement(StudentByGender, null)
18839
+ }, {
18840
+ label: "Students with Special Needs",
18841
+ children: React.createElement(StudentWithSpecialNeeds, null)
18842
+ }, {
18843
+ label: "Students by Grade",
18844
+ children: React.createElement(StudentByGrade, {
18845
+ data: studentByGrade
18202
18846
  })
18847
+ }, {
18848
+ label: "Safety",
18849
+ children: React.createElement(StudentByAge, null)
18850
+ }];
18851
+ var totalCardData = [{
18852
+ icon: React.createElement(BiMessageRoundedDetail, {
18853
+ className: styles$1["size-icon"]
18854
+ }),
18855
+ title: "Total 1-to-1",
18856
+ value: listTotalTime === null || listTotalTime === void 0 ? void 0 : listTotalTime.totalOneToOne,
18857
+ isUp: true,
18858
+ deviant: "2",
18859
+ filter: "this week"
18860
+ }, {
18861
+ icon: React.createElement(IoMdStopwatch, {
18862
+ className: styles$1["size-icon"]
18863
+ }),
18864
+ title: "Total time 1-to-1",
18865
+ value: listTotalTime === null || listTotalTime === void 0 ? void 0 : listTotalTime.totalTimeOneToOne,
18866
+ isUp: true,
18867
+ deviant: "17 min",
18868
+ filter: "this week"
18869
+ }, {
18870
+ icon: React.createElement(BiMessageRoundedDetail, {
18871
+ className: styles$1["size-icon"]
18872
+ }),
18873
+ title: "Total conferences",
18874
+ value: listTotalTime === null || listTotalTime === void 0 ? void 0 : listTotalTime.totalConference,
18875
+ isUp: false,
18876
+ deviant: "-4",
18877
+ filter: "this week"
18878
+ }, {
18879
+ icon: React.createElement(MdScreenShare, {
18880
+ className: styles$1["size-icon"]
18881
+ }),
18882
+ title: "Total time conferences",
18883
+ value: listTotalTime === null || listTotalTime === void 0 ? void 0 : listTotalTime.totalTimeConference,
18884
+ isUp: true,
18885
+ deviant: "8 min",
18886
+ filter: "this week"
18887
+ }, {
18888
+ icon: React.createElement(AiOutlineFileDone, {
18889
+ className: styles$1["size-icon"]
18890
+ }),
18891
+ title: "AVS checkin class reflections",
18892
+ value: listTotalTime === null || listTotalTime === void 0 ? void 0 : listTotalTime.avgClassReflection,
18893
+ isUp: false,
18894
+ deviant: "-15%",
18895
+ filter: "this week"
18203
18896
  }];
18204
- return React.createElement("div", null, React.createElement("h4", {
18205
- className: "mb-5"
18206
- }, "DASHBOARD"), React.createElement(Row, {
18897
+
18898
+ var handleChangeStartTime = function handleChangeStartTime(date) {
18899
+ setFilter(_extends({}, filter, {
18900
+ startDate: new Date(date).getTime()
18901
+ }));
18902
+ };
18903
+
18904
+ var handleChangeEndTime = function handleChangeEndTime(date) {
18905
+ setFilter(_extends({}, filter, {
18906
+ endDate: new Date(date).getTime()
18907
+ }));
18908
+ };
18909
+
18910
+ var handleChangeStudentIds = function handleChangeStudentIds(students) {
18911
+ var listStudentId = students.length > 0 && students.map(function (i) {
18912
+ return i.studentId;
18913
+ }) || [];
18914
+ setFilter(_extends({}, filter, {
18915
+ studentIds: listStudentId
18916
+ }));
18917
+ };
18918
+
18919
+ var handleFormatDate = function handleFormatDate(date) {
18920
+ var dateTime = new Date(date).toISOString().slice(0, 10);
18921
+ return dateTime;
18922
+ };
18923
+
18924
+ return React.createElement("div", {
18925
+ className: "" + styles$1["block-dashboard"]
18926
+ }, React.createElement("div", {
18927
+ className: "d-flex align-items-center justify-content-between"
18928
+ }, React.createElement("h4", null, "Hey ", user.lastName), React.createElement("div", {
18929
+ className: "text-center"
18930
+ }, React.createElement("button", {
18931
+ id: "toggler",
18932
+ onClick: function noRefCheck() {},
18933
+ className: styles$1["btn-filter"] + " d-flex align-items-center cursor-pointer"
18934
+ }, React.createElement(FiFilter, {
18935
+ className: "" + styles$1["color-filter"]
18936
+ }), React.createElement("p", {
18937
+ className: styles$1["color-filter"] + " my-0 mx-2"
18938
+ }, "Filter")))), React.createElement("div", {
18939
+ className: "d-flex justify-content-end py-4"
18940
+ }, React.createElement(UncontrolledCollapse, {
18941
+ toggler: "#toggler",
18942
+ className: "" + styles$1["block-collapse"]
18943
+ }, React.createElement("div", {
18944
+ className: "" + styles$1["bock-filter-left"]
18945
+ }, React.createElement("input", {
18946
+ type: "date",
18947
+ className: "" + styles$1["form-date-picker"],
18948
+ onChange: function onChange(e) {
18949
+ return handleChangeStartTime(e.target.value);
18950
+ },
18951
+ value: handleFormatDate(filter.startDate)
18952
+ }), React.createElement("input", {
18953
+ type: "date",
18954
+ className: "" + styles$1["form-date-picker"],
18955
+ onChange: function onChange(e) {
18956
+ return handleChangeEndTime(e.target.value);
18957
+ },
18958
+ value: handleFormatDate(filter.endDate)
18959
+ })), React.createElement("div", {
18960
+ className: "" + styles$1["bock-filter-right"]
18961
+ }, React.createElement(StudentSelector, {
18962
+ onChange: function onChange(e) {
18963
+ handleChangeStudentIds(e);
18964
+ }
18965
+ })))), React.createElement("div", {
18966
+ className: "d-flex align-items-center flex-wrap py-2"
18967
+ }, totalCardData.map(function (item) {
18968
+ return React.createElement(TotalCard, {
18969
+ icon: item.icon,
18970
+ title: item.title,
18971
+ value: item.value,
18972
+ isUp: item.isUp,
18973
+ deviant: item.deviant,
18974
+ filter: item.filter
18975
+ });
18976
+ })), React.createElement(Row, {
18207
18977
  className: "mb-2"
18208
18978
  }, cards.map(function (card) {
18209
18979
  return React.createElement(Col, {
18210
18980
  key: card.label,
18981
+ xs: 12,
18211
18982
  md: 6,
18212
18983
  className: "mb-4"
18213
18984
  }, React.createElement(DashboardCard, {
18214
18985
  label: card.label,
18215
18986
  children: card.children
18216
18987
  }));
18217
- })));
18988
+ })), React.createElement(Row, {
18989
+ className: "my-2"
18990
+ }, React.createElement(Col, {
18991
+ xs: 12,
18992
+ xl: 7
18993
+ }, listChartLeft.map(function (i) {
18994
+ return React.createElement(Col, {
18995
+ key: i.label,
18996
+ className: "mb-4"
18997
+ }, React.createElement(DashboardCard, {
18998
+ label: i.label,
18999
+ children: i.children
19000
+ }));
19001
+ })), React.createElement(Col, {
19002
+ xs: 12,
19003
+ xl: 5
19004
+ }, listChartRight.map(function (i) {
19005
+ return React.createElement(Col, {
19006
+ key: i.label,
19007
+ className: "mb-4"
19008
+ }, React.createElement(DashboardCard, {
19009
+ label: i.label,
19010
+ children: i.children
19011
+ }));
19012
+ }))));
18218
19013
  };
18219
19014
 
18220
19015
  LicenseManager.setLicenseKey(LICENSE_AGGRID);